Index: src/backend/access/transam/xact.c =================================================================== RCS file: /usr/local/cvsroot/pgsql-server/src/backend/access/transam/xact.c,v retrieving revision 1.176 diff -2 -c -r1.176 xact.c *** src/backend/access/transam/xact.c 1 Aug 2004 20:57:59 -0000 1.176 --- src/backend/access/transam/xact.c 3 Aug 2004 11:08:02 -0000 *************** *** 2523,2532 **** target = CurrentTransactionState; - while (target != NULL) - { - if (PointerIsValid(target->name) && strcmp(target->name, name) == 0) - break; - target = target->parent; /* we don't cross savepoint level boundaries */ if (target->savepointLevel != s->savepointLevel) --- 2523,2529 ---- target = CurrentTransactionState; + while(PointerIsValid(target)) + { /* we don't cross savepoint level boundaries */ if (target->savepointLevel != s->savepointLevel) *************** *** 2534,2539 **** (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), errmsg("no such savepoint"))); - } if (!PointerIsValid(target)) ereport(ERROR, --- 2531,2539 ---- (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), errmsg("no such savepoint"))); + if (PointerIsValid(target->name) && strcmp(target->name, name) == 0) + break; + target = target->parent; + } if (!PointerIsValid(target)) ereport(ERROR,