]> git.phdru.name Git - sqlconvert.git/blobdiff - scripts/print_subtree.py
Find an error in parse tree
[sqlconvert.git] / scripts / print_subtree.py
index 84ea88a9e39a2d13e5aa8914b8fa18ae22696832..76ac675ce9f5086652b785d89d1c8359640c350b 100755 (executable)
@@ -3,8 +3,8 @@ from __future__ import print_function
 
 import sys
 from sqlparse import parse
-from mysql2sql.process_tokens import requote_names
 from mysql2sql.print_tokens import print_tokens
+from mysql2sql.process_tokens import requote_names, find_error
 
 
 def test():
@@ -14,25 +14,35 @@ def test():
         "/*! directive*/ INSERT INTO `MyTable` (`Id`, `Name`) "
         "VALUES (1, 'one')"
     ):
-        print("----------")
         for parsed in parse(query):
+            print("----------")
+            if find_error(parsed):
+                print("ERRORS IN QUERY")
             requote_names(parsed)
             print_tokens(parsed)
+            print()
             parsed._pprint_tree()
     print("----------")
 
 
-def main(query):
-    parsed = parse(query)[0]
-    requote_names(parsed)
-    print_tokens(parsed)
-    parsed._pprint_tree()
+def main(*queries):
+    for query in queries:
+        for parsed in parse(query):
+            print("----------")
+            if find_error(parsed):
+                print("ERRORS IN QUERY")
+            requote_names(parsed)
+            print_tokens(parsed)
+            print()
+            parsed._pprint_tree()
+        print("----------")
 
 if __name__ == '__main__':
-    if len(sys.argv) != 2:
-        sys.exit("Usage: %s [-t | sql_query_string]" % sys.argv[0])
+    if len(sys.argv) <= 1:
+        sys.exit("Usage: %s [-t | sql_query_string [; sql_query_string ...]]" %
+                 sys.argv[0])
     if sys.argv[1] == '-t':
         test()
     else:
-        query = sys.argv[1]
-        main(query)
+        queries = sys.argv[1:]
+        main(*queries)