Skip to content

Commit d7b87f4

Browse files
authored
Merge pull request #4229 from masatake/sql--postgresql-trigger
SQL: extract trigger of Postgresql dialect
2 parents 00ae476 + 87b9c4b commit d7b87f4

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
evr_update_trigger_katello_rpms input-0.sql /^CREATE TRIGGER evr_update_trigger_katello_rpms$/;" T table:katello_rpms
12
flag input.sql /^ flag number := 0;$/;" l trigger:restrict_login
23
restrict_login input.sql /^create or replace trigger restrict_login$/;" T table:database
34
startup_db input.sql /^CREATE OR REPLACE TRIGGER startup_db$/;" T table:database
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
CREATE TRIGGER evr_update_trigger_katello_rpms
2+
BEFORE UPDATE OF epoch, version, release
3+
ON katello_rpms
4+
FOR EACH ROW
5+
WHEN (
6+
OLD.epoch IS DISTINCT FROM NEW.epoch OR
7+
OLD.version IS DISTINCT FROM NEW.version OR
8+
OLD.release IS DISTINCT FROM NEW.release
9+
)
10+
EXECUTE PROCEDURE evr_trigger();
11+
-- Taken from katello-4.11.0.12/db/triggers/evr_update_trigger_katello_rpms_v01.sql

parsers/sql.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2526,6 +2526,10 @@ static void parseTrigger (tokenInfo *const token)
25262526
* create trigger "owner"."tr4" begin end;
25272527
* create trigger "tr5" not valid;
25282528
* create trigger "tr6" begin end;
2529+
*
2530+
* (PostgreSQL)
2531+
* create trigger trigger ... on table ... execute procedure fn();
2532+
*
25292533
*/
25302534

25312535
readIdentifier (name);
@@ -2556,6 +2560,7 @@ static void parseTrigger (tokenInfo *const token)
25562560

25572561
while (! isKeyword (token, KEYWORD_begin) &&
25582562
! isKeyword (token, KEYWORD_call) &&
2563+
! isKeyword (token, KEYWORD_procedure) &&
25592564
! isCmdTerm (token) &&
25602565
! isType (token, TOKEN_EOF))
25612566
{
@@ -2571,7 +2576,8 @@ static void parseTrigger (tokenInfo *const token)
25712576
}
25722577

25732578
if (isKeyword (token, KEYWORD_begin) ||
2574-
isKeyword (token, KEYWORD_call))
2579+
isKeyword (token, KEYWORD_call) ||
2580+
isKeyword (token, KEYWORD_procedure))
25752581
{
25762582
addToScope(name, table->string, SQLTAG_TABLE);
25772583
makeSqlTag (name, SQLTAG_TRIGGER);

0 commit comments

Comments
 (0)