Search Postgresql Archives

Re: Add items to a record variable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The first hack is probably a little easier.  Let me try and flesh it
out for you:

declare
   rec1   record;
   rec2   record;
   new_fields  varchar = '';

begin
  select fieldlist from mytable into rec1;
  -- inspect and play with your rec1 here
  -- now start a loop to add new fields

     if new_fields != '' then
        new_fields = new_fields || ', '
     end if;

      new_fields = new_fields || new field value here || '::' || new
field type here;

  -- close loop here

  -- now select all rows into a new record variable

  execute 'select mt.fieldlist ' || new_fields || ' from mytable mt into rec2';

end;

This is a hack but it should work.  You'll end up with a single record
var with your old fields and new fields, typed as you have specified.


On 3/1/07, Eddy D. Sanchez <eddy.sanchez@xxxxxxxxx> wrote:
Good idea, thanks a lot, I try it

On Mar 2, 2007, at 1:32 AM, Postgres User wrote:

> Ok, you can always SELECT into a temp table.  If you want to add
> additional fields in a loop, you can call an Execute 'Alter Table Add
> Column....'
> to add all the fields you need.  Then call Update to insert values
> into the fields.
>
> Finally do a select into your record var.
>
> On 3/1/07, Eddy D. Sanchez <eddy.sanchez@xxxxxxxxx> wrote:
>> Thanks.
>>
>> But I need to add fields to a defined and filled record, I don't know
>> if I can do it, and how can I do it.
>>
>> If I have:
>>
>> v_record record;
>>
>> EXECUTE 'select * from table'
>> INTO v_record;
>>
>> supposing (after query) that v_record contains just one row with 5
>> fields, I need to add the 6th, 7th, 8th fields, etc, etc.
>>
>> Do you understand ?
>>
>>
>>
>> On Mar 2, 2007, at 12:48 AM, Postgres User wrote:
>>
>> > If you need to return a record to another function or client
>> program,
>> > you can always use this sytnax:
>> >
>> > SELECT var_a::integer, var_b::integer, var_c::integer... etc
>> >
>> > where var_a, var_b, etc and local variables that hold your
>> > calculated values.
>> >
>> > You dont need to create a local record structure- select will do
>> that
>> > for you.  The '::integer' will ensure that the values are
>> typecast as
>> > integers.
>> >
>> >
>> > On 3/1/07, eddy sanchez <eddysan@xxxxxxxxxxxxx> wrote:
>> >> WEBMAIL Server: UDABOLnet, Universidad de Aquino Bolivia
>> >>
>> >> Thank you for you help
>> >>
>> >> The item is a field, I need to return a record with double
>> >> precision or integer
>> >> fields.
>> >>
>> >> I need a function that can calculate some fields (integer numbers)
>> >> that should
>> >> be added to a record inside a loop, and the result, must seems
>> >> like this:
>> >>
>> >> {234.00, 56434.78, 5556.89,....}
>> >>
>> >> Always, I call those functions with:
>> >>
>> >> select * from func_with_record() as (field1 integer, field2
>> >> integer, field3
>> >> integer,....)
>> >>
>> >> Do you undestand?
>> >>
>> >> Thanks a lot for your interesting.
>> >>
>> >>
>> >>
>> >> -----------------------------------
>> >>
>> >> What is the new item?  Is it a field?
>> >>
>> >> On 3/1/07, eddy sanchez <eddysan@xxxxxxxxxxxxx> wrote:
>> >> WEBMAIL Server: UDABOLnet, Universidad de Aquino Bolivia
>> >>
>> >>
>> >> Can anyone help me???
>> >>
>> >> I work with plpgsql and I need to add items to a record variable,
>> >> with a for
>> >> statement, something like this:
>> >>
>> >> declare
>> >>  v_rec record;
>> >> begin
>> >> for nn in (some_xpresion) loop
>> >>  ....
>> >>
>> >> v_rec = vrec + [new_item]; <--Here I need to add an item to record
>> >> variable with
>> >>                              each loop
>> >> end loop lp;
>> >>
>> >> return v_rec;
>> >> end;
>> >>
>> >>
>> >> The result should be like {it1,it2,it3,i4,....}
>> >>
>> >> Please can you help me?
>> >> Thanks a lot
>> >>
>> >> -------------------------------------------------
>> >> Este email se envio mediante el servidor WEBMAIL de UDABOLnet
>> >> -------------------------------------------------
>> >>
>> >> ---------------------------(end of
>> >> broadcast)---------------------------
>> >> TIP 1: if posting/reading through Usenet, please send an
>> appropriate
>> >>      subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that
>> >> your
>> >>      message can get through to the mailing list cleanly
>> >>
>> >>
>> >>
>> >> -------------------------------------------------
>> >> Este email se envio mediante el servidor WEBMAIL de UDABOLnet
>> >> -------------------------------------------------
>> >>
>>
>>




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux