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 2015/12/07 09:02:53 UTC

incubator-hawq git commit: HAWQ-223. Improve AOGetSegFileDataLocation performane.

Repository: incubator-hawq
Updated Branches:
  refs/heads/master a9e010eda -> c5e0beb22


HAWQ-223. Improve AOGetSegFileDataLocation performane.


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/c5e0beb2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/c5e0beb2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/c5e0beb2

Branch: refs/heads/master
Commit: c5e0beb22d9dc5c5f5c0c220aa6fbeaddb21ac21
Parents: a9e010e
Author: hubertzhang <hz...@pivotal.io>
Authored: Fri Dec 4 16:33:16 2015 +0800
Committer: hubertzhang <hz...@pivotal.io>
Committed: Mon Dec 7 15:41:11 2015 +0800

----------------------------------------------------------------------
 src/backend/cdb/cdbdatalocality.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/c5e0beb2/src/backend/cdb/cdbdatalocality.c
----------------------------------------------------------------------
diff --git a/src/backend/cdb/cdbdatalocality.c b/src/backend/cdb/cdbdatalocality.c
index e860b69..3b087de 100644
--- a/src/backend/cdb/cdbdatalocality.c
+++ b/src/backend/cdb/cdbdatalocality.c
@@ -1246,6 +1246,11 @@ static void AOGetSegFileDataLocation(Relation relation,
 		aoscan = systable_beginscan(pg_aoseg_rel, InvalidOid, FALSE,
 				metadataSnapshot, 0, NULL);
 
+		// get targetPolicy
+		GpPolicy *targetPolicy = NULL;
+		Oid myrelid = rel_data->relid;
+		targetPolicy = GpPolicyFetch(CurrentMemoryContext, myrelid);
+
 		while (HeapTupleIsValid(tuple = systable_getnext(aoscan))) {
 			BlockLocation *locations = NULL;
 			int block_num;
@@ -1257,9 +1262,6 @@ static void AOGetSegFileDataLocation(Relation relation,
 			int64 logic_len = (int64) DatumGetFloat8(
 					fastgetattr(tuple, Anum_pg_aoseg_eof, pg_aoseg_dsc, NULL));
 			bool isRelationHash = true;
-			GpPolicy *targetPolicy = NULL;
-			Oid myrelid = rel_data->relid;
-			targetPolicy = GpPolicyFetch(CurrentMemoryContext, myrelid);
 			if (targetPolicy->nattrs == 0) {
 				isRelationHash = false;
 			}
@@ -1421,6 +1423,12 @@ static void ParquetGetSegFileDataLocation(Relation relation,
 	pg_parquetseg_dsc = RelationGetDescr(pg_parquetseg_rel);
 	parquetscan = systable_beginscan(pg_parquetseg_rel, InvalidOid, FALSE,
 			metadataSnapshot, 0, NULL);
+
+	// get targetPolicy
+	GpPolicy *targetPolicy = NULL;
+	Oid myrelid = rel_data->relid;
+	targetPolicy = GpPolicyFetch(CurrentMemoryContext, myrelid);
+
 	while (HeapTupleIsValid(tuple = systable_getnext(parquetscan))) {
 		BlockLocation *locations;
 		int block_num;
@@ -1432,9 +1440,6 @@ static void ParquetGetSegFileDataLocation(Relation relation,
 				fastgetattr(tuple, Anum_pg_parquetseg_eof, pg_parquetseg_dsc, NULL));
 
 		bool isRelationHash = true;
-		GpPolicy *targetPolicy = NULL;
-		Oid myrelid = rel_data->relid;
-		targetPolicy = GpPolicyFetch(CurrentMemoryContext, myrelid);
 		if (targetPolicy->nattrs == 0) {
 			isRelationHash = false;
 		}