mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
Planner failed to be smart about binary-compatible expressions in pathkeys
and hash bucket-size estimation. Issue has been there awhile but is more critical in 7.4 because it affects varchar columns. Per report from Greg Stark.
This commit is contained in:
25
src/backend/utils/cache/lsyscache.c
vendored
25
src/backend/utils/cache/lsyscache.c
vendored
@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.111 2003/11/29 19:52:00 pgsql Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.112 2003/12/03 17:45:09 tgl Exp $
|
||||
*
|
||||
* NOTES
|
||||
* Eventually, the index information should go through here, too.
|
||||
@ -465,6 +465,29 @@ get_opname(Oid opno)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* op_input_types
|
||||
*
|
||||
* Returns the left and right input datatypes for an operator
|
||||
* (InvalidOid if not relevant).
|
||||
*/
|
||||
void
|
||||
op_input_types(Oid opno, Oid *lefttype, Oid *righttype)
|
||||
{
|
||||
HeapTuple tp;
|
||||
Form_pg_operator optup;
|
||||
|
||||
tp = SearchSysCache(OPEROID,
|
||||
ObjectIdGetDatum(opno),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(tp)) /* shouldn't happen */
|
||||
elog(ERROR, "cache lookup failed for operator %u", opno);
|
||||
optup = (Form_pg_operator) GETSTRUCT(tp);
|
||||
*lefttype = optup->oprleft;
|
||||
*righttype = optup->oprright;
|
||||
ReleaseSysCache(tp);
|
||||
}
|
||||
|
||||
/*
|
||||
* op_mergejoinable
|
||||
*
|
||||
|
Reference in New Issue
Block a user