]> git.phdru.name Git - sqlconvert.git/blob - scripts/group-sql.py
Group statements separated by semicolons
[sqlconvert.git] / scripts / group-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     StatementGrouper
9
10
11 def main(*queries):
12     grouper = StatementGrouper()
13     for query in queries:
14         grouper.process(parse(query)[0])
15         if grouper.statements:
16             for statement in grouper.get_statements():
17                 print("----------")
18                 if find_error(statement):
19                     print("ERRORS IN QUERY")
20                 requote_names(statement)
21                 print_tokens(statement)
22                 print()
23                 statement._pprint_tree()
24             print("----------")
25     grouper.close()
26
27
28 def test():
29     main(
30         "SELECT * FROM `mytable`; -- line-comment",
31         "INSERT into /* inline comment */ mytable VALUES (1, 'one');",
32         "/*! directive*/ INSERT INTO `MyTable` (`Id`, `Name`) "
33         "VALUES (1, 'one');"
34     )
35
36
37 if __name__ == '__main__':
38     if len(sys.argv) <= 1:
39         sys.exit("Usage: %s [-t | sql_query_string [; sql_query_string ...]]" %
40                  sys.argv[0])
41     if sys.argv[1] == '-t':
42         test()
43     else:
44         queries = sys.argv[1:]
45         main(*queries)