exists #13
2 changed files with 18 additions and 0 deletions
|
@ -751,6 +751,22 @@ export class Handler {
|
|||
}
|
||||
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 => {
|
||||
const builder = new QueryBuilder();
|
||||
builder.addCode("CONCAT(");
|
||||
|
|
|
@ -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 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);
|
||||
|
||||
//aggregations
|
||||
|
|
Loading…
Reference in a new issue