Re: Polymorphic?

From: Itai Zukerman <zukerman(at)math-hat(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Polymorphic?
Date: 2003-02-26 03:40:58
Message-ID: 878yw31zg5.fsf@matt.w80.math-hat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

>> 1. Extract information about the underlying type from the arrays, in
>> particular the size of the type?
>> 2. Apply an operator from within C?
>
> contrib/array might be a useful example of array manipulation. As for
> the other stuff, do you actually want to invoke those operators
> specifically, or are you looking for sorting? In any case you might
> prefer to use any_ordering_op, SelectSortFunction and ApplySortFunction
> rather than nailing down your own assumptions about what to compare
> with.

I think ApplySortFunction is exactly what I wanted.

I'm not sure when I'm going to get to it, but what I'd like to do is:
given an existing order relation on a type, extend it to an order on
arrays of that type. I've done it for INT4[], and it looks like the
general case is possible, just a question of figuring out which pegs
go in which slots. So far PostgreSQL's been a pleasure to work with;
kudos!

CREATE FUNCTION arr_int4_lt(int4[], int4[]) RETURNS boolean
AS 'arr_ops', 'generic_lt'
LANGUAGE 'C' STRICT;

CREATE FUNCTION arr_foo_lt(foo, foo) RETURNS boolean
AS 'arr_ops', 'generic_lt'
LANGUAGE 'C' STRICT;

etc.

--
Itai Zukerman <http://www.math-hat.com/~zukerman/>

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Roberto Mello 2003-02-26 04:43:49 Re: Return type of triger functions from OPAQUE to TRIGGER in 7.3
Previous Message Itai Zukerman 2003-02-26 03:29:11 OffsetNumber, picksplit, and GiST