]> git.phdru.name Git - sqlconvert.git/blob - demo/parse-sql.py
Rename scripts -> demo; move sample.sql into demo
[sqlconvert.git] / demo / parse-sql.py
1 #! /usr/bin/env python
2 from __future__ import print_function
3
4 import sys
5 from sqlparse import parse
6 from mysql2sql.print_tokens import print_tokens
7 from mysql2sql.process_tokens import requote_names, find_error
8
9
10 def main(*queries):
11     for query in queries:
12         for parsed in parse(query):
13             print("----------")
14             if find_error(parsed):
15                 print("ERRORS IN QUERY")
16             requote_names(parsed)
17             print_tokens(parsed)
18             print()
19             parsed._pprint_tree()
20         print("----------")
21
22
23 def test():
24     main(
25         "SELECT * FROM `mytable`; -- line-comment",
26         "INSERT into /* inline comment */ mytable VALUES (1, 'one')",
27         "/*! directive*/ INSERT INTO `MyTable` (`Id`, `Name`) "
28         "VALUES (1, 'one')"
29     )
30
31
32 if __name__ == '__main__':
33     if len(sys.argv) <= 1:
34         sys.exit("Usage: %s [-t | sql_query_string [; sql_query_string ...]]" %
35                  sys.argv[0])
36     if sys.argv[1] == '-t':
37         test()
38     else:
39         queries = sys.argv[1:]
40         main(*queries)