plpgsql: check domain constraints
| От | Neil Conway |
|---|---|
| Тема | plpgsql: check domain constraints |
| Дата | |
| Msg-id | 1136781040.8718.24.camel@localhost.localdomain обсуждение исходный текст |
| Ответы |
Re: plpgsql: check domain constraints
|
| Список | pgsql-patches |
Attached is a patch that makes the following changes: (1) refactor execQual.c to expose a function for checking an instance of a domain value against a list of domain constraints (2) adjust pl/pgsql to fetch the constraints associated with the function's return value. Because this is expensive, the constraints are fetched once per session, when the function is compiled. I then modified pl/pgsql to check any applicable constraints on the return value of a function before returning it to the backend. (3) add some regression tests for #2 The patch does NOT add checking of domain constraints for other PLs, or for intermediate values in PL/PgSQL -- I plan to take a look at doing one or both of those soon. I also made a few semi-related cleanups. In pl_exec.c, it seems to me that estate.eval_econtext MUST be non-NULL during the guts of both plpgsql_exec_trigger() and plpgsql_exec_function(). Therefore checking that estate.eval_econtext is non-NULL when cleaning up is unnecessary (line 649 and 417 in current sources, respectively), so I've removed the checks. Am I missing something? Barring any objections I'll apply this patch tomorrow some time. -Neil
Вложения
В списке pgsql-patches по дате отправления: