Skip to content

Commit 336b2a7

Browse files
committed
get rid of extract_column_names_cxt
1 parent 566b8f5 commit 336b2a7

File tree

1 file changed

+19
-25
lines changed

1 file changed

+19
-25
lines changed

src/partition_creation.c

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ create_single_range_partition_internal(Oid parent_relid,
101101
{
102102
Oid partition_relid;
103103
Constraint *check_constr;
104-
Node *part_expr;
105104
init_callback_params callback_params;
106-
List *trigger_columns;
105+
List *trigger_columns = NIL;
106+
Node *expr;
107107

108108
/* Generate a name if asked to */
109109
if (!partition_rv)
@@ -118,7 +118,7 @@ create_single_range_partition_internal(Oid parent_relid,
118118
}
119119

120120
/* Check pathman config anld fill variables */
121-
part_expr = build_partitioning_expression(parent_relid, NULL, &trigger_columns);
121+
expr = build_partitioning_expression(parent_relid, NULL, &trigger_columns);
122122

123123
/* Create a partition & get 'partitioning expression' */
124124
partition_relid = create_single_partition_internal(parent_relid,
@@ -127,7 +127,7 @@ create_single_range_partition_internal(Oid parent_relid,
127127

128128
/* Build check constraint for RANGE partition */
129129
check_constr = build_range_check_constraint(partition_relid,
130-
part_expr,
130+
expr,
131131
start_value,
132132
end_value,
133133
value_type);
@@ -160,9 +160,9 @@ create_single_hash_partition_internal(Oid parent_relid,
160160
Oid partition_relid,
161161
expr_type;
162162
Constraint *check_constr;
163-
Node *expr;
164163
init_callback_params callback_params;
165-
List *trigger_columns;
164+
List *trigger_columns = NIL;
165+
Node *expr;
166166

167167
/* Generate a name if asked to */
168168
if (!partition_rv)
@@ -1213,20 +1213,20 @@ build_range_check_constraint(Oid child_relid,
12131213
const Bound *end_value,
12141214
Oid value_type)
12151215
{
1216-
Constraint *hash_constr;
1216+
Constraint *range_constr;
12171217
char *range_constr_name;
12181218

12191219
/* Build a correct name for this constraint */
12201220
range_constr_name = build_check_constraint_name_relid_internal(child_relid);
12211221

12221222
/* Initialize basic properties of a CHECK constraint */
1223-
hash_constr = make_constraint_common(range_constr_name,
1224-
build_raw_range_check_tree(raw_expression,
1225-
start_value,
1226-
end_value,
1227-
value_type));
1223+
range_constr = make_constraint_common(range_constr_name,
1224+
build_raw_range_check_tree(raw_expression,
1225+
start_value,
1226+
end_value,
1227+
value_type));
12281228
/* Everything seems to be fine */
1229-
return hash_constr;
1229+
return range_constr;
12301230
}
12311231

12321232
/* Check if range overlaps with any partitions */
@@ -1300,7 +1300,6 @@ build_raw_hash_check_tree(Node *raw_expression,
13001300
A_Expr *eq_oper = makeNode(A_Expr);
13011301
FuncCall *part_idx_call = makeNode(FuncCall),
13021302
*hash_call = makeNode(FuncCall);
1303-
//ColumnRef *hashed_column = makeNode(ColumnRef);
13041303
A_Const *part_idx_c = makeNode(A_Const),
13051304
*part_count_c = makeNode(A_Const);
13061305

@@ -1680,14 +1679,9 @@ text_to_regprocedure(text *proc_signature)
16801679
return DatumGetObjectId(result);
16811680
}
16821681

1683-
typedef struct
1684-
{
1685-
List *columns;
1686-
} extract_column_names_cxt;
1687-
16881682
/* Extract column names from raw expression */
16891683
static bool
1690-
extract_column_names(Node *node, extract_column_names_cxt *cxt)
1684+
extract_column_names(Node *node, List **columns)
16911685
{
16921686
if (node == NULL)
16931687
return false;
@@ -1698,10 +1692,10 @@ extract_column_names(Node *node, extract_column_names_cxt *cxt)
16981692

16991693
foreach(lc, ((ColumnRef *) node)->fields)
17001694
if (IsA(lfirst(lc), String))
1701-
cxt->columns = lappend(cxt->columns, lfirst(lc));
1695+
*columns = lappend(*columns, lfirst(lc));
17021696
}
17031697

1704-
return raw_expression_tree_walker(node, extract_column_names, cxt);
1698+
return raw_expression_tree_walker(node, extract_column_names, columns);
17051699
}
17061700

17071701
/* Returns raw partitioning expression + expr_type + columns */
@@ -1732,9 +1726,9 @@ build_partitioning_expression(Oid parent_relid,
17321726

17331727
if (columns)
17341728
{
1735-
extract_column_names_cxt context = { NIL };
1736-
extract_column_names(expr, &context);
1737-
*columns = context.columns;
1729+
/* Column list should be empty */
1730+
Assert(*columns == NIL);
1731+
extract_column_names(expr, columns);
17381732
}
17391733

17401734
return expr;

0 commit comments

Comments
 (0)