[ASTERIXDB-3259][MTD] Include 'database' in tuple translators
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
Include 'database' in tuple translators.
Add 'database' to metadata entity objects.
Change-Id: I0d1525c76958b042cd4dca926a644cc340278044
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17777
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/AdapterIdentifier.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/AdapterIdentifier.java
index 9f27b41..bc82898 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/AdapterIdentifier.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/AdapterIdentifier.java
@@ -19,6 +19,7 @@
package org.apache.asterix.external.dataset.adapter;
import java.io.Serializable;
+import java.util.Objects;
import org.apache.asterix.common.metadata.DataverseName;
@@ -27,8 +28,9 @@
*/
public class AdapterIdentifier implements Serializable {
- private static final long serialVersionUID = 2L;
+ private static final long serialVersionUID = 3L;
+ private final String databaseName = null;
private final DataverseName dataverseName;
private final String adapterName;
@@ -37,6 +39,10 @@
this.adapterName = name;
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
@@ -47,7 +53,7 @@
@Override
public int hashCode() {
- return (dataverseName + "@" + adapterName).hashCode();
+ return Objects.hash(databaseName, dataverseName + "@" + adapterName);
}
@@ -63,6 +69,7 @@
return false;
}
AdapterIdentifier a = (AdapterIdentifier) o;
- return dataverseName.equals(a.dataverseName) && adapterName.equals(a.adapterName);
+ return Objects.equals(databaseName, a.databaseName) && dataverseName.equals(a.dataverseName)
+ && adapterName.equals(a.adapterName);
}
}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/policy/FeedPolicy.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/policy/FeedPolicy.java
index 79c5281..78075e2 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/policy/FeedPolicy.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/policy/FeedPolicy.java
@@ -20,14 +20,15 @@
import java.io.Serializable;
import java.util.Map;
+import java.util.Objects;
import org.apache.asterix.common.metadata.DataverseName;
public class FeedPolicy implements Serializable {
- private static final long serialVersionUID = 2L;
+ private static final long serialVersionUID = 3L;
+ private final String databaseName = null;
private final DataverseName dataverseName;
- // Enforced to be unique within a dataverse.
private final String policyName;
// A description of the policy
private final String description;
@@ -42,6 +43,10 @@
this.properties = properties;
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
@@ -59,6 +64,9 @@
return false;
}
FeedPolicy otherPolicy = (FeedPolicy) other;
+ if (!Objects.equals(databaseName, otherPolicy.databaseName)) {
+ return false;
+ }
if (!otherPolicy.dataverseName.equals(dataverseName)) {
return false;
}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/indexing/ExternalFile.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/indexing/ExternalFile.java
index 26a3a76..973e890 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/indexing/ExternalFile.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/indexing/ExternalFile.java
@@ -32,8 +32,9 @@
* A class for metadata entity externalFile
* This class represents an external dataset file and is intended for use for saving external data snapshot
*/
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 2L;
+ private final String databaseName = null;
private DataverseName dataverseName;
private String datasetName;
private Date lastModefiedTime;
@@ -63,6 +64,10 @@
this.setPendingOp(pendingOp);
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
@@ -121,7 +126,7 @@
@Override
public int hashCode() {
- return Objects.hash(dataverseName, datasetName, fileName);
+ return Objects.hash(databaseName, dataverseName, datasetName, fileName);
}
@Override
@@ -133,7 +138,8 @@
return false;
}
ExternalFile anotherFile = (ExternalFile) obj;
- return fileNumber == anotherFile.fileNumber && Objects.equals(dataverseName, anotherFile.getDataverseName())
+ return fileNumber == anotherFile.fileNumber && Objects.equals(databaseName, anotherFile.databaseName)
+ && Objects.equals(dataverseName, anotherFile.getDataverseName())
&& Objects.equals(datasetName, anotherFile.getDatasetName());
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/CompactionPolicy.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/CompactionPolicy.java
index 1b01d43..aae1da1 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/CompactionPolicy.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/CompactionPolicy.java
@@ -19,6 +19,8 @@
package org.apache.asterix.metadata.entities;
+import java.util.Objects;
+
import org.apache.asterix.common.metadata.DataverseName;
import org.apache.asterix.metadata.MetadataCache;
import org.apache.asterix.metadata.api.IMetadataEntity;
@@ -28,10 +30,10 @@
*/
public class CompactionPolicy implements IMetadataEntity<CompactionPolicy> {
- private static final long serialVersionUID = 2L;
+ private static final long serialVersionUID = 3L;
+ private final String databaseName = null;
private final DataverseName dataverseName;
- // Enforced to be unique within a dataverse.
private final String policyName;
private final String className;
@@ -41,6 +43,10 @@
this.className = className;
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
@@ -62,6 +68,9 @@
return false;
}
CompactionPolicy otherPolicy = (CompactionPolicy) other;
+ if (!Objects.equals(databaseName, otherPolicy.databaseName)) {
+ return false;
+ }
if (!otherPolicy.dataverseName.equals(dataverseName)) {
return false;
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Datatype.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Datatype.java
index 014f870..3e637df 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Datatype.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Datatype.java
@@ -33,10 +33,10 @@
*/
public class Datatype implements IMetadataEntity<Datatype> {
- private static final long serialVersionUID = 2L;
+ private static final long serialVersionUID = 3L;
+ private final String databaseName = null;
private final DataverseName dataverseName;
- // Enforced to be unique within a dataverse.
private final String datatypeName;
private final IAType datatype;
private final boolean isAnonymous;
@@ -48,6 +48,10 @@
this.isAnonymous = isAnonymous;
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataverse.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataverse.java
index 5cde932..866fb8b 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataverse.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataverse.java
@@ -19,6 +19,8 @@
package org.apache.asterix.metadata.entities;
+import java.util.Objects;
+
import org.apache.asterix.common.metadata.DataverseName;
import org.apache.asterix.metadata.MetadataCache;
import org.apache.asterix.metadata.api.IMetadataEntity;
@@ -28,8 +30,8 @@
*/
public class Dataverse implements IMetadataEntity<Dataverse> {
- private static final long serialVersionUID = 2L;
- // Enforced to be unique within an Asterix cluster..
+ private static final long serialVersionUID = 3L;
+ private final String databaseName = null;
private final DataverseName dataverseName;
private final String dataFormat;
private final int pendingOp;
@@ -40,6 +42,10 @@
this.pendingOp = pendingOp;
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
@@ -64,7 +70,7 @@
@Override
public String toString() {
- return getClass().getSimpleName() + ":" + dataverseName;
+ return getClass().getSimpleName() + ":" + databaseName + ":" + dataverseName;
}
@Override
@@ -73,11 +79,11 @@
return false;
}
Dataverse other = (Dataverse) o;
- return dataverseName.equals(other.getDataverseName());
+ return Objects.equals(databaseName, other.databaseName) && dataverseName.equals(other.getDataverseName());
}
@Override
public int hashCode() {
- return dataverseName.hashCode();
+ return Objects.hash(databaseName, dataverseName);
}
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/FeedConnection.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/FeedConnection.java
index 154391a..213682a 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/FeedConnection.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/FeedConnection.java
@@ -33,17 +33,18 @@
*/
public class FeedConnection implements IMetadataEntity<FeedConnection> {
- private static final long serialVersionUID = 2L;
+ private static final long serialVersionUID = 3L;
- private EntityId feedId;
- private String connectionId;
- private DataverseName dataverseName;
- private String feedName;
- private String datasetName;
- private String policyName;
- private String whereClauseBody;
- private String outputType;
- private List<FunctionSignature> appliedFunctions;
+ private final EntityId feedId;
+ private final String connectionId;
+ private final String databaseName = null;
+ private final DataverseName dataverseName;
+ private final String feedName;
+ private final String datasetName;
+ private final String policyName;
+ private final String whereClauseBody;
+ private final String outputType;
+ private final List<FunctionSignature> appliedFunctions;
public FeedConnection(DataverseName dataverseName, String feedName, String datasetName,
List<FunctionSignature> appliedFunctions, String policyName, String whereClauseBody, String outputType) {
@@ -88,6 +89,10 @@
return null;
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Function.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Function.java
index 8853c02..94145e2 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Function.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Function.java
@@ -32,7 +32,7 @@
import org.apache.hyracks.algebricks.common.utils.Triple;
public class Function implements IMetadataEntity<Function> {
- private static final long serialVersionUID = 4L;
+ private static final long serialVersionUID = 5L;
private final FunctionSignature signature;
private final List<String> paramNames;
@@ -41,6 +41,7 @@
private final String body;
private final String language;
private final String kind;
+ private final String databaseName = null;
private final DataverseName libraryDataverseName;
private final String libraryName;
private final List<String> externalIdentifier;
@@ -76,6 +77,10 @@
return signature;
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return signature.getDataverseName();
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java
index cb9a090..92650ee 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java
@@ -50,10 +50,11 @@
*/
public class Index implements IMetadataEntity<Index>, Comparable<Index> {
- private static final long serialVersionUID = 3L;
+ private static final long serialVersionUID = 4L;
public static final int RECORD_INDICATOR = 0;
public static final int META_RECORD_INDICATOR = 1;
+ private final String databaseName = null;
private final DataverseName dataverseName;
// Enforced to be unique within a dataverse.
private final String datasetName;
@@ -104,6 +105,10 @@
false, true, pendingOp);
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
@@ -213,7 +218,7 @@
@Override
public int hashCode() {
- return indexName.hashCode() ^ datasetName.hashCode() ^ dataverseName.hashCode();
+ return Objects.hash(indexName, datasetName, dataverseName, databaseName);
}
@Override
@@ -228,7 +233,8 @@
if (!datasetName.equals(otherIndex.getDatasetName())) {
return false;
}
- return dataverseName.equals(otherIndex.getDataverseName());
+ return Objects.equals(databaseName, otherIndex.databaseName)
+ && dataverseName.equals(otherIndex.getDataverseName());
}
@Override
@@ -276,6 +282,7 @@
if (result != 0) {
return result;
}
+ //TODO(DB): fix to also consider database
return dataverseName.compareTo(otherIndex.getDataverseName());
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Library.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Library.java
index 4a6a512..5373eb2 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Library.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Library.java
@@ -24,8 +24,9 @@
public class Library implements IMetadataEntity<Library> {
- private static final long serialVersionUID = 2L;
+ private static final long serialVersionUID = 3L;
+ private final String databaseName = null;
private final DataverseName dataverse;
private final String name;
private final String language;
@@ -40,6 +41,10 @@
this.pendingOp = pendingOp;
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverse;
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Synonym.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Synonym.java
index 956a318..9da7f99 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Synonym.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Synonym.java
@@ -27,7 +27,9 @@
public class Synonym implements IMetadataEntity<Synonym> {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 2L;
+
+ private final String databaseName = null;
private final DataverseName dataverseName;
@@ -45,6 +47,10 @@
this.objectName = Objects.requireNonNull(objectName);
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
@@ -68,13 +74,14 @@
if (o == null || getClass() != o.getClass())
return false;
Synonym synonym = (Synonym) o;
- return dataverseName.equals(synonym.dataverseName) && synonymName.equals(synonym.synonymName)
- && objectDataverseName.equals(synonym.objectDataverseName) && objectName.equals(synonym.objectName);
+ return Objects.equals(databaseName, synonym.databaseName) && dataverseName.equals(synonym.dataverseName)
+ && synonymName.equals(synonym.synonymName) && objectDataverseName.equals(synonym.objectDataverseName)
+ && objectName.equals(synonym.objectName);
}
@Override
public int hashCode() {
- return Objects.hash(dataverseName, synonymName, objectDataverseName, objectName);
+ return Objects.hash(databaseName, dataverseName, synonymName, objectDataverseName, objectName);
}
@Override
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/CompactionPolicyTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/CompactionPolicyTupleTranslator.java
index 56a9a77..e60d65b 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/CompactionPolicyTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/CompactionPolicyTupleTranslator.java
@@ -29,7 +29,7 @@
import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
/**
- * Translates a Dataset metadata entity to an ITupleReference and vice versa.
+ * Translates a CompactionPolicy metadata entity to an ITupleReference and vice versa.
*/
public class CompactionPolicyTupleTranslator extends AbstractTupleTranslator<CompactionPolicy> {
@@ -43,6 +43,11 @@
@Override
protected CompactionPolicy createMetadataEntityFromARecord(ARecord compactionPolicyRecord)
throws AlgebricksException {
+ int databaseNameIndex = compactionPolicyEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) compactionPolicyRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) compactionPolicyRecord.getValueByPos(compactionPolicyEntity.dataverseNameIndex()))
.getStringValue();
@@ -60,6 +65,11 @@
String dataverseCanonicalName = compactionPolicy.getDataverseName().getCanonicalForm();
tupleBuilder.reset();
+ if (compactionPolicyEntity.databaseNameIndex() >= 0) {
+ aString.setValue(compactionPolicy.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
tupleBuilder.addFieldEndOffset();
@@ -70,6 +80,12 @@
recordBuilder.reset(compactionPolicyEntity.getRecordType());
+ if (compactionPolicyEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(compactionPolicy.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(compactionPolicyEntity.databaseNameIndex(), fieldValue);
+ }
// write field 0
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
index e59041e..971f995 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
@@ -44,6 +44,11 @@
@Override
protected DatasourceAdapter createMetadataEntityFromARecord(ARecord adapterRecord) throws AlgebricksException {
+ int databaseNameIndex = datasourceAdapterEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) adapterRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) adapterRecord.getValueByPos(datasourceAdapterEntity.dataverseNameIndex())).getStringValue();
DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
@@ -79,6 +84,11 @@
// write the key in the first 2 fields of the tuple
tupleBuilder.reset();
+ if (datasourceAdapterEntity.databaseNameIndex() >= 0) {
+ aString.setValue(adapterIdentifier.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
tupleBuilder.addFieldEndOffset();
@@ -87,9 +97,14 @@
tupleBuilder.addFieldEndOffset();
// write the pay-load in the third field of the tuple
-
recordBuilder.reset(datasourceAdapterEntity.getRecordType());
+ if (datasourceAdapterEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(adapterIdentifier.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(datasourceAdapterEntity.databaseNameIndex(), fieldValue);
+ }
// write field 0
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
index dc4fd59..1ad331a 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
@@ -58,6 +58,11 @@
@Override
protected Datatype createMetadataEntityFromARecord(ARecord datatypeRecord) throws AlgebricksException {
+ int databaseNameIndex = datatypeEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) datatypeRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) datatypeRecord.getValueByPos(datatypeEntity.dataverseNameIndex())).getStringValue();
DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
@@ -145,6 +150,11 @@
// write the key in the first two fields of the tuple
tupleBuilder.reset();
+ if (datatypeEntity.databaseNameIndex() >= 0) {
+ aString.setValue(dataType.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
tupleBuilder.addFieldEndOffset();
@@ -155,6 +165,12 @@
// write the payload in the third field of the tuple
recordBuilder.reset(datatypeEntity.getRecordType());
+ if (datatypeEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(dataType.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(datatypeEntity.databaseNameIndex(), fieldValue);
+ }
// write field 0
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DataverseTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DataverseTupleTranslator.java
index 8764054..1c79e76 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DataverseTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DataverseTupleTranslator.java
@@ -50,6 +50,11 @@
@Override
protected Dataverse createMetadataEntityFromARecord(ARecord dataverseRecord) throws AlgebricksException {
+ int databaseNameIndex = dataverseEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) dataverseRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) dataverseRecord.getValueByPos(dataverseEntity.dataverseNameIndex())).getStringValue();
DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
@@ -65,12 +70,24 @@
// write the key in the first field of the tuple
tupleBuilder.reset();
+ if (dataverseEntity.databaseNameIndex() >= 0) {
+ aString.setValue(dataverse.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
tupleBuilder.addFieldEndOffset();
// write the payload in the second field of the tuple
recordBuilder.reset(dataverseEntity.getRecordType());
+
+ if (dataverseEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(dataverse.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(dataverseEntity.databaseNameIndex(), fieldValue);
+ }
// write field 0
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/ExternalFileTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/ExternalFileTupleTranslator.java
index 21cf462..3d1b054 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/ExternalFileTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/ExternalFileTupleTranslator.java
@@ -61,6 +61,11 @@
@Override
protected ExternalFile createMetadataEntityFromARecord(ARecord externalFileRecord) throws AlgebricksException {
+ int databaseNameIndex = externalFileEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) externalFileRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) externalFileRecord.getValueByPos(externalFileEntity.dataverseNameIndex())).getStringValue();
DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
@@ -86,6 +91,11 @@
// write the key in the first 3 fields of the tuple
tupleBuilder.reset();
+ if (externalFileEntity.databaseNameIndex() >= 0) {
+ aString.setValue(externalFile.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
// dataverse name
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
@@ -102,6 +112,12 @@
// write the pay-load in the fourth field of the tuple
recordBuilder.reset(externalFileEntity.getRecordType());
+ if (externalFileEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(externalFile.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(externalFileEntity.databaseNameIndex(), fieldValue);
+ }
// write field 0
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedConnectionTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedConnectionTupleTranslator.java
index bef6937..6459c8d 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedConnectionTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedConnectionTupleTranslator.java
@@ -52,6 +52,11 @@
@Override
protected FeedConnection createMetadataEntityFromARecord(ARecord feedConnectionRecord) throws AlgebricksException {
+ int databaseNameIndex = feedConnectionEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) feedConnectionRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) feedConnectionRecord.getValueByPos(feedConnectionEntity.dataverseNameIndex()))
.getStringValue();
@@ -98,6 +103,11 @@
tupleBuilder.reset();
+ if (feedConnectionEntity.databaseNameIndex() >= 0) {
+ aString.setValue(feedConnection.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
// key: dataverse
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
@@ -115,6 +125,13 @@
recordBuilder.reset(feedConnectionEntity.getRecordType());
+ if (feedConnectionEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(feedConnection.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(feedConnectionEntity.databaseNameIndex(), fieldValue);
+ }
+
// field dataverse
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedPolicyTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedPolicyTupleTranslator.java
index edfa69f..99b5f6f 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedPolicyTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedPolicyTupleTranslator.java
@@ -41,7 +41,7 @@
import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
/**
- * Translates a Dataset metadata entity to an ITupleReference and vice versa.
+ * Translates a FeedPolicyEntity metadata entity to an ITupleReference and vice versa.
*/
public class FeedPolicyTupleTranslator extends AbstractTupleTranslator<FeedPolicyEntity> {
@@ -55,6 +55,11 @@
@Override
protected FeedPolicyEntity createMetadataEntityFromARecord(ARecord feedPolicyRecord) throws AlgebricksException {
+ int databaseNameIndex = feedPolicyEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) feedPolicyRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) feedPolicyRecord.getValueByPos(feedPolicyEntity.dataverseNameIndex())).getStringValue();
DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
@@ -84,6 +89,11 @@
// write the key in the first three fields of the tuple
tupleBuilder.reset();
+ if (feedPolicyEntity.databaseNameIndex() >= 0) {
+ aString.setValue(feedPolicy.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
tupleBuilder.addFieldEndOffset();
@@ -95,6 +105,12 @@
recordBuilder.reset(feedPolicyEntity.getRecordType());
// write field 0
+ if (feedPolicyEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(feedPolicy.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(feedPolicyEntity.databaseNameIndex(), fieldValue);
+ }
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, fieldValue.getDataOutput());
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FullTextConfigMetadataEntityTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FullTextConfigMetadataEntityTupleTranslator.java
index 5403f1d..7a06954 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FullTextConfigMetadataEntityTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FullTextConfigMetadataEntityTupleTranslator.java
@@ -61,6 +61,11 @@
@Override
protected FullTextConfigMetadataEntity createMetadataEntityFromARecord(ARecord aRecord)
throws HyracksDataException, AlgebricksException {
+ int databaseNameIndex = fullTextConfigEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) aRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
DataverseName dataverseName = DataverseName.createFromCanonicalForm(
((AString) aRecord.getValueByPos(fullTextConfigEntity.dataverseNameIndex())).getStringValue());
@@ -81,8 +86,13 @@
return new FullTextConfigMetadataEntity(configDescriptor);
}
- private void writeIndex(String dataverseName, String configName, ArrayTupleBuilder tupleBuilder)
- throws HyracksDataException {
+ private void writeIndex(String databaseName, String dataverseName, String configName,
+ ArrayTupleBuilder tupleBuilder) throws HyracksDataException {
+ if (fullTextConfigEntity.databaseNameIndex() >= 0) {
+ aString.setValue(databaseName);
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
aString.setValue(dataverseName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
tupleBuilder.addFieldEndOffset();
@@ -99,10 +109,17 @@
FullTextConfigDescriptor configDescriptor = configMetadataEntity.getFullTextConfig();
- writeIndex(configDescriptor.getDataverseName().getCanonicalForm(), configDescriptor.getName(), tupleBuilder);
+ writeIndex(configDescriptor.getDatabaseName(), configDescriptor.getDataverseName().getCanonicalForm(),
+ configDescriptor.getName(), tupleBuilder);
recordBuilder.reset(fullTextConfigEntity.getRecordType());
+ if (fullTextConfigEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(configDescriptor.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(fullTextConfigEntity.databaseNameIndex(), fieldValue);
+ }
// write dataverse name
fieldValue.reset();
aString.setValue(configDescriptor.getDataverseName().getCanonicalForm());
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FullTextFilterMetadataEntityTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FullTextFilterMetadataEntityTupleTranslator.java
index 7d66f3b..6ab2fea 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FullTextFilterMetadataEntityTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FullTextFilterMetadataEntityTupleTranslator.java
@@ -64,6 +64,11 @@
@Override
protected FullTextFilterMetadataEntity createMetadataEntityFromARecord(ARecord aRecord) throws AlgebricksException {
+ int databaseNameIndex = fullTextFilterEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) aRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
AString dataverseName = (AString) aRecord.getValueByPos(fullTextFilterEntity.dataverseNameIndex());
AString filterName = (AString) aRecord.getValueByPos(fullTextFilterEntity.filterNameIndex());
AString filterTypeAString = (AString) aRecord.getValueByPos(fullTextFilterEntity.filterTypeIndex());
@@ -135,6 +140,12 @@
private void writeFulltextFilter(AbstractFullTextFilterDescriptor filterDescriptor)
throws AsterixException, HyracksDataException {
+ if (fullTextFilterEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(filterDescriptor.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(fullTextFilterEntity.databaseNameIndex(), fieldValue);
+ }
fieldValue.reset();
aString.setValue(filterDescriptor.getDataverseName().getCanonicalForm());
stringSerde.serialize(aString, fieldValue.getDataOutput());
@@ -161,8 +172,13 @@
}
}
- private void writeIndex(String dataverseName, String filterName, ArrayTupleBuilder tupleBuilder)
- throws HyracksDataException {
+ private void writeIndex(String databaseName, String dataverseName, String filterName,
+ ArrayTupleBuilder tupleBuilder) throws HyracksDataException {
+ if (fullTextFilterEntity.databaseNameIndex() >= 0) {
+ aString.setValue(databaseName);
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
aString.setValue(dataverseName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
tupleBuilder.addFieldEndOffset();
@@ -177,7 +193,8 @@
throws HyracksDataException, AsterixException {
tupleBuilder.reset();
- writeIndex(filterMetadataEntity.getFullTextFilter().getDataverseName().getCanonicalForm(),
+ writeIndex(filterMetadataEntity.getFullTextFilter().getDatabaseName(),
+ filterMetadataEntity.getFullTextFilter().getDataverseName().getCanonicalForm(),
filterMetadataEntity.getFullTextFilter().getName(), tupleBuilder);
// Write the record
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
index 3f61115..2439ae9 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
@@ -103,6 +103,11 @@
}
protected Function createMetadataEntityFromARecord(ARecord functionRecord) throws AlgebricksException {
+ int databaseNameIndex = functionEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) functionRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) functionRecord.getValueByPos(functionEntity.dataverseNameIndex())).getStringValue();
DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
@@ -285,6 +290,11 @@
// write the key in the first 2 fields of the tuple
tupleBuilder.reset();
+ if (functionEntity.databaseNameIndex() >= 0) {
+ aString.setValue(function.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
tupleBuilder.addFieldEndOffset();
@@ -299,6 +309,12 @@
recordBuilder.reset(functionEntity.getRecordType());
+ if (functionEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(function.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(functionEntity.databaseNameIndex(), fieldValue);
+ }
// write field 0
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
index e803843..8373574 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
@@ -147,6 +147,11 @@
@Override
protected Index createMetadataEntityFromARecord(ARecord indexRecord) throws AlgebricksException {
+ int databaseNameIndex = indexEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) indexRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) indexRecord.getValueByPos(indexEntity.dataverseNameIndex())).getStringValue();
DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
@@ -534,6 +539,11 @@
// write the key in the first 3 fields of the tuple
tupleBuilder.reset();
+ if (indexEntity.databaseNameIndex() >= 0) {
+ aString.setValue(index.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
tupleBuilder.addFieldEndOffset();
@@ -547,6 +557,12 @@
// write the payload in the fourth field of the tuple
recordBuilder.reset(indexEntity.getRecordType());
+ if (indexEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(index.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(indexEntity.databaseNameIndex(), fieldValue);
+ }
// write field 0
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/LibraryTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/LibraryTupleTranslator.java
index 04b1952..ba8a854 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/LibraryTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/LibraryTupleTranslator.java
@@ -52,6 +52,11 @@
@Override
protected Library createMetadataEntityFromARecord(ARecord libraryRecord) throws AlgebricksException {
+ int databaseNameIndex = libraryEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) libraryRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) libraryRecord.getValueByPos(libraryEntity.dataverseNameIndex())).getStringValue();
DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
@@ -77,6 +82,11 @@
String dataverseCanonicalName = library.getDataverseName().getCanonicalForm();
// write the key in the first 2 fields of the tuple
+ if (libraryEntity.databaseNameIndex() >= 0) {
+ aString.setValue(library.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
tupleBuilder.reset();
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
@@ -86,9 +96,14 @@
tupleBuilder.addFieldEndOffset();
// write the pay-load in the third field of the tuple
-
recordBuilder.reset(libraryEntity.getRecordType());
+ if (libraryEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(library.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(libraryEntity.databaseNameIndex(), fieldValue);
+ }
// write field 0
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/SynonymTupleTranslator.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/SynonymTupleTranslator.java
index e3f2bdb..114e46c 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/SynonymTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/SynonymTupleTranslator.java
@@ -42,6 +42,11 @@
@Override
protected Synonym createMetadataEntityFromARecord(ARecord synonymRecord) throws AlgebricksException {
+ int databaseNameIndex = synonymEntity.databaseNameIndex();
+ String databaseName;
+ if (databaseNameIndex >= 0) {
+ databaseName = ((AString) synonymRecord.getValueByPos(databaseNameIndex)).getStringValue();
+ }
String dataverseCanonicalName =
((AString) synonymRecord.getValueByPos(synonymEntity.dataverseNameIndex())).getStringValue();
DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
@@ -64,6 +69,11 @@
// write the key in the first 2 fields of the tuple
tupleBuilder.reset();
+ if (synonymEntity.databaseNameIndex() >= 0) {
+ aString.setValue(synonym.getDatabaseName());
+ stringSerde.serialize(aString, tupleBuilder.getDataOutput());
+ tupleBuilder.addFieldEndOffset();
+ }
aString.setValue(dataverseCanonicalName);
stringSerde.serialize(aString, tupleBuilder.getDataOutput());
tupleBuilder.addFieldEndOffset();
@@ -72,9 +82,14 @@
tupleBuilder.addFieldEndOffset();
// write the pay-load in the third field of the tuple
-
recordBuilder.reset(synonymEntity.getRecordType());
+ if (synonymEntity.databaseNameIndex() >= 0) {
+ fieldValue.reset();
+ aString.setValue(synonym.getDatabaseName());
+ stringSerde.serialize(aString, fieldValue.getDataOutput());
+ recordBuilder.addField(synonymEntity.databaseNameIndex(), fieldValue);
+ }
// write field 0
fieldValue.reset();
aString.setValue(dataverseCanonicalName);
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/fulltext/AbstractFullTextFilterDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/fulltext/AbstractFullTextFilterDescriptor.java
index c61cdd3..139a983 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/fulltext/AbstractFullTextFilterDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/fulltext/AbstractFullTextFilterDescriptor.java
@@ -22,8 +22,9 @@
import org.apache.asterix.common.metadata.DataverseName;
public abstract class AbstractFullTextFilterDescriptor implements IFullTextFilterDescriptor {
- private static final long serialVersionUID = 6884215200256734408L;
+ private static final long serialVersionUID = 5325972301942118022L;
+ private final String databaseName = null;
protected final DataverseName dataverseName;
protected final String name;
@@ -32,6 +33,10 @@
this.name = name;
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/fulltext/FullTextConfigDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/fulltext/FullTextConfigDescriptor.java
index 6df92a1..524e46a 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/fulltext/FullTextConfigDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/fulltext/FullTextConfigDescriptor.java
@@ -31,8 +31,9 @@
// to tokenize and process tokens of full-text documents
// When running the ftcontains() function, the full-text config can be used with or without a full-text index
public class FullTextConfigDescriptor implements IFullTextConfigDescriptor {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 2L;
+ private final String databaseName = null;
private final DataverseName dataverseName;
private final String name;
private final TokenizerCategory tokenizerCategory;
@@ -55,6 +56,10 @@
return new FullTextConfigDescriptor(null, null, TokenizerCategory.WORD, ImmutableList.of());
}
+ public String getDatabaseName() {
+ return databaseName;
+ }
+
public DataverseName getDataverseName() {
return dataverseName;
}