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)
{
Param *equalityParameter = makeNode(Param);
Node *uninstantiatedEqualityQual = NULL;
OpExpr *uninstantiatedEqualityQual = NULL;
Oid partitionColumnCollid = InvalidOid;
Oid lessThanOperator = InvalidOid;
Oid equalsOperator = InvalidOid;
@ -851,22 +851,27 @@ AddUninstantiatedEqualityQual(Query *query, Var *partitionColumn)
equalityParameter->location = -1;
/* create an equality on the on the target partition column */
uninstantiatedEqualityQual =
(Node *) make_opclause(equalsOperator, InvalidOid, false,
uninstantiatedEqualityQual = (OpExpr *) make_opclause(equalsOperator, InvalidOid,
false,
(Expr *) partitionColumn,
(Expr *) equalityParameter,
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 */
if (query->jointree->quals == NULL)
{
query->jointree->quals = uninstantiatedEqualityQual;
query->jointree->quals = (Node *) uninstantiatedEqualityQual;
}
else
{
query->jointree->quals = make_and_qual(query->jointree->quals,
uninstantiatedEqualityQual);
(Node *) uninstantiatedEqualityQual);
}
}