Skip to content

Commit 580e1ee

Browse files
committed
only store scalar expression instead of entire column
1 parent 1832a13 commit 580e1ee

File tree

4 files changed

+11
-11
lines changed

4 files changed

+11
-11
lines changed

sql/planbuilder/aggregates.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -950,7 +950,7 @@ func (b *Builder) buildHaving(fromScope, projScope, outScope *scope, having *ast
950950
havingScope := b.newScope()
951951
if fromScope.parent != nil {
952952
havingScope.parent = fromScope.parent
953-
havingScope.parent.selectColumnAliases = fromScope.selectColumnAliases
953+
havingScope.parent.selectAliases = fromScope.selectAliases
954954
}
955955

956956
// add columns from fromScope referenced in the groupBy

sql/planbuilder/project.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,10 @@ func (b *Builder) analyzeSelectList(inScope, outScope *scope, selectExprs ast.Se
160160
col.scalar = e
161161
tempScope.addColumn(col)
162162
}
163-
if inScope.selectColumnAliases == nil {
164-
inScope.selectColumnAliases = make(map[string]scopeColumn)
163+
if inScope.selectAliases == nil {
164+
inScope.selectAliases = make(map[string]sql.Expression)
165165
}
166-
inScope.selectColumnAliases[e.Name()] = col
166+
inScope.selectAliases[e.Name()] = e
167167
exprs = append(exprs, e)
168168
default:
169169
exprs = append(exprs, pe)

sql/planbuilder/scalar.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ func (b *Builder) buildScalar(inScope *scope, e ast.Expr) (ex sql.Expression) {
123123
colName := strings.ToLower(v.Name.String())
124124
c, ok := inScope.resolveColumn(dbName, tblName, colName, true, false)
125125
if !ok {
126-
if alias, ok := inScope.selectColumnAliases[colName]; ok {
127-
return alias.scalar
126+
if aliasedExpr, ok := inScope.selectAliases[colName]; ok {
127+
return aliasedExpr
128128
}
129129
sysVar, scope, ok := b.buildSysVar(v, ast.SetScope_None)
130130
if ok {

sql/planbuilder/scope.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ type scope struct {
6262
insertTableAlias string
6363
insertColumnAliases map[string]string
6464

65-
selectColumnAliases map[string]scopeColumn
65+
selectAliases map[string]sql.Expression
6666
}
6767

6868
// resolveColumn matches a variable use to a column definition with a unique
@@ -443,10 +443,10 @@ func (s *scope) copy() *scope {
443443
if !s.colset.Empty() {
444444
ret.colset = s.colset.Copy()
445445
}
446-
if s.selectColumnAliases != nil {
447-
ret.selectColumnAliases = make(map[string]scopeColumn, len(s.selectColumnAliases))
448-
for k, v := range s.selectColumnAliases {
449-
ret.selectColumnAliases[k] = v
446+
if s.selectAliases != nil {
447+
ret.selectAliases = make(map[string]sql.Expression, len(s.selectAliases))
448+
for k, v := range s.selectAliases {
449+
ret.selectAliases[k] = v
450450
}
451451
}
452452

0 commit comments

Comments
 (0)