diff options
| author | Tom Lane | 2000-08-13 02:50:35 +0000 |
|---|---|---|
| committer | Tom Lane | 2000-08-13 02:50:35 +0000 |
| commit | 37168b8da43d9a6f7471cf757119ece6c96fb2b9 (patch) | |
| tree | ce7059e77ac05a045f9de7c6272c7e1c8210d96a /src/include/utils | |
| parent | 766fb7f707f9527be219353f5f970aab3d786554 (diff) | |
Clean up handling of variable-free qual clauses. System now does the
right thing with variable-free clauses that contain noncachable functions,
such as 'WHERE random() < 0.5' --- these are evaluated once per
potential output tuple. Expressions that contain only Params are
now candidates to be indexscan quals --- for example, 'var = ($1 + 1)'
can now be indexed. Cope with RelabelType nodes atop potential indexscan
variables --- this oversight prevents 7.0.* from recognizing some
potentially indexscanable situations.
Diffstat (limited to 'src/include/utils')
| -rw-r--r-- | src/include/utils/lsyscache.h | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/include/utils/lsyscache.h b/src/include/utils/lsyscache.h index 5c6c09ccbc3..9c105576ae2 100644 --- a/src/include/utils/lsyscache.h +++ b/src/include/utils/lsyscache.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: lsyscache.h,v 1.24 2000/06/08 22:37:58 momjian Exp $ + * $Id: lsyscache.h,v 1.25 2000/08/13 02:50:31 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ #include "access/htup.h" -extern bool op_class(Oid opid, Oid opclass, Oid amopid); +extern bool op_class(Oid opno, Oid opclass, Oid amopid); extern char *get_attname(Oid relid, AttrNumber attnum); extern AttrNumber get_attnum(Oid relid, char *attname); extern Oid get_atttype(Oid relid, AttrNumber attnum); @@ -23,21 +23,20 @@ extern bool get_attisset(Oid relid, char *attname); extern int32 get_atttypmod(Oid relid, AttrNumber attnum); extern double get_attdisbursion(Oid relid, AttrNumber attnum, double min_estimate); -extern RegProcedure get_opcode(Oid opid); -extern char *get_opname(Oid opid); -extern bool op_mergejoinable(Oid opid, Oid ltype, Oid rtype, +extern RegProcedure get_opcode(Oid opno); +extern char *get_opname(Oid opno); +extern bool op_mergejoinable(Oid opno, Oid ltype, Oid rtype, Oid *leftOp, Oid *rightOp); -extern Oid op_hashjoinable(Oid opid, Oid ltype, Oid rtype); -extern Oid get_commutator(Oid opid); +extern Oid op_hashjoinable(Oid opno, Oid ltype, Oid rtype); +extern bool op_iscachable(Oid opno); extern HeapTuple get_operator_tuple(Oid opno); -extern Oid get_negator(Oid opid); -extern RegProcedure get_oprrest(Oid opid); -extern RegProcedure get_oprjoin(Oid opid); +extern Oid get_commutator(Oid opno); +extern Oid get_negator(Oid opno); +extern RegProcedure get_oprrest(Oid opno); +extern RegProcedure get_oprjoin(Oid opno); extern Oid get_func_rettype(Oid funcid); +extern bool func_iscachable(Oid funcid); extern char *get_rel_name(Oid relid); -extern struct varlena *get_relstub(Oid relid, int no, bool *islast); -extern Oid get_ruleid(char *rulename); -extern Oid get_eventrelid(Oid ruleid); extern int16 get_typlen(Oid typid); extern bool get_typbyval(Oid typid); extern Datum get_typdefault(Oid typid); |
