On Wed, Mar 04, 2020 at 08:05:06AM -0500, stan wrote:
> I am missing something about how to properly create a rule.
>
> Thanks to the helpful folks on this list, I am looking a creating some
> update able views. So, looks like I need to create a rule and a function
> for this. Here is what I am trying as a test.
>
>
>
> DROP TRIGGER v_trig_test ON test;
>
> CREATE OR REPLACE FUNCTION v_trig_test() RETURNS trigger AS $$
> use 5.010;
> use strict;
> use warnings;
> use Data::Dumper qw(Dumper);
>
> my $new = Dumper $_TD->{new};
> my $old = Dumper $_TD->{old};
>
> elog(NOTICE, "old = $old" );
> elog(NOTICE, "new = $new" );
>
> return;
>
> $$ LANGUAGE plperlu;
>
>
> CREATE RULE "_RETURN" AS
> ON UPDATE TO purchase_view
> DO INSTEAD
> SELECT * FROM v_trig_test;
>
>
> But the select line in the create rule seems to be a syntax error.
>
> Here is my thinking. I have done functions called from triggers, and I am
> modeling this after that experience, so I think I need the rule to call the
> function, correct?
Looks like the issue has to do with defining the return type of the
function. I corrected the SELECT in the rule to:
SELECT * FROM v_trig_test()
Whihc got me as far as a complaint about the return type of the function,
so now the parser understands that I am trying to call a function. What
should my function return?
--
"They that would give up essential liberty for temporary safety deserve
neither liberty nor safety."
-- Benjamin Franklin