exists #13

Merged
jusax23 merged 2 commits from dev into main 2023-02-26 16:38:36 +01:00
2 changed files with 18 additions and 0 deletions
Showing only changes of commit e446270591 - Show all commits

View file

@ -751,6 +751,22 @@ export class Handler {
} }
return builder; return builder;
}, },
exists: (handler: Handler, a: allModifierInput[]):QueryBuilder =>{
let e = a[0];
if (e instanceof Attribute || e instanceof AttributeAlias) return new QueryBuilder([{ data: "exists (" + e.getString(handler) + ")" }])
if (e instanceof Modifier || e instanceof selectQuery || e instanceof Aggregation) {
const builder = new QueryBuilder();
builder.addCode("exists (");
builder.append(e.serialize(handler));
builder.addCode(")");
return builder;
}
return new QueryBuilder([
{ data: "exists (" },
{ inject: true, data: e },
{ data: ")" }
]);
},
concat: (handler: Handler, a: allModifierInput[]): QueryBuilder => { concat: (handler: Handler, a: allModifierInput[]): QueryBuilder => {
const builder = new QueryBuilder(); const builder = new QueryBuilder();
builder.addCode("CONCAT("); builder.addCode("CONCAT(");

View file

@ -20,6 +20,8 @@ export const not = (arg: allModifierInput) => new BooleanModifier("not", [arg]);
export const like = (a: allModifierInput, b: allModifierInput) => new BooleanModifier("like", [a, b]); export const like = (a: allModifierInput, b: allModifierInput) => new BooleanModifier("like", [a, b]);
export const regexp = (a: allModifierInput, b: allModifierInput) => new BooleanModifier("regexp", [a, b]); export const regexp = (a: allModifierInput, b: allModifierInput) => new BooleanModifier("regexp", [a, b]);
export const exists = (q: selectQuery) => new BooleanModifier("exists", [q]);
export const concat = (...args: allModifierInput[]) => new StringModifier("concat", args); export const concat = (...args: allModifierInput[]) => new StringModifier("concat", args);
//aggregations //aggregations