Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
  • Loading branch information
frouioui committed Feb 20, 2025
1 parent 31fea9e commit 1607f03
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 10 deletions.
13 changes: 4 additions & 9 deletions go/vt/vtgate/planbuilder/operators/op_to_ast.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,13 +151,12 @@ func buildValues(op *Values, qb *queryBuilder) {
},
}

apa := semantics.EmptyTableSet()
deps := semantics.EmptyTableSet()
for _, ae := range qb.ctx.ValuesJoinColumns[op.Name] {
apa = apa.Merge(qb.ctx.SemTable.RecursiveDeps(ae.Expr))
fmt.Printf("%v\n", apa)
deps = deps.Merge(qb.ctx.SemTable.RecursiveDeps(ae.Expr))
}

tableName := getTableName(qb.ctx, apa)
tableName := getTableName(qb.ctx, deps)

qb.addTableExprNoSemTableChange(tableName, tableName, expr, op.getColumnNamesFromCtx(qb.ctx))
}
Expand All @@ -166,22 +165,18 @@ func getTableName(ctx *plancontext.PlanningContext, id semantics.TableSet) strin
var names []string
for _, ts := range id.Constituents() {
ti, err := ctx.SemTable.TableInfoFor(ts)
fmt.Printf("1: %v\n", ti)
if err != nil {
names = append(names, "X")
continue
}
name, err := ti.Name()
fmt.Printf("2: %v\n", name)
if err != nil {
names = append(names, "X")
continue
}
names = append(names, name.Name.String())
}
x := strings.Join(names, "_")
fmt.Println("3: ", x)
return x
return strings.Join(names, "_")
}

func buildDelete(op *Delete, qb *queryBuilder) {
Expand Down
3 changes: 3 additions & 0 deletions go/vt/vtgate/planbuilder/operators/query_planning.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,9 @@ func tryPushValues(ctx *plancontext.PlanningContext, in *Values) (Operator, *App
switch src := in.Source.(type) {
case *ValuesJoin:
src.LHS = in.Clone([]Operator{src.LHS})

srcAes := ctx.ValuesJoinColumns[in.Name]
ctx.ValuesJoinColumns[src.ValuesDestination] = append(ctx.ValuesJoinColumns[src.ValuesDestination], srcAes...)
return src, Rewrote("pushed values to the LHS of values join")
case *Filter:
return Swap(in, src, "pushed values under filter")
Expand Down
10 changes: 9 additions & 1 deletion go/vt/vtgate/planbuilder/operators/values.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,15 @@ func (v *Values) GetSelectExprs(ctx *plancontext.PlanningContext) []sqlparser.Se
}

func (v *Values) ShortDescription() string {
return v.Name
var ss string
if c != nil {
cols := c.ValuesJoinColumns[v.Name]
for _, col := range cols {
ss += " " + sqlparser.String(col)
}
}

return v.Name + " (" + ss + ")"
}

func (v *Values) GetOrdering(ctx *plancontext.PlanningContext) []OrderBy {
Expand Down
6 changes: 6 additions & 0 deletions go/vt/vtgate/planbuilder/operators/values_join.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,10 @@ func (vj *ValuesJoin) IsInner() bool {
}

func (vj *ValuesJoin) AddJoinPredicate(ctx *plancontext.PlanningContext, expr sqlparser.Expr) {
if c == nil {
c = ctx
}

if expr == nil {
return
}
Expand All @@ -142,6 +146,8 @@ func (vj *ValuesJoin) Clone(inputs []Operator) Operator {
return &clone
}

var c *plancontext.PlanningContext

func (vj *ValuesJoin) ShortDescription() string {
fn := func(cols []valuesJoinColumn) string {
out := slice.Map(cols, func(jc valuesJoinColumn) string {
Expand Down

0 comments on commit 1607f03

Please sign in to comment.