1 from moz_sql_parser import parse
5 def parse_sql(sql, params):
7 sql = re.sub(r'(?i)from \[(.*)]', r'from "\g<1>"', sql)
10 sql = sql.replace(":" + param, param)
15 # Propably it's a PyTables expression
16 for token in ['group by', 'order by', 'limit', '']:
17 res = re.search('(?i)where (.*)' + token, sql)
19 modified_sql = re.sub('(?i)where (.*)(' + token + ')', r'\g<2>', sql)
20 parsed = parse(modified_sql)
21 parsed['where'] = res.group(1).strip()
24 # Always a list of fields
25 if type(parsed['select']) is not list:
26 parsed['select'] = [parsed['select']]