不要怂,就是干,撸起袖子干!

Commit d43f162d by Sushant Committed by GitHub

fix(postgres): quote trigger query identifiers (#10632)

1 parent ab7a9548
......@@ -582,22 +582,21 @@ class PostgresQueryGenerator extends AbstractQueryGenerator {
}
createTrigger(tableName, triggerName, eventType, fireOnSpec, functionName, functionParams, optionsArray) {
const decodedEventType = this.decodeTriggerEventType(eventType);
const eventSpec = this.expandTriggerEventSpec(fireOnSpec);
const expandedOptions = this.expandOptions(optionsArray);
const paramList = this.expandFunctionParamList(functionParams);
return `CREATE ${this.triggerEventTypeIsConstraint(eventType)}TRIGGER ${triggerName} ${decodedEventType} ${
eventSpec} ON ${tableName}${expandedOptions ? ` ${expandedOptions}` : ''} EXECUTE PROCEDURE ${functionName}(${paramList});`;
return `CREATE ${this.triggerEventTypeIsConstraint(eventType)}TRIGGER ${this.quoteIdentifier(triggerName)} ${decodedEventType} ${
eventSpec} ON ${this.quoteTable(tableName)}${expandedOptions ? ` ${expandedOptions}` : ''} EXECUTE PROCEDURE ${functionName}(${paramList});`;
}
dropTrigger(tableName, triggerName) {
return `DROP TRIGGER ${triggerName} ON ${tableName} RESTRICT;`;
return `DROP TRIGGER ${this.quoteIdentifier(triggerName)} ON ${this.quoteTable(tableName)} RESTRICT;`;
}
renameTrigger(tableName, oldTriggerName, newTriggerName) {
return `ALTER TRIGGER ${oldTriggerName} ON ${tableName} RENAME TO ${newTriggerName};`;
return `ALTER TRIGGER ${this.quoteIdentifier(oldTriggerName)} ON ${this.quoteTable(tableName)} RENAME TO ${this.quoteIdentifier(newTriggerName)};`;
}
createFunction(functionName, params, returnType, language, body, options) {
......
......@@ -1148,21 +1148,36 @@ if (dialect.startsWith('postgres')) {
createTrigger: [
{
arguments: ['myTable', 'myTrigger', 'after', ['insert'], 'myFunction', [], []],
expectation: 'CREATE TRIGGER myTrigger AFTER INSERT ON myTable EXECUTE PROCEDURE myFunction();'
expectation: 'CREATE TRIGGER "myTrigger" AFTER INSERT ON "myTable" EXECUTE PROCEDURE myFunction();'
},
{
arguments: ['myTable', 'myTrigger', 'before', ['insert', 'update'], 'myFunction', [{ name: 'bar', type: 'INTEGER' }], []],
expectation: 'CREATE TRIGGER myTrigger BEFORE INSERT OR UPDATE ON myTable EXECUTE PROCEDURE myFunction(bar INTEGER);'
expectation: 'CREATE TRIGGER "myTrigger" BEFORE INSERT OR UPDATE ON "myTable" EXECUTE PROCEDURE myFunction(bar INTEGER);'
},
{
arguments: ['myTable', 'myTrigger', 'instead_of', ['insert', 'update'], 'myFunction', [], ['FOR EACH ROW']],
expectation: 'CREATE TRIGGER myTrigger INSTEAD OF INSERT OR UPDATE ON myTable FOR EACH ROW EXECUTE PROCEDURE myFunction();'
expectation: 'CREATE TRIGGER "myTrigger" INSTEAD OF INSERT OR UPDATE ON "myTable" FOR EACH ROW EXECUTE PROCEDURE myFunction();'
},
{
arguments: ['myTable', 'myTrigger', 'after_constraint', ['insert', 'update'], 'myFunction', [{ name: 'bar', type: 'INTEGER' }], ['FOR EACH ROW']],
expectation: 'CREATE CONSTRAINT TRIGGER myTrigger AFTER INSERT OR UPDATE ON myTable FOR EACH ROW EXECUTE PROCEDURE myFunction(bar INTEGER);'
expectation: 'CREATE CONSTRAINT TRIGGER "myTrigger" AFTER INSERT OR UPDATE ON "myTable" FOR EACH ROW EXECUTE PROCEDURE myFunction(bar INTEGER);'
}
],
dropTrigger: [
{
arguments: ['myTable', 'myTrigger'],
expectation: 'DROP TRIGGER "myTrigger" ON "myTable" RESTRICT;'
}
],
renameTrigger: [
{
arguments: ['myTable', 'oldTrigger', 'newTrigger'],
expectation: 'ALTER TRIGGER "oldTrigger" ON "myTable" RENAME TO "newTrigger";'
}
],
getForeignKeyReferenceQuery: [
{
arguments: ['myTable', 'myColumn'],
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!