From 49e338bbbcf7aa424ff06ae43e3bf4282fcf1350 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Tue, 20 Aug 2024 13:30:53 +0200 Subject: [PATCH] conditionType expression --- packages/sqltree/src/dumpSqlCondition.ts | 3 +++ packages/sqltree/src/types.ts | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) 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;