def __init__(self, conn):
self.conn = conn
- self.connector = conn.connector
+ self.connector = conn.connector_class(conn)
self.rows = []
self.description = ()
match = re.search(r'select count\(\*\) from (.*)', sql)
results = [{'count(*)': self.connector.table_count(match.group(1))}]
elif sql.startswith("PRAGMA table_info("):
- match = re.search(r'PRAGMA table_info\((.*)\)', sql)
+ match = re.search(r'PRAGMA table_info\(\[?\"?([\d\w\/%]*)\"?\]?\)', sql)
results = self.connector.table_info(match.group(1))
elif sql.startswith("select name from sqlite_master where rootpage = 0 and ( sql like \'%VIRTUAL TABLE%USING FTS%content="):
match = re.search(r'select name from sqlite_master where rootpage = 0 and \( sql like \'%VIRTUAL TABLE%USING FTS%content="(.*)"', sql)
if self.connector.table_exists(params[0]):
results = [{'1': '1'}]
elif sql == "select sql from sqlite_master where name = :n and type=:t":
- results = [{'sql': self.connector.table_definition(params['t'], params['n'])}]
+ if self.connector.table_exists(params['n']):
+ results = [{'sql': self.connector.table_definition(params['t'], params['n'])}]
elif sql == "select sql from sqlite_master where tbl_name = :n and type='index' and sql is not null":
results = [{'sql': sql} for sql in self.connector.indices_definition(params['n'])]
else: