Skip to content

Commit 8e5e255

Browse files
committed
Fix(postgres): dotted function calls in create trigger ddls closes #7527
1 parent 08ea329 commit 8e5e255

2 files changed

Lines changed: 3 additions & 1 deletion

File tree

sqlglot/parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2688,7 +2688,7 @@ def _parse_trigger_execute(self) -> exp.TriggerExecute | None:
26882688
if not self._match_set((TokenType.FUNCTION, TokenType.PROCEDURE)):
26892689
self.raise_error("Expected FUNCTION or PROCEDURE after EXECUTE")
26902690

2691-
func_call = self._parse_function(anonymous=True, optional_parens=False)
2691+
func_call = self._parse_column()
26922692
return self.expression(exp.TriggerExecute(this=func_call))
26932693

26942694
def _parse_property_before(self) -> exp.Expr | list[exp.Expr] | None:

tests/dialects/test_postgres.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1815,6 +1815,8 @@ def test_postgres_create_trigger(self):
18151815
"CREATE OR REPLACE TRIGGER replace_trigger BEFORE INSERT ON users FOR EACH ROW EXECUTE FUNCTION LOG_INSERT()",
18161816
"CREATE TRIGGER param_trigger BEFORE INSERT ON users FOR EACH ROW EXECUTE FUNCTION LOG_WITH_PARAMS('insert', 'users')",
18171817
"CREATE TRIGGER my_trigger BEFORE INSERT ON myschema.users FOR EACH ROW EXECUTE FUNCTION LOG_CHANGES()",
1818+
"CREATE TRIGGER trg_foo BEFORE UPDATE ON bar.bat FOR EACH ROW EXECUTE FUNCTION baz.asdf()",
1819+
"CREATE TRIGGER trg_foo BEFORE UPDATE ON bar.bat FOR EACH ROW EXECUTE FUNCTION c.s.asdf('x', 1)",
18181820
"CREATE TRIGGER truncate_trigger BEFORE TRUNCATE ON users FOR EACH STATEMENT EXECUTE FUNCTION LOG_TRUNCATE()",
18191821
"CREATE TRIGGER complex_when BEFORE UPDATE ON accounts FOR EACH ROW WHEN (OLD.balance IS DISTINCT FROM NEW.balance AND NEW.balance > 0) EXECUTE FUNCTION CHECK_BALANCE()",
18201822
"CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp FOR EACH ROW EXECUTE FUNCTION EMP_STAMP()",

0 commit comments

Comments
 (0)