UNPKG

sedk-mysql

Version:
121 lines 5.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AggregateFunction = exports.AggregateFunctionEnum = void 0; const models_1 = require("./models"); const SelectItemInfo_1 = require("./SelectItemInfo"); const operators_1 = require("./operators"); const binder_1 = require("./binder"); var AggregateFunctionEnum; (function (AggregateFunctionEnum) { AggregateFunctionEnum["SUM"] = "SUM"; AggregateFunctionEnum["AVG"] = "AVG"; AggregateFunctionEnum["COUNT"] = "COUNT"; AggregateFunctionEnum["MAX"] = "MAX"; AggregateFunctionEnum["MIN"] = "MIN"; })(AggregateFunctionEnum || (exports.AggregateFunctionEnum = AggregateFunctionEnum = {})); class AggregateFunction { constructor(funcName, expression) { this.funcName = funcName; this.expression = expression; this.unique = Symbol(); if (expression.type !== models_1.ExpressionType.NUMBER) throw new Error('Expression Type must be number in aggregate function'); } as(alias) { return new SelectItemInfo_1.SelectItemInfo(this, alias); } eq(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.Equal, rightExpression: models_1.Expression.getSimpleExp(value), }); } eq$(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.Equal, rightExpression: models_1.Expression.getSimpleExp(new binder_1.Binder(value)), }); } ne(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.NotEqual, rightExpression: models_1.Expression.getSimpleExp(value), }); } ne$(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.NotEqual, rightExpression: models_1.Expression.getSimpleExp(new binder_1.Binder(value)), }); } gt(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.GreaterThan, rightExpression: models_1.Expression.getSimpleExp(value), }); } gt$(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.GreaterThan, rightExpression: models_1.Expression.getSimpleExp(new binder_1.Binder(value)), }); } ge(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.GreaterOrEqual, rightExpression: models_1.Expression.getSimpleExp(value), }); } ge$(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.GreaterOrEqual, rightExpression: models_1.Expression.getSimpleExp(new binder_1.Binder(value)), }); } lt(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.LesserThan, rightExpression: models_1.Expression.getSimpleExp(value), }); } lt$(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.LesserThan, rightExpression: models_1.Expression.getSimpleExp(new binder_1.Binder(value)), }); } le(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.LesserOrEqual, rightExpression: models_1.Expression.getSimpleExp(value), }); } le$(value) { return new models_1.Condition({ leftExpression: models_1.Expression.getSimpleExp(this), operator: operators_1.ComparisonOperator.LesserOrEqual, rightExpression: models_1.Expression.getSimpleExp(new binder_1.Binder(value)), }); } getStmt(data, artifacts, binderStore) { if (this.expression.rightOperand === undefined || this.expression.rightOperand.type === models_1.ExpressionType.NOT_EXIST) return `${this.funcName}(${this.expression.getStmt(data, artifacts, binderStore)})`; return `${this.funcName}${this.expression.getStmt(data, artifacts, binderStore)}`; } getColumns() { return this.expression.getColumns(); } } exports.AggregateFunction = AggregateFunction; //# sourceMappingURL=AggregateFunction.js.map