else:
query = parsed_sql['where']
+ # Sort by column
+ orderby = ''
+ if 'orderby' in parsed_sql:
+ orderby = parsed_sql['orderby']
+ if type(orderby) is list:
+ orderby = orderby[0]
+ orderby = orderby['value']
+ if orderby == 'rowid':
+ orderby = ''
+
# Limit number of rows
limit = None
if 'limit' in parsed_sql:
# Execute query
if query:
table_rows = table.where(query, params, start, end)
+ elif orderby:
+ table_rows = table.itersorted(orderby, start=start, stop=end)
else:
table_rows = table.iterrows(start, end)
elif sql == 'select sql from sqlite_master where name = :n and type="table"':
try:
table = self.h5file.get_node(params['n'])
+ colnames = ['value']
+ if type(table) is tables.table.Table:
+ colnames = table.colnames
row = Row()
- row['sql'] = 'CREATE TABLE {} ()'.format(params['n'])
+ row['sql'] = 'CREATE TABLE {} ({})'.format(params['n'], ", ".join(colnames))
return [row]
except:
return []
else:
raise Exception("SQLite queries cannot be executed with this connector")
+
class Row(list):
def __init__(self, values=None):
self.labels = []