1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| drop database if exists "bdd_test";
create database "bdd_test"
template = "template0"
encoding = 'utf8';
\connect "bdd_test"
create type "complex" as (
"reel" smallint,
"img" smallint
);
comment on type "complex" is 'Type nombre complexe';
create or replace function public."egal_complex"(
gauche "complex",
droite "complex"
) returns boolean as $$
begin
return case when $1."reel" = $2."reel" and $1."img" = $2."img"
then true
else false
end;
end;
$$ language plpgsql immutable;
create operator public.=(
procedure=public."egal_complex",
leftarg="complex",
rightarg="complex",
commutator="="
);
create table "calcul" (
"id_calcul" integer not null check ("id_calcul" > 0),
"nbr" "complex" not null,
primary key("id_calcul")
) with (oids=false);
insert into calcul values(1, row(2, -2));
select * from calcul;
select * from calcul where nbr=row(2, -2)::complex; |
Partager