ddl-manager
Version:
store postgres procedures and triggers in files
40 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CacheIndex = void 0;
const psql_lang_1 = require("psql-lang");
class CacheIndex extends psql_lang_1.AbstractNode {
static entry(cursor) {
return cursor.beforeWord("index");
}
static parse(cursor) {
cursor.readWord("index");
const index = this.parseIndexType(cursor);
cursor.readWord("on");
cursor.readValue("(");
cursor.skipSpaces();
const columns = cursor.parseChainOf(psql_lang_1.OrderByItem, ",");
cursor.skipSpaces();
cursor.readValue(")");
cursor.skipSpaces();
return { index, columns };
}
static parseIndexType(cursor) {
if (cursor.beforeWord("btree")) {
cursor.readWord("btree");
return "btree";
}
if (cursor.beforeWord("gin")) {
cursor.readWord("gin");
return "gin";
}
cursor.throwError("expected index type: btree or gin");
}
template() {
return [
psql_lang_1.keyword("index"), psql_lang_1.keyword(this.row.index),
psql_lang_1.keyword("on"), psql_lang_1._, "(", ...psql_lang_1.printChain(this.row.columns, ",", psql_lang_1._), ")"
];
}
}
exports.CacheIndex = CacheIndex;
//# sourceMappingURL=CacheIndex.js.map