@@ -106,48 +106,90 @@ public void tearDown() {
106106 }
107107
108108 @ Test
109- public void testQuery () {
110- final String mainQuery = "select * from cte order by deviceid" ;
111-
109+ public void testFilterQuery () {
112110 // case 1
111+ String mainQuery = "select * from cte where time > 1000 order by deviceid" ;
113112 String [] expectedHeader = new String [] {"time" , "deviceid" , "voltage" };
114113 String [] retArray =
115114 new String [] {
116- "1970-01-01T00:00:01.000Z,d1,100.0," ,
117115 "1970-01-01T00:00:02.000Z,d1,200.0," ,
118- "1970-01-01T00:00:01.000Z,d2,300.0,"
119116 };
120117 String [] cteTemplateQueries = new String [] {"cte as %s (select * from testtb)" };
121118 testCteSuccessWithVariants (cteTemplateQueries , mainQuery , expectedHeader , retArray );
122119
123120 // case 2
124- expectedHeader = new String [] { "deviceid" , " voltage" } ;
125- retArray = new String [] {"d1,100.0, " , "d1,200.0, " , "d2,300.0, " };
126- cteTemplateQueries = new String [] {"cte as %s (select deviceid, voltage from testtb) " };
121+ mainQuery = "select * from cte where voltage > 200 order by deviceid" ;
122+ expectedHeader = new String [] {"time " , "deviceid " , "voltage " };
123+ retArray = new String [] {"1970-01-01T00:00:01.000Z,d2,300.0, " };
127124 testCteSuccessWithVariants (cteTemplateQueries , mainQuery , expectedHeader , retArray );
125+ }
128126
129- // case 3
130- expectedHeader = new String [] {"deviceid" , "avg_voltage" };
131- retArray = new String [] {"d1,150.0," , "d2,300.0," };
132- cteTemplateQueries =
127+ @ Test
128+ public void testSortQuery () {
129+ final String mainQuery = "select * from cte order by deviceid, voltage desc" ;
130+
131+ String [] expectedHeader = new String [] {"time" , "deviceid" , "voltage" };
132+ String [] retArray =
133+ new String [] {
134+ "1970-01-01T00:00:02.000Z,d1,200.0," ,
135+ "1970-01-01T00:00:01.000Z,d1,100.0," ,
136+ "1970-01-01T00:00:01.000Z,d2,300.0,"
137+ };
138+ String [] cteTemplateQueries = new String [] {"cte as %s (select * from testtb)" };
139+ testCteSuccessWithVariants (cteTemplateQueries , mainQuery , expectedHeader , retArray );
140+ }
141+
142+ @ Test
143+ public void testLimitOffsetQuery () {
144+ final String mainQuery = "select * from cte limit 1 offset 1" ;
145+
146+ String [] expectedHeader = new String [] {"time" , "deviceid" , "voltage" };
147+ String [] retArray =
148+ new String [] {
149+ "1970-01-01T00:00:02.000Z,d1,200.0," ,
150+ };
151+ String [] cteTemplateQueries =
152+ new String [] {"cte as %s (select * from testtb where deviceid = 'd1') " };
153+ testCteSuccessWithVariants (cteTemplateQueries , mainQuery , expectedHeader , retArray );
154+ }
155+
156+ @ Test
157+ public void testAggQuery () {
158+ // case 1
159+ String mainQuery = "select * from cte order by deviceid" ;
160+ String [] expectedHeader = new String [] {"deviceid" , "avg_voltage" };
161+ String [] retArray = new String [] {"d1,150.0," , "d2,300.0," };
162+ String [] cteTemplateQueries =
133163 new String [] {
134164 "cte as %s (select deviceid, avg(voltage) as avg_voltage from testtb group by deviceid)"
135165 };
136166 testCteSuccessWithVariants (cteTemplateQueries , mainQuery , expectedHeader , retArray );
167+
168+ // case 2
169+ mainQuery =
170+ "select deviceid, avg(voltage) as avg_voltage from cte group by deviceid order by deviceid" ;
171+ cteTemplateQueries = new String [] {"cte as %s (select deviceid, voltage from testtb)" };
172+ testCteSuccessWithVariants (cteTemplateQueries , mainQuery , expectedHeader , retArray );
137173 }
138174
139175 @ Test
140176 public void testPartialColumn () {
141- final String mainQuery = "select * from cte order by id" ;
142-
143177 // case 1
144- String [] expectedHeader = new String [] {"id" , "v" };
178+ String mainQuery = "select * from cte order by deviceid" ;
179+ String [] expectedHeader = new String [] {"deviceid" , "voltage" };
145180 String [] retArray = new String [] {"d1,100.0," , "d1,200.0," , "d2,300.0," };
146- String [] cteTemplateQueries =
147- new String [] {"cte(id, v) as %s (select deviceid, voltage from testtb)" };
181+ String [] cteTemplateQueries = new String [] {"cte as %s (select deviceid, voltage from testtb)" };
148182 testCteSuccessWithVariants (cteTemplateQueries , mainQuery , expectedHeader , retArray );
149183
184+ mainQuery = "select * from cte order by id" ;
185+ expectedHeader = new String [] {"id" , "v" };
186+ retArray = new String [] {"d1,100.0," , "d1,200.0," , "d2,300.0," };
187+
150188 // case 2
189+ cteTemplateQueries = new String [] {"cte(id, v) as %s (select deviceid, voltage from testtb)" };
190+ testCteSuccessWithVariants (cteTemplateQueries , mainQuery , expectedHeader , retArray );
191+
192+ // case 3
151193 cteTemplateQueries = new String [] {"cte(v) as %s (select deviceid, voltage from testtb)" };
152194 String errMsg = "701: Column alias list has 1 entries but relation has 2 columns" ;
153195 testCteFailureWithVariants (cteTemplateQueries , mainQuery , errMsg );
0 commit comments