New submission from Christoph Burgmer <[email protected]>:
'PRAGMA database.table_info("SOME_TABLE_NAME")' will report table metadata for
the given database. The main database called 'main', can be extended by
attaching further databases via 'ATTACH DATABASE'. The above PRAGMA should
respect the chosen database, but fails to do so on Win32 (tested on Wine) while
it does on Linux.
How to reproduce:
FILE 'first.db' has table:
CREATE TABLE "First" (
"Test" INTEGER NOT NULL
);
FILE 'second.db' has table:
CREATE TABLE "Second" (
"Test" INTEGER NOT NULL
);
The final result of the following code shoule be empty, but returns table data
from second.db instead.
Y:\>python
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> conn = sqlite3.connect('first.db')
>>> c = conn.cursor()
>>> c.execute("ATTACH DATABASE 'second.db' AS 'second'")
<sqlite3.Cursor object at 0x0071FB00>
>>> for row in c:
... print repr(row)
...
>>> c.execute("PRAGMA 'main'.table_info('Second')")
<sqlite3.Cursor object at 0x0071FB00>
>>> for row in c:
... print repr(row)
...
(0, u'Test', u'INTEGER', 99, None, 0)
>>>
In contrast sqlite3.exe respects the value for the same command:
Y:\>sqlite3.exe first.db
SQLite version 3.6.23
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
First
sqlite> ATTACH DATABASE 'second.db' AS 'second';
sqlite> .tables
First
sqlite> PRAGMA main.table_info('Second');
sqlite> PRAGMA second.table_info('Second');
0|Test|INTEGER|1||0
sqlite>
Advice on further debugging possibilities is requested. I do not have a Windows
system available though, nor can I currently compile for Win32.
----------
components: Library (Lib)
messages: 101440
nosy: christoph
severity: normal
status: open
title: SQLite3 PRAGMA table_info doesn't respect database on Win32
versions: Python 2.6
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue8192>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com