Search Postgresql Archives

Re: Possible trigger bug? function call argument literalised

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/3/21 11:19 AM, Thiemo Kellner wrote:
Quoting Adrian Klaver <adrian.klaver@xxxxxxxxxxx>:

Can you provide an outline form of what you are trying to accomplish?

Hm, making myself understood. ;-) So from the very beginning.

There is the concept of growing degree days

Familiar with it, I have worked in farming(outdoor and indoor(greenhouse)) industries.

(https://en.wikipedia.org/wiki/Growing_degree-day). It is a measure for energy an organism can consume in a specific day for its development.

Also used to anticipate pest pressure on plants.

More below.

Let stay at plants. It is basically the daily average temperature. As plants do not grow below a certain, plant specific temperature, this base temperature gets substracted from the average. Usually plants grow faster the warmer it is. But only to a certain temperature above which the growth rate remains. However, the arithmetic temperature average is not the most accurate approximation, so there are other methods to calculate the amount of energy available to grow. To cut a long story short, I implemented several such methods as pg/plsql functions. And I implement a datamodel, where plants get connected to the amount of growing degree days to mature. As this value is method dependent, all the plant values get the method used to calculate it, assigned too. To prevent the assignement of imaginary methods, I setup foreign key relation. Unfortunately, it is not allowed to reference the catalog tables, so I put up a dimension table. In order to prevent imaginary entries there, I want to check the existence of the entry-to-be as installed function (information_schema.routines). I wanted to have a general solution for the check to facilitate reuse of the method_check trigger function.


So if I am following you are trying to set up a dynamic FK like process to INFORMATION_SCHEMA.ROUTINES on INSERT to CALCULATION_METHOD?

If that is the case my previous suggestion of finding the CURRENT_SCHEMA inside the function would work?

Personally I would create a script the built and populated CALCULATION_METHOD table as you added the functions to the database and schema. So:

BEGIN;
CREATE TABLE CALCULATION_METHOD ...

CREATE the_schema.some_dd_fnc();

INSERT INTO CALCULATION_METHOD VALUES(<required_fields>)

--Where db_routine_name would be set to the function name.
...

COMMIT;

--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux