mirror of
https://github.com/dimitri/pgloader.git
synced 2026-05-04 18:36:12 +02:00
Uppercase the SQL queries for MS SQL
In cases when the MS SQL database is setup with a case sensitive collation, then it would not find the catalog objects referenced from the query. To fix, just use UPPERCASE names, as they do work in both case insensitive and case sensitive collations. In passing, add `system-index.txt` to `.gitignore` (generated by make). Fixes #651.
This commit is contained in:
parent
d69b72053a
commit
62d776f5e8
1
.gitignore
vendored
1
.gitignore
vendored
@ -15,3 +15,4 @@ web/howto/pgloader.1.html
|
||||
web/howto/quickstart.html
|
||||
web/howto/sqlite.html
|
||||
.DS_Store
|
||||
system-index.txt
|
||||
|
||||
@ -4,31 +4,31 @@
|
||||
-- filter-list-to-where-clause including
|
||||
-- excluding
|
||||
-- filter-list-to-where-clause excluding
|
||||
select c.table_schema,
|
||||
c.table_name,
|
||||
c.column_name,
|
||||
c.data_type,
|
||||
select c.TABLE_SCHEMA,
|
||||
c.TABLE_NAME,
|
||||
c.COLUMN_NAME,
|
||||
c.DATA_TYPE,
|
||||
CASE
|
||||
WHEN c.column_default LIKE '((%' AND c.column_default LIKE '%))' THEN
|
||||
WHEN c.COLUMN_DEFAULT LIKE '((%' AND c.COLUMN_DEFAULT LIKE '%))' THEN
|
||||
CASE
|
||||
WHEN SUBSTRING(c.column_default,3,len(c.column_default)-4) = 'newid()' THEN 'generate_uuid_v4()'
|
||||
WHEN SUBSTRING(c.column_default,3,len(c.column_default)-4) LIKE 'convert(%varchar%,getdate(),%)' THEN 'today'
|
||||
WHEN SUBSTRING(c.column_default,3,len(c.column_default)-4) = 'getdate()' THEN 'CURRENT_TIMESTAMP'
|
||||
WHEN SUBSTRING(c.column_default,3,len(c.column_default)-4) LIKE '''%''' THEN SUBSTRING(c.column_default,4,len(c.column_default)-6)
|
||||
ELSE SUBSTRING(c.column_default,3,len(c.column_default)-4)
|
||||
WHEN SUBSTRING(c.COLUMN_DEFAULT,3,len(c.COLUMN_DEFAULT)-4) = 'newid()' THEN 'generate_uuid_v4()'
|
||||
WHEN SUBSTRING(c.COLUMN_DEFAULT,3,len(c.COLUMN_DEFAULT)-4) LIKE 'convert(%varchar%,getdate(),%)' THEN 'today'
|
||||
WHEN SUBSTRING(c.COLUMN_DEFAULT,3,len(c.COLUMN_DEFAULT)-4) = 'getdate()' THEN 'CURRENT_TIMESTAMP'
|
||||
WHEN SUBSTRING(c.COLUMN_DEFAULT,3,len(c.COLUMN_DEFAULT)-4) LIKE '''%''' THEN SUBSTRING(c.COLUMN_DEFAULT,4,len(c.COLUMN_DEFAULT)-6)
|
||||
ELSE SUBSTRING(c.COLUMN_DEFAULT,3,len(c.COLUMN_DEFAULT)-4)
|
||||
END
|
||||
WHEN c.column_default LIKE '(%' AND c.column_default LIKE '%)' THEN
|
||||
WHEN c.COLUMN_DEFAULT LIKE '(%' AND c.COLUMN_DEFAULT LIKE '%)' THEN
|
||||
CASE
|
||||
WHEN SUBSTRING(c.column_default,2,len(c.column_default)-2) = 'newid()' THEN 'generate_uuid_v4()'
|
||||
WHEN SUBSTRING(c.column_default,2,len(c.column_default)-2) LIKE 'convert(%varchar%,getdate(),%)' THEN 'today'
|
||||
WHEN SUBSTRING(c.column_default,2,len(c.column_default)-2) = 'getdate()' THEN 'CURRENT_TIMESTAMP'
|
||||
WHEN SUBSTRING(c.column_default,2,len(c.column_default)-2) LIKE '''%''' THEN SUBSTRING(c.column_default,3,len(c.column_default)-4)
|
||||
ELSE SUBSTRING(c.column_default,2,len(c.column_default)-2)
|
||||
WHEN SUBSTRING(c.COLUMN_DEFAULT,2,len(c.COLUMN_DEFAULT)-2) = 'newid()' THEN 'generate_uuid_v4()'
|
||||
WHEN SUBSTRING(c.COLUMN_DEFAULT,2,len(c.COLUMN_DEFAULT)-2) LIKE 'convert(%varchar%,getdate(),%)' THEN 'today'
|
||||
WHEN SUBSTRING(c.COLUMN_DEFAULT,2,len(c.COLUMN_DEFAULT)-2) = 'getdate()' THEN 'CURRENT_TIMESTAMP'
|
||||
WHEN SUBSTRING(c.COLUMN_DEFAULT,2,len(c.COLUMN_DEFAULT)-2) LIKE '''%''' THEN SUBSTRING(c.COLUMN_DEFAULT,3,len(c.COLUMN_DEFAULT)-4)
|
||||
ELSE SUBSTRING(c.COLUMN_DEFAULT,2,len(c.COLUMN_DEFAULT)-2)
|
||||
END
|
||||
ELSE c.column_default
|
||||
ELSE c.COLUMN_DEFAULT
|
||||
END,
|
||||
c.is_nullable,
|
||||
COLUMNPROPERTY(object_id(c.table_name), c.column_name, 'IsIdentity'),
|
||||
c.IS_NULLABLE,
|
||||
COLUMNPROPERTY(object_id(c.TABLE_NAME), c.COLUMN_NAME, 'IsIdentity'),
|
||||
c.CHARACTER_MAXIMUM_LENGTH,
|
||||
c.NUMERIC_PRECISION,
|
||||
c.NUMERIC_PRECISION_RADIX,
|
||||
@ -37,13 +37,13 @@
|
||||
c.CHARACTER_SET_NAME,
|
||||
c.COLLATION_NAME
|
||||
|
||||
from information_schema.columns c
|
||||
join information_schema.tables t
|
||||
on c.table_schema = t.table_schema
|
||||
and c.table_name = t.table_name
|
||||
from INFORMATION_SCHEMA.COLUMNS c
|
||||
join INFORMATION_SCHEMA.TABLES t
|
||||
on c.TABLE_SCHEMA = t.TABLE_SCHEMA
|
||||
and c.TABLE_NAME = t.TABLE_NAME
|
||||
|
||||
where c.table_catalog = '~a'
|
||||
and t.table_type = '~a'
|
||||
where c.TABLE_CATALOG = '~a'
|
||||
and t.TABLE_TYPE = '~a'
|
||||
~:[~*~;and (~{~a~^~&~10t or ~})~]
|
||||
~:[~*~;and (~{~a~^~&~10t and ~})~]
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user