diff --git a/src/backend/catalog/partition.c b/src/backend/catalog/partition.c index e01ef86..9706733 100644 --- a/src/backend/catalog/partition.c +++ b/src/backend/catalog/partition.c @@ -1155,7 +1155,7 @@ get_qual_for_list(PartitionKey key, PartitionBoundSpec *spec) ListCell *cell, *prev, *next; - Node *keyCol; + Expr *keyCol; Oid operoid; bool need_relabel, list_has_null = false; @@ -1164,14 +1164,14 @@ get_qual_for_list(PartitionKey key, PartitionBoundSpec *spec) /* Left operand is either a simple Var or arbitrary expression */ if (key->partattrs[0] != 0) - keyCol = (Node *) makeVar(1, + keyCol = (Expr *) makeVar(1, key->partattrs[0], key->parttypid[0], key->parttypmod[0], key->parttypcoll[0], 0); else - keyCol = (Node *) copyObject(linitial(key->partexprs)); + keyCol = (Expr *) copyObject(linitial(key->partexprs)); /* * We must remove any NULL value in the list; we handle it separately @@ -1201,7 +1201,7 @@ get_qual_for_list(PartitionKey key, PartitionBoundSpec *spec) * expressions */ nulltest1 = makeNode(NullTest); - nulltest1->arg = (Expr *) keyCol; + nulltest1->arg = keyCol; nulltest1->nulltesttype = IS_NOT_NULL; nulltest1->argisrow = false; nulltest1->location = -1; @@ -1212,7 +1212,7 @@ get_qual_for_list(PartitionKey key, PartitionBoundSpec *spec) * Gin up a col IS NULL test that will be OR'd with other expressions */ nulltest2 = makeNode(NullTest); - nulltest2->arg = (Expr *) keyCol; + nulltest2->arg = keyCol; nulltest2->nulltesttype = IS_NULL; nulltest2->argisrow = false; nulltest2->location = -1; @@ -1233,7 +1233,7 @@ get_qual_for_list(PartitionKey key, PartitionBoundSpec *spec) operoid = get_partition_operator(key, 0, BTEqualStrategyNumber, &need_relabel); if (need_relabel || key->partcollation[0] != key->parttypcoll[0]) - keyCol = (Node *) makeRelabelType((Expr *) keyCol, + keyCol = (Expr *) makeRelabelType((Expr *) keyCol, key->partopcintype[0], -1, key->partcollation[0], @@ -1287,7 +1287,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) { PartitionRangeDatum *ldatum = lfirst(cell1), *udatum = lfirst(cell2); - Node *keyCol; + Expr *keyCol; Const *lower_val = NULL, *upper_val = NULL; EState *estate; @@ -1303,7 +1303,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) /* Left operand */ if (key->partattrs[i] != 0) { - keyCol = (Node *) makeVar(1, + keyCol = (Expr *) makeVar(1, key->partattrs[i], key->parttypid[i], key->parttypmod[i], @@ -1312,7 +1312,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) } else { - keyCol = (Node *) copyObject(lfirst(partexprs_item)); + keyCol = copyObject(lfirst(partexprs_item)); partexprs_item = lnext(partexprs_item); } @@ -1325,7 +1325,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) if (!IsA(keyCol, Var)) { nulltest = makeNode(NullTest); - nulltest->arg = (Expr *) keyCol; + nulltest->arg = keyCol; nulltest->nulltesttype = IS_NOT_NULL; nulltest->argisrow = false; nulltest->location = -1; @@ -1380,7 +1380,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) elog(ERROR, "invalid range bound specification"); if (need_relabel || key->partcollation[i] != key->parttypcoll[i]) - keyCol = (Node *) makeRelabelType((Expr *) keyCol, + keyCol = (Expr *) makeRelabelType(keyCol, key->partopcintype[i], -1, key->partcollation[i], @@ -1389,7 +1389,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) make_opclause(operoid, BOOLOID, false, - (Expr *) keyCol, + keyCol, (Expr *) lower_val, InvalidOid, key->partcollation[i])); @@ -1411,7 +1411,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) &need_relabel); if (need_relabel || key->partcollation[i] != key->parttypcoll[i]) - keyCol = (Node *) makeRelabelType((Expr *) keyCol, + keyCol = (Expr *) makeRelabelType(keyCol, key->partopcintype[i], -1, key->partcollation[i], @@ -1420,7 +1420,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) make_opclause(operoid, BOOLOID, false, - (Expr *) keyCol, + keyCol, (Expr *) lower_val, InvalidOid, key->partcollation[i])); @@ -1433,7 +1433,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) &need_relabel); if (need_relabel || key->partcollation[i] != key->parttypcoll[i]) - keyCol = (Node *) makeRelabelType((Expr *) keyCol, + keyCol = (Expr *) makeRelabelType(keyCol, key->partopcintype[i], -1, key->partcollation[i], @@ -1443,7 +1443,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) make_opclause(operoid, BOOLOID, false, - (Expr *) keyCol, + keyCol, (Expr *) upper_val, InvalidOid, key->partcollation[i]));