mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
Add attribute optimization statistics.
This commit is contained in:
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.20 1997/01/22 01:42:54 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.21 1997/02/07 16:22:50 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -1486,7 +1486,7 @@ any_ordering_op(int restype)
|
||||
Operator order_op;
|
||||
Oid order_opid;
|
||||
|
||||
order_op = oper("<",restype,restype);
|
||||
order_op = oper("<",restype,restype,false);
|
||||
order_opid = oprid(order_op);
|
||||
|
||||
return order_opid;
|
||||
@ -1554,7 +1554,7 @@ transformSortClause(ParseState *pstate,
|
||||
sortcl->resdom = resdom = restarget->resdom;
|
||||
sortcl->opoid = oprid(oper(sortby->useOp,
|
||||
resdom->restype,
|
||||
resdom->restype));
|
||||
resdom->restype,false));
|
||||
if (sortlist == NIL) {
|
||||
s = sortlist = lcons(sortcl, NIL);
|
||||
}else {
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/catalog_utils.c,v 1.15 1997/01/22 01:43:08 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/catalog_utils.c,v 1.16 1997/02/07 16:23:08 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -473,7 +473,7 @@ binary_oper_select_candidate(Oid arg1,
|
||||
/* Given operator, types of arg1, and arg2, return oper struct */
|
||||
/* arg1, arg2 --typeids */
|
||||
Operator
|
||||
oper(char *op, Oid arg1, Oid arg2)
|
||||
oper(char *op, Oid arg1, Oid arg2, bool noWarnings)
|
||||
{
|
||||
HeapTuple tup;
|
||||
CandidateList candidates;
|
||||
@ -492,7 +492,8 @@ oper(char *op, Oid arg1, Oid arg2)
|
||||
/*
|
||||
* no operators of the desired types found
|
||||
*/
|
||||
op_error(op, arg1, arg2);
|
||||
if (!noWarnings)
|
||||
op_error(op, arg1, arg2);
|
||||
return(NULL);
|
||||
} else if (ncandidates == 1) {
|
||||
/*
|
||||
@ -523,11 +524,12 @@ oper(char *op, Oid arg1, Oid arg2)
|
||||
/* we chose none of them */
|
||||
tp1 = get_id_type(arg1);
|
||||
tp2 = get_id_type(arg2);
|
||||
elog(NOTICE, "there is more than one operator %s for types", op);
|
||||
elog(NOTICE, "%s and %s. You will have to retype this query",
|
||||
tname(tp1), tname(tp2));
|
||||
elog(WARN, "using an explicit cast");
|
||||
|
||||
if (!noWarnings) {
|
||||
elog(NOTICE, "there is more than one operator %s for types", op);
|
||||
elog(NOTICE, "%s and %s. You will have to retype this query",
|
||||
tname(tp1), tname(tp2));
|
||||
elog(WARN, "using an explicit cast");
|
||||
}
|
||||
return(NULL);
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/parse_query.c,v 1.12 1997/01/22 01:43:19 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/parse_query.c,v 1.13 1997/02/07 16:23:21 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -352,7 +352,7 @@ make_op(char *opname, Node *ltree, Node *rtree)
|
||||
|
||||
/* right operator */
|
||||
ltypeId = (ltree==NULL) ? UNKNOWNOID : exprType(ltree);
|
||||
temp = right_oper(opname, ltypeId);
|
||||
temp = oper(opname, ltypeId, rtypeId, false);
|
||||
opform = (OperatorTupleForm) GETSTRUCT(temp);
|
||||
left = make_operand(opname, ltree, ltypeId, opform->oprleft);
|
||||
right = NULL;
|
||||
@ -411,7 +411,7 @@ make_op(char *opname, Node *ltree, Node *rtree)
|
||||
((Const *)ltree)->constbyval = tbyval(newtype);
|
||||
}
|
||||
|
||||
temp = oper(opname, ltypeId, rtypeId);
|
||||
temp = oper(opname, ltypeId, rtypeId, false);
|
||||
opform = (OperatorTupleForm) GETSTRUCT(temp);
|
||||
left = make_operand(opname, ltree, ltypeId, opform->oprleft);
|
||||
right = make_operand(opname, rtree, rtypeId, opform->oprright);
|
||||
|
Reference in New Issue
Block a user