From: Peter Eisentraut Date: Wed, 29 Mar 2017 01:55:58 +0000 (-0400) Subject: Improve Node vs Expr use a bit X-Git-Tag: REL_10_BETA1~456 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e0eb5e0aeac7643c10b550e8067182cd08fc59a3;p=postgresql Improve Node vs Expr use a bit Author: Mark Dilger --- diff --git a/src/backend/catalog/partition.c b/src/backend/catalog/partition.c index f9fd1366e2..ab891f6ef2 100644 --- a/src/backend/catalog/partition.c +++ b/src/backend/catalog/partition.c @@ -1159,7 +1159,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; @@ -1168,14 +1168,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 @@ -1205,7 +1205,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; @@ -1216,7 +1216,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; @@ -1237,7 +1237,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(keyCol, key->partopcintype[0], -1, key->partcollation[0], @@ -1291,7 +1291,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; @@ -1307,7 +1307,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], @@ -1316,7 +1316,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); } @@ -1329,7 +1329,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; @@ -1384,7 +1384,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], @@ -1393,7 +1393,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) make_opclause(operoid, BOOLOID, false, - (Expr *) keyCol, + keyCol, (Expr *) lower_val, InvalidOid, key->partcollation[i])); @@ -1415,7 +1415,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], @@ -1424,7 +1424,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) make_opclause(operoid, BOOLOID, false, - (Expr *) keyCol, + keyCol, (Expr *) lower_val, InvalidOid, key->partcollation[i])); @@ -1437,7 +1437,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], @@ -1447,7 +1447,7 @@ get_qual_for_range(PartitionKey key, PartitionBoundSpec *spec) make_opclause(operoid, BOOLOID, false, - (Expr *) keyCol, + keyCol, (Expr *) upper_val, InvalidOid, key->partcollation[i]));