mirror of
https://github.com/xfarrow/blink
synced 2025-06-27 09:03:02 +02:00
Change endpoint from persons to people
This commit is contained in:
138
backend/apis/nodejs/node_modules/knex/lib/schema/viewcompiler.js
generated
vendored
Normal file
138
backend/apis/nodejs/node_modules/knex/lib/schema/viewcompiler.js
generated
vendored
Normal file
@ -0,0 +1,138 @@
|
||||
/* eslint max-len:0 */
|
||||
|
||||
// View Compiler
|
||||
// -------
|
||||
const { pushQuery } = require('./internal/helpers');
|
||||
const groupBy = require('lodash/groupBy');
|
||||
const { columnize: columnize_ } = require('../formatter/wrappingFormatter');
|
||||
|
||||
class ViewCompiler {
|
||||
constructor(client, viewBuilder) {
|
||||
this.client = client;
|
||||
this.viewBuilder = viewBuilder;
|
||||
this._commonBuilder = this.viewBuilder;
|
||||
this.method = viewBuilder._method;
|
||||
this.schemaNameRaw = viewBuilder._schemaName;
|
||||
this.viewNameRaw = viewBuilder._viewName;
|
||||
this.single = viewBuilder._single;
|
||||
this.selectQuery = viewBuilder._selectQuery;
|
||||
this.columns = viewBuilder._columns;
|
||||
this.grouped = groupBy(viewBuilder._statements, 'grouping');
|
||||
|
||||
this.formatter = client.formatter(viewBuilder);
|
||||
this.bindings = [];
|
||||
this.formatter.bindings = this.bindings;
|
||||
this.bindingsHolder = this;
|
||||
|
||||
this.sequence = [];
|
||||
}
|
||||
|
||||
// Convert the tableCompiler toSQL
|
||||
toSQL() {
|
||||
this[this.method]();
|
||||
return this.sequence;
|
||||
}
|
||||
|
||||
// Column Compilation
|
||||
// -------
|
||||
|
||||
create() {
|
||||
this.createQuery(this.columns, this.selectQuery);
|
||||
}
|
||||
|
||||
createOrReplace() {
|
||||
throw new Error('replace views is not supported by this dialect.');
|
||||
}
|
||||
|
||||
createMaterializedView() {
|
||||
throw new Error('materialized views are not supported by this dialect.');
|
||||
}
|
||||
|
||||
createQuery(columns, selectQuery, materialized, replace) {
|
||||
const createStatement =
|
||||
'create ' +
|
||||
(materialized ? 'materialized ' : '') +
|
||||
(replace ? 'or replace ' : '') +
|
||||
'view ';
|
||||
const columnList = columns
|
||||
? ' (' +
|
||||
columnize_(
|
||||
columns,
|
||||
this.viewBuilder,
|
||||
this.client,
|
||||
this.bindingsHolder
|
||||
) +
|
||||
')'
|
||||
: '';
|
||||
let sql = createStatement + this.viewName() + columnList;
|
||||
sql += ' as ';
|
||||
sql += selectQuery.toString();
|
||||
switch (this.single.checkOption) {
|
||||
case 'default_option':
|
||||
sql += ' with check option';
|
||||
break;
|
||||
case 'local':
|
||||
sql += ' with local check option';
|
||||
break;
|
||||
case 'cascaded':
|
||||
sql += ' with cascaded check option';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
this.pushQuery({
|
||||
sql,
|
||||
});
|
||||
}
|
||||
|
||||
renameView(from, to) {
|
||||
throw new Error(
|
||||
'rename view is not supported by this dialect (instead drop, then create another view).'
|
||||
);
|
||||
}
|
||||
|
||||
refreshMaterializedView() {
|
||||
throw new Error('materialized views are not supported by this dialect.');
|
||||
}
|
||||
|
||||
alter() {
|
||||
this.alterView();
|
||||
}
|
||||
|
||||
alterView() {
|
||||
const alterView = this.grouped.alterView || [];
|
||||
for (let i = 0, l = alterView.length; i < l; i++) {
|
||||
const statement = alterView[i];
|
||||
if (this[statement.method]) {
|
||||
this[statement.method].apply(this, statement.args);
|
||||
} else {
|
||||
this.client.logger.error(`Debug: ${statement.method} does not exist`);
|
||||
}
|
||||
}
|
||||
for (const item in this.single) {
|
||||
if (typeof this[item] === 'function') this[item](this.single[item]);
|
||||
}
|
||||
}
|
||||
|
||||
renameColumn(from, to) {
|
||||
throw new Error('rename column of views is not supported by this dialect.');
|
||||
}
|
||||
|
||||
defaultTo(column, defaultValue) {
|
||||
throw new Error(
|
||||
'change default values of views is not supported by this dialect.'
|
||||
);
|
||||
}
|
||||
|
||||
viewName() {
|
||||
const name = this.schemaNameRaw
|
||||
? `${this.schemaNameRaw}.${this.viewNameRaw}`
|
||||
: this.viewNameRaw;
|
||||
|
||||
return this.formatter.wrap(name);
|
||||
}
|
||||
}
|
||||
|
||||
ViewCompiler.prototype.pushQuery = pushQuery;
|
||||
|
||||
module.exports = ViewCompiler;
|
Reference in New Issue
Block a user