Properly handle boolean casting when extracted from JSON

This commit is contained in:
Tomaž Jerman
2022-12-14 15:47:39 +01:00
committed by Jože Fortun
parent 725ed9f4f2
commit 27d03d2c99
@@ -153,9 +153,6 @@ func (mssqlDialect) AttributeCast(attr *dal.Attribute, val exp.Expression) (expr
case *dal.TypeText:
expr = exp.NewCastExpression(val, "VARCHAR(MAX)")
case *dal.TypeBoolean:
return val, nil
default:
return attributeCast(attr, val)
@@ -274,7 +271,7 @@ func attributeCast(attr *dal.Attribute, val exp.Expression) (exp.Expression, err
case *dal.
TypeBoolean:
return exp.NewLiteralExpression("TRY_CONVERT(BIT,?)", val), nil
return exp.NewLiteralExpression("CASE ? WHEN 'true' THEN 1 WHEN 'false' THEN 0 ELSE TRY_CONVERT(BIT,?) END", val, val), nil
default:
return val, nil