Wir haben versucht Testdaten zu erzeugen, was anscheinend ganz gut funktioniert, außer für bool-Werte. PD versucht nämlich immer 0/1 für false/true einzutragen, aber der Datentyp von PG sieht da ja ‘0’/‘1’ bzw. FALSE/TRUE, etc. vor und eben nicht 0/1 - kann man PD dazu bewegen, diesen Wert anzupassen? Bzw. kann man Postgres dazu bewegen auch 0/1 als F/T anzusehen?
test=*# create table bool_test (b bool);
CREATE TABLE
Zeit: 1,191 ms
test=*# create or replace function trg_bool() returns trigger as $$begin raise notice 'bin hier'; return new; end; $$language plpgsql;
CREATE FUNCTION
Zeit: 0,497 ms
test=*# create trigger trg_mybool before insert on bool_test for each row execute procedure trg_bool();
CREATE TRIGGER
Zeit: 0,507 ms
test=*# insert into bool_test values (0);
ERROR: column "b" is of type boolean but expression is of type integer
HINT: You will need to rewrite or cast the expression.
test=!#
Wie man sieht, sieht man nix. Zumindest nix vom TRIGGER.
ads=# create table boolean_test (data boolean);
CREATE TABLE
ads=# insert into boolean_test (data) values (1);
ERROR: column "data" is of type boolean but expression is of type integer
LINE 1: insert into boolean_test (data) values (1);
^
HINT: You will need to rewrite or cast the expression.
ads=# insert into boolean_test (data) values (1::boolean);
INSERT 0 1