You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/StatementParserTest.java
+72-29Lines changed: 72 additions & 29 deletions
Original file line number
Diff line number
Diff line change
@@ -696,46 +696,89 @@ public void testGoogleStandardSQLDialectIsQuery_QueryHints() {
696
696
697
697
// Supports query hints, PostgreSQL dialect does NOT
698
698
// Valid query hints.
699
-
assertTrue(parser.isQuery("@{JOIN_METHOD=HASH_JOIN} SELECT * FROM PersonsTable"));
700
-
assertTrue(parser.isQuery("@ {JOIN_METHOD=HASH_JOIN} SELECT * FROM PersonsTable"));
701
-
assertTrue(parser.isQuery("@{ JOIN_METHOD=HASH_JOIN} SELECT * FROM PersonsTable"));
702
-
assertTrue(parser.isQuery("@{JOIN_METHOD=HASH_JOIN } SELECT * FROM PersonsTable"));
703
-
assertTrue(parser.isQuery("@{JOIN_METHOD=HASH_JOIN}\nSELECT * FROM PersonsTable"));
704
-
assertTrue(parser.isQuery("@{\nJOIN_METHOD = HASH_JOIN \t}\n\t SELECT * FROM PersonsTable"));
705
699
assertTrue(
706
-
parser.isQuery(
707
-
"@{JOIN_METHOD=HASH_JOIN}\n -- Single line comment\nSELECT * FROM PersonsTable"));
700
+
parser
701
+
.parse(Statement.of("@{JOIN_METHOD=HASH_JOIN} SELECT * FROM PersonsTable"))
702
+
.isQuery());
708
703
assertTrue(
709
-
parser.isQuery(
710
-
"@{JOIN_METHOD=HASH_JOIN}\n /* Multi line comment\n with more comments\n */SELECT * FROM PersonsTable"));
704
+
parser
705
+
.parse(Statement.of("@ {JOIN_METHOD=HASH_JOIN} SELECT * FROM PersonsTable"))
706
+
.isQuery());
711
707
assertTrue(
712
-
parser.isQuery(
713
-
"@{JOIN_METHOD=HASH_JOIN} WITH subQ1 AS (SELECT SchoolID FROM Roster),\n"
714
-
+ " subQ2 AS (SELECT OpponentID FROM PlayerStats)\n"
715
-
+ "SELECT * FROM subQ1\n"
716
-
+ "UNION ALL\n"
717
-
+ "SELECT * FROM subQ2"));
708
+
parser
709
+
.parse(Statement.of("@{ JOIN_METHOD=HASH_JOIN} SELECT * FROM PersonsTable"))
710
+
.isQuery());
711
+
assertTrue(
712
+
parser
713
+
.parse(Statement.of("@{JOIN_METHOD=HASH_JOIN } SELECT * FROM PersonsTable"))
714
+
.isQuery());
715
+
assertTrue(
716
+
parser
717
+
.parse(Statement.of("@{JOIN_METHOD=HASH_JOIN}\nSELECT * FROM PersonsTable"))
718
+
.isQuery());
719
+
assertTrue(
720
+
parser
721
+
.parse(
722
+
Statement.of("@{\nJOIN_METHOD = HASH_JOIN \t}\n\t SELECT * FROM PersonsTable"))
723
+
.isQuery());
724
+
assertTrue(
725
+
parser
726
+
.parse(
727
+
Statement.of(
728
+
"@{JOIN_METHOD=HASH_JOIN}\n -- Single line comment\nSELECT * FROM PersonsTable"))
729
+
.isQuery());
730
+
assertTrue(
731
+
parser
732
+
.parse(
733
+
Statement.of(
734
+
"@{JOIN_METHOD=HASH_JOIN}\n /* Multi line comment\n with more comments\n */SELECT * FROM PersonsTable"))
735
+
.isQuery());
736
+
assertTrue(
737
+
parser
738
+
.parse(
739
+
Statement.of(
740
+
"@{JOIN_METHOD=HASH_JOIN} WITH subQ1 AS (SELECT SchoolID FROM Roster),\n"
741
+
+ " subQ2 AS (SELECT OpponentID FROM PlayerStats)\n"
742
+
+ "SELECT * FROM subQ1\n"
743
+
+ "UNION ALL\n"
744
+
+ "SELECT * FROM subQ2"))
745
+
.isQuery());
718
746
719
747
// Multiple query hints.
720
748
assertTrue(
721
-
parser.isQuery("@{FORCE_INDEX=index_name} @{JOIN_METHOD=HASH_JOIN} SELECT * FROM tbl"));
749
+
parser
750
+
.parse(
751
+
Statement.of("@{FORCE_INDEX=index_name, JOIN_METHOD=HASH_JOIN} SELECT * FROM tbl"))
752
+
.isQuery());
722
753
assertTrue(
723
-
parser.isQuery("@{FORCE_INDEX=index_name} @{JOIN_METHOD=HASH_JOIN} Select * FROM tbl"));
754
+
parser
755
+
.parse(
756
+
Statement.of("@{FORCE_INDEX=index_name, JOIN_METHOD=HASH_JOIN} Select * FROM tbl"))
757
+
.isQuery());
724
758
assertTrue(
725
-
parser.isQuery(
726
-
"@{FORCE_INDEX=index_name}\n@{JOIN_METHOD=HASH_JOIN}\nWITH subQ1 AS (SELECT SchoolID FROM Roster),\n"
727
-
+ " subQ2 AS (SELECT OpponentID FROM PlayerStats)\n"
728
-
+ "SELECT * FROM subQ1\n"
729
-
+ "UNION ALL\n"
730
-
+ "SELECT * FROM subQ2"));
759
+
parser
760
+
.parse(
761
+
Statement.of(
762
+
"@{FORCE_INDEX=index_name,\nJOIN_METHOD=HASH_JOIN}\nWITH subQ1 AS (SELECT SchoolID FROM Roster),\n"
763
+
+ " subQ2 AS (SELECT OpponentID FROM PlayerStats)\n"
764
+
+ "SELECT * FROM subQ1\n"
765
+
+ "UNION ALL\n"
766
+
+ "SELECT * FROM subQ2"))
767
+
.isQuery());
731
768
732
769
// Invalid query hints.
733
-
assertFalse(parser.isQuery("@{JOIN_METHOD=HASH_JOIN SELECT * FROM PersonsTable"));
734
-
assertFalse(parser.isQuery("@JOIN_METHOD=HASH_JOIN} SELECT * FROM PersonsTable"));
735
-
assertFalse(parser.isQuery("@JOIN_METHOD=HASH_JOIN SELECT * FROM PersonsTable"));
736
770
assertFalse(
737
-
parser.isQuery(
738
-
"@{FORCE_INDEX=index_name} @{JOIN_METHOD=HASH_JOIN} UPDATE tbl set FOO=1 WHERE ID=2"));
771
+
parser.parse(Statement.of("@{JOIN_METHOD=HASH_JOIN SELECT * FROM PersonsTable")).isQuery());
772
+
assertFalse(
773
+
parser.parse(Statement.of("@JOIN_METHOD=HASH_JOIN} SELECT * FROM PersonsTable")).isQuery());
774
+
assertFalse(
775
+
parser.parse(Statement.of("@JOIN_METHOD=HASH_JOIN SELECT * FROM PersonsTable")).isQuery());
776
+
assertFalse(
777
+
parser
778
+
.parse(
779
+
Statement.of(
780
+
"@{FORCE_INDEX=index_name} @{JOIN_METHOD=HASH_JOIN} UPDATE tbl set FOO=1 WHERE ID=2"))
0 commit comments