Skip to content

Commit 4d39c5a

Browse files
committed
Resolved expr v. selectExprs in injected exprs
1 parent 9366b1c commit 4d39c5a

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

sql/planbuilder/aggregates.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -521,8 +521,15 @@ func (b *Builder) buildOrderedInjectedExpr(inScope *scope, e *ast.OrderedInjecte
521521
gb := inScope.groupBy
522522

523523
resolvedChildren := make([]any, len(e.Children))
524-
for i, child := range e.Children {
525-
resolvedChildren[i] = b.buildScalar(inScope, child)
524+
525+
if len(e.Children) > 0 {
526+
for i, child := range e.Children {
527+
resolvedChildren[i] = b.buildScalar(inScope, child)
528+
}
529+
} else {
530+
for i, child := range e.SelectExprChildren {
531+
resolvedChildren[i] = b.selectExprToExpression(inScope, child)
532+
}
526533
}
527534

528535
orderByScope := b.analyzeOrderBy(inScope, inScope, e.OrderBy)

sql/planbuilder/scalar.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -414,8 +414,14 @@ func (b *Builder) buildInjectedExpr(inScope *scope, v ast.InjectedExpr) sql.Expr
414414
b.handleErr(err)
415415
}
416416
resolvedChildren := make([]any, len(v.Children))
417-
for i, child := range v.Children {
418-
resolvedChildren[i] = b.buildScalar(inScope, child)
417+
if len(v.Children) > 0 {
418+
for i, child := range v.Children {
419+
resolvedChildren[i] = b.buildScalar(inScope, child)
420+
}
421+
} else {
422+
for i, child := range v.SelectExprChildren {
423+
resolvedChildren[i] = b.selectExprToExpression(inScope, child)
424+
}
419425
}
420426
return b.buildInjectedExpressionFromResolvedChildren(v, resolvedChildren)
421427
}

0 commit comments

Comments
 (0)