Hallo zusammen,
ich hab ein kleines Problem (oder ich seh den Wald vor lauter Bäumen
nicht mehr...) mit der crypt Funktion, bzw. ihrem Gebrauch in Rules.
Wenn ich eine Tabelle tt habe und einen regulären Insert mache,
funktioniert auch der Gebrauch von crypt:
=> create table tt (un
varchar(10), pw varchar(128));
CREATE TABLE
=> insert into tt values ('me', crypt('pass',gen_salt('bf')));
INSERT 0 1
mitarbeiterideen=> select * from tt;
un | pw
----+--------------------------------------------------------------
me | $2a$06$RHCI.brrz/UedPhDokDgTumljCvbG1QBofLWNaQfkaii6KzLFAO0y
(1 Zeile)
Funktioniert. Aber ich möchte jetzt gerne, daß das pw Feld per crypt
verschlüsselt wird, auch wenn die Applikation nur plain übergibt, also
nur 'me' und 'pass'. Also dachte ich, ich kann das mit einer Regel
lösen:
=> CREATE RULE pw_tt AS
ON INSERT TO tt
-> DO INSTEAD
-> INSERT INTO tt VALUES (NEW.un, crypt(NEW.pw, gen_salt('bf')));
CREATE RULE
=> insert into tt values ('me', 'pass');
FEHLER: unendliche Rekursion entdeckt in Regeln für Relation »tt«
Kann mir bitte jemand erklären, wo hier der Fehler liegt? Ich schein
betriebsblind zu sein, aber ich weiß nicht, woher er die Rekursionen
holt...
Vielen Dank und Gruß
Oliver