>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]>

Reply via email to