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;
}