Implementing DB2's "distinct" types - Mailing list pgsql-general

From Thomas Kellerer
Subject Implementing DB2's "distinct" types
Date
Msg-id kl0hrp$bm0$1@ger.gmane.org
Whole thread Raw
Responses Re: Implementing DB2's "distinct" types
Re: Implementing DB2's "distinct" types
List pgsql-general
Hi,

I recently stumbled upon a really cool feature in DB2: distinct types.

DB2 lets you define your own types (just as Postgres) but with the added benefit that you can mark them such that they
are_not_ comparable, e.g. to avoid comparing "apples to oranges". 

Take the following example:

create type sno as varchar(50)
   with comparisons;

create type pno as varchar(50)
   with comparisons;

create table s
(
    sno    sno         not null primary key,
    .... other columns
);

create table p
(
    pno    pno           not null primary key,
    .... other columns
);

The following query will be rejected because sno and pno are not comparable (even though both are varchar columns):

    select *
    from p
      join s on s.sno = p.pno;

I wonder if a  similar behaviour can be achieved with Postgres' types as well.

As a type definition in Postgres can also include comparison functions, I have the feeling that this should be
possible,but I don't have an idea on how to start to be honest. 

Any ideas?

Regards
Thomas





pgsql-general by date:

Previous
From: Mike Levine
Date:
Subject: Where in the source code does postgres write to disk?
Next
From: Atri Sharma
Date:
Subject: Re: Implementing DB2's "distinct" types