This commit is contained in:
Jan Prochazka
2020-03-05 13:19:25 +01:00
parent c47711d346
commit 9ef719ec95
8 changed files with 115 additions and 36 deletions

View File

@@ -1,6 +1,7 @@
import { Source } from "./types";
import { Source, FromDefinition, Relation } from "./types";
import { SqlDumper } from "@dbgate/types";
import { dumpSqlSelect } from "./dumpSqlCommand";
import { dumpSqlCondition } from "./dumpSqlCondition";
export function dumpSqlSourceDef(dmp: SqlDumper, source: Source) {
let sources = 0;
@@ -38,3 +39,20 @@ export function dumpSqlSourceRef(dmp: SqlDumper, source: Source) {
}
return false;
}
export function dumpSqlRelation(dmp: SqlDumper, from: Relation) {
dmp.put("&n %k ", from.joinType);
dumpSqlSourceDef(dmp, from.source);
if (from.conditions) {
dmp.put(" ^on ");
dmp.putCollection(" ^and ", from.conditions, cond =>
dumpSqlCondition(dmp, cond)
);
}
}
export function dumpSqlFromDefinition(dmp: SqlDumper, from: FromDefinition) {
dumpSqlSourceDef(dmp, from.source);
dmp.put(" ");
if (from.relations) from.relations.forEach(rel => dumpSqlRelation(dmp, rel));
}