Skip to content

Commit 7072986

Browse files
committed
fix: wrong schema queries in SQLite, always shows columns and indexes of first database file
Closes #1823
1 parent 7456c38 commit 7072986

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

source/dbconnection.pas

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6099,7 +6099,7 @@ function TSQLiteConnection.GetTableColumns(Table: TDBObject): TTableColumnList;
60996099
// Todo: include database name
61006100
// Todo: default values
61016101
Result := TTableColumnList.Create(True);
6102-
ColQuery := GetResults('SELECT * FROM '+QuoteIdent(Table.Database)+'.pragma_table_xinfo('+EscapeString(Table.Name)+')');
6102+
ColQuery := GetResults('SELECT * FROM pragma_table_xinfo('+EscapeString(Table.Name)+', '+EscapeString(Table.Database)+')');
61036103
while not ColQuery.Eof do begin
61046104
Col := TTableColumn.Create(Self);
61056105
Result.Add(Col);
@@ -6386,7 +6386,7 @@ function TSQLiteConnection.GetTableKeys(Table: TDBObject): TTableKeyList;
63866386
begin
63876387
Result := TTableKeyList.Create(True);
63886388
ColQuery := GetResults('SELECT * '+
6389-
'FROM '+QuoteIdent(Table.Database)+'.pragma_table_xinfo('+EscapeString(Table.Name)+') '+
6389+
'FROM pragma_table_xinfo('+EscapeString(Table.Name)+', '+EscapeString(Table.Database)+') '+
63906390
'WHERE pk!=0 ORDER BY pk');
63916391
NewKey := nil;
63926392
while not ColQuery.Eof do begin
@@ -6406,7 +6406,7 @@ function TSQLiteConnection.GetTableKeys(Table: TDBObject): TTableKeyList;
64066406
ColQuery.Free;
64076407

64086408
KeyQuery := GetResults('SELECT * '+
6409-
'FROM '+QuoteIdent(Table.Database)+'.pragma_index_list('+EscapeString(Table.Name)+') '+
6409+
'FROM pragma_index_list('+EscapeString(Table.Name)+', '+EscapeString(Table.Database)+') '+
64106410
'WHERE origin!='+EscapeString('pk'));
64116411
while not KeyQuery.Eof do begin
64126412
NewKey := TTableKey.Create(Self);
@@ -6416,7 +6416,7 @@ function TSQLiteConnection.GetTableKeys(Table: TDBObject): TTableKeyList;
64166416
NewKey.IndexType := IfThen(KeyQuery.Col('unique')='0', TTableKey.KEY, TTableKey.UNIQUE);
64176417
NewKey.OldIndexType := NewKey.IndexType;
64186418
ColQuery := GetResults('SELECT * '+
6419-
'FROM '+QuoteIdent(Table.Database)+'.pragma_index_info('+EscapeString(NewKey.Name)+')');
6419+
'FROM pragma_index_info('+EscapeString(NewKey.Name)+', '+EscapeString(Table.Database)+')');
64206420
while not ColQuery.Eof do begin
64216421
NewKey.Columns.Add(ColQuery.Col('name'));
64226422
NewKey.SubParts.Add('');
@@ -6631,7 +6631,7 @@ function TSQLiteConnection.GetTableForeignKeys(Table: TDBObject): TForeignKeyLis
66316631
// SQLite: query PRAGMA foreign_key_list
66326632
Result := TForeignKeyList.Create(True);
66336633
ForeignQuery := GetResults('SELECT * '+
6634-
'FROM '+QuoteIdent(Table.Database)+'.pragma_foreign_key_list('+EscapeString(Table.Name)+')');
6634+
'FROM pragma_foreign_key_list('+EscapeString(Table.Name)+', '+EscapeString(Table.Database)+')');
66356635
ForeignKey := nil;
66366636
while not ForeignQuery.Eof do begin
66376637
if (not Assigned(ForeignKey)) or (ForeignKey.KeyName <> ForeignQuery.Col('id')) then begin

0 commit comments

Comments
 (0)