You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by hu...@apache.org on 2016/03/18 05:38:31 UTC
incubator-hawq git commit: HAWQ-532. Optimise vseg number for copy to
statement.
Repository: incubator-hawq
Updated Branches:
refs/heads/master b3a352186 -> 36571bce2
HAWQ-532. Optimise vseg number for copy to statement.
Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/36571bce
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/36571bce
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/36571bce
Branch: refs/heads/master
Commit: 36571bce2c96fce04ceb94f9ab78ace4cc90c66d
Parents: b3a3521
Author: hzhang2 <zh...@163.com>
Authored: Fri Mar 18 12:36:39 2016 +0800
Committer: hzhang2 <zh...@163.com>
Committed: Fri Mar 18 12:36:39 2016 +0800
----------------------------------------------------------------------
src/backend/commands/copy.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/36571bce/src/backend/commands/copy.c
----------------------------------------------------------------------
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 2f4cf39..e37fb83 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -1888,11 +1888,12 @@ DoCopyTo(CopyState cstate)
*/
PartitionNode *pn = get_parts(cstate->rel->rd_id, 0 /*level*/ ,
0 /*parent*/, false /* inctemplate */, CurrentMemoryContext, true /*includesubparts*/);
- Assert(pn);
List *lFullRelOids = NIL;
- lFullRelOids = all_leaf_partition_relids(pn);
- lFullRelOids = lappend_oid(lFullRelOids, cstate->rel->rd_id); /* root partition */
- lFullRelOids = list_concat(lFullRelOids, all_interior_partition_relids(pn)); /* interior partitions */
+ if(pn){
+ lFullRelOids = all_leaf_partition_relids(pn);
+ lFullRelOids = list_concat(lFullRelOids, all_interior_partition_relids(pn)); /* interior partitions */
+ }
+ lFullRelOids = lappend_oid(lFullRelOids, cstate->rel->rd_id);
target_segment_num = calculate_virtual_segment_number(lFullRelOids);
elog(LOG, "virtual segment number of copy to is: %d\n", target_segment_num);