Team Ai
Apppublic

bmorphism/DuckDB-NSQL-7B

sourceHugging Faceapache-2.0updated 3y agoView on Hugging Face
0likes
validate_sql.py37 linesDownload Raw Back to root
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