@@ -295,7 +295,7 @@ vectorized: true
295
295
spans: FULL SCAN
296
296
297
297
query T
298
- EXPLAIN (VERBOSE)
298
+ EXPLAIN ANALYZE
299
299
WITH q AS (
300
300
SELECT * FROM ltable WHERE lk > 2
301
301
)
@@ -305,86 +305,105 @@ SELECT count(*), (SELECT count(*) FROM q) FROM (
305
305
LEFT JOIN rtable ON ST_Intersects(q.geom1, rtable.geom)
306
306
) GROUP BY lk
307
307
----
308
- distribution: local
309
- vectorized: true
308
+ planning time: 10µs
309
+ execution time: 100µs
310
+ distribution: <hidden>
311
+ vectorized: <hidden>
312
+ plan type: custom
313
+ maximum memory usage: <hidden>
314
+ network usage: <hidden>
315
+ regions: <hidden>
316
+ isolation level: serializable
317
+ priority: normal
318
+ quality of service: regular
310
319
·
311
320
• root
312
- │ columns: (count, count)
313
321
│
314
322
├── • render
315
- │ │ columns: (count, count)
316
- │ │ render count: @S2
317
- │ │ render count_rows: count_rows
318
323
│ │
319
324
│ └── • group (hash)
320
- │ │ columns: (lk, count_rows)
321
- │ │ estimated row count: 333 (missing stats)
322
- │ │ aggregate 0: count_rows()
325
+ │ │ sql nodes: <hidden>
326
+ │ │ regions: <hidden>
327
+ │ │ actual row count: 0
328
+ │ │ estimated max memory allocated: 0 B
329
+ │ │ estimated max sql temp disk usage: 0 B
323
330
│ │ group by: lk
324
331
│ │
325
- │ └── • project
326
- │ │ columns: (lk)
332
+ │ └── • lookup join (left outer) (streamer)
333
+ │ │ sql nodes: <hidden>
334
+ │ │ regions: <hidden>
335
+ │ │ actual row count: 0
336
+ │ │ KV time: 0µs
337
+ │ │ KV contention time: 0µs
338
+ │ │ KV rows decoded: 0
339
+ │ │ KV bytes read: 0 B
340
+ │ │ KV gRPC calls: 0
341
+ │ │ estimated max memory allocated: 0 B
342
+ │ │ table: rtable@rtable_pkey
343
+ │ │ equality: (rk1, rk2) = (rk1, rk2)
344
+ │ │ equality cols are key
345
+ │ │ pred: st_intersects(geom1, geom)
327
346
│ │
328
- │ └── • project
329
- │ │ columns: (lk, geom1, geom)
347
+ │ └── • inverted join (left outer)
348
+ │ │ sql nodes: <hidden>
349
+ │ │ regions: <hidden>
350
+ │ │ actual row count: 0
351
+ │ │ KV time: 0µs
352
+ │ │ KV contention time: 0µs
353
+ │ │ KV rows decoded: 0
354
+ │ │ KV bytes read: 0 B
355
+ │ │ KV gRPC calls: 0
356
+ │ │ estimated max memory allocated: 0 B
357
+ │ │ estimated max sql temp disk usage: 0 B
358
+ │ │ table: rtable@geom_index
330
359
│ │
331
- │ └── • lookup join (left outer)
332
- │ │ columns: (lk, geom1, rk1, rk2, cont, geom)
333
- │ │ estimated row count: 3,333 (missing stats)
334
- │ │ table: rtable@rtable_pkey
335
- │ │ equality: (rk1, rk2) = (rk1, rk2)
336
- │ │ equality cols are key
337
- │ │ pred: st_intersects(geom1, geom)
338
- │ │
339
- │ └── • project
340
- │ │ columns: (lk, geom1, rk1, rk2, cont)
341
- │ │
342
- │ └── • inverted join (left outer)
343
- │ │ columns: (lk, geom1, rk1, rk2, geom_inverted_key, cont)
344
- │ │ estimated row count: 3,333 (missing stats)
345
- │ │ table: rtable@geom_index
346
- │ │ inverted expr: st_intersects(geom1, geom_inverted_key)
347
- │ │
348
- │ └── • project
349
- │ │ columns: (lk, geom1)
350
- │ │
351
- │ └── • scan buffer
352
- │ columns: (lk, geom1, geom2)
353
- │ estimated row count: 333 (missing stats)
354
- │ label: buffer 1 (q)
360
+ │ └── • scan buffer
361
+ │ sql nodes: <hidden>
362
+ │ regions: <hidden>
363
+ │ actual row count: 0
364
+ │ label: buffer 1 (q)
355
365
│
356
366
├── • subquery
357
367
│ │ id: @S1
358
368
│ │ original sql: SELECT * FROM ltable WHERE lk > 2
359
369
│ │ exec mode: discard all rows
360
370
│ │
361
371
│ └── • buffer
362
- │ │ columns: (lk, geom1, geom2)
372
+ │ │ sql nodes: <hidden>
373
+ │ │ regions: <hidden>
374
+ │ │ actual row count: 0
363
375
│ │ label: buffer 1 (q)
364
376
│ │
365
377
│ └── • scan
366
- │ columns: (lk, geom1, geom2)
367
- │ estimated row count: 333 (missing stats)
378
+ │ sql nodes: <hidden>
379
+ │ kv nodes: <hidden>
380
+ │ regions: <hidden>
381
+ │ actual row count: 0
382
+ │ KV time: 0µs
383
+ │ KV contention time: 0µs
384
+ │ KV rows decoded: 0
385
+ │ KV bytes read: 0 B
386
+ │ KV gRPC calls: 0
387
+ │ estimated max memory allocated: 0 B
388
+ │ missing stats
368
389
│ table: ltable@ltable_pkey
369
- │ spans: /3-
390
+ │ spans: [/3 - ]
370
391
│
371
392
└── • subquery
372
393
│ id: @S2
373
394
│ original sql: (SELECT count(*) FROM q)
374
395
│ exec mode: one row
375
396
│
376
397
└── • group (scalar)
377
- │ columns: (count_rows)
378
- │ estimated row count: 1 (missing stats)
379
- │ aggregate 0: count_rows()
398
+ │ sql nodes: <hidden>
399
+ │ regions: <hidden>
400
+ │ actual row count: 1
380
401
│
381
- └── • project
382
- │ columns: ()
383
- │
384
- └── • scan buffer
385
- columns: (lk, geom1, geom2)
386
- estimated row count: 333 (missing stats)
387
- label: buffer 1 (q)
402
+ └── • scan buffer
403
+ sql nodes: <hidden>
404
+ regions: <hidden>
405
+ actual row count: 0
406
+ label: buffer 1 (q)
388
407
389
408
# Anti joins are also converted to paired joins by the optimizer.
390
409
query T
0 commit comments