Thread: bizgres - bizgres: Fix cursors decleared WITH HOLD.

bizgres - bizgres: Fix cursors decleared WITH HOLD.

From
markir@pgfoundry.org (User Markir)
Date:
Log Message:
-----------
Fix cursors decleared WITH HOLD. This uncovered some unnoticed bugs created
by previous changes that move where ResLockPortal was being called from. In
this change we:

- Move location of ResUnLockPortal from PortalRun to PortalDrop,
  this vastly simplifies most abort and commit handling to the
  point where it done mostly from free by the resource owner and
  portal managemebnt code.

- Eliminiate ResProcReleaseLocks, ResProcReleaseCurrentOwner and
  the complex ResLockReleaseAll in favour of a much simpler
  function AtExitCleanup_ResPortals that scans existant portals
  and calles ResUnLockPortal if appropriate.

- Add a global variable to count holdable portals and reset
  the portalId when appropriate, so we don't run out of available
  Ids.

Modified Files:
--------------
    bizgres/postgresql/src/backend/commands:
        portalcmds.c (r1.5 -> r1.6)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/bizgres/bizgres/postgresql/src/backend/commands/portalcmds.c.diff?r1=1.5&r2=1.6)
    bizgres/postgresql/src/backend/tcop:
        pquery.c (r1.5 -> r1.6)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/bizgres/bizgres/postgresql/src/backend/tcop/pquery.c.diff?r1=1.5&r2=1.6)
    bizgres/postgresql/src/backend/utils/init:
        postinit.c (r1.4 -> r1.5)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/bizgres/bizgres/postgresql/src/backend/utils/init/postinit.c.diff?r1=1.4&r2=1.5)
    bizgres/postgresql/src/backend/utils/mmgr:
        portalmem.c (r1.5 -> r1.6)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/bizgres/bizgres/postgresql/src/backend/utils/mmgr/portalmem.c.diff?r1=1.5&r2=1.6)
    bizgres/postgresql/src/backend/utils/resowner:
        resowner.c (r1.5 -> r1.6)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/bizgres/bizgres/postgresql/src/backend/utils/resowner/resowner.c.diff?r1=1.5&r2=1.6)
    bizgres/postgresql/src/backend/utils/resscheduler:
        resqueue.c (r1.13 -> r1.14)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/bizgres/bizgres/postgresql/src/backend/utils/resscheduler/resqueue.c.diff?r1=1.13&r2=1.14)
        resscheduler.c (r1.13 -> r1.14)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/bizgres/bizgres/postgresql/src/backend/utils/resscheduler/resscheduler.c.diff?r1=1.13&r2=1.14)
    bizgres/postgresql/src/include/utils:
        portal.h (r1.5 -> r1.6)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/bizgres/bizgres/postgresql/src/include/utils/portal.h.diff?r1=1.5&r2=1.6)
        resscheduler.h (r1.11 -> r1.12)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/bizgres/bizgres/postgresql/src/include/utils/resscheduler.h.diff?r1=1.11&r2=1.12)