X-Git-Url: https://git.jsancho.org/?p=datasette-pytables.git;a=blobdiff_plain;f=datasette_pytables%2F__init__.py;h=751e2605e7d216a82c610d9fc3b7dc4df376b617;hp=93cc1f082fd6eef31e0250ef644080cf4474303c;hb=b2d1fb00b24c757e70ca46eb44bae5d7f7670b9e;hpb=6e8ac54ac9cc83d82ae2482dcec518a1f09991fa diff --git a/datasette_pytables/__init__.py b/datasette_pytables/__init__.py index 93cc1f0..751e260 100644 --- a/datasette_pytables/__init__.py +++ b/datasette_pytables/__init__.py @@ -1,4 +1,3 @@ -from collections import OrderedDict from moz_sql_parser import parse import re import tables @@ -94,7 +93,10 @@ class Connection: # Use 'where' statement or get all the rows def _cast_param(field, pname): # Cast value to the column type - coltype = table.coltypes[field] + if type(table) is tables.table.Table: + coltype = table.coltypes[field] + else: + coltype = table.dtype.name fcast = None if coltype == 'string': fcast = str @@ -107,6 +109,7 @@ class Connection: def _translate_where(where): # Translate SQL to PyTables expression + nonlocal start, end expr = '' operator = list(where)[0] @@ -118,9 +121,10 @@ class Connection: elif operator == 'exists': pass elif where == {'eq': ['rowid', 'p0']}: - nonlocal start, end start = int(params['p0']) end = start + 1 + elif where == {'gt': ['rowid', 'p0']}: + start = int(params['p0']) + 1 else: left, right = where[operator] if left in params: