I would personnaly like this feature (assigning a composite from another
similar composite) to be added to PLPGSQL. Another nice feature would be
to able to insert a composite into a table without have to name all
atributes.
Just my $.02
"Rison, Stuart" wrote:
>
> >> 2) I am looking for an elegant way of copying a rowtype variable:
> >>
> >> eg.
> >>
> >> DECLARE
> >> current_row orf%ROWTYPE;
> >> previous_row orf%ROWTYPE;
> >> BEGIN
> >>
> >> LOOP
> >> -- use cursors or FOR SELECT to get values into current_row
> >> -- now try this:
> >>
> >> previous_row = current_row;
> >> END LOOP;
> >> END;
> >>
> >> Now, as I anticipated, this fails because a rowtype variable is a
> >> composite
> >> variable. One working alternative is to do:
> >>
> >
> > I haven't tried this. One thing I notice above is that you're using
> > the equality operator "=" instead of the assignment operator ":=" .
> > Usually Postgres lets you slack on this, but it would be worth trying
> > to see whether that has an effect on the problem.
> >
>
> Fair point. But "previous_row := current_row" doesn't work either.
>
> > Another thing to try is, instead of a simple variable assignment
> >
> > SELECT current_row INTO previous_row;
> >
> > ... and see if that works.
>
> Well, I had high hopes for that one... but it didn't work either!
>
> > I'll tinker later today; there has to be a way to do it.
>
> I'd definitely appreciate further suggestions, but thanks all the same for
> you help. I have a feeling that you might have to write a PL function to
> perform the operation... but I haven't really thought about it!
>
> Stuart.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org