bmorphism/DuckDB-NSQL-7B
0
1import sys2import duckdb3from duckdb import ParserException, SyntaxException, BinderException, CatalogException4 5 6def validate_query(query, schemas):7 try:8 with duckdb.connect(9 ":memory:", config={"enable_external_access": False}10 ) as duckdb_conn:11 # register schemas12 for schema in schemas.split(";"):13 duckdb_conn.execute(schema)14 cursor = duckdb_conn.cursor()15 cursor.execute(query)16 except ParserException as e:17 return str(e)18 except SyntaxException as e:19 return str(e)20 except BinderException as e:21 return str(e)22 except CatalogException as e:23 if not ("but it exists" in str(e) and "extension" in str(e)):24 return str(e)25 except Exception as e:26 return None27 return None28 29 30if __name__ == "__main__":31 if len(sys.argv) > 2:32 error = validate_query(sys.argv[1], sys.argv[2])33 if error:34 raise Exception(error)35 else:36 print("No query provided.")37 