1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672 |
- # Copyright Materialize, Inc. and contributors. All rights reserved.
- #
- # Use of this software is governed by the Business Source License
- # included in the LICENSE file at the root of this repository.
- #
- # As of the Change Date specified in that file, in accordance with
- # the Business Source License, use of this software will be governed
- # by the Apache License, Version 2.0.
- simple conn=mz_system,user=mz_system
- ALTER SYSTEM SET unsafe_enable_table_keys = true
- ----
- COMPLETE 0
- statement ok
- CREATE TABLE warehouse (
- w_id integer,
- w_name char(10),
- w_street_1 char(20),
- w_street_2 char(20),
- w_city char(20),
- w_state char(2),
- w_zip char(9),
- w_tax decimal(4, 4),
- w_ytd decimal(12, 2),
- PRIMARY KEY (w_id)
- )
- statement ok
- CREATE TABLE district (
- -- should be smallint, see database-issues#1291
- d_id integer,
- d_w_id integer,
- d_name char(10),
- d_street_1 char(20),
- d_street_2 char(20),
- d_city char(20),
- d_state char(2),
- d_zip char(9),
- d_tax decimal(4, 4),
- d_ytd decimal(12, 2),
- d_next_o_id integer,
- PRIMARY KEY (d_w_id, d_id)
- )
- statement ok
- CREATE INDEX fk_district_warehouse ON district (d_w_id ASC)
- statement ok
- CREATE TABLE customer (
- -- should be smallint, see database-issues#1291
- c_id integer,
- -- should be smallint, see database-issues#1291
- c_d_id integer,
- c_w_id integer,
- c_first char(16),
- c_middle char(2),
- c_last char(16),
- c_street_1 char(20),
- c_street_2 char(20),
- c_city char(20),
- c_state char(2),
- c_zip char(9),
- c_phone char(16),
- c_since DATE,
- c_credit char(2),
- c_credit_lim decimal(12, 2),
- c_discount decimal(4, 4),
- c_balance decimal(12, 2),
- c_ytd_payment decimal(12, 2),
- -- should be smallint, see database-issues#1291
- c_payment_cnt integer,
- -- should be smallint, see database-issues#1291
- c_delivery_cnt integer,
- c_data text,
- c_n_nationkey integer,
- PRIMARY KEY(c_w_id, c_d_id, c_id)
- )
- statement ok
- CREATE INDEX fk_customer_district ON customer(c_w_id ASC, c_d_id ASC)
- statement ok
- CREATE INDEX fk_customer_nation ON customer(c_n_nationkey ASC)
- statement ok
- CREATE TABLE history (
- -- should be smallint, see database-issues#1291
- h_c_id integer,
- -- should be smallint, see database-issues#1291
- h_c_d_id integer,
- h_c_w_id integer,
- -- should be smallint, see database-issues#1291
- h_d_id integer,
- h_w_id integer,
- h_date date,
- h_amount decimal(6, 2),
- h_data char(24)
- )
- statement ok
- CREATE INDEX fk_history_customer ON history (h_c_w_id ASC, h_c_d_id ASC, h_c_id ASC)
- statement ok
- CREATE INDEX fk_history_district ON history (h_w_id ASC, h_d_id ASC)
- statement ok
- CREATE TABLE neworder (
- no_o_id integer,
- -- should be smallint, see database-issues#1291
- no_d_id integer,
- no_w_id integer,
- PRIMARY KEY (no_w_id, no_d_id, no_o_id)
- )
- statement ok
- CREATE TABLE "order" (
- o_id integer,
- -- should be smallint, see database-issues#1291
- o_d_id integer,
- o_w_id integer,
- -- should be smallint, see database-issues#1291
- o_c_id integer,
- o_entry_d date,
- -- should be smallint, see database-issues#1291
- o_carrier_id integer,
- -- should be smallint, see database-issues#1291
- o_ol_cnt integer,
- -- should be smallint, see database-issues#1291
- o_all_local integer,
- PRIMARY KEY (o_w_id, o_d_id, o_id)
- )
- statement ok
- CREATE INDEX fk_order_customer ON order (o_w_id ASC, o_d_id ASC, o_c_id ASC)
- statement ok
- CREATE TABLE orderline (
- ol_o_id integer,
- -- should be smallint, see database-issues#1291
- ol_d_id integer,
- ol_w_id integer,
- -- should be smallint, see database-issues#1291
- ol_number integer,
- ol_i_id integer,
- ol_supply_w_id integer,
- ol_delivery_d date,
- -- should be smallint, see database-issues#1291
- ol_quantity integer,
- ol_amount decimal(6, 2),
- ol_dist_info char(24),
- PRIMARY KEY (ol_w_id, ol_d_id, ol_o_id, ol_number)
- )
- statement ok
- CREATE INDEX fk_orderline_order ON orderline (ol_w_id ASC, ol_d_id ASC, ol_o_id ASC)
- statement ok
- CREATE INDEX fk_orderline_stock ON orderline (ol_supply_w_id ASC, ol_i_id ASC)
- statement ok
- CREATE INDEX fk_orderline_item ON orderline (ol_i_id ASC)
- statement ok
- CREATE TABLE item (
- i_id integer,
- -- should be smallint, see database-issues#1291
- i_im_id integer,
- i_name char(24),
- i_price decimal(5, 2),
- i_data char(50),
- PRIMARY KEY (i_id)
- )
- statement ok
- CREATE TABLE stock (
- s_i_id integer,
- s_w_id integer,
- -- smallint
- s_quantity integer,
- s_dist_01 char(24),
- s_dist_02 char(24),
- s_dist_03 char(24),
- s_dist_04 char(24),
- s_dist_05 char(24),
- s_dist_06 char(24),
- s_dist_07 char(24),
- s_dist_08 char(24),
- s_dist_09 char(24),
- s_dist_10 char(24),
- s_ytd integer,
- -- should be smallint, see database-issues#1291
- s_order_cnt integer,
- -- should be smallint, see database-issues#1291
- s_remote_cnt integer,
- s_data char(50),
- s_su_suppkey integer NOT NULL,
- PRIMARY KEY (s_w_id, s_i_id)
- )
- statement ok
- CREATE INDEX fk_stock_warehouse ON stock (s_w_id ASC)
- statement ok
- CREATE INDEX fk_stock_item ON stock (s_i_id ASC)
- statement ok
- CREATE INDEX fk_stock_supplier ON stock (s_su_suppkey ASC)
- statement ok
- CREATE TABLE nation (
- -- should be smallint, see database-issues#1291
- n_nationkey integer NOT NULL,
- n_name char(25) NOT NULL,
- -- should be smallint, see database-issues#1291
- n_regionkey integer NOT NULL,
- n_comment char(152) NOT NULL,
- PRIMARY KEY (n_nationkey)
- )
- statement ok
- CREATE INDEX fk_nation_regionkey ON nation (n_regionkey ASC)
- statement ok
- CREATE TABLE supplier (
- -- should be smallint, see database-issues#1291
- su_suppkey integer NOT NULL,
- su_name char(25) NOT NULL,
- su_address char(40) NOT NULL,
- -- should be smallint, see database-issues#1291
- su_nationkey integer NOT NULL,
- su_phone char(15) NOT NULL,
- su_acctbal decimal(12, 2) NOT NULL,
- su_comment char(101) NOT NULL,
- PRIMARY KEY (su_suppkey)
- )
- statement ok
- CREATE INDEX fk_supplier_nationkey ON supplier (su_nationkey ASC)
- statement ok
- CREATE TABLE region (
- -- should be smallint, see database-issues#1291
- r_regionkey integer NOT NULL,
- r_name char(55) NOT NULL,
- r_comment char(152) NOT NULL,
- PRIMARY KEY (r_regionkey)
- )
- # Query 01
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- ol_number,
- sum(ol_quantity) AS sum_qty,
- sum(ol_amount) AS sum_amount,
- avg(ol_quantity) AS avg_qty,
- avg(ol_amount) AS avg_amount,
- count(*) AS count_order
- FROM orderline
- WHERE ol_delivery_d > TIMESTAMP '2007-01-02 00:00:00.000000'
- GROUP BY ol_number
- ORDER BY ol_number
- ----
- Explained Query:
- Finish order_by=[#0{ol_number} asc nulls_last] output=[#0..=#5]
- Project (#0{ol_number}..=#2{sum_ol_amount}, #6, #7, #5{count}) // { arity: 6 }
- Map ((bigint_to_numeric(#1{sum_ol_quantity}) / bigint_to_numeric(case when (#3{count_ol_quantity} = 0) then null else #3{count_ol_quantity} end)), (#2{sum_ol_amount} / bigint_to_numeric(case when (#4{count_ol_amount} = 0) then null else #4{count_ol_amount} end))) // { arity: 8 }
- Reduce group_by=[#0{ol_number}] aggregates=[sum(#1{ol_quantity}), sum(#2{ol_amount}), count(#1{ol_quantity}), count(#2{ol_amount}), count(*)] // { arity: 6 }
- Project (#3{ol_number}, #7{ol_quantity}, #8{ol_amount}) // { arity: 3 }
- Filter (date_to_timestamp(#6{ol_delivery_d}) > 2007-01-02 00:00:00) // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[*** full scan ***] // { arity: 10 }
- Used Indexes:
- - materialize.public.fk_orderline_order (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 02
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT su_suppkey, su_name, n_name, i_id, i_name, su_address, su_phone, su_comment
- FROM
- item, supplier, stock, nation, region,
- (
- SELECT
- s_i_id AS m_i_id,
- min(s_quantity) AS m_s_quantity
- FROM stock, supplier, nation, region
- WHERE s_su_suppkey = su_suppkey
- AND su_nationkey = n_nationkey
- AND n_regionkey = r_regionkey
- AND r_name like 'EUROP%'
- GROUP BY s_i_id
- ) m
- WHERE i_id = s_i_id
- AND s_su_suppkey = su_suppkey
- AND su_nationkey = n_nationkey
- AND n_regionkey = r_regionkey
- AND i_data like '%b'
- AND r_name like 'EUROP%'
- AND i_id = m_i_id
- AND s_quantity = m_s_quantity
- ORDER BY n_name, su_name, i_id
- ----
- Explained Query:
- Finish order_by=[#2{n_name} asc nulls_last, #1{su_name} asc nulls_last, #3{i_id} asc nulls_last] output=[#0..=#7]
- With
- cte l0 =
- ArrangeBy keys=[[#0{r_regionkey}]] // { arity: 1 }
- Project (#0{r_regionkey}) // { arity: 1 }
- Filter like["EUROP%"](padchar(#1{r_name})) // { arity: 3 }
- ReadStorage materialize.public.region // { arity: 3 }
- Return // { arity: 8 }
- Project (#2{su_suppkey}, #3{su_name}, #12{n_name}, #0{i_id}, #1{i_name}, #4{su_address}, #6{su_phone}, #7{su_comment}) // { arity: 8 }
- Join on=(#0{i_id} = #8{s_i_id} = #15{s_i_id} AND #2{su_suppkey} = #10{s_su_suppkey} AND #5{su_nationkey} = #11{n_nationkey} AND #9{s_quantity} = #16{min_s_quantity} AND #13{n_regionkey} = #14{r_regionkey}) type=delta // { arity: 17 }
- implementation
- %0:item » %5[#0]UKA » %2:stock[#0{s_i_id}, #1{s_quantity}]KK » %1:supplier[#0{su_suppkey}]UK » %3:nation[#0{n_nationkey}]UK » %4:l0[#0{r_regionkey}]UKlf
- %1:supplier » %3:nation[#0{n_nationkey}]UK » %4:l0[#0{r_regionkey}]UKlf » %2:stock[#2{s_su_suppkey}]KA » %5[#0{m_i_id}, #1{m_s_quantity}]UKK » %0:item[#0{i_id}]UKlf
- %2:stock » %5[#0{m_i_id}, #1{m_s_quantity}]UKK » %0:item[#0{i_id}]UKlf » %1:supplier[#0{su_suppkey}]UK » %3:nation[#0{n_nationkey}]UK » %4:l0[#0{r_regionkey}]UKlf
- %3:nation » %4:l0[#0{r_regionkey}]UKlf » %1:supplier[#3{su_nationkey}]KA » %2:stock[#2{s_su_suppkey}]KA » %5[#0{m_i_id}, #1{m_s_quantity}]UKK » %0:item[#0{i_id}]UKlf
- %4:l0 » %3:nation[#2{n_regionkey}]KA » %1:supplier[#3{su_nationkey}]KA » %2:stock[#2{s_su_suppkey}]KA » %5[#0{m_i_id}, #1{m_s_quantity}]UKK » %0:item[#0{i_id}]UKlf
- %5 » %0:item[#0{i_id}]UKlf » %2:stock[#0{s_i_id}, #1{s_quantity}]KK » %1:supplier[#0{su_suppkey}]UK » %3:nation[#0{n_nationkey}]UK » %4:l0[#0{r_regionkey}]UKlf
- ArrangeBy keys=[[#0{i_id}]] // { arity: 2 }
- Project (#0{i_id}, #2{i_name}) // { arity: 2 }
- Filter like["%b"](padchar(#4{i_data})) // { arity: 5 }
- ReadStorage materialize.public.item // { arity: 5 }
- ArrangeBy keys=[[#0{su_suppkey}], [#3{su_nationkey}]] // { arity: 6 }
- Project (#0{su_suppkey}..=#4{su_phone}, #6{su_comment}) // { arity: 6 }
- ReadIndex on=supplier fk_supplier_nationkey=[*** full scan ***] // { arity: 7 }
- ArrangeBy keys=[[#0{s_i_id}, #1{s_quantity}], [#2{s_su_suppkey}]] // { arity: 3 }
- Project (#0{s_i_id}, #2{s_quantity}, #17{s_su_suppkey}) // { arity: 3 }
- Filter (#2{s_quantity}) IS NOT NULL // { arity: 18 }
- ReadIndex on=stock fk_stock_supplier=[*** full scan ***] // { arity: 18 }
- ArrangeBy keys=[[#0{n_nationkey}], [#2{n_regionkey}]] // { arity: 3 }
- Project (#0{n_nationkey}..=#2{n_regionkey}) // { arity: 3 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- Get l0 // { arity: 1 }
- ArrangeBy keys=[[#0{s_i_id}], [#0{s_i_id}, #1{min_s_quantity}]] // { arity: 2 }
- Filter (#1{min_s_quantity}) IS NOT NULL // { arity: 2 }
- Reduce group_by=[#0{s_i_id}] aggregates=[min(#1{s_quantity})] // { arity: 2 }
- Project (#0{s_i_id}, #2{s_quantity}) // { arity: 2 }
- Join on=(#17{s_su_suppkey} = #18{su_suppkey} AND #19{su_nationkey} = #20{n_nationkey} AND #21{n_regionkey} = #22{r_regionkey}) type=delta // { arity: 23 }
- implementation
- %0:stock » %1:supplier[#0{su_suppkey}]UK » %2:nation[#0{n_nationkey}]UK » %3:l0[#0{r_regionkey}]UKlf
- %1:supplier » %2:nation[#0{n_nationkey}]UK » %3:l0[#0{r_regionkey}]UKlf » %0:stock[#17{s_su_suppkey}]KA
- %2:nation » %3:l0[#0{r_regionkey}]UKlf » %1:supplier[#1{su_nationkey}]KA » %0:stock[#17{s_su_suppkey}]KA
- %3:l0 » %2:nation[#1{n_regionkey}]KA » %1:supplier[#1{su_nationkey}]KA » %0:stock[#17{s_su_suppkey}]KA
- ArrangeBy keys=[[#17{s_su_suppkey}]] // { arity: 18 }
- ReadIndex on=stock fk_stock_supplier=[delta join 1st input (full scan)] // { arity: 18 }
- ArrangeBy keys=[[#0{su_suppkey}], [#1{su_nationkey}]] // { arity: 2 }
- Project (#0{su_suppkey}, #3{su_nationkey}) // { arity: 2 }
- ReadIndex on=supplier fk_supplier_nationkey=[*** full scan ***] // { arity: 7 }
- ArrangeBy keys=[[#0{n_nationkey}], [#1{n_regionkey}]] // { arity: 2 }
- Project (#0{n_nationkey}, #2{n_regionkey}) // { arity: 2 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- Get l0 // { arity: 1 }
- Source materialize.public.item
- filter=(like["%b"](padchar(#4{i_data})))
- Source materialize.public.region
- filter=(like["EUROP%"](padchar(#1{r_name})))
- Used Indexes:
- - materialize.public.fk_stock_supplier (*** full scan ***, delta join 1st input (full scan))
- - materialize.public.fk_nation_regionkey (*** full scan ***)
- - materialize.public.fk_supplier_nationkey (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 03
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT ol_o_id, ol_w_id, ol_d_id, sum(ol_amount) AS revenue, o_entry_d
- FROM customer, neworder, "order", orderline
- WHERE c_state LIKE 'A%'
- AND c_id = o_c_id
- AND c_w_id = o_w_id
- AND c_d_id = o_d_id
- AND no_w_id = o_w_id
- AND no_d_id = o_d_id
- AND no_o_id = o_id
- AND ol_w_id = o_w_id
- AND ol_d_id = o_d_id
- AND ol_o_id = o_id
- AND o_entry_d > TIMESTAMP '2007-01-02 00:00:00.000000'
- GROUP BY ol_o_id, ol_w_id, ol_d_id, o_entry_d
- ORDER BY revenue DESC, o_entry_d
- ----
- Explained Query:
- Finish order_by=[#3{sum_ol_amount} desc nulls_first, #4{o_entry_d} asc nulls_last] output=[#0..=#4]
- Project (#0{no_o_id}..=#2{c_d_id}, #4{sum_ol_amount}, #3{o_entry_d}) // { arity: 5 }
- Reduce group_by=[#2{no_o_id}, #1{c_w_id}, #0{c_d_id}, #3{o_entry_d}] aggregates=[sum(#4{ol_amount})] // { arity: 5 }
- Project (#1{c_d_id}..=#3{no_o_id}, #10{o_entry_d}, #19{ol_amount}) // { arity: 5 }
- Join on=(#0{c_id} = #9{o_c_id} AND #1{c_d_id} = #4{no_d_id} = #7{o_d_id} = #12{ol_d_id} AND #2{c_w_id} = #5{no_w_id} = #8{o_w_id} = #13{ol_w_id} AND #3{no_o_id} = #6{o_id} = #11{ol_o_id}) type=delta // { arity: 21 }
- implementation
- %0:customer » %2:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAif » %1:neworder[#0{no_o_id}..=#2{no_w_id}]UKKK » %3:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA
- %1:neworder » %2:order[#0{o_id}..=#2{o_w_id}]UKKKif » %0:customer[#0{c_id}..=#2{c_w_id}]UKKKlf » %3:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA
- %2:order » %0:customer[#0{c_id}..=#2{c_w_id}]UKKKlf » %1:neworder[#0{no_o_id}..=#2{no_w_id}]UKKK » %3:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA
- %3:orderline » %2:order[#0{o_id}..=#2{o_w_id}]UKKKif » %0:customer[#0{c_id}..=#2{c_w_id}]UKKKlf » %1:neworder[#0{no_o_id}..=#2{no_w_id}]UKKK
- ArrangeBy keys=[[#0{c_id}..=#2{c_w_id}]] // { arity: 3 }
- Project (#0{c_id}..=#2{c_w_id}) // { arity: 3 }
- Filter like["A%"](padchar(#9{c_state})) // { arity: 22 }
- ReadIndex on=customer fk_customer_district=[*** full scan ***] // { arity: 22 }
- ArrangeBy keys=[[#0{no_o_id}..=#2{no_w_id}]] // { arity: 3 }
- ReadStorage materialize.public.neworder // { arity: 3 }
- ArrangeBy keys=[[#0{o_id}..=#2{o_w_id}], [#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]] // { arity: 5 }
- Project (#0{o_id}..=#4{o_entry_d}) // { arity: 5 }
- Filter (#3{o_c_id}) IS NOT NULL AND (date_to_timestamp(#4{o_entry_d}) > 2007-01-02 00:00:00) // { arity: 8 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[delta join lookup] // { arity: 10 }
- Source materialize.public.neworder
- Used Indexes:
- - materialize.public.fk_customer_district (*** full scan ***)
- - materialize.public.fk_order_customer (*** full scan ***)
- - materialize.public.fk_orderline_order (delta join lookup)
- Target cluster: quickstart
- EOF
- # Query 04
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT o_ol_cnt, count(*) AS order_count
- FROM "order"
- WHERE o_entry_d >= TIMESTAMP '2007-01-02 00:00:00.000000'
- AND o_entry_d < TIMESTAMP '2012-01-02 00:00:00.000000'
- AND EXISTS (
- SELECT *
- FROM orderline
- WHERE o_id = ol_o_id
- AND o_w_id = ol_w_id
- AND o_d_id = ol_d_id
- AND ol_delivery_d >= o_entry_d
- )
- GROUP BY o_ol_cnt
- ORDER BY o_ol_cnt
- ----
- Explained Query:
- Finish order_by=[#0{o_ol_cnt} asc nulls_last] output=[#0, #1]
- With
- cte l0 =
- Project (#0{o_id}..=#2{o_w_id}, #4{o_entry_d}, #6{o_ol_cnt}) // { arity: 5 }
- Filter (#8 < 2012-01-02 00:00:00) AND (#8 >= 2007-01-02 00:00:00) // { arity: 9 }
- Map (date_to_timestamp(#4{o_entry_d})) // { arity: 9 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- Return // { arity: 2 }
- Reduce group_by=[#0{o_ol_cnt}] aggregates=[count(*)] // { arity: 2 }
- Project (#4{o_ol_cnt}) // { arity: 1 }
- Join on=(#0{o_id} = #5{o_id} AND #1{o_d_id} = #6{o_d_id} AND #2{o_w_id} = #7{o_w_id} AND #3{o_entry_d} = #8{o_entry_d}) type=differential // { arity: 9 }
- implementation
- %1[#0..=#3]UKKKKA » %0:l0[#0..=#3]UKKKKiif
- ArrangeBy keys=[[#0{o_id}..=#3{o_entry_d}]] // { arity: 5 }
- Get l0 // { arity: 5 }
- ArrangeBy keys=[[#0{o_id}..=#3{o_entry_d}]] // { arity: 4 }
- Distinct project=[#0{o_id}..=#3{o_entry_d}] // { arity: 4 }
- Project (#0{o_id}..=#3{o_entry_d}) // { arity: 4 }
- Filter (#10{ol_delivery_d} >= #3{o_entry_d}) // { arity: 14 }
- Join on=(#0{o_id} = #4{ol_o_id} AND #1{o_d_id} = #5{ol_d_id} AND #2{o_w_id} = #6{ol_w_id}) type=differential // { arity: 14 }
- implementation
- %0:l0[#2{o_w_id}, #1{o_d_id}, #0{o_id}]UKKKiif » %1:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKAiif
- ArrangeBy keys=[[#2{o_w_id}, #1{o_d_id}, #0{o_id}]] // { arity: 4 }
- Project (#0{o_id}..=#3{o_entry_d}) // { arity: 4 }
- Get l0 // { arity: 5 }
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[differential join] // { arity: 10 }
- Used Indexes:
- - materialize.public.fk_order_customer (*** full scan ***)
- - materialize.public.fk_orderline_order (differential join)
- Target cluster: quickstart
- EOF
- # Query 05
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- n_name,
- sum(ol_amount) AS revenue
- FROM customer, "order", orderline, stock, supplier, nation, region
- WHERE c_id = o_c_id
- AND c_w_id = o_w_id
- AND c_d_id = o_d_id
- AND ol_o_id = o_id
- AND ol_w_id = o_w_id
- AND ol_d_id = o_d_id
- AND ol_w_id = s_w_id
- AND ol_i_id = s_i_id
- AND s_su_suppkey = su_suppkey
- AND c_n_nationkey = su_nationkey
- AND su_nationkey = n_nationkey
- AND n_regionkey = r_regionkey
- AND r_name = 'EUROPE'
- AND o_entry_d >= TIMESTAMP '2007-01-02 00:00:00.000000'
- GROUP BY n_name
- ORDER BY revenue DESC
- ----
- Explained Query:
- Finish order_by=[#1{sum_ol_amount} desc nulls_first] output=[#0, #1]
- Reduce group_by=[#1{n_name}] aggregates=[sum(#0{ol_amount})] // { arity: 2 }
- Project (#12{ol_amount}, #19{n_name}) // { arity: 2 }
- Join on=(#0{c_id} = #7{o_c_id} AND #1{c_d_id} = #5{o_d_id} = #9{ol_d_id} AND #2{c_w_id} = #6{o_w_id} = #10{ol_w_id} = #14{s_w_id} AND #3{c_n_nationkey} = #17{su_nationkey} = #18{n_nationkey} AND #4{o_id} = #8{ol_o_id} AND #11{ol_i_id} = #13{s_i_id} AND #15{s_su_suppkey} = #16{su_suppkey} AND #20{n_regionkey} = #21{r_regionkey}) type=delta // { arity: 22 }
- implementation
- %0:customer » %5:nation[#0{n_nationkey}]UK » %6:region[#0{r_regionkey}]UKef » %1:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAif » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA » %3:stock[#0{s_i_id}, #1{s_w_id}]UKK » %4:supplier[#0{su_suppkey}, #1{su_nationkey}]UKK
- %1:order » %0:customer[#0{c_id}..=#2{c_w_id}]UKKK » %5:nation[#0{n_nationkey}]UK » %6:region[#0{r_regionkey}]UKef » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA » %3:stock[#0{s_i_id}, #1{s_w_id}]UKK » %4:supplier[#0{su_suppkey}, #1{su_nationkey}]UKK
- %2:orderline » %1:order[#0{o_id}..=#2{o_w_id}]UKKKif » %0:customer[#0{c_id}..=#2{c_w_id}]UKKK » %3:stock[#0{s_i_id}, #1{s_w_id}]UKK » %4:supplier[#0{su_suppkey}, #1{su_nationkey}]UKK » %5:nation[#0{n_nationkey}]UK » %6:region[#0{r_regionkey}]UKef
- %3:stock » %4:supplier[#0{su_suppkey}]UK » %5:nation[#0{n_nationkey}]UK » %6:region[#0{r_regionkey}]UKef » %0:customer[#2{c_w_id}, #3{c_n_nationkey}]KK » %1:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAif » %2:orderline[#0{ol_o_id}..=#3{ol_i_id}]KKKK
- %4:supplier » %5:nation[#0{n_nationkey}]UK » %6:region[#0{r_regionkey}]UKef » %0:customer[#3{c_n_nationkey}]KA » %1:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAif » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA » %3:stock[#0{s_i_id}..=#2{s_su_suppkey}]UKKK
- %5:nation » %6:region[#0{r_regionkey}]UKef » %0:customer[#3{c_n_nationkey}]KA » %1:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAif » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA » %3:stock[#0{s_i_id}, #1{s_w_id}]UKK » %4:supplier[#0{su_suppkey}, #1{su_nationkey}]UKK
- %6:region » %5:nation[#2{n_regionkey}]KA » %0:customer[#3{c_n_nationkey}]KA » %1:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAif » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA » %3:stock[#0{s_i_id}, #1{s_w_id}]UKK » %4:supplier[#0{su_suppkey}, #1{su_nationkey}]UKK
- ArrangeBy keys=[[#0{c_id}..=#2{c_w_id}], [#2{c_w_id}, #3{c_n_nationkey}], [#3{c_n_nationkey}]] // { arity: 4 }
- Project (#0{c_id}..=#2{c_w_id}, #21{c_n_nationkey}) // { arity: 4 }
- Filter (#21{c_n_nationkey}) IS NOT NULL // { arity: 22 }
- ReadIndex on=customer fk_customer_district=[*** full scan ***] // { arity: 22 }
- ArrangeBy keys=[[#0{o_id}..=#2{o_w_id}], [#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]] // { arity: 4 }
- Project (#0{o_id}..=#3{o_c_id}) // { arity: 4 }
- Filter (#3{o_c_id}) IS NOT NULL AND (date_to_timestamp(#4{o_entry_d}) >= 2007-01-02 00:00:00) // { arity: 8 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- ArrangeBy keys=[[#0{ol_o_id}..=#3{ol_i_id}], [#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]] // { arity: 5 }
- Project (#0{ol_o_id}..=#2{ol_w_id}, #4{ol_i_id}, #8{ol_amount}) // { arity: 5 }
- Filter (#4{ol_i_id}) IS NOT NULL // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[*** full scan ***] // { arity: 10 }
- ArrangeBy keys=[[#0{s_i_id}, #1{s_w_id}], [#0{s_i_id}..=#2{s_su_suppkey}]] // { arity: 3 }
- Project (#0{s_i_id}, #1{s_w_id}, #17{s_su_suppkey}) // { arity: 3 }
- ReadIndex on=stock fk_stock_warehouse=[*** full scan ***] // { arity: 18 }
- ArrangeBy keys=[[#0{su_suppkey}], [#0{su_suppkey}, #1{su_nationkey}]] // { arity: 2 }
- Project (#0{su_suppkey}, #3{su_nationkey}) // { arity: 2 }
- ReadIndex on=supplier fk_supplier_nationkey=[*** full scan ***] // { arity: 7 }
- ArrangeBy keys=[[#0{n_nationkey}], [#2{n_regionkey}]] // { arity: 3 }
- Project (#0{n_nationkey}..=#2{n_regionkey}) // { arity: 3 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- ArrangeBy keys=[[#0{r_regionkey}]] // { arity: 1 }
- Project (#0{r_regionkey}) // { arity: 1 }
- Filter (#1{r_name} = "EUROPE") // { arity: 3 }
- ReadStorage materialize.public.region // { arity: 3 }
- Source materialize.public.region
- filter=((#1{r_name} = "EUROPE"))
- Used Indexes:
- - materialize.public.fk_customer_district (*** full scan ***)
- - materialize.public.fk_order_customer (*** full scan ***)
- - materialize.public.fk_orderline_order (*** full scan ***)
- - materialize.public.fk_stock_warehouse (*** full scan ***)
- - materialize.public.fk_nation_regionkey (*** full scan ***)
- - materialize.public.fk_supplier_nationkey (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 06
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT sum(ol_amount) AS revenue
- FROM orderline
- WHERE ol_delivery_d >= TIMESTAMP '1999-01-01 00:00:00.000000'
- AND ol_delivery_d < TIMESTAMP '2020-01-01 00:00:00.000000'
- AND ol_quantity BETWEEN 1 AND 100000
- ----
- Explained Query:
- With
- cte l0 =
- Reduce aggregates=[sum(#0{ol_amount})] // { arity: 1 }
- Project (#8{ol_amount}) // { arity: 1 }
- Filter (#10 < 2020-01-01 00:00:00) AND (#7{ol_quantity} <= 100000) AND (#7{ol_quantity} >= 1) AND (#10 >= 1999-01-01 00:00:00) // { arity: 11 }
- Map (date_to_timestamp(#6{ol_delivery_d})) // { arity: 11 }
- ReadIndex on=orderline fk_orderline_order=[*** full scan ***] // { arity: 10 }
- Return // { arity: 1 }
- Union // { arity: 1 }
- Get l0 // { arity: 1 }
- Map (null) // { arity: 1 }
- Union // { arity: 0 }
- Negate // { arity: 0 }
- Project () // { arity: 0 }
- Get l0 // { arity: 1 }
- Constant // { arity: 0 }
- - ()
- Used Indexes:
- - materialize.public.fk_orderline_order (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 07
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- su_nationkey AS supp_nation,
- substr(c_state, 1, 1) AS cust_nation,
- EXTRACT(year FROM o_entry_d) AS l_year,
- sum(ol_amount) AS revenue
- FROM supplier, stock, orderline, "order", customer, nation n1, nation n2
- WHERE ol_supply_w_id = s_w_id
- AND ol_i_id = s_i_id
- AND s_su_suppkey = su_suppkey
- AND ol_w_id = o_w_id
- AND ol_d_id = o_d_id
- AND ol_o_id = o_id
- AND c_id = o_c_id
- AND c_w_id = o_w_id
- AND c_d_id = o_d_id
- AND su_nationkey = n1.n_nationkey
- AND c_n_nationkey = n2.n_nationkey
- AND (
- (n1.n_name = 'GERMANY' AND n2.n_name = 'CAMBODIA')
- OR
- (n1.n_name = 'CAMBODIA' AND n2.n_name = 'GERMANY')
- )
- AND ol_delivery_d BETWEEN TIMESTAMP '2007-01-02 00:00:00.000000' AND TIMESTAMP '2012-01-02 00:00:00.000000'
- GROUP BY su_nationkey, substr(c_state, 1, 1), EXTRACT(year FROM o_entry_d)
- ORDER BY su_nationkey, cust_nation, l_year
- ----
- Explained Query:
- Finish order_by=[#0{su_nationkey} asc nulls_last, #1 asc nulls_last, #2 asc nulls_last] output=[#0..=#3]
- With
- cte l0 =
- ArrangeBy keys=[[#0{n_nationkey}]] // { arity: 2 }
- Project (#0{n_nationkey}, #1{n_name}) // { arity: 2 }
- Filter ((#1{n_name} = "GERMANY") OR (#1{n_name} = "CAMBODIA")) // { arity: 4 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- Return // { arity: 4 }
- Reduce group_by=[#0{su_nationkey}, substr(char_to_text(#3{c_state}), 1, 1), extract_year_d(#2{o_entry_d})] aggregates=[sum(#1{ol_amount})] // { arity: 4 }
- Project (#1{su_nationkey}, #13{ol_amount}, #19{o_entry_d}, #23{c_state}) // { arity: 4 }
- Filter (#29 <= 2012-01-02 00:00:00) AND (#29 >= 2007-01-02 00:00:00) AND (((#26{n_name} = "GERMANY") AND (#28{n_name} = "CAMBODIA")) OR ((#26{n_name} = "CAMBODIA") AND (#28{n_name} = "GERMANY"))) // { arity: 30 }
- Map (date_to_timestamp(#11{ol_delivery_d})) // { arity: 30 }
- Join on=(#0{su_suppkey} = #4{s_su_suppkey} AND #1{su_nationkey} = #25{n_nationkey} AND #2{s_i_id} = #9{ol_i_id} AND #3{s_w_id} = #10{ol_supply_w_id} AND #5{ol_o_id} = #15{o_id} AND #6{ol_d_id} = #16{o_d_id} = #21{c_d_id} AND #7{ol_w_id} = #17{o_w_id} = #22{c_w_id} AND #18{o_c_id} = #20{c_id} AND #24{c_n_nationkey} = #27{n_nationkey}) type=delta // { arity: 29 }
- implementation
- %0:supplier » %5:l0[#0{n_nationkey}]UKef » %1:stock[#2{s_su_suppkey}]KA » %2:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKAiif » %3:order[#0{o_id}..=#2{o_w_id}]UKKK » %4:customer[#0{c_id}..=#2{c_w_id}]UKKK » %6:l0[#0{n_nationkey}]UKef
- %1:stock » %0:supplier[#0{su_suppkey}]UK » %5:l0[#0{n_nationkey}]UKef » %2:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKAiif » %3:order[#0{o_id}..=#2{o_w_id}]UKKK » %4:customer[#0{c_id}..=#2{c_w_id}]UKKK » %6:l0[#0{n_nationkey}]UKef
- %2:orderline » %3:order[#0{o_id}..=#2{o_w_id}]UKKK » %4:customer[#0{c_id}..=#2{c_w_id}]UKKK » %1:stock[#0{s_i_id}, #1{s_w_id}]UKK » %6:l0[#0{n_nationkey}]UKef » %0:supplier[#0{su_suppkey}]UK » %5:l0[#0{n_nationkey}]UKef
- %3:order » %4:customer[#0{c_id}..=#2{c_w_id}]UKKK » %6:l0[#0{n_nationkey}]UKef » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKAiif » %1:stock[#0{s_i_id}, #1{s_w_id}]UKK » %0:supplier[#0{su_suppkey}]UK » %5:l0[#0{n_nationkey}]UKef
- %4:customer » %6:l0[#0{n_nationkey}]UKef » %3:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKA » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKAiif » %1:stock[#0{s_i_id}, #1{s_w_id}]UKK » %0:supplier[#0{su_suppkey}]UK » %5:l0[#0{n_nationkey}]UKef
- %5:l0 » %0:supplier[#1{su_nationkey}]KA » %1:stock[#2{s_su_suppkey}]KA » %2:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKAiif » %3:order[#0{o_id}..=#2{o_w_id}]UKKK » %4:customer[#0{c_id}..=#2{c_w_id}]UKKK » %6:l0[#0{n_nationkey}]UKef
- %6:l0 » %4:customer[#4{c_n_nationkey}]KA » %3:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKA » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKAiif » %1:stock[#0{s_i_id}, #1{s_w_id}]UKK » %0:supplier[#0{su_suppkey}]UK » %5:l0[#0{n_nationkey}]UKef
- ArrangeBy keys=[[#0{su_suppkey}], [#1{su_nationkey}]] // { arity: 2 }
- Project (#0{su_suppkey}, #3{su_nationkey}) // { arity: 2 }
- ReadIndex on=supplier fk_supplier_nationkey=[*** full scan ***] // { arity: 7 }
- ArrangeBy keys=[[#0{s_i_id}, #1{s_w_id}], [#2{s_su_suppkey}]] // { arity: 3 }
- Project (#0{s_i_id}, #1{s_w_id}, #17{s_su_suppkey}) // { arity: 3 }
- ReadIndex on=stock fk_stock_warehouse=[*** full scan ***] // { arity: 18 }
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}], [#5{ol_supply_w_id}, #4{ol_i_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[delta join lookup] fk_orderline_stock=[delta join lookup] // { arity: 10 }
- ArrangeBy keys=[[#0{o_id}..=#2{o_w_id}], [#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]] // { arity: 5 }
- Project (#0{o_id}..=#4{o_entry_d}) // { arity: 5 }
- Filter (#3{o_c_id}) IS NOT NULL // { arity: 8 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- ArrangeBy keys=[[#0{c_id}..=#2{c_w_id}], [#4{c_n_nationkey}]] // { arity: 5 }
- Project (#0{c_id}..=#2{c_w_id}, #9{c_state}, #21{c_n_nationkey}) // { arity: 5 }
- Filter (#21{c_n_nationkey}) IS NOT NULL // { arity: 22 }
- ReadIndex on=customer fk_customer_district=[*** full scan ***] // { arity: 22 }
- Get l0 // { arity: 2 }
- Get l0 // { arity: 2 }
- Used Indexes:
- - materialize.public.fk_customer_district (*** full scan ***)
- - materialize.public.fk_order_customer (*** full scan ***)
- - materialize.public.fk_orderline_order (delta join lookup)
- - materialize.public.fk_orderline_stock (delta join lookup)
- - materialize.public.fk_stock_warehouse (*** full scan ***)
- - materialize.public.fk_nation_regionkey (*** full scan ***)
- - materialize.public.fk_supplier_nationkey (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 08
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- EXTRACT(year FROM o_entry_d) AS l_year,
- sum(CASE WHEN n2.n_name = 'GERMANY' THEN ol_amount ELSE 0 END) / CASE WHEN sum(ol_amount) = 0 THEN 1 ELSE sum(ol_amount) END AS mkt_share
- FROM item, supplier, stock, orderline, "order", customer, nation n1, nation n2, region
- WHERE i_id = s_i_id
- AND ol_i_id = s_i_id
- AND ol_supply_w_id = s_w_id
- AND s_su_suppkey = su_suppkey
- AND ol_w_id = o_w_id
- AND ol_d_id = o_d_id
- AND ol_o_id = o_id
- AND c_id = o_c_id
- AND c_w_id = o_w_id
- AND c_d_id = o_d_id
- AND n1.n_nationkey = c_n_nationkey
- AND n1.n_regionkey = r_regionkey
- AND ol_i_id < 1000
- AND r_name = 'EUROPE'
- AND su_nationkey = n2.n_nationkey
- AND o_entry_d BETWEEN TIMESTAMP '2007-01-02 00:00:00.000000' AND TIMESTAMP '2012-01-02 00:00:00.000000'
- AND i_data like '%b'
- AND i_id = ol_i_id
- GROUP BY EXTRACT(year FROM o_entry_d)
- ORDER BY l_year
- ----
- Explained Query:
- Finish order_by=[#0 asc nulls_last] output=[#0, #1]
- Project (#0, #3) // { arity: 2 }
- Map ((#1{sum} / case when (#2{sum_ol_amount} = 0) then 1 else #2{sum_ol_amount} end)) // { arity: 4 }
- Reduce group_by=[extract_year_d(#1{o_entry_d})] aggregates=[sum(case when (#2{n_name} = "GERMANY") then #0{ol_amount} else 0 end), sum(#0{ol_amount})] // { arity: 3 }
- Project (#14{ol_amount}, #20{o_entry_d}, #28{n_name}) // { arity: 3 }
- Filter (#0{i_id} < 1000) // { arity: 30 }
- Join on=(#0{i_id} = #3{s_i_id} = #10{ol_i_id} AND #1{su_suppkey} = #5{s_su_suppkey} AND #2{su_nationkey} = #27{n_nationkey} AND #4{s_w_id} = #11{ol_supply_w_id} AND #6{ol_o_id} = #16{o_id} AND #7{ol_d_id} = #17{o_d_id} = #22{c_d_id} AND #8{ol_w_id} = #18{o_w_id} = #23{c_w_id} AND #19{o_c_id} = #21{c_id} AND #24{c_n_nationkey} = #25{n_nationkey} AND #26{n_regionkey} = #29{r_regionkey}) type=delta // { arity: 30 }
- implementation
- %0:item » %2:stock[#0{s_i_id}]KAif » %1:supplier[#0{su_suppkey}]UK » %7:nation[#0{n_nationkey}]UK » %3:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKAif » %4:order[#0{o_id}..=#2{o_w_id}]UKKKiif » %5:customer[#0{c_id}..=#2{c_w_id}]UKKK » %6:nation[#0{n_nationkey}]UK » %8:region[#0{r_regionkey}]UKef
- %1:supplier » %7:nation[#0{n_nationkey}]UK » %2:stock[#2{s_su_suppkey}]KAif » %0:item[#0{i_id}]UKlif » %3:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKAif » %4:order[#0{o_id}..=#2{o_w_id}]UKKKiif » %5:customer[#0{c_id}..=#2{c_w_id}]UKKK » %6:nation[#0{n_nationkey}]UK » %8:region[#0{r_regionkey}]UKef
- %2:stock » %0:item[#0{i_id}]UKlif » %1:supplier[#0{su_suppkey}]UK » %7:nation[#0{n_nationkey}]UK » %3:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKAif » %4:order[#0{o_id}..=#2{o_w_id}]UKKKiif » %5:customer[#0{c_id}..=#2{c_w_id}]UKKK » %6:nation[#0{n_nationkey}]UK » %8:region[#0{r_regionkey}]UKef
- %3:orderline » %4:order[#0{o_id}..=#2{o_w_id}]UKKKiif » %5:customer[#0{c_id}..=#2{c_w_id}]UKKK » %2:stock[#0{s_i_id}, #1{s_w_id}]UKKif » %0:item[#0{i_id}]UKlif » %1:supplier[#0{su_suppkey}]UK » %6:nation[#0{n_nationkey}]UK » %8:region[#0{r_regionkey}]UKef » %7:nation[#0{n_nationkey}]UK
- %4:order » %5:customer[#0{c_id}..=#2{c_w_id}]UKKK » %6:nation[#0{n_nationkey}]UK » %8:region[#0{r_regionkey}]UKef » %3:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKAif » %2:stock[#0{s_i_id}, #1{s_w_id}]UKKif » %0:item[#0{i_id}]UKlif » %1:supplier[#0{su_suppkey}]UK » %7:nation[#0{n_nationkey}]UK
- %5:customer » %6:nation[#0{n_nationkey}]UK » %8:region[#0{r_regionkey}]UKef » %4:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAiif » %3:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKAif » %2:stock[#0{s_i_id}, #1{s_w_id}]UKKif » %0:item[#0{i_id}]UKlif » %1:supplier[#0{su_suppkey}]UK » %7:nation[#0{n_nationkey}]UK
- %6:nation » %8:region[#0{r_regionkey}]UKef » %5:customer[#3{c_n_nationkey}]KA » %4:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAiif » %3:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKAif » %2:stock[#0{s_i_id}, #1{s_w_id}]UKKif » %0:item[#0{i_id}]UKlif » %1:supplier[#0{su_suppkey}]UK » %7:nation[#0{n_nationkey}]UK
- %7:nation » %1:supplier[#1{su_nationkey}]KA » %2:stock[#2{s_su_suppkey}]KAif » %0:item[#0{i_id}]UKlif » %3:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKAif » %4:order[#0{o_id}..=#2{o_w_id}]UKKKiif » %5:customer[#0{c_id}..=#2{c_w_id}]UKKK » %6:nation[#0{n_nationkey}]UK » %8:region[#0{r_regionkey}]UKef
- %8:region » %6:nation[#1{n_regionkey}]KA » %5:customer[#3{c_n_nationkey}]KA » %4:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAiif » %3:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKAif » %2:stock[#0{s_i_id}, #1{s_w_id}]UKKif » %0:item[#0{i_id}]UKlif » %1:supplier[#0{su_suppkey}]UK » %7:nation[#0{n_nationkey}]UK
- ArrangeBy keys=[[#0{i_id}]] // { arity: 1 }
- Project (#0{i_id}) // { arity: 1 }
- Filter (#0{i_id} < 1000) AND like["%b"](padchar(#4{i_data})) // { arity: 5 }
- ReadStorage materialize.public.item // { arity: 5 }
- ArrangeBy keys=[[#0{su_suppkey}], [#1{su_nationkey}]] // { arity: 2 }
- Project (#0{su_suppkey}, #3{su_nationkey}) // { arity: 2 }
- ReadIndex on=supplier fk_supplier_nationkey=[*** full scan ***] // { arity: 7 }
- ArrangeBy keys=[[#0{s_i_id}], [#0{s_i_id}, #1{s_w_id}], [#2{s_su_suppkey}]] // { arity: 3 }
- Project (#0{s_i_id}, #1{s_w_id}, #17{s_su_suppkey}) // { arity: 3 }
- Filter (#0{s_i_id} < 1000) // { arity: 18 }
- ReadIndex on=stock fk_stock_warehouse=[*** full scan ***] // { arity: 18 }
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}], [#5{ol_supply_w_id}, #4{ol_i_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[delta join lookup] fk_orderline_stock=[delta join lookup] // { arity: 10 }
- ArrangeBy keys=[[#0{o_id}..=#2{o_w_id}], [#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]] // { arity: 5 }
- Project (#0{o_id}..=#4{o_entry_d}) // { arity: 5 }
- Filter (#8 <= 2012-01-02 00:00:00) AND (#8 >= 2007-01-02 00:00:00) AND (#3{o_c_id}) IS NOT NULL // { arity: 9 }
- Map (date_to_timestamp(#4{o_entry_d})) // { arity: 9 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- ArrangeBy keys=[[#0{c_id}..=#2{c_w_id}], [#3{c_n_nationkey}]] // { arity: 4 }
- Project (#0{c_id}..=#2{c_w_id}, #21{c_n_nationkey}) // { arity: 4 }
- Filter (#21{c_n_nationkey}) IS NOT NULL // { arity: 22 }
- ReadIndex on=customer fk_customer_district=[*** full scan ***] // { arity: 22 }
- ArrangeBy keys=[[#0{n_nationkey}], [#1{n_regionkey}]] // { arity: 2 }
- Project (#0{n_nationkey}, #2{n_regionkey}) // { arity: 2 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- ArrangeBy keys=[[#0{n_nationkey}]] // { arity: 2 }
- Project (#0{n_nationkey}, #1{n_name}) // { arity: 2 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- ArrangeBy keys=[[#0{r_regionkey}]] // { arity: 1 }
- Project (#0{r_regionkey}) // { arity: 1 }
- Filter (#1{r_name} = "EUROPE") // { arity: 3 }
- ReadStorage materialize.public.region // { arity: 3 }
- Source materialize.public.item
- filter=((#0{i_id} < 1000) AND like["%b"](padchar(#4{i_data})))
- Source materialize.public.region
- filter=((#1{r_name} = "EUROPE"))
- Used Indexes:
- - materialize.public.fk_customer_district (*** full scan ***)
- - materialize.public.fk_order_customer (*** full scan ***)
- - materialize.public.fk_orderline_order (delta join lookup)
- - materialize.public.fk_orderline_stock (delta join lookup)
- - materialize.public.fk_stock_warehouse (*** full scan ***)
- - materialize.public.fk_nation_regionkey (*** full scan ***)
- - materialize.public.fk_supplier_nationkey (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 09
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- n_name, EXTRACT(year FROM o_entry_d) AS l_year,
- sum(ol_amount) AS sum_profit
- FROM item, stock, supplier, orderline, "order", nation
- WHERE ol_i_id = s_i_id
- AND ol_supply_w_id = s_w_id
- AND s_su_suppkey = su_suppkey
- AND ol_w_id = o_w_id
- AND ol_d_id = o_d_id
- AND ol_o_id = o_id
- AND ol_i_id = i_id
- AND su_nationkey = n_nationkey
- AND i_data like '%BB'
- GROUP BY n_name, EXTRACT(year FROM o_entry_d)
- ORDER BY n_name, l_year DESC
- ----
- Explained Query:
- Finish order_by=[#0{n_name} asc nulls_last, #1 desc nulls_first] output=[#0..=#2]
- Reduce group_by=[#2{n_name}, extract_year_d(#1{o_entry_d})] aggregates=[sum(#0{ol_amount})] // { arity: 3 }
- Project (#14{ol_amount}, #19{o_entry_d}, #21{n_name}) // { arity: 3 }
- Join on=(#0{i_id} = #1{s_i_id} = #10{ol_i_id} AND #2{s_w_id} = #11{ol_supply_w_id} AND #3{s_su_suppkey} = #4{su_suppkey} AND #5{su_nationkey} = #20{n_nationkey} AND #6{ol_o_id} = #16{o_id} AND #7{ol_d_id} = #17{o_d_id} AND #8{ol_w_id} = #18{o_w_id}) type=delta // { arity: 22 }
- implementation
- %0:item » %1:stock[#0{s_i_id}]KA » %2:supplier[#0{su_suppkey}]UK » %5:nation[#0{n_nationkey}]UK » %3:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKA » %4:order[#0{o_id}..=#2{o_w_id}]UKKK
- %1:stock » %0:item[#0{i_id}]UKlf » %2:supplier[#0{su_suppkey}]UK » %5:nation[#0{n_nationkey}]UK » %3:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKA » %4:order[#0{o_id}..=#2{o_w_id}]UKKK
- %2:supplier » %5:nation[#0{n_nationkey}]UK » %1:stock[#2{s_su_suppkey}]KA » %0:item[#0{i_id}]UKlf » %3:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKA » %4:order[#0{o_id}..=#2{o_w_id}]UKKK
- %3:orderline » %4:order[#0{o_id}..=#2{o_w_id}]UKKK » %1:stock[#0{s_i_id}, #1{s_w_id}]UKK » %0:item[#0{i_id}]UKlf » %2:supplier[#0{su_suppkey}]UK » %5:nation[#0{n_nationkey}]UK
- %4:order » %3:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA » %1:stock[#0{s_i_id}, #1{s_w_id}]UKK » %0:item[#0{i_id}]UKlf » %2:supplier[#0{su_suppkey}]UK » %5:nation[#0{n_nationkey}]UK
- %5:nation » %2:supplier[#1{su_nationkey}]KA » %1:stock[#2{s_su_suppkey}]KA » %0:item[#0{i_id}]UKlf » %3:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKA » %4:order[#0{o_id}..=#2{o_w_id}]UKKK
- ArrangeBy keys=[[#0{i_id}]] // { arity: 1 }
- Project (#0{i_id}) // { arity: 1 }
- Filter like["%BB"](padchar(#4{i_data})) // { arity: 5 }
- ReadStorage materialize.public.item // { arity: 5 }
- ArrangeBy keys=[[#0{s_i_id}], [#0{s_i_id}, #1{s_w_id}], [#2{s_su_suppkey}]] // { arity: 3 }
- Project (#0{s_i_id}, #1{s_w_id}, #17{s_su_suppkey}) // { arity: 3 }
- ReadIndex on=stock fk_stock_warehouse=[*** full scan ***] // { arity: 18 }
- ArrangeBy keys=[[#0{su_suppkey}], [#1{su_nationkey}]] // { arity: 2 }
- Project (#0{su_suppkey}, #3{su_nationkey}) // { arity: 2 }
- ReadIndex on=supplier fk_supplier_nationkey=[*** full scan ***] // { arity: 7 }
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}], [#5{ol_supply_w_id}, #4{ol_i_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[delta join lookup] fk_orderline_stock=[delta join lookup] // { arity: 10 }
- ArrangeBy keys=[[#0{o_id}..=#2{o_w_id}]] // { arity: 4 }
- Project (#0{o_id}..=#2{o_w_id}, #4{o_entry_d}) // { arity: 4 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- ArrangeBy keys=[[#0{n_nationkey}]] // { arity: 2 }
- Project (#0{n_nationkey}, #1{n_name}) // { arity: 2 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- Source materialize.public.item
- filter=(like["%BB"](padchar(#4{i_data})))
- Used Indexes:
- - materialize.public.fk_order_customer (*** full scan ***)
- - materialize.public.fk_orderline_order (delta join lookup)
- - materialize.public.fk_orderline_stock (delta join lookup)
- - materialize.public.fk_stock_warehouse (*** full scan ***)
- - materialize.public.fk_nation_regionkey (*** full scan ***)
- - materialize.public.fk_supplier_nationkey (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 10
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- c_id, c_last, sum(ol_amount) AS revenue, c_city, c_phone, n_name
- FROM customer, "order", orderline, nation
- WHERE c_id = o_c_id
- AND c_w_id = o_w_id
- AND c_d_id = o_d_id
- AND ol_w_id = o_w_id
- AND ol_d_id = o_d_id
- AND ol_o_id = o_id
- AND o_entry_d >= TIMESTAMP '2007-01-02 00:00:00.000000'
- AND o_entry_d <= ol_delivery_d
- AND n_nationkey = c_n_nationkey
- GROUP BY c_id, c_last, c_city, c_phone, n_name
- ORDER BY revenue DESC
- ----
- Explained Query:
- Finish order_by=[#2{sum_ol_amount} desc nulls_first] output=[#0..=#5]
- Project (#0{c_id}, #1{c_last}, #5{sum_ol_amount}, #2{c_city}..=#4{n_name}) // { arity: 6 }
- Reduce group_by=[#0{c_id}..=#3{c_phone}, #5{n_name}] aggregates=[sum(#4{ol_amount})] // { arity: 6 }
- Project (#0{c_id}, #3{c_last}..=#5{c_phone}, #20{ol_amount}, #23{n_name}) // { arity: 6 }
- Filter (#11{o_entry_d} <= #18{ol_delivery_d}) // { arity: 24 }
- Join on=(#0{c_id} = #10{o_c_id} AND #1{c_d_id} = #8{o_d_id} = #13{ol_d_id} AND #2{c_w_id} = #9{o_w_id} = #14{ol_w_id} AND #6{c_n_nationkey} = #22{n_nationkey} AND #7{o_id} = #12{ol_o_id}) type=delta // { arity: 24 }
- implementation
- %0:customer » %3:nation[#0{n_nationkey}]UK » %1:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAif » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA
- %1:order » %0:customer[#0{c_id}..=#2{c_w_id}]UKKK » %3:nation[#0{n_nationkey}]UK » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA
- %2:orderline » %1:order[#0{o_id}..=#2{o_w_id}]UKKKif » %0:customer[#0{c_id}..=#2{c_w_id}]UKKK » %3:nation[#0{n_nationkey}]UK
- %3:nation » %0:customer[#6{c_n_nationkey}]KA » %1:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAif » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA
- ArrangeBy keys=[[#0{c_id}..=#2{c_w_id}], [#6{c_n_nationkey}]] // { arity: 7 }
- Project (#0{c_id}..=#2{c_w_id}, #5{c_last}, #8{c_city}, #11{c_phone}, #21{c_n_nationkey}) // { arity: 7 }
- Filter (#21{c_n_nationkey}) IS NOT NULL // { arity: 22 }
- ReadIndex on=customer fk_customer_district=[*** full scan ***] // { arity: 22 }
- ArrangeBy keys=[[#0{o_id}..=#2{o_w_id}], [#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]] // { arity: 5 }
- Project (#0{o_id}..=#4{o_entry_d}) // { arity: 5 }
- Filter (#3{o_c_id}) IS NOT NULL AND (date_to_timestamp(#4{o_entry_d}) >= 2007-01-02 00:00:00) // { arity: 8 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[delta join lookup] // { arity: 10 }
- ArrangeBy keys=[[#0{n_nationkey}]] // { arity: 2 }
- Project (#0{n_nationkey}, #1{n_name}) // { arity: 2 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- Used Indexes:
- - materialize.public.fk_customer_district (*** full scan ***)
- - materialize.public.fk_order_customer (*** full scan ***)
- - materialize.public.fk_orderline_order (delta join lookup)
- - materialize.public.fk_nation_regionkey (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 11
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT s_i_id, sum(s_order_cnt) AS ordercount
- FROM stock, supplier, nation
- WHERE s_su_suppkey = su_suppkey
- AND su_nationkey = n_nationkey
- AND n_name = 'GERMANY'
- GROUP BY s_i_id
- HAVING sum(s_order_cnt) > (
- SELECT sum(s_order_cnt) * 0.005
- FROM stock, supplier, nation
- WHERE s_su_suppkey = su_suppkey
- AND su_nationkey = n_nationkey
- AND n_name = 'GERMANY'
- )
- ORDER BY ordercount DESC
- ----
- Explained Query:
- Finish order_by=[#1{sum_s_order_cnt} desc nulls_first] output=[#0, #1]
- With
- cte l0 =
- Project (#0{s_i_id}, #14{s_order_cnt}) // { arity: 2 }
- Join on=(#17{s_su_suppkey} = #18{su_suppkey} AND #19{su_nationkey} = #20{n_nationkey}) type=delta // { arity: 21 }
- implementation
- %0:stock » %1:supplier[#0{su_suppkey}]UK » %2:nation[#0{n_nationkey}]UKef
- %1:supplier » %2:nation[#0{n_nationkey}]UKef » %0:stock[#17{s_su_suppkey}]KA
- %2:nation » %1:supplier[#1{su_nationkey}]KA » %0:stock[#17{s_su_suppkey}]KA
- ArrangeBy keys=[[#17{s_su_suppkey}]] // { arity: 18 }
- ReadIndex on=stock fk_stock_supplier=[delta join 1st input (full scan)] // { arity: 18 }
- ArrangeBy keys=[[#0{su_suppkey}], [#1{su_nationkey}]] // { arity: 2 }
- Project (#0{su_suppkey}, #3{su_nationkey}) // { arity: 2 }
- ReadIndex on=supplier fk_supplier_nationkey=[*** full scan ***] // { arity: 7 }
- ArrangeBy keys=[[#0{n_nationkey}]] // { arity: 1 }
- Project (#0{n_nationkey}) // { arity: 1 }
- Filter (#1{n_name} = "GERMANY") // { arity: 4 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- Return // { arity: 2 }
- Project (#0{s_i_id}, #1{sum_s_order_cnt}) // { arity: 2 }
- Filter (bigint_to_numeric(#1{sum_s_order_cnt}) > (bigint_to_numeric(#2{sum_s_order_cnt}) * 0.005)) // { arity: 3 }
- CrossJoin type=differential // { arity: 3 }
- implementation
- %1[×]UA » %0[×]
- ArrangeBy keys=[[]] // { arity: 2 }
- Reduce group_by=[#0{s_i_id}] aggregates=[sum(#1{s_order_cnt})] // { arity: 2 }
- Get l0 // { arity: 2 }
- ArrangeBy keys=[[]] // { arity: 1 }
- Reduce aggregates=[sum(#0{s_order_cnt})] // { arity: 1 }
- Project (#1{s_order_cnt}) // { arity: 1 }
- Get l0 // { arity: 2 }
- Used Indexes:
- - materialize.public.fk_stock_supplier (delta join 1st input (full scan))
- - materialize.public.fk_nation_regionkey (*** full scan ***)
- - materialize.public.fk_supplier_nationkey (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 12
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- o_ol_cnt,
- sum(CASE WHEN o_carrier_id = 1 OR o_carrier_id = 2 THEN 1 ELSE 0 END) AS high_line_count,
- sum(CASE WHEN o_carrier_id <> 1 AND o_carrier_id <> 2 THEN 1 ELSE 0 END) AS low_line_count
- FROM
- "order", orderline
- WHERE ol_w_id = o_w_id
- AND ol_d_id = o_d_id
- AND ol_o_id = o_id
- AND o_entry_d <= ol_delivery_d
- AND ol_delivery_d < TIMESTAMP '2020-01-01 00:00:00.000000'
- GROUP BY o_ol_cnt
- ORDER BY o_ol_cnt
- ----
- Explained Query:
- Finish order_by=[#0{o_ol_cnt} asc nulls_last] output=[#0..=#2]
- Reduce group_by=[#1{o_ol_cnt}] aggregates=[sum(case when ((#0{o_carrier_id} = 1) OR (#0{o_carrier_id} = 2)) then 1 else 0 end), sum(case when ((#0{o_carrier_id} != 1) AND (#0{o_carrier_id} != 2)) then 1 else 0 end)] // { arity: 3 }
- Project (#4{o_carrier_id}, #5{o_ol_cnt}) // { arity: 2 }
- Filter (date_to_timestamp(#12{ol_delivery_d}) < 2020-01-01 00:00:00) AND (#3{o_entry_d} <= #12{ol_delivery_d}) // { arity: 16 }
- Join on=(#0{o_id} = #6{ol_o_id} AND #1{o_d_id} = #7{ol_d_id} AND #2{o_w_id} = #8{ol_w_id}) type=differential // { arity: 16 }
- implementation
- %0:order[#2{o_w_id}, #1{o_d_id}, #0{o_id}]UKKK » %1:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKAif
- ArrangeBy keys=[[#2{o_w_id}, #1{o_d_id}, #0{o_id}]] // { arity: 6 }
- Project (#0{o_id}..=#2{o_w_id}, #4{o_entry_d}..=#6{o_ol_cnt}) // { arity: 6 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[differential join] // { arity: 10 }
- Used Indexes:
- - materialize.public.fk_order_customer (*** full scan ***)
- - materialize.public.fk_orderline_order (differential join)
- Target cluster: quickstart
- EOF
- # Query 13
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- c_count, count(*) AS custdist
- FROM (
- SELECT c_id, count(o_id) as c_count
- FROM customer
- LEFT OUTER JOIN "order" ON (
- c_w_id = o_w_id AND c_d_id = o_d_id AND c_id = o_c_id AND o_carrier_id > 8
- )
- GROUP BY c_id
- ) AS c_orders
- GROUP BY c_count
- ORDER BY custdist DESC, c_count DESC
- ----
- Explained Query:
- Finish order_by=[#1{count} desc nulls_first, #0{count_o_id} desc nulls_first] output=[#0, #1]
- With
- cte l0 =
- Project (#0{c_id}..=#3{o_id}) // { arity: 4 }
- Filter (#8{o_carrier_id} > 8) // { arity: 11 }
- Join on=(#0{c_id} = #6{o_c_id} AND #1{c_d_id} = #4{o_d_id} AND #2{c_w_id} = #5{o_w_id}) type=differential // { arity: 11 }
- implementation
- %0:customer[#2{c_w_id}, #1{c_d_id}, #0{c_id}]UKKK » %1:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKAif
- ArrangeBy keys=[[#2{c_w_id}, #1{c_d_id}, #0{c_id}]] // { arity: 3 }
- Project (#0{c_id}..=#2{c_w_id}) // { arity: 3 }
- ReadIndex on=customer fk_customer_district=[*** full scan ***] // { arity: 22 }
- ArrangeBy keys=[[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]] // { arity: 8 }
- ReadIndex on=order fk_order_customer=[differential join] // { arity: 8 }
- Return // { arity: 2 }
- Reduce group_by=[#0{count_o_id}] aggregates=[count(*)] // { arity: 2 }
- Project (#1{count_o_id}) // { arity: 1 }
- Reduce group_by=[#0{c_id}] aggregates=[count(#1{o_id})] // { arity: 2 }
- Union // { arity: 2 }
- Map (null) // { arity: 2 }
- Union // { arity: 1 }
- Negate // { arity: 1 }
- Project (#0{c_id}) // { arity: 1 }
- Distinct project=[#0{c_id}..=#2{c_w_id}] // { arity: 3 }
- Project (#0{c_id}..=#2{c_w_id}) // { arity: 3 }
- Get l0 // { arity: 4 }
- Project (#0{c_id}) // { arity: 1 }
- ReadIndex on=customer fk_customer_district=[*** full scan ***] // { arity: 22 }
- Project (#0{c_id}, #3{o_id}) // { arity: 2 }
- Get l0 // { arity: 4 }
- Used Indexes:
- - materialize.public.fk_customer_district (*** full scan ***)
- - materialize.public.fk_order_customer (differential join)
- Target cluster: quickstart
- EOF
- # Query 14
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- 100.00 * sum(CASE WHEN i_data LIKE 'PR%' THEN ol_amount ELSE 0 END) / (1 + sum(ol_amount)) AS promo_revenue
- FROM orderline, item
- WHERE ol_i_id = i_id
- AND ol_delivery_d >= TIMESTAMP '2007-01-02 00:00:00.000000'
- AND ol_delivery_d < TIMESTAMP '2020-01-02 00:00:00.000000'
- ----
- Explained Query:
- With
- cte l0 =
- Reduce aggregates=[sum(case when like["PR%"](padchar(#1{i_data})) then #0{ol_amount} else 0 end), sum(#0{ol_amount})] // { arity: 2 }
- Project (#8{ol_amount}, #11{i_data}) // { arity: 2 }
- Filter (#12 < 2020-01-02 00:00:00) AND (#12 >= 2007-01-02 00:00:00) // { arity: 13 }
- Map (date_to_timestamp(#6{ol_delivery_d})) // { arity: 13 }
- Join on=(#4{ol_i_id} = #10{i_id}) type=differential // { arity: 12 }
- implementation
- %1:item[#0{i_id}]UK » %0:orderline[#4{ol_i_id}]KAiif
- ArrangeBy keys=[[#4{ol_i_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_item=[differential join] // { arity: 10 }
- ArrangeBy keys=[[#0{i_id}]] // { arity: 2 }
- Project (#0{i_id}, #4{i_data}) // { arity: 2 }
- ReadStorage materialize.public.item // { arity: 5 }
- Return // { arity: 1 }
- Project (#2) // { arity: 1 }
- Map (((100 * #0{sum}) / (1 + #1{sum_ol_amount}))) // { arity: 3 }
- Union // { arity: 2 }
- Get l0 // { arity: 2 }
- Map (null, null) // { arity: 2 }
- Union // { arity: 0 }
- Negate // { arity: 0 }
- Project () // { arity: 0 }
- Get l0 // { arity: 2 }
- Constant // { arity: 0 }
- - ()
- Source materialize.public.item
- Used Indexes:
- - materialize.public.fk_orderline_item (differential join)
- Target cluster: quickstart
- EOF
- # Query 15
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT su_suppkey, su_name, su_address, su_phone, total_revenue
- FROM
- supplier,
- (
- SELECT
- s_su_suppkey AS supplier_no,
- sum(ol_amount) AS total_revenue
- FROM orderline, stock
- WHERE ol_i_id = s_i_id
- AND ol_supply_w_id = s_w_id
- AND ol_delivery_d >= TIMESTAMP '2007-01-02 00:00:00.000000'
- GROUP BY s_su_suppkey
- ) AS revenue
- WHERE su_suppkey = supplier_no
- AND total_revenue = (
- SELECT max(total_revenue)
- FROM (
- SELECT
- s_su_suppkey AS supplier_no,
- sum(ol_amount) AS total_revenue
- FROM orderline, stock
- WHERE ol_i_id = s_i_id
- AND ol_supply_w_id = s_w_id
- AND ol_delivery_d >= TIMESTAMP '2007-01-02 00:00:00.000000'
- GROUP BY s_su_suppkey
- ) AS revenue
- )
- ORDER BY su_suppkey
- ----
- Explained Query:
- Finish order_by=[#0{su_suppkey} asc nulls_last] output=[#0..=#4]
- With
- cte l0 =
- Reduce group_by=[#1{s_su_suppkey}] aggregates=[sum(#0{ol_amount})] // { arity: 2 }
- Project (#8{ol_amount}, #12{s_su_suppkey}) // { arity: 2 }
- Filter (date_to_timestamp(#6{ol_delivery_d}) >= 2007-01-02 00:00:00) // { arity: 13 }
- Join on=(#4{ol_i_id} = #10{s_i_id} AND #5{ol_supply_w_id} = #11{s_w_id}) type=differential // { arity: 13 }
- implementation
- %1:stock[#1{s_w_id}, #0{s_i_id}]UKK » %0:orderline[#5{ol_supply_w_id}, #4{ol_i_id}]KKAif
- ArrangeBy keys=[[#5{ol_supply_w_id}, #4{ol_i_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_stock=[differential join] // { arity: 10 }
- ArrangeBy keys=[[#1{s_w_id}, #0{s_i_id}]] // { arity: 3 }
- Project (#0{s_i_id}, #1{s_w_id}, #17{s_su_suppkey}) // { arity: 3 }
- ReadIndex on=stock fk_stock_warehouse=[*** full scan ***] // { arity: 18 }
- Return // { arity: 5 }
- Project (#0{su_suppkey}..=#3{su_phone}, #5{sum_ol_amount}) // { arity: 5 }
- Join on=(#0{su_suppkey} = #4{s_su_suppkey} AND #5{sum_ol_amount} = #6{max_sum_ol_amount}) type=delta // { arity: 7 }
- implementation
- %0:supplier » %1:l0[#0]UKA » %2[#0]UK
- %1:l0 » %0:supplier[#0{su_suppkey}]UK » %2[#0]UK
- %2 » %1:l0[#1{total_revenue}]K » %0:supplier[#0{su_suppkey}]UK
- ArrangeBy keys=[[#0{su_suppkey}]] // { arity: 4 }
- Project (#0{su_suppkey}..=#2{su_address}, #4{su_phone}) // { arity: 4 }
- ReadIndex on=supplier fk_supplier_nationkey=[*** full scan ***] // { arity: 7 }
- ArrangeBy keys=[[#0{s_su_suppkey}], [#1{sum_ol_amount}]] // { arity: 2 }
- Filter (#1{sum_ol_amount}) IS NOT NULL // { arity: 2 }
- Get l0 // { arity: 2 }
- ArrangeBy keys=[[#0{max_sum_ol_amount}]] // { arity: 1 }
- Filter (#0{max_sum_ol_amount}) IS NOT NULL // { arity: 1 }
- Reduce aggregates=[max(#0{sum_ol_amount})] // { arity: 1 }
- Project (#1{sum_ol_amount}) // { arity: 1 }
- Get l0 // { arity: 2 }
- Used Indexes:
- - materialize.public.fk_orderline_stock (differential join)
- - materialize.public.fk_stock_warehouse (*** full scan ***)
- - materialize.public.fk_supplier_nationkey (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 16
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- i_name,
- substr(i_data, 1, 3) AS brand,
- i_price,
- count(DISTINCT s_su_suppkey) AS supplier_cnt
- FROM stock, item
- WHERE i_id = s_i_id
- AND i_data NOT LIKE 'zz%'
- AND (
- s_su_suppkey NOT IN (SELECT su_suppkey FROM supplier WHERE su_comment like '%bad%')
- )
- GROUP BY i_name, substr(i_data, 1, 3), i_price
- ORDER BY supplier_cnt DESC
- ----
- Explained Query:
- Finish order_by=[#3{count_s_su_suppkey} desc nulls_first] output=[#0..=#3]
- With
- cte l0 =
- Project (#17{s_su_suppkey}, #19{i_name}..=#21{i_data}) // { arity: 4 }
- Join on=(#0{s_i_id} = #18{i_id}) type=differential // { arity: 22 }
- implementation
- %1:item[#0{i_id}]UKf » %0:stock[#0{s_i_id}]KAf
- ArrangeBy keys=[[#0{s_i_id}]] // { arity: 18 }
- ReadIndex on=stock fk_stock_item=[differential join] // { arity: 18 }
- ArrangeBy keys=[[#0{i_id}]] // { arity: 4 }
- Project (#0{i_id}, #2{i_name}..=#4{i_data}) // { arity: 4 }
- Filter NOT(like["zz%"](padchar(#4{i_data}))) // { arity: 5 }
- ReadStorage materialize.public.item // { arity: 5 }
- cte l1 =
- Distinct project=[#0{s_su_suppkey}] // { arity: 1 }
- Project (#0{s_su_suppkey}) // { arity: 1 }
- Get l0 // { arity: 4 }
- Return // { arity: 4 }
- Reduce group_by=[#1{i_name}, substr(char_to_text(#3{i_data}), 1, 3), #2{i_price}] aggregates=[count(distinct #0{s_su_suppkey})] // { arity: 4 }
- Project (#0{s_su_suppkey}..=#3{i_data}) // { arity: 4 }
- Join on=(#0{s_su_suppkey} = #4{s_su_suppkey}) type=differential // { arity: 5 }
- implementation
- %0:l0[#0]K » %1[#0]K
- ArrangeBy keys=[[#0{s_su_suppkey}]] // { arity: 4 }
- Get l0 // { arity: 4 }
- ArrangeBy keys=[[#0{s_su_suppkey}]] // { arity: 1 }
- Union // { arity: 1 }
- Negate // { arity: 1 }
- Project (#0{s_su_suppkey}) // { arity: 1 }
- Join on=(#0{s_su_suppkey} = #1{su_suppkey}) type=differential // { arity: 2 }
- implementation
- %0:l1[#0]UKA » %1:supplier[#0]UKlf
- ArrangeBy keys=[[#0{s_su_suppkey}]] // { arity: 1 }
- Get l1 // { arity: 1 }
- ArrangeBy keys=[[#0{su_suppkey}]] // { arity: 1 }
- Project (#0{su_suppkey}) // { arity: 1 }
- Filter like["%bad%"](padchar(#6{su_comment})) // { arity: 7 }
- ReadIndex on=supplier fk_supplier_nationkey=[*** full scan ***] // { arity: 7 }
- Get l1 // { arity: 1 }
- Source materialize.public.item
- filter=(NOT(like["zz%"](padchar(#4{i_data}))))
- Used Indexes:
- - materialize.public.fk_stock_item (differential join)
- - materialize.public.fk_supplier_nationkey (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 17
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- sum(ol_amount) / 2.0 AS avg_yearly
- FROM
- orderline,
- (
- SELECT i_id, avg(ol_quantity) AS a
- FROM item, orderline
- WHERE i_data LIKE '%b' AND ol_i_id = i_id
- GROUP BY i_id
- ) t
- WHERE ol_i_id = t.i_id
- AND ol_quantity < t.a
- ----
- Explained Query:
- With
- cte l0 =
- ArrangeBy keys=[[#4{ol_i_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_item=[differential join] // { arity: 10 }
- cte l1 =
- Reduce aggregates=[sum(#0{ol_amount})] // { arity: 1 }
- Project (#8{ol_amount}) // { arity: 1 }
- Filter (integer_to_numeric(#7{ol_quantity}) < (bigint_to_numeric(#11{sum_ol_quantity}) / bigint_to_numeric(case when (#12{count_ol_quantity} = 0) then null else #12{count_ol_quantity} end))) // { arity: 13 }
- Join on=(#4{ol_i_id} = #10{i_id}) type=differential // { arity: 13 }
- implementation
- %1[#0{i_id}]UKA » %0:l0[#4{ol_i_id}]KA
- Get l0 // { arity: 10 }
- ArrangeBy keys=[[#0{i_id}]] // { arity: 3 }
- Reduce group_by=[#0{i_id}] aggregates=[sum(#1{ol_quantity}), count(#1{ol_quantity})] // { arity: 3 }
- Project (#0{i_id}, #8{ol_quantity}) // { arity: 2 }
- Join on=(#0{i_id} = #5{ol_i_id}) type=differential // { arity: 11 }
- implementation
- %0:item[#0{i_id}]UKlf » %1:l0[#4{ol_i_id}]KAlf
- ArrangeBy keys=[[#0{i_id}]] // { arity: 1 }
- Project (#0{i_id}) // { arity: 1 }
- Filter like["%b"](padchar(#4{i_data})) // { arity: 5 }
- ReadStorage materialize.public.item // { arity: 5 }
- Get l0 // { arity: 10 }
- Return // { arity: 1 }
- Project (#1) // { arity: 1 }
- Map ((#0{sum_ol_amount} / 2)) // { arity: 2 }
- Union // { arity: 1 }
- Get l1 // { arity: 1 }
- Map (null) // { arity: 1 }
- Union // { arity: 0 }
- Negate // { arity: 0 }
- Project () // { arity: 0 }
- Get l1 // { arity: 1 }
- Constant // { arity: 0 }
- - ()
- Source materialize.public.item
- filter=(like["%b"](padchar(#4{i_data})))
- Used Indexes:
- - materialize.public.fk_orderline_item (differential join)
- Target cluster: quickstart
- EOF
- # Query 18
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT c_last, c_id, o_id, o_entry_d, o_ol_cnt, sum(ol_amount)
- FROM customer, "order", orderline
- WHERE c_id = o_c_id
- AND c_w_id = o_w_id
- AND c_d_id = o_d_id
- AND ol_w_id = o_w_id
- AND ol_d_id = o_d_id
- AND ol_o_id = o_id
- GROUP BY o_id, o_w_id, o_d_id, c_id, c_last, o_entry_d, o_ol_cnt
- HAVING sum(ol_amount) > 200
- ORDER BY sum(ol_amount) DESC, o_entry_d
- ----
- Explained Query:
- Finish order_by=[#5{sum_ol_amount} desc nulls_first, #3{o_entry_d} asc nulls_last] output=[#0..=#5]
- Project (#4{c_last}, #3{c_id}, #0{o_id}, #5{o_entry_d}..=#7{sum_ol_amount}) // { arity: 6 }
- Filter (#7{sum_ol_amount} > 200) // { arity: 8 }
- Reduce group_by=[#4{o_id}, #2{c_w_id}, #1{c_d_id}, #0{c_id}, #3{c_last}, #5{o_entry_d}, #6{o_ol_cnt}] aggregates=[sum(#7{ol_amount})] // { arity: 8 }
- Project (#0{c_id}..=#4{o_id}, #8{o_entry_d}, #9{o_ol_cnt}, #18{ol_amount}) // { arity: 8 }
- Join on=(#0{c_id} = #7{o_c_id} AND #1{c_d_id} = #5{o_d_id} = #11{ol_d_id} AND #2{c_w_id} = #6{o_w_id} = #12{ol_w_id} AND #4{o_id} = #10{ol_o_id}) type=delta // { arity: 20 }
- implementation
- %0:customer » %1:order[#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]KKKA » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA
- %1:order » %0:customer[#0{c_id}..=#2{c_w_id}]UKKK » %2:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA
- %2:orderline » %1:order[#0{o_id}..=#2{o_w_id}]UKKK » %0:customer[#0{c_id}..=#2{c_w_id}]UKKK
- ArrangeBy keys=[[#0{c_id}..=#2{c_w_id}]] // { arity: 4 }
- Project (#0{c_id}..=#2{c_w_id}, #5{c_last}) // { arity: 4 }
- ReadIndex on=customer fk_customer_district=[*** full scan ***] // { arity: 22 }
- ArrangeBy keys=[[#0{o_id}..=#2{o_w_id}], [#2{o_w_id}, #1{o_d_id}, #3{o_c_id}]] // { arity: 6 }
- Project (#0{o_id}..=#4{o_entry_d}, #6{o_ol_cnt}) // { arity: 6 }
- Filter (#3{o_c_id}) IS NOT NULL // { arity: 8 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[delta join lookup] // { arity: 10 }
- Used Indexes:
- - materialize.public.fk_customer_district (*** full scan ***)
- - materialize.public.fk_order_customer (*** full scan ***)
- - materialize.public.fk_orderline_order (delta join lookup)
- Target cluster: quickstart
- EOF
- # Query 19
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT sum(ol_amount) AS revenue
- FROM orderline, item
- WHERE (
- ol_i_id = i_id
- AND i_data LIKE '%a'
- AND ol_quantity >= 1
- AND ol_quantity <= 10
- AND i_price BETWEEN 1 AND 400000
- AND ol_w_id in (1, 2, 3)
- ) OR (
- ol_i_id = i_id
- AND i_data LIKE '%b'
- AND ol_quantity >= 1
- AND ol_quantity <= 10
- AND i_price BETWEEN 1 AND 400000
- AND ol_w_id IN (1, 2, 4)
- ) OR (
- ol_i_id = i_id
- AND i_data LIKE '%c'
- AND ol_quantity >= 1
- AND ol_quantity <= 10
- AND i_price BETWEEN 1 AND 400000
- AND ol_w_id in (1, 5, 3)
- )
- ----
- Explained Query:
- With
- cte l0 =
- Reduce aggregates=[sum(#0{ol_amount})] // { arity: 1 }
- Project (#8{ol_amount}) // { arity: 1 }
- Filter (#7{ol_quantity} <= 10) AND (#7{ol_quantity} >= 1) AND (#12 OR #13 OR #14 OR #15 OR #16) AND ((like["%a"](#17) AND (#12 OR #13 OR #14)) OR (like["%b"](#17) AND (#12 OR #13 OR #15)) OR (like["%c"](#17) AND (#12 OR #14 OR #16))) // { arity: 18 }
- Map ((#2{ol_w_id} = 1), (#2{ol_w_id} = 2), (#2{ol_w_id} = 3), (#2{ol_w_id} = 4), (#2{ol_w_id} = 5), padchar(#11{i_data})) // { arity: 18 }
- Join on=(#4{ol_i_id} = #10{i_id}) type=differential // { arity: 12 }
- implementation
- %1:item[#0{i_id}]UKliif » %0:orderline[#4{ol_i_id}]KAeliiiif
- ArrangeBy keys=[[#4{ol_i_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_item=[differential join] // { arity: 10 }
- ArrangeBy keys=[[#0{i_id}]] // { arity: 2 }
- Project (#0{i_id}, #4{i_data}) // { arity: 2 }
- Filter (#3{i_price} <= 400000) AND (#3{i_price} >= 1) AND (like["%a"](#5) OR like["%b"](#5) OR like["%c"](#5)) // { arity: 6 }
- Map (padchar(#4{i_data})) // { arity: 6 }
- ReadStorage materialize.public.item // { arity: 5 }
- Return // { arity: 1 }
- Union // { arity: 1 }
- Get l0 // { arity: 1 }
- Map (null) // { arity: 1 }
- Union // { arity: 0 }
- Negate // { arity: 0 }
- Project () // { arity: 0 }
- Get l0 // { arity: 1 }
- Constant // { arity: 0 }
- - ()
- Source materialize.public.item
- filter=((#3{i_price} <= 400000) AND (#3{i_price} >= 1) AND (like["%a"](#5) OR like["%b"](#5) OR like["%c"](#5)))
- map=(padchar(#4{i_data}))
- Used Indexes:
- - materialize.public.fk_orderline_item (differential join)
- Target cluster: quickstart
- Notices:
- - Notice: Index materialize.public.fk_orderline_order on orderline(ol_w_id, ol_d_id, ol_o_id) is too wide to use for literal equalities `ol_w_id IN (1, 2, 3, 4, 5)`.
- Hint: If your literal equalities filter out many rows, create an index whose key exactly matches your literal equalities: (ol_w_id).
- EOF
- # Query 20
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT su_name, su_address
- FROM supplier, nation
- WHERE su_suppkey IN (
- SELECT mod(s_i_id * s_w_id, 10000)
- FROM stock, orderline
- WHERE s_i_id IN (SELECT i_id FROM item WHERE i_data LIKE 'co%')
- AND ol_i_id = s_i_id
- AND ol_delivery_d > TIMESTAMP '2010-05-23 12:00:00'
- GROUP BY s_i_id, s_w_id, s_quantity
- HAVING 2 * s_quantity > sum(ol_quantity)
- )
- AND su_nationkey = n_nationkey
- AND n_name = 'GERMANY'
- ORDER BY su_name
- ----
- Explained Query:
- Finish order_by=[#0{su_name} asc nulls_last] output=[#0, #1]
- With
- cte l0 =
- Project (#0{su_suppkey}..=#2{su_address}) // { arity: 3 }
- Join on=(#3{su_nationkey} = #7{n_nationkey}) type=differential // { arity: 8 }
- implementation
- %1:nation[#0{n_nationkey}]UKef » %0:supplier[#3{su_nationkey}]KAef
- ArrangeBy keys=[[#3{su_nationkey}]] // { arity: 7 }
- ReadIndex on=supplier fk_supplier_nationkey=[differential join] // { arity: 7 }
- ArrangeBy keys=[[#0{n_nationkey}]] // { arity: 1 }
- Project (#0{n_nationkey}) // { arity: 1 }
- Filter (#1{n_name} = "GERMANY") // { arity: 4 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- Return // { arity: 2 }
- Project (#1{su_name}, #2{su_address}) // { arity: 2 }
- Join on=(#0{su_suppkey} = #3{su_suppkey}) type=differential // { arity: 4 }
- implementation
- %1[#0]UKA » %0:l0[#0]UK
- ArrangeBy keys=[[#0{su_suppkey}]] // { arity: 3 }
- Get l0 // { arity: 3 }
- ArrangeBy keys=[[#0{su_suppkey}]] // { arity: 1 }
- Distinct project=[#0{su_suppkey}] // { arity: 1 }
- Project (#0{su_suppkey}) // { arity: 1 }
- Filter (integer_to_bigint((2 * #3{s_quantity})) > #4{sum_ol_quantity}) // { arity: 5 }
- Reduce group_by=[#0{su_suppkey}..=#3{s_quantity}] aggregates=[sum(#4{ol_quantity})] // { arity: 5 }
- Project (#0{su_suppkey}..=#3{s_quantity}, #11{ol_quantity}) // { arity: 5 }
- Filter (date_to_timestamp(#10{ol_delivery_d}) > 2010-05-23 12:00:00) // { arity: 15 }
- Join on=(#0{su_suppkey} = ((#1{s_i_id} * #2{s_w_id}) % 10000) AND #1{s_i_id} = #8{ol_i_id} = #14{i_id}) type=delta // { arity: 15 }
- implementation
- %0:l0 » %1:stock[((#0 * #1) % 10000)]K » %3:item[#0]UKlf » %2:orderline[#4{ol_i_id}]KAif
- %1:stock » %3:item[#0]UKlf » %0:l0[#0]UK » %2:orderline[#4{ol_i_id}]KAif
- %2:orderline » %3:item[#0]UKlf » %1:stock[#0{s_i_id}]KA » %0:l0[#0]UK
- %3:item » %2:orderline[#4{ol_i_id}]KAif » %1:stock[#0{s_i_id}]KA » %0:l0[#0]UK
- ArrangeBy keys=[[#0{su_suppkey}]] // { arity: 1 }
- Project (#0{su_suppkey}) // { arity: 1 }
- Get l0 // { arity: 3 }
- ArrangeBy keys=[[#0{s_i_id}], [((#0{s_i_id} * #1{s_w_id}) % 10000)]] // { arity: 3 }
- Project (#0{s_i_id}..=#2{s_quantity}) // { arity: 3 }
- ReadIndex on=stock fk_stock_warehouse=[*** full scan ***] // { arity: 18 }
- ArrangeBy keys=[[#4{ol_i_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_item=[delta join lookup] // { arity: 10 }
- ArrangeBy keys=[[#0{i_id}]] // { arity: 1 }
- Project (#0{i_id}) // { arity: 1 }
- Filter like["co%"](padchar(#4{i_data})) // { arity: 5 }
- ReadStorage materialize.public.item // { arity: 5 }
- Source materialize.public.item
- filter=(like["co%"](padchar(#4{i_data})))
- Used Indexes:
- - materialize.public.fk_orderline_item (delta join lookup)
- - materialize.public.fk_stock_warehouse (*** full scan ***)
- - materialize.public.fk_nation_regionkey (*** full scan ***)
- - materialize.public.fk_supplier_nationkey (differential join)
- Target cluster: quickstart
- EOF
- # Query 21
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- su_name, count(*) as numwait
- FROM
- supplier, orderline l1, "order", stock, nation
- WHERE ol_o_id = o_id
- AND ol_w_id = o_w_id
- AND ol_d_id = o_d_id
- AND ol_w_id = s_w_id
- AND ol_i_id = s_i_id
- AND s_su_suppkey = su_suppkey
- AND l1.ol_delivery_d > o_entry_d
- AND NOT EXISTS (
- SELECT *
- FROM orderline l2
- WHERE l2.ol_o_id = l1.ol_o_id
- AND l2.ol_w_id = l1.ol_w_id
- AND l2.ol_d_id = l1.ol_d_id
- AND l2.ol_delivery_d > l1.ol_delivery_d
- )
- AND su_nationkey = n_nationkey
- AND n_name = 'GERMANY'
- GROUP BY su_name
- ORDER BY numwait DESC, su_name
- ----
- Explained Query:
- Finish order_by=[#1{count} desc nulls_first, #0{su_name} asc nulls_last] output=[#0, #1]
- With
- cte l0 =
- Project (#1{su_name}, #3{ol_o_id}..=#5{ol_w_id}, #7{ol_delivery_d}) // { arity: 5 }
- Filter (#7{ol_delivery_d} > #11{o_entry_d}) // { arity: 16 }
- Join on=(#0{su_suppkey} = #14{s_su_suppkey} AND #2{su_nationkey} = #15{n_nationkey} AND #3{ol_o_id} = #8{o_id} AND #4{ol_d_id} = #9{o_d_id} AND #5{ol_w_id} = #10{o_w_id} = #13{s_w_id} AND #6{ol_i_id} = #12{s_i_id}) type=delta // { arity: 16 }
- implementation
- %0:supplier » %4:nation[#0{n_nationkey}]UKef » %3:stock[#2{s_su_suppkey}]KA » %1:orderline[#2{ol_w_id}, #3{ol_i_id}]KK » %2:order[#0{o_id}..=#2{o_w_id}]UKKK
- %1:orderline » %2:order[#0{o_id}..=#2{o_w_id}]UKKK » %3:stock[#0{s_i_id}, #1{s_w_id}]UKK » %0:supplier[#0{su_suppkey}]UK » %4:nation[#0{n_nationkey}]UKef
- %2:order » %1:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA » %3:stock[#0{s_i_id}, #1{s_w_id}]UKK » %0:supplier[#0{su_suppkey}]UK » %4:nation[#0{n_nationkey}]UKef
- %3:stock » %0:supplier[#0{su_suppkey}]UK » %4:nation[#0{n_nationkey}]UKef » %1:orderline[#2{ol_w_id}, #3{ol_i_id}]KK » %2:order[#0{o_id}..=#2{o_w_id}]UKKK
- %4:nation » %0:supplier[#2{su_nationkey}]KA » %3:stock[#2{s_su_suppkey}]KA » %1:orderline[#2{ol_w_id}, #3{ol_i_id}]KK » %2:order[#0{o_id}..=#2{o_w_id}]UKKK
- ArrangeBy keys=[[#0{su_suppkey}], [#2{su_nationkey}]] // { arity: 3 }
- Project (#0{su_suppkey}, #1{su_name}, #3{su_nationkey}) // { arity: 3 }
- ReadIndex on=supplier fk_supplier_nationkey=[*** full scan ***] // { arity: 7 }
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}], [#2{ol_w_id}, #3{ol_i_id}]] // { arity: 5 }
- Project (#0{ol_o_id}..=#2{ol_w_id}, #4{ol_i_id}, #6{ol_delivery_d}) // { arity: 5 }
- Filter (#4{ol_i_id}) IS NOT NULL // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[*** full scan ***] // { arity: 10 }
- ArrangeBy keys=[[#0{o_id}..=#2{o_w_id}]] // { arity: 4 }
- Project (#0{o_id}..=#2{o_w_id}, #4{o_entry_d}) // { arity: 4 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- ArrangeBy keys=[[#0{s_i_id}, #1{s_w_id}], [#2{s_su_suppkey}]] // { arity: 3 }
- Project (#0{s_i_id}, #1{s_w_id}, #17{s_su_suppkey}) // { arity: 3 }
- ReadIndex on=stock fk_stock_warehouse=[*** full scan ***] // { arity: 18 }
- ArrangeBy keys=[[#0{n_nationkey}]] // { arity: 1 }
- Project (#0{n_nationkey}) // { arity: 1 }
- Filter (#1{n_name} = "GERMANY") // { arity: 4 }
- ReadIndex on=nation fk_nation_regionkey=[*** full scan ***] // { arity: 4 }
- cte l1 =
- Distinct project=[#0{ol_o_id}..=#3{ol_delivery_d}] // { arity: 4 }
- Project (#1{ol_o_id}..=#4{ol_delivery_d}) // { arity: 4 }
- Get l0 // { arity: 5 }
- Return // { arity: 2 }
- Reduce group_by=[#0{su_name}] aggregates=[count(*)] // { arity: 2 }
- Project (#0{su_name}) // { arity: 1 }
- Join on=(#1{ol_o_id} = #5{ol_o_id} AND #2{ol_d_id} = #6{ol_d_id} AND #3{ol_w_id} = #7{ol_w_id} AND #4{ol_delivery_d} = #8{ol_delivery_d}) type=differential // { arity: 9 }
- implementation
- %0:l0[#1..=#4]KKKK » %1[#0..=#3]KKKK
- ArrangeBy keys=[[#1{ol_o_id}..=#4{ol_delivery_d}]] // { arity: 5 }
- Get l0 // { arity: 5 }
- ArrangeBy keys=[[#0{ol_o_id}..=#3{ol_delivery_d}]] // { arity: 4 }
- Union // { arity: 4 }
- Negate // { arity: 4 }
- Distinct project=[#0{ol_o_id}..=#3{ol_delivery_d}] // { arity: 4 }
- Project (#0{ol_o_id}..=#3{ol_delivery_d}) // { arity: 4 }
- Filter (#10{ol_delivery_d} > #3{ol_delivery_d}) // { arity: 14 }
- Join on=(#0{ol_o_id} = #4{ol_o_id} AND #1{ol_d_id} = #5{ol_d_id} AND #2{ol_w_id} = #6{ol_w_id}) type=differential // { arity: 14 }
- implementation
- %0:l1[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKK » %1:orderline[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]KKKA
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]] // { arity: 4 }
- Get l1 // { arity: 4 }
- ArrangeBy keys=[[#2{ol_w_id}, #1{ol_d_id}, #0{ol_o_id}]] // { arity: 10 }
- ReadIndex on=orderline fk_orderline_order=[differential join] // { arity: 10 }
- Get l1 // { arity: 4 }
- Used Indexes:
- - materialize.public.fk_order_customer (*** full scan ***)
- - materialize.public.fk_orderline_order (*** full scan ***, differential join)
- - materialize.public.fk_stock_warehouse (*** full scan ***)
- - materialize.public.fk_nation_regionkey (*** full scan ***)
- - materialize.public.fk_supplier_nationkey (*** full scan ***)
- Target cluster: quickstart
- EOF
- # Query 22
- query T multiline
- EXPLAIN OPTIMIZED PLAN WITH(humanized expressions, arity, join implementations) AS VERBOSE TEXT FOR
- SELECT
- substr(c_state, 1, 1) AS country,
- count(*) AS numcust,
- sum(c_balance) AS totacctbal
- FROM customer
- WHERE substr(c_phone, 1, 1) IN ('1', '2', '3', '4', '5', '6', '7')
- AND c_balance > (
- SELECT avg(c_balance)
- FROM customer
- WHERE c_balance > 0.00
- AND substr(c_phone, 1, 1) IN ('1', '2', '3', '4', '5', '6', '7')
- )
- AND NOT EXISTS (
- SELECT *
- FROM "order"
- WHERE o_c_id = c_id AND o_w_id = c_w_id AND o_d_id = c_d_id
- )
- GROUP BY substr(c_state, 1, 1)
- ORDER BY substr(c_state, 1, 1)
- ----
- Explained Query:
- Finish order_by=[#0 asc nulls_last] output=[#0..=#2]
- With
- cte l0 =
- Project (#0{c_id}..=#2{c_w_id}, #9{c_state}, #16{c_balance}, #22) // { arity: 6 }
- Map (substr(char_to_text(#11{c_phone}), 1, 1)) // { arity: 23 }
- ReadIndex on=customer fk_customer_district=[*** full scan ***] // { arity: 22 }
- cte l1 =
- Project (#0{c_id}..=#4{c_balance}) // { arity: 5 }
- Filter (#4{c_balance} > (#5{sum_c_balance} / bigint_to_numeric(case when (#6{count} = 0) then null else #6{count} end))) // { arity: 7 }
- CrossJoin type=differential // { arity: 7 }
- implementation
- %1[×]UA » %0:l0[×]ef
- ArrangeBy keys=[[]] // { arity: 5 }
- Project (#0{c_id}..=#4{c_balance}) // { arity: 5 }
- Filter ((#5 = "1") OR (#5 = "2") OR (#5 = "3") OR (#5 = "4") OR (#5 = "5") OR (#5 = "6") OR (#5 = "7")) // { arity: 6 }
- Get l0 // { arity: 6 }
- ArrangeBy keys=[[]] // { arity: 2 }
- Reduce aggregates=[sum(#0{c_balance}), count(*)] // { arity: 2 }
- Project (#4{c_balance}) // { arity: 1 }
- Filter (#4{c_balance} > 0) AND ((#5 = "1") OR (#5 = "2") OR (#5 = "3") OR (#5 = "4") OR (#5 = "5") OR (#5 = "6") OR (#5 = "7")) // { arity: 6 }
- Get l0 // { arity: 6 }
- cte l2 =
- Project (#0{c_id}..=#2{c_w_id}) // { arity: 3 }
- Get l1 // { arity: 5 }
- Return // { arity: 3 }
- Reduce group_by=[substr(char_to_text(#0{c_state}), 1, 1)] aggregates=[count(*), sum(#1{c_balance})] // { arity: 3 }
- Project (#3{c_state}, #4{c_balance}) // { arity: 2 }
- Join on=(#0{c_id} = #5{c_id} AND #1{c_d_id} = #6{c_d_id} AND #2{c_w_id} = #7{c_w_id}) type=differential // { arity: 8 }
- implementation
- %0:l1[#0..=#2]UKKK » %1[#0..=#2]KKK
- ArrangeBy keys=[[#0{c_id}..=#2{c_w_id}]] // { arity: 5 }
- Get l1 // { arity: 5 }
- ArrangeBy keys=[[#0{c_id}..=#2{c_w_id}]] // { arity: 3 }
- Union // { arity: 3 }
- Negate // { arity: 3 }
- Project (#0{c_id}..=#2{c_w_id}) // { arity: 3 }
- Join on=(#0{c_id} = #3{o_c_id} AND #1{c_d_id} = #4{o_d_id} AND #2{c_w_id} = #5{o_w_id}) type=differential // { arity: 6 }
- implementation
- %1[#0..=#2]UKKKA » %0:l2[#0..=#2]UKKK
- ArrangeBy keys=[[#0{c_id}..=#2{c_w_id}]] // { arity: 3 }
- Get l2 // { arity: 3 }
- ArrangeBy keys=[[#0{o_c_id}..=#2{o_w_id}]] // { arity: 3 }
- Distinct project=[#2{o_c_id}, #0{o_d_id}, #1{o_w_id}] // { arity: 3 }
- Project (#1{o_d_id}..=#3{o_c_id}) // { arity: 3 }
- Filter (#3{o_c_id}) IS NOT NULL // { arity: 8 }
- ReadIndex on=order fk_order_customer=[*** full scan ***] // { arity: 8 }
- Get l2 // { arity: 3 }
- Used Indexes:
- - materialize.public.fk_customer_district (*** full scan ***)
- - materialize.public.fk_order_customer (*** full scan ***)
- Target cluster: quickstart
- EOF
|