public static Index getPrimaryIndex(Dataset dataset) { InternalDatasetDetails id = (InternalDatasetDetails) dataset.getDatasetDetails(); return new Index(dataset.getDataverseName(), dataset.getDatasetName(), dataset.getDatasetName(), DatasetConfig.IndexType.BTREE, id.getPartitioningKey(), id.getKeySourceIndicator(), id.getPrimaryKeyType(), false, false, true, dataset.getPendingOp()); }
public static Dataset createTransactionDataset(Dataset dataset) { ExternalDatasetDetails originalDsd = (ExternalDatasetDetails) dataset.getDatasetDetails(); ExternalDatasetDetails dsd = new ExternalDatasetDetails(originalDsd.getAdapter(), originalDsd.getProperties(), originalDsd.getTimestamp(), TransactionState.BEGIN); return new Dataset(dataset.getDataverseName(), dataset.getDatasetName(), dataset.getItemTypeDataverseName(), dataset.getItemTypeName(), dataset.getNodeGroupName(), dataset.getCompactionPolicy(), dataset.getCompactionPolicyProperties(), dsd, dataset.getHints(), DatasetType.EXTERNAL, dataset.getDatasetId(), dataset.getPendingOp()); }
public static List<String> getFilterField(Dataset dataset) { return ((InternalDatasetDetails) dataset.getDatasetDetails()).getFilterField(); }
@Override public List<List<String>> getPrimaryKeys() { if (getDatasetType() == DatasetType.EXTERNAL) { return IndexingConstants.getRIDKeys(((ExternalDatasetDetails) getDatasetDetails()).getProperties()); } return ((InternalDatasetDetails) getDatasetDetails()).getPartitioningKey(); }
public static int[] getBtreeFieldsIfFiltered(Dataset dataset, Index index) throws AlgebricksException { if (index.isPrimaryIndex()) { return DatasetUtil.createBTreeFieldsWhenThereisAFilter(dataset); } int numPrimaryKeys = dataset.getPrimaryKeys().size(); int numSecondaryKeys = index.getKeyFieldNames().size(); int[] btreeFields = new int[numSecondaryKeys + numPrimaryKeys]; for (int k = 0; k < btreeFields.length; k++) { btreeFields[k] = k; } return btreeFields; }
private void createIndex() throws Exception { dataset = StorageTestUtils.DATASET; secondaryIndexEntity = new Index(dataset.getDataverseName(), dataset.getDatasetName(), SECONDARY_INDEX_NAME, SECONDARY_INDEX_TYPE, SECONDARY_INDEX_FIELD_NAMES, SECONDARY_INDEX_FIELD_INDICATORS, SECONDARY_INDEX_FIELD_TYPES, false, false, false, 0); primaryIndexInfos = new PrimaryIndexInfo[NUM_PARTITIONS]; secondaryIndexInfo = new SecondaryIndexInfo[NUM_PARTITIONS]; for (int i = 0; i < NUM_PARTITIONS; i++) { primaryIndexInfos[i] = StorageTestUtils.createPrimaryIndex(nc, i); secondaryIndexInfo[i] = nc.createSecondaryIndex(primaryIndexInfos[i], secondaryIndexEntity, StorageTestUtils.STORAGE_MANAGER, i); } }
public CompiledIndexCompactStatement(Dataset dataset, Index index) { super(dataset.getDataverseName(), dataset.getDatasetName()); this.dataset = dataset; this.index = index; }
/** * get the IndexOperationTrackerFactory for a particular index on the dataset * * @param index * the index * @return an instance of {@link org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory} */ public ILSMOperationTrackerFactory getIndexOperationTrackerFactory(Index index) { return index.isPrimaryIndex() ? new PrimaryIndexOperationTrackerFactory(getDatasetId()) : new SecondaryIndexOperationTrackerFactory(getDatasetId()); }
private static void appendExternalRecPrimaryKeys(Dataset dataset, List<Object> target) throws AlgebricksException { int numPrimaryKeys = IndexingConstants.getRIDSize(((ExternalDatasetDetails) dataset.getDatasetDetails()).getProperties()); for (int i = 0; i < numPrimaryKeys; i++) { target.add(IndexingConstants.getFieldType(i)); } }
public String getDefaultDataverseName() { return defaultDataverse.getDataverseName(); }
@Override public boolean isScanAccessPathALeaf() { return dataset.getDatasetType() == DatasetType.EXTERNAL; }
@Override public String getId() { return index.getIndexName(); }
public boolean isSecondaryIndex() { return !isPrimaryIndex(); }
@Override public String getDatasetName() { return index.getDatasetName(); }
@Override public String getDataverseName() { return index.getDataverseName(); }
/** * Checks whether the given index is an inverted index or not. */ public static boolean isInvertedIndex(Index index) { switch (index.getIndexType()) { case SINGLE_PARTITION_NGRAM_INVIX: case SINGLE_PARTITION_WORD_INVIX: case LENGTH_PARTITIONED_NGRAM_INVIX: case LENGTH_PARTITIONED_WORD_INVIX: return true; default: return false; } }
private static ITypeTraits[] getInvListTypeTraits(MetadataProvider metadataProvider, Dataset dataset, ARecordType recordType, ARecordType metaType) throws AlgebricksException { ITypeTraits[] primaryTypeTraits = dataset.getPrimaryTypeTraits(metadataProvider, recordType, metaType); ITypeTraits[] typeTraits = new ITypeTraits[primaryTypeTraits.length - 1]; for (int i = 0; i < typeTraits.length; i++) { typeTraits[i] = primaryTypeTraits[i]; } return typeTraits; }
private static IBinaryComparatorFactory[] getInvListComparatorFactories(MetadataProvider metadataProvider, Dataset dataset, ARecordType recordType, ARecordType metaType) throws AlgebricksException { return dataset.getPrimaryComparatorFactories(metadataProvider, recordType, metaType); }
public static boolean isRefereshActive(ExternalDatasetDetails ds) { return ds.getState() != TransactionState.COMMIT; }
public static String getFullyQualifiedName(Dataset dataset) { return dataset.getDataverseName() + '.' + dataset.getDatasetName(); }