2 from __future__ import print_function
5 from sqlconvert.print_tokens import print_tokens
6 from sqlconvert.process_tokens import find_error, StatementGrouper
9 def group_lines(*lines):
10 grouper = StatementGrouper(encoding='utf-8')
12 grouper.process_line(line)
13 for statement in grouper.get_statements():
15 if find_error(statement):
16 print("ERRORS IN QUERY")
17 print_tokens(statement, encoding='utf-8')
19 statement._pprint_tree()
21 tokens = grouper.close()
24 print_tokens(token, encoding='utf-8')
28 def group_test(_args):
30 "SELECT * FROM `mytable`; -- line-comment",
31 "INSERT into /* inline comment */ mytable VALUES (1, 'one');",
32 "/*! directive*/ INSERT INTO `MyTable` (`Id`, `Name`) "
38 group_lines(*args.lines)
42 infile = open(args.filename, 'rt')
43 lines = infile.readlines()
48 if __name__ == '__main__':
49 main_parser = argparse.ArgumentParser(description='Group')
50 subparsers = main_parser.add_subparsers(help='Commands')
52 parser = subparsers.add_parser('sql', help='SQL from command line')
53 parser.add_argument('lines', nargs='+', help='SQL lines')
54 parser.set_defaults(func=group_sql)
56 parser = subparsers.add_parser('test', help='SQL from test data')
57 parser.set_defaults(func=group_test)
59 parser = subparsers.add_parser('file', help='SQL from a file')
60 parser.add_argument('filename', help='SQL file')
61 parser.set_defaults(func=group_file)
63 args = main_parser.parse_args()