Fix bug on composite key tests

pull/896/head
Onder Kalaci 2016-10-24 13:35:42 +03:00
parent 6f4f2105b8
commit 6bdbaf78f4
1 changed files with 14 additions and 9 deletions

View File

@ -826,7 +826,7 @@ static void
AddUninstantiatedEqualityQual(Query *query, Var *partitionColumn) AddUninstantiatedEqualityQual(Query *query, Var *partitionColumn)
{ {
Param *equalityParameter = makeNode(Param); Param *equalityParameter = makeNode(Param);
Node *uninstantiatedEqualityQual = NULL; OpExpr *uninstantiatedEqualityQual = NULL;
Oid partitionColumnCollid = InvalidOid; Oid partitionColumnCollid = InvalidOid;
Oid lessThanOperator = InvalidOid; Oid lessThanOperator = InvalidOid;
Oid equalsOperator = InvalidOid; Oid equalsOperator = InvalidOid;
@ -851,22 +851,27 @@ AddUninstantiatedEqualityQual(Query *query, Var *partitionColumn)
equalityParameter->location = -1; equalityParameter->location = -1;
/* create an equality on the on the target partition column */ /* create an equality on the on the target partition column */
uninstantiatedEqualityQual = uninstantiatedEqualityQual = (OpExpr *) make_opclause(equalsOperator, InvalidOid,
(Node *) make_opclause(equalsOperator, InvalidOid, false, false,
(Expr *) partitionColumn, (Expr *) partitionColumn,
(Expr *) equalityParameter, (Expr *) equalityParameter,
partitionColumnCollid, partitionColumnCollid,
partitionColumnCollid); partitionColumnCollid);
/* update the operators with correct operator numbers and function ids */
uninstantiatedEqualityQual->opfuncid = get_opcode(uninstantiatedEqualityQual->opno);
uninstantiatedEqualityQual->opresulttype =
get_func_rettype(uninstantiatedEqualityQual->opfuncid);
/* add restriction on partition column */ /* add restriction on partition column */
if (query->jointree->quals == NULL) if (query->jointree->quals == NULL)
{ {
query->jointree->quals = uninstantiatedEqualityQual; query->jointree->quals = (Node *) uninstantiatedEqualityQual;
} }
else else
{ {
query->jointree->quals = make_and_qual(query->jointree->quals, query->jointree->quals = make_and_qual(query->jointree->quals,
uninstantiatedEqualityQual); (Node *) uninstantiatedEqualityQual);
} }
} }