Обсуждение: UPDATE ... SET = DEFAULT

Поиск
Список
Период
Сортировка

UPDATE ... SET = DEFAULT

От
Rod Taylor
Дата:
Modify rewriteTargetList() to deal with a SetToDefault node
InsertDefault renamed.

Teach updateTargetListEntry() to use the columns type rather than
calling exprType for it, since SetToDefault does not have a type but is
stored in (TargetEntry *)->expr

Remove special case in insert code.  Let the default request flow
through the same as the update case.


On Thu, 2003-06-05 at 16:45, Tom Lane wrote:
> Rod Taylor <rbt@rbt.ca> writes:
> > It would seem a new primnode (change InsertDef into SetDefault or
> > similar) will be required with some executor logic.
>
> It is not the executor's business to know about defaults.  The rewriter
> is the place where defaults get inserted - see rewriteTargetList().
>
> Note that default NULL will have to be treated a little differently from
> what we do for INSERT, since the, um, default behavior of UPDATE is to
> preserve columns rather than replace 'em with nulls.
>
>             regards, tom lane

--
Rod Taylor <rbt@rbt.ca>

PGP Key: http://www.rbt.ca/rbtpub.asc

Вложения

Re: UPDATE ... SET = DEFAULT

От
Bruce Momjian
Дата:
Your patch has been added to the PostgreSQL unapplied patches list at:

    http://momjian.postgresql.org/cgi-bin/pgpatches

I will try to apply it within the next 48 hours.

---------------------------------------------------------------------------


Rod Taylor wrote:
-- Start of PGP signed section.
> Modify rewriteTargetList() to deal with a SetToDefault node
> InsertDefault renamed.
>
> Teach updateTargetListEntry() to use the columns type rather than
> calling exprType for it, since SetToDefault does not have a type but is
> stored in (TargetEntry *)->expr
>
> Remove special case in insert code.  Let the default request flow
> through the same as the update case.
>
>
> On Thu, 2003-06-05 at 16:45, Tom Lane wrote:
> > Rod Taylor <rbt@rbt.ca> writes:
> > > It would seem a new primnode (change InsertDef into SetDefault or
> > > similar) will be required with some executor logic.
> >
> > It is not the executor's business to know about defaults.  The rewriter
> > is the place where defaults get inserted - see rewriteTargetList().
> >
> > Note that default NULL will have to be treated a little differently from
> > what we do for INSERT, since the, um, default behavior of UPDATE is to
> > preserve columns rather than replace 'em with nulls.
> >
> >             regards, tom lane
>
> --
> Rod Taylor <rbt@rbt.ca>
>
> PGP Key: http://www.rbt.ca/rbtpub.asc

[ Attachment, skipping... ]
-- End of PGP section, PGP failed!

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: UPDATE ... SET = DEFAULT

От
Bruce Momjian
Дата:
Patch applied.  Thanks.

---------------------------------------------------------------------------


Rod Taylor wrote:
-- Start of PGP signed section.
> Modify rewriteTargetList() to deal with a SetToDefault node
> InsertDefault renamed.
>
> Teach updateTargetListEntry() to use the columns type rather than
> calling exprType for it, since SetToDefault does not have a type but is
> stored in (TargetEntry *)->expr
>
> Remove special case in insert code.  Let the default request flow
> through the same as the update case.
>
>
> On Thu, 2003-06-05 at 16:45, Tom Lane wrote:
> > Rod Taylor <rbt@rbt.ca> writes:
> > > It would seem a new primnode (change InsertDef into SetDefault or
> > > similar) will be required with some executor logic.
> >
> > It is not the executor's business to know about defaults.  The rewriter
> > is the place where defaults get inserted - see rewriteTargetList().
> >
> > Note that default NULL will have to be treated a little differently from
> > what we do for INSERT, since the, um, default behavior of UPDATE is to
> > preserve columns rather than replace 'em with nulls.
> >
> >             regards, tom lane
>
> --
> Rod Taylor <rbt@rbt.ca>
>
> PGP Key: http://www.rbt.ca/rbtpub.asc

[ Attachment, skipping... ]
-- End of PGP section, PGP failed!

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073