query designer SQL generator

This commit is contained in:
Jan Prochazka
2020-12-28 16:31:21 +01:00
parent c10c6afbc5
commit 60fd1c38ae
3 changed files with 121 additions and 19 deletions

View File

@@ -2,6 +2,7 @@ import { SqlDumper } from 'dbgate-types';
import { Condition, BinaryCondition } from './types';
import { dumpSqlExpression } from './dumpSqlExpression';
import { link } from 'fs';
import { dumpSqlSelect } from './dumpSqlCommand';
export function dumpSqlCondition(dmp: SqlDumper, condition: Condition) {
switch (condition.conditionType) {
@@ -30,7 +31,7 @@ export function dumpSqlCondition(dmp: SqlDumper, condition: Condition) {
break;
case 'and':
case 'or':
dmp.putCollection(` ^${condition.conditionType} `, condition.conditions, cond => {
dmp.putCollection(` ^${condition.conditionType} `, condition.conditions, (cond) => {
dmp.putRaw('(');
dumpSqlCondition(dmp, cond);
dmp.putRaw(')');
@@ -51,5 +52,15 @@ export function dumpSqlCondition(dmp: SqlDumper, condition: Condition) {
dumpSqlCondition(dmp, condition.condition);
dmp.put(')');
break;
case 'exists':
dmp.put('^exists (');
dumpSqlSelect(dmp, condition.subQuery);
dmp.put(')');
break;
case 'notExists':
dmp.put('^not ^exists (');
dumpSqlSelect(dmp, condition.subQuery);
dmp.put(')');
break;
}
}