c++ - Why do sqlite columns have different names for views and tables? -


for sample database:

create table atable (   textfield varchar(256) );  create view aview select t.textfield atable t; 

and these selects:

select t.textfield atable t;  select t.textfield aview t; 

calling sqlite's sqlite3_column_name(...) yields different results select on view , on table. in case of table the alias not included, in case of view is.

here results:

table query - sqlite3_column_name (db, 0) -> "textfield" view query - sqlite3_column_name (db, 0) -> "t.textfield" 

why these different?

surprisingly, sqlite provides no guarantees column name returned sqlite_3_column_name unless provide name using as keyword.

from sqlite3_column_name function documentation:

the name of result column value of "as" clause column, if there clause. if there no clause name of column unspecified , may change 1 release of sqlite next.

therefore have manually specify column names if want depend on value returned. change queries :

select t.textfield textfield atable t; select t.textfield textfield aview t; 

and in both cases sqlite3_column_name return textfield.


Comments

Popular posts from this blog

Android layout hidden on keyboard show -

google app engine - 403 Forbidden POST - Flask WTForms -

c - Why would PK11_GenerateRandom() return an error -8023? -