Skip to main content

A sql parser which support mysql, oceanbase and odps

Project description

sqlml-parser

sqlml-parser is a Python implementation of an SQL parser that effectively converts SQL statements into Abstract Syntax Trees (AST). By leveraging AST tree comparisons between two SQL queries, it becomes possible to achieve robust evaluation of text-to-SQL models.

Quick Start

Install

pip install sqlml-parser

Parser SQL

>> > from sqlml_parser.parser.mysql_parser import parser as mysql_parser
>> > mysql_parser.parse("select * from t")
Query(query_body=QuerySpecification(select=Select(distinct=False, select_items=[
    SingleColumn(expression=QualifiedNameReference(name=QualifiedName.of("*")))]),
                                    from_=Table(name=QualifiedName.of("t"), for_update=False), order_by=[], limit=0,
                                    offset=0, for_update=False, nowait_or_wait=False), order_by=[], limit=0, offset=0)
>> > from sqlml_parser.parser.oceanbase_parser import parser as oceanbase_parser
>> > oceanbase_parser.parse("select * from t")
Query(query_body=QuerySpecification(select=Select(distinct=False, select_items=[
    SingleColumn(expression=QualifiedNameReference(name=QualifiedName.of("*")))]),
                                    from_=Table(name=QualifiedName.of("t"), for_update=False), order_by=[], limit=0,
                                    offset=0, for_update=False, nowait_or_wait=False), order_by=[], limit=0, offset=0)
>> > from sqlml_parser.parser.odps_parser import parser as odps_parser
>> > odps_parser.parse("select * from t")
Query(query_body=QuerySpecification(select=Select(distinct=False, select_items=[
    SingleColumn(expression=QualifiedNameReference(name=QualifiedName.of("*")))]),
                                    from_=Table(name=QualifiedName.of("t"), for_update=False), order_by=[], limit=0,
                                    offset=0, for_update=False, nowait_or_wait=False), order_by=[], limit=0, offset=0)

Format SQL

>>> from sqlml_parser.format.formatter import format_sql
>>> from sqlml_parser.parser.mysql_parser import parser
>>> result=parser.parse("select * from t")
>>> format_sql(result)
'SELECT\n  *\nFROM\n  t'

Getting Started with SQL Parser Development

Document: SQL Parser Development Guide

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlml_parser-0.0.1.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqlml_parser-0.0.1-py3-none-any.whl (2.7 MB view details)

Uploaded Python 3

File details

Details for the file sqlml_parser-0.0.1.tar.gz.

File metadata

  • Download URL: sqlml_parser-0.0.1.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for sqlml_parser-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b6367cf16c89dfe00c4dab9685b095b9690e4243524de7cb4f7566279b2e2d81
MD5 bc7d1337c383ffcb67e344be2f46fc36
BLAKE2b-256 05526bcf90d85c2e5aedd427ee8b7a5493c43287b6abc4eb2b3ebfb15ced57b5

See more details on using hashes here.

File details

Details for the file sqlml_parser-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: sqlml_parser-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for sqlml_parser-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fc58329faa556044122a23346d46fff706c8cf247d11587b541fa5c172e47741
MD5 4d93afcdec83044a683dd44d027db96f
BLAKE2b-256 b9aad58354def4dca726f12e4853dde1d9e3a22baa5933510d6a6129871196f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page