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