On Fri, 29 Sept 2023 at 10:59, Tom Lane <[email protected]> wrote: > We could also discuss keeping the "tracing" aspect of it, but > replacing debug_print_rel with pprint(rel), which'd still allow > removal of all the "DEBUG SUPPORT" stuff at the bottom of allpaths.c. > That's pretty much all of the maintenance-requiring stuff in it.
To assist discussion, I've attached a patch for that. I likely can't contribute much to that discussion due to being more of an "attach a debugger" person rather than an "add printf statements" person. To eliminate a hurdle for anyone who wants to chip in, I've attached the old and new debug output from the following query: select * from pg_class where oid = 1234; One observation is that the output is quite a bit larger with the patched version and does not seem as useful if you wanted OPTIMIZER_DEBUG to help you figure out why a given Path was chosen. David
After canonicalize_qual()
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
RELOPTINFO (pg_class): rows=1 width=273
baserestrictinfo: pg_class.oid = 1234
path list:
IdxScan(pg_class) rows=1 cost=0.27..8.29
cheapest parameterized paths:
IdxScan(pg_class) rows=1 cost=0.27..8.29
cheapest startup path:
IdxScan(pg_class) rows=1 cost=0.27..8.29
cheapest total path:
IdxScan(pg_class) rows=1 cost=0.27..8.29After canonicalize_qual()
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
{RELOPTINFO
:reloptkind 0
:relids (b 1)
:rows 1
:consider_startup false
:consider_param_startup false
:consider_parallel true
:reltarget
{PATHTARGET
:exprs (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 7
}
{VAR
:varno 1
:varattno 2
:vartype 19
:vartypmod -1
:varcollid 950
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 2
:location 7
}
{VAR
:varno 1
:varattno 3
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 3
:location 7
}
{VAR
:varno 1
:varattno 4
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 4
:location 7
}
{VAR
:varno 1
:varattno 5
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 5
:location 7
}
{VAR
:varno 1
:varattno 6
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 6
:location 7
}
{VAR
:varno 1
:varattno 7
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 7
:location 7
}
{VAR
:varno 1
:varattno 8
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 8
:location 7
}
{VAR
:varno 1
:varattno 9
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 9
:location 7
}
{VAR
:varno 1
:varattno 10
:vartype 23
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 10
:location 7
}
{VAR
:varno 1
:varattno 11
:vartype 700
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 11
:location 7
}
{VAR
:varno 1
:varattno 12
:vartype 23
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 12
:location 7
}
{VAR
:varno 1
:varattno 13
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 13
:location 7
}
{VAR
:varno 1
:varattno 14
:vartype 16
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 14
:location 7
}
{VAR
:varno 1
:varattno 15
:vartype 16
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 15
:location 7
}
{VAR
:varno 1
:varattno 16
:vartype 18
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 16
:location 7
}
{VAR
:varno 1
:varattno 17
:vartype 18
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 17
:location 7
}
{VAR
:varno 1
:varattno 18
:vartype 21
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 18
:location 7
}
{VAR
:varno 1
:varattno 19
:vartype 21
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 19
:location 7
}
{VAR
:varno 1
:varattno 20
:vartype 16
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 20
:location 7
}
{VAR
:varno 1
:varattno 21
:vartype 16
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 21
:location 7
}
{VAR
:varno 1
:varattno 22
:vartype 16
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 22
:location 7
}
{VAR
:varno 1
:varattno 23
:vartype 16
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 23
:location 7
}
{VAR
:varno 1
:varattno 24
:vartype 16
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 24
:location 7
}
{VAR
:varno 1
:varattno 25
:vartype 16
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 25
:location 7
}
{VAR
:varno 1
:varattno 26
:vartype 18
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 26
:location 7
}
{VAR
:varno 1
:varattno 27
:vartype 16
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 27
:location 7
}
{VAR
:varno 1
:varattno 28
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 28
:location 7
}
{VAR
:varno 1
:varattno 29
:vartype 28
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 29
:location 7
}
{VAR
:varno 1
:varattno 30
:vartype 28
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 30
:location 7
}
{VAR
:varno 1
:varattno 31
:vartype 1034
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 31
:location 7
}
{VAR
:varno 1
:varattno 32
:vartype 1009
:vartypmod -1
:varcollid 950
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 32
:location 7
}
{VAR
:varno 1
:varattno 33
:vartype 194
:vartypmod -1
:varcollid 950
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 33
:location 7
}
)
:sortgrouprefs <>
:cost.startup 0
:cost.per_tuple 0
:width 774
:has_volatile_expr 0
}
:pathlist (
{INDEXPATH
:path.pathtype 323
:parent_relids (b 1)
:required_outer (b)
:path.parallel_aware false
:path.parallel_safe true
:path.parallel_workers 0
:path.rows 1
:path.startup_cost 0.2725
:path.total_cost 8.290000000000001
:path.pathkeys <>
:indexinfo
{INDEXOPTINFO
:indexoid 2662
:reltablespace 0
:pages 4
:tuples 432
:tree_height 1
:ncolumns 1
:nkeycolumns 1
:indexkeys ( 1)
:indexcollations ( 0)
:opfamily ( 1989)
:opcintype ( 26)
:sortopfamily ( 1989)
:reverse_sort ( false)
:nulls_first ( false)
:canreturn ( true)
:relam 403
:indpred <>
:indextlist (
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location -1
}
:resno 1
:resname <>
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
)
:indrestrictinfo (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:predOK false
:unique true
:immediate true
:hypothetical false
:amcanorderbyop false
:amoptionalkey true
:amsearcharray true
:amsearchnulls true
:amhasgettuple true
:amhasgetbitmap true
:amcanparallel true
:amcanmarkpos true
}
:indexclauses (
{INDEXCLAUSE
:rinfo
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
:indexquals (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:lossy false
:indexcol 0
:indexcols <>
}
)
:indexorderbys <>
:indexorderbycols <>
:indexscandir 1
:indextotalcost 4.28
:indexselectivity 0.0023148148148148147
}
)
:ppilist <>
:partial_pathlist <>
:cheapest_startup_path
{INDEXPATH
:path.pathtype 323
:parent_relids (b 1)
:required_outer (b)
:path.parallel_aware false
:path.parallel_safe true
:path.parallel_workers 0
:path.rows 1
:path.startup_cost 0.2725
:path.total_cost 8.290000000000001
:path.pathkeys <>
:indexinfo
{INDEXOPTINFO
:indexoid 2662
:reltablespace 0
:pages 4
:tuples 432
:tree_height 1
:ncolumns 1
:nkeycolumns 1
:indexkeys ( 1)
:indexcollations ( 0)
:opfamily ( 1989)
:opcintype ( 26)
:sortopfamily ( 1989)
:reverse_sort ( false)
:nulls_first ( false)
:canreturn ( true)
:relam 403
:indpred <>
:indextlist (
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location -1
}
:resno 1
:resname <>
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
)
:indrestrictinfo (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:predOK false
:unique true
:immediate true
:hypothetical false
:amcanorderbyop false
:amoptionalkey true
:amsearcharray true
:amsearchnulls true
:amhasgettuple true
:amhasgetbitmap true
:amcanparallel true
:amcanmarkpos true
}
:indexclauses (
{INDEXCLAUSE
:rinfo
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
:indexquals (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:lossy false
:indexcol 0
:indexcols <>
}
)
:indexorderbys <>
:indexorderbycols <>
:indexscandir 1
:indextotalcost 4.28
:indexselectivity 0.0023148148148148147
}
:cheapest_total_path
{INDEXPATH
:path.pathtype 323
:parent_relids (b 1)
:required_outer (b)
:path.parallel_aware false
:path.parallel_safe true
:path.parallel_workers 0
:path.rows 1
:path.startup_cost 0.2725
:path.total_cost 8.290000000000001
:path.pathkeys <>
:indexinfo
{INDEXOPTINFO
:indexoid 2662
:reltablespace 0
:pages 4
:tuples 432
:tree_height 1
:ncolumns 1
:nkeycolumns 1
:indexkeys ( 1)
:indexcollations ( 0)
:opfamily ( 1989)
:opcintype ( 26)
:sortopfamily ( 1989)
:reverse_sort ( false)
:nulls_first ( false)
:canreturn ( true)
:relam 403
:indpred <>
:indextlist (
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location -1
}
:resno 1
:resname <>
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
)
:indrestrictinfo (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:predOK false
:unique true
:immediate true
:hypothetical false
:amcanorderbyop false
:amoptionalkey true
:amsearcharray true
:amsearchnulls true
:amhasgettuple true
:amhasgetbitmap true
:amcanparallel true
:amcanmarkpos true
}
:indexclauses (
{INDEXCLAUSE
:rinfo
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
:indexquals (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:lossy false
:indexcol 0
:indexcols <>
}
)
:indexorderbys <>
:indexorderbycols <>
:indexscandir 1
:indextotalcost 4.28
:indexselectivity 0.0023148148148148147
}
:cheapest_unique_path <>
:cheapest_parameterized_paths (
{INDEXPATH
:path.pathtype 323
:parent_relids (b 1)
:required_outer (b)
:path.parallel_aware false
:path.parallel_safe true
:path.parallel_workers 0
:path.rows 1
:path.startup_cost 0.2725
:path.total_cost 8.290000000000001
:path.pathkeys <>
:indexinfo
{INDEXOPTINFO
:indexoid 2662
:reltablespace 0
:pages 4
:tuples 432
:tree_height 1
:ncolumns 1
:nkeycolumns 1
:indexkeys ( 1)
:indexcollations ( 0)
:opfamily ( 1989)
:opcintype ( 26)
:sortopfamily ( 1989)
:reverse_sort ( false)
:nulls_first ( false)
:canreturn ( true)
:relam 403
:indpred <>
:indextlist (
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location -1
}
:resno 1
:resname <>
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
)
:indrestrictinfo (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:predOK false
:unique true
:immediate true
:hypothetical false
:amcanorderbyop false
:amoptionalkey true
:amsearcharray true
:amsearchnulls true
:amhasgettuple true
:amhasgetbitmap true
:amcanparallel true
:amcanmarkpos true
}
:indexclauses (
{INDEXCLAUSE
:rinfo
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
:indexquals (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:lossy false
:indexcol 0
:indexcols <>
}
)
:indexorderbys <>
:indexorderbycols <>
:indexscandir 1
:indextotalcost 4.28
:indexselectivity 0.0023148148148148147
}
)
:direct_lateral_relids (b)
:lateral_relids (b)
:relid 1
:reltablespace 0
:rtekind 0
:min_attr -6
:max_attr 33
:nulling_relids (b)
:lateral_vars <>
:lateral_referencers (b)
:indexlist (
{INDEXOPTINFO
:indexoid 3455
:reltablespace 0
:pages 2
:tuples 432
:tree_height 0
:ncolumns 2
:nkeycolumns 2
:indexkeys ( 9 8)
:indexcollations ( 0 0)
:opfamily ( 1989 1989)
:opcintype ( 26 26)
:sortopfamily ( 1989 1989)
:reverse_sort ( false false)
:nulls_first ( false false)
:canreturn ( true true)
:relam 403
:indpred <>
:indextlist (
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 9
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 9
:location -1
}
:resno 1
:resname <>
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 8
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 8
:location -1
}
:resno 2
:resname <>
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
)
:indrestrictinfo (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:predOK false
:unique false
:immediate true
:hypothetical false
:amcanorderbyop false
:amoptionalkey true
:amsearcharray true
:amsearchnulls true
:amhasgettuple true
:amhasgetbitmap true
:amcanparallel true
:amcanmarkpos true
}
{INDEXOPTINFO
:indexoid 2663
:reltablespace 0
:pages 5
:tuples 432
:tree_height 1
:ncolumns 2
:nkeycolumns 2
:indexkeys ( 2 3)
:indexcollations ( 950 0)
:opfamily ( 1994 1989)
:opcintype ( 19 26)
:sortopfamily ( 1994 1989)
:reverse_sort ( false false)
:nulls_first ( false false)
:canreturn ( true true)
:relam 403
:indpred <>
:indextlist (
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 2
:vartype 19
:vartypmod -1
:varcollid 950
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 2
:location -1
}
:resno 1
:resname <>
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 3
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 3
:location -1
}
:resno 2
:resname <>
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
)
:indrestrictinfo (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:predOK false
:unique true
:immediate true
:hypothetical false
:amcanorderbyop false
:amoptionalkey true
:amsearcharray true
:amsearchnulls true
:amhasgettuple true
:amhasgetbitmap true
:amcanparallel true
:amcanmarkpos true
}
{INDEXOPTINFO
:indexoid 2662
:reltablespace 0
:pages 4
:tuples 432
:tree_height 1
:ncolumns 1
:nkeycolumns 1
:indexkeys ( 1)
:indexcollations ( 0)
:opfamily ( 1989)
:opcintype ( 26)
:sortopfamily ( 1989)
:reverse_sort ( false)
:nulls_first ( false)
:canreturn ( true)
:relam 403
:indpred <>
:indextlist (
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location -1
}
:resno 1
:resname <>
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
)
:indrestrictinfo (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:predOK false
:unique true
:immediate true
:hypothetical false
:amcanorderbyop false
:amoptionalkey true
:amsearcharray true
:amsearchnulls true
:amhasgettuple true
:amhasgetbitmap true
:amcanparallel true
:amcanmarkpos true
}
)
:statlist <>
:pages 13
:tuples 432
:allvisfrac 0.8461538461538461
:eclass_indexes (b 0)
:subroot <>
:subplan_params <>
:rel_parallel_workers -1
:amflags 1
:serverid 0
:userid 0
:useridiscurrent false
:unique_for_rels <>
:non_unique_for_rels <>
:baserestrictinfo (
{RESTRICTINFO
:clause
{OPEXPR
:opno 607
:opfuncid 184
:opresulttype 16
:opretset false
:opcollid 0
:inputcollid 0
:args (
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
)
:location 32
}
:is_pushed_down true
:can_join false
:pseudoconstant false
:has_clone false
:is_clone false
:leakproof false
:has_volatile 2
:security_level 0
:num_base_rels 1
:clause_relids (b 1)
:required_relids (b 1)
:incompatible_relids (b)
:outer_relids (b)
:left_relids (b 1)
:right_relids (b)
:orclause <>
:rinfo_serial 1
:eval_cost.startup 0
:eval_cost.per_tuple 0.0025
:norm_selec 0.0023148148148148147
:outer_selec -1
:mergeopfamilies (o 1989)
:left_em
{EQUIVALENCEMEMBER
:em_expr
{VAR
:varno 1
:varattno 1
:vartype 26
:vartypmod -1
:varcollid 0
:varnullingrels (b)
:varlevelsup 0
:varnosyn 1
:varattnosyn 1
:location 29
}
:em_relids (b 1)
:em_is_const false
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:right_em
{EQUIVALENCEMEMBER
:em_expr
{CONST
:consttype 26
:consttypmod -1
:constcollid 0
:constlen 4
:constbyval true
:constisnull false
:location 33
:constvalue 4 [ -46 4 0 0 0 0 0 0 ]
}
:em_relids (b)
:em_is_const true
:em_is_child false
:em_datatype 26
:em_jdomain
{JOINDOMAIN
:jd_relids (b 1)
}
}
:outer_is_left false
:hashjoinoperator 0
:left_bucketsize -1
:right_bucketsize -1
:left_mcvfreq -1
:right_mcvfreq -1
:left_hasheqoperator 0
:right_hasheqoperator 0
}
)
:baserestrictcost.startup 0
:baserestrictcost.per_tuple 0.0025
:baserestrict_min_security 0
:joininfo <>
:has_eclass_joins false
:consider_partitionwise_join false
:top_parent_relids (b)
:nparts -1
:partbounds_merged false
:partition_qual <>
:live_parts (b)
:all_partrels (b)
}
replace_debug_print_rel_with_pprint.patch
Description: Binary data
