Re: [HACKERS] Bugfix for rule system

From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: jwieck(at)debis(dot)com
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] Bugfix for rule system
Date: 1998-10-20 17:22:30
Message-ID: 199810201722.NAA08458@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Applied. CVS is working for me.

> Hi,
>
> while writing some documentation for the rule system I found
> this little bug. Causes crashing backend.
>
> Please apply.
>
>
> Jan
>
> --
>
> #======================================================================#
> # It's easier to get forgiveness for being wrong than for being right. #
> # Let's break this rule - forgive me. #
> #======================================== jwieck(at)debis(dot)com (Jan Wieck) #
>
>
> diff -cr rewrite.orig/rewriteHandler.c rewrite/rewriteHandler.c
> *** rewrite.orig/rewriteHandler.c Tue Oct 20 18:59:24 1998
> --- rewrite/rewriteHandler.c Tue Oct 20 18:55:19 1998
> ***************
> *** 1789,1799 ****
> return;
> }
>
> if (var->varlevelsup > 0 &&
> nodeTag(exp) == T_Var) {
> - exp = copyObject(exp);
> ((Var *)exp)->varlevelsup = var->varlevelsup;
> ! }
> *nodePtr = exp;
> *modified = TRUE;
> }
> --- 1789,1799 ----
> return;
> }
>
> + exp = copyObject(exp);
> if (var->varlevelsup > 0 &&
> nodeTag(exp) == T_Var) {
> ((Var *)exp)->varlevelsup = var->varlevelsup;
> ! }
> *nodePtr = exp;
> *modified = TRUE;
> }
> diff -cr rewrite.orig/rewriteManip.c rewrite/rewriteManip.c
> *** rewrite.orig/rewriteManip.c Tue Oct 20 18:59:24 1998
> --- rewrite/rewriteManip.c Tue Oct 20 18:58:18 1998
> ***************
> *** 418,431 ****
> {
> if (info->event == CMD_UPDATE)
> {
> ! ((Var *) node)->varno = info->current_varno;
> ! ((Var *) node)->varnoold = info->current_varno;
> }
> else
> *nodePtr = make_null(((Var *) node)->vartype);
> }
> else
> ! *nodePtr = n;
> }
> break;
> }
> --- 418,432 ----
> {
> if (info->event == CMD_UPDATE)
> {
> ! *nodePtr = n = copyObject(node);
> ! ((Var *) n)->varno = info->current_varno;
> ! ((Var *) n)->varnoold = info->current_varno;
> }
> else
> *nodePtr = make_null(((Var *) node)->vartype);
> }
> else
> ! *nodePtr = copyObject(n);
> }
> break;
> }
>
>

--
Bruce Momjian | http://www.op.net/~candle
maillist(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Jan Wieck 1998-10-20 17:22:40 Re: [HACKERS] What about LIMIT in SELECT ?
Previous Message Jan Wieck 1998-10-20 17:12:19 Re: [HACKERS] What about LIMIT in SELECT ?