Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit336b2a7

Browse files
committed
get rid of extract_column_names_cxt
1 parent566b8f5 commit336b2a7

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
Oidpartition_relid;
103103
Constraint*check_constr;
104-
Node*part_expr;
105104
init_callback_paramscallback_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
Oidpartition_relid,
161161
expr_type;
162162
Constraint*check_constr;
163-
Node*expr;
164163
init_callback_paramscallback_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
constBound*end_value,
12141214
Oidvalue_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-
returnhash_constr;
1229+
returnrange_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
returnDatumGetObjectId(result);
16811680
}
16821681

1683-
typedefstruct
1684-
{
1685-
List*columns;
1686-
}extract_column_names_cxt;
1687-
16881682
/* Extract column names from raw expression */
16891683
staticbool
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-
returnraw_expression_tree_walker(node,extract_column_names,cxt);
1698+
returnraw_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_cxtcontext= {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
returnexpr;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp