Skip to content

Commit e18b74e

Browse files
committed
Test coverage
1 parent 9bdc892 commit e18b74e

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

src/ast/visitor.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -729,6 +729,16 @@ mod tests {
729729
ControlFlow::Continue(())
730730
}
731731

732+
fn pre_visit_select(&mut self, select: &Select) -> ControlFlow<Self::Break> {
733+
self.visited.push(format!("PRE: SELECT: {select}"));
734+
ControlFlow::Continue(())
735+
}
736+
737+
fn post_visit_select(&mut self, select: &Select) -> ControlFlow<Self::Break> {
738+
self.visited.push(format!("POST: SELECT: {select}"));
739+
ControlFlow::Continue(())
740+
}
741+
732742
fn pre_visit_relation(&mut self, relation: &ObjectName) -> ControlFlow<Self::Break> {
733743
self.visited.push(format!("PRE: RELATION: {relation}"));
734744
ControlFlow::Continue(())
@@ -799,10 +809,12 @@ mod tests {
799809
vec![
800810
"PRE: STATEMENT: SELECT * FROM table_name AS my_table",
801811
"PRE: QUERY: SELECT * FROM table_name AS my_table",
812+
"PRE: SELECT: SELECT * FROM table_name AS my_table",
802813
"PRE: TABLE FACTOR: table_name AS my_table",
803814
"PRE: RELATION: table_name",
804815
"POST: RELATION: table_name",
805816
"POST: TABLE FACTOR: table_name AS my_table",
817+
"POST: SELECT: SELECT * FROM table_name AS my_table",
806818
"POST: QUERY: SELECT * FROM table_name AS my_table",
807819
"POST: STATEMENT: SELECT * FROM table_name AS my_table",
808820
],
@@ -812,6 +824,7 @@ mod tests {
812824
vec![
813825
"PRE: STATEMENT: SELECT * FROM t1 JOIN t2 ON t1.id = t2.t1_id",
814826
"PRE: QUERY: SELECT * FROM t1 JOIN t2 ON t1.id = t2.t1_id",
827+
"PRE: SELECT: SELECT * FROM t1 JOIN t2 ON t1.id = t2.t1_id",
815828
"PRE: TABLE FACTOR: t1",
816829
"PRE: RELATION: t1",
817830
"POST: RELATION: t1",
@@ -826,6 +839,7 @@ mod tests {
826839
"PRE: EXPR: t2.t1_id",
827840
"POST: EXPR: t2.t1_id",
828841
"POST: EXPR: t1.id = t2.t1_id",
842+
"POST: SELECT: SELECT * FROM t1 JOIN t2 ON t1.id = t2.t1_id",
829843
"POST: QUERY: SELECT * FROM t1 JOIN t2 ON t1.id = t2.t1_id",
830844
"POST: STATEMENT: SELECT * FROM t1 JOIN t2 ON t1.id = t2.t1_id",
831845
],
@@ -835,20 +849,24 @@ mod tests {
835849
vec![
836850
"PRE: STATEMENT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
837851
"PRE: QUERY: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
852+
"PRE: SELECT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
838853
"PRE: TABLE FACTOR: t1",
839854
"PRE: RELATION: t1",
840855
"POST: RELATION: t1",
841856
"POST: TABLE FACTOR: t1",
842857
"PRE: EXPR: EXISTS (SELECT column FROM t2)",
843858
"PRE: QUERY: SELECT column FROM t2",
859+
"PRE: SELECT: SELECT column FROM t2",
844860
"PRE: EXPR: column",
845861
"POST: EXPR: column",
846862
"PRE: TABLE FACTOR: t2",
847863
"PRE: RELATION: t2",
848864
"POST: RELATION: t2",
849865
"POST: TABLE FACTOR: t2",
866+
"POST: SELECT: SELECT column FROM t2",
850867
"POST: QUERY: SELECT column FROM t2",
851868
"POST: EXPR: EXISTS (SELECT column FROM t2)",
869+
"POST: SELECT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
852870
"POST: QUERY: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
853871
"POST: STATEMENT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
854872
],
@@ -858,20 +876,24 @@ mod tests {
858876
vec![
859877
"PRE: STATEMENT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
860878
"PRE: QUERY: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
879+
"PRE: SELECT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
861880
"PRE: TABLE FACTOR: t1",
862881
"PRE: RELATION: t1",
863882
"POST: RELATION: t1",
864883
"POST: TABLE FACTOR: t1",
865884
"PRE: EXPR: EXISTS (SELECT column FROM t2)",
866885
"PRE: QUERY: SELECT column FROM t2",
886+
"PRE: SELECT: SELECT column FROM t2",
867887
"PRE: EXPR: column",
868888
"POST: EXPR: column",
869889
"PRE: TABLE FACTOR: t2",
870890
"PRE: RELATION: t2",
871891
"POST: RELATION: t2",
872892
"POST: TABLE FACTOR: t2",
893+
"POST: SELECT: SELECT column FROM t2",
873894
"POST: QUERY: SELECT column FROM t2",
874895
"POST: EXPR: EXISTS (SELECT column FROM t2)",
896+
"POST: SELECT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
875897
"POST: QUERY: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
876898
"POST: STATEMENT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
877899
],
@@ -881,24 +903,30 @@ mod tests {
881903
vec![
882904
"PRE: STATEMENT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2) UNION SELECT * FROM t3",
883905
"PRE: QUERY: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2) UNION SELECT * FROM t3",
906+
"PRE: SELECT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
884907
"PRE: TABLE FACTOR: t1",
885908
"PRE: RELATION: t1",
886909
"POST: RELATION: t1",
887910
"POST: TABLE FACTOR: t1",
888911
"PRE: EXPR: EXISTS (SELECT column FROM t2)",
889912
"PRE: QUERY: SELECT column FROM t2",
913+
"PRE: SELECT: SELECT column FROM t2",
890914
"PRE: EXPR: column",
891915
"POST: EXPR: column",
892916
"PRE: TABLE FACTOR: t2",
893917
"PRE: RELATION: t2",
894918
"POST: RELATION: t2",
895919
"POST: TABLE FACTOR: t2",
920+
"POST: SELECT: SELECT column FROM t2",
896921
"POST: QUERY: SELECT column FROM t2",
897922
"POST: EXPR: EXISTS (SELECT column FROM t2)",
923+
"POST: SELECT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2)",
924+
"PRE: SELECT: SELECT * FROM t3",
898925
"PRE: TABLE FACTOR: t3",
899926
"PRE: RELATION: t3",
900927
"POST: RELATION: t3",
901928
"POST: TABLE FACTOR: t3",
929+
"POST: SELECT: SELECT * FROM t3",
902930
"POST: QUERY: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2) UNION SELECT * FROM t3",
903931
"POST: STATEMENT: SELECT * FROM t1 WHERE EXISTS (SELECT column FROM t2) UNION SELECT * FROM t3",
904932
],
@@ -912,6 +940,7 @@ mod tests {
912940
vec![
913941
"PRE: STATEMENT: SELECT * FROM monthly_sales PIVOT(SUM(a.amount) FOR a.MONTH IN ('JAN', 'FEB', 'MAR', 'APR')) AS p (c, d) ORDER BY EMPID",
914942
"PRE: QUERY: SELECT * FROM monthly_sales PIVOT(SUM(a.amount) FOR a.MONTH IN ('JAN', 'FEB', 'MAR', 'APR')) AS p (c, d) ORDER BY EMPID",
943+
"PRE: SELECT: SELECT * FROM monthly_sales PIVOT(SUM(a.amount) FOR a.MONTH IN ('JAN', 'FEB', 'MAR', 'APR')) AS p (c, d)",
915944
"PRE: TABLE FACTOR: monthly_sales PIVOT(SUM(a.amount) FOR a.MONTH IN ('JAN', 'FEB', 'MAR', 'APR')) AS p (c, d)",
916945
"PRE: TABLE FACTOR: monthly_sales",
917946
"PRE: RELATION: monthly_sales",
@@ -932,6 +961,7 @@ mod tests {
932961
"PRE: EXPR: 'APR'",
933962
"POST: EXPR: 'APR'",
934963
"POST: TABLE FACTOR: monthly_sales PIVOT(SUM(a.amount) FOR a.MONTH IN ('JAN', 'FEB', 'MAR', 'APR')) AS p (c, d)",
964+
"POST: SELECT: SELECT * FROM monthly_sales PIVOT(SUM(a.amount) FOR a.MONTH IN ('JAN', 'FEB', 'MAR', 'APR')) AS p (c, d)",
935965
"PRE: EXPR: EMPID",
936966
"POST: EXPR: EMPID",
937967
"POST: QUERY: SELECT * FROM monthly_sales PIVOT(SUM(a.amount) FOR a.MONTH IN ('JAN', 'FEB', 'MAR', 'APR')) AS p (c, d) ORDER BY EMPID",

0 commit comments

Comments
 (0)