Good idea but you're right, if the default value is an expression such as a the next serial value, it will need to be executed first. If Execute doesn't return the interpreted value, I don't know of a way to make it work..
On Tue, Aug 9, 2011 at 5:35 PM, Diego Augusto Molina < diegoaugustomol...@gmail.com> wrote: > This is a bit hacky, but it may work (I haven't tried it yet). If it > works let us know and if it doesn't then maybe we can debug it and get > something useful, or move on to another solution. > > <code> > INSERT INTO public.test > ( > userid, object_id, user_notes, object_status, created_ts > ) > VALUES > ( > p_userid, p_obj_id, p_user_notes, p_obj_status, > Case When p_created_ts Is Not Null Then p_created_ts Else > ( -- You may want to be sure the field has a default value. > SELECT d.adsrc -- or should it be d.adbin? > FROM > pg_catalog.pg_attribute a INNER JOIN > pg_catalog.pg_attrdef d ON (a.attnum = > d.adnum) > WHERE > a.attname = 'created_ts' AND > a.attrelid = 'public.test'::REGCLASS AND > d.adrelid = 'public.test'::REGCLASS > ) End > ); > </code> > > Well (thinking it thoroughly) it won't work at all as is. It will just > put the source code of the default expression but you would need to > *interpret* it first. > Looked for a way to do this (without `EXECUTE') but couldn't find it. > Sorry. > > -- > Diego Augusto Molina > diegoaugustomol...@gmail.com > > ES: Por favor, evite adjuntar documentos de Microsoft Office. SerĂ¡n > desestimados. > EN: Please, avoid attaching Microsoft Office documents. They shall be > discarded. > LINK: http://www.gnu.org/philosophy/no-word-attachments.html >