diff --git a/packages/sqltree/src/dumpSqlCondition.ts b/packages/sqltree/src/dumpSqlCondition.ts index 96798e4b4..2dc2bfc83 100644 --- a/packages/sqltree/src/dumpSqlCondition.ts +++ b/packages/sqltree/src/dumpSqlCondition.ts @@ -68,6 +68,9 @@ export function dumpSqlCondition(dmp: SqlDumper, condition: Condition) { dmp.put(' ^and '); dumpSqlExpression(dmp, condition.right); break; + case 'expression': + dumpSqlExpression(dmp, condition.expr); + break; case 'in': dumpSqlExpression(dmp, condition.expr); dmp.put(' ^in (%,v)', condition.values); diff --git a/packages/sqltree/src/types.ts b/packages/sqltree/src/types.ts index db2b609d9..44a1e2ea7 100644 --- a/packages/sqltree/src/types.ts +++ b/packages/sqltree/src/types.ts @@ -57,6 +57,11 @@ export interface UnaryCondition { expr: Expression; } +export interface ExpressionCondition extends UnaryCondition { + // not in standard SQL + conditionType: 'expression'; +} + export interface BinaryCondition { conditionType: 'binary'; operator: '=' | '!=' | '<>' | '<' | '>' | '>=' | '<='; @@ -141,7 +146,8 @@ export type Condition = | NotInCondition | RawTemplateCondition | AnyColumnPassEvalOnlyCondition - | SpecificPredicateCondition; + | SpecificPredicateCondition + | ExpressionCondition; export interface Source { name?: NamedObjectInfo;