You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by ti...@apache.org on 2016/11/24 00:57:30 UTC
[3/7] asterixdb git commit: ASTERIXDB-1711: remove some Aql-prefixes
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/42600592/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/AqlSourceId.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/AqlSourceId.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/AqlSourceId.java
deleted file mode 100644
index 295b59a..0000000
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/AqlSourceId.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.asterix.metadata.declared;
-
-import java.io.File;
-
-public class AqlSourceId {
-
- private String dataverseName;
- private String datasourceName;
-
- public AqlSourceId(String dataverseName, String datasourceName) {
- this.dataverseName = dataverseName;
- this.datasourceName = datasourceName;
- }
-
- @Override
- public String toString() {
- return dataverseName + File.pathSeparator + datasourceName;
- }
-
- public String getDataverseName() {
- return dataverseName;
- }
-
- public String getDatasourceName() {
- return datasourceName;
- }
-}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/42600592/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSource.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSource.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSource.java
new file mode 100644
index 0000000..fa874d5
--- /dev/null
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSource.java
@@ -0,0 +1,164 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.metadata.declared;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.asterix.om.types.IAType;
+import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
+import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSource;
+import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSourcePropertiesProvider;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
+import org.apache.hyracks.algebricks.core.algebra.properties.FunctionalDependency;
+import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
+import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
+import org.apache.hyracks.api.dataflow.IOperatorDescriptor;
+import org.apache.hyracks.api.job.JobSpecification;
+
+public abstract class DataSource implements IDataSource<DataSourceId> {
+
+ protected final DataSourceId id;
+ protected final IAType itemType;
+ protected final IAType metaItemType;
+ protected final byte datasourceType;
+ protected IAType[] schemaTypes;
+ protected INodeDomain domain;
+ protected Map<String, Serializable> properties = new HashMap<>();
+
+ public static class Type {
+ // positive range is reserved for core datasource types
+ public static final byte INTERNAL_DATASET = 0x00;
+ public static final byte EXTERNAL_DATASET = 0x01;
+ public static final byte FEED = 0x02;
+ public static final byte LOADABLE = 0x03;
+
+ // Hide implicit public constructor
+ private Type() {
+ }
+ }
+
+ public DataSource(DataSourceId id, IAType itemType, IAType metaItemType, byte datasourceType,
+ INodeDomain domain) throws AlgebricksException {
+ this.id = id;
+ this.itemType = itemType;
+ this.metaItemType = metaItemType;
+ this.datasourceType = datasourceType;
+ this.domain = domain;
+ }
+
+ @Override
+ public IAType[] getSchemaTypes() {
+ return schemaTypes;
+ }
+
+ @Override
+ public INodeDomain getDomain() {
+ return domain;
+ }
+
+ public void computeLocalStructuralProperties(List<ILocalStructuralProperty> localProps,
+ List<LogicalVariable> variables) {
+ // do nothing
+ }
+
+ @Override
+ public DataSourceId getId() {
+ return id;
+ }
+
+ @Override
+ public String toString() {
+ return id.toString();
+ }
+
+ @Override
+ public IDataSourcePropertiesProvider getPropertiesProvider() {
+ return new DataSourcePartitioningProvider(this, domain);
+ }
+
+ @Override
+ public void computeFDs(List<LogicalVariable> scanVariables, List<FunctionalDependency> fdList) {
+ int n = scanVariables.size();
+ if (n > 1) {
+ List<LogicalVariable> head = new ArrayList<>(scanVariables.subList(0, n - 1));
+ List<LogicalVariable> tail = new ArrayList<>(1);
+ tail.addAll(scanVariables);
+ FunctionalDependency fd = new FunctionalDependency(head, tail);
+ fdList.add(fd);
+ }
+ }
+
+ public byte getDatasourceType() {
+ return datasourceType;
+ }
+
+ public Map<String, Serializable> getProperties() {
+ return properties;
+ }
+
+ public IAType getItemType() {
+ return itemType;
+ }
+
+ public IAType getMetaItemType() {
+ return metaItemType;
+ }
+
+ public boolean hasMeta() {
+ return metaItemType != null;
+ }
+
+ public void setProperties(Map<String, Serializable> properties) {
+ this.properties = properties;
+ }
+
+ public LogicalVariable getMetaVariable(List<LogicalVariable> dataScanVariables) {
+ if (hasMeta()) {
+ return dataScanVariables.get(dataScanVariables.size() - 1);
+ } else {
+ return null;
+ }
+ }
+
+ public LogicalVariable getDataRecordVariable(List<LogicalVariable> dataScanVariables) {
+ return hasMeta() ? dataScanVariables.get(dataScanVariables.size() - 2)
+ : dataScanVariables.get(dataScanVariables.size() - 1);
+ }
+
+ public List<LogicalVariable> getPrimaryKeyVariables(List<LogicalVariable> dataScanVariables) {
+ return new ArrayList<>(dataScanVariables.subList(0, dataScanVariables.size() - (hasMeta() ? 2 : 1)));
+ }
+
+ public abstract Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> buildDatasourceScanRuntime(
+ MetadataProvider metadataProvider, IDataSource<DataSourceId> dataSource,
+ List<LogicalVariable> scanVariables, List<LogicalVariable> projectVariables, boolean projectPushed,
+ List<LogicalVariable> minFilterVars, List<LogicalVariable> maxFilterVars, IOperatorSchema opSchema,
+ IVariableTypeEnvironment typeEnv, JobGenContext context, JobSpecification jobSpec, Object implConfig)
+ throws AlgebricksException;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/42600592/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceId.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceId.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceId.java
new file mode 100644
index 0000000..d4329a3
--- /dev/null
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceId.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.metadata.declared;
+
+import java.io.File;
+
+public class DataSourceId {
+
+ private String dataverseName;
+ private String datasourceName;
+
+ public DataSourceId(String dataverseName, String datasourceName) {
+ this.dataverseName = dataverseName;
+ this.datasourceName = datasourceName;
+ }
+
+ @Override
+ public String toString() {
+ return dataverseName + File.pathSeparator + datasourceName;
+ }
+
+ public String getDataverseName() {
+ return dataverseName;
+ }
+
+ public String getDatasourceName() {
+ return datasourceName;
+ }
+}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/42600592/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceIndex.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceIndex.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceIndex.java
new file mode 100644
index 0000000..96ed2dd
--- /dev/null
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceIndex.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.metadata.declared;
+
+import org.apache.asterix.metadata.entities.Index;
+import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSource;
+import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSourceIndex;
+
+public class DataSourceIndex implements IDataSourceIndex<String, DataSourceId> {
+
+ private final Index index;
+ private final String dataset;
+ private final String dataverse;
+ private final MetadataProvider metadataProvider;
+
+ // Every transactions needs to work with its own instance of an
+ // MetadataProvider.
+ public DataSourceIndex(Index index, String dataverse, String dataset, MetadataProvider metadataProvider) {
+ this.index = index;
+ this.dataset = dataset;
+ this.dataverse = dataverse;
+ this.metadataProvider = metadataProvider;
+ }
+
+ // TODO: Maybe Index can directly implement IDataSourceIndex<String, DataSourceId>
+ @Override
+ public IDataSource<DataSourceId> getDataSource() {
+ try {
+ DataSourceId sourceId = new DataSourceId(dataverse, dataset);
+ return metadataProvider.lookupSourceInMetadata(sourceId);
+ } catch (Exception me) {
+ return null;
+ }
+ }
+
+ @Override
+ public String getId() {
+ return index.getIndexName();
+ }
+
+ public Index getIndex() {
+ return index;
+ }
+}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/42600592/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourcePartitioningProvider.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourcePartitioningProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourcePartitioningProvider.java
new file mode 100644
index 0000000..3cdfe84
--- /dev/null
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourcePartitioningProvider.java
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.asterix.metadata.declared;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.hyracks.algebricks.common.utils.ListSet;
+import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
+import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSourcePropertiesProvider;
+import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder.OrderKind;
+import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
+import org.apache.hyracks.algebricks.core.algebra.properties.LocalOrderProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
+import org.apache.hyracks.algebricks.core.algebra.properties.RandomPartitioningProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
+import org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty;
+
+public class DataSourcePartitioningProvider implements IDataSourcePropertiesProvider {
+
+ private final DataSource ds;
+ private final INodeDomain domain;
+
+ public DataSourcePartitioningProvider(DataSource dataSource, INodeDomain domain) {
+ this.ds = dataSource;
+ this.domain = domain;
+ }
+
+ @Override
+ public IPhysicalPropertiesVector computePropertiesVector(List<LogicalVariable> scanVariables) {
+ IPhysicalPropertiesVector propsVector;
+ IPartitioningProperty pp;
+ List<ILocalStructuralProperty> propsLocal = new ArrayList<>();
+ switch (ds.getDatasourceType()) {
+ case DataSource.Type.LOADABLE:
+ case DataSource.Type.EXTERNAL_DATASET:
+ pp = new RandomPartitioningProperty(domain);
+ ds.computeLocalStructuralProperties(propsLocal, scanVariables);
+ break;
+ case DataSource.Type.FEED:
+ pp = getFeedPartitioningProperty(ds, domain, scanVariables);
+ break;
+ case DataSource.Type.INTERNAL_DATASET:
+ Set<LogicalVariable> pvars = new ListSet<>();
+ pp = getInternalDatasetPartitioningProperty(ds, domain, scanVariables, pvars);
+ propsLocal.add(new LocalOrderProperty(getOrderColumns(pvars)));
+ break;
+ default:
+ throw new IllegalArgumentException();
+ }
+ propsVector = new StructuralPropertiesVector(pp, propsLocal);
+ return propsVector;
+ }
+
+ private static List<OrderColumn> getOrderColumns(Set<LogicalVariable> pvars) {
+ List<OrderColumn> orderColumns = new ArrayList<>();
+ for (LogicalVariable pkVar : pvars) {
+ orderColumns.add(new OrderColumn(pkVar, OrderKind.ASC));
+ }
+ return orderColumns;
+ }
+
+ private static IPartitioningProperty getInternalDatasetPartitioningProperty(DataSource ds, INodeDomain domain,
+ List<LogicalVariable> scanVariables, Set<LogicalVariable> pvars) {
+ IPartitioningProperty pp;
+ if (scanVariables.size() < 2) {
+ pp = new RandomPartitioningProperty(domain);
+ } else {
+ pvars.addAll(ds.getPrimaryKeyVariables(scanVariables));
+ pp = new UnorderedPartitionedProperty(pvars, domain);
+ }
+ return pp;
+ }
+
+ public static IPartitioningProperty getFeedPartitioningProperty(DataSource ds, INodeDomain domain,
+ List<LogicalVariable> scanVariables) {
+ IPartitioningProperty pp;
+ if (scanVariables.size() < 2) {
+ pp = new RandomPartitioningProperty(domain);
+ } else {
+ Set<LogicalVariable> pvars = new ListSet<>();
+ pvars.addAll(ds.getPrimaryKeyVariables(scanVariables));
+ pp = new UnorderedPartitionedProperty(pvars, domain);
+ }
+ return pp;
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/42600592/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DatasetDataSource.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DatasetDataSource.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DatasetDataSource.java
index 9729c77..6a13979 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DatasetDataSource.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DatasetDataSource.java
@@ -44,11 +44,11 @@ import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
import org.apache.hyracks.api.dataflow.IOperatorDescriptor;
import org.apache.hyracks.api.job.JobSpecification;
-public class DatasetDataSource extends AqlDataSource {
+public class DatasetDataSource extends DataSource {
private Dataset dataset;
- public DatasetDataSource(AqlSourceId id, Dataset dataset, IAType itemType, IAType metaItemType,
+ public DatasetDataSource(DataSourceId id, Dataset dataset, IAType itemType, IAType metaItemType,
byte datasourceType, IDatasetDetails datasetDetails, INodeDomain datasetDomain)
throws AlgebricksException {
super(id, itemType, metaItemType, datasourceType, datasetDomain);
@@ -92,7 +92,7 @@ public class DatasetDataSource extends AqlDataSource {
@Override
public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> buildDatasourceScanRuntime(
- AqlMetadataProvider aqlMetadataProvider, IDataSource<AqlSourceId> dataSource,
+ MetadataProvider metadataProvider, IDataSource<DataSourceId> dataSource,
List<LogicalVariable> scanVariables, List<LogicalVariable> projectVariables, boolean projectPushed,
List<LogicalVariable> minFilterVars, List<LogicalVariable> maxFilterVars, IOperatorSchema opSchema,
IVariableTypeEnvironment typeEnv, JobGenContext context, JobSpecification jobSpec, Object implConfig)
@@ -101,19 +101,19 @@ public class DatasetDataSource extends AqlDataSource {
case EXTERNAL:
Dataset externalDataset = ((DatasetDataSource) dataSource).getDataset();
String itemTypeName = externalDataset.getItemTypeName();
- IAType itemType = MetadataManager.INSTANCE.getDatatype(aqlMetadataProvider.getMetadataTxnContext(),
+ IAType itemType = MetadataManager.INSTANCE.getDatatype(metadataProvider.getMetadataTxnContext(),
externalDataset.getItemTypeDataverseName(), itemTypeName).getDatatype();
ExternalDatasetDetails edd = (ExternalDatasetDetails) externalDataset.getDatasetDetails();
- IAdapterFactory adapterFactory = aqlMetadataProvider.getConfiguredAdapterFactory(externalDataset,
+ IAdapterFactory adapterFactory = metadataProvider.getConfiguredAdapterFactory(externalDataset,
edd.getAdapter(), edd.getProperties(), (ARecordType) itemType, false, null, null);
- return aqlMetadataProvider.buildExternalDatasetDataScannerRuntime(jobSpec, itemType, adapterFactory,
+ return metadataProvider.buildExternalDatasetDataScannerRuntime(jobSpec, itemType, adapterFactory,
NonTaggedDataFormat.INSTANCE);
case INTERNAL:
- AqlSourceId asid = getId();
- String dataverseName = asid.getDataverseName();
- String datasetName = asid.getDatasourceName();
- Index primaryIndex = MetadataManager.INSTANCE.getIndex(aqlMetadataProvider.getMetadataTxnContext(),
+ DataSourceId id = getId();
+ String dataverseName = id.getDataverseName();
+ String datasetName = id.getDatasourceName();
+ Index primaryIndex = MetadataManager.INSTANCE.getIndex(metadataProvider.getMetadataTxnContext(),
dataverseName, datasetName, datasetName);
int[] minFilterFieldIndexes = null;
@@ -134,7 +134,7 @@ public class DatasetDataSource extends AqlDataSource {
i++;
}
}
- return aqlMetadataProvider.buildBtreeRuntime(jobSpec, scanVariables, opSchema, typeEnv, context, true,
+ return metadataProvider.buildBtreeRuntime(jobSpec, scanVariables, opSchema, typeEnv, context, true,
false, ((DatasetDataSource) dataSource).getDataset(), primaryIndex.getIndexName(), null, null,
true, true, implConfig, minFilterFieldIndexes, maxFilterFieldIndexes);
default:
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/42600592/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FeedDataSource.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FeedDataSource.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FeedDataSource.java
index d1d5df0..f57fc6d 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FeedDataSource.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FeedDataSource.java
@@ -50,7 +50,7 @@ import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
import org.apache.hyracks.api.job.JobSpecification;
-public class FeedDataSource extends AqlDataSource implements IMutationDataSource {
+public class FeedDataSource extends DataSource implements IMutationDataSource {
private final Feed feed;
private final EntityId sourceFeedId;
@@ -62,12 +62,12 @@ public class FeedDataSource extends AqlDataSource implements IMutationDataSource
private final List<IAType> pkTypes;
private final List<ScalarFunctionCallExpression> keyAccessExpression;
- public FeedDataSource(Feed feed, AqlSourceId id, String targetDataset, IAType itemType, IAType metaType,
+ public FeedDataSource(Feed feed, DataSourceId id, String targetDataset, IAType itemType, IAType metaType,
List<IAType> pkTypes, List<List<String>> partitioningKeys,
List<ScalarFunctionCallExpression> keyAccessExpression, EntityId sourceFeedId,
IFeed.FeedType sourceFeedType, FeedRuntimeType location, String[] locations, INodeDomain domain)
throws AlgebricksException {
- super(id, itemType, metaType, AqlDataSourceType.FEED, domain);
+ super(id, itemType, metaType, Type.FEED, domain);
this.feed = feed;
this.targetDataset = targetDataset;
this.sourceFeedId = sourceFeedId;
@@ -166,7 +166,7 @@ public class FeedDataSource extends AqlDataSource implements IMutationDataSource
@Override
public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> buildDatasourceScanRuntime(
- AqlMetadataProvider aqlMetadataProvider, IDataSource<AqlSourceId> dataSource,
+ MetadataProvider metadataProvider, IDataSource<DataSourceId> dataSource,
List<LogicalVariable> scanVariables, List<LogicalVariable> projectVariables, boolean projectPushed,
List<LogicalVariable> minFilterVars, List<LogicalVariable> maxFilterVars, IOperatorSchema opSchema,
IVariableTypeEnvironment typeEnv, JobGenContext context, JobSpecification jobSpec, Object implConfig)
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/42600592/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/LoadableDataSource.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/LoadableDataSource.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/LoadableDataSource.java
index 200a5a9..5b5844c 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/LoadableDataSource.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/LoadableDataSource.java
@@ -46,7 +46,7 @@ import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.job.JobSpecification;
-public class LoadableDataSource extends AqlDataSource {
+public class LoadableDataSource extends DataSource {
private final Dataset targetDataset;
private final List<List<String>> partitioningKeys;
@@ -56,7 +56,7 @@ public class LoadableDataSource extends AqlDataSource {
public LoadableDataSource(Dataset targetDataset, IAType itemType, IAType metaItemType, String adapter,
Map<String, String> properties) throws AlgebricksException, IOException {
- super(new AqlSourceId("loadable_dv", "loadable_ds"), itemType, metaItemType, AqlDataSourceType.LOADABLE, null);
+ super(new DataSourceId("loadable_dv", "loadable_ds"), itemType, metaItemType, Type.LOADABLE, null);
this.targetDataset = targetDataset;
this.adapter = adapter;
this.adapterProperties = properties;
@@ -127,7 +127,7 @@ public class LoadableDataSource extends AqlDataSource {
@Override
public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> buildDatasourceScanRuntime(
- AqlMetadataProvider aqlMetadataProvider, IDataSource<AqlSourceId> dataSource,
+ MetadataProvider metadataProvider, IDataSource<DataSourceId> dataSource,
List<LogicalVariable> scanVariables, List<LogicalVariable> projectVariables, boolean projectPushed,
List<LogicalVariable> minFilterVars, List<LogicalVariable> maxFilterVars, IOperatorSchema opSchema,
IVariableTypeEnvironment typeEnv, JobGenContext context, JobSpecification jobSpec, Object implConfig)
@@ -138,11 +138,11 @@ public class LoadableDataSource extends AqlDataSource {
boolean isAldsPKAutoGenerated = ((InternalDatasetDetails) alds.getTargetDataset().getDatasetDetails())
.isAutogenerated();
ARecordType itemType = (ARecordType) alds.getLoadedType();
- IAdapterFactory adapterFactory = aqlMetadataProvider.getConfiguredAdapterFactory(alds.getTargetDataset(),
+ IAdapterFactory adapterFactory = metadataProvider.getConfiguredAdapterFactory(alds.getTargetDataset(),
alds.getAdapter(), alds.getAdapterProperties(), itemType, isAldsPKAutoGenerated, aldsPartitioningKeys,
null);
RecordDescriptor rDesc = JobGenHelper.mkRecordDescriptor(typeEnv, opSchema, context);
- return aqlMetadataProvider.buildLoadableDatasetScan(jobSpec, adapterFactory, rDesc);
+ return metadataProvider.buildLoadableDatasetScan(jobSpec, adapterFactory, rDesc);
}
@Override
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/42600592/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataManagerUtil.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataManagerUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataManagerUtil.java
index 39ad1c6..536a688 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataManagerUtil.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataManagerUtil.java
@@ -25,7 +25,6 @@ import org.apache.asterix.common.config.DatasetConfig.DatasetType;
import org.apache.asterix.metadata.MetadataException;
import org.apache.asterix.metadata.MetadataManager;
import org.apache.asterix.metadata.MetadataTransactionContext;
-import org.apache.asterix.metadata.declared.AqlDataSource.AqlDataSourceType;
import org.apache.asterix.metadata.entities.Dataset;
import org.apache.asterix.metadata.entities.DatasourceAdapter;
import org.apache.asterix.metadata.entities.Datatype;
@@ -151,17 +150,16 @@ public class MetadataManagerUtil {
}
}
- public static AqlDataSource findDataSource(MetadataTransactionContext mdTxnCtx, AqlSourceId id)
+ public static DataSource findDataSource(MetadataTransactionContext mdTxnCtx, DataSourceId id)
throws AlgebricksException {
- AqlSourceId aqlId = id;
try {
- return lookupSourceInMetadata(mdTxnCtx, aqlId);
+ return lookupSourceInMetadata(mdTxnCtx, id);
} catch (MetadataException e) {
throw new AlgebricksException(e);
}
}
- public static AqlDataSource lookupSourceInMetadata(MetadataTransactionContext mdTxnCtx, AqlSourceId aqlId)
+ public static DataSource lookupSourceInMetadata(MetadataTransactionContext mdTxnCtx, DataSourceId aqlId)
throws AlgebricksException {
Dataset dataset = findDataset(mdTxnCtx, aqlId.getDataverseName(), aqlId.getDatasourceName());
if (dataset == null) {
@@ -170,8 +168,8 @@ public class MetadataManagerUtil {
IAType itemType = findType(mdTxnCtx, dataset.getItemTypeDataverseName(), dataset.getItemTypeName());
IAType metaItemType = findType(mdTxnCtx, dataset.getMetaItemTypeDataverseName(), dataset.getMetaItemTypeName());
INodeDomain domain = findNodeDomain(mdTxnCtx, dataset.getNodeGroupName());
- byte datasourceType = dataset.getDatasetType().equals(DatasetType.EXTERNAL) ? AqlDataSourceType.EXTERNAL_DATASET
- : AqlDataSourceType.INTERNAL_DATASET;
+ byte datasourceType = dataset.getDatasetType().equals(DatasetType.EXTERNAL) ? DataSource.Type.EXTERNAL_DATASET
+ : DataSource.Type.INTERNAL_DATASET;
return new DatasetDataSource(aqlId, dataset, itemType, metaItemType, datasourceType,
dataset.getDatasetDetails(), domain);
}