X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (mx1.hub.org [200.46.208.251]) by postgresql.org (Postfix) with ESMTP id 605DA11F6083 for ; Tue, 25 Apr 2006 09:03:23 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.208.251]) (amavisd-new, port 10024) with ESMTP id 95103-08 for ; Tue, 25 Apr 2006 09:03:12 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey- Received: from pjetlic.mobart.hr (pjetlic.mobart.hr [80.80.51.10]) by postgresql.org (Postfix) with ESMTP id CF30111F6026 for ; Tue, 25 Apr 2006 09:03:10 -0300 (ADT) Received: from localhost (localhost.localdomain [127.0.0.1]) by pjetlic.mobart.hr (Postfix) with ESMTP id 0208A17A94 for ; Tue, 25 Apr 2006 14:03:08 +0200 (CEST) Received: from pjetlic.mobart.hr ([127.0.0.1]) by localhost (pjetlic [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 06664-01 for ; Tue, 25 Apr 2006 14:03:07 +0200 (CEST) Received: from mike.mobart.hr (mike.mobart.hr [192.168.10.94]) (using SSLv3 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by pjetlic.mobart.hr (Postfix) with ESMTP id D195217A8B for ; Tue, 25 Apr 2006 14:03:07 +0200 (CEST) Subject: SELECTing into usertype, how to do it? From: Mario Splivalo Reply-To: mario.splivalo@mobart.hr To: pgsql-sql@postgresql.org Content-Type: text/plain Organization: Mob-Art Date: Tue, 25 Apr 2006 14:03:07 +0200 Message-Id: <1145966587.8822.5.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.4.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by OpenSource AV+AS Mail Server X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200604/170 X-Sequence-Number: 24979 I have a type, declared like this: CREATE TYPE type_a AS ( member_a varchar, member_b bool ); There is also a table: CREATE TABLE table_a ( col_a varchar, col_b bool, col_c int4 ); Now, in a function, I declared type_var variable of type type_a: DECLARE type_var type_a; And then, when I want to fill in the type_var, i do this: type_var.member_a := col_a FROM table_a WHERE col_c = 5; type_var.member_b := col_b FROM table_a WHERE col_c = 5; Is there a way to fill in the type_var, but from just one statement? Here I have two 'selects' on table_a, and that seems as bit expensive when iterated a lot of times. I guess I could do: SELECT col_a, col_b INTO type_var.member_a, type_var.member_b FROM table_A WHERE col_c = 5; but that is a bit hard to read :) Are there more options on doing what I'd like to do? Mario -- Mario Splivalo Mob-Art mario.splivalo@mobart.hr "I can do it quick, I can do it cheap, I can do it well. Pick any two."