/** * Get the types of BTree index key fields * * @param index, * the index to consider. * @param recordType, * the main record type. * @param metaRecordType * the auxiliary meta record type. * @return a list of IATypes, one for each corresponding index key field. * @throws AlgebricksException */ public static List<IAType> getBTreeIndexKeyTypes(Index index, ARecordType recordType, ARecordType metaRecordType) throws AlgebricksException { List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); List<IAType> indexKeyTypes = new ArrayList<>(); for (int i = 0; i < index.getKeyFieldNames().size(); i++) { Pair<IAType, Boolean> keyPairType = Index.getNonNullableOpenFieldType(index.getKeyFieldTypes().get(i), index.getKeyFieldNames().get(i), chooseSource(keySourceIndicators, i, recordType, metaRecordType)); indexKeyTypes.add(keyPairType.first); } return indexKeyTypes; }
/** * Get the types of RTree index key fields * * @param index, * the index to consider. * @param recordType, * the main record type. * @param metaRecordType * the auxiliary meta record type. * @return a list of IATypes, one for each corresponding index key field. * @throws AlgebricksException */ public static List<IAType> getRTreeIndexKeyTypes(Index index, ARecordType recordType, ARecordType metaRecordType) throws AlgebricksException { List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); List<IAType> indexKeyTypes = new ArrayList<>(); ARecordType targetRecType = chooseSource(keySourceIndicators, 0, recordType, metaRecordType); Pair<IAType, Boolean> keyPairType = Index.getNonNullableOpenFieldType(index.getKeyFieldTypes().get(0), index.getKeyFieldNames().get(0), targetRecType); IAType keyType = keyPairType.first; IAType nestedKeyType = NonTaggedFormatUtil.getNestedSpatialType(keyType.getTypeTag()); int numKeys = KeyFieldTypeUtil.getNumSecondaryKeys(index, targetRecType, metaRecordType); for (int i = 0; i < numKeys; i++) { indexKeyTypes.add(nestedKeyType); } return indexKeyTypes; }
for (int i = 0; i < numSecondaryKeys; i++) { ARecordType sourceType; List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); if (keySourceIndicators == null || keySourceIndicators.get(i) == 0) { sourceType = recordType;
|| indexType == IndexType.LENGTH_PARTITIONED_NGRAM_INVIX; ARecordType sourceType; List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); if (keySourceIndicators == null || keySourceIndicators.get(0) == 0) { sourceType = recordType;
List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); if (keySourceIndicators == null || keySourceIndicators.get(0) == 0) { sourceType = recordType;
+ "There can be only one field as a key for the R-tree index."); List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); ARecordType sourceType; if (keySourceIndicators == null || keySourceIndicators.get(0) == 0) {
List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); switch (index.getIndexType()) { case BTREE:
List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); ARecordType sourceType; if (keySourceIndicators == null || keySourceIndicators.get(0) == 0) {
for (int i = 0; i < numSecondaryKeys; i++) { ARecordType sourceType; List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); if (keySourceIndicators == null || keySourceIndicators.get(i) == 0) { sourceType = recordType;
List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); if (keySourceIndicators == null || keySourceIndicators.get(0) == 0) { sourceType = recordType;
List<Integer> indicators = index.getKeyFieldSourceIndicators(); for (int i = 0; i < index.getKeyFieldNames().size(); i++) { IndexFieldId indexFieldId =
for (int i = 0; i < numSecondaryKeys; i++) { ARecordType sourceType; List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); if (keySourceIndicators == null || keySourceIndicators.get(i) == 0) { sourceType = recordType;
for (int i = 0; i < numSecondaryKeys; i++) { ARecordType sourceType; List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); if (keySourceIndicators == null || keySourceIndicators.get(i) == 0) { sourceType = recordType;
IndexFieldId indexFieldId = new IndexFieldId(index.getKeyFieldSourceIndicators().get(i), secondaryKeyFields.get(i), secondaryKeyTypes.get(i).getTypeTag()); LogicalVariable skVar = fieldVarsForNewRecord.get(indexFieldId);
ARecordType sourceType; int sourceColumn; List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); if (keySourceIndicators == null || keySourceIndicators.get(i) == 0) { sourceType = itemType;
ARecordType sourceType; int sourceColumn; List<Integer> keySourceIndicators = index.getKeyFieldSourceIndicators(); if (keySourceIndicators == null || keySourceIndicators.get(i) == 0) { sourceType = itemType;
List<Integer> indicators = secondaryIndex.getKeyFieldSourceIndicators(); IScalarEvaluatorFactory[] secondaryFieldAccessEvalFactories = new IScalarEvaluatorFactory[skNames.size()];
MetadataManager.INSTANCE.addIndex(mdTxnCtx, new Index(dataverseName, datasetName, indexName, index.getIndexType(), index.getKeyFieldNames(), index.getKeyFieldSourceIndicators(), index.getKeyFieldTypes(), index.isOverridingKeyFieldTypes(), index.isEnforced(), index.isPrimaryIndex(), MetadataUtil.PENDING_DROP_OP)); new Index(dataverseName, datasetName, externalIndex.getIndexName(), externalIndex.getIndexType(), externalIndex.getKeyFieldNames(), externalIndex.getKeyFieldSourceIndicators(), index.getKeyFieldTypes(), index.isOverridingKeyFieldTypes(), index.isEnforced(), externalIndex.isPrimaryIndex(), MetadataUtil.PENDING_DROP_OP)); MetadataManager.INSTANCE.addIndex(mdTxnCtx, new Index(dataverseName, datasetName, indexName, index.getIndexType(), index.getKeyFieldNames(), index.getKeyFieldSourceIndicators(), index.getKeyFieldTypes(), index.isOverridingKeyFieldTypes(), index.isEnforced(), index.isPrimaryIndex(), MetadataUtil.PENDING_DROP_OP));
List<Integer> keySourceIndicator = instance.getKeyFieldSourceIndicators(); boolean needSerialization = false; if (keySourceIndicator != null) {