start = 0
end = table.nrows
- # Use 'where' statement or get all the rows
- def _cast_param(field, pname):
- # Cast value to the column type
+ def _get_field_type(field):
coltype = table.dtype.name
if type(table) is tables.table.Table:
coltype = table.coltypes[field]
+ return coltype
+
+ # Use 'where' statement or get all the rows
+ def _cast_param(field, pname):
+ # Cast value to the column type
+ coltype = _get_field_type(field)
fcast = None
if coltype == 'string':
fcast = str
if 'limit' in parsed_sql:
limit = int(parsed_sql['limit'])
+ # Offset
+ offset = None
+ if 'offset' in parsed_sql:
+ offset = int(parsed_sql['offset'])
+
# Truncate if needed
if page_size and max_returned_rows and truncate:
if max_returned_rows == page_size:
# Get results
get_rowid = make_get_rowid()
get_row_value = make_get_row_value()
+ if offset:
+ table_rows = table_rows[offset:]
count = 0
for table_row in table_rows:
count += 1
row['count(*)'] = int(table.nrows)
elif field_name.get('json_type'):
field_name = field_name.get('json_type')
- row['json_type(' + field_name + ')'] = table.coltypes[field_name]
+ row['json_type(' + field_name + ')'] = _get_field_type(field_name)
else:
raise Exception("Function not recognized")
else: