@@ -43,16 +43,16 @@ protected override string TableSQL()
4343 {
4444 return @"
4545SELECT 'main' AS SchemaName,
46- tbl_name AS TableName,
46+ TableName,
4747 TableType,
4848 0 AS TableTemporalType,
49- cid AS Ordinal,
49+ Ordinal,
5050 ColumnName,
5151 IsNullable,
5252 REPLACE(type, '(' || length || ')', '') AS TypeName,
53- CASE WHEN INSTR(type, ',') > 0 THEN 0 ELSE length END AS [MaxLength],
53+ length AS [MaxLength],
5454 Precision,
55- dflt_value AS [Default],
55+ [Default],
5656 0 AS DateTimePrecision,
5757 Scale,
5858 pk AS IsIdentity,
@@ -63,22 +63,22 @@ CASE WHEN INSTR(type, ',') > 0 THEN 0 ELSE length END AS [MaxLength],
6363 pk AS PrimaryKey,
6464 pk AS PrimaryKeyOrdinal,
6565 0 AS IsForeignKey
66- FROM (SELECT m.tbl_name,
67- CASE WHEN m.type = 'table' THEN 'BASE TABLE' ELSE 'VIEW' END AS TableType,
68- c.cid,
69- c.name AS ColumnName,
70- LOWER(c.type) AS type,
71- 1 - c.""notnull"" AS IsNullable,
72- c.dflt_value,
73- c. pk,
74- SUBSTR(c.type, INSTR(c.type, '(') + 1, INSTR(c.type, ')') - INSTR(c.type, '(') - 1) AS length,
75- CAST(SUBSTR(c.type, INSTR(c.type, '(') + 1, INSTR(c.type, ',') - INSTR(c.type, '(') - 1) AS INTEGER) AS Precision,
76- CAST(SUBSTR(c.type, INSTR(c.type, ',') + 1, INSTR(c.type, ')') - INSTR(c.type, ',') - 1) AS INTEGER) AS Scale
77- FROM sqlite_master m
78- JOIN PRAGMA_TABLE_INFO(m.name) c
79- WHERE m.type IN ('table', 'view')
80- AND m.name NOT LIKE 'sqlite_%')
81- ORDER BY tbl_name, cid ;" ;
66+ FROM (SELECT m.tbl_name AS TableName ,
67+ CASE WHEN m.type = 'table' THEN 'BASE TABLE' ELSE 'VIEW' END AS TableType,
68+ c.cid AS Ordinal ,
69+ c.name AS ColumnName,
70+ IIF(INSTR(c.type, '(') > 0, SUBSTR(LOWER(c.type), 0, INSTR(c.type, '(')), LOWER(c.type)) as type,
71+ 1 - c.""notnull"" AS IsNullable,
72+ c.dflt_value AS [Default] ,
73+ c.pk AS pk,
74+ CAST( SUBSTR(c.type, INSTR(c.type, '(') + 1, INSTR(c.type, ')') - INSTR(c.type, '(') - 1) AS INTEGER ) AS length,
75+ CAST(SUBSTR(c.type, INSTR(c.type, '(') + 1, INSTR(c.type, ',') - INSTR(c.type, '(') - 1) AS INTEGER) AS Precision,
76+ CAST(SUBSTR(c.type, INSTR(c.type, ',') + 1, INSTR(c.type, ')') - INSTR(c.type, ',') - 1) AS INTEGER) AS Scale
77+ FROM sqlite_master m
78+ JOIN PRAGMA_TABLE_INFO(m.name) c
79+ WHERE m.type IN ('table', 'view')
80+ AND m.name NOT LIKE 'sqlite_%')
81+ ORDER BY TableName, Ordinal ;" ;
8282 }
8383
8484 protected override string ForeignKeySQL ( )
@@ -115,12 +115,12 @@ protected override string IndexSQL()
115115 {
116116 return @"
117117WITH split(TableName, IndexName, KeyOrdinal, ColumnName, csv) AS (
118- SELECT TableName,
118+ SELECT TableName,
119119 IndexName,
120120 KeyOrdinal,
121121 '',
122122 column_name || ','
123- FROM (SELECT TableName,
123+ FROM (SELECT TableName,
124124 IndexName,
125125 0 AS KeyOrdinal,
126126 SUBSTR(sql, INSTR(sql, '(') + 1, INSTR(sql, ')') - INSTR(sql, '(') - 1) AS column_name
@@ -130,26 +130,27 @@ WITH split(TableName, IndexName, KeyOrdinal, ColumnName, csv) AS (
130130 FROM sqlite_master
131131 WHERE type = 'index'
132132 AND name NOT LIKE 'sqlite_%'))
133- UNION ALL
134- SELECT TableName,
133+ UNION ALL
134+ SELECT TableName,
135135 IndexName,
136136 KeyOrdinal + 1,
137137 SUBSTR(csv, 0, INSTR(csv, ',')),
138138 SUBSTR(csv, INSTR(csv, ',') + 1)
139- FROM split
140- WHERE csv != '')
139+ FROM split
140+ WHERE csv != '')
141141SELECT 'main' AS TableSchema,
142142 s.TableName,
143143 s.IndexName,
144144 s.KeyOrdinal,
145- TRIM(s.ColumnName),
146- 0 AS IsUnique,
147- 0 AS IsPrimaryKey,
148- 0 AS IsUniqueConstraint,
145+ TRIM(s.ColumnName) as ColumnName,
149146 (SELECT MAX(KeyOrdinal)
150147 FROM split x
151148 WHERE x.TableName = s.TableName
152- AND x.IndexName = s.IndexName) AS ColumnCount
149+ AND x.IndexName = s.IndexName) AS ColumnCount,
150+ 0 AS IsUnique,
151+ 0 AS IsPrimaryKey,
152+ 0 AS IsUniqueConstraint,
153+ 0 as IsClustered
153154FROM split s
154155WHERE ColumnName != ''" ;
155156 }
@@ -182,9 +183,9 @@ protected override string SequenceSQL()
182183 protected override string TriggerSQL ( )
183184 {
184185 return @"
185- SELECT 'main' AS TableSchema , tbl_name as TableName, name as TriggerName
186+ SELECT 'main' AS SchemaName , tbl_name AS TableName, name AS TriggerName
186187FROM sqlite_master
187- WHERE type = 'trigger'; " ;
188+ WHERE type = 'trigger'" ;
188189 }
189190
190191 protected override string [ ] MemoryOptimisedSQL ( )
0 commit comments