Skip to main content

Parses MySQL and translates ADQL to MySQL.

Project description

Let’s parse some MySQL and ADQL!

Build Status Coverage Status

Parsing MySQL

Processing of MySQL queries is done by first creating an instance of the MySQLQueryProcessor class

from queryparser.mysql import MySQLQueryProcessor

qp = MySQLQueryProcessor()

feeding it a MySQL query

sql = "SELECT a FROM db.tab;"
qp.set_query(sql)

and running it with

qp.process_query()

After the processing, the processor object will include columns, functions, and keywords used in the query or will raise a QuerySyntaxError if there are any syntax errors in the query.

Alternatively, passing the query at initialization automatically processes it.

Translating ADQL

Translation of ADQL queries is done similarly by first creating an instance of the ADQLQueryTranslator class

from queryparser.adql import ADQLQueryTranslator

adql = 'SELECT TOP 100 POINT("ICRS", ra, de) FROM db.tab'
adt = ADQLQueryTranslator(adql)

and calling

adt.to_mysql()

which returns a translated string representing a valid MySQL query if the ADQL query had no errors. The MySQL query can then be parsed with the MySQLQueryProcessor in the same way as shown above.

Generating the parser from the git repository

To generate the parsers you need python (either 2 or 3), java above version 7, and antlr4 (which has to be installed inside the /usr/local/lib/ or /usr/local/bin/ directories).

After cloning the project, run

make

and a lib directory will be created with the complete source for python2 and python3. After that, run:

python setup.py install

to install the generated parser in you virtual env.

Testing

First, install pytest

pip install pytest

then, run the test suite:

pytest

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

queryparser-python3-0.2.1.tar.gz (214.8 kB view details)

Uploaded Source

File details

Details for the file queryparser-python3-0.2.1.tar.gz.

File metadata

File hashes

Hashes for queryparser-python3-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f5be7dea8dbc48ad1bbdc36178b3ecdb18eadbd3324864d6ebefe3e051e780be
MD5 ad725ea26920b6c430e7c50edcb1d468
BLAKE2b-256 dab5169d2ebcde23ac759313698ed0664918b0974ccaba4bb77cdb358ad02156

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