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.1a5.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: sqlgpt_parser-0.0.1a5.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.1a5.tar.gz
Algorithm Hash digest
SHA256 7dfc00209b6908f0fcb9aa064333fb1848996295cf6ee2ac72004a18f13a3e7f
MD5 cff9b2573c58467c60ea6a18d8ee6361
BLAKE2b-256 f051743ee5859f6b1a6bfbb0765e130638b3fec8982c6f766e9a82d1464afcc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sqlgpt_parser-0.0.1a5-py3-none-any.whl
Algorithm Hash digest
SHA256 d7e81875c2b120bee3545f47c544e1adce72cc7963690b02d7c34e5cf682fe6c
MD5 d818e14b80e0bb9451672e1cb80bf357
BLAKE2b-256 6998feda6c07971fb1006bd8119601b12c85e5157c54c00e4c65fc147a3f0d97

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