Bugfix for rule system

Поиск
Список
Период
Сортировка
От jwieck@debis.com (Jan Wieck)
Тема Bugfix for rule system
Дата
Msg-id m0zVfAo-000EBPC@orion.SAPserv.Hamburg.dsh.de
обсуждение исходный текст
Ответы Re: [HACKERS] Bugfix for rule system
Список pgsql-hackers
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@debis.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;
              }

В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Matthew N. Dodd"
Дата:
Сообщение: Re: [HACKERS] Re: inet/cidr/bind
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [HACKERS] Re: inet/cidr/bind