>From Ritik Raj <[email protected]>:
Ritik Raj has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20410?usp=email )
Change subject: [NO ISSUE][OTH] Avoid lookup for non-secondary index
......................................................................
[NO ISSUE][OTH] Avoid lookup for non-secondary index
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
Currently DatasetUtil.hasSecondaries, does not
account for sample indexes, hence a lookup is done
for that as well, which should not be needed.
Change-Id: I65ca9c74192d14bbaecf8a306902e4cecf1337d2
---
M
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
1 file changed, 15 insertions(+), 3 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/10/20410/1
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
index 55f4259..3741cad 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
@@ -484,9 +484,9 @@
primaryKeyFields[i] = i;
pkFields[i] = fieldPermutation[i];
}
- boolean hasSecondaries = metadataProvider
- .getDatasetIndexes(dataset.getDatabaseName(),
dataset.getDataverseName(), dataset.getDatasetName())
- .size() > 1;
+
+ boolean hasSecondaries = hasNonSampleSecondaryIndex(dataset,
metadataProvider);
+
IStorageComponentProvider storageComponentProvider =
metadataProvider.getStorageComponentProvider();
IModificationOperationCallbackFactory modificationCallbackFactory =
dataset.getModificationCallbackFactory(
storageComponentProvider, primaryIndex, IndexOperation.UPSERT,
primaryKeyFields);
@@ -561,6 +561,18 @@
return new Pair<>(op, partitioningProperties.getConstraints());
}
+ private static boolean hasNonSampleSecondaryIndex(Dataset dataset,
MetadataProvider metadataProvider)
+ throws AlgebricksException {
+ List<Index> indexes =
metadataProvider.getDatasetIndexes(dataset.getDatabaseName(),
dataset.getDataverseName(),
+ dataset.getDatasetName());
+ for (Index index : indexes) {
+ if (index.isSecondaryIndex() && !index.isSampleIndex()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
/**
* Returns a type that contains indexed fields for columnar datasets.
* The type is used retrieve the previous record with only the indexed
fields -- minimizing the
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20410?usp=email
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: ionic
Gerrit-Change-Id: I65ca9c74192d14bbaecf8a306902e4cecf1337d2
Gerrit-Change-Number: 20410
Gerrit-PatchSet: 1
Gerrit-Owner: Ritik Raj <[email protected]>