From fead6121dc8654805b5a8a799ba97edcff0e4c7f Mon Sep 17 00:00:00 2001 From: Nick Tobey Date: Tue, 2 Dec 2025 16:52:02 -0800 Subject: [PATCH 1/5] Have Sort, Case, and GroupBy implement Describable --- sql/expression/case.go | 24 ++++++++++++++++++++++++ sql/plan/group_by.go | 23 +++++++++++++++++++++++ sql/plan/hash_lookup.go | 12 ++++++++++++ sql/plan/sort.go | 13 +++++++++++++ sql/plan/subqueryalias.go | 16 ++++++++++++++++ 5 files changed, 88 insertions(+) diff --git a/sql/expression/case.go b/sql/expression/case.go index 6724ba711c..cd402a43ab 100644 --- a/sql/expression/case.go +++ b/sql/expression/case.go @@ -244,3 +244,27 @@ func (c *Case) DebugString() string { buf.WriteString(" END") return buf.String() } + +func (c *Case) Describe(options sql.DescribeOptions) string { + var buf bytes.Buffer + + buf.WriteString("CASE ") + if c.Expr != nil { + buf.WriteString(sql.Describe(c.Expr, options)) + } + + for _, b := range c.Branches { + buf.WriteString(" WHEN ") + buf.WriteString(sql.Describe(b.Cond, options)) + buf.WriteString(" THEN ") + buf.WriteString(sql.Describe(b.Value, options)) + } + + if c.Else != nil { + buf.WriteString(" ELSE ") + buf.WriteString(sql.Describe(c.Else, options)) + } + + buf.WriteString(" END") + return buf.String() +} diff --git a/sql/plan/group_by.go b/sql/plan/group_by.go index 98d29132b5..a21052cc49 100644 --- a/sql/plan/group_by.go +++ b/sql/plan/group_by.go @@ -38,6 +38,7 @@ var _ sql.Expressioner = (*GroupBy)(nil) var _ sql.Node = (*GroupBy)(nil) var _ sql.Projector = (*GroupBy)(nil) var _ sql.CollationCoercible = (*GroupBy)(nil) +var _ sql.Describable = (*GroupBy)(nil) // NewGroupBy creates a new GroupBy node. Like Project, GroupBy is a top-level node, and contains all the fields that // will appear in the output of the query. Some of these fields may be aggregate functions, some may be columns or @@ -169,6 +170,28 @@ func (g *GroupBy) DebugString() string { return pr.String() } +func (g *GroupBy) Describe(options sql.DescribeOptions) string { + pr := sql.NewTreePrinter() + _ = pr.WriteNode("GroupBy") + + var selectDeps = make([]string, len(g.SelectDeps)) + for i, e := range g.SelectDeps { + selectDeps[i] = sql.Describe(e, options) + } + + var grouping = make([]string, len(g.GroupByExprs)) + for i, g := range g.GroupByExprs { + grouping[i] = sql.Describe(g, options) + } + + _ = pr.WriteChildren( + fmt.Sprintf("select: %s", strings.Join(selectDeps, ", ")), + fmt.Sprintf("group: %s", strings.Join(grouping, ", ")), + sql.Describe(g.Child, options), + ) + return pr.String() +} + // Expressions implements the Expressioner interface. func (g *GroupBy) Expressions() []sql.Expression { var exprs []sql.Expression diff --git a/sql/plan/hash_lookup.go b/sql/plan/hash_lookup.go index 2e0e009604..b95d654bdc 100644 --- a/sql/plan/hash_lookup.go +++ b/sql/plan/hash_lookup.go @@ -60,6 +60,7 @@ type HashLookup struct { var _ sql.Node = (*HashLookup)(nil) var _ sql.Expressioner = (*HashLookup)(nil) var _ sql.CollationCoercible = (*HashLookup)(nil) +var _ sql.Describable = (*HashLookup)(nil) func (n *HashLookup) Expressions() []sql.Expression { return []sql.Expression{n.RightEntryKey, n.LeftProbeKey} @@ -102,6 +103,17 @@ func (n *HashLookup) DebugString() string { return pr.String() } +func (n *HashLookup) Describe(options sql.DescribeOptions) string { + pr := sql.NewTreePrinter() + _ = pr.WriteNode("HashLookup") + children := make([]string, 3) + children[0] = fmt.Sprintf("left-key: %s", sql.Describe(n.LeftProbeKey, options)) + children[1] = fmt.Sprintf("right-key: %s", sql.Describe(n.RightEntryKey, options)) + children[2] = sql.Describe(n.Child, options) + _ = pr.WriteChildren(children...) + return pr.String() +} + func (n *HashLookup) WithChildren(children ...sql.Node) (sql.Node, error) { if len(children) != 1 { return nil, sql.ErrInvalidChildrenNumber.New(n, len(children), 1) diff --git a/sql/plan/sort.go b/sql/plan/sort.go index c780e602c1..2ffb8e54be 100644 --- a/sql/plan/sort.go +++ b/sql/plan/sort.go @@ -44,6 +44,7 @@ var _ sql.Expressioner = (*Sort)(nil) var _ sql.Node = (*Sort)(nil) var _ sql.CollationCoercible = (*Sort)(nil) var _ Sortable = (*Sort)(nil) +var _ sql.Describable = (*Sort)(nil) // Resolved implements the Resolvable interface. func (s *Sort) Resolved() bool { @@ -70,6 +71,18 @@ func (s *Sort) String() string { return pr.String() } +// Describe implements the sql.Describable interface +func (s *Sort) Describe(options sql.DescribeOptions) string { + pr := sql.NewTreePrinter() + var fields = make([]string, len(s.SortFields)) + for i, f := range s.SortFields { + fields[i] = sql.Describe(f, options) + } + _ = pr.WriteNode("Sort(%s)", strings.Join(fields, ", ")) + _ = pr.WriteChildren(sql.Describe(s.Child, options)) + return pr.String() +} + func (s *Sort) DebugString() string { pr := sql.NewTreePrinter() var fields = make([]string, len(s.SortFields)) diff --git a/sql/plan/subqueryalias.go b/sql/plan/subqueryalias.go index 38a0987523..a3566f6b1a 100644 --- a/sql/plan/subqueryalias.go +++ b/sql/plan/subqueryalias.go @@ -45,6 +45,7 @@ var _ sql.Node = (*SubqueryAlias)(nil) var _ sql.CollationCoercible = (*SubqueryAlias)(nil) var _ sql.RenameableNode = (*SubqueryAlias)(nil) var _ sql.OpaqueNode = (*SubqueryAlias)(nil) +var _ sql.Describable = (*SubqueryAlias)(nil) // NewSubqueryAlias creates a new SubqueryAlias node. func NewSubqueryAlias(name, textDefinition string, node sql.Node) *SubqueryAlias { @@ -190,6 +191,21 @@ func (sq *SubqueryAlias) DebugString() string { return pr.String() } +func (sq *SubqueryAlias) Describe(options sql.DescribeOptions) string { + pr := sql.NewTreePrinter() + _ = pr.WriteNode("SubqueryAlias") + children := make([]string, 7) + children[0] = fmt.Sprintf("name: %s", sq.name) + children[1] = fmt.Sprintf("outerVisibility: %t", sq.OuterScopeVisibility) + children[2] = fmt.Sprintf("isLateral: %t", sq.IsLateral) + children[3] = fmt.Sprintf("cacheable: %t", sq.CanCacheResults()) + children[4] = fmt.Sprintf("colSet: %s", sq.Columns()) + children[5] = fmt.Sprintf("tableId: %d", sq.Id()) + children[6] = sql.Describe(sq.Child, options) + _ = pr.WriteChildren(children...) + return pr.String() +} + func (sq *SubqueryAlias) WithColumnNames(columns []string) *SubqueryAlias { ret := *sq ret.ColumnNames = columns From 6fe154656c5f6505111f8f96e850e2c397a5e8a9 Mon Sep 17 00:00:00 2001 From: Nick Tobey Date: Tue, 2 Dec 2025 17:17:13 -0800 Subject: [PATCH 2/5] Update plan tests --- enginetest/queries/imdb_plans.go | 4360 +++++++++++------------ enginetest/queries/integration_plans.go | 1522 ++++++-- enginetest/queries/query_plans.go | 764 ++-- enginetest/queries/sysbench_plans.go | 16 +- enginetest/queries/tpcc_plans.go | 32 +- enginetest/queries/tpch_plans.go | 400 ++- 6 files changed, 4165 insertions(+), 2929 deletions(-) diff --git a/enginetest/queries/imdb_plans.go b/enginetest/queries/imdb_plans.go index 928a4cf038..2b32d99217 100644 --- a/enginetest/queries/imdb_plans.go +++ b/enginetest/queries/imdb_plans.go @@ -132,9 +132,9 @@ WHERE ci.note LIKE '%(voice)%' ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as uncredited_voiced_character, min(t.title) as russian_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -142,7 +142,7 @@ WHERE ci.note LIKE '%(voice)%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actor')\n" + @@ -150,25 +150,25 @@ WHERE ci.note LIKE '%(voice)%' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[ru]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + " ├─ Filter\n" + " │ ├─ (ci.note LIKE '%(voice)%' AND ci.note LIKE '%(uncredited)%')\n" + @@ -184,9 +184,9 @@ WHERE ci.note LIKE '%(voice)%' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as uncredited_voiced_character, min(t.title) as russian_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -194,7 +194,7 @@ WHERE ci.note LIKE '%(voice)%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actor')\n" + @@ -202,25 +202,25 @@ WHERE ci.note LIKE '%(voice)%' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[ru]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + " ├─ Filter\n" + " │ ├─ (ci.note LIKE '%(voice)%' AND ci.note LIKE '%(uncredited)%')\n" + @@ -345,9 +345,9 @@ WHERE ci.note LIKE '%(voice)%' ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as character, min(t.title) as russian_mov_with_actor_producer]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -355,7 +355,7 @@ WHERE ci.note LIKE '%(voice)%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actor')\n" + @@ -363,25 +363,25 @@ WHERE ci.note LIKE '%(voice)%' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[ru]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + " ├─ Filter\n" + " │ ├─ ci.note LIKE '%(producer)%'\n" + @@ -397,9 +397,9 @@ WHERE ci.note LIKE '%(voice)%' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as character, min(t.title) as russian_mov_with_actor_producer]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -407,7 +407,7 @@ WHERE ci.note LIKE '%(voice)%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actor')\n" + @@ -415,25 +415,25 @@ WHERE ci.note LIKE '%(voice)%' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[ru]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + " ├─ Filter\n" + " │ ├─ ci.note LIKE '%(producer)%'\n" + @@ -553,9 +553,9 @@ WHERE ci.note LIKE '%(voice)%' ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as character, min(t.title) as movie_with_american_producer]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -563,31 +563,31 @@ WHERE ci.note LIKE '%(voice)%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ TableAlias(rt)\n" + " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + " ├─ Filter\n" + " │ ├─ ci.note LIKE '%(producer)%'\n" + @@ -603,9 +603,9 @@ WHERE ci.note LIKE '%(voice)%' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as character, min(t.title) as movie_with_american_producer]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -613,31 +613,31 @@ WHERE ci.note LIKE '%(voice)%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ TableAlias(rt)\n" + " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + " ├─ Filter\n" + " │ ├─ ci.note LIKE '%(producer)%'\n" + @@ -805,9 +805,9 @@ WHERE cn.country_code !='[pl]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as from_company, min(lt.link) as movie_link_type, min(t.title) as non_polish_sequel_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1950) AND (t.production_year <= 2000))\n" + @@ -815,19 +815,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -835,21 +835,21 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -866,9 +866,9 @@ WHERE cn.country_code !='[pl]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as from_company, min(lt.link) as movie_link_type, min(t.title) as non_polish_sequel_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1950) AND (t.production_year <= 2000))\n" + @@ -876,19 +876,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -896,21 +896,21 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -1078,9 +1078,9 @@ WHERE cn.country_code !='[pl]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as from_company, min(lt.link) as movie_link_type, min(t.title) as sequel_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year = 1998) AND t.title LIKE '%Money%')\n" + @@ -1088,19 +1088,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -1108,21 +1108,21 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follows%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -1139,9 +1139,9 @@ WHERE cn.country_code !='[pl]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as from_company, min(lt.link) as movie_link_type, min(t.title) as sequel_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year = 1998) AND t.title LIKE '%Money%')\n" + @@ -1149,19 +1149,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -1169,21 +1169,21 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follows%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -1365,9 +1365,9 @@ WHERE cn.country_code !='[pl]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as from_company, min(mc.note) as production_note, min(t.title) as movie_based_on_book]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mc.note), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mc.note), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1950)\n" + @@ -1375,19 +1375,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ (NOT(mc.note IS NULL))\n" + @@ -1395,19 +1395,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('sequel', 'revenge', 'based-on-novel'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT((ct.kind = 'production companies'))) AND (NOT(ct.kind IS NULL)))\n" + " │ └─ TableAlias(ct)\n" + @@ -1424,9 +1424,9 @@ WHERE cn.country_code !='[pl]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as from_company, min(mc.note) as production_note, min(t.title) as movie_based_on_book]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mc.note), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mc.note), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1950)\n" + @@ -1434,19 +1434,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ (NOT(mc.note IS NULL))\n" + @@ -1454,19 +1454,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('sequel', 'revenge', 'based-on-novel'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT((ct.kind = 'production companies'))) AND (NOT(ct.kind IS NULL)))\n" + " │ └─ TableAlias(ct)\n" + @@ -1630,9 +1630,9 @@ WHERE cn.country_code !='[pl]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as from_company, min(mc.note) as production_note, min(t.title) as movie_based_on_book]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mc.note), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mc.note), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1950)\n" + @@ -1640,19 +1640,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ (NOT(mc.note IS NULL))\n" + @@ -1660,19 +1660,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('sequel', 'revenge', 'based-on-novel'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT((ct.kind = 'production companies'))) AND (NOT(ct.kind IS NULL)))\n" + " │ └─ TableAlias(ct)\n" + @@ -1689,9 +1689,9 @@ WHERE cn.country_code !='[pl]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as from_company, min(mc.note) as production_note, min(t.title) as movie_based_on_book]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mc.note), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mc.note), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1950)\n" + @@ -1699,19 +1699,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ (NOT(mc.note IS NULL))\n" + @@ -1719,19 +1719,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('sequel', 'revenge', 'based-on-novel'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT((ct.kind = 'production companies'))) AND (NOT(ct.kind IS NULL)))\n" + " │ └─ TableAlias(ct)\n" + @@ -1904,9 +1904,9 @@ WHERE cn.country_code = '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as drama_horror_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2005) AND (t.production_year <= 2008))\n" + @@ -1914,7 +1914,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi_idx.info_type_id = it2.id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi.movie_id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '8.0')\n" + @@ -1922,7 +1922,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.info_type_id = it1.id) AND (mc.movie_id = mi.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Drama', 'Horror'))\n" + @@ -1930,27 +1930,27 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -1967,9 +1967,9 @@ WHERE cn.country_code = '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as drama_horror_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2005) AND (t.production_year <= 2008))\n" + @@ -1977,7 +1977,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi_idx.info_type_id = it2.id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi.movie_id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '8.0')\n" + @@ -1985,7 +1985,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.info_type_id = it1.id) AND (mc.movie_id = mi.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Drama', 'Horror'))\n" + @@ -1993,27 +1993,27 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -2191,9 +2191,9 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as budget, min(t.title) as unsuccsessful_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year > 2000) AND (((t.title >= 'Birdemic') AND (t.title <= 'Birdemicÿ')) OR t.title LIKE '%Movie%'))\n" + @@ -2201,39 +2201,39 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi_idx.info_type_id = it2.id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi.movie_id = mi_idx.movie_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.info_type_id = it1.id) AND (mc.movie_id = mi.movie_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'bottom 10 rank')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'budget')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(ct.kind IS NULL)) AND ((ct.kind = 'production companies') OR (ct.kind = 'distributors')))\n" + " │ └─ TableAlias(ct)\n" + @@ -2250,9 +2250,9 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as budget, min(t.title) as unsuccsessful_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year > 2000) AND (((t.title >= 'Birdemic') AND (t.title <= 'Birdemicÿ')) OR t.title LIKE '%Movie%'))\n" + @@ -2260,39 +2260,39 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi_idx.info_type_id = it2.id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi.movie_id = mi_idx.movie_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.info_type_id = it1.id) AND (mc.movie_id = mi.movie_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'bottom 10 rank')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'budget')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(ct.kind IS NULL)) AND ((ct.kind = 'production companies') OR (ct.kind = 'distributors')))\n" + " │ └─ TableAlias(ct)\n" + @@ -2467,9 +2467,9 @@ WHERE cn.country_code = '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as mainstream_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2000) AND (t.production_year <= 2010))\n" + @@ -2477,7 +2477,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi_idx.info_type_id = it2.id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi.movie_id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '7.0')\n" + @@ -2485,7 +2485,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.info_type_id = it1.id) AND (mc.movie_id = mi.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Drama', 'Horror', 'Western', 'Family'))\n" + @@ -2493,27 +2493,27 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -2530,9 +2530,9 @@ WHERE cn.country_code = '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as mainstream_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2000) AND (t.production_year <= 2010))\n" + @@ -2540,7 +2540,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi_idx.info_type_id = it2.id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi.movie_id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '7.0')\n" + @@ -2548,7 +2548,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.info_type_id = it1.id) AND (mc.movie_id = mi.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Drama', 'Horror', 'Western', 'Family'))\n" + @@ -2556,27 +2556,27 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -2746,54 +2746,54 @@ WHERE cn.country_code ='[de]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as release_date, min(miidx.info) as rating, min(t.title) as german_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(miidx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(miidx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mi.movie_id = t.id) AND (kt.id = t.kind_id)) AND (mc.movie_id = t.id)) AND (miidx.movie_id = t.id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((it.id = miidx.info_type_id) AND (mi.movie_id = miidx.movie_id)) AND (miidx.movie_id = mc.movie_id))\n" + " ├─ TableAlias(miidx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi.info_type_id) AND (mi.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((cn.id = mc.company_id) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'release dates')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'rating')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -2810,54 +2810,54 @@ WHERE cn.country_code ='[de]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as release_date, min(miidx.info) as rating, min(t.title) as german_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(miidx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(miidx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((mi.movie_id = t.id) AND (kt.id = t.kind_id)) AND (mc.movie_id = t.id)) AND (miidx.movie_id = t.id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((it.id = miidx.info_type_id) AND (mi.movie_id = miidx.movie_id)) AND (miidx.movie_id = mc.movie_id))\n" + " ├─ TableAlias(miidx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi.info_type_id) AND (mi.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((cn.id = mc.company_id) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'release dates')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'rating')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -3039,9 +3039,9 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(miidx.info) as rating, min(t.title) as movie_about_winning]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(miidx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(miidx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mi.movie_id = t.id) AND (kt.id = t.kind_id)) AND (mc.movie_id = t.id)) AND (miidx.movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT((t.title = ''))) AND (t.title LIKE '%Champion%' OR t.title LIKE '%Loser%'))\n" + @@ -3049,46 +3049,46 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((it.id = miidx.info_type_id) AND (mi.movie_id = miidx.movie_id)) AND (miidx.movie_id = mc.movie_id))\n" + " ├─ TableAlias(miidx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi.info_type_id) AND (mi.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((cn.id = mc.company_id) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'release dates')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'rating')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -3105,9 +3105,9 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(miidx.info) as rating, min(t.title) as movie_about_winning]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(miidx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(miidx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((mi.movie_id = t.id) AND (kt.id = t.kind_id)) AND (mc.movie_id = t.id)) AND (miidx.movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT((t.title = ''))) AND (t.title LIKE '%Champion%' OR t.title LIKE '%Loser%'))\n" + @@ -3115,46 +3115,46 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((it.id = miidx.info_type_id) AND (mi.movie_id = miidx.movie_id)) AND (miidx.movie_id = mc.movie_id))\n" + " ├─ TableAlias(miidx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi.info_type_id) AND (mi.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((cn.id = mc.company_id) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'release dates')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'rating')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -3348,9 +3348,9 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(miidx.info) as rating, min(t.title) as movie_about_winning]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(miidx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(miidx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mi.movie_id = t.id) AND (kt.id = t.kind_id)) AND (mc.movie_id = t.id)) AND (miidx.movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT((t.title = ''))) AND (((t.title >= 'Champion') AND (t.title <= 'Championÿ')) OR ((t.title >= 'Loser') AND (t.title <= 'Loserÿ'))))\n" + @@ -3358,46 +3358,46 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((it.id = miidx.info_type_id) AND (mi.movie_id = miidx.movie_id)) AND (miidx.movie_id = mc.movie_id))\n" + " ├─ TableAlias(miidx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi.info_type_id) AND (mi.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((cn.id = mc.company_id) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'release dates')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'rating')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -3414,9 +3414,9 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(miidx.info) as rating, min(t.title) as movie_about_winning]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(miidx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(miidx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((mi.movie_id = t.id) AND (kt.id = t.kind_id)) AND (mc.movie_id = t.id)) AND (miidx.movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT((t.title = ''))) AND (((t.title >= 'Champion') AND (t.title <= 'Championÿ')) OR ((t.title >= 'Loser') AND (t.title <= 'Loserÿ'))))\n" + @@ -3424,46 +3424,46 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((it.id = miidx.info_type_id) AND (mi.movie_id = miidx.movie_id)) AND (miidx.movie_id = mc.movie_id))\n" + " ├─ TableAlias(miidx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi.info_type_id) AND (mi.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((cn.id = mc.company_id) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'release dates')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'rating')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -3633,54 +3633,54 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(miidx.info) as rating, min(t.title) as movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(miidx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(miidx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mi.movie_id = t.id) AND (kt.id = t.kind_id)) AND (mc.movie_id = t.id)) AND (miidx.movie_id = t.id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((it.id = miidx.info_type_id) AND (mi.movie_id = miidx.movie_id)) AND (miidx.movie_id = mc.movie_id))\n" + " ├─ TableAlias(miidx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi.info_type_id) AND (mi.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((cn.id = mc.company_id) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'release dates')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'rating')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -3697,54 +3697,54 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(miidx.info) as rating, min(t.title) as movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(miidx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(miidx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((mi.movie_id = t.id) AND (kt.id = t.kind_id)) AND (mc.movie_id = t.id)) AND (miidx.movie_id = t.id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((it.id = miidx.info_type_id) AND (mi.movie_id = miidx.movie_id)) AND (miidx.movie_id = mc.movie_id))\n" + " ├─ TableAlias(miidx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi.info_type_id) AND (mi.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((cn.id = mc.company_id) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'release dates')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'rating')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -3923,9 +3923,9 @@ WHERE it1.info = 'countries' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as northern_dark_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -3933,13 +3933,13 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mi_idx.movie_id) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -3947,7 +3947,7 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it1.id = mi.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -3955,21 +3955,21 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + @@ -3986,9 +3986,9 @@ WHERE it1.info = 'countries' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as northern_dark_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -3996,13 +3996,13 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mi_idx.movie_id) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -4010,7 +4010,7 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it1.id = mi.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -4018,21 +4018,21 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + @@ -4218,9 +4218,9 @@ WHERE it1.info = 'countries' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as western_dark_production]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year > 2010) AND ((t.title LIKE '%murder%' OR t.title LIKE '%Murder%') OR t.title LIKE '%Mord%'))\n" + @@ -4228,13 +4228,13 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mi_idx.movie_id) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '6.0')\n" + @@ -4242,7 +4242,7 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it1.id = mi.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -4250,21 +4250,21 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + @@ -4281,9 +4281,9 @@ WHERE it1.info = 'countries' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as western_dark_production]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year > 2010) AND ((t.title LIKE '%murder%' OR t.title LIKE '%Murder%') OR t.title LIKE '%Mord%'))\n" + @@ -4291,13 +4291,13 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mi_idx.movie_id) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '6.0')\n" + @@ -4305,7 +4305,7 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it1.id = mi.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -4313,21 +4313,21 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + @@ -4511,9 +4511,9 @@ WHERE it1.info = 'countries' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as north_european_dark_production]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -4521,13 +4521,13 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mi_idx.movie_id) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -4535,7 +4535,7 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it1.id = mi.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Danish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -4543,21 +4543,21 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(k.keyword IS NULL)) AND (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence')))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + @@ -4574,9 +4574,9 @@ WHERE it1.info = 'countries' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as north_european_dark_production]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -4584,13 +4584,13 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mi_idx.movie_id) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -4598,7 +4598,7 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it1.id = mi.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Danish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -4606,21 +4606,21 @@ WHERE it1.info = 'countries' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(k.keyword IS NULL)) AND (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence')))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + @@ -4805,9 +4805,9 @@ WHERE cn.country_code = '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as release_date, min(t.title) as internet_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t.id = at.movie_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -4815,13 +4815,13 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = at.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = at.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.note LIKE '%internet%' AND mi.info LIKE 'USA:% 200%')\n" + @@ -4829,7 +4829,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = at.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(200%)%' AND mc.note LIKE '%(worldwide)%')\n" + @@ -4837,24 +4837,24 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + @@ -4869,9 +4869,9 @@ WHERE cn.country_code = '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as release_date, min(t.title) as internet_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t.id = at.movie_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -4879,13 +4879,13 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = at.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = at.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.note LIKE '%internet%' AND mi.info LIKE 'USA:% 200%')\n" + @@ -4893,7 +4893,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = at.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(200%)%' AND mc.note LIKE '%(worldwide)%')\n" + @@ -4901,24 +4901,24 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + @@ -5110,9 +5110,9 @@ WHERE cn.country_code = '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as release_date, min(t.title) as youtube_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t.id = at.movie_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2005) AND (t.production_year <= 2010))\n" + @@ -5120,13 +5120,13 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = at.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = at.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.note LIKE '%internet%' AND mi.info LIKE 'USA:% 200%')\n" + @@ -5134,7 +5134,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = at.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(200%)%' AND mc.note LIKE '%(worldwide)%')\n" + @@ -5142,24 +5142,24 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((cn.country_code = '[us]') AND (cn.name = 'YouTube'))\n" + " │ └─ TableAlias(cn)\n" + @@ -5174,9 +5174,9 @@ WHERE cn.country_code = '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as release_date, min(t.title) as youtube_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t.id = at.movie_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2005) AND (t.production_year <= 2010))\n" + @@ -5184,13 +5184,13 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = at.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = at.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.note LIKE '%internet%' AND mi.info LIKE 'USA:% 200%')\n" + @@ -5198,7 +5198,7 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = at.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(200%)%' AND mc.note LIKE '%(worldwide)%')\n" + @@ -5206,24 +5206,24 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((cn.country_code = '[us]') AND (cn.name = 'YouTube'))\n" + " │ └─ TableAlias(cn)\n" + @@ -5407,9 +5407,9 @@ WHERE cn.country_code = '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as release_date, min(t.title) as modern_american_internet_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t.id = at.movie_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -5417,13 +5417,13 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = at.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = at.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((mi.note LIKE '%internet%' AND (NOT(mi.info IS NULL))) AND (mi.info LIKE 'USA:% 199%' OR mi.info LIKE 'USA:% 200%'))\n" + @@ -5431,30 +5431,30 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = at.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + @@ -5469,9 +5469,9 @@ WHERE cn.country_code = '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as release_date, min(t.title) as modern_american_internet_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t.id = at.movie_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -5479,13 +5479,13 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = at.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = at.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((mi.note LIKE '%internet%' AND (NOT(mi.info IS NULL))) AND (mi.info LIKE 'USA:% 199%' OR mi.info LIKE 'USA:% 200%'))\n" + @@ -5493,30 +5493,30 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = at.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + @@ -5690,9 +5690,9 @@ WHERE cn.country_code = '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(at.title) as aka_title, min(t.title) as internet_movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(at.title), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(at.title), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t.id = at.movie_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -5700,13 +5700,13 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = at.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = at.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ mi.note LIKE '%internet%'\n" + @@ -5714,30 +5714,30 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = at.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + @@ -5752,9 +5752,9 @@ WHERE cn.country_code = '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(at.title) as aka_title, min(t.title) as internet_movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(at.title), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(at.title), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t.id = at.movie_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -5762,13 +5762,13 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = at.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = at.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ mi.note LIKE '%internet%'\n" + @@ -5776,30 +5776,30 @@ WHERE cn.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = at.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + @@ -5953,9 +5953,9 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(an.name) as cool_actor_pseudonym, min(t.title) as series_named_after_char]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.episode_nr >= 50) AND (t.episode_nr < 100))\n" + @@ -5963,39 +5963,39 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title episode_nr]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an.person_id = n.id) AND (n.id = ci.person_id))\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -6009,9 +6009,9 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an.name) as cool_actor_pseudonym, min(t.title) as series_named_after_char]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.episode_nr >= 50) AND (t.episode_nr < 100))\n" + @@ -6019,39 +6019,39 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title episode_nr]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an.person_id = n.id) AND (n.id = ci.person_id))\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -6194,47 +6194,47 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(an.name) as cool_actor_pseudonym, min(t.title) as series_named_after_char]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an.person_id = n.id) AND (n.id = ci.person_id))\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -6248,47 +6248,47 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an.name) as cool_actor_pseudonym, min(t.title) as series_named_after_char]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an.person_id = n.id) AND (n.id = ci.person_id))\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -6436,9 +6436,9 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(an.name) as cool_actor_pseudonym, min(t.title) as series_named_after_char]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.episode_nr < 100)\n" + @@ -6446,39 +6446,39 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title episode_nr]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an.person_id = n.id) AND (n.id = ci.person_id))\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -6492,9 +6492,9 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an.name) as cool_actor_pseudonym, min(t.title) as series_named_after_char]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.episode_nr < 100)\n" + @@ -6502,39 +6502,39 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title episode_nr]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an.person_id = n.id) AND (n.id = ci.person_id))\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -6687,9 +6687,9 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(an.name) as cool_actor_pseudonym, min(t.title) as series_named_after_char]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.episode_nr >= 5) AND (t.episode_nr < 100))\n" + @@ -6697,39 +6697,39 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title episode_nr]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an.person_id = n.id) AND (n.id = ci.person_id))\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -6743,9 +6743,9 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an.name) as cool_actor_pseudonym, min(t.title) as series_named_after_char]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.episode_nr >= 5) AND (t.episode_nr < 100))\n" + @@ -6753,39 +6753,39 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title episode_nr]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an.person_id = n.id) AND (n.id = ci.person_id))\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -6920,15 +6920,15 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_american_movie, min(n.name) as a1]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ ((n.name >= 'B') AND (n.name <= 'Bÿ'))\n" + @@ -6936,26 +6936,26 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + @@ -6970,15 +6970,15 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_american_movie, min(n.name) as a1]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ ((n.name >= 'B') AND (n.name <= 'Bÿ'))\n" + @@ -6986,26 +6986,26 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + @@ -7136,15 +7136,15 @@ WHERE k.keyword ='character-name-in-title' ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_movie, min(n.name) as a1]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ ((n.name >= 'Z') AND (n.name <= 'Zÿ'))\n" + @@ -7152,26 +7152,26 @@ WHERE k.keyword ='character-name-in-title' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -7184,15 +7184,15 @@ WHERE k.keyword ='character-name-in-title' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_movie, min(n.name) as a1]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ ((n.name >= 'Z') AND (n.name <= 'Zÿ'))\n" + @@ -7200,26 +7200,26 @@ WHERE k.keyword ='character-name-in-title' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -7348,15 +7348,15 @@ WHERE k.keyword ='character-name-in-title' ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_movie, min(n.name) as a1]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ ((n.name >= 'X') AND (n.name <= 'Xÿ'))\n" + @@ -7364,26 +7364,26 @@ WHERE k.keyword ='character-name-in-title' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -7396,15 +7396,15 @@ WHERE k.keyword ='character-name-in-title' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_movie, min(n.name) as a1]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ ((n.name >= 'X') AND (n.name <= 'Xÿ'))\n" + @@ -7412,26 +7412,26 @@ WHERE k.keyword ='character-name-in-title' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -7553,15 +7553,15 @@ WHERE k.keyword ='character-name-in-title' ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Bert%'\n" + @@ -7569,26 +7569,26 @@ WHERE k.keyword ='character-name-in-title' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -7601,15 +7601,15 @@ WHERE k.keyword ='character-name-in-title' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Bert%'\n" + @@ -7617,26 +7617,26 @@ WHERE k.keyword ='character-name-in-title' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -7760,40 +7760,40 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + @@ -7808,40 +7808,40 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + @@ -7965,15 +7965,15 @@ WHERE k.keyword ='character-name-in-title' ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%B%'\n" + @@ -7981,26 +7981,26 @@ WHERE k.keyword ='character-name-in-title' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -8013,15 +8013,15 @@ WHERE k.keyword ='character-name-in-title' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as member_in_charnamed_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((ci.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%B%'\n" + @@ -8029,26 +8029,26 @@ WHERE k.keyword ='character-name-in-title' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (ci.movie_id = mk.movie_id)) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -8189,15 +8189,15 @@ WHERE ci.note IN ('(producer)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'm') AND n.name LIKE '%Tim%')\n" + @@ -8205,26 +8205,26 @@ WHERE ci.note IN ('(producer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'budget')\n" + " │ └─ TableAlias(it1)\n" + @@ -8241,15 +8241,15 @@ WHERE ci.note IN ('(producer)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'm') AND n.name LIKE '%Tim%')\n" + @@ -8257,26 +8257,26 @@ WHERE ci.note IN ('(producer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'budget')\n" + " │ └─ TableAlias(it1)\n" + @@ -8448,9 +8448,9 @@ WHERE ci.note IN ('(writer)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2008) AND (t.production_year <= 2014))\n" + @@ -8458,7 +8458,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(n.gender IS NULL)) AND (n.gender = 'f'))\n" + @@ -8466,7 +8466,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '8.0')\n" + @@ -8474,7 +8474,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((mi.info HASH IN ('Horror', 'Thriller')) AND mi.note IS NULL)\n" + @@ -8482,14 +8482,14 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + @@ -8506,9 +8506,9 @@ WHERE ci.note IN ('(writer)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2008) AND (t.production_year <= 2014))\n" + @@ -8516,7 +8516,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(n.gender IS NULL)) AND (n.gender = 'f'))\n" + @@ -8524,7 +8524,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '8.0')\n" + @@ -8532,7 +8532,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((mi.info HASH IN ('Horror', 'Thriller')) AND mi.note IS NULL)\n" + @@ -8540,14 +8540,14 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + @@ -8702,15 +8702,15 @@ WHERE ci.note IN ('(writer)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -8718,13 +8718,13 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Action', 'Sci-Fi', 'Thriller', 'Crime', 'War'))\n" + @@ -8732,14 +8732,14 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + @@ -8756,15 +8756,15 @@ WHERE ci.note IN ('(writer)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -8772,13 +8772,13 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Action', 'Sci-Fi', 'Thriller', 'Crime', 'War'))\n" + @@ -8786,14 +8786,14 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + @@ -9011,9 +9011,9 @@ WHERE ci.note IN ('(voice)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as voicing_actress, min(t.title) as voiced_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2005) AND (t.production_year <= 2009))\n" + @@ -9021,7 +9021,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -9029,7 +9029,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%Ang%')\n" + @@ -9037,7 +9037,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + @@ -9045,7 +9045,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note IS NULL)) AND (mc.note LIKE '%(USA)%' OR mc.note LIKE '%(worldwide)%'))\n" + @@ -9053,22 +9053,22 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -9089,9 +9089,9 @@ WHERE ci.note IN ('(voice)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as voicing_actress, min(t.title) as voiced_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2005) AND (t.production_year <= 2009))\n" + @@ -9099,7 +9099,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -9107,7 +9107,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%Ang%')\n" + @@ -9115,7 +9115,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + @@ -9123,7 +9123,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note IS NULL)) AND (mc.note LIKE '%(USA)%' OR mc.note LIKE '%(worldwide)%'))\n" + @@ -9131,22 +9131,22 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -9367,9 +9367,9 @@ WHERE ci.note = '(voice)' ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as voicing_actress, min(t.title) as kung_fu_panda]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.production_year >= 2007) AND (t.production_year <= 2008)) AND t.title LIKE '%Kung%Fu%Panda%')\n" + @@ -9377,7 +9377,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -9385,7 +9385,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%Angel%')\n" + @@ -9393,7 +9393,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%2007%' OR mi.info LIKE 'USA:%2008%'))\n" + @@ -9401,7 +9401,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(200%)%' AND (mc.note LIKE '%(USA)%' OR mc.note LIKE '%(worldwide)%'))\n" + @@ -9409,22 +9409,22 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note = '(voice)')\n" + @@ -9445,9 +9445,9 @@ WHERE ci.note = '(voice)' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as voicing_actress, min(t.title) as kung_fu_panda]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.production_year >= 2007) AND (t.production_year <= 2008)) AND t.title LIKE '%Kung%Fu%Panda%')\n" + @@ -9455,7 +9455,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -9463,7 +9463,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%Angel%')\n" + @@ -9471,7 +9471,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%2007%' OR mi.info LIKE 'USA:%2008%'))\n" + @@ -9479,7 +9479,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(200%)%' AND (mc.note LIKE '%(USA)%' OR mc.note LIKE '%(worldwide)%'))\n" + @@ -9487,22 +9487,22 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note = '(voice)')\n" + @@ -9710,9 +9710,9 @@ WHERE ci.note IN ('(voice)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as voicing_actress, min(t.title) as jap_engl_voiced_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -9720,7 +9720,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -9728,7 +9728,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -9736,7 +9736,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + @@ -9744,28 +9744,28 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -9786,9 +9786,9 @@ WHERE ci.note IN ('(voice)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as voicing_actress, min(t.title) as jap_engl_voiced_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -9796,7 +9796,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -9804,7 +9804,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -9812,7 +9812,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + @@ -9820,28 +9820,28 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -10036,9 +10036,9 @@ WHERE ci.note IN ('(voice)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as voicing_actress, min(t.title) as jap_engl_voiced_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -10046,7 +10046,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -10054,7 +10054,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'f')\n" + @@ -10062,34 +10062,34 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -10110,9 +10110,9 @@ WHERE ci.note IN ('(voice)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as voicing_actress, min(t.title) as jap_engl_voiced_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -10120,7 +10120,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -10128,7 +10128,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'f')\n" + @@ -10136,34 +10136,34 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ TableAlias(mi)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -10274,21 +10274,21 @@ WHERE ct.kind = 'production companies' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mc.note) as production_note, min(t.title) as movie_title, min(t.production_year) as movie_year]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mc.note), MIN(t.production_year), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mc.note), MIN(t.production_year), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = mi_idx.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi_idx.movie_id) AND (it.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(as Metro-Goldwyn-Mayer Pictures)%')) AND (mc.note LIKE '%(co-production)%' OR mc.note LIKE '%(presents)%'))\n" + @@ -10296,7 +10296,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'top 250 rank')\n" + " │ └─ TableAlias(it)\n" + @@ -10313,21 +10313,21 @@ WHERE ct.kind = 'production companies' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mc.note) as production_note, min(t.title) as movie_title, min(t.production_year) as movie_year]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mc.note), MIN(t.production_year), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mc.note), MIN(t.production_year), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = mi_idx.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi_idx.movie_id) AND (it.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(as Metro-Goldwyn-Mayer Pictures)%')) AND (mc.note LIKE '%(co-production)%' OR mc.note LIKE '%(presents)%'))\n" + @@ -10335,7 +10335,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'top 250 rank')\n" + " │ └─ TableAlias(it)\n" + @@ -10445,9 +10445,9 @@ WHERE ct.kind = 'production companies' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mc.note) as production_note, min(t.title) as movie_title, min(t.production_year) as movie_year]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mc.note), MIN(t.production_year), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mc.note), MIN(t.production_year), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2005) AND (t.production_year <= 2010))\n" + @@ -10455,13 +10455,13 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi_idx.movie_id) AND (it.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ (NOT(mc.note LIKE '%(as Metro-Goldwyn-Mayer Pictures)%'))\n" + @@ -10469,7 +10469,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'bottom 10 rank')\n" + " │ └─ TableAlias(it)\n" + @@ -10486,9 +10486,9 @@ WHERE ct.kind = 'production companies' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mc.note) as production_note, min(t.title) as movie_title, min(t.production_year) as movie_year]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mc.note), MIN(t.production_year), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mc.note), MIN(t.production_year), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2005) AND (t.production_year <= 2010))\n" + @@ -10496,13 +10496,13 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi_idx.movie_id) AND (it.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ (NOT(mc.note LIKE '%(as Metro-Goldwyn-Mayer Pictures)%'))\n" + @@ -10510,7 +10510,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'bottom 10 rank')\n" + " │ └─ TableAlias(it)\n" + @@ -10619,9 +10619,9 @@ WHERE ct.kind = 'production companies' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mc.note) as production_note, min(t.title) as movie_title, min(t.production_year) as movie_year]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mc.note), MIN(t.production_year), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mc.note), MIN(t.production_year), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -10629,13 +10629,13 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi_idx.movie_id) AND (it.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(as Metro-Goldwyn-Mayer Pictures)%')) AND mc.note LIKE '%(co-production)%')\n" + @@ -10643,7 +10643,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'top 250 rank')\n" + " │ └─ TableAlias(it)\n" + @@ -10660,9 +10660,9 @@ WHERE ct.kind = 'production companies' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mc.note) as production_note, min(t.title) as movie_title, min(t.production_year) as movie_year]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mc.note), MIN(t.production_year), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mc.note), MIN(t.production_year), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -10670,13 +10670,13 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi_idx.movie_id) AND (it.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(as Metro-Goldwyn-Mayer Pictures)%')) AND mc.note LIKE '%(co-production)%')\n" + @@ -10684,7 +10684,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'top 250 rank')\n" + " │ └─ TableAlias(it)\n" + @@ -10790,9 +10790,9 @@ WHERE ct.kind = 'production companies' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mc.note) as production_note, min(t.title) as movie_title, min(t.production_year) as movie_year]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mc.note), MIN(t.production_year), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mc.note), MIN(t.production_year), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -10800,13 +10800,13 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi_idx.movie_id) AND (it.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ (NOT(mc.note LIKE '%(as Metro-Goldwyn-Mayer Pictures)%'))\n" + @@ -10814,7 +10814,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'bottom 10 rank')\n" + " │ └─ TableAlias(it)\n" + @@ -10831,9 +10831,9 @@ WHERE ct.kind = 'production companies' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mc.note) as production_note, min(t.title) as movie_title, min(t.production_year) as movie_year]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mc.note), MIN(t.production_year), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mc.note), MIN(t.production_year), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mc.movie_id) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -10841,13 +10841,13 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi_idx.movie_id) AND (it.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ (NOT(mc.note LIKE '%(as Metro-Goldwyn-Mayer Pictures)%'))\n" + @@ -10855,7 +10855,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'bottom 10 rank')\n" + " │ └─ TableAlias(it)\n" + @@ -11048,9 +11048,9 @@ WHERE cct1.kind = 'cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as complete_downey_ironman_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1950)\n" + @@ -11058,46 +11058,46 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'sequel', 'second-part', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name LIKE '%Sherlock%')) AND (chn.name LIKE '%Tony%Stark%' OR chn.name LIKE '%Iron%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -11105,7 +11105,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -11121,9 +11121,9 @@ WHERE cct1.kind = 'cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as complete_downey_ironman_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1950)\n" + @@ -11131,46 +11131,46 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'sequel', 'second-part', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name LIKE '%Sherlock%')) AND (chn.name LIKE '%Tony%Stark%' OR chn.name LIKE '%Iron%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -11178,7 +11178,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -11373,9 +11373,9 @@ WHERE cct1.kind = 'cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as complete_downey_ironman_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -11383,7 +11383,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -11391,40 +11391,40 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'sequel', 'second-part', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name LIKE '%Sherlock%')) AND (chn.name LIKE '%Tony%Stark%' OR chn.name LIKE '%Iron%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -11432,7 +11432,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -11448,9 +11448,9 @@ WHERE cct1.kind = 'cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as complete_downey_ironman_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -11458,7 +11458,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -11466,40 +11466,40 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'sequel', 'second-part', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name LIKE '%Sherlock%')) AND (chn.name LIKE '%Tony%Stark%' OR chn.name LIKE '%Iron%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -11507,7 +11507,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -11702,9 +11702,9 @@ WHERE cct1.kind = 'cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as cast_member, min(t.title) as complete_dynamic_hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -11712,46 +11712,46 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence', 'magnet', 'web', 'claw', 'laser'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name IS NULL)) AND (chn.name LIKE '%man%' OR chn.name LIKE '%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -11759,7 +11759,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -11775,9 +11775,9 @@ WHERE cct1.kind = 'cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as cast_member, min(t.title) as complete_dynamic_hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -11785,46 +11785,46 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence', 'magnet', 'web', 'claw', 'laser'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name IS NULL)) AND (chn.name LIKE '%man%' OR chn.name LIKE '%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -11832,7 +11832,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -12038,9 +12038,9 @@ WHERE cn.country_code !='[pl]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as company_name, min(lt.link) as link_type, min(t.title) as western_follow_up]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1950) AND (t.production_year <= 2000))\n" + @@ -12048,19 +12048,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (mc.movie_id = mi.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German'))\n" + @@ -12068,7 +12068,7 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -12076,21 +12076,21 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -12107,9 +12107,9 @@ WHERE cn.country_code !='[pl]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as company_name, min(lt.link) as link_type, min(t.title) as western_follow_up]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1950) AND (t.production_year <= 2000))\n" + @@ -12117,19 +12117,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (mc.movie_id = mi.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German'))\n" + @@ -12137,7 +12137,7 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -12145,21 +12145,21 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -12360,9 +12360,9 @@ WHERE cn.country_code !='[pl]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as company_name, min(lt.link) as link_type, min(t.title) as german_follow_up]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2000) AND (t.production_year <= 2010))\n" + @@ -12370,19 +12370,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (mc.movie_id = mi.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Germany', 'German'))\n" + @@ -12390,7 +12390,7 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -12398,21 +12398,21 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -12429,9 +12429,9 @@ WHERE cn.country_code !='[pl]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as company_name, min(lt.link) as link_type, min(t.title) as german_follow_up]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2000) AND (t.production_year <= 2010))\n" + @@ -12439,19 +12439,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (mc.movie_id = mi.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Germany', 'German'))\n" + @@ -12459,7 +12459,7 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -12467,21 +12467,21 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -12689,9 +12689,9 @@ WHERE cn.country_code !='[pl]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as company_name, min(lt.link) as link_type, min(t.title) as western_follow_up]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1950) AND (t.production_year <= 2010))\n" + @@ -12699,19 +12699,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (mc.movie_id = mi.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'English'))\n" + @@ -12719,7 +12719,7 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -12727,21 +12727,21 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -12758,9 +12758,9 @@ WHERE cn.country_code !='[pl]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as company_name, min(lt.link) as link_type, min(t.title) as western_follow_up]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1950) AND (t.production_year <= 2010))\n" + @@ -12768,19 +12768,19 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (mc.movie_id = mi.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'English'))\n" + @@ -12788,7 +12788,7 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_type_id = ct.id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -12796,21 +12796,21 @@ WHERE cn.country_code !='[pl]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + @@ -13048,9 +13048,9 @@ WHERE cn.country_code != '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as western_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2008)\n" + @@ -13058,13 +13058,13 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '7.0')\n" + @@ -13072,7 +13072,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mc.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Germany', 'German', 'USA', 'American'))\n" + @@ -13080,7 +13080,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -13088,35 +13088,35 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + @@ -13131,9 +13131,9 @@ WHERE cn.country_code != '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as western_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2008)\n" + @@ -13141,13 +13141,13 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '7.0')\n" + @@ -13155,7 +13155,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mc.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Germany', 'German', 'USA', 'American'))\n" + @@ -13163,7 +13163,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -13171,35 +13171,35 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + @@ -13435,9 +13435,9 @@ WHERE cn.country_code != '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as western_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2009)\n" + @@ -13445,13 +13445,13 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '7.0')\n" + @@ -13459,7 +13459,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mc.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Germany', 'German', 'USA', 'American'))\n" + @@ -13467,7 +13467,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -13475,35 +13475,35 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + @@ -13518,9 +13518,9 @@ WHERE cn.country_code != '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as western_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2009)\n" + @@ -13528,13 +13528,13 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '7.0')\n" + @@ -13542,7 +13542,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mc.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Germany', 'German', 'USA', 'American'))\n" + @@ -13550,7 +13550,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -13558,35 +13558,35 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + @@ -13828,9 +13828,9 @@ WHERE cn.country_code != '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as western_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -13838,13 +13838,13 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -13852,7 +13852,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mc.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Danish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -13860,7 +13860,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -13868,35 +13868,35 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + @@ -13911,9 +13911,9 @@ WHERE cn.country_code != '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as western_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -13921,13 +13921,13 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -13935,7 +13935,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mc.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Danish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -13943,7 +13943,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -13951,35 +13951,35 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + @@ -14214,9 +14214,9 @@ WHERE cn.country_code != '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as western_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -14224,13 +14224,13 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -14238,7 +14238,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mc.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Danish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -14246,41 +14246,41 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + @@ -14295,9 +14295,9 @@ WHERE cn.country_code != '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as western_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -14305,13 +14305,13 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -14319,7 +14319,7 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mi.movie_id = mc.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Danish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -14327,41 +14327,41 @@ WHERE cn.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ct.id = mc.company_type_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + @@ -14578,9 +14578,9 @@ WHERE cct1.kind = 'complete+verified' ExpectedEstimates: "Project\n" + " ├─ columns: [min(kt.kind) as movie_kind, min(t.title) as complete_us_internet_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(kt.kind), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(kt.kind), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -14588,13 +14588,13 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((mi.note LIKE '%internet%' AND (NOT(mi.info IS NULL))) AND (mi.info LIKE 'USA:% 199%' OR mi.info LIKE 'USA:% 200%'))\n" + @@ -14602,44 +14602,44 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'complete+verified')\n" + @@ -14655,9 +14655,9 @@ WHERE cct1.kind = 'complete+verified' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(kt.kind) as movie_kind, min(t.title) as complete_us_internet_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(kt.kind), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(kt.kind), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -14665,13 +14665,13 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((mi.note LIKE '%internet%' AND (NOT(mi.info IS NULL))) AND (mi.info LIKE 'USA:% 199%' OR mi.info LIKE 'USA:% 200%'))\n" + @@ -14679,44 +14679,44 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'complete+verified')\n" + @@ -14935,9 +14935,9 @@ WHERE cct1.kind = 'complete+verified' ExpectedEstimates: "Project\n" + " ├─ columns: [min(kt.kind) as movie_kind, min(t.title) as complete_nerdy_internet_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(kt.kind), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(kt.kind), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -14945,13 +14945,13 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.note LIKE '%internet%' AND mi.info LIKE 'USA:% 200%')\n" + @@ -14959,46 +14959,46 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('nerd', 'loner', 'alienation', 'dignity'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'complete+verified')\n" + @@ -15014,9 +15014,9 @@ WHERE cct1.kind = 'complete+verified' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(kt.kind) as movie_kind, min(t.title) as complete_nerdy_internet_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(kt.kind), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(kt.kind), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -15024,13 +15024,13 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.note LIKE '%internet%' AND mi.info LIKE 'USA:% 200%')\n" + @@ -15038,46 +15038,46 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('nerd', 'loner', 'alienation', 'dignity'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'complete+verified')\n" + @@ -15298,9 +15298,9 @@ WHERE cct1.kind = 'complete+verified' ExpectedEstimates: "Project\n" + " ├─ columns: [min(kt.kind) as movie_kind, min(t.title) as complete_us_internet_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(kt.kind), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(kt.kind), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -15308,13 +15308,13 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((mi.note LIKE '%internet%' AND (NOT(mi.info IS NULL))) AND (mi.info LIKE 'USA:% 199%' OR mi.info LIKE 'USA:% 200%'))\n" + @@ -15322,44 +15322,44 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'tv movie', 'video movie', 'video game'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'complete+verified')\n" + @@ -15375,9 +15375,9 @@ WHERE cct1.kind = 'complete+verified' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(kt.kind) as movie_kind, min(t.title) as complete_us_internet_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(kt.kind), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(kt.kind), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -15385,13 +15385,13 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((mi.note LIKE '%internet%' AND (NOT(mi.info IS NULL))) AND (mi.info LIKE 'USA:% 199%' OR mi.info LIKE 'USA:% 200%'))\n" + @@ -15399,44 +15399,44 @@ WHERE cct1.kind = 'complete+verified' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (cn.id = mc.company_id)) AND (ct.id = mc.company_type_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'tv movie', 'video movie', 'video game'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'release dates')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'complete+verified')\n" + @@ -15685,9 +15685,9 @@ WHERE ci.note IN ('(voice)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char_name, min(n.name) as voicing_actress_name, min(t.title) as voiced_action_movie_jap_eng]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -15695,7 +15695,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -15703,7 +15703,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -15711,13 +15711,13 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%201%' OR mi.info LIKE 'USA:%201%'))\n" + @@ -15725,35 +15725,35 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('hero', 'martial-arts', 'hand-to-hand-combat'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -15774,9 +15774,9 @@ WHERE ci.note IN ('(voice)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char_name, min(n.name) as voicing_actress_name, min(t.title) as voiced_action_movie_jap_eng]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -15784,7 +15784,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -15792,7 +15792,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -15800,13 +15800,13 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%201%' OR mi.info LIKE 'USA:%201%'))\n" + @@ -15814,35 +15814,35 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('hero', 'martial-arts', 'hand-to-hand-combat'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -16111,9 +16111,9 @@ WHERE ci.note IN ('(voice)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char_name, min(n.name) as voicing_actress_name, min(t.title) as kung_fu_panda]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.production_year > 2010) AND (t.title >= 'Kung Fu Panda')) AND (t.title <= 'Kung Fu Pandaÿ'))\n" + @@ -16121,7 +16121,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -16129,7 +16129,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -16137,13 +16137,13 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%201%' OR mi.info LIKE 'USA:%201%'))\n" + @@ -16151,35 +16151,35 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('hero', 'martial-arts', 'hand-to-hand-combat', 'computer-animated-movie'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((cn.country_code = '[us]') AND (cn.name = 'DreamWorks Animation'))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -16200,9 +16200,9 @@ WHERE ci.note IN ('(voice)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char_name, min(n.name) as voicing_actress_name, min(t.title) as kung_fu_panda]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.production_year > 2010) AND (t.title >= 'Kung Fu Panda')) AND (t.title <= 'Kung Fu Pandaÿ'))\n" + @@ -16210,7 +16210,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -16218,7 +16218,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -16226,13 +16226,13 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%201%' OR mi.info LIKE 'USA:%201%'))\n" + @@ -16240,35 +16240,35 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = ci.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('hero', 'martial-arts', 'hand-to-hand-combat', 'computer-animated-movie'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((cn.country_code = '[us]') AND (cn.name = 'DreamWorks Animation'))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -16470,15 +16470,15 @@ WHERE ci.note IN ('(writer)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as male_writer, min(t.title) as violent_movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -16486,19 +16486,19 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info = 'Horror')\n" + @@ -16506,21 +16506,21 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'blood', 'gore', 'death', 'female-nudity'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + @@ -16537,15 +16537,15 @@ WHERE ci.note IN ('(writer)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as male_writer, min(t.title) as violent_movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -16553,19 +16553,19 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info = 'Horror')\n" + @@ -16573,21 +16573,21 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'blood', 'gore', 'death', 'female-nudity'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + @@ -16799,9 +16799,9 @@ WHERE ci.note IN ('(writer)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as male_writer, min(t.title) as violent_movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.production_year > 2010) AND (t.title >= 'Vampire')) AND (t.title <= 'Vampireÿ'))\n" + @@ -16809,7 +16809,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -16817,19 +16817,19 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info = 'Horror')\n" + @@ -16837,21 +16837,21 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'blood', 'gore', 'death', 'female-nudity'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + @@ -16868,9 +16868,9 @@ WHERE ci.note IN ('(writer)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as male_writer, min(t.title) as violent_movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.production_year > 2010) AND (t.title >= 'Vampire')) AND (t.title <= 'Vampireÿ'))\n" + @@ -16878,7 +16878,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -16886,19 +16886,19 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info = 'Horror')\n" + @@ -16906,21 +16906,21 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'blood', 'gore', 'death', 'female-nudity'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + @@ -17125,15 +17125,15 @@ WHERE ci.note IN ('(writer)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as male_writer, min(t.title) as violent_movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -17141,19 +17141,19 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Action', 'Sci-Fi', 'Thriller', 'Crime', 'War'))\n" + @@ -17161,21 +17161,21 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + @@ -17192,15 +17192,15 @@ WHERE ci.note IN ('(writer)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as male_writer, min(t.title) as violent_movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -17208,19 +17208,19 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mi.movie_id) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Action', 'Sci-Fi', 'Thriller', 'Crime', 'War'))\n" + @@ -17228,21 +17228,21 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + @@ -17488,9 +17488,9 @@ WHERE cct1.kind = 'cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as character_name, min(mi_idx.info) as rating, min(n.name) as playing_actor, min(t.title) as complete_hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -17498,19 +17498,19 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (cc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '7.0')\n" + @@ -17518,41 +17518,41 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence', 'magnet', 'web', 'claw', 'laser'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name IS NULL)) AND (chn.name LIKE '%man%' OR chn.name LIKE '%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -17560,7 +17560,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -17576,9 +17576,9 @@ WHERE cct1.kind = 'cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as character_name, min(mi_idx.info) as rating, min(n.name) as playing_actor, min(t.title) as complete_hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -17586,19 +17586,19 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (cc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '7.0')\n" + @@ -17606,41 +17606,41 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence', 'magnet', 'web', 'claw', 'laser'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name IS NULL)) AND (chn.name LIKE '%man%' OR chn.name LIKE '%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -17648,7 +17648,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -17886,9 +17886,9 @@ WHERE cct1.kind = 'cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as character_name, min(mi_idx.info) as rating, min(t.title) as complete_hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -17896,19 +17896,19 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (cc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '8.0')\n" + @@ -17916,41 +17916,41 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'marvel-comics', 'based-on-comic', 'fight'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name IS NULL)) AND (chn.name LIKE '%man%' OR chn.name LIKE '%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -17958,7 +17958,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -17974,9 +17974,9 @@ WHERE cct1.kind = 'cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as character_name, min(mi_idx.info) as rating, min(t.title) as complete_hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -17984,19 +17984,19 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (cc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '8.0')\n" + @@ -18004,41 +18004,41 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'marvel-comics', 'based-on-comic', 'fight'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name IS NULL)) AND (chn.name LIKE '%man%' OR chn.name LIKE '%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -18046,7 +18046,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -18285,9 +18285,9 @@ WHERE cct1.kind = 'cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as character_name, min(mi_idx.info) as rating, min(t.title) as complete_hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -18295,59 +18295,59 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (cc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence', 'magnet', 'web', 'claw', 'laser'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name IS NULL)) AND (chn.name LIKE '%man%' OR chn.name LIKE '%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -18355,7 +18355,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -18371,9 +18371,9 @@ WHERE cct1.kind = 'cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as character_name, min(mi_idx.info) as rating, min(t.title) as complete_hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((kt.id = t.kind_id) AND (t.id = mk.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = cc.movie_id)) AND (t.id = mi_idx.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -18381,59 +18381,59 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.movie_id = ci.movie_id) AND (mk.movie_id = cc.movie_id)) AND (mk.movie_id = mi_idx.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi_idx.movie_id) AND (cc.movie_id = mi_idx.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind = 'movie')\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence', 'magnet', 'web', 'claw', 'laser'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = cc.movie_id) AND (chn.id = ci.person_role_id))\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id person_role_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(chn.name IS NULL)) AND (chn.name LIKE '%man%' OR chn.name LIKE '%Man%'))\n" + " │ └─ TableAlias(chn)\n" + " │ └─ Table\n" + " │ ├─ name: char_name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ cct2.kind LIKE '%complete%'\n" + @@ -18441,7 +18441,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -18709,9 +18709,9 @@ WHERE cct1.kind IN ('cast', ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(lt.link) as link_type, min(t.title) as complete_western_sequel]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1950) AND (t.production_year <= 2000))\n" + @@ -18719,19 +18719,19 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id)) AND (ml.movie_id = cc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id)) AND (mk.movie_id = cc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Germany', 'Swedish', 'German'))\n" + @@ -18739,7 +18739,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.company_type_id = ct.id) AND (mc.company_id = cn.id)) AND (mc.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -18747,35 +18747,35 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT((cn.country_code = '[pl]'))) AND (cn.name LIKE '%Film%' OR cn.name LIKE '%Warner%'))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete')\n" + @@ -18783,7 +18783,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind HASH IN ('cast', 'crew'))\n" + @@ -18799,9 +18799,9 @@ WHERE cct1.kind IN ('cast', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(lt.link) as link_type, min(t.title) as complete_western_sequel]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1950) AND (t.production_year <= 2000))\n" + @@ -18809,19 +18809,19 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id)) AND (ml.movie_id = cc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id)) AND (mk.movie_id = cc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Germany', 'Swedish', 'German'))\n" + @@ -18829,7 +18829,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.company_type_id = ct.id) AND (mc.company_id = cn.id)) AND (mc.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -18837,35 +18837,35 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT((cn.country_code = '[pl]'))) AND (cn.name LIKE '%Film%' OR cn.name LIKE '%Warner%'))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete')\n" + @@ -18873,7 +18873,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind HASH IN ('cast', 'crew'))\n" + @@ -19137,9 +19137,9 @@ WHERE cct1.kind IN ('cast', ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(lt.link) as link_type, min(t.title) as complete_western_sequel]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year = 1998)\n" + @@ -19147,19 +19147,19 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id)) AND (ml.movie_id = cc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id)) AND (mk.movie_id = cc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Germany', 'Swedish', 'German'))\n" + @@ -19167,7 +19167,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.company_type_id = ct.id) AND (mc.company_id = cn.id)) AND (mc.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -19175,35 +19175,35 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT((cn.country_code = '[pl]'))) AND (cn.name LIKE '%Film%' OR cn.name LIKE '%Warner%'))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete')\n" + @@ -19211,7 +19211,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind HASH IN ('cast', 'crew'))\n" + @@ -19227,9 +19227,9 @@ WHERE cct1.kind IN ('cast', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(lt.link) as link_type, min(t.title) as complete_western_sequel]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year = 1998)\n" + @@ -19237,19 +19237,19 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id)) AND (ml.movie_id = cc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id)) AND (mk.movie_id = cc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Germany', 'Swedish', 'German'))\n" + @@ -19257,7 +19257,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.company_type_id = ct.id) AND (mc.company_id = cn.id)) AND (mc.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -19265,35 +19265,35 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT((cn.country_code = '[pl]'))) AND (cn.name LIKE '%Film%' OR cn.name LIKE '%Warner%'))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete')\n" + @@ -19301,7 +19301,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind HASH IN ('cast', 'crew'))\n" + @@ -19577,9 +19577,9 @@ WHERE cct1.kind = 'cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(lt.link) as link_type, min(t.title) as complete_western_sequel]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1950) AND (t.production_year <= 2010))\n" + @@ -19587,19 +19587,19 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id)) AND (ml.movie_id = cc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id)) AND (mk.movie_id = cc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'English'))\n" + @@ -19607,7 +19607,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.company_type_id = ct.id) AND (mc.company_id = cn.id)) AND (mc.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -19615,35 +19615,35 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT((cn.country_code = '[pl]'))) AND (cn.name LIKE '%Film%' OR cn.name LIKE '%Warner%'))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ ((cct2.kind >= 'complete') AND (cct2.kind <= 'completeÿ'))\n" + @@ -19651,7 +19651,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -19667,9 +19667,9 @@ WHERE cct1.kind = 'cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as producing_company, min(lt.link) as link_type, min(t.title) as complete_western_sequel]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(lt.link), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(lt.link), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((ml.movie_id = t.id) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id)) AND (mi.movie_id = t.id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1950) AND (t.production_year <= 2010))\n" + @@ -19677,19 +19677,19 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mk.movie_id)) AND (ml.movie_id = mc.movie_id)) AND (ml.movie_id = mi.movie_id)) AND (ml.movie_id = cc.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mk.keyword_id = k.id) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = mi.movie_id)) AND (mk.movie_id = cc.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'English'))\n" + @@ -19697,7 +19697,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.company_type_id = ct.id) AND (mc.company_id = cn.id)) AND (mc.movie_id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ mc.note IS NULL\n" + @@ -19705,35 +19705,35 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'sequel')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ct.kind = 'production companies')\n" + " │ └─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((NOT((cn.country_code = '[pl]'))) AND (cn.name LIKE '%Film%' OR cn.name LIKE '%Warner%'))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ ((cct2.kind >= 'complete') AND (cct2.kind <= 'completeÿ'))\n" + @@ -19741,7 +19741,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -20050,9 +20050,9 @@ WHERE cct1.kind = 'crew' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as complete_euro_dark_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -20060,13 +20060,13 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -20074,7 +20074,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Danish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -20082,7 +20082,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (ct.id = mc.company_type_id)) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -20090,47 +20090,47 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (NOT((cn.country_code = '[us]')))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (NOT((cct2.kind = 'complete+verified')))\n" + @@ -20138,7 +20138,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'crew')\n" + @@ -20154,9 +20154,9 @@ WHERE cct1.kind = 'crew' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as complete_euro_dark_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -20164,13 +20164,13 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -20178,7 +20178,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Danish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -20186,7 +20186,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (ct.id = mc.company_type_id)) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -20194,47 +20194,47 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (NOT((cn.country_code = '[us]')))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (NOT((cct2.kind = 'complete+verified')))\n" + @@ -20242,7 +20242,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'crew')\n" + @@ -20545,9 +20545,9 @@ WHERE cct1.kind = 'crew' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as complete_euro_dark_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -20555,13 +20555,13 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '6.5')\n" + @@ -20569,7 +20569,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Germany', 'Swedish', 'German'))\n" + @@ -20577,7 +20577,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (ct.id = mc.company_type_id)) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -20585,47 +20585,47 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (NOT((cn.country_code = '[us]')))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (NOT((cct2.kind = 'complete+verified')))\n" + @@ -20633,7 +20633,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'crew')\n" + @@ -20649,9 +20649,9 @@ WHERE cct1.kind = 'crew' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as complete_euro_dark_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -20659,13 +20659,13 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '6.5')\n" + @@ -20673,7 +20673,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Germany', 'Swedish', 'German'))\n" + @@ -20681,7 +20681,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (ct.id = mc.company_type_id)) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -20689,47 +20689,47 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (NOT((cn.country_code = '[us]')))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (NOT((cct2.kind = 'complete+verified')))\n" + @@ -20737,7 +20737,7 @@ WHERE cct1.kind = 'crew' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'crew')\n" + @@ -21045,9 +21045,9 @@ WHERE cct1.kind = 'cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as complete_euro_dark_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -21055,13 +21055,13 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -21069,7 +21069,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Danish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -21077,7 +21077,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (ct.id = mc.company_type_id)) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -21085,47 +21085,47 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (NOT((cn.country_code = '[us]')))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete')\n" + @@ -21133,7 +21133,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -21149,9 +21149,9 @@ WHERE cct1.kind = 'cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn.name) as movie_company, min(mi_idx.info) as rating, min(t.title) as complete_euro_dark_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn.name), MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn.name), MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((((kt.id = t.kind_id) AND (t.id = mi.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mi_idx.movie_id)) AND (t.id = mc.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -21159,13 +21159,13 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mk.movie_id = mi.movie_id) AND (mk.movie_id = mi_idx.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mi.movie_id = mi_idx.movie_id) AND (mc.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info < '8.5')\n" + @@ -21173,7 +21173,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mi.movie_id = mc.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Danish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -21181,7 +21181,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = cc.movie_id) AND (ct.id = mc.company_type_id)) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(USA)%')) AND mc.note LIKE '%(200%)%')\n" + @@ -21189,47 +21189,47 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt.kind HASH IN ('movie', 'episode'))\n" + " │ └─ TableAlias(kt)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'murder-in-title', 'blood', 'violence'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'countries')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(ct)\n" + " │ └─ Table\n" + " │ ├─ name: company_type\n" + " │ └─ columns: [id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (NOT((cn.country_code = '[us]')))\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id name country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete')\n" + @@ -21237,7 +21237,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -21599,9 +21599,9 @@ WHERE cct1.kind ='cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2010))\n" + @@ -21609,7 +21609,7 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -21617,13 +21617,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + " ├─ TableAlias(pi)\n" + " │ └─ Table\n" + " │ ├─ name: person_info\n" + " │ └─ columns: [person_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -21631,13 +21631,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + @@ -21645,47 +21645,47 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'computer-animation')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it3.info = 'trivia')\n" + " │ └─ TableAlias(it3)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (cct2.id = cc.status_id)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + - " │ │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin (estimated cost=24.000 rows=0)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + " │ │ │ │ └─ TableAlias(ci)\n" + @@ -21697,7 +21697,7 @@ WHERE cct1.kind ='cast' " │ │ │ ├─ index: [aka_name.person_id]\n" + " │ │ │ ├─ columns: [person_id]\n" + " │ │ │ └─ keys: ci.person_id\n" + - " │ │ └─ InnerJoin\n" + + " │ │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (cct1.id = cc.subject_id)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ (cct1.kind = 'cast')\n" + @@ -21725,9 +21725,9 @@ WHERE cct1.kind ='cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2010))\n" + @@ -21735,7 +21735,7 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -21743,13 +21743,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + " ├─ TableAlias(pi)\n" + " │ └─ Table\n" + " │ ├─ name: person_info\n" + " │ └─ columns: [person_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -21757,13 +21757,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + @@ -21771,47 +21771,47 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'computer-animation')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it3.info = 'trivia')\n" + " │ └─ TableAlias(it3)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (cct2.id = cc.status_id)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + - " │ │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin (estimated cost=24.000 rows=0)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + " │ │ │ │ └─ TableAlias(ci)\n" + @@ -21823,7 +21823,7 @@ WHERE cct1.kind ='cast' " │ │ │ ├─ index: [aka_name.person_id]\n" + " │ │ │ ├─ columns: [person_id]\n" + " │ │ │ └─ keys: ci.person_id\n" + - " │ │ └─ InnerJoin\n" + + " │ │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (cct1.id = cc.subject_id)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ (cct1.kind = 'cast')\n" + @@ -22190,9 +22190,9 @@ WHERE cct1.kind ='cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2005))\n" + @@ -22200,7 +22200,7 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -22208,13 +22208,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + " ├─ TableAlias(pi)\n" + " │ └─ Table\n" + " │ ├─ name: person_info\n" + " │ └─ columns: [person_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -22222,13 +22222,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ mi.info LIKE 'USA:%200%'\n" + @@ -22236,47 +22236,47 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'computer-animation')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it3.info = 'height')\n" + " │ └─ TableAlias(it3)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (cct2.id = cc.status_id)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + - " │ │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin (estimated cost=24.000 rows=0)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + " │ │ │ │ └─ TableAlias(ci)\n" + @@ -22288,7 +22288,7 @@ WHERE cct1.kind ='cast' " │ │ │ ├─ index: [aka_name.person_id]\n" + " │ │ │ ├─ columns: [person_id]\n" + " │ │ │ └─ keys: ci.person_id\n" + - " │ │ └─ InnerJoin\n" + + " │ │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (cct1.id = cc.subject_id)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ (cct1.kind = 'cast')\n" + @@ -22316,9 +22316,9 @@ WHERE cct1.kind ='cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2005))\n" + @@ -22326,7 +22326,7 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -22334,13 +22334,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + " ├─ TableAlias(pi)\n" + " │ └─ Table\n" + " │ ├─ name: person_info\n" + " │ └─ columns: [person_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -22348,13 +22348,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ mi.info LIKE 'USA:%200%'\n" + @@ -22362,47 +22362,47 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'computer-animation')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it3.info = 'height')\n" + " │ └─ TableAlias(it3)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (cct2.id = cc.status_id)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + - " │ │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin (estimated cost=24.000 rows=0)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + " │ │ │ │ └─ TableAlias(ci)\n" + @@ -22414,7 +22414,7 @@ WHERE cct1.kind ='cast' " │ │ │ ├─ index: [aka_name.person_id]\n" + " │ │ │ ├─ columns: [person_id]\n" + " │ │ │ └─ keys: ci.person_id\n" + - " │ │ └─ InnerJoin\n" + + " │ │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (cct1.id = cc.subject_id)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ (cct1.kind = 'cast')\n" + @@ -22779,9 +22779,9 @@ WHERE cct1.kind ='cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2000) AND (t.production_year <= 2010))\n" + @@ -22789,7 +22789,7 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -22797,13 +22797,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + " ├─ TableAlias(pi)\n" + " │ └─ Table\n" + " │ ├─ name: person_info\n" + " │ └─ columns: [person_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -22811,13 +22811,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + @@ -22825,47 +22825,47 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'computer-animation')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it3.info = 'trivia')\n" + " │ └─ TableAlias(it3)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (cct2.id = cc.status_id)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + - " │ │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin (estimated cost=24.000 rows=0)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + " │ │ │ │ └─ TableAlias(ci)\n" + @@ -22877,7 +22877,7 @@ WHERE cct1.kind ='cast' " │ │ │ ├─ index: [aka_name.person_id]\n" + " │ │ │ ├─ columns: [person_id]\n" + " │ │ │ └─ keys: ci.person_id\n" + - " │ │ └─ InnerJoin\n" + + " │ │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (cct1.id = cc.subject_id)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ (cct1.kind = 'cast')\n" + @@ -22903,9 +22903,9 @@ WHERE cct1.kind ='cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2000) AND (t.production_year <= 2010))\n" + @@ -22913,7 +22913,7 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (rt.id = ci.role_id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -22921,13 +22921,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + " ├─ TableAlias(pi)\n" + " │ └─ Table\n" + " │ ├─ name: person_info\n" + " │ └─ columns: [person_id info_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -22935,13 +22935,13 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + @@ -22949,47 +22949,47 @@ WHERE cct1.kind ='cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'computer-animation')\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it3.info = 'trivia')\n" + " │ └─ TableAlias(it3)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'release dates')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (chn.id = ci.person_role_id)\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (cct2.id = cc.status_id)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + - " │ │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin (estimated cost=24.000 rows=0)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + " │ │ │ │ └─ TableAlias(ci)\n" + @@ -23001,7 +23001,7 @@ WHERE cct1.kind ='cast' " │ │ │ ├─ index: [aka_name.person_id]\n" + " │ │ │ ├─ columns: [person_id]\n" + " │ │ │ └─ keys: ci.person_id\n" + - " │ │ └─ InnerJoin\n" + + " │ │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (cct1.id = cc.subject_id)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ (cct1.kind = 'cast')\n" + @@ -23105,27 +23105,27 @@ WHERE cn.country_code ='[de]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = t.id) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn.id = mc.company_id)\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + @@ -23142,27 +23142,27 @@ WHERE cn.country_code ='[de]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((mc.movie_id = t.id) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn.id = mc.company_id)\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + @@ -23257,27 +23257,27 @@ WHERE cn.country_code ='[nl]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = t.id) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn.id = mc.company_id)\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + @@ -23294,27 +23294,27 @@ WHERE cn.country_code ='[nl]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((mc.movie_id = t.id) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn.id = mc.company_id)\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + @@ -23409,27 +23409,27 @@ WHERE cn.country_code ='[sm]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = t.id) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn.id = mc.company_id)\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + @@ -23446,27 +23446,27 @@ WHERE cn.country_code ='[sm]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((mc.movie_id = t.id) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn.id = mc.company_id)\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + @@ -23561,27 +23561,27 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = t.id) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn.id = mc.company_id)\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + @@ -23598,27 +23598,27 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((mc.movie_id = t.id) AND (t.id = mk.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.keyword_id = k.id) AND (mc.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn.id = mc.company_id)\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'character-name-in-title')\n" + " │ └─ TableAlias(k)\n" + @@ -23889,9 +23889,9 @@ WHERE cct1.kind IN ('cast', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as complete_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -23899,7 +23899,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -23907,19 +23907,19 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Thriller'))\n" + @@ -23927,28 +23927,28 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.movie_id = cc.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (ci.note HASH IN ('(writer)', '(head writer)', '(written by)', '(story)', '(story editor)'))\n" + @@ -23956,7 +23956,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete+verified')\n" + @@ -23964,7 +23964,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind HASH IN ('cast', 'crew'))\n" + @@ -23980,9 +23980,9 @@ WHERE cct1.kind IN ('cast', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as complete_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -23990,7 +23990,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -23998,19 +23998,19 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Thriller'))\n" + @@ -24018,28 +24018,28 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.movie_id = cc.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (ci.note HASH IN ('(writer)', '(head writer)', '(written by)', '(story)', '(story editor)'))\n" + @@ -24047,7 +24047,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete+verified')\n" + @@ -24055,7 +24055,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind HASH IN ('cast', 'crew'))\n" + @@ -24340,9 +24340,9 @@ WHERE cct1.kind IN ('cast', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as complete_gore_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year > 2000) AND ((t.title LIKE '%Freddy%' OR t.title LIKE '%Jason%') OR ((t.title >= 'Saw') AND (t.title <= 'Sawÿ'))))\n" + @@ -24350,7 +24350,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -24358,19 +24358,19 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Thriller'))\n" + @@ -24378,28 +24378,28 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.movie_id = cc.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (ci.note HASH IN ('(writer)', '(head writer)', '(written by)', '(story)', '(story editor)'))\n" + @@ -24407,7 +24407,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete+verified')\n" + @@ -24415,7 +24415,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind HASH IN ('cast', 'crew'))\n" + @@ -24431,9 +24431,9 @@ WHERE cct1.kind IN ('cast', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as complete_gore_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year > 2000) AND ((t.title LIKE '%Freddy%' OR t.title LIKE '%Jason%') OR ((t.title >= 'Saw') AND (t.title <= 'Sawÿ'))))\n" + @@ -24441,7 +24441,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -24449,19 +24449,19 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Thriller'))\n" + @@ -24469,28 +24469,28 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.movie_id = cc.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (ci.note HASH IN ('(writer)', '(head writer)', '(written by)', '(story)', '(story editor)'))\n" + @@ -24498,7 +24498,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete+verified')\n" + @@ -24506,7 +24506,7 @@ WHERE cct1.kind IN ('cast', " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind HASH IN ('cast', 'crew'))\n" + @@ -24774,15 +24774,15 @@ WHERE cct1.kind = 'cast' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as complete_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -24790,19 +24790,19 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Action', 'Sci-Fi', 'Thriller', 'Crime', 'War'))\n" + @@ -24810,28 +24810,28 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.movie_id = cc.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (ci.note HASH IN ('(writer)', '(head writer)', '(written by)', '(story)', '(story editor)'))\n" + @@ -24839,7 +24839,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete+verified')\n" + @@ -24847,7 +24847,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -24863,15 +24863,15 @@ WHERE cct1.kind = 'cast' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as complete_violent_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -24879,19 +24879,19 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = cc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = cc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Action', 'Sci-Fi', 'Thriller', 'Crime', 'War'))\n" + @@ -24899,28 +24899,28 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.movie_id = cc.movie_id)\n" + " ├─ Filter\n" + " │ ├─ (ci.note HASH IN ('(writer)', '(head writer)', '(written by)', '(story)', '(story editor)'))\n" + @@ -24928,7 +24928,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: cast_info\n" + " │ └─ columns: [person_id movie_id note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct2.id = cc.status_id)\n" + " ├─ Filter\n" + " │ ├─ (cct2.kind = 'complete+verified')\n" + @@ -24936,7 +24936,7 @@ WHERE cct1.kind = 'cast' " │ └─ Table\n" + " │ ├─ name: comp_cast_type\n" + " │ └─ columns: [id kind]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cct1.id = cc.subject_id)\n" + " ├─ Filter\n" + " │ ├─ (cct1.kind = 'cast')\n" + @@ -25188,15 +25188,15 @@ WHERE ci.note IN ('(writer)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as violent_liongate_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -25204,19 +25204,19 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = mc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = mc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Thriller'))\n" + @@ -25224,34 +25224,34 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((cn.name >= 'Lionsgate') AND (cn.name <= 'Lionsgateÿ'))\n" + " │ └─ TableAlias(cn)\n" + @@ -25268,15 +25268,15 @@ WHERE ci.note IN ('(writer)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as violent_liongate_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -25284,19 +25284,19 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = mc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = mc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Thriller'))\n" + @@ -25304,34 +25304,34 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((cn.name >= 'Lionsgate') AND (cn.name <= 'Lionsgateÿ'))\n" + " │ └─ TableAlias(cn)\n" + @@ -25607,9 +25607,9 @@ WHERE ci.note IN ('(writer)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as violent_liongate_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year > 2000) AND ((t.title LIKE '%Freddy%' OR t.title LIKE '%Jason%') OR ((t.title >= 'Saw') AND (t.title <= 'Sawÿ'))))\n" + @@ -25617,7 +25617,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -25625,19 +25625,19 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = mc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = mc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Thriller'))\n" + @@ -25645,7 +25645,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ mc.note LIKE '%(Blu-ray)%'\n" + @@ -25653,28 +25653,28 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((cn.name >= 'Lionsgate') AND (cn.name <= 'Lionsgateÿ'))\n" + " │ └─ TableAlias(cn)\n" + @@ -25691,9 +25691,9 @@ WHERE ci.note IN ('(writer)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as violent_liongate_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year > 2000) AND ((t.title LIKE '%Freddy%' OR t.title LIKE '%Jason%') OR ((t.title >= 'Saw') AND (t.title <= 'Sawÿ'))))\n" + @@ -25701,7 +25701,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'm')\n" + @@ -25709,19 +25709,19 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = mc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = mc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Thriller'))\n" + @@ -25729,7 +25729,7 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ Filter\n" + " │ ├─ mc.note LIKE '%(Blu-ray)%'\n" + @@ -25737,28 +25737,28 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((cn.name >= 'Lionsgate') AND (cn.name <= 'Lionsgateÿ'))\n" + " │ └─ TableAlias(cn)\n" + @@ -26010,33 +26010,33 @@ WHERE ci.note IN ('(writer)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as violent_liongate_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = mc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = mc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Action', 'Sci-Fi', 'Thriller', 'Crime', 'War'))\n" + @@ -26044,34 +26044,34 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((cn.name >= 'Lionsgate') AND (cn.name <= 'Lionsgateÿ'))\n" + " │ └─ TableAlias(cn)\n" + @@ -26088,33 +26088,33 @@ WHERE ci.note IN ('(writer)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi.info) as movie_budget, min(mi_idx.info) as movie_votes, min(n.name) as writer, min(t.title) as violent_liongate_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi.info), MIN(mi_idx.info), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mi_idx.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((ci.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (mi_idx.movie_id = mk.movie_id)) AND (mk.movie_id = mc.movie_id)) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((ci.movie_id = mi_idx.movie_id) AND (mi.movie_id = mi_idx.movie_id)) AND (mi_idx.movie_id = mc.movie_id)) AND (it2.id = mi_idx.info_type_id))\n" + " ├─ TableAlias(mi_idx)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((ci.movie_id = mi.movie_id) AND (mi.movie_id = mc.movie_id)) AND (it1.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Horror', 'Action', 'Sci-Fi', 'Thriller', 'Crime', 'War'))\n" + @@ -26122,34 +26122,34 @@ WHERE ci.note IN ('(writer)', " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (cn.id = mc.company_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital'))\n" + " │ └─ TableAlias(k)\n" + " │ └─ Table\n" + " │ ├─ name: keyword\n" + " │ └─ columns: [id keyword]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'votes')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'genres')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ ((cn.name >= 'Lionsgate') AND (cn.name <= 'Lionsgateÿ'))\n" + " │ └─ TableAlias(cn)\n" + @@ -26257,33 +26257,33 @@ WHERE k.keyword ='10,000-mile-club' ExpectedEstimates: "Project\n" + " ├─ columns: [min(lt.link) as link_type, min(t1.title) as first_movie, min(t2.title) as second_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(lt.link), MIN(t1.title), MIN(t2.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(lt.link), MIN(t1.title), MIN(t2.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ml.linked_movie_id = t2.id)\n" + " ├─ TableAlias(t2)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t1.id = mk.movie_id) AND (ml.movie_id = t1.id)) AND (mk.movie_id = t1.id))\n" + " ├─ TableAlias(t1)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((lt.id = ml.link_type_id) AND (mk.movie_id = ml.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id linked_movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (mk.keyword_id = k.id)\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + @@ -26298,33 +26298,33 @@ WHERE k.keyword ='10,000-mile-club' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(lt.link) as link_type, min(t1.title) as first_movie, min(t2.title) as second_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(lt.link), MIN(t1.title), MIN(t2.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(lt.link), MIN(t1.title), MIN(t2.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (ml.linked_movie_id = t2.id)\n" + " ├─ TableAlias(t2)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t1.id = mk.movie_id) AND (ml.movie_id = t1.id)) AND (mk.movie_id = t1.id))\n" + " ├─ TableAlias(t1)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((lt.id = ml.link_type_id) AND (mk.movie_id = ml.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id linked_movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (mk.keyword_id = k.id)\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + @@ -26430,33 +26430,33 @@ WHERE k.keyword ='character-name-in-title' ExpectedEstimates: "Project\n" + " ├─ columns: [min(lt.link) as link_type, min(t1.title) as first_movie, min(t2.title) as second_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(lt.link), MIN(t1.title), MIN(t2.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(lt.link), MIN(t1.title), MIN(t2.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ml.linked_movie_id = t2.id)\n" + " ├─ TableAlias(t2)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t1.id = mk.movie_id) AND (ml.movie_id = t1.id)) AND (mk.movie_id = t1.id))\n" + " ├─ TableAlias(t1)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((lt.id = ml.link_type_id) AND (mk.movie_id = ml.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id linked_movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (mk.keyword_id = k.id)\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + @@ -26471,33 +26471,33 @@ WHERE k.keyword ='character-name-in-title' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(lt.link) as link_type, min(t1.title) as first_movie, min(t2.title) as second_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(lt.link), MIN(t1.title), MIN(t2.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(lt.link), MIN(t1.title), MIN(t2.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ (ml.linked_movie_id = t2.id)\n" + " ├─ TableAlias(t2)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((t1.id = mk.movie_id) AND (ml.movie_id = t1.id)) AND (mk.movie_id = t1.id))\n" + " ├─ TableAlias(t1)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((lt.id = ml.link_type_id) AND (mk.movie_id = ml.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id linked_movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (mk.keyword_id = k.id)\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + @@ -26766,9 +26766,9 @@ WHERE cn1.country_code = '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn1.name) as first_company, min(cn2.name) as second_company, min(mi_idx1.info) as first_rating, min(mi_idx2.info) as second_rating, min(t1.title) as first_movie, min(t2.title) as second_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t2.id = ml.linked_movie_id) AND (t2.id = mi_idx2.movie_id)) AND (kt2.id = t2.kind_id)) AND (t2.id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t2.production_year >= 2005) AND (t2.production_year <= 2008))\n" + @@ -26776,19 +26776,19 @@ WHERE cn1.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t1.id = ml.movie_id) AND (t1.id = mi_idx1.movie_id)) AND (kt1.id = t1.kind_id)) AND (t1.id = mc1.movie_id))\n" + " ├─ TableAlias(t1)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mi_idx1.movie_id)) AND (ml.movie_id = mc1.movie_id)) AND (ml.linked_movie_id = mi_idx2.movie_id)) AND (ml.linked_movie_id = mc2.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id linked_movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi_idx2.info_type_id) AND (mi_idx2.movie_id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx2.info < '3.0')\n" + @@ -26796,60 +26796,60 @@ WHERE cn1.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it1.id = mi_idx1.info_type_id) AND (mi_idx1.movie_id = mc1.movie_id))\n" + " ├─ TableAlias(mi_idx1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn2.id = mc2.company_id)\n" + " ├─ TableAlias(mc2)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn1.id = mc1.company_id)\n" + " ├─ TableAlias(mc1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (lt.link HASH IN ('sequel', 'follows', 'followed by'))\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt2.kind HASH IN ('tv series'))\n" + " │ └─ TableAlias(kt2)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt1.kind HASH IN ('tv series'))\n" + " │ └─ TableAlias(kt1)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'rating')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn2)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -26864,9 +26864,9 @@ WHERE cn1.country_code = '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn1.name) as first_company, min(cn2.name) as second_company, min(mi_idx1.info) as first_rating, min(mi_idx2.info) as second_rating, min(t1.title) as first_movie, min(t2.title) as second_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t2.id = ml.linked_movie_id) AND (t2.id = mi_idx2.movie_id)) AND (kt2.id = t2.kind_id)) AND (t2.id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t2.production_year >= 2005) AND (t2.production_year <= 2008))\n" + @@ -26874,19 +26874,19 @@ WHERE cn1.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t1.id = ml.movie_id) AND (t1.id = mi_idx1.movie_id)) AND (kt1.id = t1.kind_id)) AND (t1.id = mc1.movie_id))\n" + " ├─ TableAlias(t1)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mi_idx1.movie_id)) AND (ml.movie_id = mc1.movie_id)) AND (ml.linked_movie_id = mi_idx2.movie_id)) AND (ml.linked_movie_id = mc2.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id linked_movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi_idx2.info_type_id) AND (mi_idx2.movie_id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx2.info < '3.0')\n" + @@ -26894,60 +26894,60 @@ WHERE cn1.country_code = '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it1.id = mi_idx1.info_type_id) AND (mi_idx1.movie_id = mc1.movie_id))\n" + " ├─ TableAlias(mi_idx1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn2.id = mc2.company_id)\n" + " ├─ TableAlias(mc2)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn1.id = mc1.company_id)\n" + " ├─ TableAlias(mc1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (lt.link HASH IN ('sequel', 'follows', 'followed by'))\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt2.kind HASH IN ('tv series'))\n" + " │ └─ TableAlias(kt2)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt1.kind HASH IN ('tv series'))\n" + " │ └─ TableAlias(kt1)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'rating')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn2)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -27208,9 +27208,9 @@ WHERE cn1.country_code = '[nl]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn1.name) as first_company, min(cn2.name) as second_company, min(mi_idx1.info) as first_rating, min(mi_idx2.info) as second_rating, min(t1.title) as first_movie, min(t2.title) as second_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t2.id = ml.linked_movie_id) AND (t2.id = mi_idx2.movie_id)) AND (kt2.id = t2.kind_id)) AND (t2.id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t2.production_year = 2007)\n" + @@ -27218,19 +27218,19 @@ WHERE cn1.country_code = '[nl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t1.id = ml.movie_id) AND (t1.id = mi_idx1.movie_id)) AND (kt1.id = t1.kind_id)) AND (t1.id = mc1.movie_id))\n" + " ├─ TableAlias(t1)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mi_idx1.movie_id)) AND (ml.movie_id = mc1.movie_id)) AND (ml.linked_movie_id = mi_idx2.movie_id)) AND (ml.linked_movie_id = mc2.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id linked_movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi_idx2.info_type_id) AND (mi_idx2.movie_id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx2.info < '3.0')\n" + @@ -27238,60 +27238,60 @@ WHERE cn1.country_code = '[nl]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it1.id = mi_idx1.info_type_id) AND (mi_idx1.movie_id = mc1.movie_id))\n" + " ├─ TableAlias(mi_idx1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn2.id = mc2.company_id)\n" + " ├─ TableAlias(mc2)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn1.id = mc1.company_id)\n" + " ├─ TableAlias(mc1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt2.kind HASH IN ('tv series'))\n" + " │ └─ TableAlias(kt2)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt1.kind HASH IN ('tv series'))\n" + " │ └─ TableAlias(kt1)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'rating')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn2)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -27306,9 +27306,9 @@ WHERE cn1.country_code = '[nl]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn1.name) as first_company, min(cn2.name) as second_company, min(mi_idx1.info) as first_rating, min(mi_idx2.info) as second_rating, min(t1.title) as first_movie, min(t2.title) as second_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t2.id = ml.linked_movie_id) AND (t2.id = mi_idx2.movie_id)) AND (kt2.id = t2.kind_id)) AND (t2.id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t2.production_year = 2007)\n" + @@ -27316,19 +27316,19 @@ WHERE cn1.country_code = '[nl]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t1.id = ml.movie_id) AND (t1.id = mi_idx1.movie_id)) AND (kt1.id = t1.kind_id)) AND (t1.id = mc1.movie_id))\n" + " ├─ TableAlias(t1)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mi_idx1.movie_id)) AND (ml.movie_id = mc1.movie_id)) AND (ml.linked_movie_id = mi_idx2.movie_id)) AND (ml.linked_movie_id = mc2.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id linked_movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi_idx2.info_type_id) AND (mi_idx2.movie_id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx2.info < '3.0')\n" + @@ -27336,60 +27336,60 @@ WHERE cn1.country_code = '[nl]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it1.id = mi_idx1.info_type_id) AND (mi_idx1.movie_id = mc1.movie_id))\n" + " ├─ TableAlias(mi_idx1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn2.id = mc2.company_id)\n" + " ├─ TableAlias(mc2)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn1.id = mc1.company_id)\n" + " ├─ TableAlias(mc1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ lt.link LIKE '%follow%'\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt2.kind HASH IN ('tv series'))\n" + " │ └─ TableAlias(kt2)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt1.kind HASH IN ('tv series'))\n" + " │ └─ TableAlias(kt1)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'rating')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn2)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -27661,9 +27661,9 @@ WHERE cn1.country_code != '[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(cn1.name) as first_company, min(cn2.name) as second_company, min(mi_idx1.info) as first_rating, min(mi_idx2.info) as second_rating, min(t1.title) as first_movie, min(t2.title) as second_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t2.id = ml.linked_movie_id) AND (t2.id = mi_idx2.movie_id)) AND (kt2.id = t2.kind_id)) AND (t2.id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t2.production_year >= 2000) AND (t2.production_year <= 2010))\n" + @@ -27671,19 +27671,19 @@ WHERE cn1.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t1.id = ml.movie_id) AND (t1.id = mi_idx1.movie_id)) AND (kt1.id = t1.kind_id)) AND (t1.id = mc1.movie_id))\n" + " ├─ TableAlias(t1)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mi_idx1.movie_id)) AND (ml.movie_id = mc1.movie_id)) AND (ml.linked_movie_id = mi_idx2.movie_id)) AND (ml.linked_movie_id = mc2.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id linked_movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi_idx2.info_type_id) AND (mi_idx2.movie_id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx2.info < '3.5')\n" + @@ -27691,60 +27691,60 @@ WHERE cn1.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it1.id = mi_idx1.info_type_id) AND (mi_idx1.movie_id = mc1.movie_id))\n" + " ├─ TableAlias(mi_idx1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn2.id = mc2.company_id)\n" + " ├─ TableAlias(mc2)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn1.id = mc1.company_id)\n" + " ├─ TableAlias(mc1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (lt.link HASH IN ('sequel', 'follows', 'followed by'))\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt2.kind HASH IN ('tv series', 'episode'))\n" + " │ └─ TableAlias(kt2)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt1.kind HASH IN ('tv series', 'episode'))\n" + " │ └─ TableAlias(kt1)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'rating')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn2)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -27759,9 +27759,9 @@ WHERE cn1.country_code != '[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(cn1.name) as first_company, min(cn2.name) as second_company, min(mi_idx1.info) as first_rating, min(mi_idx2.info) as second_rating, min(t1.title) as first_movie, min(t2.title) as second_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(cn1.name), MIN(cn2.name), MIN(mi_idx1.info), MIN(mi_idx2.info), MIN(t1.title), MIN(t2.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((((t2.id = ml.linked_movie_id) AND (t2.id = mi_idx2.movie_id)) AND (kt2.id = t2.kind_id)) AND (t2.id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t2.production_year >= 2000) AND (t2.production_year <= 2010))\n" + @@ -27769,19 +27769,19 @@ WHERE cn1.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((t1.id = ml.movie_id) AND (t1.id = mi_idx1.movie_id)) AND (kt1.id = t1.kind_id)) AND (t1.id = mc1.movie_id))\n" + " ├─ TableAlias(t1)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title kind_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (((((lt.id = ml.link_type_id) AND (ml.movie_id = mi_idx1.movie_id)) AND (ml.movie_id = mc1.movie_id)) AND (ml.linked_movie_id = mi_idx2.movie_id)) AND (ml.linked_movie_id = mc2.movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [movie_id linked_movie_id link_type_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it2.id = mi_idx2.info_type_id) AND (mi_idx2.movie_id = mc2.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mi_idx2.info < '3.5')\n" + @@ -27789,60 +27789,60 @@ WHERE cn1.country_code != '[us]' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((it1.id = mi_idx1.info_type_id) AND (mi_idx1.movie_id = mc1.movie_id))\n" + " ├─ TableAlias(mi_idx1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn2.id = mc2.company_id)\n" + " ├─ TableAlias(mc2)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (cn1.id = mc1.company_id)\n" + " ├─ TableAlias(mc1)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (lt.link HASH IN ('sequel', 'follows', 'followed by'))\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt2.kind HASH IN ('tv series', 'episode'))\n" + " │ └─ TableAlias(kt2)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (kt1.kind HASH IN ('tv series', 'episode'))\n" + " │ └─ TableAlias(kt1)\n" + " │ └─ Table\n" + " │ ├─ name: kind_type\n" + " │ └─ columns: [id kind]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it2.info = 'rating')\n" + " │ └─ TableAlias(it2)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it1.info = 'rating')\n" + " │ └─ TableAlias(it1)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(cn2)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + @@ -27934,9 +27934,9 @@ WHERE k.keyword LIKE '%sequel%' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -27944,13 +27944,13 @@ WHERE k.keyword LIKE '%sequel%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German'))\n" + " │ └─ TableAlias(mi)\n" + @@ -27967,9 +27967,9 @@ WHERE k.keyword LIKE '%sequel%' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -27977,13 +27977,13 @@ WHERE k.keyword LIKE '%sequel%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German'))\n" + " │ └─ TableAlias(mi)\n" + @@ -28070,9 +28070,9 @@ WHERE k.keyword LIKE '%sequel%' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -28080,13 +28080,13 @@ WHERE k.keyword LIKE '%sequel%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Bulgaria'))\n" + " │ └─ TableAlias(mi)\n" + @@ -28103,9 +28103,9 @@ WHERE k.keyword LIKE '%sequel%' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -28113,13 +28113,13 @@ WHERE k.keyword LIKE '%sequel%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Bulgaria'))\n" + " │ └─ TableAlias(mi)\n" + @@ -28215,9 +28215,9 @@ WHERE k.keyword LIKE '%sequel%' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -28225,13 +28225,13 @@ WHERE k.keyword LIKE '%sequel%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'USA', 'American'))\n" + " │ └─ TableAlias(mi)\n" + @@ -28248,9 +28248,9 @@ WHERE k.keyword LIKE '%sequel%' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -28258,13 +28258,13 @@ WHERE k.keyword LIKE '%sequel%' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'USA', 'American'))\n" + " │ └─ TableAlias(mi)\n" + @@ -28368,9 +28368,9 @@ WHERE it.info ='rating' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mi_idx.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -28378,13 +28378,13 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi_idx.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it.id = mi_idx.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '5.0')\n" + @@ -28392,7 +28392,7 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ k.keyword LIKE '%sequel%'\n" + " │ └─ TableAlias(k)\n" + @@ -28409,9 +28409,9 @@ WHERE it.info ='rating' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mi_idx.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -28419,13 +28419,13 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi_idx.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it.id = mi_idx.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '5.0')\n" + @@ -28433,7 +28433,7 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ k.keyword LIKE '%sequel%'\n" + " │ └─ TableAlias(k)\n" + @@ -28537,9 +28537,9 @@ WHERE it.info ='rating' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mi_idx.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -28547,13 +28547,13 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi_idx.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it.id = mi_idx.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '9.0')\n" + @@ -28561,7 +28561,7 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ k.keyword LIKE '%sequel%'\n" + " │ └─ TableAlias(k)\n" + @@ -28578,9 +28578,9 @@ WHERE it.info ='rating' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mi_idx.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -28588,13 +28588,13 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi_idx.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it.id = mi_idx.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '9.0')\n" + @@ -28602,7 +28602,7 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ k.keyword LIKE '%sequel%'\n" + " │ └─ TableAlias(k)\n" + @@ -28706,9 +28706,9 @@ WHERE it.info ='rating' ExpectedEstimates: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mi_idx.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -28716,13 +28716,13 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi_idx.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it.id = mi_idx.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '2.0')\n" + @@ -28730,7 +28730,7 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ k.keyword LIKE '%sequel%'\n" + " │ └─ TableAlias(k)\n" + @@ -28747,9 +28747,9 @@ WHERE it.info ='rating' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(mi_idx.info) as rating, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(mi_idx.info), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(mi_idx.info), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mi_idx.movie_id) AND (t.id = mk.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -28757,13 +28757,13 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mk.movie_id = mi_idx.movie_id) AND (k.id = mk.keyword_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (it.id = mi_idx.info_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mi_idx.info > '2.0')\n" + @@ -28771,7 +28771,7 @@ WHERE it.info ='rating' " │ └─ Table\n" + " │ ├─ name: movie_info_idx\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ k.keyword LIKE '%sequel%'\n" + " │ └─ TableAlias(k)\n" + @@ -28884,9 +28884,9 @@ WHERE ct.kind = 'production companies' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as typical_european_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -28894,7 +28894,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German'))\n" + @@ -28902,7 +28902,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(theatrical)%' AND mc.note LIKE '%(France)%')\n" + @@ -28910,7 +28910,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + @@ -28925,9 +28925,9 @@ WHERE ct.kind = 'production companies' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as typical_european_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2005)\n" + @@ -28935,7 +28935,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German'))\n" + @@ -28943,7 +28943,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(theatrical)%' AND mc.note LIKE '%(France)%')\n" + @@ -28951,7 +28951,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + @@ -29059,9 +29059,9 @@ WHERE ct.kind = 'production companies' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as american_vhs_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -29069,7 +29069,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('USA', 'America'))\n" + @@ -29077,7 +29077,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ ((mc.note LIKE '%(VHS)%' AND mc.note LIKE '%(USA)%') AND mc.note LIKE '%(1994)%')\n" + @@ -29085,7 +29085,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + @@ -29100,9 +29100,9 @@ WHERE ct.kind = 'production companies' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as american_vhs_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -29110,7 +29110,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('USA', 'America'))\n" + @@ -29118,7 +29118,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ ((mc.note LIKE '%(VHS)%' AND mc.note LIKE '%(USA)%') AND mc.note LIKE '%(1994)%')\n" + @@ -29126,7 +29126,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + @@ -29240,9 +29240,9 @@ WHERE ct.kind = 'production companies' ExpectedEstimates: "Project\n" + " ├─ columns: [min(t.title) as american_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -29250,7 +29250,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -29258,7 +29258,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(TV)%')) AND mc.note LIKE '%(USA)%')\n" + @@ -29266,7 +29266,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + @@ -29281,9 +29281,9 @@ WHERE ct.kind = 'production companies' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(t.title) as american_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mi.movie_id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 1990)\n" + @@ -29291,7 +29291,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.movie_id = mi.movie_id) AND (it.id = mi.info_type_id))\n" + " ├─ Filter\n" + " │ ├─ (mi.info HASH IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German', 'USA', 'American'))\n" + @@ -29299,7 +29299,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_info\n" + " │ └─ columns: [movie_id info_type_id info]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ct.id = mc.company_type_id)\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note LIKE '%(TV)%')) AND mc.note LIKE '%(USA)%')\n" + @@ -29307,7 +29307,7 @@ WHERE ct.kind = 'production companies' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_type_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + @@ -29405,9 +29405,9 @@ WHERE k.keyword = 'marvel-cinematic-universe' ExpectedEstimates: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as marvel_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -29415,7 +29415,7 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -29423,13 +29423,13 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'marvel-cinematic-universe')\n" + " │ └─ TableAlias(k)\n" + @@ -29444,9 +29444,9 @@ WHERE k.keyword = 'marvel-cinematic-universe' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as marvel_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2010)\n" + @@ -29454,7 +29454,7 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -29462,13 +29462,13 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'marvel-cinematic-universe')\n" + " │ └─ TableAlias(k)\n" + @@ -29573,9 +29573,9 @@ WHERE k.keyword IN ('superhero', ExpectedEstimates: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2014)\n" + @@ -29583,7 +29583,7 @@ WHERE k.keyword IN ('superhero', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -29591,13 +29591,13 @@ WHERE k.keyword IN ('superhero', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'sequel', 'second-part', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence'))\n" + " │ └─ TableAlias(k)\n" + @@ -29612,9 +29612,9 @@ WHERE k.keyword IN ('superhero', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2014)\n" + @@ -29622,7 +29622,7 @@ WHERE k.keyword IN ('superhero', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -29630,13 +29630,13 @@ WHERE k.keyword IN ('superhero', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'sequel', 'second-part', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence'))\n" + " │ └─ TableAlias(k)\n" + @@ -29734,9 +29734,9 @@ WHERE k.keyword = 'marvel-cinematic-universe' ExpectedEstimates: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as marvel_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2014)\n" + @@ -29744,7 +29744,7 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -29752,13 +29752,13 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'marvel-cinematic-universe')\n" + " │ └─ TableAlias(k)\n" + @@ -29773,9 +29773,9 @@ WHERE k.keyword = 'marvel-cinematic-universe' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as marvel_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2014)\n" + @@ -29783,7 +29783,7 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -29791,13 +29791,13 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'marvel-cinematic-universe')\n" + " │ └─ TableAlias(k)\n" + @@ -29902,9 +29902,9 @@ WHERE k.keyword IN ('superhero', ExpectedEstimates: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -29912,7 +29912,7 @@ WHERE k.keyword IN ('superhero', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -29920,13 +29920,13 @@ WHERE k.keyword IN ('superhero', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'sequel', 'second-part', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence'))\n" + " │ └─ TableAlias(k)\n" + @@ -29941,9 +29941,9 @@ WHERE k.keyword IN ('superhero', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -29951,7 +29951,7 @@ WHERE k.keyword IN ('superhero', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -29959,13 +29959,13 @@ WHERE k.keyword IN ('superhero', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'sequel', 'second-part', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence'))\n" + " │ └─ TableAlias(k)\n" + @@ -30063,9 +30063,9 @@ WHERE k.keyword = 'marvel-cinematic-universe' ExpectedEstimates: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as marvel_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -30073,7 +30073,7 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -30081,13 +30081,13 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'marvel-cinematic-universe')\n" + " │ └─ TableAlias(k)\n" + @@ -30102,9 +30102,9 @@ WHERE k.keyword = 'marvel-cinematic-universe' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as marvel_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -30112,7 +30112,7 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ Filter\n" + " │ ├─ n.name LIKE '%Downey%Robert%'\n" + @@ -30120,13 +30120,13 @@ WHERE k.keyword = 'marvel-cinematic-universe' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword = 'marvel-cinematic-universe')\n" + " │ └─ TableAlias(k)\n" + @@ -30228,9 +30228,9 @@ WHERE k.keyword IN ('superhero', ExpectedEstimates: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -30238,19 +30238,19 @@ WHERE k.keyword IN ('superhero', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'sequel', 'second-part', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence'))\n" + " │ └─ TableAlias(k)\n" + @@ -30265,9 +30265,9 @@ WHERE k.keyword IN ('superhero', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(k.keyword) as movie_keyword, min(n.name) as actor_name, min(t.title) as hero_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(k.keyword), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(k.keyword), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = mk.movie_id) AND (t.id = ci.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (t.production_year > 2000)\n" + @@ -30275,19 +30275,19 @@ WHERE k.keyword IN ('superhero', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (n.id = ci.person_id)\n" + " ├─ TableAlias(n)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((k.id = mk.keyword_id) AND (ci.movie_id = mk.movie_id))\n" + " ├─ TableAlias(mk)\n" + " │ └─ Table\n" + " │ ├─ name: movie_keyword\n" + " │ └─ columns: [movie_id keyword_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (k.keyword HASH IN ('superhero', 'sequel', 'second-part', 'marvel-comics', 'based-on-comic', 'tv-special', 'fight', 'violence'))\n" + " │ └─ TableAlias(k)\n" + @@ -30465,17 +30465,17 @@ WHERE an.name LIKE '%a%' ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as of_person, min(t.title) as biography_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ ((n.id = an.person_id) AND (pi.person_id = an.person_id))\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (n.id = pi.person_id)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (lt.id = ml.link_type_id)\n" + - " │ │ ├─ InnerJoin\n" + + " │ │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ │ ├─ (ci.movie_id = ml.linked_movie_id)\n" + - " │ │ │ ├─ InnerJoin\n" + + " │ │ │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ │ │ ├─ (ml.linked_movie_id = t.id)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ ((t.production_year >= 1980) AND (t.production_year <= 1995))\n" + @@ -30487,7 +30487,7 @@ WHERE an.name LIKE '%a%' " │ │ │ │ └─ Table\n" + " │ │ │ │ ├─ name: movie_link\n" + " │ │ │ │ └─ columns: [linked_movie_id link_type_id]\n" + - " │ │ │ └─ InnerJoin\n" + + " │ │ │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ │ ├─ (ci.person_id = n.id)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (((n.name_pcode_cf >= 'A') AND (n.name_pcode_cf <= 'F')) AND ((n.gender = 'm') OR ((n.gender = 'f') AND ((n.name >= 'B') AND (n.name <= 'Bÿ')))))\n" + @@ -30505,7 +30505,7 @@ WHERE an.name LIKE '%a%' " │ │ └─ Table\n" + " │ │ ├─ name: link_type\n" + " │ │ └─ columns: [id link]\n" + - " │ └─ InnerJoin\n" + + " │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (it.id = pi.info_type_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (pi.note = 'Volker Boehm')\n" + @@ -30530,17 +30530,17 @@ WHERE an.name LIKE '%a%' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as of_person, min(t.title) as biography_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=24.000 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((n.id = an.person_id) AND (pi.person_id = an.person_id))\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " │ ├─ (n.id = pi.person_id)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " │ │ ├─ (lt.id = ml.link_type_id)\n" + - " │ │ ├─ InnerJoin\n" + + " │ │ ├─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " │ │ │ ├─ (ci.movie_id = ml.linked_movie_id)\n" + - " │ │ │ ├─ InnerJoin\n" + + " │ │ │ ├─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ (ml.linked_movie_id = t.id)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ ((t.production_year >= 1980) AND (t.production_year <= 1995))\n" + @@ -30552,7 +30552,7 @@ WHERE an.name LIKE '%a%' " │ │ │ │ └─ Table\n" + " │ │ │ │ ├─ name: movie_link\n" + " │ │ │ │ └─ columns: [linked_movie_id link_type_id]\n" + - " │ │ │ └─ InnerJoin\n" + + " │ │ │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ │ ├─ (ci.person_id = n.id)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (((n.name_pcode_cf >= 'A') AND (n.name_pcode_cf <= 'F')) AND ((n.gender = 'm') OR ((n.gender = 'f') AND ((n.name >= 'B') AND (n.name <= 'Bÿ')))))\n" + @@ -30570,7 +30570,7 @@ WHERE an.name LIKE '%a%' " │ │ └─ Table\n" + " │ │ ├─ name: link_type\n" + " │ │ └─ columns: [id link]\n" + - " │ └─ InnerJoin\n" + + " │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (it.id = pi.info_type_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (pi.note = 'Volker Boehm')\n" + @@ -30744,17 +30744,17 @@ WHERE an.name LIKE '%a%' ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as of_person, min(t.title) as biography_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ ((n.id = an.person_id) AND (pi.person_id = an.person_id))\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (n.id = pi.person_id)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ ├─ (lt.id = ml.link_type_id)\n" + - " │ │ ├─ InnerJoin\n" + + " │ │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ │ ├─ (ci.movie_id = ml.linked_movie_id)\n" + - " │ │ │ ├─ InnerJoin\n" + + " │ │ │ ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ │ │ ├─ (ml.linked_movie_id = t.id)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ ((t.production_year >= 1980) AND (t.production_year <= 1984))\n" + @@ -30766,7 +30766,7 @@ WHERE an.name LIKE '%a%' " │ │ │ │ └─ Table\n" + " │ │ │ │ ├─ name: movie_link\n" + " │ │ │ │ └─ columns: [linked_movie_id link_type_id]\n" + - " │ │ │ └─ InnerJoin\n" + + " │ │ │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ │ ├─ (ci.person_id = n.id)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (((n.name_pcode_cf >= 'D') AND (n.name_pcode_cf <= 'Dÿ')) AND (n.gender = 'm'))\n" + @@ -30784,7 +30784,7 @@ WHERE an.name LIKE '%a%' " │ │ └─ Table\n" + " │ │ ├─ name: link_type\n" + " │ │ └─ columns: [id link]\n" + - " │ └─ InnerJoin\n" + + " │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (it.id = pi.info_type_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (pi.note = 'Volker Boehm')\n" + @@ -30809,17 +30809,17 @@ WHERE an.name LIKE '%a%' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as of_person, min(t.title) as biography_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=24.000 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((n.id = an.person_id) AND (pi.person_id = an.person_id))\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " │ ├─ (n.id = pi.person_id)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " │ │ ├─ (lt.id = ml.link_type_id)\n" + - " │ │ ├─ InnerJoin\n" + + " │ │ ├─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " │ │ │ ├─ (ci.movie_id = ml.linked_movie_id)\n" + - " │ │ │ ├─ InnerJoin\n" + + " │ │ │ ├─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ (ml.linked_movie_id = t.id)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ ((t.production_year >= 1980) AND (t.production_year <= 1984))\n" + @@ -30831,7 +30831,7 @@ WHERE an.name LIKE '%a%' " │ │ │ │ └─ Table\n" + " │ │ │ │ ├─ name: movie_link\n" + " │ │ │ │ └─ columns: [linked_movie_id link_type_id]\n" + - " │ │ │ └─ InnerJoin\n" + + " │ │ │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ │ │ ├─ (ci.person_id = n.id)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (((n.name_pcode_cf >= 'D') AND (n.name_pcode_cf <= 'Dÿ')) AND (n.gender = 'm'))\n" + @@ -30849,7 +30849,7 @@ WHERE an.name LIKE '%a%' " │ │ └─ Table\n" + " │ │ ├─ name: link_type\n" + " │ │ └─ columns: [id link]\n" + - " │ └─ InnerJoin\n" + + " │ └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (it.id = pi.info_type_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (pi.note = 'Volker Boehm')\n" + @@ -31063,9 +31063,9 @@ WHERE an.name IS NOT NULL ExpectedEstimates: "Project\n" + " ├─ columns: [min(n.name) as cast_member_name, min(pi.info) as cast_member_info]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(pi.info))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(pi.info)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((t.id = ci.movie_id) AND (ml.linked_movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1980) AND (t.production_year <= 2010))\n" + @@ -31073,7 +31073,7 @@ WHERE an.name IS NOT NULL " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((n.id = pi.person_id) AND (it.id = pi.info_type_id)) AND (pi.person_id = an.person_id)) AND (pi.person_id = ci.person_id))\n" + " ├─ Filter\n" + " │ ├─ (NOT(pi.note IS NULL))\n" + @@ -31081,7 +31081,7 @@ WHERE an.name IS NOT NULL " │ └─ Table\n" + " │ ├─ name: person_info\n" + " │ └─ columns: [person_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = an.person_id) AND (ci.person_id = n.id))\n" + " ├─ Filter\n" + " │ ├─ (((n.name_pcode_cf >= 'A') AND (n.name_pcode_cf <= 'F')) AND ((n.gender = 'm') OR ((n.gender = 'f') AND ((n.name >= 'A') AND (n.name <= 'Aÿ')))))\n" + @@ -31089,27 +31089,27 @@ WHERE an.name IS NOT NULL " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender name_pcode_cf]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((lt.id = ml.link_type_id) AND (ci.movie_id = ml.linked_movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [linked_movie_id link_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (lt.link HASH IN ('references', 'referenced in', 'features', 'featured in'))\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'mini biography')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -31125,9 +31125,9 @@ WHERE an.name IS NOT NULL ExpectedAnalysis: "Project\n" + " ├─ columns: [min(n.name) as cast_member_name, min(pi.info) as cast_member_info]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(n.name), MIN(pi.info))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(n.name), MIN(pi.info)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((t.id = ci.movie_id) AND (ml.linked_movie_id = t.id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 1980) AND (t.production_year <= 2010))\n" + @@ -31135,7 +31135,7 @@ WHERE an.name IS NOT NULL " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((((n.id = pi.person_id) AND (it.id = pi.info_type_id)) AND (pi.person_id = an.person_id)) AND (pi.person_id = ci.person_id))\n" + " ├─ Filter\n" + " │ ├─ (NOT(pi.note IS NULL))\n" + @@ -31143,7 +31143,7 @@ WHERE an.name IS NOT NULL " │ └─ Table\n" + " │ ├─ name: person_info\n" + " │ └─ columns: [person_id info_type_id info note]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = an.person_id) AND (ci.person_id = n.id))\n" + " ├─ Filter\n" + " │ ├─ (((n.name_pcode_cf >= 'A') AND (n.name_pcode_cf <= 'F')) AND ((n.gender = 'm') OR ((n.gender = 'f') AND ((n.name >= 'A') AND (n.name <= 'Aÿ')))))\n" + @@ -31151,27 +31151,27 @@ WHERE an.name IS NOT NULL " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender name_pcode_cf]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((lt.id = ml.link_type_id) AND (ci.movie_id = ml.linked_movie_id))\n" + " ├─ TableAlias(ml)\n" + " │ └─ Table\n" + " │ ├─ name: movie_link\n" + " │ └─ columns: [linked_movie_id link_type_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (lt.link HASH IN ('references', 'referenced in', 'features', 'featured in'))\n" + " │ └─ TableAlias(lt)\n" + " │ └─ Table\n" + " │ ├─ name: link_type\n" + " │ └─ columns: [id link]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (it.info = 'mini biography')\n" + " │ └─ TableAlias(it)\n" + " │ └─ Table\n" + " │ ├─ name: info_type\n" + " │ └─ columns: [id info]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -31313,15 +31313,15 @@ WHERE ci.note ='(voice: English version)' ExpectedEstimates: "Project\n" + " ├─ columns: [min(an1.name) as actress_pseudonym, min(t.title) as japanese_movie_dubbed]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an1.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an1.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -31329,7 +31329,7 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an1.person_id = n1.id) AND (n1.id = ci.person_id))\n" + " ├─ Filter\n" + " │ ├─ (n1.name LIKE '%Yo%' AND (NOT(n1.name LIKE '%Yu%')))\n" + @@ -31337,7 +31337,7 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(Japan)%' AND (NOT(mc.note LIKE '%(USA)%')))\n" + @@ -31345,14 +31345,14 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[jp]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ci.note = '(voice: English version)')\n" + " │ └─ TableAlias(ci)\n" + @@ -31368,15 +31368,15 @@ WHERE ci.note ='(voice: English version)' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an1.name) as actress_pseudonym, min(t.title) as japanese_movie_dubbed]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an1.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an1.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -31384,7 +31384,7 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an1.person_id = n1.id) AND (n1.id = ci.person_id))\n" + " ├─ Filter\n" + " │ ├─ (n1.name LIKE '%Yo%' AND (NOT(n1.name LIKE '%Yu%')))\n" + @@ -31392,7 +31392,7 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(Japan)%' AND (NOT(mc.note LIKE '%(USA)%')))\n" + @@ -31400,14 +31400,14 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[jp]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ci.note = '(voice: English version)')\n" + " │ └─ TableAlias(ci)\n" + @@ -31582,9 +31582,9 @@ WHERE ci.note ='(voice: English version)' ExpectedEstimates: "Project\n" + " ├─ columns: [min(an.name) as acress_pseudonym, min(t.title) as japanese_anime_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.production_year >= 2006) AND (t.production_year <= 2007)) AND (((t.title >= 'One Piece') AND (t.title <= 'One Pieceÿ')) OR ((t.title >= 'Dragon Ball Z') AND (t.title <= 'Dragon Ball Zÿ'))))\n" + @@ -31592,7 +31592,7 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -31600,7 +31600,7 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an.person_id = n.id) AND (n.id = ci.person_id))\n" + " ├─ Filter\n" + " │ ├─ (n.name LIKE '%Yo%' AND (NOT(n.name LIKE '%Yu%')))\n" + @@ -31608,7 +31608,7 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((mc.note LIKE '%(Japan)%' AND (NOT(mc.note LIKE '%(USA)%'))) AND (mc.note LIKE '%(2006)%' OR mc.note LIKE '%(2007)%'))\n" + @@ -31616,14 +31616,14 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[jp]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ci.note = '(voice: English version)')\n" + " │ └─ TableAlias(ci)\n" + @@ -31639,9 +31639,9 @@ WHERE ci.note ='(voice: English version)' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an.name) as acress_pseudonym, min(t.title) as japanese_anime_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ (((t.production_year >= 2006) AND (t.production_year <= 2007)) AND (((t.title >= 'One Piece') AND (t.title <= 'One Pieceÿ')) OR ((t.title >= 'Dragon Ball Z') AND (t.title <= 'Dragon Ball Zÿ'))))\n" + @@ -31649,7 +31649,7 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -31657,7 +31657,7 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an.person_id = n.id) AND (n.id = ci.person_id))\n" + " ├─ Filter\n" + " │ ├─ (n.name LIKE '%Yo%' AND (NOT(n.name LIKE '%Yu%')))\n" + @@ -31665,7 +31665,7 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((mc.note LIKE '%(Japan)%' AND (NOT(mc.note LIKE '%(USA)%'))) AND (mc.note LIKE '%(2006)%' OR mc.note LIKE '%(2007)%'))\n" + @@ -31673,14 +31673,14 @@ WHERE ci.note ='(voice: English version)' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[jp]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (ci.note = '(voice: English version)')\n" + " │ └─ TableAlias(ci)\n" + @@ -31803,15 +31803,15 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(a1.name) as writer_pseudo_name, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(a1.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(a1.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'writer')\n" + @@ -31819,26 +31819,26 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((a1.person_id = n1.id) AND (n1.id = ci.person_id))\n" + " ├─ TableAlias(n1)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -31852,15 +31852,15 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(a1.name) as writer_pseudo_name, min(t.title) as movie_title]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(a1.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(a1.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'writer')\n" + @@ -31868,26 +31868,26 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((a1.person_id = n1.id) AND (n1.id = ci.person_id))\n" + " ├─ TableAlias(n1)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -32008,15 +32008,15 @@ WHERE cn.country_code ='[us]' ExpectedEstimates: "Project\n" + " ├─ columns: [min(an1.name) as costume_designer_pseudo, min(t.title) as movie_with_costumes]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an1.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an1.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'costume designer')\n" + @@ -32024,26 +32024,26 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an1.person_id = n1.id) AND (n1.id = ci.person_id))\n" + " ├─ TableAlias(n1)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -32057,15 +32057,15 @@ WHERE cn.country_code ='[us]' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an1.name) as costume_designer_pseudo, min(t.title) as movie_with_costumes]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an1.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an1.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'costume designer')\n" + @@ -32073,26 +32073,26 @@ WHERE cn.country_code ='[us]' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((an1.person_id = n1.id) AND (n1.id = ci.person_id))\n" + " ├─ TableAlias(n1)\n" + " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((mc.company_id = cn.id) AND (ci.movie_id = mc.movie_id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + " ├─ TableAlias(ci)\n" + " │ └─ Table\n" + " │ ├─ name: cast_info\n" + @@ -32260,9 +32260,9 @@ WHERE ci.note IN ('(voice)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(an.name) as alternative_name, min(chn.name) as character_name, min(t.title) as movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(chn.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(chn.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2005) AND (t.production_year <= 2015))\n" + @@ -32270,7 +32270,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -32278,7 +32278,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (an.person_id = n.id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%Ang%')\n" + @@ -32286,7 +32286,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note IS NULL)) AND (mc.note LIKE '%(USA)%' OR mc.note LIKE '%(worldwide)%'))\n" + @@ -32294,15 +32294,15 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -32323,9 +32323,9 @@ WHERE ci.note IN ('(voice)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an.name) as alternative_name, min(chn.name) as character_name, min(t.title) as movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(chn.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(chn.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2005) AND (t.production_year <= 2015))\n" + @@ -32333,7 +32333,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -32341,7 +32341,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (an.person_id = n.id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%Ang%')\n" + @@ -32349,7 +32349,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ ((NOT(mc.note IS NULL)) AND (mc.note LIKE '%(USA)%' OR mc.note LIKE '%(worldwide)%'))\n" + @@ -32357,15 +32357,15 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -32537,9 +32537,9 @@ WHERE ci.note = '(voice)' ExpectedEstimates: "Project\n" + " ├─ columns: [min(an.name) as alternative_name, min(chn.name) as voiced_character, min(n.name) as voicing_actress, min(t.title) as american_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2007) AND (t.production_year <= 2010))\n" + @@ -32547,7 +32547,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -32555,7 +32555,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (an.person_id = n.id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%Angel%')\n" + @@ -32563,7 +32563,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(200%)%' AND (mc.note LIKE '%(USA)%' OR mc.note LIKE '%(worldwide)%'))\n" + @@ -32571,15 +32571,15 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note = '(voice)')\n" + @@ -32600,9 +32600,9 @@ WHERE ci.note = '(voice)' ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an.name) as alternative_name, min(chn.name) as voiced_character, min(n.name) as voicing_actress, min(t.title) as american_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ Filter\n" + " │ ├─ ((t.production_year >= 2007) AND (t.production_year <= 2010))\n" + @@ -32610,7 +32610,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title production_year]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -32618,7 +32618,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (an.person_id = n.id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%Angel%')\n" + @@ -32626,7 +32626,7 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (mc.company_id = cn.id))\n" + " ├─ Filter\n" + " │ ├─ (mc.note LIKE '%(200%)%' AND (mc.note LIKE '%(USA)%' OR mc.note LIKE '%(worldwide)%'))\n" + @@ -32634,15 +32634,15 @@ WHERE ci.note = '(voice)' " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id note]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note = '(voice)')\n" + @@ -32799,15 +32799,15 @@ WHERE ci.note IN ('(voice)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(an.name) as alternative_name, min(chn.name) as voiced_character_name, min(n.name) as voicing_actress, min(t.title) as american_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -32815,7 +32815,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (an.person_id = n.id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -32823,21 +32823,21 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (mc.company_id = cn.id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -32858,15 +32858,15 @@ WHERE ci.note IN ('(voice)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an.name) as alternative_name, min(chn.name) as voiced_character_name, min(n.name) as voicing_actress, min(t.title) as american_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -32874,7 +32874,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (an.person_id = n.id))\n" + " ├─ Filter\n" + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + @@ -32882,21 +32882,21 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (mc.company_id = cn.id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -33050,15 +33050,15 @@ WHERE ci.note IN ('(voice)', ExpectedEstimates: "Project\n" + " ├─ columns: [min(an.name) as alternative_name, min(chn.name) as voiced_char_name, min(n.name) as voicing_actress, min(t.title) as american_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -33066,7 +33066,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (an.person_id = n.id))\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'f')\n" + @@ -33074,21 +33074,21 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (mc.company_id = cn.id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + @@ -33109,15 +33109,15 @@ WHERE ci.note IN ('(voice)', ExpectedAnalysis: "Project\n" + " ├─ columns: [min(an.name) as alternative_name, min(chn.name) as voiced_char_name, min(n.name) as voicing_actress, min(t.title) as american_movie]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title))\n" + - " ├─ Grouping()\n" + - " └─ InnerJoin\n" + + " ├─ select: MIN(an.name), MIN(chn.name), MIN(n.name), MIN(t.title)\n" + + " ├─ group: \n" + + " └─ InnerJoin (estimated cost=2.010 rows=0) (actual rows=0 loops=1)\n" + " ├─ ((ci.movie_id = t.id) AND (t.id = mc.movie_id))\n" + " ├─ TableAlias(t)\n" + " │ └─ Table\n" + " │ ├─ name: title\n" + " │ └─ columns: [id title]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ (ci.role_id = rt.id)\n" + " ├─ Filter\n" + " │ ├─ (rt.role = 'actress')\n" + @@ -33125,7 +33125,7 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: role_type\n" + " │ └─ columns: [id role]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((n.id = ci.person_id) AND (an.person_id = n.id))\n" + " ├─ Filter\n" + " │ ├─ (n.gender = 'f')\n" + @@ -33133,21 +33133,21 @@ WHERE ci.note IN ('(voice)', " │ └─ Table\n" + " │ ├─ name: name\n" + " │ └─ columns: [id name gender]\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=2.010 rows=0)\n" + " ├─ ((ci.movie_id = mc.movie_id) AND (mc.company_id = cn.id))\n" + " ├─ TableAlias(mc)\n" + " │ └─ Table\n" + " │ ├─ name: movie_companies\n" + " │ └─ columns: [movie_id company_id]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=0)\n" + " ├─ Filter\n" + " │ ├─ (cn.country_code = '[us]')\n" + " │ └─ TableAlias(cn)\n" + " │ └─ Table\n" + " │ ├─ name: company_name\n" + " │ └─ columns: [id country_code]\n" + - " └─ LookupJoin\n" + - " ├─ InnerJoin\n" + + " └─ LookupJoin (estimated cost=24.000 rows=0)\n" + + " ├─ InnerJoin (estimated cost=2.010 rows=0)\n" + " │ ├─ (chn.id = ci.person_role_id)\n" + " │ ├─ Filter\n" + " │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + diff --git a/enginetest/queries/integration_plans.go b/enginetest/queries/integration_plans.go index 76be0579ab..bb2b3082af 100644 --- a/enginetest/queries/integration_plans.go +++ b/enginetest/queries/integration_plans.go @@ -237,6 +237,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (41-44)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Filter\n" + " │ ├─ ((TTDPM = 0) AND (FBSRS > 0))\n" + " │ └─ Project\n" + @@ -245,21 +247,23 @@ WHERE " │ └─ Project\n" + " │ ├─ columns: [count(ccefl.zh72s), min(ccefl.wgbrl), sum(ccefl.wgbrl), ccefl.ZH72S, ccefl.ZH72S as ZH72S, count(ccefl.zh72s) as JTOA7, min(ccefl.wgbrl) as TTDPM, sum(ccefl.wgbrl) as FBSRS]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNT(ccefl.ZH72S), MIN(ccefl.WGBRL), SUM(ccefl.WGBRL), ccefl.ZH72S)\n" + - " │ ├─ Grouping(ccefl.ZH72S)\n" + + " │ ├─ select: COUNT(ccefl.ZH72S), MIN(ccefl.WGBRL), SUM(ccefl.WGBRL), ccefl.ZH72S\n" + + " │ ├─ group: ccefl.ZH72S\n" + " │ └─ SubqueryAlias\n" + " │ ├─ name: ccefl\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (31-33)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + " │ │ ├─ cacheable: false\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (hddvb.UJ6XY = nd.id)\n" + " │ │ └─ IndexedTableAccess(HDDVB)\n" + @@ -273,8 +277,8 @@ WHERE " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (hddvb.UJ6XY = nd.id)\n" + " │ │ └─ IndexedTableAccess(HDDVB)\n" + @@ -301,6 +305,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (41-44)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Filter\n" + " │ ├─ ((TTDPM = 0) AND (FBSRS > 0))\n" + " │ └─ Project\n" + @@ -309,21 +315,23 @@ WHERE " │ └─ Project\n" + " │ ├─ columns: [count(ccefl.zh72s), min(ccefl.wgbrl), sum(ccefl.wgbrl), ccefl.ZH72S, ccefl.ZH72S as ZH72S, count(ccefl.zh72s) as JTOA7, min(ccefl.wgbrl) as TTDPM, sum(ccefl.wgbrl) as FBSRS]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNT(ccefl.ZH72S), MIN(ccefl.WGBRL), SUM(ccefl.WGBRL), ccefl.ZH72S)\n" + - " │ ├─ Grouping(ccefl.ZH72S)\n" + + " │ ├─ select: COUNT(ccefl.ZH72S), MIN(ccefl.WGBRL), SUM(ccefl.WGBRL), ccefl.ZH72S\n" + + " │ ├─ group: ccefl.ZH72S\n" + " │ └─ SubqueryAlias\n" + " │ ├─ name: ccefl\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (31-33)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + " │ │ ├─ cacheable: false\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (hddvb.UJ6XY = nd.id)\n" + " │ │ └─ IndexedTableAccess(HDDVB)\n" + @@ -337,8 +345,8 @@ WHERE " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (hddvb.UJ6XY = nd.id)\n" + " │ │ └─ IndexedTableAccess(HDDVB)\n" + @@ -1217,6 +1225,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (44-47)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Filter\n" + " │ ├─ ((BADTB = 0) AND (FLHXH > 0))\n" + " │ └─ Project\n" + @@ -1225,21 +1235,23 @@ WHERE " │ └─ Project\n" + " │ ├─ columns: [count(wooj5.zh72s), min(wooj5.lea4j), sum(wooj5.lea4j), wooj5.ZH72S, wooj5.ZH72S as ZH72S, count(wooj5.zh72s) as JTOA7, min(wooj5.lea4j) as BADTB, sum(wooj5.lea4j) as FLHXH]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNT(wooj5.ZH72S), MIN(wooj5.LEA4J), SUM(wooj5.LEA4J), wooj5.ZH72S)\n" + - " │ ├─ Grouping(wooj5.ZH72S)\n" + + " │ ├─ select: COUNT(wooj5.ZH72S), MIN(wooj5.LEA4J), SUM(wooj5.LEA4J), wooj5.ZH72S\n" + + " │ ├─ group: wooj5.ZH72S\n" + " │ └─ SubqueryAlias\n" + " │ ├─ name: wooj5\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (34-36)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + " │ │ ├─ cacheable: false\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (flqlp.LUEVY = nd.id)\n" + " │ │ └─ IndexedTableAccess(FLQLP)\n" + @@ -1253,8 +1265,8 @@ WHERE " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (flqlp.LUEVY = nd.id)\n" + " │ │ └─ IndexedTableAccess(FLQLP)\n" + @@ -1281,6 +1293,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (44-47)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Filter\n" + " │ ├─ ((BADTB = 0) AND (FLHXH > 0))\n" + " │ └─ Project\n" + @@ -1289,21 +1303,23 @@ WHERE " │ └─ Project\n" + " │ ├─ columns: [count(wooj5.zh72s), min(wooj5.lea4j), sum(wooj5.lea4j), wooj5.ZH72S, wooj5.ZH72S as ZH72S, count(wooj5.zh72s) as JTOA7, min(wooj5.lea4j) as BADTB, sum(wooj5.lea4j) as FLHXH]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNT(wooj5.ZH72S), MIN(wooj5.LEA4J), SUM(wooj5.LEA4J), wooj5.ZH72S)\n" + - " │ ├─ Grouping(wooj5.ZH72S)\n" + + " │ ├─ select: COUNT(wooj5.ZH72S), MIN(wooj5.LEA4J), SUM(wooj5.LEA4J), wooj5.ZH72S\n" + + " │ ├─ group: wooj5.ZH72S\n" + " │ └─ SubqueryAlias\n" + " │ ├─ name: wooj5\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (34-36)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + " │ │ ├─ cacheable: false\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (flqlp.LUEVY = nd.id)\n" + " │ │ └─ IndexedTableAccess(FLQLP)\n" + @@ -1317,8 +1333,8 @@ WHERE " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (flqlp.LUEVY = nd.id)\n" + " │ │ └─ IndexedTableAccess(FLQLP)\n" + @@ -1801,19 +1817,21 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (52)\n" + + " │ ├─ tableId: 6\n" + " │ └─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [ylksy.id as FDL23]\n" + - " │ └─ HashJoin\n" + + " │ └─ HashJoin (estimated cost=6095.040 rows=4802)\n" + " │ ├─ (ci.FTQLQ = ylksy.FTQLQ)\n" + - " │ ├─ LookupJoin\n" + + " │ ├─ LookupJoin (estimated cost=15846.600 rows=4802)\n" + " │ │ ├─ Project\n" + " │ │ │ ├─ columns: [OUBDL.id, OUBDL.FTQLQ, OUBDL.ZH72S, OUBDL.LJLUM, E2I7U.ZH72S]\n" + " │ │ │ └─ Filter\n" + " │ │ │ ├─ flqlp.NRURT IS NULL\n" + - " │ │ │ └─ LeftOuterHashJoinExcludingNulls\n" + + " │ │ │ └─ LeftOuterHashJoinExcludingNulls (estimated cost=381887.820 rows=35486780)\n" + " │ │ │ ├─ (ylksy.id = flqlp.NRURT)\n" + - " │ │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ LookupJoin (estimated cost=14907.300 rows=4802)\n" + " │ │ │ │ ├─ TableAlias(nd)\n" + " │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ ├─ name: E2I7U\n" + @@ -1858,19 +1876,21 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (52)\n" + + " │ ├─ tableId: 6\n" + " │ └─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [ylksy.id as FDL23]\n" + - " │ └─ HashJoin\n" + + " │ └─ HashJoin (estimated cost=6095.040 rows=4802) (actual rows=0 loops=1)\n" + " │ ├─ (ci.FTQLQ = ylksy.FTQLQ)\n" + - " │ ├─ LookupJoin\n" + + " │ ├─ LookupJoin (estimated cost=15846.600 rows=4802) (actual rows=0 loops=1)\n" + " │ │ ├─ Project\n" + " │ │ │ ├─ columns: [OUBDL.id, OUBDL.FTQLQ, OUBDL.ZH72S, OUBDL.LJLUM, E2I7U.ZH72S]\n" + " │ │ │ └─ Filter\n" + " │ │ │ ├─ flqlp.NRURT IS NULL\n" + - " │ │ │ └─ LeftOuterHashJoinExcludingNulls\n" + + " │ │ │ └─ LeftOuterHashJoinExcludingNulls (estimated cost=381887.820 rows=35486780) (actual rows=0 loops=1)\n" + " │ │ │ ├─ (ylksy.id = flqlp.NRURT)\n" + - " │ │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ LookupJoin (estimated cost=14907.300 rows=4802) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ TableAlias(nd)\n" + " │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ ├─ name: E2I7U\n" + @@ -2326,7 +2346,7 @@ WHERE " │ │ └─ HashLookup\n" + " │ │ ├─ left-key: (rn.HHVLX)\n" + " │ │ ├─ right-key: (zyutc.id)\n" + - " │ │ └─ MergeJoin\n" + + " │ │ └─ MergeJoin (estimated cost=15929.680 rows=11813)\n" + " │ │ ├─ cmp: (zyutc.BRQP2 = xlza5.id)\n" + " │ │ ├─ TableAlias(zyutc)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + @@ -2341,9 +2361,9 @@ WHERE " │ └─ HashLookup\n" + " │ ├─ left-key: (rn.WNUNU)\n" + " │ ├─ right-key: (pv6r5.id)\n" + - " │ └─ HashJoin\n" + + " │ └─ HashJoin (estimated cost=23575.260 rows=11813)\n" + " │ ├─ (nsplt.id = pv6r5.BRQP2)\n" + - " │ ├─ MergeJoin\n" + + " │ ├─ MergeJoin (estimated cost=15929.680 rows=11813)\n" + " │ │ ├─ cmp: (pv6r5.FFTBJ = lqncx.id)\n" + " │ │ ├─ TableAlias(pv6r5)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + @@ -2383,7 +2403,7 @@ WHERE " │ │ └─ HashLookup\n" + " │ │ ├─ left-key: (rn.HHVLX)\n" + " │ │ ├─ right-key: (zyutc.id)\n" + - " │ │ └─ MergeJoin\n" + + " │ │ └─ MergeJoin (estimated cost=15929.680 rows=11813)\n" + " │ │ ├─ cmp: (zyutc.BRQP2 = xlza5.id)\n" + " │ │ ├─ TableAlias(zyutc)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + @@ -2398,9 +2418,9 @@ WHERE " │ └─ HashLookup\n" + " │ ├─ left-key: (rn.WNUNU)\n" + " │ ├─ right-key: (pv6r5.id)\n" + - " │ └─ HashJoin\n" + + " │ └─ HashJoin (estimated cost=23575.260 rows=11813)\n" + " │ ├─ (nsplt.id = pv6r5.BRQP2)\n" + - " │ ├─ MergeJoin\n" + + " │ ├─ MergeJoin (estimated cost=15929.680 rows=11813)\n" + " │ │ ├─ cmp: (pv6r5.FFTBJ = lqncx.id)\n" + " │ │ ├─ TableAlias(pv6r5)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + @@ -2600,9 +2620,9 @@ WHERE " │ └─ HashLookup\n" + " │ ├─ left-key: (skpm6.BRQP2, skpm6.BRQP2, skpm6.BRQP2)\n" + " │ ├─ right-key: (sn.FFTBJ, v5say.id, cgfrz.id)\n" + - " │ └─ HashJoin\n" + + " │ └─ HashJoin (estimated cost=21767.820 rows=10041)\n" + " │ ├─ ((cgfrz.id = sn.FFTBJ) AND (sn.FFTBJ = v5say.id))\n" + - " │ ├─ MergeJoin\n" + + " │ ├─ MergeJoin (estimated cost=14122.240 rows=10041)\n" + " │ │ ├─ cmp: (sn.BRQP2 = oe56m.id)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ (sn.NUMK2 = 1)\n" + @@ -2619,7 +2639,7 @@ WHERE " │ └─ HashLookup\n" + " │ ├─ left-key: (sn.FFTBJ, sn.FFTBJ)\n" + " │ ├─ right-key: (cgfrz.id, v5say.id)\n" + - " │ └─ MergeJoin\n" + + " │ └─ MergeJoin (estimated cost=7799.260 rows=3842)\n" + " │ ├─ cmp: (cgfrz.id = v5say.id)\n" + " │ ├─ TableAlias(cgfrz)\n" + " │ │ └─ IndexedTableAccess(E2I7U)\n" + @@ -2658,9 +2678,9 @@ WHERE " │ └─ HashLookup\n" + " │ ├─ left-key: (skpm6.BRQP2, skpm6.BRQP2, skpm6.BRQP2)\n" + " │ ├─ right-key: (sn.FFTBJ, v5say.id, cgfrz.id)\n" + - " │ └─ HashJoin\n" + + " │ └─ HashJoin (estimated cost=21767.820 rows=10041)\n" + " │ ├─ ((cgfrz.id = sn.FFTBJ) AND (sn.FFTBJ = v5say.id))\n" + - " │ ├─ MergeJoin\n" + + " │ ├─ MergeJoin (estimated cost=14122.240 rows=10041)\n" + " │ │ ├─ cmp: (sn.BRQP2 = oe56m.id)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ (sn.NUMK2 = 1)\n" + @@ -2677,7 +2697,7 @@ WHERE " │ └─ HashLookup\n" + " │ ├─ left-key: (sn.FFTBJ, sn.FFTBJ)\n" + " │ ├─ right-key: (cgfrz.id, v5say.id)\n" + - " │ └─ MergeJoin\n" + + " │ └─ MergeJoin (estimated cost=7799.260 rows=3842)\n" + " │ ├─ cmp: (cgfrz.id = v5say.id)\n" + " │ ├─ TableAlias(cgfrz)\n" + " │ │ └─ IndexedTableAccess(E2I7U)\n" + @@ -2859,10 +2879,12 @@ WHERE " │ │ ├─ outerVisibility: true\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (30,31)\n" + + " │ │ ├─ tableId: 4\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [s5kbm.SSHPJ as SSHPJ, s5kbm.SFJ6L as SFJ6L]\n" + - " │ │ └─ LookupJoin\n" + + " │ │ └─ LookupJoin (estimated cost=12678.600 rows=3842)\n" + " │ │ ├─ TableAlias(nd)\n" + " │ │ │ └─ Table\n" + " │ │ │ ├─ name: E2I7U\n" + @@ -2924,10 +2946,12 @@ WHERE " │ │ ├─ outerVisibility: true\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (30,31)\n" + + " │ │ ├─ tableId: 4\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [s5kbm.SSHPJ as SSHPJ, s5kbm.SFJ6L as SFJ6L]\n" + - " │ │ └─ LookupJoin\n" + + " │ │ └─ LookupJoin (estimated cost=12678.600 rows=3842)\n" + " │ │ ├─ TableAlias(nd)\n" + " │ │ │ └─ Table\n" + " │ │ │ ├─ name: E2I7U\n" + @@ -3092,6 +3116,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (40-43)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Filter\n" + " │ ├─ ((B4OVH = 0) AND (R5CKX > 0))\n" + " │ └─ Project\n" + @@ -3100,21 +3126,23 @@ WHERE " │ └─ Project\n" + " │ ├─ columns: [count(tq57w.zh72s), min(tq57w.tj66d), sum(tq57w.tj66d), tq57w.ZH72S, tq57w.ZH72S as ZH72S, count(tq57w.zh72s) as JTOA7, min(tq57w.tj66d) as B4OVH, sum(tq57w.tj66d) as R5CKX]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNT(tq57w.ZH72S), MIN(tq57w.TJ66D), SUM(tq57w.TJ66D), tq57w.ZH72S)\n" + - " │ ├─ Grouping(tq57w.ZH72S)\n" + + " │ ├─ select: COUNT(tq57w.ZH72S), MIN(tq57w.TJ66D), SUM(tq57w.TJ66D), tq57w.ZH72S\n" + + " │ ├─ group: tq57w.ZH72S\n" + " │ └─ SubqueryAlias\n" + " │ ├─ name: tq57w\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (30-32)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + " │ │ ├─ cacheable: false\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + @@ -3128,8 +3156,8 @@ WHERE " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + @@ -3156,6 +3184,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (40-43)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Filter\n" + " │ ├─ ((B4OVH = 0) AND (R5CKX > 0))\n" + " │ └─ Project\n" + @@ -3164,21 +3194,23 @@ WHERE " │ └─ Project\n" + " │ ├─ columns: [count(tq57w.zh72s), min(tq57w.tj66d), sum(tq57w.tj66d), tq57w.ZH72S, tq57w.ZH72S as ZH72S, count(tq57w.zh72s) as JTOA7, min(tq57w.tj66d) as B4OVH, sum(tq57w.tj66d) as R5CKX]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNT(tq57w.ZH72S), MIN(tq57w.TJ66D), SUM(tq57w.TJ66D), tq57w.ZH72S)\n" + - " │ ├─ Grouping(tq57w.ZH72S)\n" + + " │ ├─ select: COUNT(tq57w.ZH72S), MIN(tq57w.TJ66D), SUM(tq57w.TJ66D), tq57w.ZH72S\n" + + " │ ├─ group: tq57w.ZH72S\n" + " │ └─ SubqueryAlias\n" + " │ ├─ name: tq57w\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (30-32)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + " │ │ ├─ cacheable: false\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + @@ -3192,8 +3224,8 @@ WHERE " │ │ └─ Project\n" + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + " │ │ └─ GroupBy\n" + - " │ │ ├─ SelectDeps(COUNT(1))\n" + - " │ │ ├─ Grouping()\n" + + " │ │ ├─ select: COUNT(1)\n" + + " │ │ ├─ group: \n" + " │ │ └─ Filter\n" + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + @@ -3900,7 +3932,7 @@ WHERE " └─ HashLookup\n" + " ├─ left-key: (mf.GXLUB)\n" + " ├─ right-key: (bs.id)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=5070.940 rows=2498)\n" + " ├─ cmp: (bs.IXUXU = cla.id)\n" + " ├─ TableAlias(bs)\n" + " │ └─ IndexedTableAccess(THNTS)\n" + @@ -3965,7 +3997,7 @@ WHERE " └─ HashLookup\n" + " ├─ left-key: (mf.GXLUB)\n" + " ├─ right-key: (bs.id)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=5070.940 rows=2498)\n" + " ├─ cmp: (bs.IXUXU = cla.id)\n" + " ├─ TableAlias(bs)\n" + " │ └─ IndexedTableAccess(THNTS)\n" + @@ -4656,6 +4688,8 @@ WHERE " │ │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ │ ├─ colSet: (124-129)\n" + + " │ │ │ │ │ ├─ tableId: 11\n" + " │ │ │ │ │ └─ Project\n" + " │ │ │ │ │ ├─ columns: [khjjo.BDNYB as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + " │ │ │ │ │ └─ HashJoin\n" + @@ -4734,6 +4768,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (207-212)\n" + + " │ ├─ tableId: 21\n" + " │ └─ Project\n" + " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + " │ │ ├─ cacheable: false\n" + @@ -4766,6 +4802,8 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (192-197)\n" + + " │ │ ├─ tableId: 19\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [sn.id as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + " │ │ └─ HashJoin\n" + @@ -4866,6 +4904,8 @@ WHERE " │ │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ │ ├─ colSet: (124-129)\n" + + " │ │ │ │ │ ├─ tableId: 11\n" + " │ │ │ │ │ └─ Project\n" + " │ │ │ │ │ ├─ columns: [khjjo.BDNYB as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + " │ │ │ │ │ └─ HashJoin\n" + @@ -4944,6 +4984,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (207-212)\n" + + " │ ├─ tableId: 21\n" + " │ └─ Project\n" + " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + " │ │ ├─ cacheable: false\n" + @@ -4976,6 +5018,8 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (192-197)\n" + + " │ │ ├─ tableId: 19\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [sn.id as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + " │ │ └─ HashJoin\n" + @@ -5513,6 +5557,8 @@ WHERE " │ │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ │ ├─ colSet: (124-129)\n" + + " │ │ │ │ │ ├─ tableId: 11\n" + " │ │ │ │ │ └─ Project\n" + " │ │ │ │ │ ├─ columns: [khjjo.BDNYB as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + " │ │ │ │ │ └─ LookupJoin\n" + @@ -5524,6 +5570,8 @@ WHERE " │ │ │ │ │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ │ │ │ │ ├─ colSet: (92-94)\n" + + " │ │ │ │ │ │ │ │ ├─ tableId: 7\n" + " │ │ │ │ │ │ │ │ └─ Distinct\n" + " │ │ │ │ │ │ │ │ └─ Project\n" + " │ │ │ │ │ │ │ │ ├─ columns: [mf.M22QN as M22QN, sn.id as BDNYB, mf.LUEVY as LUEVY]\n" + @@ -5584,6 +5632,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (207-212)\n" + + " │ ├─ tableId: 21\n" + " │ └─ Project\n" + " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + " │ │ ├─ cacheable: false\n" + @@ -5616,6 +5666,8 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (192-197)\n" + + " │ │ ├─ tableId: 19\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [sn.id as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + " │ │ └─ HashJoin\n" + @@ -5716,6 +5768,8 @@ WHERE " │ │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ │ ├─ colSet: (124-129)\n" + + " │ │ │ │ │ ├─ tableId: 11\n" + " │ │ │ │ │ └─ Project\n" + " │ │ │ │ │ ├─ columns: [khjjo.BDNYB as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + " │ │ │ │ │ └─ LookupJoin\n" + @@ -5727,6 +5781,8 @@ WHERE " │ │ │ │ │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ │ │ │ │ ├─ colSet: (92-94)\n" + + " │ │ │ │ │ │ │ │ ├─ tableId: 7\n" + " │ │ │ │ │ │ │ │ └─ Distinct\n" + " │ │ │ │ │ │ │ │ └─ Project\n" + " │ │ │ │ │ │ │ │ ├─ columns: [mf.M22QN as M22QN, sn.id as BDNYB, mf.LUEVY as LUEVY]\n" + @@ -5787,6 +5843,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (207-212)\n" + + " │ ├─ tableId: 21\n" + " │ └─ Project\n" + " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + " │ │ ├─ cacheable: false\n" + @@ -5819,6 +5877,8 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (192-197)\n" + + " │ │ ├─ tableId: 19\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [sn.id as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + " │ │ └─ HashJoin\n" + @@ -5984,13 +6044,15 @@ WHERE " └─ Sort(Y3IOU ASC)\n" + " └─ Project\n" + " ├─ columns: [nb6pj.Y3IOU, nb6pj.id, nb6pj.BRQP2, nb6pj.FFTBJ, nb6pj.NUMK2, nb6pj.LETOE, s7egw.id, s7egw.DKCAJ, s7egw.KNG7T, s7egw.TW55N, s7egw.QRQXW, s7egw.ECXAJ, s7egw.FGG57, s7egw.ZH72S, s7egw.FSK67, s7egw.XQDYT, s7egw.TCE7A, s7egw.IWV2H, s7egw.HPCMS, s7egw.N5CC2, s7egw.FHCYT, s7egw.ETAQ7, s7egw.A75X7, tymvl.id, tymvl.DKCAJ, tymvl.KNG7T, tymvl.TW55N, tymvl.QRQXW, tymvl.ECXAJ, tymvl.FGG57, tymvl.ZH72S, tymvl.FSK67, tymvl.XQDYT, tymvl.TCE7A, tymvl.IWV2H, tymvl.HPCMS, tymvl.N5CC2, tymvl.FHCYT, tymvl.ETAQ7, tymvl.A75X7, nb6pj.Y3IOU as Y3IOU, s7egw.TW55N as FJVD7, tymvl.TW55N as KBXXJ, nb6pj.NUMK2 as NUMK2, nb6pj.LETOE as LETOE]\n" + - " └─ LookupJoin\n" + - " ├─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=330.000 rows=100)\n" + + " ├─ LookupJoin (estimated cost=330.000 rows=100)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: nb6pj\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (13-18)\n" + + " │ │ ├─ tableId: 2\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [row_number() over ( order by noxn3.id asc) as Y3IOU, noxn3.id, noxn3.BRQP2, noxn3.FFTBJ, noxn3.NUMK2, noxn3.LETOE]\n" + " │ │ └─ Sort(noxn3.id ASC)\n" + @@ -6014,13 +6076,15 @@ WHERE " └─ Sort(Y3IOU ASC)\n" + " └─ Project\n" + " ├─ columns: [nb6pj.Y3IOU, nb6pj.id, nb6pj.BRQP2, nb6pj.FFTBJ, nb6pj.NUMK2, nb6pj.LETOE, s7egw.id, s7egw.DKCAJ, s7egw.KNG7T, s7egw.TW55N, s7egw.QRQXW, s7egw.ECXAJ, s7egw.FGG57, s7egw.ZH72S, s7egw.FSK67, s7egw.XQDYT, s7egw.TCE7A, s7egw.IWV2H, s7egw.HPCMS, s7egw.N5CC2, s7egw.FHCYT, s7egw.ETAQ7, s7egw.A75X7, tymvl.id, tymvl.DKCAJ, tymvl.KNG7T, tymvl.TW55N, tymvl.QRQXW, tymvl.ECXAJ, tymvl.FGG57, tymvl.ZH72S, tymvl.FSK67, tymvl.XQDYT, tymvl.TCE7A, tymvl.IWV2H, tymvl.HPCMS, tymvl.N5CC2, tymvl.FHCYT, tymvl.ETAQ7, tymvl.A75X7, nb6pj.Y3IOU as Y3IOU, s7egw.TW55N as FJVD7, tymvl.TW55N as KBXXJ, nb6pj.NUMK2 as NUMK2, nb6pj.LETOE as LETOE]\n" + - " └─ LookupJoin\n" + - " ├─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=330.000 rows=100) (actual rows=0 loops=1)\n" + + " ├─ LookupJoin (estimated cost=330.000 rows=100) (actual rows=0 loops=1)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: nb6pj\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (13-18)\n" + + " │ │ ├─ tableId: 2\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [row_number() over ( order by noxn3.id asc) as Y3IOU, noxn3.id, noxn3.BRQP2, noxn3.FFTBJ, noxn3.NUMK2, noxn3.LETOE]\n" + " │ │ └─ Sort(noxn3.id ASC)\n" + @@ -6104,12 +6168,14 @@ WHERE " └─ Sort(TW55N ASC, Y3IOU ASC)\n" + " └─ Project\n" + " ├─ columns: [nb6pj.Y3IOU, nb6pj.id, nb6pj.BRQP2, nb6pj.FFTBJ, nb6pj.NUMK2, nb6pj.LETOE, nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.TW55N as TW55N, nb6pj.Y3IOU as Y3IOU]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=330.000 rows=100)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: nb6pj\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (13-18)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [row_number() over ( order by noxn3.id asc) as Y3IOU, noxn3.id, noxn3.BRQP2, noxn3.FFTBJ, noxn3.NUMK2, noxn3.LETOE]\n" + " │ └─ Sort(noxn3.id ASC)\n" + @@ -6128,12 +6194,14 @@ WHERE " └─ Sort(TW55N ASC, Y3IOU ASC)\n" + " └─ Project\n" + " ├─ columns: [nb6pj.Y3IOU, nb6pj.id, nb6pj.BRQP2, nb6pj.FFTBJ, nb6pj.NUMK2, nb6pj.LETOE, nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.TW55N as TW55N, nb6pj.Y3IOU as Y3IOU]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=330.000 rows=100) (actual rows=0 loops=1)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: nb6pj\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (13-18)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [row_number() over ( order by noxn3.id asc) as Y3IOU, noxn3.id, noxn3.BRQP2, noxn3.FFTBJ, noxn3.NUMK2, noxn3.LETOE]\n" + " │ └─ Sort(noxn3.id ASC)\n" + @@ -6353,9 +6421,9 @@ WHERE ExpectedEstimates: "Project\n" + " ├─ columns: [nd.TW55N, il.LIILR, il.KSFXH, il.KLMAU, il.ecm]\n" + " └─ Sort(nd.TW55N ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=236.520 rows=226)\n" + " ├─ (nd.DKCAJ = nt.id)\n" + - " ├─ LookupJoin\n" + + " ├─ LookupJoin (estimated cost=745.800 rows=226)\n" + " │ ├─ TableAlias(il)\n" + " │ │ └─ Table\n" + " │ │ ├─ name: RLOHD\n" + @@ -6377,9 +6445,9 @@ WHERE ExpectedAnalysis: "Project\n" + " ├─ columns: [nd.TW55N, il.LIILR, il.KSFXH, il.KLMAU, il.ecm]\n" + " └─ Sort(nd.TW55N ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=236.520 rows=226) (actual rows=0 loops=1)\n" + " ├─ (nd.DKCAJ = nt.id)\n" + - " ├─ LookupJoin\n" + + " ├─ LookupJoin (estimated cost=745.800 rows=226) (actual rows=0 loops=1)\n" + " │ ├─ TableAlias(il)\n" + " │ │ └─ Table\n" + " │ │ ├─ name: RLOHD\n" + @@ -6594,12 +6662,14 @@ WHERE ExpectedEstimates: "Project\n" + " ├─ columns: [athcu.T4IBQ as T4IBQ, athcu.TW55N as TW55N, CASE WHEN fc.OZTQF IS NULL THEN 0 WHEN (athcu.SJ5DU IN ('log', 'com', 'ex')) THEN 0 WHEN (athcu.SOWRY = 'CRZ2X') THEN 0 WHEN (athcu.SOWRY = 'z') THEN fc.OZTQF WHEN (athcu.SOWRY = 'o') THEN (fc.OZTQF - 1) END as OZTQF]\n" + " └─ Sort(athcu.YYKXN ASC)\n" + - " └─ LeftOuterLookupJoin\n" + + " └─ LeftOuterLookupJoin (estimated cost=401.300 rows=125)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: athcu\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (63-68)\n" + + " │ ├─ tableId: 6\n" + " │ └─ Project\n" + " │ ├─ columns: [tmdtp.B2TX3, tmdtp.T4IBQ, nd.id as YYKXN, nd.TW55N as TW55N, nd.FSK67 as SOWRY, Subquery\n" + " │ │ ├─ cacheable: false\n" + @@ -6626,7 +6696,7 @@ WHERE " │ │ ├─ columns: [id dzlim]\n" + " │ │ └─ keys: nd.DKCAJ\n" + " │ │ as SJ5DU]\n" + - " │ └─ CrossHashJoin\n" + + " │ └─ CrossHashJoin (estimated cost=4181.660 rows=124)\n" + " │ ├─ TableAlias(nd)\n" + " │ │ └─ Table\n" + " │ │ └─ name: E2I7U\n" + @@ -6664,12 +6734,14 @@ WHERE ExpectedAnalysis: "Project\n" + " ├─ columns: [athcu.T4IBQ as T4IBQ, athcu.TW55N as TW55N, CASE WHEN fc.OZTQF IS NULL THEN 0 WHEN (athcu.SJ5DU IN ('log', 'com', 'ex')) THEN 0 WHEN (athcu.SOWRY = 'CRZ2X') THEN 0 WHEN (athcu.SOWRY = 'z') THEN fc.OZTQF WHEN (athcu.SOWRY = 'o') THEN (fc.OZTQF - 1) END as OZTQF]\n" + " └─ Sort(athcu.YYKXN ASC)\n" + - " └─ LeftOuterLookupJoin\n" + + " └─ LeftOuterLookupJoin (estimated cost=401.300 rows=125) (actual rows=0 loops=1)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: athcu\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (63-68)\n" + + " │ ├─ tableId: 6\n" + " │ └─ Project\n" + " │ ├─ columns: [tmdtp.B2TX3, tmdtp.T4IBQ, nd.id as YYKXN, nd.TW55N as TW55N, nd.FSK67 as SOWRY, Subquery\n" + " │ │ ├─ cacheable: false\n" + @@ -6696,7 +6768,7 @@ WHERE " │ │ ├─ columns: [id dzlim]\n" + " │ │ └─ keys: nd.DKCAJ\n" + " │ │ as SJ5DU]\n" + - " │ └─ CrossHashJoin\n" + + " │ └─ CrossHashJoin (estimated cost=4181.660 rows=124) (actual rows=0 loops=1)\n" + " │ ├─ TableAlias(nd)\n" + " │ │ └─ Table\n" + " │ │ └─ name: E2I7U\n" + @@ -7228,23 +7300,27 @@ WHERE ExpectedEstimates: "Project\n" + " ├─ columns: [xprw6.T4IBQ as T4IBQ, xprw6.ECUWU as ECUWU, sum(xprw6.b5ouf) as B5OUF, sum(xprw6.sp4si) as SP4SI]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(xprw6.B5OUF), SUM(xprw6.SP4SI), xprw6.T4IBQ, xprw6.ECUWU)\n" + - " ├─ Grouping(xprw6.T4IBQ, xprw6.ECUWU)\n" + + " ├─ select: SUM(xprw6.B5OUF), SUM(xprw6.SP4SI), xprw6.T4IBQ, xprw6.ECUWU\n" + + " ├─ group: xprw6.T4IBQ, xprw6.ECUWU\n" + " └─ SubqueryAlias\n" + " ├─ name: xprw6\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (221-225)\n" + + " ├─ tableId: 25\n" + " └─ Project\n" + " ├─ columns: [nrfj3.T4IBQ as T4IBQ, nrfj3.ECUWU as ECUWU, nrfj3.GSTQA as GSTQA, nrfj3.B5OUF as B5OUF, sum(case when ((nrfj3.oztqf < 0.5) or (nrfj3.yhylk = 0)) then 1 else 0 end) as SP4SI]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(CASE WHEN ((nrfj3.OZTQF < 0.5) OR (nrfj3.YHYLK = 0)) THEN 1 ELSE 0 END), nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF)\n" + - " ├─ Grouping(nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF)\n" + + " ├─ select: SUM(CASE WHEN ((nrfj3.OZTQF < 0.5) OR (nrfj3.YHYLK = 0)) THEN 1 ELSE 0 END), nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF\n" + + " ├─ group: nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF\n" + " └─ SubqueryAlias\n" + " ├─ name: nrfj3\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (208-214)\n" + + " ├─ tableId: 24\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [ax7fv.T4IBQ, ax7fv.ECUWU, ax7fv.GSTQA, ax7fv.B5OUF, ax7fv.TW55N, ax7fv.OZTQF, ax7fv.YHYLK]\n" + @@ -7253,27 +7329,31 @@ WHERE " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (201-207)\n" + + " ├─ tableId: 23\n" + " └─ Project\n" + " ├─ columns: [bs.T4IBQ as T4IBQ, pa.DZLIM as ECUWU, pga.DZLIM as GSTQA, pog.B5OUF, fc.OZTQF, f26zw.YHYLK, nd.TW55N as TW55N]\n" + " └─ Filter\n" + " ├─ (ms.D237E = 1)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=140.300 rows=6)\n" + " ├─ (nd.HPCMS = nma.id)\n" + - " ├─ LeftOuterHashJoin\n" + + " ├─ LeftOuterHashJoin (estimated cost=458.800 rows=124)\n" + " │ ├─ ((f26zw.T4IBQ = bs.T4IBQ) AND (f26zw.BRQP2 = nd.id))\n" + - " │ ├─ LeftOuterLookupJoin\n" + - " │ │ ├─ LeftOuterHashJoin\n" + + " │ ├─ LeftOuterLookupJoin (estimated cost=497.600 rows=156)\n" + + " │ │ ├─ LeftOuterHashJoin (estimated cost=516.250 rows=125)\n" + " │ │ │ ├─ (ms.GXLUB = bs.id)\n" + " │ │ │ ├─ SubqueryAlias\n" + " │ │ │ │ ├─ name: bs\n" + " │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (74,75)\n" + + " │ │ │ │ ├─ tableId: 9\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (T4IBQ HASH IN ('SQ1'))\n" + " │ │ │ │ └─ Project\n" + " │ │ │ │ ├─ columns: [thnts.id, yk2gw.FTQLQ as T4IBQ]\n" + - " │ │ │ │ └─ MergeJoin\n" + + " │ │ │ │ └─ MergeJoin (estimated cost=5070.940 rows=2498)\n" + " │ │ │ │ ├─ cmp: (thnts.IXUXU = yk2gw.id)\n" + " │ │ │ │ ├─ IndexedTableAccess(THNTS)\n" + " │ │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + @@ -7286,12 +7366,12 @@ WHERE " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (bs.id)\n" + " │ │ │ ├─ right-key: (ms.GXLUB)\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ HashJoin\n" + + " │ │ │ └─ LookupJoin (estimated cost=455.400 rows=138)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=449.100 rows=138)\n" + + " │ │ │ │ ├─ HashJoin (estimated cost=146.220 rows=111)\n" + " │ │ │ │ │ ├─ (pog.XVSBH = pga.id)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=4212.000 rows=111)\n" + + " │ │ │ │ │ │ ├─ MergeJoin (estimated cost=4089.460 rows=3936)\n" + " │ │ │ │ │ │ │ ├─ cmp: (ms.CH3FR = pa.id)\n" + " │ │ │ │ │ │ │ ├─ TableAlias(ms)\n" + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + @@ -7349,6 +7429,8 @@ WHERE " │ │ │ ├─ outerVisibility: false\n" + " │ │ │ ├─ isLateral: false\n" + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (168-172)\n" + + " │ │ │ ├─ tableId: 17\n" + " │ │ │ └─ Project\n" + " │ │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.BRQP2, mf.id as Z7CP5, mf.FSDY2, nma.DZLIM as IDWIO]\n" + " │ │ │ └─ HashJoin\n" + @@ -7420,23 +7502,27 @@ WHERE ExpectedAnalysis: "Project\n" + " ├─ columns: [xprw6.T4IBQ as T4IBQ, xprw6.ECUWU as ECUWU, sum(xprw6.b5ouf) as B5OUF, sum(xprw6.sp4si) as SP4SI]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(xprw6.B5OUF), SUM(xprw6.SP4SI), xprw6.T4IBQ, xprw6.ECUWU)\n" + - " ├─ Grouping(xprw6.T4IBQ, xprw6.ECUWU)\n" + + " ├─ select: SUM(xprw6.B5OUF), SUM(xprw6.SP4SI), xprw6.T4IBQ, xprw6.ECUWU\n" + + " ├─ group: xprw6.T4IBQ, xprw6.ECUWU\n" + " └─ SubqueryAlias\n" + " ├─ name: xprw6\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (221-225)\n" + + " ├─ tableId: 25\n" + " └─ Project\n" + " ├─ columns: [nrfj3.T4IBQ as T4IBQ, nrfj3.ECUWU as ECUWU, nrfj3.GSTQA as GSTQA, nrfj3.B5OUF as B5OUF, sum(case when ((nrfj3.oztqf < 0.5) or (nrfj3.yhylk = 0)) then 1 else 0 end) as SP4SI]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(CASE WHEN ((nrfj3.OZTQF < 0.5) OR (nrfj3.YHYLK = 0)) THEN 1 ELSE 0 END), nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF)\n" + - " ├─ Grouping(nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF)\n" + + " ├─ select: SUM(CASE WHEN ((nrfj3.OZTQF < 0.5) OR (nrfj3.YHYLK = 0)) THEN 1 ELSE 0 END), nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF\n" + + " ├─ group: nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF\n" + " └─ SubqueryAlias\n" + " ├─ name: nrfj3\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (208-214)\n" + + " ├─ tableId: 24\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [ax7fv.T4IBQ, ax7fv.ECUWU, ax7fv.GSTQA, ax7fv.B5OUF, ax7fv.TW55N, ax7fv.OZTQF, ax7fv.YHYLK]\n" + @@ -7445,27 +7531,31 @@ WHERE " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (201-207)\n" + + " ├─ tableId: 23\n" + " └─ Project\n" + " ├─ columns: [bs.T4IBQ as T4IBQ, pa.DZLIM as ECUWU, pga.DZLIM as GSTQA, pog.B5OUF, fc.OZTQF, f26zw.YHYLK, nd.TW55N as TW55N]\n" + " └─ Filter\n" + " ├─ (ms.D237E = 1)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=140.300 rows=6) (actual rows=0 loops=1)\n" + " ├─ (nd.HPCMS = nma.id)\n" + - " ├─ LeftOuterHashJoin\n" + + " ├─ LeftOuterHashJoin (estimated cost=458.800 rows=124) (actual rows=0 loops=1)\n" + " │ ├─ ((f26zw.T4IBQ = bs.T4IBQ) AND (f26zw.BRQP2 = nd.id))\n" + - " │ ├─ LeftOuterLookupJoin\n" + - " │ │ ├─ LeftOuterHashJoin\n" + + " │ ├─ LeftOuterLookupJoin (estimated cost=497.600 rows=156) (actual rows=0 loops=1)\n" + + " │ │ ├─ LeftOuterHashJoin (estimated cost=516.250 rows=125) (actual rows=0 loops=1)\n" + " │ │ │ ├─ (ms.GXLUB = bs.id)\n" + " │ │ │ ├─ SubqueryAlias\n" + " │ │ │ │ ├─ name: bs\n" + " │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (74,75)\n" + + " │ │ │ │ ├─ tableId: 9\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (T4IBQ HASH IN ('SQ1'))\n" + " │ │ │ │ └─ Project\n" + " │ │ │ │ ├─ columns: [thnts.id, yk2gw.FTQLQ as T4IBQ]\n" + - " │ │ │ │ └─ MergeJoin\n" + + " │ │ │ │ └─ MergeJoin (estimated cost=5070.940 rows=2498) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ cmp: (thnts.IXUXU = yk2gw.id)\n" + " │ │ │ │ ├─ IndexedTableAccess(THNTS)\n" + " │ │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + @@ -7478,12 +7568,12 @@ WHERE " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (bs.id)\n" + " │ │ │ ├─ right-key: (ms.GXLUB)\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ HashJoin\n" + + " │ │ │ └─ LookupJoin (estimated cost=455.400 rows=138)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=449.100 rows=138)\n" + + " │ │ │ │ ├─ HashJoin (estimated cost=146.220 rows=111)\n" + " │ │ │ │ │ ├─ (pog.XVSBH = pga.id)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=4212.000 rows=111)\n" + + " │ │ │ │ │ │ ├─ MergeJoin (estimated cost=4089.460 rows=3936)\n" + " │ │ │ │ │ │ │ ├─ cmp: (ms.CH3FR = pa.id)\n" + " │ │ │ │ │ │ │ ├─ TableAlias(ms)\n" + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + @@ -7541,6 +7631,8 @@ WHERE " │ │ │ ├─ outerVisibility: false\n" + " │ │ │ ├─ isLateral: false\n" + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (168-172)\n" + + " │ │ │ ├─ tableId: 17\n" + " │ │ │ └─ Project\n" + " │ │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.BRQP2, mf.id as Z7CP5, mf.FSDY2, nma.DZLIM as IDWIO]\n" + " │ │ │ └─ HashJoin\n" + @@ -8105,23 +8197,27 @@ WHERE ExpectedEstimates: "Project\n" + " ├─ columns: [xprw6.T4IBQ as T4IBQ, xprw6.ECUWU as ECUWU, sum(xprw6.b5ouf) as B5OUF, sum(xprw6.sp4si) as SP4SI]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(xprw6.B5OUF), SUM(xprw6.SP4SI), xprw6.T4IBQ, xprw6.ECUWU)\n" + - " ├─ Grouping(xprw6.T4IBQ, xprw6.ECUWU)\n" + + " ├─ select: SUM(xprw6.B5OUF), SUM(xprw6.SP4SI), xprw6.T4IBQ, xprw6.ECUWU\n" + + " ├─ group: xprw6.T4IBQ, xprw6.ECUWU\n" + " └─ SubqueryAlias\n" + " ├─ name: xprw6\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (221-225)\n" + + " ├─ tableId: 25\n" + " └─ Project\n" + " ├─ columns: [nrfj3.T4IBQ as T4IBQ, nrfj3.ECUWU as ECUWU, nrfj3.GSTQA as GSTQA, nrfj3.B5OUF as B5OUF, sum(case when ((nrfj3.oztqf < 0.5) or (nrfj3.yhylk = 0)) then 1 else 0 end) as SP4SI]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(CASE WHEN ((nrfj3.OZTQF < 0.5) OR (nrfj3.YHYLK = 0)) THEN 1 ELSE 0 END), nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF)\n" + - " ├─ Grouping(nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF)\n" + + " ├─ select: SUM(CASE WHEN ((nrfj3.OZTQF < 0.5) OR (nrfj3.YHYLK = 0)) THEN 1 ELSE 0 END), nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF\n" + + " ├─ group: nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF\n" + " └─ SubqueryAlias\n" + " ├─ name: nrfj3\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (208-214)\n" + + " ├─ tableId: 24\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [ax7fv.T4IBQ, ax7fv.ECUWU, ax7fv.GSTQA, ax7fv.B5OUF, ax7fv.TW55N, ax7fv.OZTQF, ax7fv.YHYLK]\n" + @@ -8130,27 +8226,31 @@ WHERE " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (201-207)\n" + + " ├─ tableId: 23\n" + " └─ Project\n" + " ├─ columns: [bs.T4IBQ as T4IBQ, pa.DZLIM as ECUWU, pga.DZLIM as GSTQA, pog.B5OUF, fc.OZTQF, f26zw.YHYLK, nd.TW55N as TW55N]\n" + " └─ Filter\n" + " ├─ (ms.D237E = 1)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=140.300 rows=6)\n" + " ├─ (nd.HPCMS = nma.id)\n" + - " ├─ LeftOuterHashJoin\n" + + " ├─ LeftOuterHashJoin (estimated cost=458.800 rows=124)\n" + " │ ├─ ((f26zw.T4IBQ = bs.T4IBQ) AND (f26zw.BRQP2 = nd.id))\n" + - " │ ├─ LeftOuterLookupJoin\n" + - " │ │ ├─ LeftOuterHashJoin\n" + + " │ ├─ LeftOuterLookupJoin (estimated cost=497.600 rows=156)\n" + + " │ │ ├─ LeftOuterHashJoin (estimated cost=516.250 rows=125)\n" + " │ │ │ ├─ (ms.GXLUB = bs.id)\n" + " │ │ │ ├─ SubqueryAlias\n" + " │ │ │ │ ├─ name: bs\n" + " │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (74,75)\n" + + " │ │ │ │ ├─ tableId: 9\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (T4IBQ HASH IN ('SQ1'))\n" + " │ │ │ │ └─ Project\n" + " │ │ │ │ ├─ columns: [thnts.id, yk2gw.FTQLQ as T4IBQ]\n" + - " │ │ │ │ └─ MergeJoin\n" + + " │ │ │ │ └─ MergeJoin (estimated cost=5070.940 rows=2498)\n" + " │ │ │ │ ├─ cmp: (thnts.IXUXU = yk2gw.id)\n" + " │ │ │ │ ├─ IndexedTableAccess(THNTS)\n" + " │ │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + @@ -8163,12 +8263,12 @@ WHERE " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (bs.id)\n" + " │ │ │ ├─ right-key: (ms.GXLUB)\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ HashJoin\n" + + " │ │ │ └─ LookupJoin (estimated cost=455.400 rows=138)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=449.100 rows=138)\n" + + " │ │ │ │ ├─ HashJoin (estimated cost=146.220 rows=111)\n" + " │ │ │ │ │ ├─ (pog.XVSBH = pga.id)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=4212.000 rows=111)\n" + + " │ │ │ │ │ │ ├─ MergeJoin (estimated cost=4089.460 rows=3936)\n" + " │ │ │ │ │ │ │ ├─ cmp: (ms.CH3FR = pa.id)\n" + " │ │ │ │ │ │ │ ├─ TableAlias(ms)\n" + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + @@ -8226,6 +8326,8 @@ WHERE " │ │ │ ├─ outerVisibility: false\n" + " │ │ │ ├─ isLateral: false\n" + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (168-172)\n" + + " │ │ │ ├─ tableId: 17\n" + " │ │ │ └─ Project\n" + " │ │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.BRQP2, mf.id as Z7CP5, mf.FSDY2, nma.DZLIM as IDWIO]\n" + " │ │ │ └─ HashJoin\n" + @@ -8298,23 +8400,27 @@ WHERE ExpectedAnalysis: "Project\n" + " ├─ columns: [xprw6.T4IBQ as T4IBQ, xprw6.ECUWU as ECUWU, sum(xprw6.b5ouf) as B5OUF, sum(xprw6.sp4si) as SP4SI]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(xprw6.B5OUF), SUM(xprw6.SP4SI), xprw6.T4IBQ, xprw6.ECUWU)\n" + - " ├─ Grouping(xprw6.T4IBQ, xprw6.ECUWU)\n" + + " ├─ select: SUM(xprw6.B5OUF), SUM(xprw6.SP4SI), xprw6.T4IBQ, xprw6.ECUWU\n" + + " ├─ group: xprw6.T4IBQ, xprw6.ECUWU\n" + " └─ SubqueryAlias\n" + " ├─ name: xprw6\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (221-225)\n" + + " ├─ tableId: 25\n" + " └─ Project\n" + " ├─ columns: [nrfj3.T4IBQ as T4IBQ, nrfj3.ECUWU as ECUWU, nrfj3.GSTQA as GSTQA, nrfj3.B5OUF as B5OUF, sum(case when ((nrfj3.oztqf < 0.5) or (nrfj3.yhylk = 0)) then 1 else 0 end) as SP4SI]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(CASE WHEN ((nrfj3.OZTQF < 0.5) OR (nrfj3.YHYLK = 0)) THEN 1 ELSE 0 END), nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF)\n" + - " ├─ Grouping(nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF)\n" + + " ├─ select: SUM(CASE WHEN ((nrfj3.OZTQF < 0.5) OR (nrfj3.YHYLK = 0)) THEN 1 ELSE 0 END), nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF\n" + + " ├─ group: nrfj3.T4IBQ, nrfj3.ECUWU, nrfj3.GSTQA, nrfj3.B5OUF\n" + " └─ SubqueryAlias\n" + " ├─ name: nrfj3\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (208-214)\n" + + " ├─ tableId: 24\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [ax7fv.T4IBQ, ax7fv.ECUWU, ax7fv.GSTQA, ax7fv.B5OUF, ax7fv.TW55N, ax7fv.OZTQF, ax7fv.YHYLK]\n" + @@ -8323,27 +8429,31 @@ WHERE " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (201-207)\n" + + " ├─ tableId: 23\n" + " └─ Project\n" + " ├─ columns: [bs.T4IBQ as T4IBQ, pa.DZLIM as ECUWU, pga.DZLIM as GSTQA, pog.B5OUF, fc.OZTQF, f26zw.YHYLK, nd.TW55N as TW55N]\n" + " └─ Filter\n" + " ├─ (ms.D237E = 1)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=140.300 rows=6) (actual rows=0 loops=1)\n" + " ├─ (nd.HPCMS = nma.id)\n" + - " ├─ LeftOuterHashJoin\n" + + " ├─ LeftOuterHashJoin (estimated cost=458.800 rows=124) (actual rows=0 loops=1)\n" + " │ ├─ ((f26zw.T4IBQ = bs.T4IBQ) AND (f26zw.BRQP2 = nd.id))\n" + - " │ ├─ LeftOuterLookupJoin\n" + - " │ │ ├─ LeftOuterHashJoin\n" + + " │ ├─ LeftOuterLookupJoin (estimated cost=497.600 rows=156) (actual rows=0 loops=1)\n" + + " │ │ ├─ LeftOuterHashJoin (estimated cost=516.250 rows=125) (actual rows=0 loops=1)\n" + " │ │ │ ├─ (ms.GXLUB = bs.id)\n" + " │ │ │ ├─ SubqueryAlias\n" + " │ │ │ │ ├─ name: bs\n" + " │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (74,75)\n" + + " │ │ │ │ ├─ tableId: 9\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (T4IBQ HASH IN ('SQ1'))\n" + " │ │ │ │ └─ Project\n" + " │ │ │ │ ├─ columns: [thnts.id, yk2gw.FTQLQ as T4IBQ]\n" + - " │ │ │ │ └─ MergeJoin\n" + + " │ │ │ │ └─ MergeJoin (estimated cost=5070.940 rows=2498) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ cmp: (thnts.IXUXU = yk2gw.id)\n" + " │ │ │ │ ├─ IndexedTableAccess(THNTS)\n" + " │ │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + @@ -8356,12 +8466,12 @@ WHERE " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (bs.id)\n" + " │ │ │ ├─ right-key: (ms.GXLUB)\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ HashJoin\n" + + " │ │ │ └─ LookupJoin (estimated cost=455.400 rows=138)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=449.100 rows=138)\n" + + " │ │ │ │ ├─ HashJoin (estimated cost=146.220 rows=111)\n" + " │ │ │ │ │ ├─ (pog.XVSBH = pga.id)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=4212.000 rows=111)\n" + + " │ │ │ │ │ │ ├─ MergeJoin (estimated cost=4089.460 rows=3936)\n" + " │ │ │ │ │ │ │ ├─ cmp: (ms.CH3FR = pa.id)\n" + " │ │ │ │ │ │ │ ├─ TableAlias(ms)\n" + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + @@ -8419,6 +8529,8 @@ WHERE " │ │ │ ├─ outerVisibility: false\n" + " │ │ │ ├─ isLateral: false\n" + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (168-172)\n" + + " │ │ │ ├─ tableId: 17\n" + " │ │ │ └─ Project\n" + " │ │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.BRQP2, mf.id as Z7CP5, mf.FSDY2, nma.DZLIM as IDWIO]\n" + " │ │ │ └─ HashJoin\n" + @@ -8555,13 +8667,15 @@ WHERE ExpectedEstimates: "Project\n" + " ├─ columns: [tusay.Y3IOU as RWGEU]\n" + " └─ Sort(xj2rd.Y46B2 ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=402.250 rows=125)\n" + " ├─ (xj2rd.WNUNU = tusay.XLFIA)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: xj2rd\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (10-12)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [qywqd.id as Y46B2, qywqd.WNUNU as WNUNU, qywqd.HVHRZ as HVHRZ]\n" + " │ └─ Table\n" + @@ -8586,13 +8700,15 @@ WHERE ExpectedAnalysis: "Project\n" + " ├─ columns: [tusay.Y3IOU as RWGEU]\n" + " └─ Sort(xj2rd.Y46B2 ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=402.250 rows=125) (actual rows=0 loops=1)\n" + " ├─ (xj2rd.WNUNU = tusay.XLFIA)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: xj2rd\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (10-12)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [qywqd.id as Y46B2, qywqd.WNUNU as WNUNU, qywqd.HVHRZ as HVHRZ]\n" + " │ └─ Table\n" + @@ -8733,16 +8849,20 @@ WHERE " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (33,34)\n" + + " ├─ tableId: 5\n" + " └─ Project\n" + " ├─ columns: [nd.T722E, fc.Z35GY]\n" + " └─ Sort(nd.T722E ASC)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=402.250 rows=125)\n" + " ├─ (nd.T722E = fc.ZPAIK)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: nd\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (19)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [e2i7u.id as T722E]\n" + " │ └─ Table\n" + @@ -8760,8 +8880,8 @@ WHERE " └─ Project\n" + " ├─ columns: [amyxq.LUEVY as ZPAIK, max(amyxq.z35gy) as Z35GY]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(amyxq.Z35GY), amyxq.LUEVY)\n" + - " ├─ Grouping(amyxq.luevy)\n" + + " ├─ select: MAX(amyxq.Z35GY), amyxq.LUEVY\n" + + " ├─ group: amyxq.luevy\n" + " └─ Table\n" + " ├─ name: AMYXQ\n" + " └─ columns: [luevy z35gy]\n" + @@ -8773,16 +8893,20 @@ WHERE " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (33,34)\n" + + " ├─ tableId: 5\n" + " └─ Project\n" + " ├─ columns: [nd.T722E, fc.Z35GY]\n" + " └─ Sort(nd.T722E ASC)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=402.250 rows=125) (actual rows=0 loops=1)\n" + " ├─ (nd.T722E = fc.ZPAIK)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: nd\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (19)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [e2i7u.id as T722E]\n" + " │ └─ Table\n" + @@ -8800,8 +8924,8 @@ WHERE " └─ Project\n" + " ├─ columns: [amyxq.LUEVY as ZPAIK, max(amyxq.z35gy) as Z35GY]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(amyxq.Z35GY), amyxq.LUEVY)\n" + - " ├─ Grouping(amyxq.luevy)\n" + + " ├─ select: MAX(amyxq.Z35GY), amyxq.LUEVY\n" + + " ├─ group: amyxq.luevy\n" + " └─ Table\n" + " ├─ name: AMYXQ\n" + " └─ columns: [luevy z35gy]\n" + @@ -8913,7 +9037,7 @@ WHERE " │ ├─ columns: [E2I7U.id, E2I7U.DKCAJ, E2I7U.KNG7T, E2I7U.TW55N, E2I7U.QRQXW, E2I7U.ECXAJ, E2I7U.FGG57, E2I7U.ZH72S, E2I7U.FSK67, E2I7U.XQDYT, E2I7U.TCE7A, E2I7U.IWV2H, E2I7U.HPCMS, E2I7U.N5CC2, E2I7U.FHCYT, E2I7U.ETAQ7, E2I7U.A75X7]\n" + " │ └─ Filter\n" + " │ ├─ amyxq.LUEVY IS NULL\n" + - " │ └─ LeftOuterLookupJoin\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=14907.300 rows=4802)\n" + " │ ├─ Table\n" + " │ │ └─ name: E2I7U\n" + " │ └─ IndexedTableAccess(AMYXQ)\n" + @@ -8932,7 +9056,7 @@ WHERE " │ ├─ columns: [E2I7U.id, E2I7U.DKCAJ, E2I7U.KNG7T, E2I7U.TW55N, E2I7U.QRQXW, E2I7U.ECXAJ, E2I7U.FGG57, E2I7U.ZH72S, E2I7U.FSK67, E2I7U.XQDYT, E2I7U.TCE7A, E2I7U.IWV2H, E2I7U.HPCMS, E2I7U.N5CC2, E2I7U.FHCYT, E2I7U.ETAQ7, E2I7U.A75X7]\n" + " │ └─ Filter\n" + " │ ├─ amyxq.LUEVY IS NULL\n" + - " │ └─ LeftOuterLookupJoin\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=14907.300 rows=4802)\n" + " │ ├─ Table\n" + " │ │ └─ name: E2I7U\n" + " │ └─ IndexedTableAccess(AMYXQ)\n" + @@ -8955,7 +9079,7 @@ WHERE " │ ├─ columns: [E2I7U.id, E2I7U.DKCAJ, E2I7U.KNG7T, E2I7U.TW55N, E2I7U.QRQXW, E2I7U.ECXAJ, E2I7U.FGG57, E2I7U.ZH72S, E2I7U.FSK67, E2I7U.XQDYT, E2I7U.TCE7A, E2I7U.IWV2H, E2I7U.HPCMS, E2I7U.N5CC2, E2I7U.FHCYT, E2I7U.ETAQ7, E2I7U.A75X7]\n" + " │ └─ Filter\n" + " │ ├─ amyxq.LUEVY IS NULL\n" + - " │ └─ LeftOuterLookupJoin\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=14907.300 rows=4802)\n" + " │ ├─ Table\n" + " │ │ └─ name: E2I7U\n" + " │ └─ IndexedTableAccess(AMYXQ)\n" + @@ -8974,7 +9098,7 @@ WHERE " │ ├─ columns: [E2I7U.id, E2I7U.DKCAJ, E2I7U.KNG7T, E2I7U.TW55N, E2I7U.QRQXW, E2I7U.ECXAJ, E2I7U.FGG57, E2I7U.ZH72S, E2I7U.FSK67, E2I7U.XQDYT, E2I7U.TCE7A, E2I7U.IWV2H, E2I7U.HPCMS, E2I7U.N5CC2, E2I7U.FHCYT, E2I7U.ETAQ7, E2I7U.A75X7]\n" + " │ └─ Filter\n" + " │ ├─ amyxq.LUEVY IS NULL\n" + - " │ └─ LeftOuterLookupJoin\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=14907.300 rows=4802)\n" + " │ ├─ Table\n" + " │ │ └─ name: E2I7U\n" + " │ └─ IndexedTableAccess(AMYXQ)\n" + @@ -9253,22 +9377,24 @@ WHERE " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [oxxei.T4IBQ, oxxei.Z7CP5, e52ap.KUXQY, oxxei.BDNYB, ckele.M6T2N, oxxei.BTXC5 as BTXC5, oxxei.vaf as vaf, oxxei.QCGTS as QCGTS, oxxei.SNY4H as SNY4H, e52ap.YHVEZ as YHVEZ, e52ap.YAZ4X as YAZ4X]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=427.500 rows=125)\n" + " ├─ (ckele.LWQ6O = oxxei.BDNYB)\n" + - " ├─ HashJoin\n" + + " ├─ HashJoin (estimated cost=402.250 rows=125)\n" + " │ ├─ (e52ap.BDNYB = oxxei.BDNYB)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: oxxei\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (126-132)\n" + + " │ │ ├─ tableId: 15\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, aac.BTXC5 as BTXC5, mf.id as Z7CP5, CASE WHEN (NOT(mf.LT7K6 IS NULL)) THEN mf.LT7K6 ELSE mf.SPPYD END as vaf, CASE WHEN (NOT(mf.QCGTS IS NULL)) THEN mf.QCGTS ELSE 0.5 END as QCGTS, CASE WHEN (vc.ZNP4P = 'L5Q44') THEN 1 ELSE 0 END as SNY4H]\n" + - " │ │ └─ HashJoin\n" + + " │ │ └─ HashJoin (estimated cost=15169.320 rows=14766)\n" + " │ │ ├─ (vc.id = w2mao.YH4XB)\n" + - " │ │ ├─ HashJoin\n" + + " │ │ ├─ HashJoin (estimated cost=46968.640 rows=14766)\n" + " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + - " │ │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ MergeJoin (estimated cost=5070.940 rows=2498)\n" + " │ │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + @@ -9285,9 +9411,9 @@ WHERE " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (bs.id)\n" + " │ │ │ ├─ right-key: (mf.GXLUB)\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ MergeJoin\n" + + " │ │ │ └─ LookupJoin (estimated cost=48748.500 rows=14766)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=48727.800 rows=14766)\n" + + " │ │ │ │ ├─ MergeJoin (estimated cost=451603.550 rows=14766)\n" + " │ │ │ │ │ ├─ cmp: (mf.LUEVY = sn.BRQP2)\n" + " │ │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ │ ├─ (mf.FSDY2 HASH IN ('SRARY', 'UBQWG'))\n" + @@ -9370,22 +9496,24 @@ WHERE " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [oxxei.T4IBQ, oxxei.Z7CP5, e52ap.KUXQY, oxxei.BDNYB, ckele.M6T2N, oxxei.BTXC5 as BTXC5, oxxei.vaf as vaf, oxxei.QCGTS as QCGTS, oxxei.SNY4H as SNY4H, e52ap.YHVEZ as YHVEZ, e52ap.YAZ4X as YAZ4X]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=427.500 rows=125) (actual rows=0 loops=1)\n" + " ├─ (ckele.LWQ6O = oxxei.BDNYB)\n" + - " ├─ HashJoin\n" + + " ├─ HashJoin (estimated cost=402.250 rows=125) (actual rows=0 loops=1)\n" + " │ ├─ (e52ap.BDNYB = oxxei.BDNYB)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: oxxei\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (126-132)\n" + + " │ │ ├─ tableId: 15\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, aac.BTXC5 as BTXC5, mf.id as Z7CP5, CASE WHEN (NOT(mf.LT7K6 IS NULL)) THEN mf.LT7K6 ELSE mf.SPPYD END as vaf, CASE WHEN (NOT(mf.QCGTS IS NULL)) THEN mf.QCGTS ELSE 0.5 END as QCGTS, CASE WHEN (vc.ZNP4P = 'L5Q44') THEN 1 ELSE 0 END as SNY4H]\n" + - " │ │ └─ HashJoin\n" + + " │ │ └─ HashJoin (estimated cost=15169.320 rows=14766) (actual rows=0 loops=1)\n" + " │ │ ├─ (vc.id = w2mao.YH4XB)\n" + - " │ │ ├─ HashJoin\n" + + " │ │ ├─ HashJoin (estimated cost=46968.640 rows=14766) (actual rows=0 loops=1)\n" + " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + - " │ │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ MergeJoin (estimated cost=5070.940 rows=2498) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + @@ -9402,9 +9530,9 @@ WHERE " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (bs.id)\n" + " │ │ │ ├─ right-key: (mf.GXLUB)\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ MergeJoin\n" + + " │ │ │ └─ LookupJoin (estimated cost=48748.500 rows=14766)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=48727.800 rows=14766)\n" + + " │ │ │ │ ├─ MergeJoin (estimated cost=451603.550 rows=14766)\n" + " │ │ │ │ │ ├─ cmp: (mf.LUEVY = sn.BRQP2)\n" + " │ │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ │ ├─ (mf.FSDY2 HASH IN ('SRARY', 'UBQWG'))\n" + @@ -9744,24 +9872,26 @@ WHERE " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [oxxei.T4IBQ, oxxei.Z7CP5, e52ap.KUXQY, oxxei.BDNYB, ckele.M6T2N, oxxei.BTXC5 as BTXC5, oxxei.vaf as vaf, oxxei.QCGTS as QCGTS, oxxei.SNY4H as SNY4H, e52ap.YHVEZ as YHVEZ, e52ap.YAZ4X as YAZ4X]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=427.500 rows=125)\n" + " ├─ (ckele.LWQ6O = oxxei.BDNYB)\n" + - " ├─ HashJoin\n" + + " ├─ HashJoin (estimated cost=402.250 rows=125)\n" + " │ ├─ (e52ap.BDNYB = oxxei.BDNYB)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: oxxei\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (126-132)\n" + + " │ │ ├─ tableId: 15\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, aac.BTXC5 as BTXC5, mf.id as Z7CP5, CASE WHEN (NOT(mf.LT7K6 IS NULL)) THEN mf.LT7K6 ELSE mf.SPPYD END as vaf, CASE WHEN (NOT(mf.QCGTS IS NULL)) THEN mf.QCGTS ELSE 0.5 END as QCGTS, CASE WHEN (vc.ZNP4P = 'L5Q44') THEN 1 ELSE 0 END as SNY4H]\n" + - " │ │ └─ HashJoin\n" + + " │ │ └─ HashJoin (estimated cost=15169.320 rows=14766)\n" + " │ │ ├─ (vc.id = w2mao.YH4XB)\n" + - " │ │ ├─ HashJoin\n" + + " │ │ ├─ HashJoin (estimated cost=22555.320 rows=14766)\n" + " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ LookupJoin (estimated cost=48727.800 rows=14766)\n" + + " │ │ │ │ ├─ LookupJoin (estimated cost=48748.500 rows=14766)\n" + + " │ │ │ │ │ ├─ LookupJoin (estimated cost=45795.500 rows=14766)\n" + " │ │ │ │ │ │ ├─ TableAlias(sn)\n" + " │ │ │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ │ │ ├─ name: NOXN3\n" + @@ -9786,7 +9916,7 @@ WHERE " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (mf.GXLUB)\n" + " │ │ │ ├─ right-key: (bs.id)\n" + - " │ │ │ └─ MergeJoin\n" + + " │ │ │ └─ MergeJoin (estimated cost=5070.940 rows=2498)\n" + " │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + @@ -9859,24 +9989,26 @@ WHERE " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [oxxei.T4IBQ, oxxei.Z7CP5, e52ap.KUXQY, oxxei.BDNYB, ckele.M6T2N, oxxei.BTXC5 as BTXC5, oxxei.vaf as vaf, oxxei.QCGTS as QCGTS, oxxei.SNY4H as SNY4H, e52ap.YHVEZ as YHVEZ, e52ap.YAZ4X as YAZ4X]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=427.500 rows=125) (actual rows=0 loops=1)\n" + " ├─ (ckele.LWQ6O = oxxei.BDNYB)\n" + - " ├─ HashJoin\n" + + " ├─ HashJoin (estimated cost=402.250 rows=125) (actual rows=0 loops=1)\n" + " │ ├─ (e52ap.BDNYB = oxxei.BDNYB)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: oxxei\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (126-132)\n" + + " │ │ ├─ tableId: 15\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, aac.BTXC5 as BTXC5, mf.id as Z7CP5, CASE WHEN (NOT(mf.LT7K6 IS NULL)) THEN mf.LT7K6 ELSE mf.SPPYD END as vaf, CASE WHEN (NOT(mf.QCGTS IS NULL)) THEN mf.QCGTS ELSE 0.5 END as QCGTS, CASE WHEN (vc.ZNP4P = 'L5Q44') THEN 1 ELSE 0 END as SNY4H]\n" + - " │ │ └─ HashJoin\n" + + " │ │ └─ HashJoin (estimated cost=15169.320 rows=14766) (actual rows=0 loops=1)\n" + " │ │ ├─ (vc.id = w2mao.YH4XB)\n" + - " │ │ ├─ HashJoin\n" + + " │ │ ├─ HashJoin (estimated cost=22555.320 rows=14766) (actual rows=0 loops=1)\n" + " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ LookupJoin (estimated cost=48727.800 rows=14766) (actual rows=0 loops=1)\n" + + " │ │ │ │ ├─ LookupJoin (estimated cost=48748.500 rows=14766) (actual rows=0 loops=1)\n" + + " │ │ │ │ │ ├─ LookupJoin (estimated cost=45795.500 rows=14766) (actual rows=0 loops=1)\n" + " │ │ │ │ │ │ ├─ TableAlias(sn)\n" + " │ │ │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ │ │ ├─ name: NOXN3\n" + @@ -9901,7 +10033,7 @@ WHERE " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (mf.GXLUB)\n" + " │ │ │ ├─ right-key: (bs.id)\n" + - " │ │ │ └─ MergeJoin\n" + + " │ │ │ └─ MergeJoin (estimated cost=5070.940 rows=2498)\n" + " │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + @@ -10787,9 +10919,85 @@ WHERE " └─ columns: [id ixuxu]\n" + "", ExpectedEstimates: "Project\n" + - " ├─ columns: [mf.FTQLQ as T4IBQ, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, mjr3d.GE5EL as GE5EL, mjr3d.F7A4Q as F7A4Q, mjr3d.CC4AX as CC4AX, mjr3d.SL76B as SL76B, aac.BTXC5 as YEBDJ, mjr3d.PSMU6]\n" + + " ├─ columns: [mf.FTQLQ as T4IBQ, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (256,257)\n" + + " │ ├─ tableId: 27\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (258,259)\n" + + " │ ├─ tableId: 28\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, mjr3d.GE5EL as GE5EL, mjr3d.F7A4Q as F7A4Q, mjr3d.CC4AX as CC4AX, mjr3d.SL76B as SL76B, aac.BTXC5 as YEBDJ, mjr3d.PSMU6]\n" + " └─ Project\n" + - " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.PSMU6, mjr3d.M22QN, mjr3d.GE5EL, mjr3d.F7A4Q, mjr3d.ESFVY, mjr3d.CC4AX, mjr3d.SL76B, mjr3d.QNI57, mjr3d.TDEIU, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, mf.FTQLQ, mf.LUEVY, mf.M22QN, aac.id, aac.BTXC5, aac.FHCYT, mf.FTQLQ as T4IBQ, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, mjr3d.GE5EL as GE5EL, mjr3d.F7A4Q as F7A4Q, mjr3d.CC4AX as CC4AX, mjr3d.SL76B as SL76B, aac.BTXC5 as YEBDJ]\n" + + " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.PSMU6, mjr3d.M22QN, mjr3d.GE5EL, mjr3d.F7A4Q, mjr3d.ESFVY, mjr3d.CC4AX, mjr3d.SL76B, mjr3d.QNI57, mjr3d.TDEIU, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, mf.FTQLQ, mf.LUEVY, mf.M22QN, aac.id, aac.BTXC5, aac.FHCYT, mf.FTQLQ as T4IBQ, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (256,257)\n" + + " │ ├─ tableId: 27\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (258,259)\n" + + " │ ├─ tableId: 28\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, mjr3d.GE5EL as GE5EL, mjr3d.F7A4Q as F7A4Q, mjr3d.CC4AX as CC4AX, mjr3d.SL76B as SL76B, aac.BTXC5 as YEBDJ]\n" + " └─ HashJoin (estimated cost=459.120 rows=156)\n" + " ├─ ((mf.LUEVY = sn.BRQP2) AND (mf.M22QN = mjr3d.M22QN))\n" + " ├─ LeftOuterJoin (estimated cost=1479459.120 rows=156)\n" + @@ -10855,6 +11063,8 @@ WHERE " │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (98-108)\n" + + " │ │ │ │ ├─ tableId: 11\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (((NOT(QNI57 IS NULL)) AND TDEIU IS NULL) OR (QNI57 IS NULL AND (NOT(TDEIU IS NULL))))\n" + " │ │ │ │ └─ Project\n" + @@ -10912,6 +11122,8 @@ WHERE " │ │ │ ├─ outerVisibility: false\n" + " │ │ │ ├─ isLateral: false\n" + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (109-119)\n" + + " │ │ │ ├─ tableId: 12\n" + " │ │ │ └─ Filter\n" + " │ │ │ ├─ ((NOT(QNI57 IS NULL)) AND (NOT(TDEIU IS NULL)))\n" + " │ │ │ └─ Project\n" + @@ -10969,6 +11181,8 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (121-131)\n" + + " │ │ ├─ tableId: 13\n" + " │ │ └─ Filter\n" + " │ │ ├─ ((NOT(QNI57 IS NULL)) AND (NOT(TDEIU IS NULL)))\n" + " │ │ └─ Project\n" + @@ -11056,9 +11270,85 @@ WHERE " └─ columns: [id ixuxu]\n" + "", ExpectedAnalysis: "Project\n" + - " ├─ columns: [mf.FTQLQ as T4IBQ, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, mjr3d.GE5EL as GE5EL, mjr3d.F7A4Q as F7A4Q, mjr3d.CC4AX as CC4AX, mjr3d.SL76B as SL76B, aac.BTXC5 as YEBDJ, mjr3d.PSMU6]\n" + + " ├─ columns: [mf.FTQLQ as T4IBQ, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (256,257)\n" + + " │ ├─ tableId: 27\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (258,259)\n" + + " │ ├─ tableId: 28\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, mjr3d.GE5EL as GE5EL, mjr3d.F7A4Q as F7A4Q, mjr3d.CC4AX as CC4AX, mjr3d.SL76B as SL76B, aac.BTXC5 as YEBDJ, mjr3d.PSMU6]\n" + " └─ Project\n" + - " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.PSMU6, mjr3d.M22QN, mjr3d.GE5EL, mjr3d.F7A4Q, mjr3d.ESFVY, mjr3d.CC4AX, mjr3d.SL76B, mjr3d.QNI57, mjr3d.TDEIU, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, mf.FTQLQ, mf.LUEVY, mf.M22QN, aac.id, aac.BTXC5, aac.FHCYT, mf.FTQLQ as T4IBQ, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, mjr3d.GE5EL as GE5EL, mjr3d.F7A4Q as F7A4Q, mjr3d.CC4AX as CC4AX, mjr3d.SL76B as SL76B, aac.BTXC5 as YEBDJ]\n" + + " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.PSMU6, mjr3d.M22QN, mjr3d.GE5EL, mjr3d.F7A4Q, mjr3d.ESFVY, mjr3d.CC4AX, mjr3d.SL76B, mjr3d.QNI57, mjr3d.TDEIU, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, mf.FTQLQ, mf.LUEVY, mf.M22QN, aac.id, aac.BTXC5, aac.FHCYT, mf.FTQLQ as T4IBQ, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (256,257)\n" + + " │ ├─ tableId: 27\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (258,259)\n" + + " │ ├─ tableId: 28\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, mjr3d.GE5EL as GE5EL, mjr3d.F7A4Q as F7A4Q, mjr3d.CC4AX as CC4AX, mjr3d.SL76B as SL76B, aac.BTXC5 as YEBDJ]\n" + " └─ HashJoin (estimated cost=459.120 rows=156) (actual rows=0 loops=1)\n" + " ├─ ((mf.LUEVY = sn.BRQP2) AND (mf.M22QN = mjr3d.M22QN))\n" + " ├─ LeftOuterJoin (estimated cost=1479459.120 rows=156) (actual rows=0 loops=1)\n" + @@ -11124,6 +11414,8 @@ WHERE " │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (98-108)\n" + + " │ │ │ │ ├─ tableId: 11\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (((NOT(QNI57 IS NULL)) AND TDEIU IS NULL) OR (QNI57 IS NULL AND (NOT(TDEIU IS NULL))))\n" + " │ │ │ │ └─ Project\n" + @@ -11181,6 +11473,8 @@ WHERE " │ │ │ ├─ outerVisibility: false\n" + " │ │ │ ├─ isLateral: false\n" + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (109-119)\n" + + " │ │ │ ├─ tableId: 12\n" + " │ │ │ └─ Filter\n" + " │ │ │ ├─ ((NOT(QNI57 IS NULL)) AND (NOT(TDEIU IS NULL)))\n" + " │ │ │ └─ Project\n" + @@ -11238,6 +11532,8 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (121-131)\n" + + " │ │ ├─ tableId: 13\n" + " │ │ └─ Filter\n" + " │ │ ├─ ((NOT(QNI57 IS NULL)) AND (NOT(TDEIU IS NULL)))\n" + " │ │ └─ Project\n" + @@ -12343,14 +12639,18 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (260-263)\n" + + " │ ├─ tableId: 36\n" + " │ └─ Project\n" + " │ ├─ columns: [rsa3y.T4IBQ as T4IBQ, jmhie.M6T2N as M6T2N, jmhie.BTXC5 as BTXC5, jmhie.TUV25 as TUV25]\n" + - " │ └─ CrossHashJoin\n" + + " │ └─ CrossHashJoin (estimated cost=402.250 rows=125)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: jmhie\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (229-231)\n" + + " │ │ ├─ tableId: 28\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [jqhrg.M6T2N, jqhrg.BTXC5, jqhrg.TUV25]\n" + @@ -12359,11 +12659,89 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (224-228)\n" + + " │ │ ├─ tableId: 27\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " │ │ ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (210,211)\n" + + " │ │ │ ├─ tableId: 24\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (212,213)\n" + + " │ │ │ ├─ tableId: 25\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + - " │ │ └─ LeftOuterJoin\n" + + " │ │ ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (210,211)\n" + + " │ │ │ ├─ tableId: 24\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (212,213)\n" + + " │ │ │ ├─ tableId: 25\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " │ │ └─ LeftOuterJoin (estimated cost=1193112.000 rows=125)\n" + " │ │ ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + " │ │ │ └─ right: Subquery\n" + @@ -12404,26 +12782,28 @@ WHERE " │ │ │ ├─ columns: [id brqp2]\n" + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + - " │ │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin (estimated cost=330.000 rows=100)\n" + " │ │ │ ├─ SubqueryAlias\n" + " │ │ │ │ ├─ name: mjr3d\n" + " │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (160-166)\n" + + " │ │ │ │ ├─ tableId: 18\n" + " │ │ │ │ └─ Distinct\n" + " │ │ │ │ └─ Project\n" + " │ │ │ │ ├─ columns: [ism.FV24E as FJDP5, cpmfe.id as BJUF2, ism.M22QN as M22QN, g3yxs.TUV25 as TUV25, g3yxs.ESFVY as ESFVY, yqif4.id as QNI57, yvhjz.id as TDEIU]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ ((NOT(yqif4.id IS NULL)) OR (NOT(yvhjz.id IS NULL)))\n" + - " │ │ │ │ └─ LeftOuterLookupJoin\n" + + " │ │ │ │ └─ LeftOuterLookupJoin (estimated cost=532.200 rows=165)\n" + " │ │ │ │ ├─ (yvhjz.BRQP2 = ism.UJ6XY)\n" + - " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=430.300 rows=132)\n" + " │ │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=349.500 rows=106)\n" + " │ │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + + " │ │ │ │ │ │ ├─ LeftOuterHashJoin (estimated cost=1327.970 rows=85)\n" + " │ │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + + " │ │ │ │ │ │ │ ├─ MergeJoin (estimated cost=1144.340 rows=1112)\n" + " │ │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + @@ -12483,6 +12863,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (232-234)\n" + + " │ ├─ tableId: 17\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + " │ └─ HashJoin\n" + @@ -12537,6 +12919,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (244-246)\n" + + " │ ├─ tableId: 32\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + " │ └─ HashJoin\n" + @@ -12580,9 +12964,85 @@ WHERE " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + " └─ Project\n" + - " ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (210,211)\n" + + " │ ├─ tableId: 24\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (212,213)\n" + + " │ ├─ tableId: 25\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " └─ Project\n" + - " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (210,211)\n" + + " │ ├─ tableId: 24\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (212,213)\n" + + " │ ├─ tableId: 25\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " └─ LeftOuterJoin\n" + " ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + @@ -12630,6 +13090,8 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (160-166)\n" + + " │ │ ├─ tableId: 18\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [ism.FV24E as FJDP5, cpmfe.id as BJUF2, ism.M22QN as M22QN, g3yxs.TUV25 as TUV25, g3yxs.ESFVY as ESFVY, yqif4.id as QNI57, yvhjz.id as TDEIU]\n" + @@ -12700,14 +13162,18 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (260-263)\n" + + " │ ├─ tableId: 36\n" + " │ └─ Project\n" + " │ ├─ columns: [rsa3y.T4IBQ as T4IBQ, jmhie.M6T2N as M6T2N, jmhie.BTXC5 as BTXC5, jmhie.TUV25 as TUV25]\n" + - " │ └─ CrossHashJoin\n" + + " │ └─ CrossHashJoin (estimated cost=402.250 rows=125) (actual rows=0 loops=1)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: jmhie\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (229-231)\n" + + " │ │ ├─ tableId: 28\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [jqhrg.M6T2N, jqhrg.BTXC5, jqhrg.TUV25]\n" + @@ -12716,11 +13182,89 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (224-228)\n" + + " │ │ ├─ tableId: 27\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + - " │ │ └─ LeftOuterJoin\n" + + " │ │ ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (210,211)\n" + + " │ │ │ ├─ tableId: 24\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (212,213)\n" + + " │ │ │ ├─ tableId: 25\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (210,211)\n" + + " │ │ │ ├─ tableId: 24\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (212,213)\n" + + " │ │ │ ├─ tableId: 25\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " │ │ └─ LeftOuterJoin (estimated cost=1193112.000 rows=125) (actual rows=0 loops=1)\n" + " │ │ ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + " │ │ │ └─ right: Subquery\n" + @@ -12761,26 +13305,28 @@ WHERE " │ │ │ ├─ columns: [id brqp2]\n" + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + - " │ │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin (estimated cost=330.000 rows=100) (actual rows=0 loops=1)\n" + " │ │ │ ├─ SubqueryAlias\n" + " │ │ │ │ ├─ name: mjr3d\n" + " │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (160-166)\n" + + " │ │ │ │ ├─ tableId: 18\n" + " │ │ │ │ └─ Distinct\n" + " │ │ │ │ └─ Project\n" + " │ │ │ │ ├─ columns: [ism.FV24E as FJDP5, cpmfe.id as BJUF2, ism.M22QN as M22QN, g3yxs.TUV25 as TUV25, g3yxs.ESFVY as ESFVY, yqif4.id as QNI57, yvhjz.id as TDEIU]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ ((NOT(yqif4.id IS NULL)) OR (NOT(yvhjz.id IS NULL)))\n" + - " │ │ │ │ └─ LeftOuterLookupJoin\n" + + " │ │ │ │ └─ LeftOuterLookupJoin (estimated cost=532.200 rows=165) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ (yvhjz.BRQP2 = ism.UJ6XY)\n" + - " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=430.300 rows=132) (actual rows=0 loops=1)\n" + " │ │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=349.500 rows=106) (actual rows=0 loops=1)\n" + " │ │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + + " │ │ │ │ │ │ ├─ LeftOuterHashJoin (estimated cost=1327.970 rows=85) (actual rows=0 loops=1)\n" + " │ │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + + " │ │ │ │ │ │ │ ├─ MergeJoin (estimated cost=1144.340 rows=1112) (actual rows=0 loops=1)\n" + " │ │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + @@ -12840,6 +13386,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (232-234)\n" + + " │ ├─ tableId: 17\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + " │ └─ HashJoin\n" + @@ -12894,6 +13442,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (244-246)\n" + + " │ ├─ tableId: 32\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + " │ └─ HashJoin\n" + @@ -12937,9 +13487,85 @@ WHERE " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + " └─ Project\n" + - " ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (210,211)\n" + + " │ ├─ tableId: 24\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (212,213)\n" + + " │ ├─ tableId: 25\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " └─ Project\n" + - " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (210,211)\n" + + " │ ├─ tableId: 24\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (212,213)\n" + + " │ ├─ tableId: 25\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " └─ LeftOuterJoin\n" + " ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + @@ -12987,6 +13613,8 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (160-166)\n" + + " │ │ ├─ tableId: 18\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [ism.FV24E as FJDP5, cpmfe.id as BJUF2, ism.M22QN as M22QN, g3yxs.TUV25 as TUV25, g3yxs.ESFVY as ESFVY, yqif4.id as QNI57, yvhjz.id as TDEIU]\n" + @@ -14052,14 +14680,18 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (260-263)\n" + + " │ ├─ tableId: 36\n" + " │ └─ Project\n" + " │ ├─ columns: [rsa3y.T4IBQ as T4IBQ, jmhie.M6T2N as M6T2N, jmhie.BTXC5 as BTXC5, jmhie.TUV25 as TUV25]\n" + - " │ └─ CrossHashJoin\n" + + " │ └─ CrossHashJoin (estimated cost=402.250 rows=125)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: jmhie\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (229-231)\n" + + " │ │ ├─ tableId: 28\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [jqhrg.M6T2N, jqhrg.BTXC5, jqhrg.TUV25]\n" + @@ -14068,11 +14700,89 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (224-228)\n" + + " │ │ ├─ tableId: 27\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " │ │ ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (210,211)\n" + + " │ │ │ ├─ tableId: 24\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (212,213)\n" + + " │ │ │ ├─ tableId: 25\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + - " │ │ └─ LeftOuterJoin\n" + + " │ │ ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (210,211)\n" + + " │ │ │ ├─ tableId: 24\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (212,213)\n" + + " │ │ │ ├─ tableId: 25\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " │ │ └─ LeftOuterJoin (estimated cost=1193112.000 rows=125)\n" + " │ │ ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + " │ │ │ └─ right: Subquery\n" + @@ -14113,26 +14823,28 @@ WHERE " │ │ │ ├─ columns: [id brqp2]\n" + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + - " │ │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin (estimated cost=330.000 rows=100)\n" + " │ │ │ ├─ SubqueryAlias\n" + " │ │ │ │ ├─ name: mjr3d\n" + " │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (160-166)\n" + + " │ │ │ │ ├─ tableId: 18\n" + " │ │ │ │ └─ Distinct\n" + " │ │ │ │ └─ Project\n" + " │ │ │ │ ├─ columns: [ism.FV24E as FJDP5, cpmfe.id as BJUF2, ism.M22QN as M22QN, g3yxs.TUV25 as TUV25, g3yxs.ESFVY as ESFVY, yqif4.id as QNI57, yvhjz.id as TDEIU]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ ((NOT(yqif4.id IS NULL)) OR (NOT(yvhjz.id IS NULL)))\n" + - " │ │ │ │ └─ LeftOuterLookupJoin\n" + + " │ │ │ │ └─ LeftOuterLookupJoin (estimated cost=532.200 rows=165)\n" + " │ │ │ │ ├─ (yvhjz.BRQP2 = ism.UJ6XY)\n" + - " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=430.300 rows=132)\n" + " │ │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=349.500 rows=106)\n" + " │ │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + + " │ │ │ │ │ │ ├─ LeftOuterHashJoin (estimated cost=1327.970 rows=85)\n" + " │ │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + + " │ │ │ │ │ │ │ ├─ MergeJoin (estimated cost=1144.340 rows=1112)\n" + " │ │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + @@ -14192,6 +14904,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (232-234)\n" + + " │ ├─ tableId: 17\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + " │ └─ HashJoin\n" + @@ -14244,6 +14958,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (244-246)\n" + + " │ ├─ tableId: 32\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + " │ └─ HashJoin\n" + @@ -14285,9 +15001,85 @@ WHERE " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + " └─ Project\n" + - " ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (210,211)\n" + + " │ ├─ tableId: 24\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (212,213)\n" + + " │ ├─ tableId: 25\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " └─ Project\n" + - " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (210,211)\n" + + " │ ├─ tableId: 24\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (212,213)\n" + + " │ ├─ tableId: 25\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " └─ LeftOuterJoin\n" + " ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + @@ -14335,6 +15127,8 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (160-166)\n" + + " │ │ ├─ tableId: 18\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [ism.FV24E as FJDP5, cpmfe.id as BJUF2, ism.M22QN as M22QN, g3yxs.TUV25 as TUV25, g3yxs.ESFVY as ESFVY, yqif4.id as QNI57, yvhjz.id as TDEIU]\n" + @@ -14405,14 +15199,18 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (260-263)\n" + + " │ ├─ tableId: 36\n" + " │ └─ Project\n" + " │ ├─ columns: [rsa3y.T4IBQ as T4IBQ, jmhie.M6T2N as M6T2N, jmhie.BTXC5 as BTXC5, jmhie.TUV25 as TUV25]\n" + - " │ └─ CrossHashJoin\n" + + " │ └─ CrossHashJoin (estimated cost=402.250 rows=125) (actual rows=0 loops=1)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: jmhie\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (229-231)\n" + + " │ │ ├─ tableId: 28\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [jqhrg.M6T2N, jqhrg.BTXC5, jqhrg.TUV25]\n" + @@ -14421,11 +15219,89 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (224-228)\n" + + " │ │ ├─ tableId: 27\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " │ │ ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (210,211)\n" + + " │ │ │ ├─ tableId: 24\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (212,213)\n" + + " │ │ │ ├─ tableId: 25\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + - " │ │ └─ LeftOuterJoin\n" + + " │ │ ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (210,211)\n" + + " │ │ │ ├─ tableId: 24\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [ei.M6T2N]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ │ │ └─ SubqueryAlias\n" + + " │ │ │ ├─ name: ei\n" + + " │ │ │ ├─ outerVisibility: true\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (212,213)\n" + + " │ │ │ ├─ tableId: 25\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ │ │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id]\n" + + " │ │ │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " │ │ └─ LeftOuterJoin (estimated cost=1193112.000 rows=125) (actual rows=0 loops=1)\n" + " │ │ ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + " │ │ │ └─ right: Subquery\n" + @@ -14466,26 +15342,28 @@ WHERE " │ │ │ ├─ columns: [id brqp2]\n" + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + - " │ │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin (estimated cost=330.000 rows=100) (actual rows=0 loops=1)\n" + " │ │ │ ├─ SubqueryAlias\n" + " │ │ │ │ ├─ name: mjr3d\n" + " │ │ │ │ ├─ outerVisibility: false\n" + " │ │ │ │ ├─ isLateral: false\n" + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (160-166)\n" + + " │ │ │ │ ├─ tableId: 18\n" + " │ │ │ │ └─ Distinct\n" + " │ │ │ │ └─ Project\n" + " │ │ │ │ ├─ columns: [ism.FV24E as FJDP5, cpmfe.id as BJUF2, ism.M22QN as M22QN, g3yxs.TUV25 as TUV25, g3yxs.ESFVY as ESFVY, yqif4.id as QNI57, yvhjz.id as TDEIU]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ ((NOT(yqif4.id IS NULL)) OR (NOT(yvhjz.id IS NULL)))\n" + - " │ │ │ │ └─ LeftOuterLookupJoin\n" + + " │ │ │ │ └─ LeftOuterLookupJoin (estimated cost=532.200 rows=165) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ (yvhjz.BRQP2 = ism.UJ6XY)\n" + - " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=430.300 rows=132) (actual rows=0 loops=1)\n" + " │ │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin (estimated cost=349.500 rows=106) (actual rows=0 loops=1)\n" + " │ │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + + " │ │ │ │ │ │ ├─ LeftOuterHashJoin (estimated cost=1327.970 rows=85) (actual rows=0 loops=1)\n" + " │ │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + + " │ │ │ │ │ │ │ ├─ MergeJoin (estimated cost=1144.340 rows=1112) (actual rows=0 loops=1)\n" + " │ │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + @@ -14545,6 +15423,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (232-234)\n" + + " │ ├─ tableId: 17\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + " │ └─ HashJoin\n" + @@ -14597,6 +15477,8 @@ WHERE " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (244-246)\n" + + " │ ├─ tableId: 32\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + " │ └─ HashJoin\n" + @@ -14638,9 +15520,85 @@ WHERE " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + " └─ Project\n" + - " ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " ├─ columns: [CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (210,211)\n" + + " │ ├─ tableId: 24\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (212,213)\n" + + " │ ├─ tableId: 25\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " └─ Project\n" + - " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + + " ├─ columns: [mjr3d.FJDP5, mjr3d.BJUF2, mjr3d.M22QN, mjr3d.TUV25, mjr3d.ESFVY, mjr3d.QNI57, mjr3d.TDEIU, aac.id, aac.BTXC5, aac.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.QNI57)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (210,211)\n" + + " │ ├─ tableId: 24\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ei.M6T2N]\n" + + " │ └─ Filter\n" + + " │ ├─ (ei.id = mjr3d.TDEIU)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ei\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (212,213)\n" + + " │ ├─ tableId: 25\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.id, (row_number() over ( order by noxn3.id asc) - 1) as M6T2N]\n" + + " │ └─ Window(row_number() over ( order by noxn3.id ASC), noxn3.id)\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id]\n" + + " │ END as M6T2N, aac.BTXC5 as BTXC5, aac.id as NTOFG, sn.id as LWQ6O, mjr3d.TUV25 as TUV25]\n" + " └─ LeftOuterJoin\n" + " ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + @@ -14688,6 +15646,8 @@ WHERE " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (160-166)\n" + + " │ │ ├─ tableId: 18\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [ism.FV24E as FJDP5, cpmfe.id as BJUF2, ism.M22QN as M22QN, g3yxs.TUV25 as TUV25, g3yxs.ESFVY as ESFVY, yqif4.id as QNI57, yvhjz.id as TDEIU]\n" + @@ -14932,13 +15892,15 @@ ORDER BY Y46B2 ASC`, ExpectedEstimates: "Project\n" + " ├─ columns: [tusay.Y3IOU as Q7H3X]\n" + " └─ Sort(xj2rd.Y46B2 ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=402.250 rows=125)\n" + " ├─ (xj2rd.HHVLX = tusay.XLFIA)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: xj2rd\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (10-12)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [qywqd.id as Y46B2, qywqd.HHVLX as HHVLX, qywqd.HVHRZ as HVHRZ]\n" + " │ └─ Table\n" + @@ -14963,13 +15925,15 @@ ORDER BY Y46B2 ASC`, ExpectedAnalysis: "Project\n" + " ├─ columns: [tusay.Y3IOU as Q7H3X]\n" + " └─ Sort(xj2rd.Y46B2 ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=402.250 rows=125) (actual rows=0 loops=1)\n" + " ├─ (xj2rd.HHVLX = tusay.XLFIA)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: xj2rd\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (10-12)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [qywqd.id as Y46B2, qywqd.HHVLX as HHVLX, qywqd.HVHRZ as HVHRZ]\n" + " │ └─ Table\n" + @@ -15105,13 +16069,15 @@ ORDER BY sn.XLFIA ASC`, ExpectedEstimates: "Project\n" + " ├─ columns: [i2gj5.R2SR7]\n" + " └─ Sort(sn.XLFIA ASC)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=402.250 rows=125)\n" + " ├─ (sn.BRQP2 = i2gj5.LUEVY)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sn\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (12,13)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [noxn3.id as XLFIA, noxn3.BRQP2]\n" + " │ └─ IndexedTableAccess(NOXN3)\n" + @@ -15136,6 +16102,8 @@ ORDER BY sn.XLFIA ASC`, " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (33,34)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Project\n" + " │ ├─ columns: [e2i7u.id as LUEVY, e2i7u.HPCMS as HPCMS]\n" + " │ └─ Table\n" + @@ -15159,13 +16127,15 @@ ORDER BY sn.XLFIA ASC`, ExpectedAnalysis: "Project\n" + " ├─ columns: [i2gj5.R2SR7]\n" + " └─ Sort(sn.XLFIA ASC)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=402.250 rows=125) (actual rows=0 loops=1)\n" + " ├─ (sn.BRQP2 = i2gj5.LUEVY)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sn\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (12,13)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [noxn3.id as XLFIA, noxn3.BRQP2]\n" + " │ └─ IndexedTableAccess(NOXN3)\n" + @@ -15190,6 +16160,8 @@ ORDER BY sn.XLFIA ASC`, " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (33,34)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Project\n" + " │ ├─ columns: [e2i7u.id as LUEVY, e2i7u.HPCMS as HPCMS]\n" + " │ └─ Table\n" + @@ -15275,13 +16247,15 @@ ORDER BY GRRB6.XLFIA ASC`, ExpectedEstimates: "Project\n" + " ├─ columns: [qi2ie.DICQO as DICQO]\n" + " └─ Sort(grrb6.XLFIA ASC)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=402.250 rows=125)\n" + " ├─ (qi2ie.VIBZI = grrb6.AHMDT)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: grrb6\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (13,14)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [noxn3.id as XLFIA, noxn3.BRQP2 as AHMDT]\n" + " │ └─ Table\n" + @@ -15306,13 +16280,15 @@ ORDER BY GRRB6.XLFIA ASC`, ExpectedAnalysis: "Project\n" + " ├─ columns: [qi2ie.DICQO as DICQO]\n" + " └─ Sort(grrb6.XLFIA ASC)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=402.250 rows=125) (actual rows=0 loops=1)\n" + " ├─ (qi2ie.VIBZI = grrb6.AHMDT)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: grrb6\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (13,14)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Project\n" + " │ ├─ columns: [noxn3.id as XLFIA, noxn3.BRQP2 as AHMDT]\n" + " │ └─ Table\n" + @@ -15405,13 +16381,13 @@ ORDER BY cla.FTQLQ ASC`, " ├─ columns: [cla.FTQLQ]\n" + " └─ Project\n" + " ├─ columns: [cla.id, cla.FTQLQ, cla.TUXML, cla.PAEF5, cla.RUCY4, cla.TPNJ6, cla.LBL53, cla.NB3QS, cla.EO7IV, cla.MUHJF, cla.FM34L, cla.TY5RF, cla.ZHTLH, cla.NPB7W, cla.SX3HH, cla.ISBNF, cla.YA7YB, cla.C5YKB, cla.QK7KT, cla.FFGE6, cla.FIIGJ, cla.SH3NC, cla.NTENA, cla.M4AUB, cla.X5AIR, cla.SAB6M, cla.G5QI5, cla.ZVQVD, cla.YKSSU, cla.FHCYT]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=660254.220 rows=639961)\n" + " ├─ (cla.id = bs.IXUXU)\n" + " ├─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [bs.IXUXU]\n" + - " │ └─ SemiLookupJoin\n" + - " │ ├─ SemiLookupJoin\n" + + " │ └─ SemiLookupJoin (estimated cost=1983900.000 rows=639961)\n" + + " │ ├─ SemiLookupJoin (estimated cost=1180047.400 rows=511969)\n" + " │ │ ├─ TableAlias(bs)\n" + " │ │ │ └─ Table\n" + " │ │ │ └─ name: THNTS\n" + @@ -15438,13 +16414,13 @@ ORDER BY cla.FTQLQ ASC`, " ├─ columns: [cla.FTQLQ]\n" + " └─ Project\n" + " ├─ columns: [cla.id, cla.FTQLQ, cla.TUXML, cla.PAEF5, cla.RUCY4, cla.TPNJ6, cla.LBL53, cla.NB3QS, cla.EO7IV, cla.MUHJF, cla.FM34L, cla.TY5RF, cla.ZHTLH, cla.NPB7W, cla.SX3HH, cla.ISBNF, cla.YA7YB, cla.C5YKB, cla.QK7KT, cla.FFGE6, cla.FIIGJ, cla.SH3NC, cla.NTENA, cla.M4AUB, cla.X5AIR, cla.SAB6M, cla.G5QI5, cla.ZVQVD, cla.YKSSU, cla.FHCYT]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=660254.220 rows=639961) (actual rows=0 loops=1)\n" + " ├─ (cla.id = bs.IXUXU)\n" + " ├─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [bs.IXUXU]\n" + - " │ └─ SemiLookupJoin\n" + - " │ ├─ SemiLookupJoin\n" + + " │ └─ SemiLookupJoin (estimated cost=1983900.000 rows=639961) (actual rows=0 loops=1)\n" + + " │ ├─ SemiLookupJoin (estimated cost=1180047.400 rows=511969) (actual rows=0 loops=1)\n" + " │ │ ├─ TableAlias(bs)\n" + " │ │ │ └─ Table\n" + " │ │ │ └─ name: THNTS\n" + @@ -15519,7 +16495,7 @@ ORDER BY cla.FTQLQ ASC`, " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [cla.FTQLQ]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=529702.380 rows=511969)\n" + " ├─ (mf.GXLUB = bs.id)\n" + " ├─ TableAlias(mf)\n" + " │ └─ Table\n" + @@ -15528,7 +16504,7 @@ ORDER BY cla.FTQLQ ASC`, " └─ HashLookup\n" + " ├─ left-key: (mf.GXLUB)\n" + " ├─ right-key: (bs.id)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=5070.940 rows=2498)\n" + " ├─ cmp: (bs.IXUXU = cla.id)\n" + " ├─ TableAlias(bs)\n" + " │ └─ IndexedTableAccess(THNTS)\n" + @@ -15545,7 +16521,7 @@ ORDER BY cla.FTQLQ ASC`, " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [cla.FTQLQ]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=529702.380 rows=511969) (actual rows=0 loops=1)\n" + " ├─ (mf.GXLUB = bs.id)\n" + " ├─ TableAlias(mf)\n" + " │ └─ Table\n" + @@ -15554,7 +16530,7 @@ ORDER BY cla.FTQLQ ASC`, " └─ HashLookup\n" + " ├─ left-key: (mf.GXLUB)\n" + " ├─ right-key: (bs.id)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=5070.940 rows=2498)\n" + " ├─ cmp: (bs.IXUXU = cla.id)\n" + " ├─ TableAlias(bs)\n" + " │ └─ IndexedTableAccess(THNTS)\n" + @@ -15621,12 +16597,12 @@ ORDER BY cla.FTQLQ ASC`, " ├─ columns: [cla.FTQLQ]\n" + " └─ Project\n" + " ├─ columns: [cla.id, cla.FTQLQ, cla.TUXML, cla.PAEF5, cla.RUCY4, cla.TPNJ6, cla.LBL53, cla.NB3QS, cla.EO7IV, cla.MUHJF, cla.FM34L, cla.TY5RF, cla.ZHTLH, cla.NPB7W, cla.SX3HH, cla.ISBNF, cla.YA7YB, cla.C5YKB, cla.QK7KT, cla.FFGE6, cla.FIIGJ, cla.SH3NC, cla.NTENA, cla.M4AUB, cla.X5AIR, cla.SAB6M, cla.G5QI5, cla.ZVQVD, cla.YKSSU, cla.FHCYT]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=4889905.560 rows=4786678)\n" + " ├─ (cla.id = bs.IXUXU)\n" + " ├─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [bs.IXUXU]\n" + - " │ └─ SemiLookupJoin\n" + + " │ └─ SemiLookupJoin (estimated cost=11011878.100 rows=4786678)\n" + " │ ├─ TableAlias(bs)\n" + " │ │ └─ Table\n" + " │ │ └─ name: THNTS\n" + @@ -15648,12 +16624,12 @@ ORDER BY cla.FTQLQ ASC`, " ├─ columns: [cla.FTQLQ]\n" + " └─ Project\n" + " ├─ columns: [cla.id, cla.FTQLQ, cla.TUXML, cla.PAEF5, cla.RUCY4, cla.TPNJ6, cla.LBL53, cla.NB3QS, cla.EO7IV, cla.MUHJF, cla.FM34L, cla.TY5RF, cla.ZHTLH, cla.NPB7W, cla.SX3HH, cla.ISBNF, cla.YA7YB, cla.C5YKB, cla.QK7KT, cla.FFGE6, cla.FIIGJ, cla.SH3NC, cla.NTENA, cla.M4AUB, cla.X5AIR, cla.SAB6M, cla.G5QI5, cla.ZVQVD, cla.YKSSU, cla.FHCYT]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=4889905.560 rows=4786678) (actual rows=0 loops=1)\n" + " ├─ (cla.id = bs.IXUXU)\n" + " ├─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [bs.IXUXU]\n" + - " │ └─ SemiLookupJoin\n" + + " │ └─ SemiLookupJoin (estimated cost=11011878.100 rows=4786678) (actual rows=0 loops=1)\n" + " │ ├─ TableAlias(bs)\n" + " │ │ └─ Table\n" + " │ │ └─ name: THNTS\n" + @@ -15709,7 +16685,7 @@ ORDER BY ci.FTQLQ`, " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [ci.FTQLQ]\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=15479.610 rows=14781)\n" + " ├─ cmp: (ct.FZ2R5 = ci.id)\n" + " ├─ TableAlias(ct)\n" + " │ └─ IndexedTableAccess(FLQLP)\n" + @@ -15726,7 +16702,7 @@ ORDER BY ci.FTQLQ`, " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [ci.FTQLQ]\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=15479.610 rows=14781) (actual rows=0 loops=1)\n" + " ├─ cmp: (ct.FZ2R5 = ci.id)\n" + " ├─ TableAlias(ct)\n" + " │ └─ IndexedTableAccess(FLQLP)\n" + @@ -15906,13 +16882,15 @@ ORDER BY LUEVY`, " └─ Sort(LUEVY ASC)\n" + " └─ Project\n" + " ├─ columns: [ypgda.LUEVY, ypgda.TW55N, ypgda.IYDZV, ypgda.QRQXW, ypgda.CAECS, ypgda.CJLLY, ypgda.SHP7H, ypgda.HARAZ, ypgda.I3L5A, ypgda.FUG6J, ypgda.NF5AM, ypgda.FRCVC, ybbg5.id, ybbg5.DZLIM, ybbg5.F3YUE, ypgda.LUEVY as LUEVY, ypgda.TW55N as TW55N, ypgda.IYDZV as IYDZV, '' as IIISV, ypgda.QRQXW as QRQXW, ypgda.CAECS as CAECS, ypgda.CJLLY as CJLLY, ypgda.SHP7H as SHP7H, ypgda.HARAZ as HARAZ, '' as ECUWU, '' as LDMO7, CASE WHEN (ybbg5.DZLIM = 'HGUEM') THEN 's30' WHEN (ybbg5.DZLIM = 'YUHMV') THEN 'r90' WHEN (ybbg5.DZLIM = 'T3JIU') THEN 'r50' WHEN (ybbg5.DZLIM = 's') THEN 's' WHEN (ybbg5.DZLIM = 'AX25H') THEN 'r70' WHEN ybbg5.DZLIM IS NULL THEN '' ELSE ybbg5.DZLIM END as UBUYI, ypgda.FUG6J as FUG6J, ypgda.NF5AM as NF5AM, ypgda.FRCVC as FRCVC]\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=116.060 rows=6)\n" + " ├─ (ypgda.I3L5A = ybbg5.id)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: ypgda\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (41-52)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Project\n" + " │ ├─ columns: [nd.id as LUEVY, nd.TW55N as TW55N, nd.FGG57 as IYDZV, nd.QRQXW as QRQXW, nd.IWV2H as CAECS, nd.ECXAJ as CJLLY, nma.DZLIM as SHP7H, nd.N5CC2 as HARAZ, Subquery\n" + " │ │ ├─ cacheable: false\n" + @@ -15939,7 +16917,7 @@ ORDER BY LUEVY`, " │ │ ├─ columns: [luevy xqdyt]\n" + " │ │ └─ keys: nd.id\n" + " │ │ as I3L5A, nd.ETAQ7 as FUG6J, nd.A75X7 as NF5AM, nd.FSK67 as FRCVC]\n" + - " │ └─ LeftOuterLookupJoin\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=3876.500 rows=6)\n" + " │ ├─ TableAlias(nd)\n" + " │ │ └─ Table\n" + " │ │ └─ name: E2I7U\n" + @@ -15960,13 +16938,15 @@ ORDER BY LUEVY`, " └─ Sort(LUEVY ASC)\n" + " └─ Project\n" + " ├─ columns: [ypgda.LUEVY, ypgda.TW55N, ypgda.IYDZV, ypgda.QRQXW, ypgda.CAECS, ypgda.CJLLY, ypgda.SHP7H, ypgda.HARAZ, ypgda.I3L5A, ypgda.FUG6J, ypgda.NF5AM, ypgda.FRCVC, ybbg5.id, ybbg5.DZLIM, ybbg5.F3YUE, ypgda.LUEVY as LUEVY, ypgda.TW55N as TW55N, ypgda.IYDZV as IYDZV, '' as IIISV, ypgda.QRQXW as QRQXW, ypgda.CAECS as CAECS, ypgda.CJLLY as CJLLY, ypgda.SHP7H as SHP7H, ypgda.HARAZ as HARAZ, '' as ECUWU, '' as LDMO7, CASE WHEN (ybbg5.DZLIM = 'HGUEM') THEN 's30' WHEN (ybbg5.DZLIM = 'YUHMV') THEN 'r90' WHEN (ybbg5.DZLIM = 'T3JIU') THEN 'r50' WHEN (ybbg5.DZLIM = 's') THEN 's' WHEN (ybbg5.DZLIM = 'AX25H') THEN 'r70' WHEN ybbg5.DZLIM IS NULL THEN '' ELSE ybbg5.DZLIM END as UBUYI, ypgda.FUG6J as FUG6J, ypgda.NF5AM as NF5AM, ypgda.FRCVC as FRCVC]\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=116.060 rows=6) (actual rows=0 loops=1)\n" + " ├─ (ypgda.I3L5A = ybbg5.id)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: ypgda\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (41-52)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Project\n" + " │ ├─ columns: [nd.id as LUEVY, nd.TW55N as TW55N, nd.FGG57 as IYDZV, nd.QRQXW as QRQXW, nd.IWV2H as CAECS, nd.ECXAJ as CJLLY, nma.DZLIM as SHP7H, nd.N5CC2 as HARAZ, Subquery\n" + " │ │ ├─ cacheable: false\n" + @@ -15993,7 +16973,7 @@ ORDER BY LUEVY`, " │ │ ├─ columns: [luevy xqdyt]\n" + " │ │ └─ keys: nd.id\n" + " │ │ as I3L5A, nd.ETAQ7 as FUG6J, nd.A75X7 as NF5AM, nd.FSK67 as FRCVC]\n" + - " │ └─ LeftOuterLookupJoin\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=3876.500 rows=6) (actual rows=0 loops=1)\n" + " │ ├─ TableAlias(nd)\n" + " │ │ └─ Table\n" + " │ │ └─ name: E2I7U\n" + @@ -16138,9 +17118,9 @@ ORDER BY sn.id ASC`, ExpectedEstimates: "Project\n" + " ├─ columns: [tvqg4.TW55N as FJVD7, lsm32.TW55N as KBXXJ, sn.NUMK2 as NUMK2, CASE WHEN it.DZLIM IS NULL THEN 'N/A' ELSE it.DZLIM END as TP6BK, sn.ECDKM as ECDKM, sn.KBO7R as KBO7R, CASE WHEN sn.YKSSU IS NULL THEN 'N/A' ELSE sn.YKSSU END as RQI4M, CASE WHEN sn.FHCYT IS NULL THEN 'N/A' ELSE sn.FHCYT END as RNVLS, sn.LETOE as LETOE]\n" + " └─ Sort(sn.id ASC)\n" + - " └─ LeftOuterLookupJoin\n" + - " ├─ LeftOuterLookupJoin\n" + - " │ ├─ LeftOuterMergeJoin\n" + + " └─ LeftOuterLookupJoin (estimated cost=4981.400 rows=69)\n" + + " ├─ LeftOuterLookupJoin (estimated cost=15867.300 rows=4802)\n" + + " │ ├─ LeftOuterMergeJoin (estimated cost=15859.600 rows=4802)\n" + " │ │ ├─ cmp: (sn.BRQP2 = tvqg4.id)\n" + " │ │ ├─ TableAlias(sn)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + @@ -16166,9 +17146,9 @@ ORDER BY sn.id ASC`, ExpectedAnalysis: "Project\n" + " ├─ columns: [tvqg4.TW55N as FJVD7, lsm32.TW55N as KBXXJ, sn.NUMK2 as NUMK2, CASE WHEN it.DZLIM IS NULL THEN 'N/A' ELSE it.DZLIM END as TP6BK, sn.ECDKM as ECDKM, sn.KBO7R as KBO7R, CASE WHEN sn.YKSSU IS NULL THEN 'N/A' ELSE sn.YKSSU END as RQI4M, CASE WHEN sn.FHCYT IS NULL THEN 'N/A' ELSE sn.FHCYT END as RNVLS, sn.LETOE as LETOE]\n" + " └─ Sort(sn.id ASC)\n" + - " └─ LeftOuterLookupJoin\n" + - " ├─ LeftOuterLookupJoin\n" + - " │ ├─ LeftOuterMergeJoin\n" + + " └─ LeftOuterLookupJoin (estimated cost=4981.400 rows=69) (actual rows=0 loops=1)\n" + + " ├─ LeftOuterLookupJoin (estimated cost=15867.300 rows=4802) (actual rows=0 loops=1)\n" + + " │ ├─ LeftOuterMergeJoin (estimated cost=15859.600 rows=4802) (actual rows=0 loops=1)\n" + " │ │ ├─ cmp: (sn.BRQP2 = tvqg4.id)\n" + " │ │ ├─ TableAlias(sn)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + @@ -16341,11 +17321,11 @@ ORDER BY rn.id ASC`, ExpectedEstimates: "Project\n" + " ├─ columns: [sdllr.TW55N as FZX4Y, jgt2h.LETOE as QWTOI, riiw6.TW55N as PDX5Y, ayfcd.NUMK2 as V45YB, ayfcd.LETOE as DAGQN, fa75y.TW55N as SFQTS, rn.HVHRZ as HVHRZ, CASE WHEN rn.YKSSU IS NULL THEN 'N/A' ELSE rn.YKSSU END as RQI4M, CASE WHEN rn.FHCYT IS NULL THEN 'N/A' ELSE rn.FHCYT END as RNVLS]\n" + " └─ Sort(rn.id ASC)\n" + - " └─ LeftOuterLookupJoin\n" + - " ├─ LeftOuterLookupJoin\n" + - " │ ├─ LeftOuterLookupJoin\n" + - " │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ ├─ LeftOuterMergeJoin\n" + + " └─ LeftOuterLookupJoin (estimated cost=15867.300 rows=4802)\n" + + " ├─ LeftOuterLookupJoin (estimated cost=15867.300 rows=4802)\n" + + " │ ├─ LeftOuterLookupJoin (estimated cost=25831.300 rows=4802)\n" + + " │ │ ├─ LeftOuterLookupJoin (estimated cost=48748.500 rows=14766)\n" + + " │ │ │ ├─ LeftOuterMergeJoin (estimated cost=83477.740 rows=14766)\n" + " │ │ │ │ ├─ cmp: (rn.WNUNU = jgt2h.id)\n" + " │ │ │ │ ├─ TableAlias(rn)\n" + " │ │ │ │ │ └─ IndexedTableAccess(QYWQD)\n" + @@ -16381,11 +17361,11 @@ ORDER BY rn.id ASC`, ExpectedAnalysis: "Project\n" + " ├─ columns: [sdllr.TW55N as FZX4Y, jgt2h.LETOE as QWTOI, riiw6.TW55N as PDX5Y, ayfcd.NUMK2 as V45YB, ayfcd.LETOE as DAGQN, fa75y.TW55N as SFQTS, rn.HVHRZ as HVHRZ, CASE WHEN rn.YKSSU IS NULL THEN 'N/A' ELSE rn.YKSSU END as RQI4M, CASE WHEN rn.FHCYT IS NULL THEN 'N/A' ELSE rn.FHCYT END as RNVLS]\n" + " └─ Sort(rn.id ASC)\n" + - " └─ LeftOuterLookupJoin\n" + - " ├─ LeftOuterLookupJoin\n" + - " │ ├─ LeftOuterLookupJoin\n" + - " │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ ├─ LeftOuterMergeJoin\n" + + " └─ LeftOuterLookupJoin (estimated cost=15867.300 rows=4802) (actual rows=0 loops=1)\n" + + " ├─ LeftOuterLookupJoin (estimated cost=15867.300 rows=4802) (actual rows=0 loops=1)\n" + + " │ ├─ LeftOuterLookupJoin (estimated cost=25831.300 rows=4802) (actual rows=0 loops=1)\n" + + " │ │ ├─ LeftOuterLookupJoin (estimated cost=48748.500 rows=14766) (actual rows=0 loops=1)\n" + + " │ │ │ ├─ LeftOuterMergeJoin (estimated cost=83477.740 rows=14766) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ cmp: (rn.WNUNU = jgt2h.id)\n" + " │ │ │ │ ├─ TableAlias(rn)\n" + " │ │ │ │ │ └─ IndexedTableAccess(QYWQD)\n" + @@ -16502,6 +17482,8 @@ ORDER BY id ASC`, " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (13-16)\n" + + " ├─ tableId: 2\n" + " └─ Filter\n" + " ├─ (noxn3.NUMK2 = 4)\n" + " └─ Project\n" + @@ -16519,6 +17501,8 @@ ORDER BY id ASC`, " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (13-16)\n" + + " ├─ tableId: 2\n" + " └─ Filter\n" + " ├─ (noxn3.NUMK2 = 4)\n" + " └─ Project\n" + diff --git a/enginetest/queries/query_plans.go b/enginetest/queries/query_plans.go index 7e54110dde..5225ce70b1 100644 --- a/enginetest/queries/query_plans.go +++ b/enginetest/queries/query_plans.go @@ -95,8 +95,8 @@ offset 1;`, " │ └─ Project\n" + " │ ├─ columns: [sum(cte.x) as SUM(x)]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(SUM(cte.x))\n" + - " │ ├─ Grouping()\n" + + " │ ├─ select: SUM(cte.x)\n" + + " │ ├─ group: \n" + " │ └─ TableAlias(cte)\n" + " │ └─ Table\n" + " │ ├─ name: xy\n" + @@ -112,8 +112,8 @@ offset 1;`, " │ └─ Project\n" + " │ ├─ columns: [sum(cte.x) as SUM(x)]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(SUM(cte.x))\n" + - " │ ├─ Grouping()\n" + + " │ ├─ select: SUM(cte.x)\n" + + " │ ├─ group: \n" + " │ └─ TableAlias(cte)\n" + " │ └─ Table\n" + " │ ├─ name: xy\n" + @@ -205,6 +205,8 @@ offset 1;`, " │ ├─ outerVisibility: true\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: false\n" + + " │ ├─ colSet: (9)\n" + + " │ ├─ tableId: 5\n" + " │ └─ Project\n" + " │ ├─ columns: [t2.y]\n" + " │ └─ Filter\n" + @@ -236,6 +238,8 @@ offset 1;`, " │ ├─ outerVisibility: true\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: false\n" + + " │ ├─ colSet: (9)\n" + + " │ ├─ tableId: 5\n" + " │ └─ Project\n" + " │ ├─ columns: [t2.y]\n" + " │ └─ Filter\n" + @@ -283,8 +287,8 @@ offset 1;`, ExpectedEstimates: "Project\n" + " ├─ columns: [count(two_pk.pk1) as count(pk1)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(two_pk.pk1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(two_pk.pk1)\n" + + " ├─ group: \n" + " └─ Table\n" + " ├─ name: two_pk\n" + " └─ columns: [pk1]\n" + @@ -292,8 +296,8 @@ offset 1;`, ExpectedAnalysis: "Project\n" + " ├─ columns: [count(two_pk.pk1) as count(pk1)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(two_pk.pk1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(two_pk.pk1)\n" + + " ├─ group: \n" + " └─ Table\n" + " ├─ name: two_pk\n" + " └─ columns: [pk1]\n" + @@ -516,7 +520,7 @@ From xy;`, " │ ├─ columns: [xy.x, xy.y]\n" + " │ └─ Filter\n" + " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + + " │ └─ LeftOuterMergeJoin (estimated cost=1014.120 rows=5)\n" + " │ ├─ cmp: (xy.x = uv.u)\n" + " │ ├─ IndexedTableAccess(xy)\n" + " │ │ ├─ index: [xy.x]\n" + @@ -537,7 +541,7 @@ From xy;`, " │ ├─ columns: [xy.x, xy.y]\n" + " │ └─ Filter\n" + " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + + " │ └─ LeftOuterMergeJoin (estimated cost=1014.120 rows=5)\n" + " │ ├─ cmp: (xy.x = uv.u)\n" + " │ ├─ IndexedTableAccess(xy)\n" + " │ │ ├─ index: [xy.x]\n" + @@ -561,7 +565,7 @@ From xy;`, " │ ├─ columns: [xy.x, xy.y]\n" + " │ └─ Filter\n" + " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + + " │ └─ LeftOuterMergeJoin (estimated cost=1014.120 rows=5)\n" + " │ ├─ cmp: (xy.x = uv.u)\n" + " │ ├─ IndexedTableAccess(xy)\n" + " │ │ ├─ index: [xy.x]\n" + @@ -582,7 +586,7 @@ From xy;`, " │ ├─ columns: [xy.x, xy.y]\n" + " │ └─ Filter\n" + " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + + " │ └─ LeftOuterMergeJoin (estimated cost=1014.120 rows=5)\n" + " │ ├─ cmp: (xy.x = uv.u)\n" + " │ ├─ IndexedTableAccess(xy)\n" + " │ │ ├─ index: [xy.x]\n" + @@ -655,11 +659,11 @@ From xy;`, ExpectedEstimates: "Project\n" + " ├─ columns: [count(1) as count(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ Project\n" + " ├─ columns: [xy.x, xy.y]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [uv.v]\n" + @@ -672,11 +676,11 @@ From xy;`, ExpectedAnalysis: "Project\n" + " ├─ columns: [count(1) as count(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ Project\n" + " ├─ columns: [xy.x, xy.y]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=2 loops=1)\n" + " ├─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [uv.v]\n" + @@ -717,9 +721,9 @@ From xy;`, ExpectedEstimates: "Project\n" + " ├─ columns: [count(1) as count(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ (xy.y = uv.u)\n" + " ├─ OrderedDistinct\n" + " │ └─ Project\n" + @@ -733,9 +737,9 @@ From xy;`, ExpectedAnalysis: "Project\n" + " ├─ columns: [count(1) as count(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ (xy.y = uv.u)\n" + " ├─ OrderedDistinct\n" + " │ └─ Project\n" + @@ -804,8 +808,8 @@ From xy;`, ExpectedEstimates: "Project\n" + " ├─ columns: [count(1) as count(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ Table\n" + " ├─ name: keyless\n" + " └─ columns: []\n" + @@ -813,8 +817,8 @@ From xy;`, ExpectedAnalysis: "Project\n" + " ├─ columns: [count(1) as count(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ Table\n" + " ├─ name: keyless\n" + " └─ columns: []\n" + @@ -903,9 +907,9 @@ From xy;`, ExpectedEstimates: "Project\n" + " ├─ columns: [count(1)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + - " └─ CrossJoin\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + + " └─ CrossJoin (estimated cost=4041.000 rows=5)\n" + " ├─ Table\n" + " │ ├─ name: uv\n" + " │ └─ columns: []\n" + @@ -916,9 +920,9 @@ From xy;`, ExpectedAnalysis: "Project\n" + " ├─ columns: [count(1)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + - " └─ CrossJoin\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + + " └─ CrossJoin (estimated cost=4041.000 rows=5) (actual rows=16 loops=1)\n" + " ├─ Table\n" + " │ ├─ name: uv\n" + " │ └─ columns: []\n" + @@ -947,6 +951,8 @@ From xy;`, " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 2\n" + " └─ Project\n" + " ├─ columns: [count(1) as count(*)]\n" + " └─ Project\n" + @@ -958,6 +964,8 @@ From xy;`, " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 2\n" + " └─ Project\n" + " ├─ columns: [count(1) as count(*)]\n" + " └─ Project\n" + @@ -1148,9 +1156,9 @@ WHERE ExpectedEstimates: "Project\n" + " ├─ columns: [countdistinct([stock1.s_i_id]) as COUNT(DISTINCT (s_i_id))]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNTDISTINCT([stock1.s_i_id]))\n" + - " ├─ Grouping()\n" + - " └─ HashJoin\n" + + " ├─ select: COUNTDISTINCT([stock1.s_i_id])\n" + + " ├─ group: \n" + + " └─ HashJoin (estimated cost=2808089.580 rows=1503029)\n" + " ├─ (stock1.s_i_id = order_line1.ol_i_id)\n" + " ├─ IndexedTableAccess(order_line1)\n" + " │ ├─ index: [order_line1.ol_w_id,order_line1.ol_d_id,order_line1.ol_o_id,order_line1.ol_number]\n" + @@ -1169,9 +1177,9 @@ WHERE ExpectedAnalysis: "Project\n" + " ├─ columns: [countdistinct([stock1.s_i_id]) as COUNT(DISTINCT (s_i_id))]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNTDISTINCT([stock1.s_i_id]))\n" + - " ├─ Grouping()\n" + - " └─ HashJoin\n" + + " ├─ select: COUNTDISTINCT([stock1.s_i_id])\n" + + " ├─ group: \n" + + " └─ HashJoin (estimated cost=2808089.580 rows=1503029) (actual rows=0 loops=1)\n" + " ├─ (stock1.s_i_id = order_line1.ol_i_id)\n" + " ├─ IndexedTableAccess(order_line1)\n" + " │ ├─ index: [order_line1.ol_w_id,order_line1.ol_d_id,order_line1.ol_o_id,order_line1.ol_number]\n" + @@ -1490,6 +1498,8 @@ where " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (1)\n" + + " ├─ tableId: 1\n" + " └─ Project\n" + " ├─ columns: [json_object('key1',1,'key2','abc') as JSON_OBJECT('key1', 1, 'key2', 'abc')]\n" + " └─ Table\n" + @@ -1502,6 +1512,8 @@ where " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (1)\n" + + " ├─ tableId: 1\n" + " └─ Project\n" + " ├─ columns: [json_object('key1',1,'key2','abc') as JSON_OBJECT('key1', 1, 'key2', 'abc')]\n" + " └─ Table\n" + @@ -1534,6 +1546,8 @@ where " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (1)\n" + + " ├─ tableId: 1\n" + " └─ Project\n" + " ├─ columns: [json_object('key1',1,'key2','abc') as JSON_OBJECT('key1', 1, 'key2', 'abc')]\n" + " └─ Table\n" + @@ -1546,6 +1560,8 @@ where " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (1)\n" + + " ├─ tableId: 1\n" + " └─ Project\n" + " ├─ columns: [json_object('key1',1,'key2','abc') as JSON_OBJECT('key1', 1, 'key2', 'abc')]\n" + " └─ Table\n" + @@ -1621,13 +1637,15 @@ where ExpectedEstimates: "Project\n" + " ├─ columns: [included_parts.sub_part, sum(included_parts.quantity) as total_quantity]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(included_parts.quantity), included_parts.sub_part)\n" + - " ├─ Grouping(included_parts.sub_part)\n" + + " ├─ select: SUM(included_parts.quantity), included_parts.sub_part\n" + + " ├─ group: included_parts.sub_part\n" + " └─ SubqueryAlias\n" + " ├─ name: included_parts\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (16-18)\n" + + " ├─ tableId: 5\n" + " └─ RecursiveCTE\n" + " └─ Union all\n" + " ├─ Project\n" + @@ -1659,13 +1677,15 @@ where ExpectedAnalysis: "Project\n" + " ├─ columns: [included_parts.sub_part, sum(included_parts.quantity) as total_quantity]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(included_parts.quantity), included_parts.sub_part)\n" + - " ├─ Grouping(included_parts.sub_part)\n" + + " ├─ select: SUM(included_parts.quantity), included_parts.sub_part\n" + + " ├─ group: included_parts.sub_part\n" + " └─ SubqueryAlias\n" + " ├─ name: included_parts\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (16-18)\n" + + " ├─ tableId: 5\n" + " └─ RecursiveCTE\n" + " └─ Union all\n" + " ├─ Project\n" + @@ -1843,6 +1863,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (10)\n" + + " ├─ tableId: 7\n" + " └─ Union distinct\n" + " ├─ Project\n" + " │ ├─ columns: [cte.s as s]\n" + @@ -1851,6 +1873,8 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (6)\n" + + " │ ├─ tableId: 3\n" + " │ └─ RecursiveCTE\n" + " │ └─ Union distinct\n" + " │ ├─ Project\n" + @@ -1900,6 +1924,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (10)\n" + + " ├─ tableId: 7\n" + " └─ Union distinct\n" + " ├─ Project\n" + " │ ├─ columns: [cte.s as s]\n" + @@ -1908,6 +1934,8 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (6)\n" + + " │ ├─ tableId: 3\n" + " │ └─ RecursiveCTE\n" + " │ └─ Union distinct\n" + " │ ├─ Project\n" + @@ -2053,6 +2081,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (10)\n" + + " ├─ tableId: 7\n" + " └─ Union distinct\n" + " ├─ Project\n" + " │ ├─ columns: [cte.s as s]\n" + @@ -2061,6 +2091,8 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (6)\n" + + " │ ├─ tableId: 3\n" + " │ └─ RecursiveCTE\n" + " │ └─ Union distinct\n" + " │ ├─ Project\n" + @@ -2087,6 +2119,8 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (9)\n" + + " │ ├─ tableId: 4\n" + " │ └─ RecursiveCTE\n" + " │ └─ Union distinct\n" + " │ ├─ Project\n" + @@ -2110,6 +2144,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (10)\n" + + " ├─ tableId: 7\n" + " └─ Union distinct\n" + " ├─ Project\n" + " │ ├─ columns: [cte.s as s]\n" + @@ -2118,6 +2154,8 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (6)\n" + + " │ ├─ tableId: 3\n" + " │ └─ RecursiveCTE\n" + " │ └─ Union distinct\n" + " │ ├─ Project\n" + @@ -2144,6 +2182,8 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (9)\n" + + " │ ├─ tableId: 4\n" + " │ └─ RecursiveCTE\n" + " │ └─ Union distinct\n" + " │ ├─ Project\n" + @@ -2493,7 +2533,7 @@ Select * from ( ExpectedEstimates: "Project\n" + " ├─ columns: [mytable.s]\n" + " └─ Sort(mytable.i ASC)\n" + - " └─ SemiJoin\n" + + " └─ SemiJoin (estimated cost=7.545 rows=3)\n" + " ├─ (mytable.i = othertable.i2)\n" + " ├─ Table\n" + " │ └─ name: mytable\n" + @@ -2505,7 +2545,7 @@ Select * from ( ExpectedAnalysis: "Project\n" + " ├─ columns: [mytable.s]\n" + " └─ Sort(mytable.i ASC)\n" + - " └─ SemiJoin\n" + + " └─ SemiJoin (estimated cost=7.545 rows=3) (actual rows=3 loops=1)\n" + " ├─ (mytable.i = othertable.i2)\n" + " ├─ Table\n" + " │ └─ name: mytable\n" + @@ -2544,7 +2584,7 @@ Select * from ( ExpectedEstimates: "Project\n" + " ├─ columns: [rs.r, rs.s, xy.x, xy.y]\n" + " └─ Sort(rs.r ASC, xy.x ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=2032.530 rows=1250)\n" + " ├─ cmp: (rs.s = xy.y)\n" + " ├─ IndexedTableAccess(rs)\n" + " │ ├─ index: [rs.s]\n" + @@ -2558,7 +2598,7 @@ Select * from ( ExpectedAnalysis: "Project\n" + " ├─ columns: [rs.r, rs.s, xy.x, xy.y]\n" + " └─ Sort(rs.r ASC, xy.x ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=2032.530 rows=1250) (actual rows=5 loops=1)\n" + " ├─ cmp: (rs.s = xy.y)\n" + " ├─ IndexedTableAccess(rs)\n" + " │ ├─ index: [rs.s]\n" + @@ -2622,7 +2662,9 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + - " │ └─ MergeJoin\n" + + " │ ├─ colSet: (7-10)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ MergeJoin (estimated cost=2030.000 rows=1000)\n" + " │ ├─ cmp: (ab.a = xy.y)\n" + " │ ├─ IndexedTableAccess(ab)\n" + " │ │ ├─ index: [ab.a]\n" + @@ -2648,7 +2690,9 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + - " │ └─ MergeJoin\n" + + " │ ├─ colSet: (7-10)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ MergeJoin (estimated cost=2030.000 rows=1000) (actual rows=4 loops=1)\n" + " │ ├─ cmp: (ab.a = xy.y)\n" + " │ ├─ IndexedTableAccess(ab)\n" + " │ │ ├─ index: [ab.a]\n" + @@ -2737,7 +2781,7 @@ Select * from ( " └─ columns: [x y]\n" + "", ExpectedEstimates: "Sort(rs.r ASC, xy.x ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=2030.000 rows=1000)\n" + " ├─ cmp: (rs.s = xy.y)\n" + " ├─ IndexedTableAccess(rs)\n" + " │ ├─ index: [rs.s]\n" + @@ -2749,7 +2793,7 @@ Select * from ( " └─ columns: [x y]\n" + "", ExpectedAnalysis: "Sort(rs.r ASC, xy.x ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=2030.000 rows=1000) (actual rows=3 loops=1)\n" + " ├─ cmp: (rs.s = xy.y)\n" + " ├─ IndexedTableAccess(rs)\n" + " │ ├─ index: [rs.s]\n" + @@ -3181,7 +3225,7 @@ Select * from ( ExpectedEstimates: "Project\n" + " ├─ columns: [ab.a, ab.b]\n" + " └─ Sort(ab.a ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ (ab.b = Subquery(select y from xy where y in (select v from uv where v = b)))\n" + " ├─ Table\n" + " │ └─ name: pq\n" + @@ -3192,7 +3236,7 @@ Select * from ( ExpectedAnalysis: "Project\n" + " ├─ columns: [ab.a, ab.b]\n" + " └─ Sort(ab.a ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ (ab.b = Subquery(select y from xy where y in (select v from uv where v = b)))\n" + " ├─ Table\n" + " │ └─ name: pq\n" + @@ -3289,7 +3333,7 @@ Select * from ( " │ └─ keys: xy.x\n" + " │ as is_one]\n" + " └─ Sort(xy.y ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ Table\n" + " │ └─ name: uv\n" + " └─ IndexedTableAccess(xy)\n" + @@ -3321,7 +3365,7 @@ Select * from ( " │ └─ keys: xy.x\n" + " │ as is_one]\n" + " └─ Sort(xy.y ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ Table\n" + " │ └─ name: uv\n" + " └─ IndexedTableAccess(xy)\n" + @@ -3392,6 +3436,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (7,8)\n" + + " ├─ tableId: 3\n" + " └─ Project\n" + " ├─ columns: [xy.y, Subquery\n" + " │ ├─ cacheable: false\n" + @@ -3412,7 +3458,7 @@ Select * from ( " │ └─ Table\n" + " │ └─ name: \n" + " │ as is_one]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ Table\n" + " │ └─ name: uv\n" + " └─ IndexedTableAccess(xy)\n" + @@ -3425,6 +3471,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (7,8)\n" + + " ├─ tableId: 3\n" + " └─ Project\n" + " ├─ columns: [xy.y, Subquery\n" + " │ ├─ cacheable: false\n" + @@ -3445,7 +3493,7 @@ Select * from ( " │ └─ Table\n" + " │ └─ name: \n" + " │ as is_one]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ Table\n" + " │ └─ name: uv\n" + " └─ IndexedTableAccess(xy)\n" + @@ -3583,6 +3631,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (3,4)\n" + + " ├─ tableId: 2\n" + " └─ IndexedTableAccess(mytable)\n" + " ├─ index: [mytable.i]\n" + " ├─ filters: [{[NULL, ∞)}]\n" + @@ -3595,6 +3645,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (3,4)\n" + + " ├─ tableId: 2\n" + " └─ IndexedTableAccess(mytable)\n" + " ├─ index: [mytable.i]\n" + " ├─ filters: [{[NULL, ∞)}]\n" + @@ -3625,6 +3677,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (3,4)\n" + + " ├─ tableId: 2\n" + " └─ TableAlias(t)\n" + " └─ IndexedTableAccess(mytable)\n" + " ├─ index: [mytable.i]\n" + @@ -3636,6 +3690,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (3,4)\n" + + " ├─ tableId: 2\n" + " └─ TableAlias(t)\n" + " └─ IndexedTableAccess(mytable)\n" + " ├─ index: [mytable.i]\n" + @@ -3691,6 +3747,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (8)\n" + + " ├─ tableId: 4\n" + " └─ RecursiveCTE\n" + " └─ Union distinct\n" + " ├─ Project\n" + @@ -3714,6 +3772,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (8)\n" + + " ├─ tableId: 4\n" + " └─ RecursiveCTE\n" + " └─ Union distinct\n" + " ├─ Project\n" + @@ -3807,7 +3867,7 @@ Select * from ( " ├─ columns: [xy.x, xy.y]\n" + " └─ Filter\n" + " ├─ cte1.u IS NULL\n" + - " └─ LeftOuterHashJoinExcludingNulls\n" + + " └─ LeftOuterHashJoinExcludingNulls (estimated cost=1311.250 rows=125)\n" + " ├─ (xy.x = cte1.u)\n" + " ├─ Table\n" + " │ └─ name: xy\n" + @@ -3855,7 +3915,7 @@ Select * from ( " ├─ columns: [xy.x, xy.y]\n" + " └─ Filter\n" + " ├─ cte1.u IS NULL\n" + - " └─ LeftOuterHashJoinExcludingNulls\n" + + " └─ LeftOuterHashJoinExcludingNulls (estimated cost=1311.250 rows=125) (actual rows=12 loops=1)\n" + " ├─ (xy.x = cte1.u)\n" + " ├─ Table\n" + " │ └─ name: xy\n" + @@ -4093,9 +4153,11 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (5,6)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [ab.a, uv.v]\n" + - " │ └─ LookupJoin\n" + + " │ └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " │ ├─ Table\n" + " │ │ ├─ name: uv\n" + " │ │ └─ columns: [u v]\n" + @@ -4130,9 +4192,11 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (5,6)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [ab.a, uv.v]\n" + - " │ └─ LookupJoin\n" + + " │ └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " │ ├─ Table\n" + " │ │ ├─ name: uv\n" + " │ │ └─ columns: [u v]\n" + @@ -4506,6 +4570,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5,6)\n" + + " ├─ tableId: 3\n" + " └─ Table\n" + " ├─ name: ab\n" + " └─ columns: [a b]\n" + @@ -4515,6 +4581,8 @@ Select * from ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5,6)\n" + + " ├─ tableId: 3\n" + " └─ Table\n" + " ├─ name: ab\n" + " └─ columns: [a b]\n" + @@ -4704,9 +4772,9 @@ Select * from ( ExpectedEstimates: "Project\n" + " ├─ columns: [count(1) as cnt]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping(ab.a)\n" + - " └─ SemiLookupJoin\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: ab.a\n" + + " └─ SemiLookupJoin (estimated cost=3300.000 rows=1000)\n" + " ├─ Table\n" + " │ └─ name: ab\n" + " └─ IndexedTableAccess(xy)\n" + @@ -4717,9 +4785,9 @@ Select * from ( ExpectedAnalysis: "Project\n" + " ├─ columns: [count(1) as cnt]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping(ab.a)\n" + - " └─ SemiLookupJoin\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: ab.a\n" + + " └─ SemiLookupJoin (estimated cost=3300.000 rows=1000) (actual rows=4 loops=1)\n" + " ├─ Table\n" + " │ └─ name: ab\n" + " └─ IndexedTableAccess(xy)\n" + @@ -4765,6 +4833,8 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (12,13)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [count(1) as u, 123 as v]\n" + " │ └─ Project\n" + @@ -4786,6 +4856,8 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (12,13)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [count(1) as u, 123 as v]\n" + " │ └─ Project\n" + @@ -4837,11 +4909,13 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (12,13)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [count(1) as u, 123 as v]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNT(1))\n" + - " │ ├─ Grouping()\n" + + " │ ├─ select: COUNT(1)\n" + + " │ ├─ group: \n" + " │ └─ EmptyTable\n" + " └─ HashLookup\n" + " ├─ left-key: (uv.u)\n" + @@ -4859,11 +4933,13 @@ Select * from ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (12,13)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [count(1) as u, 123 as v]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNT(1))\n" + - " │ ├─ Grouping()\n" + + " │ ├─ select: COUNT(1)\n" + + " │ ├─ group: \n" + " │ └─ EmptyTable\n" + " └─ HashLookup\n" + " ├─ left-key: (uv.u)\n" + @@ -4955,8 +5031,8 @@ Select * from ( " │ └─ Project\n" + " │ ├─ columns: [count(1) as u, 123 as v]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNT(1))\n" + - " │ ├─ Grouping()\n" + + " │ ├─ select: COUNT(1)\n" + + " │ ├─ group: \n" + " │ └─ EmptyTable\n" + " └─ Table\n" + " └─ name: one_pk\n" + @@ -4971,8 +5047,8 @@ Select * from ( " │ └─ Project\n" + " │ ├─ columns: [count(1) as u, 123 as v]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNT(1))\n" + - " │ ├─ Grouping()\n" + + " │ ├─ select: COUNT(1)\n" + + " │ ├─ group: \n" + " │ └─ EmptyTable\n" + " └─ Table\n" + " └─ name: one_pk\n" + @@ -5075,16 +5151,16 @@ Select * from ( " ├─ columns: [count(1) as count(*), Subquery\n" + " │ ├─ cacheable: true\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(mytable.i)\n" + - " │ ├─ Grouping(mytable.i)\n" + + " │ ├─ select: mytable.i\n" + + " │ ├─ group: mytable.i\n" + " │ └─ IndexedTableAccess(mytable)\n" + " │ ├─ index: [mytable.i]\n" + " │ ├─ filters: [{[1, 1]}]\n" + " │ └─ columns: [i]\n" + " │ as (SELECT i FROM mytable WHERE i = 1 group by i)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ Table\n" + " └─ name: \n" + "", @@ -5092,16 +5168,16 @@ Select * from ( " ├─ columns: [count(1) as count(*), Subquery\n" + " │ ├─ cacheable: true\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(mytable.i)\n" + - " │ ├─ Grouping(mytable.i)\n" + + " │ ├─ select: mytable.i\n" + + " │ ├─ group: mytable.i\n" + " │ └─ IndexedTableAccess(mytable)\n" + " │ ├─ index: [mytable.i]\n" + " │ ├─ filters: [{[1, 1]}]\n" + " │ └─ columns: [i]\n" + " │ as (SELECT i FROM mytable WHERE i = 1 group by i)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ Table\n" + " └─ name: \n" + "", @@ -5150,6 +5226,8 @@ Select * from ( " │ ├─ outerVisibility: true\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (7,8)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Table\n" + " │ ├─ name: ab\n" + " │ └─ columns: [a b]\n" + @@ -5169,6 +5247,8 @@ Select * from ( " │ ├─ outerVisibility: true\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (7,8)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Table\n" + " │ ├─ name: ab\n" + " │ └─ columns: [a b]\n" + @@ -5195,7 +5275,7 @@ Select * from ( " └─ columns: [a b]\n" + "", ExpectedEstimates: "Sort(xy.x ASC)\n" + - " └─ SemiLookupJoin\n" + + " └─ SemiLookupJoin (estimated cost=3300.000 rows=1000)\n" + " ├─ Table\n" + " │ └─ name: xy\n" + " └─ IndexedTableAccess(ab)\n" + @@ -5204,7 +5284,7 @@ Select * from ( " └─ keys: xy.x\n" + "", ExpectedAnalysis: "Sort(xy.x ASC)\n" + - " └─ SemiLookupJoin\n" + + " └─ SemiLookupJoin (estimated cost=3300.000 rows=1000) (actual rows=4 loops=1)\n" + " ├─ Table\n" + " │ └─ name: xy\n" + " └─ IndexedTableAccess(ab)\n" + @@ -5315,11 +5395,13 @@ inner join xy on a = x;`, " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (7-10)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Project\n" + " │ ├─ columns: [ab.a, ab.b, uv.u, uv.v]\n" + - " │ └─ SemiJoin\n" + + " │ └─ SemiJoin (estimated cost=15.100 rows=5)\n" + " │ ├─ (uv.u = pq.p)\n" + - " │ ├─ LeftOuterMergeJoin\n" + + " │ ├─ LeftOuterMergeJoin (estimated cost=1014.120 rows=5)\n" + " │ │ ├─ cmp: (ab.a = uv.u)\n" + " │ │ ├─ IndexedTableAccess(ab)\n" + " │ │ │ ├─ index: [ab.a]\n" + @@ -5341,11 +5423,13 @@ inner join xy on a = x;`, " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (7-10)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Project\n" + " │ ├─ columns: [ab.a, ab.b, uv.u, uv.v]\n" + - " │ └─ SemiJoin\n" + + " │ └─ SemiJoin (estimated cost=15.100 rows=5) (actual rows=4 loops=1)\n" + " │ ├─ (uv.u = pq.p)\n" + - " │ ├─ LeftOuterMergeJoin\n" + + " │ ├─ LeftOuterMergeJoin (estimated cost=1014.120 rows=5) (actual rows=4 loops=1)\n" + " │ │ ├─ cmp: (ab.a = uv.u)\n" + " │ │ ├─ IndexedTableAccess(ab)\n" + " │ │ │ ├─ index: [ab.a]\n" + @@ -5520,11 +5604,13 @@ where exists (select * from pq where a = p) " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (5,6)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [ab.a, ab.b]\n" + " │ └─ Filter\n" + " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + + " │ └─ LeftOuterMergeJoin (estimated cost=1014.120 rows=5)\n" + " │ ├─ cmp: (ab.a = uv.u)\n" + " │ ├─ IndexedTableAccess(ab)\n" + " │ │ ├─ index: [ab.a]\n" + @@ -5554,11 +5640,13 @@ where exists (select * from pq where a = p) " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (5,6)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [ab.a, ab.b]\n" + " │ └─ Filter\n" + " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + + " │ └─ LeftOuterMergeJoin (estimated cost=1014.120 rows=5) (actual rows=4 loops=1)\n" + " │ ├─ cmp: (ab.a = uv.u)\n" + " │ ├─ IndexedTableAccess(ab)\n" + " │ │ ├─ index: [ab.a]\n" + @@ -5697,9 +5785,11 @@ inner join pq on true " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (5-8)\n" + + " │ │ ├─ tableId: 3\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [ab.a, ab.b, xy.x, xy.y]\n" + - " │ │ └─ CrossJoin\n" + + " │ │ └─ CrossJoin (estimated cost=1010001.000 rows=1250)\n" + " │ │ ├─ Table\n" + " │ │ │ ├─ name: xy\n" + " │ │ │ └─ columns: [x y]\n" + @@ -5726,9 +5816,11 @@ inner join pq on true " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (5-8)\n" + + " │ │ ├─ tableId: 3\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [ab.a, ab.b, xy.x, xy.y]\n" + - " │ │ └─ CrossJoin\n" + + " │ │ └─ CrossJoin (estimated cost=1010001.000 rows=1250) (actual rows=16 loops=1)\n" + " │ │ ├─ Table\n" + " │ │ │ ├─ name: xy\n" + " │ │ │ └─ columns: [x y]\n" + @@ -5825,11 +5917,13 @@ inner join pq on true " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (5,6)\n" + + " │ │ ├─ tableId: 3\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [ab.a, ab.b]\n" + " │ │ └─ Filter\n" + " │ │ ├─ xy.x IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin\n" + + " │ │ └─ LeftOuterMergeJoin (estimated cost=2032.530 rows=1250)\n" + " │ │ ├─ cmp: (ab.a = xy.x)\n" + " │ │ ├─ IndexedTableAccess(ab)\n" + " │ │ │ ├─ index: [ab.a]\n" + @@ -5860,11 +5954,13 @@ inner join pq on true " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (5,6)\n" + + " │ │ ├─ tableId: 3\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [ab.a, ab.b]\n" + " │ │ └─ Filter\n" + " │ │ ├─ xy.x IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin\n" + + " │ │ └─ LeftOuterMergeJoin (estimated cost=2032.530 rows=1250) (actual rows=4 loops=1)\n" + " │ │ ├─ cmp: (ab.a = xy.x)\n" + " │ │ ├─ IndexedTableAccess(ab)\n" + " │ │ │ ├─ index: [ab.a]\n" + @@ -6076,9 +6172,9 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [mytable.i]\n" + " └─ Sort(othertable.i2 ASC, t4.s2 ASC)\n" + - " └─ LeftOuterJoin\n" + + " └─ LeftOuterJoin (estimated cost=8.090 rows=3)\n" + " ├─ (mytable.i = t4.i2)\n" + - " ├─ MergeJoin\n" + + " ├─ MergeJoin (estimated cost=6.090 rows=3)\n" + " │ ├─ cmp: (mytable.i = othertable.i2)\n" + " │ ├─ IndexedTableAccess(mytable)\n" + " │ │ ├─ index: [mytable.i,mytable.s]\n" + @@ -6096,9 +6192,9 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [mytable.i]\n" + " └─ Sort(othertable.i2 ASC, t4.s2 ASC)\n" + - " └─ LeftOuterJoin\n" + + " └─ LeftOuterJoin (estimated cost=8.090 rows=3) (actual rows=3 loops=1)\n" + " ├─ (mytable.i = t4.i2)\n" + - " ├─ MergeJoin\n" + + " ├─ MergeJoin (estimated cost=6.090 rows=3) (actual rows=3 loops=1)\n" + " │ ├─ cmp: (mytable.i = othertable.i2)\n" + " │ ├─ IndexedTableAccess(mytable)\n" + " │ │ ├─ index: [mytable.i,mytable.s]\n" + @@ -7298,9 +7394,11 @@ inner join pq on true " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (5-7)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [mytable.i, othertable.i2, othertable.s2]\n" + - " │ └─ MergeJoin\n" + + " │ └─ MergeJoin (estimated cost=6.090 rows=3)\n" + " │ ├─ cmp: (mytable.i = othertable.i2)\n" + " │ ├─ IndexedTableAccess(mytable)\n" + " │ │ ├─ index: [mytable.i,mytable.s]\n" + @@ -7327,9 +7425,11 @@ inner join pq on true " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (5-7)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [mytable.i, othertable.i2, othertable.s2]\n" + - " │ └─ MergeJoin\n" + + " │ └─ MergeJoin (estimated cost=6.090 rows=3) (actual rows=3 loops=1)\n" + " │ ├─ cmp: (mytable.i = othertable.i2)\n" + " │ ├─ IndexedTableAccess(mytable)\n" + " │ │ ├─ index: [mytable.i,mytable.s]\n" + @@ -7403,9 +7503,11 @@ inner join pq on true " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (7-9)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Project\n" + " │ ├─ columns: [mytable.i, othertable.i2, othertable.s2]\n" + - " │ └─ MergeJoin\n" + + " │ └─ MergeJoin (estimated cost=6.090 rows=3)\n" + " │ ├─ cmp: (mytable.i = othertable.i2)\n" + " │ ├─ IndexedTableAccess(mytable)\n" + " │ │ ├─ index: [mytable.i,mytable.s]\n" + @@ -7432,9 +7534,11 @@ inner join pq on true " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (7-9)\n" + + " │ ├─ tableId: 4\n" + " │ └─ Project\n" + " │ ├─ columns: [mytable.i, othertable.i2, othertable.s2]\n" + - " │ └─ MergeJoin\n" + + " │ └─ MergeJoin (estimated cost=6.090 rows=3) (actual rows=3 loops=1)\n" + " │ ├─ cmp: (mytable.i = othertable.i2)\n" + " │ ├─ IndexedTableAccess(mytable)\n" + " │ │ ├─ index: [mytable.i,mytable.s]\n" + @@ -7637,6 +7741,8 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: false\n" + + " ├─ colSet: (20,21)\n" + + " ├─ tableId: 4\n" + " └─ Project\n" + " ├─ columns: [one_pk.pk, rand() as r]\n" + " └─ Table\n" + @@ -7665,6 +7771,8 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: false\n" + + " ├─ colSet: (20,21)\n" + + " ├─ tableId: 4\n" + " └─ Project\n" + " ├─ columns: [one_pk.pk, rand() as r]\n" + " └─ Table\n" + @@ -7740,6 +7848,8 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: false\n" + + " ├─ colSet: (20,21)\n" + + " ├─ tableId: 4\n" + " └─ Project\n" + " ├─ columns: [one_pk.pk, rand() as r]\n" + " └─ Table\n" + @@ -7768,6 +7878,8 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: false\n" + + " ├─ colSet: (20,21)\n" + + " ├─ tableId: 4\n" + " └─ Project\n" + " ├─ columns: [one_pk.pk, rand() as r]\n" + " └─ Table\n" + @@ -10761,7 +10873,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [lefttable.i, righttable.s]\n" + " └─ Sort(lefttable.i ASC)\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=10.090 rows=3)\n" + " ├─ ((lefttable.i = righttable.i) AND (righttable.s = lefttable.s))\n" + " ├─ TableAlias(righttable)\n" + " │ └─ Table\n" + @@ -10775,7 +10887,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [lefttable.i, righttable.s]\n" + " └─ Sort(lefttable.i ASC)\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=10.090 rows=3) (actual rows=3 loops=1)\n" + " ├─ ((lefttable.i = righttable.i) AND (righttable.s = lefttable.s))\n" + " ├─ TableAlias(righttable)\n" + " │ └─ Table\n" + @@ -11797,6 +11909,8 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (3,4)\n" + + " ├─ tableId: 2\n" + " └─ IndexedTableAccess(othertable)\n" + " ├─ index: [othertable.i2]\n" + " ├─ filters: [{[1, 1]}]\n" + @@ -11807,6 +11921,8 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (3,4)\n" + + " ├─ tableId: 2\n" + " └─ IndexedTableAccess(othertable)\n" + " ├─ index: [othertable.i2]\n" + " ├─ filters: [{[1, 1]}]\n" + @@ -12246,7 +12362,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [dt1.i]\n" + " └─ Sort(dt1.i ASC)\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=10.090 rows=3)\n" + " ├─ (dt1.date_col = DATE(date_sub(dt2.timestamp_col,INTERVAL 2 DAY)))\n" + " ├─ TableAlias(dt2)\n" + " │ └─ Table\n" + @@ -12260,7 +12376,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [dt1.i]\n" + " └─ Sort(dt1.i ASC)\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=10.090 rows=3) (actual rows=2 loops=1)\n" + " ├─ (dt1.date_col = DATE(date_sub(dt2.timestamp_col,INTERVAL 2 DAY)))\n" + " ├─ TableAlias(dt2)\n" + " │ └─ Table\n" + @@ -12691,9 +12807,9 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, tpk.pk1, tpk2.pk1, tpk.pk2, tpk2.pk2]\n" + " └─ Sort(one_pk.pk ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=16.090 rows=5)\n" + " ├─ (((one_pk.pk - 1) = tpk2.pk1) AND (one_pk.pk = tpk2.pk2))\n" + - " ├─ MergeJoin\n" + + " ├─ MergeJoin (estimated cost=8.120 rows=4)\n" + " │ ├─ cmp: (one_pk.pk = tpk.pk1)\n" + " │ ├─ sel: ((one_pk.pk - 1) = tpk.pk2)\n" + " │ ├─ IndexedTableAccess(one_pk)\n" + @@ -12716,9 +12832,9 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, tpk.pk1, tpk2.pk1, tpk.pk2, tpk2.pk2]\n" + " └─ Sort(one_pk.pk ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=16.090 rows=5) (actual rows=1 loops=1)\n" + " ├─ (((one_pk.pk - 1) = tpk2.pk1) AND (one_pk.pk = tpk2.pk2))\n" + - " ├─ MergeJoin\n" + + " ├─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=1 loops=1)\n" + " │ ├─ cmp: (one_pk.pk = tpk.pk1)\n" + " │ ├─ sel: ((one_pk.pk - 1) = tpk.pk2)\n" + " │ ├─ IndexedTableAccess(one_pk)\n" + @@ -13061,7 +13177,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (tpk2.pk2, tpk2.pk1)\n" + " ├─ right-key: (tpk.pk1, tpk.pk2)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.150 rows=5)\n" + " ├─ cmp: ((tpk.pk1, tpk.pk2) = (one_pk.pk, one_pk.pk))\n" + " ├─ TableAlias(tpk)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + @@ -13084,7 +13200,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (tpk2.pk2, tpk2.pk1)\n" + " ├─ right-key: (tpk.pk1, tpk.pk2)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.150 rows=5) (actual rows=4 loops=1)\n" + " ├─ cmp: ((tpk.pk1, tpk.pk2) = (one_pk.pk, one_pk.pk))\n" + " ├─ TableAlias(tpk)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + @@ -13357,7 +13473,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: ((nt2.i + 1))\n" + " ├─ right-key: (one_pk.pk)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + " ├─ cmp: (nt.i = one_pk.pk)\n" + " ├─ TableAlias(nt)\n" + " │ └─ IndexedTableAccess(niltable)\n" + @@ -13380,7 +13496,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: ((nt2.i + 1))\n" + " ├─ right-key: (one_pk.pk)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=6 loops=1)\n" + " ├─ cmp: (nt.i = one_pk.pk)\n" + " ├─ TableAlias(nt)\n" + " │ └─ IndexedTableAccess(niltable)\n" + @@ -13886,7 +14002,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [l.i, r.i2]\n" + " └─ Sort(l.i ASC)\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=37.360 rows=7)\n" + " ├─ (l.i2 <=> r.i2)\n" + " ├─ TableAlias(r)\n" + " │ └─ Table\n" + @@ -13900,7 +14016,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [l.i, r.i2]\n" + " └─ Sort(l.i ASC)\n" + - " └─ InnerJoin\n" + + " └─ InnerJoin (estimated cost=37.360 rows=7) (actual rows=12 loops=1)\n" + " ├─ (l.i2 <=> r.i2)\n" + " ├─ TableAlias(r)\n" + " │ └─ Table\n" + @@ -14097,7 +14213,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: ((a.pk1, a.pk2) = (b.pk1, b.pk2))\n" + " ├─ TableAlias(a)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + @@ -14111,7 +14227,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedAnalysis: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: ((a.pk1, a.pk2) = (b.pk1, b.pk2))\n" + " ├─ TableAlias(a)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + @@ -14145,7 +14261,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ TableAlias(a)\n" + " │ └─ Table\n" + " │ ├─ name: two_pk\n" + @@ -14157,7 +14273,7 @@ inner join pq on true " └─ keys: a.pk2, a.pk1\n" + "", ExpectedAnalysis: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ TableAlias(a)\n" + " │ └─ Table\n" + " │ ├─ name: two_pk\n" + @@ -14196,7 +14312,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: ((a.pk1, a.pk2) = (b.pk1, b.pk2))\n" + " ├─ TableAlias(a)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + @@ -14210,7 +14326,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedAnalysis: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: ((a.pk1, a.pk2) = (b.pk1, b.pk2))\n" + " ├─ TableAlias(a)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + @@ -14251,7 +14367,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.150 rows=5)\n" + " ├─ cmp: (((a.pk1 + 1), (a.pk2 + 1)) = (b.pk1, b.pk2))\n" + " ├─ TableAlias(a)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + @@ -14265,7 +14381,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedAnalysis: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.150 rows=5) (actual rows=1 loops=1)\n" + " ├─ cmp: (((a.pk1 + 1), (a.pk2 + 1)) = (b.pk1, b.pk2))\n" + " ├─ TableAlias(a)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + @@ -14306,7 +14422,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: ((a.pk1, a.pk2) = (b.pk1, b.pk2))\n" + " ├─ TableAlias(a)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + @@ -14320,7 +14436,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedAnalysis: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: ((a.pk1, a.pk2) = (b.pk1, b.pk2))\n" + " ├─ TableAlias(a)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + @@ -14354,7 +14470,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ TableAlias(a)\n" + " │ └─ Table\n" + " │ ├─ name: two_pk\n" + @@ -14366,7 +14482,7 @@ inner join pq on true " └─ keys: a.pk2, a.pk1\n" + "", ExpectedAnalysis: "Sort(a.pk1 ASC, a.pk2 ASC, b.pk1 ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ TableAlias(a)\n" + " │ └─ Table\n" + " │ ├─ name: two_pk\n" + @@ -14407,7 +14523,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.c5, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.c5 ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -14421,7 +14537,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.c5, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.c5 ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -14464,7 +14580,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [opk.c5, tpk.pk1, tpk.pk2]\n" + " └─ Sort(opk.c5 ASC, tpk.pk1 ASC, tpk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: (opk.pk = tpk.pk1)\n" + " ├─ TableAlias(opk)\n" + " │ └─ IndexedTableAccess(one_pk)\n" + @@ -14480,7 +14596,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [opk.c5, tpk.pk1, tpk.pk2]\n" + " └─ Sort(opk.c5 ASC, tpk.pk1 ASC, tpk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (opk.pk = tpk.pk1)\n" + " ├─ TableAlias(opk)\n" + " │ └─ IndexedTableAccess(one_pk)\n" + @@ -14525,7 +14641,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [opk.c5, tpk.pk1, tpk.pk2]\n" + " └─ Sort(opk.c5 ASC, tpk.pk1 ASC, tpk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: (opk.pk = tpk.pk1)\n" + " ├─ TableAlias(opk)\n" + " │ └─ IndexedTableAccess(one_pk)\n" + @@ -14541,7 +14657,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [opk.c5, tpk.pk1, tpk.pk2]\n" + " └─ Sort(opk.c5 ASC, tpk.pk1 ASC, tpk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (opk.pk = tpk.pk1)\n" + " ├─ TableAlias(opk)\n" + " │ └─ IndexedTableAccess(one_pk)\n" + @@ -14586,7 +14702,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [opk.c5, tpk.pk1, tpk.pk2]\n" + " └─ Sort(opk.c5 ASC, tpk.pk1 ASC, tpk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: (opk.pk = tpk.pk1)\n" + " ├─ TableAlias(opk)\n" + " │ └─ IndexedTableAccess(one_pk)\n" + @@ -14602,7 +14718,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [opk.c5, tpk.pk1, tpk.pk2]\n" + " └─ Sort(opk.c5 ASC, tpk.pk1 ASC, tpk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (opk.pk = tpk.pk1)\n" + " ├─ TableAlias(opk)\n" + " │ └─ IndexedTableAccess(one_pk)\n" + @@ -14645,7 +14761,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.c5, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.c5 ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -14659,7 +14775,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.c5, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.c5 ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -14990,7 +15106,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Sort(niltable.i ASC, niltable.f ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ IndexedTableAccess(niltable)\n" + " │ ├─ index: [niltable.i]\n" + @@ -15004,7 +15120,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Sort(niltable.i ASC, niltable.f ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=6 loops=1)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ IndexedTableAccess(niltable)\n" + " │ ├─ index: [niltable.i]\n" + @@ -15048,7 +15164,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Sort(niltable.i ASC, niltable.f ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=9.170 rows=5)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ Filter\n" + " │ ├─ (NOT(niltable.f IS NULL))\n" + @@ -15064,7 +15180,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Sort(niltable.i ASC, niltable.f ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=9.170 rows=5) (actual rows=3 loops=1)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ Filter\n" + " │ ├─ (NOT(niltable.f IS NULL))\n" + @@ -15113,7 +15229,7 @@ inner join pq on true " └─ Sort(niltable.i ASC, niltable.f ASC)\n" + " └─ Filter\n" + " ├─ (one_pk.pk > 0)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ IndexedTableAccess(niltable)\n" + " │ ├─ index: [niltable.i]\n" + @@ -15129,7 +15245,7 @@ inner join pq on true " └─ Sort(niltable.i ASC, niltable.f ASC)\n" + " └─ Filter\n" + " ├─ (one_pk.pk > 0)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=6 loops=1)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ IndexedTableAccess(niltable)\n" + " │ ├─ index: [niltable.i]\n" + @@ -15173,7 +15289,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Sort(niltable.i ASC, niltable.f ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ sel: (one_pk.pk > 0)\n" + " ├─ IndexedTableAccess(niltable)\n" + @@ -15188,7 +15304,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Sort(niltable.i ASC, niltable.f ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=6 loops=1)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ sel: (one_pk.pk > 0)\n" + " ├─ IndexedTableAccess(niltable)\n" + @@ -15229,7 +15345,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ sel: (one_pk.pk = two_pk.pk2)\n" + " ├─ IndexedTableAccess(one_pk)\n" + @@ -15242,7 +15358,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedAnalysis: "Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=2 loops=1)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ sel: (one_pk.pk = two_pk.pk2)\n" + " ├─ IndexedTableAccess(one_pk)\n" + @@ -15321,7 +15437,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=17.160 rows=5)\n" + " ├─ Table\n" + " │ ├─ name: two_pk\n" + " │ └─ columns: [pk1 pk2]\n" + @@ -15332,7 +15448,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=17.160 rows=5) (actual rows=16 loops=1)\n" + " ├─ Table\n" + " │ ├─ name: two_pk\n" + " │ └─ columns: [pk1 pk2]\n" + @@ -15373,7 +15489,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.160 rows=5)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ sel: (one_pk.pk = two_pk.pk2)\n" + " ├─ IndexedTableAccess(one_pk)\n" + @@ -15388,7 +15504,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.160 rows=5) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ sel: (one_pk.pk = two_pk.pk2)\n" + " ├─ IndexedTableAccess(one_pk)\n" + @@ -15430,7 +15546,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.160 rows=5)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -15444,7 +15560,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.160 rows=5) (actual rows=6 loops=1)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -15485,7 +15601,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.150 rows=5)\n" + " ├─ cmp: ((two_pk.pk1, two_pk.pk2) = (one_pk.pk, one_pk.pk))\n" + " ├─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + @@ -15499,7 +15615,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ LeftOuterMergeJoin\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.150 rows=5) (actual rows=4 loops=1)\n" + " ├─ cmp: ((two_pk.pk1, two_pk.pk2) = (one_pk.pk, one_pk.pk))\n" + " ├─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + @@ -15541,7 +15657,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Sort(opk.pk ASC, tpk.pk1 ASC, tpk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: (opk.pk = tpk.pk1)\n" + " ├─ sel: (opk.pk = tpk.pk2)\n" + " ├─ TableAlias(opk)\n" + @@ -15556,7 +15672,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedAnalysis: "Sort(opk.pk ASC, tpk.pk1 ASC, tpk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=2 loops=1)\n" + " ├─ cmp: (opk.pk = tpk.pk1)\n" + " ├─ sel: (opk.pk = tpk.pk2)\n" + " ├─ TableAlias(opk)\n" + @@ -15601,7 +15717,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Sort(opk.pk ASC, tpk.pk1 ASC, tpk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: (opk.pk = tpk.pk1)\n" + " ├─ sel: (opk.pk = tpk.pk2)\n" + " ├─ TableAlias(opk)\n" + @@ -15616,7 +15732,7 @@ inner join pq on true " └─ columns: [pk1 pk2]\n" + "", ExpectedAnalysis: "Sort(opk.pk ASC, tpk.pk1 ASC, tpk.pk2 ASC)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=2 loops=1)\n" + " ├─ cmp: (opk.pk = tpk.pk1)\n" + " ├─ sel: (opk.pk = tpk.pk2)\n" + " ├─ TableAlias(opk)\n" + @@ -15655,7 +15771,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=16.090 rows=5)\n" + " ├─ (one_pk.c1 = two_pk.c1)\n" + " ├─ Table\n" + " │ ├─ name: one_pk\n" + @@ -15670,7 +15786,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=16.090 rows=5) (actual rows=4 loops=1)\n" + " ├─ (one_pk.c1 = two_pk.c1)\n" + " ├─ Table\n" + " │ ├─ name: one_pk\n" + @@ -15707,7 +15823,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2, one_pk.c1 as foo, two_pk.c1 as bar]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=16.090 rows=5)\n" + " ├─ (one_pk.c1 = two_pk.c1)\n" + " ├─ Table\n" + " │ ├─ name: one_pk\n" + @@ -15722,7 +15838,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2, one_pk.c1 as foo, two_pk.c1 as bar]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=16.090 rows=5) (actual rows=4 loops=1)\n" + " ├─ (one_pk.c1 = two_pk.c1)\n" + " ├─ Table\n" + " │ ├─ name: one_pk\n" + @@ -15820,7 +15936,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [t1.pk, t2.pk2]\n" + " └─ Sort(t1.pk ASC, t2.pk2 ASC)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=4.030 rows=3)\n" + " ├─ Filter\n" + " │ ├─ (t2.pk2 = 1)\n" + " │ └─ TableAlias(t2)\n" + @@ -15836,7 +15952,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [t1.pk, t2.pk2]\n" + " └─ Sort(t1.pk ASC, t2.pk2 ASC)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=4.030 rows=3) (actual rows=2 loops=1)\n" + " ├─ Filter\n" + " │ ├─ (t2.pk2 = 1)\n" + " │ └─ TableAlias(t2)\n" + @@ -15878,7 +15994,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [t1.pk, t2.pk1, t2.pk2]\n" + " └─ Sort(t1.pk ASC, t2.pk1 ASC)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=1)\n" + " ├─ TableAlias(t2)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + @@ -15893,7 +16009,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [t1.pk, t2.pk1, t2.pk2]\n" + " └─ Sort(t1.pk ASC, t2.pk1 ASC)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=1) (actual rows=1 loops=1)\n" + " ├─ TableAlias(t2)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + @@ -16087,7 +16203,7 @@ inner join pq on true " │ └─ columns: [pk]\n" + " │ as (SELECT pk from one_pk where pk = 1 limit 1)]\n" + " └─ Sort(t1.pk ASC, t2.pk2 ASC)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=4.030 rows=3)\n" + " ├─ Filter\n" + " │ ├─ (t2.pk2 = 1)\n" + " │ └─ TableAlias(t2)\n" + @@ -16108,7 +16224,7 @@ inner join pq on true " │ └─ columns: [pk]\n" + " │ as (SELECT pk from one_pk where pk = 1 limit 1)]\n" + " └─ Sort(t1.pk ASC, t2.pk2 ASC)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=4.030 rows=3) (actual rows=2 loops=1)\n" + " ├─ Filter\n" + " │ ├─ (t2.pk2 = 1)\n" + " │ └─ TableAlias(t2)\n" + @@ -16189,6 +16305,8 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5-7)\n" + + " ├─ tableId: 2\n" + " └─ Filter\n" + " ├─ (NOT((othertable.s2 = 'second')))\n" + " └─ Project\n" + @@ -16204,6 +16322,8 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5-7)\n" + + " ├─ tableId: 2\n" + " └─ Filter\n" + " ├─ (NOT((othertable.s2 = 'second')))\n" + " └─ Project\n" + @@ -16287,6 +16407,8 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5-7)\n" + + " ├─ tableId: 2\n" + " └─ Filter\n" + " ├─ ((othertable.i2 < 2) OR (othertable.i2 > 2))\n" + " └─ Project\n" + @@ -16302,6 +16424,8 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5-7)\n" + + " ├─ tableId: 2\n" + " └─ Filter\n" + " ├─ ((othertable.i2 < 2) OR (othertable.i2 > 2))\n" + " └─ Project\n" + @@ -16811,7 +16935,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (b.pk, b.pk)\n" + " ├─ right-key: (c.pk, a.pk)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=17.160 rows=5)\n" + " ├─ TableAlias(c)\n" + " │ └─ Table\n" + " │ ├─ name: one_pk\n" + @@ -16832,7 +16956,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (b.pk, b.pk)\n" + " ├─ right-key: (c.pk, a.pk)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=17.160 rows=5) (actual rows=16 loops=1)\n" + " ├─ TableAlias(c)\n" + " │ └─ Table\n" + " │ ├─ name: one_pk\n" + @@ -17126,8 +17250,8 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [tabletest.i, tabletest.s, mt.i, mt.s, ot.s2, ot.i2]\n" + " └─ Sort(tabletest.i ASC, mt.i ASC, ot.i2 ASC)\n" + - " └─ LookupJoin\n" + - " ├─ CrossJoin\n" + + " └─ LookupJoin (estimated cost=9.900 rows=3)\n" + + " ├─ CrossJoin (estimated cost=10.090 rows=3)\n" + " │ ├─ TableAlias(mt)\n" + " │ │ └─ Table\n" + " │ │ ├─ name: mytable\n" + @@ -17144,8 +17268,8 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [tabletest.i, tabletest.s, mt.i, mt.s, ot.s2, ot.i2]\n" + " └─ Sort(tabletest.i ASC, mt.i ASC, ot.i2 ASC)\n" + - " └─ LookupJoin\n" + - " ├─ CrossJoin\n" + + " └─ LookupJoin (estimated cost=9.900 rows=3) (actual rows=9 loops=1)\n" + + " ├─ CrossJoin (estimated cost=10.090 rows=3) (actual rows=9 loops=1)\n" + " │ ├─ TableAlias(mt)\n" + " │ │ └─ Table\n" + " │ │ ├─ name: mytable\n" + @@ -17213,7 +17337,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (c.v1)\n" + " ├─ right-key: (b.pk)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=65.640 rows=10)\n" + " ├─ TableAlias(b)\n" + " │ └─ Table\n" + " │ ├─ name: one_pk_three_idx\n" + @@ -17238,7 +17362,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (c.v1)\n" + " ├─ right-key: (b.pk)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=65.640 rows=10) (actual rows=64 loops=1)\n" + " ├─ TableAlias(b)\n" + " │ └─ Table\n" + " │ ├─ name: one_pk_three_idx\n" + @@ -18196,7 +18320,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (a.pk)\n" + " ├─ right-key: (l.v2)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=16.240 rows=8)\n" + " ├─ cmp: (k.v1 = l.pk)\n" + " ├─ TableAlias(k)\n" + " │ └─ IndexedTableAccess(one_pk_two_idx)\n" + @@ -18237,7 +18361,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (a.pk)\n" + " ├─ right-key: (l.v2)\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=16.240 rows=8) (actual rows=8 loops=1)\n" + " ├─ cmp: (k.v1 = l.pk)\n" + " ├─ TableAlias(k)\n" + " │ └─ IndexedTableAccess(one_pk_two_idx)\n" + @@ -18329,7 +18453,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (l.v2)\n" + " ├─ right-key: (a.v1)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=32.180 rows=10)\n" + " ├─ (a.pk = i.pk)\n" + " ├─ TableAlias(a)\n" + " │ └─ Table\n" + @@ -18338,7 +18462,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (a.pk)\n" + " ├─ right-key: (i.pk)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=26.400 rows=8)\n" + " ├─ TableAlias(j)\n" + " │ └─ Table\n" + " │ ├─ name: one_pk_three_idx\n" + @@ -18369,7 +18493,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (l.v2)\n" + " ├─ right-key: (a.v1)\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=32.180 rows=10) (actual rows=11 loops=1)\n" + " ├─ (a.pk = i.pk)\n" + " ├─ TableAlias(a)\n" + " │ └─ Table\n" + @@ -18378,7 +18502,7 @@ inner join pq on true " └─ HashLookup\n" + " ├─ left-key: (a.pk)\n" + " ├─ right-key: (i.pk)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=26.400 rows=8) (actual rows=8 loops=1)\n" + " ├─ TableAlias(j)\n" + " │ └─ Table\n" + " │ ├─ name: one_pk_three_idx\n" + @@ -18956,9 +19080,11 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5)\n" + + " ├─ tableId: 4\n" + " └─ Project\n" + " ├─ columns: [1]\n" + - " └─ SemiJoin\n" + + " └─ SemiJoin (estimated cost=43.925 rows=1)\n" + " ├─ Table\n" + " │ └─ name: \n" + " └─ Filter\n" + @@ -18984,9 +19110,11 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5)\n" + + " ├─ tableId: 4\n" + " └─ Project\n" + " ├─ columns: [1]\n" + - " └─ SemiJoin\n" + + " └─ SemiJoin (estimated cost=43.925 rows=1) (actual rows=1 loops=1)\n" + " ├─ Table\n" + " │ └─ name: \n" + " └─ Filter\n" + @@ -19036,7 +19164,7 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [t1.pk, t2.pk1, t2.pk2]\n" + " └─ Sort(t1.pk ASC, t2.pk1 ASC)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=1)\n" + " ├─ TableAlias(t2)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + @@ -19051,7 +19179,7 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [t1.pk, t2.pk1, t2.pk2]\n" + " └─ Sort(t1.pk ASC, t2.pk1 ASC)\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=2.010 rows=1) (actual rows=1 loops=1)\n" + " ├─ TableAlias(t2)\n" + " │ └─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + @@ -19687,13 +19815,15 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [count(n.i) as count(i)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(n.i))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(n.i)\n" + + " ├─ group: \n" + " └─ SubqueryAlias\n" + " ├─ name: n\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ RecursiveCTE\n" + " └─ Union all\n" + " ├─ limit: 5\n" + @@ -19710,13 +19840,15 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [count(n.i) as count(i)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(n.i))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(n.i)\n" + + " ├─ group: \n" + " └─ SubqueryAlias\n" + " ├─ name: n\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ RecursiveCTE\n" + " └─ Union all\n" + " ├─ limit: 5\n" + @@ -19768,13 +19900,15 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [count(n.i) as count(i)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(n.i))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(n.i)\n" + + " ├─ group: \n" + " └─ SubqueryAlias\n" + " ├─ name: n\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ RecursiveCTE\n" + " └─ Union all\n" + " ├─ Project\n" + @@ -19792,13 +19926,15 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [count(n.i) as count(i)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(n.i))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(n.i)\n" + + " ├─ group: \n" + " └─ SubqueryAlias\n" + " ├─ name: n\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ RecursiveCTE\n" + " └─ Union all\n" + " ├─ Project\n" + @@ -19849,13 +19985,15 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [count(n.i) as count(i)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(n.i))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(n.i)\n" + + " ├─ group: \n" + " └─ SubqueryAlias\n" + " ├─ name: n\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ RecursiveCTE\n" + " └─ Union all\n" + " ├─ limit: 1\n" + @@ -19872,13 +20010,15 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [count(n.i) as count(i)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(n.i))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(n.i)\n" + + " ├─ group: \n" + " └─ SubqueryAlias\n" + " ├─ name: n\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ RecursiveCTE\n" + " └─ Union all\n" + " ├─ limit: 1\n" + @@ -19945,9 +20085,11 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5)\n" + + " ├─ tableId: 4\n" + " └─ Project\n" + " ├─ columns: [1]\n" + - " └─ SemiJoin\n" + + " └─ SemiJoin (estimated cost=43.925 rows=1)\n" + " ├─ Table\n" + " │ └─ name: \n" + " └─ Filter\n" + @@ -19973,9 +20115,11 @@ inner join pq on true " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5)\n" + + " ├─ tableId: 4\n" + " └─ Project\n" + " ├─ columns: [1]\n" + - " └─ SemiJoin\n" + + " └─ SemiJoin (estimated cost=43.925 rows=1) (actual rows=1 loops=1)\n" + " ├─ Table\n" + " │ └─ name: \n" + " └─ Filter\n" + @@ -20242,13 +20386,15 @@ inner join pq on true ExpectedEstimates: "Project\n" + " ├─ columns: [count(1) as count(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ SubqueryAlias\n" + " ├─ name: a\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (8)\n" + + " ├─ tableId: 7\n" + " └─ RecursiveCTE\n" + " └─ Union distinct\n" + " ├─ Union distinct\n" + @@ -20284,13 +20430,15 @@ inner join pq on true ExpectedAnalysis: "Project\n" + " ├─ columns: [count(1) as count(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ SubqueryAlias\n" + " ├─ name: a\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (8)\n" + + " ├─ tableId: 7\n" + " └─ RecursiveCTE\n" + " └─ Union distinct\n" + " ├─ Union distinct\n" + @@ -20521,6 +20669,8 @@ inner join pq on true " │ │ │ ├─ outerVisibility: false\n" + " │ │ │ ├─ isLateral: false\n" + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (5)\n" + + " │ │ │ ├─ tableId: 5\n" + " │ │ │ └─ Project\n" + " │ │ │ ├─ columns: [1]\n" + " │ │ │ └─ Table\n" + @@ -20570,6 +20720,8 @@ inner join pq on true " │ │ │ ├─ outerVisibility: false\n" + " │ │ │ ├─ isLateral: false\n" + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (5)\n" + + " │ │ │ ├─ tableId: 5\n" + " │ │ │ └─ Project\n" + " │ │ │ ├─ columns: [1]\n" + " │ │ │ └─ Table\n" + @@ -20749,6 +20901,8 @@ inner join pq on true " │ │ │ ├─ outerVisibility: false\n" + " │ │ │ ├─ isLateral: false\n" + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (8)\n" + + " │ │ │ ├─ tableId: 8\n" + " │ │ │ └─ Union distinct\n" + " │ │ │ ├─ Union distinct\n" + " │ │ │ │ ├─ Project\n" + @@ -20833,6 +20987,8 @@ inner join pq on true " │ │ │ ├─ outerVisibility: false\n" + " │ │ │ ├─ isLateral: false\n" + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (8)\n" + + " │ │ │ ├─ tableId: 8\n" + " │ │ │ └─ Union distinct\n" + " │ │ │ ├─ Union distinct\n" + " │ │ │ │ ├─ Project\n" + @@ -21329,17 +21485,21 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (13)\n" + + " ├─ tableId: 8\n" + " └─ Project\n" + " ├─ columns: [a.s]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=402.250 rows=125)\n" + " ├─ (b.I = e.i)\n" + - " ├─ HashJoin\n" + + " ├─ HashJoin (estimated cost=111.000 rows=100)\n" + " │ ├─ (a.i = b.i)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: b\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (5,6)\n" + + " │ │ ├─ tableId: 3\n" + " │ │ └─ TableAlias(t2)\n" + " │ │ └─ IndexedTableAccess(mytable)\n" + " │ │ ├─ index: [mytable.i]\n" + @@ -21372,17 +21532,21 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (13)\n" + + " ├─ tableId: 8\n" + " └─ Project\n" + " ├─ columns: [a.s]\n" + - " └─ HashJoin\n" + + " └─ HashJoin (estimated cost=402.250 rows=125) (actual rows=1 loops=1)\n" + " ├─ (b.I = e.i)\n" + - " ├─ HashJoin\n" + + " ├─ HashJoin (estimated cost=111.000 rows=100) (actual rows=2 loops=1)\n" + " │ ├─ (a.i = b.i)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: b\n" + " │ │ ├─ outerVisibility: false\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (5,6)\n" + + " │ │ ├─ tableId: 3\n" + " │ │ └─ TableAlias(t2)\n" + " │ │ └─ IndexedTableAccess(mytable)\n" + " │ │ ├─ index: [mytable.i]\n" + @@ -21436,6 +21600,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (3)\n" + + " ├─ tableId: 2\n" + " └─ Filter\n" + " ├─ (mytable.i = 3)\n" + " └─ Limit(1)\n" + @@ -21448,6 +21614,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (3)\n" + + " ├─ tableId: 2\n" + " └─ Filter\n" + " ├─ (mytable.i = 3)\n" + " └─ Limit(1)\n" + @@ -21481,6 +21649,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ Filter\n" + " ├─ (mytable.i = 3)\n" + " └─ Limit(1)\n" + @@ -21493,6 +21663,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ Filter\n" + " ├─ (mytable.i = 3)\n" + " └─ Limit(1)\n" + @@ -21530,6 +21702,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (3)\n" + + " ├─ tableId: 2\n" + " └─ Filter\n" + " ├─ (mytable.i = 3)\n" + " └─ Limit(1)\n" + @@ -21544,6 +21718,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (3)\n" + + " ├─ tableId: 2\n" + " └─ Filter\n" + " ├─ (mytable.i = 3)\n" + " └─ Limit(1)\n" + @@ -21583,6 +21759,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ Filter\n" + " ├─ (mytable.i = 3)\n" + " └─ Limit(1)\n" + @@ -21597,6 +21775,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ Filter\n" + " ├─ (mytable.i = 3)\n" + " └─ Limit(1)\n" + @@ -21852,6 +22032,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (9,10)\n" + + " ├─ tableId: 3\n" + " └─ Filter\n" + " ├─ (NOT((b.i = 0)))\n" + " └─ Limit(1)\n" + @@ -21873,6 +22055,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (9,10)\n" + + " ├─ tableId: 3\n" + " └─ Filter\n" + " ├─ (NOT((b.i = 0)))\n" + " └─ Limit(1)\n" + @@ -21927,6 +22111,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (9,10)\n" + + " ├─ tableId: 3\n" + " └─ Filter\n" + " ├─ (NOT((b.i = 0)))\n" + " └─ Limit(1)\n" + @@ -21948,6 +22134,8 @@ With c as ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (9,10)\n" + + " ├─ tableId: 3\n" + " └─ Filter\n" + " ├─ (NOT((b.i = 0)))\n" + " └─ Limit(1)\n" + @@ -22015,6 +22203,8 @@ With c as ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (7)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Filter\n" + " │ ├─ (one_pk.pk >= 2)\n" + " │ └─ Limit(1)\n" + @@ -22043,6 +22233,8 @@ With c as ( " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (7)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Filter\n" + " │ ├─ (one_pk.pk >= 2)\n" + " │ └─ Limit(1)\n" + @@ -22152,8 +22344,8 @@ WHERE keyless.c0 IN ( ExpectedEstimates: "Project\n" + " ├─ columns: [count(1) as COUNT(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: keyless.c0\n" + @@ -22161,13 +22353,15 @@ WHERE keyless.c0 IN ( " │ ├─ cacheable: false\n" + " │ └─ Project\n" + " │ ├─ columns: [u0.c0]\n" + - " │ └─ InnerJoin\n" + + " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + " │ ├─ (cte.j = keyless.c0)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: cte\n" + " │ │ ├─ outerVisibility: true\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (16-18)\n" + + " │ │ ├─ tableId: 5\n" + " │ │ └─ RecursiveCTE\n" + " │ │ └─ Union all\n" + " │ │ ├─ Project\n" + @@ -22197,8 +22391,8 @@ WHERE keyless.c0 IN ( ExpectedAnalysis: "Project\n" + " ├─ columns: [count(1) as COUNT(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: keyless.c0\n" + @@ -22206,13 +22400,15 @@ WHERE keyless.c0 IN ( " │ ├─ cacheable: false\n" + " │ └─ Project\n" + " │ ├─ columns: [u0.c0]\n" + - " │ └─ InnerJoin\n" + + " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + " │ ├─ (cte.j = keyless.c0)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: cte\n" + " │ │ ├─ outerVisibility: true\n" + " │ │ ├─ isLateral: false\n" + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (16-18)\n" + + " │ │ ├─ tableId: 5\n" + " │ │ └─ RecursiveCTE\n" + " │ │ └─ Union all\n" + " │ │ ├─ Project\n" + @@ -22327,8 +22523,8 @@ WHERE keyless.c0 IN ( ExpectedEstimates: "Project\n" + " ├─ columns: [count(1) as COUNT(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: keyless.c0\n" + @@ -22336,7 +22532,7 @@ WHERE keyless.c0 IN ( " │ ├─ cacheable: false\n" + " │ └─ Project\n" + " │ ├─ columns: [u0.c0]\n" + - " │ └─ InnerJoin\n" + + " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + " │ ├─ (cte.j = keyless.c0)\n" + " │ ├─ TableAlias(u0)\n" + " │ │ └─ Table\n" + @@ -22373,8 +22569,8 @@ WHERE keyless.c0 IN ( ExpectedAnalysis: "Project\n" + " ├─ columns: [count(1) as COUNT(*)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: keyless.c0\n" + @@ -22382,7 +22578,7 @@ WHERE keyless.c0 IN ( " │ ├─ cacheable: false\n" + " │ └─ Project\n" + " │ ├─ columns: [u0.c0]\n" + - " │ └─ InnerJoin\n" + + " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + " │ ├─ (cte.j = keyless.c0)\n" + " │ ├─ TableAlias(u0)\n" + " │ │ └─ Table\n" + @@ -22558,16 +22754,16 @@ WHERE keyless.c0 IN ( "", ExpectedEstimates: "Sort(two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(two_pk.pk1, two_pk.pk2)\n" + - " ├─ Grouping(two_pk.pk1, two_pk.pk2)\n" + + " ├─ select: two_pk.pk1, two_pk.pk2\n" + + " ├─ group: two_pk.pk1, two_pk.pk2\n" + " └─ Table\n" + " ├─ name: two_pk\n" + " └─ columns: [pk1 pk2]\n" + "", ExpectedAnalysis: "Sort(two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(two_pk.pk1, two_pk.pk2)\n" + - " ├─ Grouping(two_pk.pk1, two_pk.pk2)\n" + + " ├─ select: two_pk.pk1, two_pk.pk2\n" + + " ├─ group: two_pk.pk1, two_pk.pk2\n" + " └─ Table\n" + " ├─ name: two_pk\n" + " └─ columns: [pk1 pk2]\n" + @@ -22586,16 +22782,16 @@ WHERE keyless.c0 IN ( "", ExpectedEstimates: "Sort(two_pk.pk1 DESC, two_pk.pk2 DESC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(two_pk.pk1, two_pk.pk2)\n" + - " ├─ Grouping(two_pk.pk1, two_pk.pk2)\n" + + " ├─ select: two_pk.pk1, two_pk.pk2\n" + + " ├─ group: two_pk.pk1, two_pk.pk2\n" + " └─ Table\n" + " ├─ name: two_pk\n" + " └─ columns: [pk1 pk2]\n" + "", ExpectedAnalysis: "Sort(two_pk.pk1 DESC, two_pk.pk2 DESC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(two_pk.pk1, two_pk.pk2)\n" + - " ├─ Grouping(two_pk.pk1, two_pk.pk2)\n" + + " ├─ select: two_pk.pk1, two_pk.pk2\n" + + " ├─ group: two_pk.pk1, two_pk.pk2\n" + " └─ Table\n" + " ├─ name: two_pk\n" + " └─ columns: [pk1 pk2]\n" + @@ -22717,6 +22913,8 @@ WHERE keyless.c0 IN ( " ├─ outerVisibility: false\n" + " ├─ isLateral: true\n" + " ├─ cacheable: false\n" + + " ├─ colSet: (5,6)\n" + + " ├─ tableId: 3\n" + " └─ Filter\n" + " ├─ (xy.y = uv.u)\n" + " └─ Table\n" + @@ -22733,6 +22931,8 @@ WHERE keyless.c0 IN ( " ├─ outerVisibility: false\n" + " ├─ isLateral: true\n" + " ├─ cacheable: false\n" + + " ├─ colSet: (5,6)\n" + + " ├─ tableId: 3\n" + " └─ Filter\n" + " ├─ (xy.y = uv.u)\n" + " └─ Table\n" + @@ -23201,8 +23401,8 @@ WHERE keyless.c0 IN ( ExpectedEstimates: "Project\n" + " ├─ columns: [max(xy.y) as max(y)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(xy.y))\n" + - " ├─ Grouping()\n" + + " ├─ select: MAX(xy.y)\n" + + " ├─ group: \n" + " └─ Table\n" + " ├─ name: xy\n" + " └─ columns: [y]\n" + @@ -23210,8 +23410,8 @@ WHERE keyless.c0 IN ( ExpectedAnalysis: "Project\n" + " ├─ columns: [max(xy.y) as max(y)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(xy.y))\n" + - " ├─ Grouping()\n" + + " ├─ select: MAX(xy.y)\n" + + " ├─ group: \n" + " └─ Table\n" + " ├─ name: xy\n" + " └─ columns: [y]\n" + @@ -23403,8 +23603,8 @@ WHERE keyless.c0 IN ( ExpectedEstimates: "Project\n" + " ├─ columns: [min(xy.x) as min(x)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(xy.x))\n" + - " ├─ Grouping()\n" + + " ├─ select: MIN(xy.x)\n" + + " ├─ group: \n" + " └─ IndexedTableAccess(xy)\n" + " ├─ index: [xy.y]\n" + " ├─ filters: [{(0, ∞)}]\n" + @@ -23413,8 +23613,8 @@ WHERE keyless.c0 IN ( ExpectedAnalysis: "Project\n" + " ├─ columns: [min(xy.x) as min(x)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MIN(xy.x))\n" + - " ├─ Grouping()\n" + + " ├─ select: MIN(xy.x)\n" + + " ├─ group: \n" + " └─ IndexedTableAccess(xy)\n" + " ├─ index: [xy.y]\n" + " ├─ filters: [{(0, ∞)}]\n" + @@ -23440,8 +23640,8 @@ WHERE keyless.c0 IN ( ExpectedEstimates: "Project\n" + " ├─ columns: [max(xy.x) as max(x)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(xy.x))\n" + - " ├─ Grouping()\n" + + " ├─ select: MAX(xy.x)\n" + + " ├─ group: \n" + " └─ IndexedTableAccess(xy)\n" + " ├─ index: [xy.y]\n" + " ├─ filters: [{(NULL, 3)}]\n" + @@ -23450,8 +23650,8 @@ WHERE keyless.c0 IN ( ExpectedAnalysis: "Project\n" + " ├─ columns: [max(xy.x) as max(x)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(xy.x))\n" + - " ├─ Grouping()\n" + + " ├─ select: MAX(xy.x)\n" + + " ├─ group: \n" + " └─ IndexedTableAccess(xy)\n" + " ├─ index: [xy.y]\n" + " ├─ filters: [{(NULL, 3)}]\n" + @@ -23485,6 +23685,8 @@ WHERE keyless.c0 IN ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 2\n" + " └─ Limit(1)\n" + " └─ Project\n" + " ├─ columns: [xy.x as max(x)]\n" + @@ -23499,6 +23701,8 @@ WHERE keyless.c0 IN ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 2\n" + " └─ Limit(1)\n" + " └─ Project\n" + " ├─ columns: [xy.x as max(x)]\n" + @@ -23540,6 +23744,8 @@ WHERE keyless.c0 IN ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5)\n" + + " ├─ tableId: 3\n" + " └─ Limit(1)\n" + " └─ Project\n" + " ├─ columns: [xy.x as max(x)]\n" + @@ -23556,6 +23762,8 @@ WHERE keyless.c0 IN ( " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (5)\n" + + " ├─ tableId: 3\n" + " └─ Limit(1)\n" + " └─ Project\n" + " ├─ columns: [xy.x as max(x)]\n" + @@ -23589,13 +23797,15 @@ WHERE keyless.c0 IN ( ExpectedEstimates: "Project\n" + " ├─ columns: [max(cte.i) as max(i)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(cte.i))\n" + - " ├─ Grouping()\n" + + " ├─ select: MAX(cte.i)\n" + + " ├─ group: \n" + " └─ SubqueryAlias\n" + " ├─ name: cte\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ Table\n" + " ├─ name: xy\n" + " └─ columns: [x]\n" + @@ -23603,13 +23813,15 @@ WHERE keyless.c0 IN ( ExpectedAnalysis: "Project\n" + " ├─ columns: [max(cte.i) as max(i)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(cte.i))\n" + - " ├─ Grouping()\n" + + " ├─ select: MAX(cte.i)\n" + + " ├─ group: \n" + " └─ SubqueryAlias\n" + " ├─ name: cte\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (4)\n" + + " ├─ tableId: 3\n" + " └─ Table\n" + " ├─ name: xy\n" + " └─ columns: [x]\n" + @@ -23630,8 +23842,8 @@ WHERE keyless.c0 IN ( ExpectedEstimates: "Project\n" + " ├─ columns: [max(xy.x) as max(x)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(xy.x))\n" + - " ├─ Grouping(xy.y)\n" + + " ├─ select: MAX(xy.x)\n" + + " ├─ group: xy.y\n" + " └─ Table\n" + " ├─ name: xy\n" + " └─ columns: [x y]\n" + @@ -23639,8 +23851,8 @@ WHERE keyless.c0 IN ( ExpectedAnalysis: "Project\n" + " ├─ columns: [max(xy.x) as max(x)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(xy.x))\n" + - " ├─ Grouping(xy.y)\n" + + " ├─ select: MAX(xy.x)\n" + + " ├─ group: xy.y\n" + " └─ Table\n" + " ├─ name: xy\n" + " └─ columns: [x y]\n" + @@ -23670,9 +23882,9 @@ WHERE keyless.c0 IN ( ExpectedEstimates: "Project\n" + " ├─ columns: [max(xy.x) as max(x)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(xy.x))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: MAX(xy.x)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ Table\n" + " │ ├─ name: uv\n" + " │ └─ columns: [u]\n" + @@ -23684,9 +23896,9 @@ WHERE keyless.c0 IN ( ExpectedAnalysis: "Project\n" + " ├─ columns: [max(xy.x) as max(x)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(MAX(xy.x))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: MAX(xy.x)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ Table\n" + " │ ├─ name: uv\n" + " │ └─ columns: [u]\n" + @@ -23752,7 +23964,7 @@ order by i;`, " └─ columns: [x]\n" + "", ExpectedEstimates: "Sort(mytable.i ASC)\n" + - " └─ LateralCrossJoin\n" + + " └─ LateralCrossJoin (estimated cost=302.000 rows=3)\n" + " ├─ ((mytable.i = sqa.a) AND true)\n" + " ├─ Table\n" + " │ └─ name: mytable\n" + @@ -23777,7 +23989,7 @@ order by i;`, " └─ keys: cte.a\n" + "", ExpectedAnalysis: "Sort(mytable.i ASC)\n" + - " └─ LateralCrossJoin\n" + + " └─ LateralCrossJoin (estimated cost=302.000 rows=3) (actual rows=3 loops=1)\n" + " ├─ ((mytable.i = sqa.a) AND true)\n" + " ├─ Table\n" + " │ └─ name: mytable\n" + @@ -23874,7 +24086,7 @@ order by i;`, " └─ RecursiveTable(cte)\n" + "", ExpectedEstimates: "Sort(mytable.i ASC)\n" + - " └─ LateralCrossJoin\n" + + " └─ LateralCrossJoin (estimated cost=302.000 rows=3)\n" + " ├─ ((mytable.i = sqa2.a) AND true)\n" + " ├─ Table\n" + " │ └─ name: mytable\n" + @@ -23899,6 +24111,8 @@ order by i;`, " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: true\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (9,10)\n" + + " │ ├─ tableId: 6\n" + " │ └─ IndexedTableAccess(xy)\n" + " │ ├─ index: [xy.x]\n" + " │ ├─ filters: [{[1, 1]}]\n" + @@ -23906,7 +24120,7 @@ order by i;`, " └─ RecursiveTable(cte)\n" + "", ExpectedAnalysis: "Sort(mytable.i ASC)\n" + - " └─ LateralCrossJoin\n" + + " └─ LateralCrossJoin (estimated cost=302.000 rows=3) (actual rows=2 loops=1)\n" + " ├─ ((mytable.i = sqa2.a) AND true)\n" + " ├─ Table\n" + " │ └─ name: mytable\n" + @@ -23931,6 +24145,8 @@ order by i;`, " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: true\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (9,10)\n" + + " │ ├─ tableId: 6\n" + " │ └─ IndexedTableAccess(xy)\n" + " │ ├─ index: [xy.x]\n" + " │ ├─ filters: [{[1, 1]}]\n" + @@ -23986,7 +24202,7 @@ order by xy.x, xy.y, uv.u, uv.v;`, ExpectedEstimates: "Project\n" + " ├─ columns: [xy.x, xy.y, uv.u, uv.v]\n" + " └─ Sort(xy.x ASC, xy.y ASC, uv.u ASC, uv.v ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ (uv.v = Subquery(select max(v) from uv where xy.x = uv.u))\n" + " ├─ Table\n" + " │ └─ name: uv\n" + @@ -23997,7 +24213,7 @@ order by xy.x, xy.y, uv.u, uv.v;`, ExpectedAnalysis: "Project\n" + " ├─ columns: [xy.x, xy.y, uv.u, uv.v]\n" + " └─ Sort(xy.x ASC, xy.y ASC, uv.u ASC, uv.v ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ (uv.v = Subquery(select max(v) from uv where xy.x = uv.u))\n" + " ├─ Table\n" + " │ └─ name: uv\n" + @@ -24123,7 +24339,7 @@ order by x, y; " └─ tableId: 2\n" + "", ExpectedEstimates: "Sort(xy2.x ASC, xy2.y ASC)\n" + - " └─ SemiJoin\n" + + " └─ SemiJoin (estimated cost=506000.000 rows=1250)\n" + " ├─ (xy.y = Subquery(select max(v) from uv where uv.v = xy2.x and uv.v = xy.x))\n" + " ├─ TableAlias(xy2)\n" + " │ └─ Table\n" + @@ -24132,7 +24348,7 @@ order by x, y; " └─ name: xy\n" + "", ExpectedAnalysis: "Sort(xy2.x ASC, xy2.y ASC)\n" + - " └─ SemiJoin\n" + + " └─ SemiJoin (estimated cost=506000.000 rows=1250) (actual rows=0 loops=1)\n" + " ├─ (xy.y = Subquery(select max(v) from uv where uv.v = xy2.x and uv.v = xy.x))\n" + " ├─ TableAlias(xy2)\n" + " │ └─ Table\n" + @@ -24197,6 +24413,8 @@ order by x, y; " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (2)\n" + + " │ ├─ tableId: 1\n" + " │ └─ Project\n" + " │ ├─ columns: ['k' as k]\n" + " │ └─ Table\n" + @@ -24204,7 +24422,7 @@ order by x, y; " └─ HashLookup\n" + " ├─ left-key: (sq.k)\n" + " ├─ right-key: (bigtable.t)\n" + - " └─ RangeHeapJoin\n" + + " └─ RangeHeapJoin (estimated cost=7000.000 rows=17)\n" + " ├─ ((xy.x >= bigtable.n) AND (xy.x <= bigtable.n))\n" + " ├─ IndexedTableAccess(xy)\n" + " │ ├─ index: [xy.x]\n" + @@ -24224,6 +24442,8 @@ order by x, y; " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (2)\n" + + " │ ├─ tableId: 1\n" + " │ └─ Project\n" + " │ ├─ columns: ['k' as k]\n" + " │ └─ Table\n" + @@ -24231,7 +24451,7 @@ order by x, y; " └─ HashLookup\n" + " ├─ left-key: (sq.k)\n" + " ├─ right-key: (bigtable.t)\n" + - " └─ RangeHeapJoin\n" + + " └─ RangeHeapJoin (estimated cost=7000.000 rows=17) (actual rows=8 loops=1)\n" + " ├─ ((xy.x >= bigtable.n) AND (xy.x <= bigtable.n))\n" + " ├─ IndexedTableAccess(xy)\n" + " │ ├─ index: [xy.x]\n" + @@ -24980,9 +25200,11 @@ order by x, y; " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (13-16)\n" + + " ├─ tableId: 5\n" + " └─ Project\n" + " ├─ columns: [othertable.s2, othertable.i2, ot.s2, ot.i2]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=10.090 rows=3)\n" + " ├─ TableAlias(ot)\n" + " │ └─ Table\n" + " │ ├─ name: othertable\n" + @@ -24996,9 +25218,11 @@ order by x, y; " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (13-16)\n" + + " ├─ tableId: 5\n" + " └─ Project\n" + " ├─ columns: [othertable.s2, othertable.i2, ot.s2, ot.i2]\n" + - " └─ CrossJoin\n" + + " └─ CrossJoin (estimated cost=10.090 rows=3) (actual rows=9 loops=1)\n" + " ├─ TableAlias(ot)\n" + " │ └─ Table\n" + " │ ├─ name: othertable\n" + diff --git a/enginetest/queries/sysbench_plans.go b/enginetest/queries/sysbench_plans.go index 077d3a3ac6..00b8de0812 100644 --- a/enginetest/queries/sysbench_plans.go +++ b/enginetest/queries/sysbench_plans.go @@ -149,8 +149,8 @@ var SysbenchPlanTests = []QueryPlanTest{ " ├─ columns: [sbtest1.year_col, count(sbtest1.year_col) as count(year_col), max(sbtest1.big_int_col) as max(big_int_col), avg(sbtest1.small_int_col) as avg(small_int_col)]\n" + " └─ Sort(sbtest1.year_col ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(AVG(sbtest1.small_int_col), COUNT(sbtest1.year_col), MAX(sbtest1.big_int_col), sbtest1.year_col)\n" + - " ├─ Grouping(sbtest1.id)\n" + + " ├─ select: AVG(sbtest1.small_int_col), COUNT(sbtest1.year_col), MAX(sbtest1.big_int_col), sbtest1.year_col\n" + + " ├─ group: sbtest1.id\n" + " └─ IndexedTableAccess(sbtest1)\n" + " ├─ index: [sbtest1.big_int_col]\n" + " ├─ filters: [{(0, ∞)}]\n" + @@ -160,8 +160,8 @@ var SysbenchPlanTests = []QueryPlanTest{ " ├─ columns: [sbtest1.year_col, count(sbtest1.year_col) as count(year_col), max(sbtest1.big_int_col) as max(big_int_col), avg(sbtest1.small_int_col) as avg(small_int_col)]\n" + " └─ Sort(sbtest1.year_col ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(AVG(sbtest1.small_int_col), COUNT(sbtest1.year_col), MAX(sbtest1.big_int_col), sbtest1.year_col)\n" + - " ├─ Grouping(sbtest1.id)\n" + + " ├─ select: AVG(sbtest1.small_int_col), COUNT(sbtest1.year_col), MAX(sbtest1.big_int_col), sbtest1.year_col\n" + + " ├─ group: sbtest1.id\n" + " └─ IndexedTableAccess(sbtest1)\n" + " ├─ index: [sbtest1.big_int_col]\n" + " ├─ filters: [{(0, ∞)}]\n" + @@ -187,8 +187,8 @@ var SysbenchPlanTests = []QueryPlanTest{ ExpectedEstimates: "Project\n" + " ├─ columns: [count(sbtest1.id) as count(id)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(sbtest1.id))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(sbtest1.id)\n" + + " ├─ group: \n" + " └─ IndexedTableAccess(sbtest1)\n" + " ├─ index: [sbtest1.big_int_col]\n" + " ├─ filters: [{(0, ∞)}]\n" + @@ -197,8 +197,8 @@ var SysbenchPlanTests = []QueryPlanTest{ ExpectedAnalysis: "Project\n" + " ├─ columns: [count(sbtest1.id) as count(id)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(sbtest1.id))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(sbtest1.id)\n" + + " ├─ group: \n" + " └─ IndexedTableAccess(sbtest1)\n" + " ├─ index: [sbtest1.big_int_col]\n" + " ├─ filters: [{(0, ∞)}]\n" + diff --git a/enginetest/queries/tpcc_plans.go b/enginetest/queries/tpcc_plans.go index 1210de0655..609f3988c2 100644 --- a/enginetest/queries/tpcc_plans.go +++ b/enginetest/queries/tpcc_plans.go @@ -421,8 +421,8 @@ UPDATE warehouse2 SET w_ytd = w_ytd + 1767 WHERE w_id = 1`, ExpectedEstimates: "Project\n" + " ├─ columns: [count(customer2.c_id) as namecnt]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(customer2.c_id))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(customer2.c_id)\n" + + " ├─ group: \n" + " └─ IndexedTableAccess(customer2)\n" + " ├─ index: [customer2.c_w_id,customer2.c_d_id,customer2.c_last,customer2.c_first]\n" + " ├─ filters: [{[1, 1], [5, 5], [ESEEINGABLE, ESEEINGABLE], [NULL, ∞)}]\n" + @@ -431,8 +431,8 @@ UPDATE warehouse2 SET w_ytd = w_ytd + 1767 WHERE w_id = 1`, ExpectedAnalysis: "Project\n" + " ├─ columns: [count(customer2.c_id) as namecnt]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(customer2.c_id))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(customer2.c_id)\n" + + " ├─ group: \n" + " └─ IndexedTableAccess(customer2)\n" + " ├─ index: [customer2.c_w_id,customer2.c_d_id,customer2.c_last,customer2.c_first]\n" + " ├─ filters: [{[1, 1], [5, 5], [ESEEINGABLE, ESEEINGABLE], [NULL, ∞)}]\n" + @@ -546,8 +546,8 @@ SELECT count(c_id) namecnt FROM customer2 WHERE c_w_id = 1 AND c_d_id= 1 AND c_l ExpectedEstimates: "Project\n" + " ├─ columns: [count(customer2.c_id) as namecnt]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(customer2.c_id))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(customer2.c_id)\n" + + " ├─ group: \n" + " └─ IndexedTableAccess(customer2)\n" + " ├─ index: [customer2.c_w_id,customer2.c_d_id,customer2.c_last,customer2.c_first]\n" + " ├─ filters: [{[1, 1], [1, 1], [PRIESEPRES, PRIESEPRES], [NULL, ∞)}]\n" + @@ -556,8 +556,8 @@ SELECT count(c_id) namecnt FROM customer2 WHERE c_w_id = 1 AND c_d_id= 1 AND c_l ExpectedAnalysis: "Project\n" + " ├─ columns: [count(customer2.c_id) as namecnt]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(customer2.c_id))\n" + - " ├─ Grouping()\n" + + " ├─ select: COUNT(customer2.c_id)\n" + + " ├─ group: \n" + " └─ IndexedTableAccess(customer2)\n" + " ├─ index: [customer2.c_w_id,customer2.c_d_id,customer2.c_last,customer2.c_first]\n" + " ├─ filters: [{[1, 1], [1, 1], [PRIESEPRES, PRIESEPRES], [NULL, ∞)}]\n" + @@ -720,9 +720,9 @@ SELECT d_next_o_id FROM district2 WHERE d_id = 5 AND d_w_id= 1`, ExpectedEstimates: "Project\n" + " ├─ columns: [countdistinct([stock2.s_i_id]) as COUNT(DISTINCT (s_i_id))]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNTDISTINCT([stock2.s_i_id]))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: COUNTDISTINCT([stock2.s_i_id])\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=130201.500 rows=39455)\n" + " ├─ IndexedTableAccess(order_line2)\n" + " │ ├─ index: [order_line2.ol_w_id,order_line2.ol_d_id,order_line2.ol_o_id,order_line2.ol_number]\n" + " │ ├─ filters: [{[1, 1], [5, 5], [2983, 3003), [NULL, ∞)}]\n" + @@ -737,9 +737,9 @@ SELECT d_next_o_id FROM district2 WHERE d_id = 5 AND d_w_id= 1`, ExpectedAnalysis: "Project\n" + " ├─ columns: [countdistinct([stock2.s_i_id]) as COUNT(DISTINCT (s_i_id))]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNTDISTINCT([stock2.s_i_id]))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: COUNTDISTINCT([stock2.s_i_id])\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=130201.500 rows=39455) (actual rows=0 loops=1)\n" + " ├─ IndexedTableAccess(order_line2)\n" + " │ ├─ index: [order_line2.ol_w_id,order_line2.ol_d_id,order_line2.ol_o_id,order_line2.ol_number]\n" + " │ ├─ filters: [{[1, 1], [5, 5], [2983, 3003), [NULL, ∞)}]\n" + @@ -875,6 +875,8 @@ from " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (18-21)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Limit(1)\n" + " │ └─ Project\n" + " │ ├─ columns: [orders2.o_c_id, orders2.o_w_id, orders2.o_d_id, countdistinct([orders2.o_id]) as count(distinct o_id)]\n" + @@ -900,6 +902,8 @@ from " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (18-21)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Limit(1)\n" + " │ └─ Project\n" + " │ ├─ columns: [orders2.o_c_id, orders2.o_w_id, orders2.o_d_id, countdistinct([orders2.o_id]) as count(distinct o_id)]\n" + diff --git a/enginetest/queries/tpch_plans.go b/enginetest/queries/tpch_plans.go index 200939f4c0..2f59daae6c 100644 --- a/enginetest/queries/tpch_plans.go +++ b/enginetest/queries/tpch_plans.go @@ -60,8 +60,8 @@ order by " ├─ columns: [lineitem.l_returnflag, lineitem.l_linestatus, sum(lineitem.l_quantity) as sum_qty, sum(lineitem.l_extendedprice) as sum_base_price, sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as sum_disc_price, sum(((lineitem.l_extendedprice * (1 - lineitem.l_discount)) * (1 + lineitem.l_tax))) as sum_charge, avg(lineitem.l_quantity) as avg_qty, avg(lineitem.l_extendedprice) as avg_price, avg(lineitem.l_discount) as avg_disc, count(1) as count_order]\n" + " └─ Sort(lineitem.l_returnflag ASC, lineitem.l_linestatus ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(AVG(lineitem.l_discount), AVG(lineitem.l_extendedprice), AVG(lineitem.l_quantity), COUNT(1), SUM(((lineitem.l_extendedprice * (1 - lineitem.l_discount)) * (1 + lineitem.l_tax))), SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), SUM(lineitem.l_extendedprice), SUM(lineitem.l_quantity), lineitem.l_returnflag, lineitem.l_linestatus)\n" + - " ├─ Grouping(lineitem.l_returnflag, lineitem.l_linestatus)\n" + + " ├─ select: AVG(lineitem.l_discount), AVG(lineitem.l_extendedprice), AVG(lineitem.l_quantity), COUNT(1), SUM(((lineitem.l_extendedprice * (1 - lineitem.l_discount)) * (1 + lineitem.l_tax))), SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), SUM(lineitem.l_extendedprice), SUM(lineitem.l_quantity), lineitem.l_returnflag, lineitem.l_linestatus\n" + + " ├─ group: lineitem.l_returnflag, lineitem.l_linestatus\n" + " └─ Filter\n" + " ├─ (lineitem.l_shipdate <= 1998-09-02 00:00:00 +0000 UTC)\n" + " └─ Table\n" + @@ -72,8 +72,8 @@ order by " ├─ columns: [lineitem.l_returnflag, lineitem.l_linestatus, sum(lineitem.l_quantity) as sum_qty, sum(lineitem.l_extendedprice) as sum_base_price, sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as sum_disc_price, sum(((lineitem.l_extendedprice * (1 - lineitem.l_discount)) * (1 + lineitem.l_tax))) as sum_charge, avg(lineitem.l_quantity) as avg_qty, avg(lineitem.l_extendedprice) as avg_price, avg(lineitem.l_discount) as avg_disc, count(1) as count_order]\n" + " └─ Sort(lineitem.l_returnflag ASC, lineitem.l_linestatus ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(AVG(lineitem.l_discount), AVG(lineitem.l_extendedprice), AVG(lineitem.l_quantity), COUNT(1), SUM(((lineitem.l_extendedprice * (1 - lineitem.l_discount)) * (1 + lineitem.l_tax))), SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), SUM(lineitem.l_extendedprice), SUM(lineitem.l_quantity), lineitem.l_returnflag, lineitem.l_linestatus)\n" + - " ├─ Grouping(lineitem.l_returnflag, lineitem.l_linestatus)\n" + + " ├─ select: AVG(lineitem.l_discount), AVG(lineitem.l_extendedprice), AVG(lineitem.l_quantity), COUNT(1), SUM(((lineitem.l_extendedprice * (1 - lineitem.l_discount)) * (1 + lineitem.l_tax))), SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), SUM(lineitem.l_extendedprice), SUM(lineitem.l_quantity), lineitem.l_returnflag, lineitem.l_linestatus\n" + + " ├─ group: lineitem.l_returnflag, lineitem.l_linestatus\n" + " └─ Filter\n" + " ├─ (lineitem.l_shipdate <= 1998-09-02 00:00:00 +0000 UTC)\n" + " └─ Table\n" + @@ -240,11 +240,11 @@ order by ExpectedEstimates: "Project\n" + " ├─ columns: [supplier.s_acctbal, supplier.s_name, nation.n_name, part.p_partkey, part.p_mfgr, supplier.s_address, supplier.s_phone, supplier.s_comment]\n" + " └─ Sort(supplier.s_acctbal DESC, nation.n_name ASC, supplier.s_name ASC, part.p_partkey ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + " ├─ (partsupp.ps_supplycost = Subquery(select min(ps_supplycost) from partsupp, supplier, nation, region where p_partkey = ps_partkey and s_suppkey = ps_suppkey and s_nationkey = n_nationkey and n_regionkey = r_regionkey and r_name = 'EUROPE'))\n" + - " ├─ LookupJoin\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ MergeJoin\n" + + " ├─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + + " │ ├─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + + " │ │ ├─ MergeJoin (estimated cost=1878.500 rows=1000)\n" + " │ │ │ ├─ cmp: (part.p_partkey = partsupp.ps_partkey)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ ((part.p_size = 15) AND part.p_type LIKE '%BRASS')\n" + @@ -269,11 +269,11 @@ order by ExpectedAnalysis: "Project\n" + " ├─ columns: [supplier.s_acctbal, supplier.s_name, nation.n_name, part.p_partkey, part.p_mfgr, supplier.s_address, supplier.s_phone, supplier.s_comment]\n" + " └─ Sort(supplier.s_acctbal DESC, nation.n_name ASC, supplier.s_name ASC, part.p_partkey ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + " ├─ (partsupp.ps_supplycost = Subquery(select min(ps_supplycost) from partsupp, supplier, nation, region where p_partkey = ps_partkey and s_suppkey = ps_suppkey and s_nationkey = n_nationkey and n_regionkey = r_regionkey and r_name = 'EUROPE'))\n" + - " ├─ LookupJoin\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ MergeJoin\n" + + " ├─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + + " │ ├─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + + " │ │ ├─ MergeJoin (estimated cost=1878.500 rows=1000) (actual rows=0 loops=1)\n" + " │ │ │ ├─ cmp: (part.p_partkey = partsupp.ps_partkey)\n" + " │ │ │ ├─ Filter\n" + " │ │ │ │ ├─ ((part.p_size = 15) AND part.p_type LIKE '%BRASS')\n" + @@ -377,10 +377,10 @@ order by " └─ Project\n" + " ├─ columns: [sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))), lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority, sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority)\n" + - " ├─ Grouping(lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority)\n" + - " └─ LookupJoin\n" + - " ├─ MergeJoin\n" + + " ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority\n" + + " ├─ group: lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority\n" + + " └─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " ├─ MergeJoin (estimated cost=1725.500 rows=850)\n" + " │ ├─ cmp: (orders.o_orderkey = lineitem.l_orderkey)\n" + " │ ├─ Filter\n" + " │ │ ├─ (orders.o_orderdate < '1995-03-15')\n" + @@ -407,10 +407,10 @@ order by " └─ Project\n" + " ├─ columns: [sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))), lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority, sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority)\n" + - " ├─ Grouping(lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority)\n" + - " └─ LookupJoin\n" + - " ├─ MergeJoin\n" + + " ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority\n" + + " ├─ group: lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority\n" + + " └─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " ├─ MergeJoin (estimated cost=1725.500 rows=850) (actual rows=0 loops=1)\n" + " │ ├─ cmp: (orders.o_orderkey = lineitem.l_orderkey)\n" + " │ ├─ Filter\n" + " │ │ ├─ (orders.o_orderdate < '1995-03-15')\n" + @@ -504,11 +504,11 @@ order by " ├─ columns: [orders.o_orderpriority, count(1) as order_count]\n" + " └─ Sort(orders.o_orderpriority ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1), orders.o_orderpriority)\n" + - " ├─ Grouping(orders.o_orderpriority)\n" + + " ├─ select: COUNT(1), orders.o_orderpriority\n" + + " ├─ group: orders.o_orderpriority\n" + " └─ Project\n" + " ├─ columns: [orders.O_ORDERKEY, orders.O_CUSTKEY, orders.O_ORDERSTATUS, orders.O_TOTALPRICE, orders.O_ORDERDATE, orders.O_ORDERPRIORITY, orders.O_CLERK, orders.O_SHIPPRIORITY, orders.O_COMMENT]\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=1725.500 rows=850)\n" + " ├─ cmp: (orders.o_orderkey = lineitem.l_orderkey)\n" + " ├─ Filter\n" + " │ ├─ ((orders.o_orderdate >= '1993-07-01') AND (orders.o_orderdate < 1993-10-01 00:00:00 +0000 UTC))\n" + @@ -529,11 +529,11 @@ order by " ├─ columns: [orders.o_orderpriority, count(1) as order_count]\n" + " └─ Sort(orders.o_orderpriority ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1), orders.o_orderpriority)\n" + - " ├─ Grouping(orders.o_orderpriority)\n" + + " ├─ select: COUNT(1), orders.o_orderpriority\n" + + " ├─ group: orders.o_orderpriority\n" + " └─ Project\n" + " ├─ columns: [orders.O_ORDERKEY, orders.O_CUSTKEY, orders.O_ORDERSTATUS, orders.O_TOTALPRICE, orders.O_ORDERDATE, orders.O_ORDERPRIORITY, orders.O_CLERK, orders.O_SHIPPRIORITY, orders.O_COMMENT]\n" + - " └─ MergeJoin\n" + + " └─ MergeJoin (estimated cost=1725.500 rows=850) (actual rows=0 loops=1)\n" + " ├─ cmp: (orders.o_orderkey = lineitem.l_orderkey)\n" + " ├─ Filter\n" + " │ ├─ ((orders.o_orderdate >= '1993-07-01') AND (orders.o_orderdate < 1993-10-01 00:00:00 +0000 UTC))\n" + @@ -661,14 +661,14 @@ order by " └─ Project\n" + " ├─ columns: [sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))), nation.n_name, sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), nation.n_name)\n" + - " ├─ Grouping(nation.n_name)\n" + - " └─ LookupJoin\n" + + " ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), nation.n_name\n" + + " ├─ group: nation.n_name\n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + " ├─ ((customer.c_nationkey = supplier.s_nationkey) AND (supplier.s_nationkey = nation.n_nationkey))\n" + - " ├─ LookupJoin\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + + " ├─ LookupJoin (estimated cost=3173.000 rows=1000)\n" + + " │ ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ ((orders.o_orderdate >= '1994-01-01') AND (orders.o_orderdate < 1995-01-01 00:00:00 +0000 UTC))\n" + " │ │ │ │ │ └─ Table\n" + @@ -703,14 +703,14 @@ order by " └─ Project\n" + " ├─ columns: [sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))), nation.n_name, sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), nation.n_name)\n" + - " ├─ Grouping(nation.n_name)\n" + - " └─ LookupJoin\n" + + " ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), nation.n_name\n" + + " ├─ group: nation.n_name\n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + " ├─ ((customer.c_nationkey = supplier.s_nationkey) AND (supplier.s_nationkey = nation.n_nationkey))\n" + - " ├─ LookupJoin\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + + " ├─ LookupJoin (estimated cost=3173.000 rows=1000) (actual rows=0 loops=1)\n" + + " │ ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ ((orders.o_orderdate >= '1994-01-01') AND (orders.o_orderdate < 1995-01-01 00:00:00 +0000 UTC))\n" + " │ │ │ │ │ └─ Table\n" + @@ -785,8 +785,8 @@ where ExpectedEstimates: "Project\n" + " ├─ columns: [sum((lineitem.l_extendedprice * lineitem.l_discount)) as revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * lineitem.l_discount)))\n" + - " ├─ Grouping()\n" + + " ├─ select: SUM((lineitem.l_extendedprice * lineitem.l_discount))\n" + + " ├─ group: \n" + " └─ Filter\n" + " ├─ ((((lineitem.l_shipdate >= '1994-01-01') AND (lineitem.l_shipdate < 1995-01-01 00:00:00 +0000 UTC)) AND ((lineitem.l_discount >= 0.05) AND (lineitem.l_discount <= 0.07))) AND (lineitem.l_quantity < 24))\n" + " └─ Table\n" + @@ -796,8 +796,8 @@ where ExpectedAnalysis: "Project\n" + " ├─ columns: [sum((lineitem.l_extendedprice * lineitem.l_discount)) as revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * lineitem.l_discount)))\n" + - " ├─ Grouping()\n" + + " ├─ select: SUM((lineitem.l_extendedprice * lineitem.l_discount))\n" + + " ├─ group: \n" + " └─ Filter\n" + " ├─ ((((lineitem.l_shipdate >= '1994-01-01') AND (lineitem.l_shipdate < 1995-01-01 00:00:00 +0000 UTC)) AND ((lineitem.l_discount >= 0.05) AND (lineitem.l_discount <= 0.07))) AND (lineitem.l_quantity < 24))\n" + " └─ Table\n" + @@ -948,21 +948,23 @@ order by " ├─ columns: [shipping.supp_nation, shipping.cust_nation, shipping.l_year, sum(shipping.volume) as revenue]\n" + " └─ Sort(shipping.supp_nation ASC, shipping.cust_nation ASC, shipping.l_year ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(shipping.volume), shipping.supp_nation, shipping.cust_nation, shipping.l_year)\n" + - " ├─ Grouping(shipping.supp_nation, shipping.cust_nation, shipping.l_year)\n" + + " ├─ select: SUM(shipping.volume), shipping.supp_nation, shipping.cust_nation, shipping.l_year\n" + + " ├─ group: shipping.supp_nation, shipping.cust_nation, shipping.l_year\n" + " └─ SubqueryAlias\n" + " ├─ name: shipping\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (53-56)\n" + + " ├─ tableId: 7\n" + " └─ Project\n" + " ├─ columns: [n1.n_name as supp_nation, n2.n_name as cust_nation, extract('YEAR' from lineitem.l_shipdate) as l_year, (lineitem.l_extendedprice * (1 - lineitem.l_discount)) as volume]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=2805.000 rows=850)\n" + " ├─ (((n1.n_name = 'FRANCE') AND (n2.n_name = 'GERMANY')) OR ((n1.n_name = 'GERMANY') AND (n2.n_name = 'FRANCE')))\n" + - " ├─ LookupJoin\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ MergeJoin\n" + + " ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " │ ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " │ │ │ ├─ MergeJoin (estimated cost=1877.000 rows=850)\n" + " │ │ │ │ ├─ cmp: (lineitem.l_orderkey = orders.o_orderkey)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ ((lineitem.l_shipdate >= '1995-01-01') AND (lineitem.l_shipdate <= '1996-12-31'))\n" + @@ -997,21 +999,23 @@ order by " ├─ columns: [shipping.supp_nation, shipping.cust_nation, shipping.l_year, sum(shipping.volume) as revenue]\n" + " └─ Sort(shipping.supp_nation ASC, shipping.cust_nation ASC, shipping.l_year ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(shipping.volume), shipping.supp_nation, shipping.cust_nation, shipping.l_year)\n" + - " ├─ Grouping(shipping.supp_nation, shipping.cust_nation, shipping.l_year)\n" + + " ├─ select: SUM(shipping.volume), shipping.supp_nation, shipping.cust_nation, shipping.l_year\n" + + " ├─ group: shipping.supp_nation, shipping.cust_nation, shipping.l_year\n" + " └─ SubqueryAlias\n" + " ├─ name: shipping\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (53-56)\n" + + " ├─ tableId: 7\n" + " └─ Project\n" + " ├─ columns: [n1.n_name as supp_nation, n2.n_name as cust_nation, extract('YEAR' from lineitem.l_shipdate) as l_year, (lineitem.l_extendedprice * (1 - lineitem.l_discount)) as volume]\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + " ├─ (((n1.n_name = 'FRANCE') AND (n2.n_name = 'GERMANY')) OR ((n1.n_name = 'GERMANY') AND (n2.n_name = 'FRANCE')))\n" + - " ├─ LookupJoin\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ MergeJoin\n" + + " ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " │ ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " │ │ │ ├─ MergeJoin (estimated cost=1877.000 rows=850) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ cmp: (lineitem.l_orderkey = orders.o_orderkey)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ ((lineitem.l_shipdate >= '1995-01-01') AND (lineitem.l_shipdate <= '1996-12-31'))\n" + @@ -1192,22 +1196,24 @@ order by " ├─ columns: [all_nations.o_year, (sum(case when (all_nations.nation = 'brazil') then all_nations.volume else 0 end) / sum(all_nations.volume)) as mkt_share]\n" + " └─ Sort(all_nations.o_year ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(CASE WHEN (all_nations.nation = 'BRAZIL') THEN all_nations.volume ELSE 0 END), SUM(all_nations.volume), all_nations.o_year)\n" + - " ├─ Grouping(all_nations.o_year)\n" + + " ├─ select: SUM(CASE WHEN (all_nations.nation = 'BRAZIL') THEN all_nations.volume ELSE 0 END), SUM(all_nations.volume), all_nations.o_year\n" + + " ├─ group: all_nations.o_year\n" + " └─ SubqueryAlias\n" + " ├─ name: all_nations\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (64-66)\n" + + " ├─ tableId: 9\n" + " └─ Project\n" + " ├─ columns: [extract('YEAR' from orders.o_orderdate) as o_year, (lineitem.l_extendedprice * (1 - lineitem.l_discount)) as volume, n2.n_name as nation]\n" + - " └─ LookupJoin\n" + - " ├─ LookupJoin\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ │ ├─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + + " ├─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + + " │ ├─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + + " │ │ ├─ LookupJoin (estimated cost=3173.000 rows=1000)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " │ │ │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " │ │ │ │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + " │ │ │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ │ │ ├─ ((orders.o_orderdate >= '1995-01-01') AND (orders.o_orderdate <= '1996-12-31'))\n" + " │ │ │ │ │ │ │ └─ Table\n" + @@ -1252,22 +1258,24 @@ order by " ├─ columns: [all_nations.o_year, (sum(case when (all_nations.nation = 'brazil') then all_nations.volume else 0 end) / sum(all_nations.volume)) as mkt_share]\n" + " └─ Sort(all_nations.o_year ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(CASE WHEN (all_nations.nation = 'BRAZIL') THEN all_nations.volume ELSE 0 END), SUM(all_nations.volume), all_nations.o_year)\n" + - " ├─ Grouping(all_nations.o_year)\n" + + " ├─ select: SUM(CASE WHEN (all_nations.nation = 'BRAZIL') THEN all_nations.volume ELSE 0 END), SUM(all_nations.volume), all_nations.o_year\n" + + " ├─ group: all_nations.o_year\n" + " └─ SubqueryAlias\n" + " ├─ name: all_nations\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (64-66)\n" + + " ├─ tableId: 9\n" + " └─ Project\n" + " ├─ columns: [extract('YEAR' from orders.o_orderdate) as o_year, (lineitem.l_extendedprice * (1 - lineitem.l_discount)) as volume, n2.n_name as nation]\n" + - " └─ LookupJoin\n" + - " ├─ LookupJoin\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ │ ├─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + + " ├─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + + " │ ├─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + + " │ │ ├─ LookupJoin (estimated cost=3173.000 rows=1000) (actual rows=0 loops=1)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " │ │ │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " │ │ │ │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + " │ │ │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ │ │ ├─ ((orders.o_orderdate >= '1995-01-01') AND (orders.o_orderdate <= '1996-12-31'))\n" + " │ │ │ │ │ │ │ └─ Table\n" + @@ -1443,19 +1451,21 @@ order by " ├─ columns: [profit.nation, profit.o_year, sum(profit.amount) as sum_profit]\n" + " └─ Sort(profit.nation ASC, profit.o_year DESC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(profit.amount), profit.nation, profit.o_year)\n" + - " ├─ Grouping(profit.nation, profit.o_year)\n" + + " ├─ select: SUM(profit.amount), profit.nation, profit.o_year\n" + + " ├─ group: profit.nation, profit.o_year\n" + " └─ SubqueryAlias\n" + " ├─ name: profit\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (54-56)\n" + + " ├─ tableId: 7\n" + " └─ Project\n" + " ├─ columns: [nation.n_name as nation, extract('YEAR' from orders.o_orderdate) as o_year, ((lineitem.l_extendedprice * (1 - lineitem.l_discount)) - (partsupp.ps_supplycost * lineitem.l_quantity)) as amount]\n" + - " └─ LookupJoin\n" + - " ├─ HashJoin\n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + + " ├─ HashJoin (estimated cost=4020.000 rows=1000)\n" + " │ ├─ ((((part.p_partkey = lineitem.l_partkey) AND (partsupp.ps_suppkey = lineitem.l_suppkey)) AND (partsupp.ps_partkey = lineitem.l_partkey)) AND (supplier.s_suppkey = partsupp.ps_suppkey))\n" + - " │ ├─ MergeJoin\n" + + " │ ├─ MergeJoin (estimated cost=1878.500 rows=1000)\n" + " │ │ ├─ cmp: (part.p_partkey = partsupp.ps_partkey)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ part.p_name LIKE '%green%'\n" + @@ -1470,8 +1480,8 @@ order by " │ └─ HashLookup\n" + " │ ├─ left-key: (part.p_partkey, partsupp.ps_suppkey, partsupp.ps_partkey, partsupp.ps_suppkey)\n" + " │ ├─ right-key: (lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_partkey, supplier.s_suppkey)\n" + - " │ └─ LookupJoin\n" + - " │ ├─ MergeJoin\n" + + " │ └─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + + " │ ├─ MergeJoin (estimated cost=2030.000 rows=1000)\n" + " │ │ ├─ cmp: (lineitem.l_orderkey = orders.o_orderkey)\n" + " │ │ ├─ IndexedTableAccess(lineitem)\n" + " │ │ │ ├─ index: [lineitem.L_ORDERKEY,lineitem.L_LINENUMBER]\n" + @@ -1494,19 +1504,21 @@ order by " ├─ columns: [profit.nation, profit.o_year, sum(profit.amount) as sum_profit]\n" + " └─ Sort(profit.nation ASC, profit.o_year DESC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(profit.amount), profit.nation, profit.o_year)\n" + - " ├─ Grouping(profit.nation, profit.o_year)\n" + + " ├─ select: SUM(profit.amount), profit.nation, profit.o_year\n" + + " ├─ group: profit.nation, profit.o_year\n" + " └─ SubqueryAlias\n" + " ├─ name: profit\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (54-56)\n" + + " ├─ tableId: 7\n" + " └─ Project\n" + " ├─ columns: [nation.n_name as nation, extract('YEAR' from orders.o_orderdate) as o_year, ((lineitem.l_extendedprice * (1 - lineitem.l_discount)) - (partsupp.ps_supplycost * lineitem.l_quantity)) as amount]\n" + - " └─ LookupJoin\n" + - " ├─ HashJoin\n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + + " ├─ HashJoin (estimated cost=4020.000 rows=1000) (actual rows=0 loops=1)\n" + " │ ├─ ((((part.p_partkey = lineitem.l_partkey) AND (partsupp.ps_suppkey = lineitem.l_suppkey)) AND (partsupp.ps_partkey = lineitem.l_partkey)) AND (supplier.s_suppkey = partsupp.ps_suppkey))\n" + - " │ ├─ MergeJoin\n" + + " │ ├─ MergeJoin (estimated cost=1878.500 rows=1000) (actual rows=0 loops=1)\n" + " │ │ ├─ cmp: (part.p_partkey = partsupp.ps_partkey)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ part.p_name LIKE '%green%'\n" + @@ -1521,8 +1533,8 @@ order by " │ └─ HashLookup\n" + " │ ├─ left-key: (part.p_partkey, partsupp.ps_suppkey, partsupp.ps_partkey, partsupp.ps_suppkey)\n" + " │ ├─ right-key: (lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_partkey, supplier.s_suppkey)\n" + - " │ └─ LookupJoin\n" + - " │ ├─ MergeJoin\n" + + " │ └─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + + " │ ├─ MergeJoin (estimated cost=2030.000 rows=1000)\n" + " │ │ ├─ cmp: (lineitem.l_orderkey = orders.o_orderkey)\n" + " │ │ ├─ IndexedTableAccess(lineitem)\n" + " │ │ │ ├─ index: [lineitem.L_ORDERKEY,lineitem.L_LINENUMBER]\n" + @@ -1641,11 +1653,11 @@ order by " └─ Project\n" + " ├─ columns: [sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))), customer.c_custkey, customer.c_name, customer.c_acctbal, nation.n_name, customer.c_address, customer.c_phone, customer.c_comment, sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), customer.c_custkey, customer.c_name, customer.c_acctbal, nation.n_name, customer.c_address, customer.c_phone, customer.c_comment)\n" + - " ├─ Grouping(customer.c_custkey, customer.c_name, customer.c_acctbal, customer.c_phone, nation.n_name, customer.c_address, customer.c_comment)\n" + - " └─ LookupJoin\n" + - " ├─ LookupJoin\n" + - " │ ├─ MergeJoin\n" + + " ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), customer.c_custkey, customer.c_name, customer.c_acctbal, nation.n_name, customer.c_address, customer.c_phone, customer.c_comment\n" + + " ├─ group: customer.c_custkey, customer.c_name, customer.c_acctbal, customer.c_phone, nation.n_name, customer.c_address, customer.c_comment\n" + + " └─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " │ ├─ MergeJoin (estimated cost=1725.500 rows=850)\n" + " │ │ ├─ cmp: (orders.o_orderkey = lineitem.l_orderkey)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ ((orders.o_orderdate >= '1993-10-01') AND (orders.o_orderdate < 1994-01-01 00:00:00 +0000 UTC))\n" + @@ -1674,11 +1686,11 @@ order by " └─ Project\n" + " ├─ columns: [sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))), customer.c_custkey, customer.c_name, customer.c_acctbal, nation.n_name, customer.c_address, customer.c_phone, customer.c_comment, sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), customer.c_custkey, customer.c_name, customer.c_acctbal, nation.n_name, customer.c_address, customer.c_phone, customer.c_comment)\n" + - " ├─ Grouping(customer.c_custkey, customer.c_name, customer.c_acctbal, customer.c_phone, nation.n_name, customer.c_address, customer.c_comment)\n" + - " └─ LookupJoin\n" + - " ├─ LookupJoin\n" + - " │ ├─ MergeJoin\n" + + " ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), customer.c_custkey, customer.c_name, customer.c_acctbal, nation.n_name, customer.c_address, customer.c_phone, customer.c_comment\n" + + " ├─ group: customer.c_custkey, customer.c_name, customer.c_acctbal, customer.c_phone, nation.n_name, customer.c_address, customer.c_comment\n" + + " └─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " │ ├─ MergeJoin (estimated cost=1725.500 rows=850) (actual rows=0 loops=1)\n" + " │ │ ├─ cmp: (orders.o_orderkey = lineitem.l_orderkey)\n" + " │ │ ├─ Filter\n" + " │ │ │ ├─ ((orders.o_orderdate >= '1993-10-01') AND (orders.o_orderdate < 1994-01-01 00:00:00 +0000 UTC))\n" + @@ -1809,8 +1821,8 @@ order by " └─ Project\n" + " ├─ columns: [sum((partsupp.ps_supplycost * partsupp.ps_availqty)), partsupp.ps_partkey, partsupp.PS_SUPPLYCOST, partsupp.PS_AVAILQTY, sum((partsupp.ps_supplycost * partsupp.ps_availqty)) as value]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((partsupp.ps_supplycost * partsupp.ps_availqty)), partsupp.ps_partkey, partsupp.PS_SUPPLYCOST, partsupp.PS_AVAILQTY)\n" + - " ├─ Grouping(partsupp.ps_partkey)\n" + + " ├─ select: SUM((partsupp.ps_supplycost * partsupp.ps_availqty)), partsupp.ps_partkey, partsupp.PS_SUPPLYCOST, partsupp.PS_AVAILQTY\n" + + " ├─ group: partsupp.ps_partkey\n" + " └─ LookupJoin\n" + " ├─ LookupJoin\n" + " │ ├─ Table\n" + @@ -1831,8 +1843,8 @@ order by " └─ Project\n" + " ├─ columns: [sum((partsupp.ps_supplycost * partsupp.ps_availqty)), partsupp.ps_partkey, partsupp.PS_SUPPLYCOST, partsupp.PS_AVAILQTY, sum((partsupp.ps_supplycost * partsupp.ps_availqty)) as value]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((partsupp.ps_supplycost * partsupp.ps_availqty)), partsupp.ps_partkey, partsupp.PS_SUPPLYCOST, partsupp.PS_AVAILQTY)\n" + - " ├─ Grouping(partsupp.ps_partkey)\n" + + " ├─ select: SUM((partsupp.ps_supplycost * partsupp.ps_availqty)), partsupp.ps_partkey, partsupp.PS_SUPPLYCOST, partsupp.PS_AVAILQTY\n" + + " ├─ group: partsupp.ps_partkey\n" + " └─ LookupJoin\n" + " ├─ LookupJoin\n" + " │ ├─ Table\n" + @@ -1945,9 +1957,9 @@ order by " ├─ columns: [lineitem.l_shipmode, sum(case when ((orders.o_orderpriority = '1-urgent') or (orders.o_orderpriority = '2-high')) then 1 else 0 end) as high_line_count, sum(case when ((not((orders.o_orderpriority = '1-urgent'))) and (not((orders.o_orderpriority = '2-high')))) then 1 else 0 end) as low_line_count]\n" + " └─ Sort(lineitem.l_shipmode ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(CASE WHEN ((NOT((orders.o_orderpriority = '1-URGENT'))) AND (NOT((orders.o_orderpriority = '2-HIGH')))) THEN 1 ELSE 0 END), SUM(CASE WHEN ((orders.o_orderpriority = '1-URGENT') OR (orders.o_orderpriority = '2-HIGH')) THEN 1 ELSE 0 END), lineitem.l_shipmode)\n" + - " ├─ Grouping(lineitem.l_shipmode)\n" + - " └─ MergeJoin\n" + + " ├─ select: SUM(CASE WHEN ((NOT((orders.o_orderpriority = '1-URGENT'))) AND (NOT((orders.o_orderpriority = '2-HIGH')))) THEN 1 ELSE 0 END), SUM(CASE WHEN ((orders.o_orderpriority = '1-URGENT') OR (orders.o_orderpriority = '2-HIGH')) THEN 1 ELSE 0 END), lineitem.l_shipmode\n" + + " ├─ group: lineitem.l_shipmode\n" + + " └─ MergeJoin (estimated cost=1877.000 rows=850)\n" + " ├─ cmp: (orders.o_orderkey = lineitem.l_orderkey)\n" + " ├─ IndexedTableAccess(orders)\n" + " │ ├─ index: [orders.O_ORDERKEY]\n" + @@ -1964,9 +1976,9 @@ order by " ├─ columns: [lineitem.l_shipmode, sum(case when ((orders.o_orderpriority = '1-urgent') or (orders.o_orderpriority = '2-high')) then 1 else 0 end) as high_line_count, sum(case when ((not((orders.o_orderpriority = '1-urgent'))) and (not((orders.o_orderpriority = '2-high')))) then 1 else 0 end) as low_line_count]\n" + " └─ Sort(lineitem.l_shipmode ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(CASE WHEN ((NOT((orders.o_orderpriority = '1-URGENT'))) AND (NOT((orders.o_orderpriority = '2-HIGH')))) THEN 1 ELSE 0 END), SUM(CASE WHEN ((orders.o_orderpriority = '1-URGENT') OR (orders.o_orderpriority = '2-HIGH')) THEN 1 ELSE 0 END), lineitem.l_shipmode)\n" + - " ├─ Grouping(lineitem.l_shipmode)\n" + - " └─ MergeJoin\n" + + " ├─ select: SUM(CASE WHEN ((NOT((orders.o_orderpriority = '1-URGENT'))) AND (NOT((orders.o_orderpriority = '2-HIGH')))) THEN 1 ELSE 0 END), SUM(CASE WHEN ((orders.o_orderpriority = '1-URGENT') OR (orders.o_orderpriority = '2-HIGH')) THEN 1 ELSE 0 END), lineitem.l_shipmode\n" + + " ├─ group: lineitem.l_shipmode\n" + + " └─ MergeJoin (estimated cost=1877.000 rows=850) (actual rows=0 loops=1)\n" + " ├─ cmp: (orders.o_orderkey = lineitem.l_orderkey)\n" + " ├─ IndexedTableAccess(orders)\n" + " │ ├─ index: [orders.O_ORDERKEY]\n" + @@ -2047,19 +2059,21 @@ order by " └─ Project\n" + " ├─ columns: [count(1), c_orders.c_count, count(1) as custdist]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1), c_orders.c_count)\n" + - " ├─ Grouping(c_orders.c_count)\n" + + " ├─ select: COUNT(1), c_orders.c_count\n" + + " ├─ group: c_orders.c_count\n" + " └─ SubqueryAlias\n" + " ├─ name: c_orders\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (19,20)\n" + + " ├─ tableId: 3\n" + " └─ Project\n" + " ├─ columns: [customer.c_custkey, count(orders.o_orderkey) as count(o_orderkey)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(orders.o_orderkey), customer.c_custkey)\n" + - " ├─ Grouping(customer.c_custkey)\n" + - " └─ LeftOuterJoin\n" + + " ├─ select: COUNT(orders.o_orderkey), customer.c_custkey\n" + + " ├─ group: customer.c_custkey\n" + + " └─ LeftOuterJoin (estimated cost=1009999.000 rows=1250)\n" + " ├─ ((customer.c_custkey = orders.o_custkey) AND (NOT(orders.o_comment LIKE '%special%requests%')))\n" + " ├─ Table\n" + " │ ├─ name: customer\n" + @@ -2074,19 +2088,21 @@ order by " └─ Project\n" + " ├─ columns: [count(1), c_orders.c_count, count(1) as custdist]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1), c_orders.c_count)\n" + - " ├─ Grouping(c_orders.c_count)\n" + + " ├─ select: COUNT(1), c_orders.c_count\n" + + " ├─ group: c_orders.c_count\n" + " └─ SubqueryAlias\n" + " ├─ name: c_orders\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (19,20)\n" + + " ├─ tableId: 3\n" + " └─ Project\n" + " ├─ columns: [customer.c_custkey, count(orders.o_orderkey) as count(o_orderkey)]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(orders.o_orderkey), customer.c_custkey)\n" + - " ├─ Grouping(customer.c_custkey)\n" + - " └─ LeftOuterJoin\n" + + " ├─ select: COUNT(orders.o_orderkey), customer.c_custkey\n" + + " ├─ group: customer.c_custkey\n" + + " └─ LeftOuterJoin (estimated cost=1009999.000 rows=1250) (actual rows=0 loops=1)\n" + " ├─ ((customer.c_custkey = orders.o_custkey) AND (NOT(orders.o_comment LIKE '%special%requests%')))\n" + " ├─ Table\n" + " │ ├─ name: customer\n" + @@ -2142,9 +2158,9 @@ where ExpectedEstimates: "Project\n" + " ├─ columns: [((100.00 * sum(case when part.p_type like 'promo%' then (lineitem.l_extendedprice * (1 - lineitem.l_discount)) else 0 end)) / sum((lineitem.l_extendedprice * (1 - lineitem.l_discount)))) as promo_revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), SUM(CASE WHEN part.p_type LIKE 'PROMO%' THEN (lineitem.l_extendedprice * (1 - lineitem.l_discount)) ELSE 0 END))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), SUM(CASE WHEN part.p_type LIKE 'PROMO%' THEN (lineitem.l_extendedprice * (1 - lineitem.l_discount)) ELSE 0 END)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=2805.000 rows=850)\n" + " ├─ Filter\n" + " │ ├─ ((lineitem.l_shipdate >= '1995-09-01') AND (lineitem.l_shipdate < 1995-10-01 00:00:00 +0000 UTC))\n" + " │ └─ Table\n" + @@ -2158,9 +2174,9 @@ where ExpectedAnalysis: "Project\n" + " ├─ columns: [((100.00 * sum(case when part.p_type like 'promo%' then (lineitem.l_extendedprice * (1 - lineitem.l_discount)) else 0 end)) / sum((lineitem.l_extendedprice * (1 - lineitem.l_discount)))) as promo_revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), SUM(CASE WHEN part.p_type LIKE 'PROMO%' THEN (lineitem.l_extendedprice * (1 - lineitem.l_discount)) ELSE 0 END))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), SUM(CASE WHEN part.p_type LIKE 'PROMO%' THEN (lineitem.l_extendedprice * (1 - lineitem.l_discount)) ELSE 0 END)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + " ├─ Filter\n" + " │ ├─ ((lineitem.l_shipdate >= '1995-09-01') AND (lineitem.l_shipdate < 1995-10-01 00:00:00 +0000 UTC))\n" + " │ └─ Table\n" + @@ -2281,18 +2297,20 @@ order by ExpectedEstimates: "Project\n" + " ├─ columns: [supplier.s_suppkey, supplier.s_name, supplier.s_address, supplier.s_phone, revenue0.total_revenue]\n" + " └─ Sort(supplier.s_suppkey ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=330.000 rows=100)\n" + " ├─ (revenue0.total_revenue = Subquery(select max(total_revenue) from revenue0))\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: revenue0\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (27,28)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [lineitem.l_suppkey, sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as sum(l_extendedprice * (1 - l_discount))]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), lineitem.l_suppkey)\n" + - " │ ├─ Grouping(lineitem.l_suppkey)\n" + + " │ ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), lineitem.l_suppkey\n" + + " │ ├─ group: lineitem.l_suppkey\n" + " │ └─ Filter\n" + " │ ├─ ((lineitem.l_shipdate >= '1996-01-01') AND (lineitem.l_shipdate < 1996-04-01 00:00:00 +0000 UTC))\n" + " │ └─ Table\n" + @@ -2305,18 +2323,20 @@ order by ExpectedAnalysis: "Project\n" + " ├─ columns: [supplier.s_suppkey, supplier.s_name, supplier.s_address, supplier.s_phone, revenue0.total_revenue]\n" + " └─ Sort(supplier.s_suppkey ASC)\n" + - " └─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=330.000 rows=100) (actual rows=0 loops=1)\n" + " ├─ (revenue0.total_revenue = Subquery(select max(total_revenue) from revenue0))\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: revenue0\n" + " │ ├─ outerVisibility: false\n" + " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (27,28)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Project\n" + " │ ├─ columns: [lineitem.l_suppkey, sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as sum(l_extendedprice * (1 - l_discount))]\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), lineitem.l_suppkey)\n" + - " │ ├─ Grouping(lineitem.l_suppkey)\n" + + " │ ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))), lineitem.l_suppkey\n" + + " │ ├─ group: lineitem.l_suppkey\n" + " │ └─ Filter\n" + " │ ├─ ((lineitem.l_shipdate >= '1996-01-01') AND (lineitem.l_shipdate < 1996-04-01 00:00:00 +0000 UTC))\n" + " │ └─ Table\n" + @@ -2429,14 +2449,14 @@ order by " └─ Project\n" + " ├─ columns: [countdistinct([partsupp.ps_suppkey]), part.p_brand, part.p_type, part.p_size, countdistinct([partsupp.ps_suppkey]) as supplier_cnt]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNTDISTINCT([partsupp.ps_suppkey]), part.p_brand, part.p_type, part.p_size)\n" + - " ├─ Grouping(part.p_brand, part.p_type, part.p_size)\n" + + " ├─ select: COUNTDISTINCT([partsupp.ps_suppkey]), part.p_brand, part.p_type, part.p_size\n" + + " ├─ group: part.p_brand, part.p_type, part.p_size\n" + " └─ Project\n" + " ├─ columns: [partsupp.PS_PARTKEY, partsupp.PS_SUPPKEY, partsupp.PS_AVAILQTY, partsupp.PS_SUPPLYCOST, partsupp.PS_COMMENT, part.P_PARTKEY, part.P_NAME, part.P_MFGR, part.P_BRAND, part.P_TYPE, part.P_SIZE, part.P_CONTAINER, part.P_RETAILPRICE, part.P_COMMENT]\n" + " └─ Filter\n" + " ├─ supplier.s_suppkey IS NULL\n" + - " └─ LeftOuterLookupJoin\n" + - " ├─ MergeJoin\n" + + " └─ LeftOuterLookupJoin (estimated cost=3463.300 rows=1062)\n" + + " ├─ MergeJoin (estimated cost=1878.500 rows=1000)\n" + " │ ├─ cmp: (partsupp.ps_partkey = part.p_partkey)\n" + " │ ├─ IndexedTableAccess(partsupp)\n" + " │ │ ├─ index: [partsupp.PS_PARTKEY,partsupp.PS_SUPPKEY]\n" + @@ -2460,14 +2480,14 @@ order by " └─ Project\n" + " ├─ columns: [countdistinct([partsupp.ps_suppkey]), part.p_brand, part.p_type, part.p_size, countdistinct([partsupp.ps_suppkey]) as supplier_cnt]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNTDISTINCT([partsupp.ps_suppkey]), part.p_brand, part.p_type, part.p_size)\n" + - " ├─ Grouping(part.p_brand, part.p_type, part.p_size)\n" + + " ├─ select: COUNTDISTINCT([partsupp.ps_suppkey]), part.p_brand, part.p_type, part.p_size\n" + + " ├─ group: part.p_brand, part.p_type, part.p_size\n" + " └─ Project\n" + " ├─ columns: [partsupp.PS_PARTKEY, partsupp.PS_SUPPKEY, partsupp.PS_AVAILQTY, partsupp.PS_SUPPLYCOST, partsupp.PS_COMMENT, part.P_PARTKEY, part.P_NAME, part.P_MFGR, part.P_BRAND, part.P_TYPE, part.P_SIZE, part.P_CONTAINER, part.P_RETAILPRICE, part.P_COMMENT]\n" + " └─ Filter\n" + " ├─ supplier.s_suppkey IS NULL\n" + - " └─ LeftOuterLookupJoin\n" + - " ├─ MergeJoin\n" + + " └─ LeftOuterLookupJoin (estimated cost=3463.300 rows=1062) (actual rows=0 loops=1)\n" + + " ├─ MergeJoin (estimated cost=1878.500 rows=1000) (actual rows=0 loops=1)\n" + " │ ├─ cmp: (partsupp.ps_partkey = part.p_partkey)\n" + " │ ├─ IndexedTableAccess(partsupp)\n" + " │ │ ├─ index: [partsupp.PS_PARTKEY,partsupp.PS_SUPPKEY]\n" + @@ -2555,9 +2575,9 @@ where ExpectedEstimates: "Project\n" + " ├─ columns: [(sum(lineitem.l_extendedprice) / 7.0) as avg_yearly]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(lineitem.l_extendedprice))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: SUM(lineitem.l_extendedprice)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + " ├─ (lineitem.l_quantity < Subquery(select 0.2 * avg(l_quantity) from lineitem where l_partkey = p_partkey))\n" + " ├─ Table\n" + " │ └─ name: lineitem\n" + @@ -2570,9 +2590,9 @@ where ExpectedAnalysis: "Project\n" + " ├─ columns: [(sum(lineitem.l_extendedprice) / 7.0) as avg_yearly]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(lineitem.l_extendedprice))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: SUM(lineitem.l_extendedprice)\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + " ├─ (lineitem.l_quantity < Subquery(select 0.2 * avg(l_quantity) from lineitem where l_partkey = p_partkey))\n" + " ├─ Table\n" + " │ └─ name: lineitem\n" + @@ -2668,13 +2688,13 @@ order by " ├─ columns: [customer.c_name, customer.c_custkey, orders.o_orderkey, orders.o_orderdate, orders.o_totalprice, sum(lineitem.l_quantity) as sum(l_quantity)]\n" + " └─ Sort(orders.o_totalprice DESC, orders.o_orderdate ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(lineitem.l_quantity), customer.c_name, customer.c_custkey, orders.o_orderkey, orders.o_orderdate, orders.o_totalprice)\n" + - " ├─ Grouping(customer.c_name, customer.c_custkey, orders.o_orderkey, orders.o_orderdate, orders.o_totalprice)\n" + - " └─ SemiJoin\n" + + " ├─ select: SUM(lineitem.l_quantity), customer.c_name, customer.c_custkey, orders.o_orderkey, orders.o_orderdate, orders.o_totalprice\n" + + " ├─ group: customer.c_name, customer.c_custkey, orders.o_orderkey, orders.o_orderdate, orders.o_totalprice\n" + + " └─ SemiJoin (No stats)\n" + " ├─ (orders.o_orderkey = lineitem_1.l_orderkey)\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (No stats)\n" + " │ ├─ (orders.o_orderkey = lineitem.l_orderkey)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (No stats)\n" + " │ │ ├─ (customer.c_custkey = orders.o_custkey)\n" + " │ │ ├─ Table\n" + " │ │ │ └─ name: customer\n" + @@ -2696,13 +2716,13 @@ order by " ├─ columns: [customer.c_name, customer.c_custkey, orders.o_orderkey, orders.o_orderdate, orders.o_totalprice, sum(lineitem.l_quantity) as sum(l_quantity)]\n" + " └─ Sort(orders.o_totalprice DESC, orders.o_orderdate ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(lineitem.l_quantity), customer.c_name, customer.c_custkey, orders.o_orderkey, orders.o_orderdate, orders.o_totalprice)\n" + - " ├─ Grouping(customer.c_name, customer.c_custkey, orders.o_orderkey, orders.o_orderdate, orders.o_totalprice)\n" + - " └─ SemiJoin\n" + + " ├─ select: SUM(lineitem.l_quantity), customer.c_name, customer.c_custkey, orders.o_orderkey, orders.o_orderdate, orders.o_totalprice\n" + + " ├─ group: customer.c_name, customer.c_custkey, orders.o_orderkey, orders.o_orderdate, orders.o_totalprice\n" + + " └─ SemiJoin (No stats)\n" + " ├─ (orders.o_orderkey = lineitem_1.l_orderkey)\n" + - " ├─ InnerJoin\n" + + " ├─ InnerJoin (No stats)\n" + " │ ├─ (orders.o_orderkey = lineitem.l_orderkey)\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ InnerJoin (No stats)\n" + " │ │ ├─ (customer.c_custkey = orders.o_custkey)\n" + " │ │ ├─ Table\n" + " │ │ │ └─ name: customer\n" + @@ -2906,9 +2926,9 @@ where ExpectedEstimates: "Project\n" + " ├─ columns: [sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount)))\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=-852.625 rows=1250)\n" + " ├─ ((((((((((part.p_partkey = lineitem.l_partkey) AND (part.p_brand = 'Brand#12')) AND (part.p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG'))) AND (lineitem.l_quantity >= 1)) AND (lineitem.l_quantity <= 11)) AND ((part.p_size >= 1) AND (part.p_size <= 5))) AND (lineitem.l_shipmode IN ('AIR', 'AIR REG'))) AND (lineitem.l_shipinstruct = 'DELIVER IN PERSON')) OR ((((((((part.p_partkey = lineitem.l_partkey) AND (part.p_brand = 'Brand#23')) AND (part.p_container IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK'))) AND (lineitem.l_quantity >= 10)) AND (lineitem.l_quantity <= 20)) AND ((part.p_size >= 1) AND (part.p_size <= 10))) AND (lineitem.l_shipmode IN ('AIR', 'AIR REG'))) AND (lineitem.l_shipinstruct = 'DELIVER IN PERSON'))) OR ((((((((part.p_partkey = lineitem.l_partkey) AND (part.p_brand = 'Brand#34')) AND (part.p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG'))) AND (lineitem.l_quantity >= 20)) AND (lineitem.l_quantity <= 30)) AND ((part.p_size >= 1) AND (part.p_size <= 15))) AND (lineitem.l_shipmode IN ('AIR', 'AIR REG'))) AND (lineitem.l_shipinstruct = 'DELIVER IN PERSON')))\n" + " ├─ Table\n" + " │ ├─ name: lineitem\n" + @@ -2931,9 +2951,9 @@ where ExpectedAnalysis: "Project\n" + " ├─ columns: [sum((lineitem.l_extendedprice * (1 - lineitem.l_discount))) as revenue]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount))))\n" + - " ├─ Grouping()\n" + - " └─ LookupJoin\n" + + " ├─ select: SUM((lineitem.l_extendedprice * (1 - lineitem.l_discount)))\n" + + " ├─ group: \n" + + " └─ LookupJoin (estimated cost=-852.625 rows=1250) (actual rows=0 loops=1)\n" + " ├─ ((((((((((part.p_partkey = lineitem.l_partkey) AND (part.p_brand = 'Brand#12')) AND (part.p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG'))) AND (lineitem.l_quantity >= 1)) AND (lineitem.l_quantity <= 11)) AND ((part.p_size >= 1) AND (part.p_size <= 5))) AND (lineitem.l_shipmode IN ('AIR', 'AIR REG'))) AND (lineitem.l_shipinstruct = 'DELIVER IN PERSON')) OR ((((((((part.p_partkey = lineitem.l_partkey) AND (part.p_brand = 'Brand#23')) AND (part.p_container IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK'))) AND (lineitem.l_quantity >= 10)) AND (lineitem.l_quantity <= 20)) AND ((part.p_size >= 1) AND (part.p_size <= 10))) AND (lineitem.l_shipmode IN ('AIR', 'AIR REG'))) AND (lineitem.l_shipinstruct = 'DELIVER IN PERSON'))) OR ((((((((part.p_partkey = lineitem.l_partkey) AND (part.p_brand = 'Brand#34')) AND (part.p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG'))) AND (lineitem.l_quantity >= 20)) AND (lineitem.l_quantity <= 30)) AND ((part.p_size >= 1) AND (part.p_size <= 15))) AND (lineitem.l_shipmode IN ('AIR', 'AIR REG'))) AND (lineitem.l_shipinstruct = 'DELIVER IN PERSON')))\n" + " ├─ Table\n" + " │ ├─ name: lineitem\n" + @@ -3107,13 +3127,13 @@ order by ExpectedEstimates: "Project\n" + " ├─ columns: [supplier.s_name, supplier.s_address]\n" + " └─ Sort(supplier.s_name ASC)\n" + - " └─ LookupJoin\n" + - " ├─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + + " ├─ LookupJoin (estimated cost=3300.000 rows=1000)\n" + " │ ├─ (supplier.s_suppkey = partsupp.ps_suppkey)\n" + " │ ├─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [partsupp.ps_suppkey]\n" + - " │ │ └─ SemiLookupJoin\n" + + " │ │ └─ SemiLookupJoin (estimated cost=3300.000 rows=1000)\n" + " │ │ ├─ (partsupp.ps_availqty > Subquery(select 0.5 * sum(l_quantity) from lineitem where l_partkey = ps_partkey and l_suppkey = ps_suppkey and l_shipdate >= '1994-01-01' and l_shipdate < '1994-01-01' + interval '1' year))\n" + " │ │ ├─ Table\n" + " │ │ │ └─ name: partsupp\n" + @@ -3136,13 +3156,13 @@ order by ExpectedAnalysis: "Project\n" + " ├─ columns: [supplier.s_name, supplier.s_address]\n" + " └─ Sort(supplier.s_name ASC)\n" + - " └─ LookupJoin\n" + - " ├─ LookupJoin\n" + + " └─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + + " ├─ LookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + " │ ├─ (supplier.s_suppkey = partsupp.ps_suppkey)\n" + " │ ├─ Distinct\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [partsupp.ps_suppkey]\n" + - " │ │ └─ SemiLookupJoin\n" + + " │ │ └─ SemiLookupJoin (estimated cost=3300.000 rows=1000) (actual rows=0 loops=1)\n" + " │ │ ├─ (partsupp.ps_availqty > Subquery(select 0.5 * sum(l_quantity) from lineitem where l_partkey = ps_partkey and l_suppkey = ps_suppkey and l_shipdate >= '1994-01-01' and l_shipdate < '1994-01-01' + interval '1' year))\n" + " │ │ ├─ Table\n" + " │ │ │ └─ name: partsupp\n" + @@ -3303,15 +3323,15 @@ order by " └─ Project\n" + " ├─ columns: [count(1), supplier.s_name, count(1) as numwait]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1), supplier.s_name)\n" + - " ├─ Grouping(supplier.s_name)\n" + - " └─ SemiLookupJoin\n" + + " ├─ select: COUNT(1), supplier.s_name\n" + + " ├─ group: supplier.s_name\n" + + " └─ SemiLookupJoin (estimated cost=3960.000 rows=1250)\n" + " ├─ (NOT((l2.l_suppkey = l1.l_suppkey)))\n" + - " ├─ AntiJoinIncludingNulls\n" + + " ├─ AntiJoinIncludingNulls (estimated cost=365712.500 rows=1062)\n" + " │ ├─ ((l3.l_orderkey = l1.l_orderkey) AND (NOT((l3.l_suppkey = l1.l_suppkey))))\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ MergeJoin\n" + + " │ ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850)\n" + + " │ │ │ ├─ MergeJoin (estimated cost=1725.500 rows=850)\n" + " │ │ │ │ ├─ cmp: (l1.l_orderkey = orders.o_orderkey)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ (l1.l_receiptdate > l1.l_commitdate)\n" + @@ -3350,15 +3370,15 @@ order by " └─ Project\n" + " ├─ columns: [count(1), supplier.s_name, count(1) as numwait]\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1), supplier.s_name)\n" + - " ├─ Grouping(supplier.s_name)\n" + - " └─ SemiLookupJoin\n" + + " ├─ select: COUNT(1), supplier.s_name\n" + + " ├─ group: supplier.s_name\n" + + " └─ SemiLookupJoin (estimated cost=3960.000 rows=1250) (actual rows=0 loops=1)\n" + " ├─ (NOT((l2.l_suppkey = l1.l_suppkey)))\n" + - " ├─ AntiJoinIncludingNulls\n" + + " ├─ AntiJoinIncludingNulls (estimated cost=365712.500 rows=1062) (actual rows=0 loops=1)\n" + " │ ├─ ((l3.l_orderkey = l1.l_orderkey) AND (NOT((l3.l_suppkey = l1.l_suppkey))))\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ MergeJoin\n" + + " │ ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " │ │ ├─ LookupJoin (estimated cost=2805.000 rows=850) (actual rows=0 loops=1)\n" + + " │ │ │ ├─ MergeJoin (estimated cost=1725.500 rows=850) (actual rows=0 loops=1)\n" + " │ │ │ │ ├─ cmp: (l1.l_orderkey = orders.o_orderkey)\n" + " │ │ │ │ ├─ Filter\n" + " │ │ │ │ │ ├─ (l1.l_receiptdate > l1.l_commitdate)\n" + @@ -3503,13 +3523,15 @@ order by " ├─ columns: [custsale.cntrycode, count(1) as numcust, sum(custsale.c_acctbal) as totacctbal]\n" + " └─ Sort(custsale.cntrycode ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1), SUM(custsale.c_acctbal), custsale.cntrycode)\n" + - " ├─ Grouping(custsale.cntrycode)\n" + + " ├─ select: COUNT(1), SUM(custsale.c_acctbal), custsale.cntrycode\n" + + " ├─ group: custsale.cntrycode\n" + " └─ SubqueryAlias\n" + " ├─ name: custsale\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (28,29)\n" + + " ├─ tableId: 4\n" + " └─ Project\n" + " ├─ columns: [SUBSTRING(customer.c_phone, 1, 2) as cntrycode, customer.c_acctbal]\n" + " └─ Filter\n" + @@ -3518,7 +3540,7 @@ order by " ├─ columns: [customer.C_CUSTKEY, customer.C_NAME, customer.C_ADDRESS, customer.C_NATIONKEY, customer.C_PHONE, customer.C_ACCTBAL, customer.C_MKTSEGMENT, customer.C_COMMENT]\n" + " └─ Filter\n" + " ├─ orders.o_custkey IS NULL\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=3869.120 rows=1062)\n" + " ├─ (orders.o_custkey = customer.c_custkey)\n" + " ├─ Filter\n" + " │ ├─ (SUBSTRING(customer.c_phone, 1, 2) HASH IN ('13', '31', '23', '29', '30', '18', '17'))\n" + @@ -3537,13 +3559,15 @@ order by " ├─ columns: [custsale.cntrycode, count(1) as numcust, sum(custsale.c_acctbal) as totacctbal]\n" + " └─ Sort(custsale.cntrycode ASC)\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(COUNT(1), SUM(custsale.c_acctbal), custsale.cntrycode)\n" + - " ├─ Grouping(custsale.cntrycode)\n" + + " ├─ select: COUNT(1), SUM(custsale.c_acctbal), custsale.cntrycode\n" + + " ├─ group: custsale.cntrycode\n" + " └─ SubqueryAlias\n" + " ├─ name: custsale\n" + " ├─ outerVisibility: false\n" + " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + + " ├─ colSet: (28,29)\n" + + " ├─ tableId: 4\n" + " └─ Project\n" + " ├─ columns: [SUBSTRING(customer.c_phone, 1, 2) as cntrycode, customer.c_acctbal]\n" + " └─ Filter\n" + @@ -3552,7 +3576,7 @@ order by " ├─ columns: [customer.C_CUSTKEY, customer.C_NAME, customer.C_ADDRESS, customer.C_NATIONKEY, customer.C_PHONE, customer.C_ACCTBAL, customer.C_MKTSEGMENT, customer.C_COMMENT]\n" + " └─ Filter\n" + " ├─ orders.o_custkey IS NULL\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterHashJoin (estimated cost=3869.120 rows=1062) (actual rows=0 loops=1)\n" + " ├─ (orders.o_custkey = customer.c_custkey)\n" + " ├─ Filter\n" + " │ ├─ (SUBSTRING(customer.c_phone, 1, 2) HASH IN ('13', '31', '23', '29', '30', '18', '17'))\n" + From 012e24fc1b400c31ab9d41721ed2c82ddc8dfaa3 Mon Sep 17 00:00:00 2001 From: Nick Tobey Date: Wed, 3 Dec 2025 13:10:16 -0800 Subject: [PATCH 3/5] Remove row estimate plan test for keyless tables, since those generate different plans for GMS vs Dolt. --- enginetest/queries/query_plans.go | 186 ------------------------------ 1 file changed, 186 deletions(-) diff --git a/enginetest/queries/query_plans.go b/enginetest/queries/query_plans.go index 5225ce70b1..15e1df0d68 100644 --- a/enginetest/queries/query_plans.go +++ b/enginetest/queries/query_plans.go @@ -22341,100 +22341,6 @@ WHERE keyless.c0 IN ( " ├─ name: keyless\n" + " └─ columns: [c0 c1]\n" + "", - ExpectedEstimates: "Project\n" + - " ├─ columns: [count(1) as COUNT(*)]\n" + - " └─ GroupBy\n" + - " ├─ select: COUNT(1)\n" + - " ├─ group: \n" + - " └─ Filter\n" + - " ├─ InSubquery\n" + - " │ ├─ left: keyless.c0\n" + - " │ └─ right: Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ └─ Project\n" + - " │ ├─ columns: [u0.c0]\n" + - " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + - " │ ├─ (cte.j = keyless.c0)\n" + - " │ ├─ SubqueryAlias\n" + - " │ │ ├─ name: cte\n" + - " │ │ ├─ outerVisibility: true\n" + - " │ │ ├─ isLateral: false\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ colSet: (16-18)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ RecursiveCTE\n" + - " │ │ └─ Union all\n" + - " │ │ ├─ Project\n" + - " │ │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ (t1.c0 = 0)\n" + - " │ │ │ └─ TableAlias(t1)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: keyless\n" + - " │ │ │ └─ columns: [c0 c1]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + - " │ │ └─ InnerJoin\n" + - " │ │ ├─ (cte.depth = t2.c0)\n" + - " │ │ ├─ TableAlias(t2)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: keyless\n" + - " │ │ │ └─ columns: [c0 c1]\n" + - " │ │ └─ RecursiveTable(cte)\n" + - " │ └─ TableAlias(u0)\n" + - " │ └─ Table\n" + - " │ ├─ name: keyless\n" + - " │ └─ columns: [c0]\n" + - " └─ Table\n" + - " └─ name: keyless\n" + - "", - ExpectedAnalysis: "Project\n" + - " ├─ columns: [count(1) as COUNT(*)]\n" + - " └─ GroupBy\n" + - " ├─ select: COUNT(1)\n" + - " ├─ group: \n" + - " └─ Filter\n" + - " ├─ InSubquery\n" + - " │ ├─ left: keyless.c0\n" + - " │ └─ right: Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ └─ Project\n" + - " │ ├─ columns: [u0.c0]\n" + - " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + - " │ ├─ (cte.j = keyless.c0)\n" + - " │ ├─ SubqueryAlias\n" + - " │ │ ├─ name: cte\n" + - " │ │ ├─ outerVisibility: true\n" + - " │ │ ├─ isLateral: false\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ colSet: (16-18)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ RecursiveCTE\n" + - " │ │ └─ Union all\n" + - " │ │ ├─ Project\n" + - " │ │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ (t1.c0 = 0)\n" + - " │ │ │ └─ TableAlias(t1)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: keyless\n" + - " │ │ │ └─ columns: [c0 c1]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + - " │ │ └─ InnerJoin\n" + - " │ │ ├─ (cte.depth = t2.c0)\n" + - " │ │ ├─ TableAlias(t2)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: keyless\n" + - " │ │ │ └─ columns: [c0 c1]\n" + - " │ │ └─ RecursiveTable(cte)\n" + - " │ └─ TableAlias(u0)\n" + - " │ └─ Table\n" + - " │ ├─ name: keyless\n" + - " │ └─ columns: [c0]\n" + - " └─ Table\n" + - " └─ name: keyless\n" + - "", }, { Query: ` @@ -22520,98 +22426,6 @@ WHERE keyless.c0 IN ( " ├─ name: keyless\n" + " └─ columns: [c0 c1]\n" + "", - ExpectedEstimates: "Project\n" + - " ├─ columns: [count(1) as COUNT(*)]\n" + - " └─ GroupBy\n" + - " ├─ select: COUNT(1)\n" + - " ├─ group: \n" + - " └─ Filter\n" + - " ├─ InSubquery\n" + - " │ ├─ left: keyless.c0\n" + - " │ └─ right: Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ └─ Project\n" + - " │ ├─ columns: [u0.c0]\n" + - " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + - " │ ├─ (cte.j = keyless.c0)\n" + - " │ ├─ TableAlias(u0)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: keyless\n" + - " │ │ └─ columns: [c0]\n" + - " │ └─ CachedResults\n" + - " │ └─ SubqueryAlias\n" + - " │ ├─ name: cte\n" + - " │ ├─ outerVisibility: true\n" + - " │ ├─ isLateral: false\n" + - " │ ├─ cacheable: true\n" + - " │ └─ RecursiveCTE\n" + - " │ └─ Union all\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ (t1.c0 = 0)\n" + - " │ │ └─ TableAlias(t1)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: keyless\n" + - " │ │ └─ columns: [c0 c1]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + - " │ └─ InnerJoin\n" + - " │ ├─ (cte.depth = t2.c0)\n" + - " │ ├─ TableAlias(t2)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: keyless\n" + - " │ │ └─ columns: [c0 c1]\n" + - " │ └─ RecursiveTable(cte)\n" + - " └─ Table\n" + - " └─ name: keyless\n" + - "", - ExpectedAnalysis: "Project\n" + - " ├─ columns: [count(1) as COUNT(*)]\n" + - " └─ GroupBy\n" + - " ├─ select: COUNT(1)\n" + - " ├─ group: \n" + - " └─ Filter\n" + - " ├─ InSubquery\n" + - " │ ├─ left: keyless.c0\n" + - " │ └─ right: Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ └─ Project\n" + - " │ ├─ columns: [u0.c0]\n" + - " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + - " │ ├─ (cte.j = keyless.c0)\n" + - " │ ├─ TableAlias(u0)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: keyless\n" + - " │ │ └─ columns: [c0]\n" + - " │ └─ CachedResults\n" + - " │ └─ SubqueryAlias\n" + - " │ ├─ name: cte\n" + - " │ ├─ outerVisibility: true\n" + - " │ ├─ isLateral: false\n" + - " │ ├─ cacheable: true\n" + - " │ └─ RecursiveCTE\n" + - " │ └─ Union all\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ (t1.c0 = 0)\n" + - " │ │ └─ TableAlias(t1)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: keyless\n" + - " │ │ └─ columns: [c0 c1]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + - " │ └─ InnerJoin\n" + - " │ ├─ (cte.depth = t2.c0)\n" + - " │ ├─ TableAlias(t2)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: keyless\n" + - " │ │ └─ columns: [c0 c1]\n" + - " │ └─ RecursiveTable(cte)\n" + - " └─ Table\n" + - " └─ name: keyless\n" + - "", }, { Query: `SELECT s,i FROM mytable as a order by i;`, From 7b191e1ade8aa1015af751f9a4fd0a35fdf1eca7 Mon Sep 17 00:00:00 2001 From: Nick Tobey Date: Wed, 3 Dec 2025 16:38:38 -0800 Subject: [PATCH 4/5] Make GroupBy plan output consistent --- sql/plan/group_by.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/plan/group_by.go b/sql/plan/group_by.go index a21052cc49..f57c1ddadb 100644 --- a/sql/plan/group_by.go +++ b/sql/plan/group_by.go @@ -141,8 +141,8 @@ func (g *GroupBy) String() string { } _ = pr.WriteChildren( - fmt.Sprintf("SelectDeps(%s)", strings.Join(selectDeps, ", ")), - fmt.Sprintf("Grouping(%s)", strings.Join(grouping, ", ")), + fmt.Sprintf("select: %s", strings.Join(selectDeps, ", ")), + fmt.Sprintf("group: %s", strings.Join(grouping, ", ")), g.Child.String(), ) return pr.String() From 0e8a922526b461369777ef85420c392863d44eee Mon Sep 17 00:00:00 2001 From: Nick Tobey Date: Wed, 3 Dec 2025 16:41:10 -0800 Subject: [PATCH 5/5] Regenerate test plans to make GroupBy plan output consistent --- enginetest/queries/query_plans.go | 202 ++++++++++++++++++++++++++++-- enginetest/queries/tpcc_plans.go | 8 +- enginetest/queries/tpch_plans.go | 8 +- 3 files changed, 202 insertions(+), 16 deletions(-) diff --git a/enginetest/queries/query_plans.go b/enginetest/queries/query_plans.go index 15e1df0d68..7a0ee46561 100644 --- a/enginetest/queries/query_plans.go +++ b/enginetest/queries/query_plans.go @@ -19617,8 +19617,8 @@ inner join pq on true " │ └─ Table\n" + " │ └─ name: \n" + " └─ GroupBy\n" + - " ├─ SelectDeps(a.x)\n" + - " ├─ Grouping(a.x)\n" + + " ├─ select: a.x\n" + + " ├─ group: a.x\n" + " └─ SubqueryAlias\n" + " ├─ name: a\n" + " ├─ outerVisibility: false\n" + @@ -19650,8 +19650,8 @@ inner join pq on true " │ └─ Table\n" + " │ └─ name: \n" + " └─ GroupBy\n" + - " ├─ SelectDeps(a.x)\n" + - " ├─ Grouping(a.x)\n" + + " ├─ select: a.x\n" + + " ├─ group: a.x\n" + " └─ SubqueryAlias\n" + " ├─ name: a\n" + " ├─ outerVisibility: false\n" + @@ -19919,8 +19919,8 @@ inner join pq on true " ├─ columns: [(n.i + 1) as i + 1]\n" + " └─ Having(((n.i + 1) <= 10))\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(n.i)\n" + - " ├─ Grouping(n.i)\n" + + " ├─ select: n.i\n" + + " ├─ group: n.i\n" + " └─ RecursiveTable(n)\n" + "", ExpectedAnalysis: "Project\n" + @@ -19945,8 +19945,8 @@ inner join pq on true " ├─ columns: [(n.i + 1) as i + 1]\n" + " └─ Having(((n.i + 1) <= 10))\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(n.i)\n" + - " ├─ Grouping(n.i)\n" + + " ├─ select: n.i\n" + + " ├─ group: n.i\n" + " └─ RecursiveTable(n)\n" + "", }, @@ -22341,6 +22341,100 @@ WHERE keyless.c0 IN ( " ├─ name: keyless\n" + " └─ columns: [c0 c1]\n" + "", + ExpectedEstimates: "Project\n" + + " ├─ columns: [count(1) as COUNT(*)]\n" + + " └─ GroupBy\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + + " └─ Filter\n" + + " ├─ InSubquery\n" + + " │ ├─ left: keyless.c0\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [u0.c0]\n" + + " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + + " │ ├─ (cte.j = keyless.c0)\n" + + " │ ├─ SubqueryAlias\n" + + " │ │ ├─ name: cte\n" + + " │ │ ├─ outerVisibility: true\n" + + " │ │ ├─ isLateral: false\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (16-18)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ RecursiveCTE\n" + + " │ │ └─ Union all\n" + + " │ │ ├─ Project\n" + + " │ │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (t1.c0 = 0)\n" + + " │ │ │ └─ TableAlias(t1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cte.depth = t2.c0)\n" + + " │ │ ├─ TableAlias(t2)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ RecursiveTable(cte)\n" + + " │ └─ TableAlias(u0)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyless\n" + + " │ └─ columns: [c0]\n" + + " └─ Table\n" + + " └─ name: keyless\n" + + "", + ExpectedAnalysis: "Project\n" + + " ├─ columns: [count(1) as COUNT(*)]\n" + + " └─ GroupBy\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + + " └─ Filter\n" + + " ├─ InSubquery\n" + + " │ ├─ left: keyless.c0\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [u0.c0]\n" + + " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + + " │ ├─ (cte.j = keyless.c0)\n" + + " │ ├─ SubqueryAlias\n" + + " │ │ ├─ name: cte\n" + + " │ │ ├─ outerVisibility: true\n" + + " │ │ ├─ isLateral: false\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (16-18)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ RecursiveCTE\n" + + " │ │ └─ Union all\n" + + " │ │ ├─ Project\n" + + " │ │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (t1.c0 = 0)\n" + + " │ │ │ └─ TableAlias(t1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cte.depth = t2.c0)\n" + + " │ │ ├─ TableAlias(t2)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ RecursiveTable(cte)\n" + + " │ └─ TableAlias(u0)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyless\n" + + " │ └─ columns: [c0]\n" + + " └─ Table\n" + + " └─ name: keyless\n" + + "", }, { Query: ` @@ -22426,6 +22520,98 @@ WHERE keyless.c0 IN ( " ├─ name: keyless\n" + " └─ columns: [c0 c1]\n" + "", + ExpectedEstimates: "Project\n" + + " ├─ columns: [count(1) as COUNT(*)]\n" + + " └─ GroupBy\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + + " └─ Filter\n" + + " ├─ InSubquery\n" + + " │ ├─ left: keyless.c0\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [u0.c0]\n" + + " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + + " │ ├─ (cte.j = keyless.c0)\n" + + " │ ├─ TableAlias(u0)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: keyless\n" + + " │ │ └─ columns: [c0]\n" + + " │ └─ CachedResults\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: cte\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ RecursiveCTE\n" + + " │ └─ Union all\n" + + " │ ├─ Project\n" + + " │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (t1.c0 = 0)\n" + + " │ │ └─ TableAlias(t1)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: keyless\n" + + " │ │ └─ columns: [c0 c1]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + + " │ └─ InnerJoin\n" + + " │ ├─ (cte.depth = t2.c0)\n" + + " │ ├─ TableAlias(t2)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: keyless\n" + + " │ │ └─ columns: [c0 c1]\n" + + " │ └─ RecursiveTable(cte)\n" + + " └─ Table\n" + + " └─ name: keyless\n" + + "", + ExpectedAnalysis: "Project\n" + + " ├─ columns: [count(1) as COUNT(*)]\n" + + " └─ GroupBy\n" + + " ├─ select: COUNT(1)\n" + + " ├─ group: \n" + + " └─ Filter\n" + + " ├─ InSubquery\n" + + " │ ├─ left: keyless.c0\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [u0.c0]\n" + + " │ └─ InnerJoin (estimated cost=405.000 rows=5)\n" + + " │ ├─ (cte.j = keyless.c0)\n" + + " │ ├─ TableAlias(u0)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: keyless\n" + + " │ │ └─ columns: [c0]\n" + + " │ └─ CachedResults\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: cte\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ RecursiveCTE\n" + + " │ └─ Union all\n" + + " │ ├─ Project\n" + + " │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (t1.c0 = 0)\n" + + " │ │ └─ TableAlias(t1)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: keyless\n" + + " │ │ └─ columns: [c0 c1]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + + " │ └─ InnerJoin\n" + + " │ ├─ (cte.depth = t2.c0)\n" + + " │ ├─ TableAlias(t2)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: keyless\n" + + " │ │ └─ columns: [c0 c1]\n" + + " │ └─ RecursiveTable(cte)\n" + + " └─ Table\n" + + " └─ name: keyless\n" + + "", }, { Query: `SELECT s,i FROM mytable as a order by i;`, diff --git a/enginetest/queries/tpcc_plans.go b/enginetest/queries/tpcc_plans.go index 609f3988c2..8236bcfe5d 100644 --- a/enginetest/queries/tpcc_plans.go +++ b/enginetest/queries/tpcc_plans.go @@ -882,8 +882,8 @@ from " │ ├─ columns: [orders2.o_c_id, orders2.o_w_id, orders2.o_d_id, countdistinct([orders2.o_id]) as count(distinct o_id)]\n" + " │ └─ Having((countdistinct([orders2.o_id]) > 1))\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNTDISTINCT([orders2.o_id]), orders2.o_c_id, orders2.o_w_id, orders2.o_d_id, orders2.o_id)\n" + - " │ ├─ Grouping(orders2.o_c_id, orders2.o_d_id, orders2.o_w_id)\n" + + " │ ├─ select: COUNTDISTINCT([orders2.o_id]), orders2.o_c_id, orders2.o_w_id, orders2.o_d_id, orders2.o_id\n" + + " │ ├─ group: orders2.o_c_id, orders2.o_d_id, orders2.o_w_id\n" + " │ └─ IndexedTableAccess(orders2)\n" + " │ ├─ index: [orders2.o_w_id,orders2.o_d_id,orders2.o_id]\n" + " │ └─ filters: [{[1, 1], [NULL, ∞), (2100, 11153)}]\n" + @@ -909,8 +909,8 @@ from " │ ├─ columns: [orders2.o_c_id, orders2.o_w_id, orders2.o_d_id, countdistinct([orders2.o_id]) as count(distinct o_id)]\n" + " │ └─ Having((countdistinct([orders2.o_id]) > 1))\n" + " │ └─ GroupBy\n" + - " │ ├─ SelectDeps(COUNTDISTINCT([orders2.o_id]), orders2.o_c_id, orders2.o_w_id, orders2.o_d_id, orders2.o_id)\n" + - " │ ├─ Grouping(orders2.o_c_id, orders2.o_d_id, orders2.o_w_id)\n" + + " │ ├─ select: COUNTDISTINCT([orders2.o_id]), orders2.o_c_id, orders2.o_w_id, orders2.o_d_id, orders2.o_id\n" + + " │ ├─ group: orders2.o_c_id, orders2.o_d_id, orders2.o_w_id\n" + " │ └─ IndexedTableAccess(orders2)\n" + " │ ├─ index: [orders2.o_w_id,orders2.o_d_id,orders2.o_id]\n" + " │ └─ filters: [{[1, 1], [NULL, ∞), (2100, 11153)}]\n" + diff --git a/enginetest/queries/tpch_plans.go b/enginetest/queries/tpch_plans.go index 2f59daae6c..4e296b0336 100644 --- a/enginetest/queries/tpch_plans.go +++ b/enginetest/queries/tpch_plans.go @@ -2706,8 +2706,8 @@ order by " ├─ columns: [lineitem_1.l_orderkey]\n" + " └─ Having((sum(lineitem.l_quantity) > 300))\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(lineitem_1.l_quantity), lineitem_1.l_orderkey, lineitem_1.L_QUANTITY)\n" + - " ├─ Grouping(lineitem_1.l_orderkey)\n" + + " ├─ select: SUM(lineitem_1.l_quantity), lineitem_1.l_orderkey, lineitem_1.L_QUANTITY\n" + + " ├─ group: lineitem_1.l_orderkey\n" + " └─ TableAlias(lineitem_1)\n" + " └─ Table\n" + " └─ name: lineitem\n" + @@ -2734,8 +2734,8 @@ order by " ├─ columns: [lineitem_1.l_orderkey]\n" + " └─ Having((sum(lineitem.l_quantity) > 300))\n" + " └─ GroupBy\n" + - " ├─ SelectDeps(SUM(lineitem_1.l_quantity), lineitem_1.l_orderkey, lineitem_1.L_QUANTITY)\n" + - " ├─ Grouping(lineitem_1.l_orderkey)\n" + + " ├─ select: SUM(lineitem_1.l_quantity), lineitem_1.l_orderkey, lineitem_1.L_QUANTITY\n" + + " ├─ group: lineitem_1.l_orderkey\n" + " └─ TableAlias(lineitem_1)\n" + " └─ Table\n" + " └─ name: lineitem\n" +