X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=datasette_connectors%2Fcursor.py;h=02585a367e1957d8f55aa1e4c634a6b25392bf9d;hb=2bbd8101389969b749f91dea1231682773caebae;hp=6facf548bd3460bef5c7393ced470b062093d9b6;hpb=3cc49f23a9f3c0e8cb2b7eb707382c6ae708c1f4;p=datasette-connectors.git diff --git a/datasette_connectors/cursor.py b/datasette_connectors/cursor.py index 6facf54..02585a3 100644 --- a/datasette_connectors/cursor.py +++ b/datasette_connectors/cursor.py @@ -14,7 +14,7 @@ class Cursor: def __init__(self, conn): self.conn = conn - self.connector = conn.connector + self.connector = conn.connector_class(conn) self.rows = [] self.description = () @@ -54,7 +54,7 @@ class Cursor: 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) @@ -67,7 +67,8 @@ class Cursor: 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: