On Thu, Sep 9, 2010 at 6:34 PM, Nick <nboutelier@xxxxxxxxx> wrote: > On Sep 9, 2:21 am, dmit...@xxxxxxxxx (Dmitriy Igrishin) wrote: >> Hey Nick, >> >> You may do it with PL/pgSQL more easily with hstore module. >> Please, refer tohttp://www.postgresql.org/docs/9.0/static/hstore.html >> Please, look at the hstore(record) and populate_record(record, hstore) >> function. Hope this helps. >> >> And I think it will be more faster then you solution. >> >> Regards, >> Dmitriy >> >> 2010/9/9 Nick <nboutel...@xxxxxxxxx> >> >> >> >> > I need to dynamically update NEW columns. Ive been inserting the NEW >> > values into a temp table, updating them, then passing the temp table >> > values back to NEW (is there a better way?). Ive had success with this >> > method unless there is a null value... >> >> > EXECUTE 'CREATE TEMP TABLE new AS SELECT $1.*' USING NEW; >> > EXECUTE 'UPDATE new SET ' || dyn_col_name || ' = 1'; >> > EXECUTE 'SELECT * FROM new' INTO NEW; >> > EXECUTE 'DROP TABLE new'; >> >> > This last line... >> > EXECUTE 'SELECT $1.' || dyn_col_name INTO val USING NEW; >> >> > gives the ERROR: could not identify column "col_one" in record data >> > type. >> >> > However RAISE EXCEPTION '%',NEW.col_one; >> > returns "1" correctly. >> >> > If col_one does does not start out as a null value, then everything >> > works. Why does the passing from temp table back to NEW lose the USING >> > functionality? >> >> > -- >> > Sent via pgsql-general mailing list (pgsql-gene...@xxxxxxxxxxxxxx) >> > To make changes to your subscription: >> >http://www.postgresql.org/mailpref/pgsql-general- Hide quoted text - >> >> - Show quoted text - > > Thanks Dmitriy, > > Im guessing that hstore(record) is not compatible with 8.4.4? I get an > error "cannot cast type record to hstore". nope...9.0. your temp table approach is pretty horrible though -- i'd consider testing 9.0 (likely out in couple weeks) asap, or consider another pl. the hstore approach is better though... merlin -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general