pg.ddx.io pgsql-sql@postgresql.org mailing list archive
help / color / mirror / Atom feedSELECTing into usertype, how to do it?
4+ messages / 2 participants
[nested] [flat]
* SELECTing into usertype, how to do it?
@ 2006-04-25 12:03 Mario Splivalo <mario.splivalo@mobart.hr>
2006-04-25 12:21 ` Re: SELECTing into usertype, how to do it? A. Kretschmer <andreas.kretschmer@schollglas.com>
0 siblings, 1 reply; 4+ messages in thread
From: Mario Splivalo @ 2006-04-25 12:03 UTC (permalink / raw)
To: pgsql-sql
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."
^ permalink raw reply [nested|flat] 4+ messages in thread
* Re: SELECTing into usertype, how to do it?
2006-04-25 12:03 SELECTing into usertype, how to do it? Mario Splivalo <mario.splivalo@mobart.hr>
@ 2006-04-25 12:21 ` A. Kretschmer <andreas.kretschmer@schollglas.com>
2006-04-25 12:25 ` Re: SELECTing into usertype, how to do it? Mario Splivalo <mario.splivalo@mobart.hr>
0 siblings, 1 reply; 4+ messages in thread
From: A. Kretschmer @ 2006-04-25 12:21 UTC (permalink / raw)
To: pgsql-sql
am 25.04.2006, um 14:03:07 +0200 mailte Mario Splivalo folgendes:
>
> 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?
select into type_var col_a, col_b from table_a ... ;
HTH, Andreas
--
Andreas Kretschmer (Kontakt: siehe Header)
Heynitz: 035242/47215, D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
=== Schollglas Unternehmensgruppe ===
^ permalink raw reply [nested|flat] 4+ messages in thread
* Re: SELECTing into usertype, how to do it?
2006-04-25 12:03 SELECTing into usertype, how to do it? Mario Splivalo <mario.splivalo@mobart.hr>
2006-04-25 12:21 ` Re: SELECTing into usertype, how to do it? A. Kretschmer <andreas.kretschmer@schollglas.com>
@ 2006-04-25 12:25 ` Mario Splivalo <mario.splivalo@mobart.hr>
2006-04-25 12:42 ` Re: SELECTing into usertype, how to do it? A. Kretschmer <andreas.kretschmer@schollglas.com>
0 siblings, 1 reply; 4+ messages in thread
From: Mario Splivalo @ 2006-04-25 12:25 UTC (permalink / raw)
To: A. Kretschmer <andreas.kretschmer@schollglas.com>; +Cc: pgsql-sql
On Tue, 2006-04-25 at 14:21 +0200, A. Kretschmer wrote:
> am 25.04.2006, um 14:03:07 +0200 mailte Mario Splivalo folgendes:
> >
> > 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?
>
> select into type_var col_a, col_b from table_a ... ;
>
Thnx... still, that SELECT INTO looks pretty anoying... it would be neat
to type just:
type_var := col_a, col_b FROM ...
I guess the code would look much more readable...
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."
^ permalink raw reply [nested|flat] 4+ messages in thread
* Re: SELECTing into usertype, how to do it?
2006-04-25 12:03 SELECTing into usertype, how to do it? Mario Splivalo <mario.splivalo@mobart.hr>
2006-04-25 12:21 ` Re: SELECTing into usertype, how to do it? A. Kretschmer <andreas.kretschmer@schollglas.com>
2006-04-25 12:25 ` Re: SELECTing into usertype, how to do it? Mario Splivalo <mario.splivalo@mobart.hr>
@ 2006-04-25 12:42 ` A. Kretschmer <andreas.kretschmer@schollglas.com>
0 siblings, 0 replies; 4+ messages in thread
From: A. Kretschmer @ 2006-04-25 12:42 UTC (permalink / raw)
To: pgsql-sql
am 25.04.2006, um 14:25:50 +0200 mailte Mario Splivalo folgendes:
> >
> > select into type_var col_a, col_b from table_a ... ;
> >
>
> Thnx... still, that SELECT INTO looks pretty anoying... it would be neat
> to type just:
> type_var := col_a, col_b FROM ...
well-nigh:
type_var := (col_a, col_b) FROM ...
Andreas
--
Andreas Kretschmer (Kontakt: siehe Header)
Heynitz: 035242/47215, D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
=== Schollglas Unternehmensgruppe ===
^ permalink raw reply [nested|flat] 4+ messages in thread
end of thread, other threads:[~2006-04-25 12:42 UTC | newest]
Thread overview: 4+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2006-04-25 12:03 SELECTing into usertype, how to do it? Mario Splivalo <mario.splivalo@mobart.hr>
2006-04-25 12:21 ` A. Kretschmer <andreas.kretschmer@schollglas.com>
2006-04-25 12:25 ` Mario Splivalo <mario.splivalo@mobart.hr>
2006-04-25 12:42 ` A. Kretschmer <andreas.kretschmer@schollglas.com>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox