/** * Fetches the associated primary index from the given DATASOURCESCAN operator. */ protected Index getPrimaryIndexFromDataSourceScanOp(ILogicalOperator dataSourceScanOp) throws AlgebricksException { if (dataSourceScanOp.getOperatorTag() != LogicalOperatorTag.DATASOURCESCAN) { return null; } Pair<String, String> datasetInfo = AnalysisUtil.getDatasetInfo((DataSourceScanOperator) dataSourceScanOp); String dataverseName = datasetInfo.first; String datasetName = datasetInfo.second; Index idxUsedInUnnestMap = metadataProvider.getIndex(dataverseName, datasetName, datasetName); return idxUsedInUnnestMap; }
@Override public IDataSourceIndex<String, DataSourceId> findDataSourceIndex(String indexId, DataSourceId dataSourceId) throws AlgebricksException { DataSource source = findDataSource(dataSourceId); Dataset dataset = ((DatasetDataSource) source).getDataset(); Index secondaryIndex = getIndex(dataset.getDataverseName(), dataset.getDatasetName(), indexId); return (secondaryIndex != null) ? new DataSourceIndex(secondaryIndex, dataset.getDataverseName(), dataset.getDatasetName(), this) : null; }
String dataverseName = ConstantExpressionUtil.getStringArgument(functionCallExpression, 2); String datasetName = ConstantExpressionUtil.getStringArgument(functionCallExpression, 3); Index index = ((MetadataProvider) metadataProvider).getIndex(dataverseName, datasetName, indexName); if (!index.isPrimaryIndex()) { return null;
ARecordType itemType = (ARecordType) metadataProvider.findType(dataset); ARecordType metaItemType = (ARecordType) metadataProvider.findMetaType(dataset); Index primaryIndex = metadataProvider.getIndex(dataset.getDataverseName(), dataset.getDatasetName(), dataset.getDatasetName()); Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint =