Re: Need help with generic query

From: Jim Nasby <decibel(at)decibel(dot)org>
To: David Abrahams <dave(at)boost-consulting(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Need help with generic query
Date: 2007-06-29 15:12:10
Message-ID: 9D873308-D31B-4977-BC29-DB5692A2E596@decibel.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

No idea on the function, but why not have a 'master' ticket table and
have the ones in each schema inherit from it? Then you could query
all tables by just querying the master table.

On Jun 20, 2007, at 5:55 AM, David Abrahams wrote:

> Background: I have a number of schemas all of which contain a "ticket"
> table having the same columns. The goal of the function xticket1
> below is to collect all ticket rows satisfying some condition from all
> those schemas, and additionally label each one by adding a new column
> containing the name of the schema it belongs to.
>
> -- Create a temporary table with the right layout
> -- for our function's return type (know a better way?)
> CREATE TEMP TABLE tix ( LIKE master.ticket );
> ALTER TABLE tix ADD COLUMN schema_name text;
>
> CREATE OR REPLACE FUNCTION xticket1(condition TEXT)
> RETURNS SETOF tix
> AS
> $BODY$
> DECLARE
> scm RECORD;
> result RECORD;
> BEGIN
> FOR scm IN SELECT schema_name FROM public.instance_defs LOOP
> FOR result IN EXECUTE 'SELECT '
> || scm.schema_name || '.ticket.*,'
> || ' ''' || scm.schema_name || ''' AS schema_name'
> || ' FROM ' || scm.schema_name || '.ticket'
> || ' WHERE ' || condition
> LOOP
> RETURN NEXT result;
> END LOOP;
> END LOOP;
> RETURN;
> END;
> $BODY$
> LANGUAGE plpgsql;
>
>
> The problem is, psql is complaining:
>
> ERROR: wrong record type supplied in RETURN NEXT
>
> I don't know why, and I don't know how to get psql to give me useful
> debugging info that would help me discover why. Can someone help?
>
> Thanks
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
> http://archives.postgresql.org/
>

--
Jim Nasby jim(at)nasby(dot)net
EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)

In response to

Browse pgsql-general by date

  From Date Subject
Next Message CG 2007-06-29 15:12:53 xpath_string namespace issue...
Previous Message Jim Nasby 2007-06-29 15:09:20 Re: commit transaction failed