You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by dl...@apache.org on 2020/06/25 23:47:09 UTC

[asterixdb] branch master updated: [ASTERIXDB-2752][MTD] Add metadata for synonyms on upgrade

This is an automated email from the ASF dual-hosted git repository.

dlych pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 0f096f3  [ASTERIXDB-2752][MTD] Add metadata for synonyms on upgrade
0f096f3 is described below

commit 0f096f3afbf9f03b4b2606250e0e0cde57ad1e57
Author: Dmitry Lychagin <dm...@couchbase.com>
AuthorDate: Thu Jun 25 11:21:29 2020 -0700

    [ASTERIXDB-2752][MTD] Add metadata for synonyms on upgrade
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    - On version upgrade insert synonyms dataset entry
      into Metadata.Dataset and corresponding type entry
      into Metadata.Datatype
    
    Change-Id: I32b3bafab3c130666f13063d8959f5b6e5fb7261
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/6944
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Dmitry Lychagin <dm...@couchbase.com>
    Reviewed-by: Michael Blow <mb...@apache.org>
---
 .../metadata/bootstrap/MetadataBootstrap.java        | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
index 4309c26..d85422d 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
@@ -21,6 +21,7 @@ package org.apache.asterix.metadata.bootstrap;
 import java.io.File;
 import java.rmi.RemoteException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 
@@ -170,6 +171,7 @@ public class MetadataBootstrap {
                 }
             } else {
                 insertNewCompactionPoliciesIfNotExist(mdTxnCtx);
+                insertSynonymEntitiesIfNotExist(mdTxnCtx);
             }
             // #. initialize datasetIdFactory
             MetadataManager.INSTANCE.initializeDatasetIdFactory(mdTxnCtx);
@@ -222,6 +224,10 @@ public class MetadataBootstrap {
         }
     }
 
+    public static void getMetadataIndexes(List<IMetadataIndex> outIndexes) {
+        Collections.addAll(outIndexes, PRIMARY_INDEXES);
+    }
+
     private static void getMetadataTypes(ArrayList<IAType> types) {
         for (int i = 0; i < PRIMARY_INDEXES.length; i++) {
             types.add(PRIMARY_INDEXES[i].getPayloadRecordType());
@@ -293,6 +299,20 @@ public class MetadataBootstrap {
         }
     }
 
+    private static void insertSynonymEntitiesIfNotExist(MetadataTransactionContext mdTxnCtx)
+            throws AlgebricksException {
+        IAType synonymDatasetRecordType = MetadataPrimaryIndexes.SYNONYM_DATASET.getPayloadRecordType();
+        if (MetadataManager.INSTANCE.getDatatype(mdTxnCtx, MetadataConstants.METADATA_DATAVERSE_NAME,
+                synonymDatasetRecordType.getTypeName()) == null) {
+            MetadataManager.INSTANCE.addDatatype(mdTxnCtx, new Datatype(MetadataConstants.METADATA_DATAVERSE_NAME,
+                    synonymDatasetRecordType.getTypeName(), synonymDatasetRecordType, false));
+        }
+        if (MetadataManager.INSTANCE.getDataset(mdTxnCtx, MetadataConstants.METADATA_DATAVERSE_NAME,
+                MetadataConstants.SYNONYM_DATASET_NAME) == null) {
+            insertMetadataDatasets(mdTxnCtx, new IMetadataIndex[] { MetadataPrimaryIndexes.SYNONYM_DATASET });
+        }
+    }
+
     private static DatasourceAdapter getAdapter(String adapterFactoryClassName) throws AlgebricksException {
         try {
             String adapterName =