Skip to main content

A sql parser which support mysql, oceanbase and odps

Project description

sqlgpt-parser

sqlgpt-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 sqlgpt-parser

Parser SQL

>> > from sqlgpt_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 sqlgpt_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 sqlgpt_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 sqlgpt_parser.format.formatter import format_sql
>>> from sqlgpt_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

English Document: SQL Parser Development Guide

中文文档:SQL Parser 开发指南

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

sqlgpt_parser-0.0.1a4.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file sqlgpt_parser-0.0.1a4.tar.gz.

File metadata

  • Download URL: sqlgpt_parser-0.0.1a4.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for sqlgpt_parser-0.0.1a4.tar.gz
Algorithm Hash digest
SHA256 2bc52b9555e5335bde10673e8c64ed409f4cce14d20496b6a81078400919a2a7
MD5 7f171a733f3b29f10081211d86c63d59
BLAKE2b-256 5c57bde5178a164ef53382c79a18152692d1760e193c6f7eb3d44a42813098ed

See more details on using hashes here.

File details

Details for the file sqlgpt_parser-0.0.1a4-py3-none-any.whl.

File metadata

File hashes

Hashes for sqlgpt_parser-0.0.1a4-py3-none-any.whl
Algorithm Hash digest
SHA256 139ed3a8242964930980dba11c8cbc2642b6cca7ccebf7651b6de4628da20ef2
MD5 bfc3a66d59e2579729e73f8b27c7a3b9
BLAKE2b-256 371842777ecbe140f552ca76999c07285d84a8dbaabb98d79610c8f92e2a2fd2

See more details on using hashes here.

Supported by

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