Add workaround for field alias (recordID => ID) in rec. query filter
This commit is contained in:
@@ -55,7 +55,18 @@ func Model(m *dal.Model, c queryRunner, d drivers.Dialect) *model {
|
||||
|
||||
ms.queryParser = ql.Converter(
|
||||
ql.SymHandler(func(node *ql.ASTNode) (exp.Expression, error) {
|
||||
attr := ms.model.Attributes.FindByIdent(node.Symbol)
|
||||
sym := node.Symbol
|
||||
if ms.model.ResourceType == "corteza::compose:module" {
|
||||
// temporary solution
|
||||
//
|
||||
// before DAL some fields were aliased (recordID => ID)
|
||||
switch sym {
|
||||
case "recordID":
|
||||
sym = "ID"
|
||||
}
|
||||
}
|
||||
|
||||
attr := ms.model.Attributes.FindByIdent(sym)
|
||||
if attr == nil {
|
||||
return nil, fmt.Errorf("unknown attribute %q used in query expression", node.Symbol)
|
||||
}
|
||||
@@ -64,7 +75,7 @@ func Model(m *dal.Model, c queryRunner, d drivers.Dialect) *model {
|
||||
return nil, fmt.Errorf("attribute %q can not be used in query expression", attr.Ident)
|
||||
}
|
||||
|
||||
return ms.table.AttributeExpression(node.Symbol)
|
||||
return ms.table.AttributeExpression(sym)
|
||||
}),
|
||||
ql.RefHandler(d.ExprHandler),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user