1
0
mirror of https://github.com/postgres/postgres.git synced 2025-08-28 18:48:04 +03:00

Add missing optimizer hooks for function cost and number of rows.

Closely follow design of other optimizer hooks: if hook exists
retrieve value from plugin; if still not set then get from cache.
This commit is contained in:
Simon Riggs
2010-04-23 22:23:39 +00:00
parent 491d1ea5b3
commit 473af39737
2 changed files with 23 additions and 2 deletions

View File

@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $PostgreSQL: pgsql/src/include/utils/lsyscache.h,v 1.131 2010/01/04 02:44:40 tgl Exp $
* $PostgreSQL: pgsql/src/include/utils/lsyscache.h,v 1.132 2010/04/23 22:23:39 sriggs Exp $
*
*-------------------------------------------------------------------------
*/
@@ -30,6 +30,12 @@ typedef enum IOFuncSelector
typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);
extern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;
/* Hook for plugins to get control in get_func_cost and get_func_rows */
typedef float4 (*get_func_cost_hook_type) (Oid funcid);
extern PGDLLIMPORT get_func_cost_hook_type get_func_cost_hook;
typedef float4 (*get_func_rows_hook_type) (Oid funcid);
extern PGDLLIMPORT get_func_rows_hook_type get_func_rows_hook;
extern bool op_in_opfamily(Oid opno, Oid opfamily);
extern int get_op_opfamily_strategy(Oid opno, Oid opfamily);
extern void get_op_opfamily_properties(Oid opno, Oid opfamily,