sedk-mysql
Version:
Simple SQL builder and validator for MySQL
38 lines • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SelectItemInfo = void 0;
const database_1 = require("./database");
const models_1 = require("./models");
const util_1 = require("./util");
const AggregateFunction_1 = require("./AggregateFunction");
const ItemInfo_1 = require("./ItemInfo");
class SelectItemInfo extends ItemInfo_1.ItemInfo {
constructor(selectItem, alias) {
super(alias);
this.selectItem = selectItem;
this.alias = alias;
}
getColumns() {
if (this.selectItem instanceof database_1.Column) {
return [this.selectItem];
}
else if (this.selectItem instanceof models_1.Expression) {
return this.selectItem.getColumns();
}
else if (this.selectItem instanceof AggregateFunction_1.AggregateFunction) {
return this.selectItem.getColumns();
} // after this selectItem is always Asterisk or Binder
return [];
}
getStmt(data, artifacts, binderStore) {
if (this.alias !== undefined) {
// escape double quote by repeating it
const escapedAlias = (0, util_1.escapeBackTick)(this.alias);
const asString = (data.option.addAsBeforeColumnAlias === 'always') ? ' AS' : '';
return `${this.selectItem.getStmt(data, artifacts, binderStore)}${asString} \`${escapedAlias}\``;
}
return `${this.selectItem.getStmt(data, artifacts, binderStore)}`;
}
}
exports.SelectItemInfo = SelectItemInfo;
//# sourceMappingURL=SelectItemInfo.js.map