Skip to content
This repository was archived by the owner on Nov 7, 2025. It is now read-only.

Commit bbf9f3b

Browse files
jakozaurnablaone
andauthored
Fix type of nested properties (#1067)
Fix two bugs: - double quotes of some fields - nested properties did not work with array or function, this fixes this problem Co-authored-by: Rafał Strzaliński <[email protected]>
1 parent 80380ff commit bbf9f3b

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

quesma/model/base_visitor.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ func (v *BaseExprVisitor) VisitNestedProperty(e NestedProperty) interface{} {
7777
if v.OverrideVisitNestedProperty != nil {
7878
return v.OverrideVisitNestedProperty(v, e)
7979
}
80-
ColumnRef := e.ColumnRef.Accept(v).(ColumnRef)
80+
expr := e.ObjectExpr.Accept(v).(Expr)
8181
Property := e.PropertyName.Accept(v).(LiteralExpr)
82-
return NewNestedProperty(ColumnRef, Property)
82+
return NewNestedProperty(expr, Property)
8383
}
8484

8585
func (v *BaseExprVisitor) VisitArrayAccess(e ArrayAccess) interface{} {

quesma/model/expr.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ func (e PrefixExpr) Accept(v ExprVisitor) interface{} {
4747

4848
// NestedProperty represents a call to nested property e.g. `columnName.propertyName`
4949
type NestedProperty struct {
50-
ColumnRef ColumnRef
50+
ObjectExpr Expr
5151
PropertyName LiteralExpr
5252
}
5353

54-
func NewNestedProperty(columnRef ColumnRef, propertyName LiteralExpr) NestedProperty {
55-
return NestedProperty{ColumnRef: columnRef, PropertyName: propertyName}
54+
func NewNestedProperty(columnRef Expr, propertyName LiteralExpr) NestedProperty {
55+
return NestedProperty{ObjectExpr: columnRef, PropertyName: propertyName}
5656
}
5757

5858
func (e NestedProperty) Accept(v ExprVisitor) interface{} { return v.VisitNestedProperty(e) }

quesma/model/expr_string_renderer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func (v *renderer) VisitPrefixExpr(e PrefixExpr) interface{} {
4949
}
5050

5151
func (v *renderer) VisitNestedProperty(e NestedProperty) interface{} {
52-
return fmt.Sprintf("%v.%v", e.ColumnRef.Accept(v), e.PropertyName.Accept(v))
52+
return fmt.Sprintf("%v.%v", e.ObjectExpr.Accept(v), e.PropertyName.Accept(v))
5353
}
5454

5555
func (v *renderer) VisitArrayAccess(e ArrayAccess) interface{} {

quesma/queryparser/query_parser.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -902,7 +902,7 @@ func (cw *ClickhouseQueryTranslator) parseExists(queryMap QueryMap) model.Simple
902902
sql = model.NewInfixExpr(model.NewColumnRef(fieldName), "IS", model.NewLiteral("NOT NULL"))
903903
case clickhouse.ExistsAndIsArray:
904904
sql = model.NewInfixExpr(model.NewNestedProperty(
905-
model.NewColumnRef(fieldNameQuoted),
905+
model.NewColumnRef(fieldName),
906906
model.NewLiteral("size0"),
907907
), "=", model.NewLiteral("0"))
908908
case clickhouse.NotExists:

0 commit comments

Comments
 (0)