@@ -169,7 +169,7 @@ order by date_bin('30 minutes', time) DESC
169
169
170
170
# Reproducer for https://github.com/apache/arrow-datafusion/issues/8738
171
171
# This query should work correctly
172
- query error DataFusion error: External error: Arrow error: Invalid argument error: RowConverter column schema mismatch, expected Utf8 got Dictionary\(Int32, Utf8\)
172
+ query P?TT rowsort
173
173
SELECT
174
174
"data"."timestamp" as "time",
175
175
"data"."tag_id",
@@ -201,3 +201,82 @@ ORDER BY
201
201
"time",
202
202
"data"."tag_id"
203
203
;
204
+ ----
205
+ 2023-12-20T00:00:00 1000 f1 32.0
206
+ 2023-12-20T00:00:00 1000 f2 foo
207
+ 2023-12-20T00:10:00 1000 f1 32.0
208
+ 2023-12-20T00:10:00 1000 f2 foo
209
+ 2023-12-20T00:20:00 1000 f1 32.0
210
+ 2023-12-20T00:20:00 1000 f2 foo
211
+ 2023-12-20T00:30:00 1000 f1 32.0
212
+ 2023-12-20T00:30:00 1000 f2 foo
213
+ 2023-12-20T00:40:00 1000 f1 32.0
214
+ 2023-12-20T00:40:00 1000 f2 foo
215
+ 2023-12-20T00:50:00 1000 f1 32.0
216
+ 2023-12-20T00:50:00 1000 f2 foo
217
+ 2023-12-20T01:00:00 1000 f1 32.0
218
+ 2023-12-20T01:00:00 1000 f2 foo
219
+ 2023-12-20T01:10:00 1000 f1 32.0
220
+ 2023-12-20T01:10:00 1000 f2 foo
221
+ 2023-12-20T01:20:00 1000 f1 32.0
222
+ 2023-12-20T01:20:00 1000 f2 foo
223
+ 2023-12-20T01:30:00 1000 f1 32.0
224
+ 2023-12-20T01:30:00 1000 f2 foo
225
+
226
+
227
+ # deterministic sort (so we can avoid rowsort)
228
+ query P?TT
229
+ SELECT
230
+ "data"."timestamp" as "time",
231
+ "data"."tag_id",
232
+ "data"."field",
233
+ "data"."value"
234
+ FROM (
235
+ (
236
+ SELECT "m2"."time" as "timestamp", "m2"."tag_id", 'active_power' as "field", "m2"."f5" as "value"
237
+ FROM "m2"
238
+ WHERE "m2"."time" >= '2023-12-05T14:46:35+01:00' AND "m2"."time" < '2024-01-03T14:46:35+01:00'
239
+ AND "m2"."f5" IS NOT NULL
240
+ AND "m2"."type" IN ('active')
241
+ AND "m2"."tag_id" IN ('1000')
242
+ ) UNION (
243
+ SELECT "m1"."time" as "timestamp", "m1"."tag_id", 'f1' as "field", "m1"."f1" as "value"
244
+ FROM "m1"
245
+ WHERE "m1"."time" >= '2023-12-05T14:46:35+01:00' AND "m1"."time" < '2024-01-03T14:46:35+01:00'
246
+ AND "m1"."f1" IS NOT NULL
247
+ AND "m1"."tag_id" IN ('1000')
248
+ ) UNION (
249
+ SELECT "m1"."time" as "timestamp", "m1"."tag_id", 'f2' as "field", "m1"."f2" as "value"
250
+ FROM "m1"
251
+ WHERE "m1"."time" >= '2023-12-05T14:46:35+01:00' AND "m1"."time" < '2024-01-03T14:46:35+01:00'
252
+ AND "m1"."f2" IS NOT NULL
253
+ AND "m1"."tag_id" IN ('1000')
254
+ )
255
+ ) as "data"
256
+ ORDER BY
257
+ "time",
258
+ "data"."tag_id",
259
+ "data"."field",
260
+ "data"."value"
261
+ ;
262
+ ----
263
+ 2023-12-20T00:00:00 1000 f1 32.0
264
+ 2023-12-20T00:00:00 1000 f2 foo
265
+ 2023-12-20T00:10:00 1000 f1 32.0
266
+ 2023-12-20T00:10:00 1000 f2 foo
267
+ 2023-12-20T00:20:00 1000 f1 32.0
268
+ 2023-12-20T00:20:00 1000 f2 foo
269
+ 2023-12-20T00:30:00 1000 f1 32.0
270
+ 2023-12-20T00:30:00 1000 f2 foo
271
+ 2023-12-20T00:40:00 1000 f1 32.0
272
+ 2023-12-20T00:40:00 1000 f2 foo
273
+ 2023-12-20T00:50:00 1000 f1 32.0
274
+ 2023-12-20T00:50:00 1000 f2 foo
275
+ 2023-12-20T01:00:00 1000 f1 32.0
276
+ 2023-12-20T01:00:00 1000 f2 foo
277
+ 2023-12-20T01:10:00 1000 f1 32.0
278
+ 2023-12-20T01:10:00 1000 f2 foo
279
+ 2023-12-20T01:20:00 1000 f1 32.0
280
+ 2023-12-20T01:20:00 1000 f2 foo
281
+ 2023-12-20T01:30:00 1000 f1 32.0
282
+ 2023-12-20T01:30:00 1000 f2 foo
0 commit comments