pgsql: Create hooks to let a loadable plugin monitor (or even replace)

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Create hooks to let a loadable plugin monitor (or even replace)
Date: 2007-05-25 17:54:25
Message-ID: 20070525175425.C1EE49FBCC8@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Log Message:
-----------
Create hooks to let a loadable plugin monitor (or even replace) the planner
and/or create plans for hypothetical situations; in particular, investigate
plans that would be generated using hypothetical indexes. This is a
heavily-rewritten version of the hooks proposed by Gurjeet Singh for his
Index Advisor project. In this formulation, the index advisor can be
entirely a loadable module instead of requiring a significant part to be
in the core backend, and plans can be generated for hypothetical indexes
without requiring the creation and rolling-back of system catalog entries.

The index advisor patch as-submitted is not compatible with these hooks,
but it needs significant work anyway due to other 8.2-to-8.3 planner
changes. With these hooks in the core backend, development of the advisor
can proceed as a pgfoundry project.

Modified Files:
--------------
pgsql/src/backend/commands:
explain.c (r1.163 -> r1.164)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/explain.c.diff?r1=1.163&r2=1.164)
prepare.c (r1.75 -> r1.76)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/prepare.c.diff?r1=1.75&r2=1.76)
pgsql/src/backend/executor:
nodeBitmapIndexscan.c (r1.22 -> r1.23)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeBitmapIndexscan.c.diff?r1=1.22&r2=1.23)
nodeIndexscan.c (r1.121 -> r1.122)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeIndexscan.c.diff?r1=1.121&r2=1.122)
pgsql/src/backend/optimizer/plan:
planner.c (r1.219 -> r1.220)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planner.c.diff?r1=1.219&r2=1.220)
pgsql/src/backend/optimizer/util:
plancat.c (r1.134 -> r1.135)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/plancat.c.diff?r1=1.134&r2=1.135)
pgsql/src/include/commands:
explain.h (r1.30 -> r1.31)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/commands/explain.h.diff?r1=1.30&r2=1.31)
pgsql/src/include/optimizer:
plancat.h (r1.43 -> r1.44)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/plancat.h.diff?r1=1.43&r2=1.44)
planner.h (r1.39 -> r1.40)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/planner.h.diff?r1=1.39&r2=1.40)

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message James William Pye 2007-05-26 17:54:21 python - be: Only pfree when recoding occurs.
Previous Message User Eggyknap 2007-05-25 04:41:22 pgsnmpd - pgsnmpd: Update TODO

Browse pgsql-hackers by date

  From Date Subject
Next Message Jaime Casanova 2007-05-25 19:02:50 Re: Reviewing temp_tablespaces GUC patch
Previous Message Jaime Casanova 2007-05-25 16:39:03 Re: Reviewing temp_tablespaces GUC patch