Kurt,
Thanks for the reply. Assume my pseudo-calls below do the following:
Open: calls sqlite3_open
Exec: calls sqlite3_exec
Query: calls sqlite3_prepare, sqlite3_step, ..., sqlite3_finalize
Close: calls sqlite3_close
And check return values of these functions.
I am doing the following:
Open(<path>);
Exec("BEGIN");
Exec("PRAGMA full_column_names;");
Exec("CREATE TABLE A (a_col TEXT, PRIMARY KEY (a_col));")
Exec("CREATE TABLE B (b_col TEXT, a_col TEXT, PRIMARY KEY (b_col));")
Exec("COMMIT");
Exec("SELECT A.*, B.* FROM A, B WHERE A.a_col = B.b_col");
Now these tables are empty, but the column names are still retrievable.
In SQLite 2.8.15, the following names are returned:
A.a_col, B.b_col, B.a_col
In SQLite 3.1.0, regardless of whether either pragma (full_column_names
or short_column_names) is executed at the location above, the following
names are returned:
a_col, b_col, a_col.
I need these to be unique! Am I missing something? Are they
compile-time pragmas?
Thanks,
Steve
-----Original Message-----
From: Kurt Welgehausen [mailto:[EMAIL PROTECTED]
Sent: Tuesday, January 25, 2005 4:19 PM
To: [email protected]
Subject: Re: [sqlite] SQLite 3.1.0 Column Names
> PRAGMA full_column_names;
>
> PRAGMA short_column_names;
Did you really set them, or just query them?
<http://www.sqlite.org/pragma.html>:
PRAGMA full_column_names;
PRAGMA full_column_names = 0|1;
Query or change the short-column-names flag. ...
Regards