@@ -68,7 +68,7 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
68
68
String sql = "select \" tinyIntField\" from arrowdatatype" ;
69
69
String plan = "PLAN=ArrowToEnumerableConverter\n "
70
70
+ " ArrowProject(tinyIntField=[$0])\n "
71
- + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n \n " ;
71
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]])\n \n " ;
72
72
String result = "tinyIntField=0\n tinyIntField=1\n " ;
73
73
CalciteAssert .that ()
74
74
.with (arrow )
@@ -82,7 +82,7 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
82
82
String sql = "select \" smallIntField\" from arrowdatatype" ;
83
83
String plan = "PLAN=ArrowToEnumerableConverter\n "
84
84
+ " ArrowProject(smallIntField=[$1])\n "
85
- + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n \n " ;
85
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]])\n \n " ;
86
86
String result = "smallIntField=0\n smallIntField=1\n " ;
87
87
CalciteAssert .that ()
88
88
.with (arrow )
@@ -96,7 +96,7 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
96
96
String sql = "select \" intField\" from arrowdatatype" ;
97
97
String plan = "PLAN=ArrowToEnumerableConverter\n "
98
98
+ " ArrowProject(intField=[$2])\n "
99
- + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n \n " ;
99
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]])\n \n " ;
100
100
String result = "intField=0\n intField=1\n " ;
101
101
CalciteAssert .that ()
102
102
.with (arrow )
@@ -110,7 +110,7 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
110
110
String sql = "select \" longField\" from arrowdatatype" ;
111
111
String plan = "PLAN=ArrowToEnumerableConverter\n "
112
112
+ " ArrowProject(longField=[$5])\n "
113
- + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n \n " ;
113
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]])\n \n " ;
114
114
String result = "longField=0\n longField=1\n " ;
115
115
CalciteAssert .that ()
116
116
.with (arrow )
@@ -124,7 +124,7 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
124
124
String sql = "select \" floatField\" from arrowdatatype" ;
125
125
String plan = "PLAN=ArrowToEnumerableConverter\n "
126
126
+ " ArrowProject(floatField=[$4])\n "
127
- + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n \n " ;
127
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]])\n \n " ;
128
128
String result = "floatField=0.0\n floatField=1.0\n " ;
129
129
CalciteAssert .that ()
130
130
.with (arrow )
@@ -138,7 +138,7 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
138
138
String sql = "select \" doubleField\" from arrowdatatype" ;
139
139
String plan = "PLAN=ArrowToEnumerableConverter\n "
140
140
+ " ArrowProject(doubleField=[$6])\n "
141
- + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n \n " ;
141
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]])\n \n " ;
142
142
String result = "doubleField=0.0\n doubleField=1.0\n " ;
143
143
CalciteAssert .that ()
144
144
.with (arrow )
@@ -152,7 +152,7 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
152
152
String sql = "select \" decimalField\" from arrowdatatype" ;
153
153
String plan = "PLAN=ArrowToEnumerableConverter\n "
154
154
+ " ArrowProject(decimalField=[$8])\n "
155
- + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n \n " ;
155
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]])\n \n " ;
156
156
String result = "decimalField=0.00\n decimalField=1.00\n " ;
157
157
CalciteAssert .that ()
158
158
.with (arrow )
@@ -166,7 +166,7 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
166
166
String sql = "select \" dateField\" from arrowdatatype" ;
167
167
String plan = "PLAN=ArrowToEnumerableConverter\n "
168
168
+ " ArrowProject(dateField=[$9])\n "
169
- + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n \n " ;
169
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]])\n \n " ;
170
170
String result = "dateField=1970-01-01\n "
171
171
+ "dateField=1970-01-02\n " ;
172
172
CalciteAssert .that ()
@@ -181,7 +181,7 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
181
181
String sql = "select \" booleanField\" from arrowdatatype" ;
182
182
String plan = "PLAN=ArrowToEnumerableConverter\n "
183
183
+ " ArrowProject(booleanField=[$7])\n "
184
- + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n \n " ;
184
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]])\n \n " ;
185
185
String result = "booleanField=null\n booleanField=true\n booleanField=false\n " ;
186
186
CalciteAssert .that ()
187
187
.with (arrow )
@@ -198,7 +198,7 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
198
198
String sql = "select \" decimalField2\" from arrowdatatype" ;
199
199
String plan = "PLAN=ArrowToEnumerableConverter\n "
200
200
+ " ArrowProject(decimalField2=[$10])\n "
201
- + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n \n " ;
201
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]])\n \n " ;
202
202
String result = "decimalField2=20.000\n decimalField2=21.000\n " ;
203
203
CalciteAssert .that ()
204
204
.with (arrow )
@@ -207,4 +207,19 @@ static void initializeArrowState(@TempDir Path sharedTempDir)
207
207
.returns (result )
208
208
.explainContains (plan );
209
209
}
210
+
211
+ @ Test void testTimeProject () {
212
+ String sql = "select \" timeField\" from arrowdatatype" ;
213
+ String plan = "PLAN=ArrowToEnumerableConverter\n "
214
+ + " ArrowProject(timeField=[$11])\n "
215
+ + " ArrowTableScan(table=[[ARROW, ARROWDATATYPE]], fields=[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]])\n \n " ;
216
+ String result = "timeField=00:00:00\n "
217
+ + "timeField=00:00:01\n " ;
218
+ CalciteAssert .that ()
219
+ .with (arrow )
220
+ .query (sql )
221
+ .limit (2 )
222
+ .returns (result )
223
+ .explainContains (plan );
224
+ }
210
225
}
0 commit comments