Message 198964 - Python tracker (original) (raw)
On Win32, when I select from an SQLite view, and enclose the column name in double quotes in the select query, the cursor description (erroneously?) contains the double quotes.
On Linux (or on Win32 when selecting from a table rather than a view) the cursor description does not contain the double quotes. I expect the Linux behavior, not the Win32 behavior.
The following code demonstrates the problem.
import sqlite3, sys
print (sys.platform) print (sys.version)
conn = sqlite3.connect (':memory:') cur = conn.cursor ()
cur.execute ('create table Foo ( foo_id integer primary key ) ;') cur.execute ('create view Foo_View as select * from Foo ;')
cur.execute ('select foo_id from Foo;') print (cur.description[0][0]) cur.execute ('select "foo_id" from Foo;') print (cur.description[0][0]) cur.execute ('select foo_id from Foo_View;') print (cur.description[0][0]) cur.execute ('select "foo_id" from Foo_View;') print (cur.description[0][0])
Sample output on Linux and Win32.
linux 3.3.1 (default, Apr 17 2013, 22:32:14) [GCC 4.7.3] foo_id foo_id foo_id foo_id
win32 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] foo_id foo_id foo_id "foo_id"
Above, please note the (erroneous?) double quotes around the final foo_id.