PRAGMA table_info испортил набор результатов

У меня есть этот скрипт:

#!/usr/bin/env python3 import sqlite3 conn = sqlite3.connect('sample.dbf') try: conn.execute('''DROP TABLE mytable''') except: pass conn.execute('''CREATE TABLE mytable (parentId TEXT, childId TEXT)''') conn.execute('''INSERT INTO mytable VALUES('A', 'B')''') conn.execute('''INSERT INTO mytable VALUES('C', 'D')''') c1 = conn.cursor() c1.execute('''SELECT * FROM mytable''') #c2 = conn.cursor() #c2.execute('''PRAGMA table_info(mytable)''') for row in c1: print(row) 

Ожидается выход:

 ('A', 'B') ('C', 'D') 

Однако, если я повторно добавлю две прокомментированные строки, чтобы прочитать информацию таблицы перед повторением набора результатов от первого курсора, я получаю

 ('A', 'B') ('A', 'B') ('C', 'D') 

Должны ли курсоры быть независимыми? Почему PRAGMA table_info результирующий набор из первого запроса? Похож на ошибку в sqlite для меня, но, возможно, я тоже что-то пропустил …

Версия sqlite3 2.6.0 с SQLite runtime 3.8.3.1 на Python 3.4.2