@uwdata/mosaic-sql
Version:
SQL query construction and analysis.
46 lines • 1.24 kB
JavaScript
import { LOGICAL_OPERATOR } from '../constants.js';
import { ExprNode } from './node.js';
export class LogicalOpNode extends ExprNode {
/** The logical operator */
op;
/** The clause expressions. */
clauses;
/**
* Instantiate a logical operator node.
* @param op The logical operation.
* @param clauses The input clause expressions.
*/
constructor(op, clauses) {
super(LOGICAL_OPERATOR);
this.op = op;
this.clauses = clauses;
}
/**
* Generate a SQL query string for this node.
*/
toString() {
const c = this.clauses;
return c.length === 0 ? ''
: c.length === 1 ? `${c[0]}`
: `(${c.join(` ${this.op} `)})`;
}
}
export class AndNode extends LogicalOpNode {
/**
* Instantiate a logical AND operator node.
* @param clauses The input clause expressions.
*/
constructor(clauses) {
super('AND', clauses);
}
}
export class OrNode extends LogicalOpNode {
/**
* Instantiate a logical OR operator node.
* @param clauses The input clause expressions.
*/
constructor(clauses) {
super('OR', clauses);
}
}
//# sourceMappingURL=logical-op.js.map