pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
SELECTing 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