Search Postgresql Archives

Re: Coercing compound types to use generic ROW comparison operators

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Randall Lucas <rlucas@xxxxxxxxxxx> writes:
> Is there a way I can convince my custom composite data type (point_pk)
> to use the row-wise comparison functions, so that I don't have to
> hackishly rewrite the comparison algorithm for each composite type?

Well, you can do this ...

regression=# create type point_pk as (x int, y int);
CREATE TYPE
regression=# create table foo(f1 point_pk, f2 point_pk);
CREATE TABLE
regression=# select * from foo where f1 = f2;
ERROR:  operator does not exist: point_pk = point_pk
LINE 1: select * from foo where f1 = f2;
                                   ^
HINT:  No operator matches the given name and argument type(s). You may need to add explicit type casts.

regression=# select * from foo where row((f1).*) = row((f2).*);
 f1 | f2 
----+----
(0 rows)

> Using 8.1.5.

... but I think it only works as of 8.2.

			regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux