Search in sources :

Example 1 with BitmapIndexOptions

use of com.hazelcast.config.BitmapIndexOptions in project hazelcast by hazelcast.

the class PlanExecutor method execute.

SqlResult execute(CreateIndexPlan plan) {
    if (!plan.ifNotExists()) {
        // If `IF NOT EXISTS` isn't specified, we do a simple check for the existence of the index. This is not
        // OK if two clients concurrently try to create the index (they could both succeed), but covers the
        // common case. There's no atomic operation to create an index in IMDG, so it's not easy to
        // implement.
        MapContainer mapContainer = getMapContainer(hazelcastInstance.getMap(plan.mapName()));
        if (mapContainer.getIndexes().getIndex(plan.indexName()) != null) {
            throw QueryException.error("Can't create index: index '" + plan.indexName() + "' already exists");
        }
    }
    IndexConfig indexConfig = new IndexConfig(plan.indexType(), plan.attributes()).setName(plan.indexName());
    if (plan.indexType().equals(IndexType.BITMAP)) {
        Map<String, String> options = plan.options();
        String uniqueKey = options.get(UNIQUE_KEY);
        if (uniqueKey == null) {
            uniqueKey = DEFAULT_UNIQUE_KEY;
        }
        String uniqueKeyTransform = options.get(UNIQUE_KEY_TRANSFORMATION);
        if (uniqueKeyTransform == null) {
            uniqueKeyTransform = DEFAULT_UNIQUE_KEY_TRANSFORMATION;
        }
        BitmapIndexOptions bitmapIndexOptions = new BitmapIndexOptions();
        bitmapIndexOptions.setUniqueKey(uniqueKey);
        bitmapIndexOptions.setUniqueKeyTransformation(UniqueKeyTransformation.fromName(uniqueKeyTransform));
        indexConfig.setBitmapIndexOptions(bitmapIndexOptions);
    }
    // The `addIndex()` call does nothing, if an index with the same name already exists.
    // Even if its config is different.
    hazelcastInstance.getMap(plan.mapName()).addIndex(indexConfig);
    return UpdateSqlResultImpl.createUpdateCountResult(0);
}
Also used : IndexConfig(com.hazelcast.config.IndexConfig) BitmapIndexOptions(com.hazelcast.config.BitmapIndexOptions) MapContainer(com.hazelcast.map.impl.MapContainer)

Example 2 with BitmapIndexOptions

use of com.hazelcast.config.BitmapIndexOptions in project hazelcast by hazelcast.

the class IndexUtils method generateXml.

public static void generateXml(ConfigXmlGenerator.XmlGenerator gen, List<IndexConfig> indexConfigs) {
    if (indexConfigs.isEmpty()) {
        return;
    }
    gen.open("indexes");
    for (IndexConfig indexCfg : indexConfigs) {
        if (indexCfg.getName() != null) {
            gen.open("index", "name", indexCfg.getName(), "type", indexCfg.getType().name());
        } else {
            gen.open("index", "type", indexCfg.getType().name());
        }
        gen.open("attributes");
        for (String attribute : indexCfg.getAttributes()) {
            gen.node("attribute", attribute);
        }
        gen.close();
        if (indexCfg.getType() == IndexType.BITMAP) {
            BitmapIndexOptions bitmapIndexOptions = indexCfg.getBitmapIndexOptions();
            gen.open("bitmap-index-options");
            gen.node("unique-key", bitmapIndexOptions.getUniqueKey());
            gen.node("unique-key-transformation", bitmapIndexOptions.getUniqueKeyTransformation());
            gen.close();
        }
        gen.close();
    }
    gen.close();
}
Also used : IndexConfig(com.hazelcast.config.IndexConfig) BitmapIndexOptions(com.hazelcast.config.BitmapIndexOptions)

Example 3 with BitmapIndexOptions

use of com.hazelcast.config.BitmapIndexOptions in project hazelcast by hazelcast.

the class ConfigDataSerializerHook method createFactory.

@Override
public DataSerializableFactory createFactory() {
    ConstructorFunction<Integer, IdentifiedDataSerializable>[] constructors = new ConstructorFunction[LEN];
    constructors[WAN_REPLICATION_CONFIG] = arg -> new WanReplicationConfig();
    constructors[WAN_CONSUMER_CONFIG] = arg -> new WanConsumerConfig();
    constructors[WAN_CUSTOM_PUBLISHER_CONFIG] = arg -> new WanCustomPublisherConfig();
    constructors[WAN_BATCH_PUBLISHER_CONFIG] = arg -> new WanBatchPublisherConfig();
    constructors[NEAR_CACHE_CONFIG] = arg -> new NearCacheConfig();
    constructors[NEAR_CACHE_PRELOADER_CONFIG] = arg -> new NearCachePreloaderConfig();
    constructors[ADD_DYNAMIC_CONFIG_OP] = arg -> new AddDynamicConfigOperation();
    constructors[DYNAMIC_CONFIG_PRE_JOIN_OP] = arg -> new DynamicConfigPreJoinOperation();
    constructors[MULTIMAP_CONFIG] = arg -> new MultiMapConfig();
    constructors[LISTENER_CONFIG] = arg -> new ListenerConfig();
    constructors[ENTRY_LISTENER_CONFIG] = arg -> new EntryListenerConfig();
    constructors[MAP_CONFIG] = arg -> new MapConfig();
    constructors[MAP_STORE_CONFIG] = arg -> new MapStoreConfig();
    constructors[MAP_PARTITION_LOST_LISTENER_CONFIG] = arg -> new MapPartitionLostListenerConfig();
    constructors[INDEX_CONFIG] = arg -> new IndexConfig();
    constructors[MAP_ATTRIBUTE_CONFIG] = arg -> new AttributeConfig();
    constructors[QUERY_CACHE_CONFIG] = arg -> new QueryCacheConfig();
    constructors[PREDICATE_CONFIG] = arg -> new PredicateConfig();
    constructors[PARTITION_STRATEGY_CONFIG] = arg -> new PartitioningStrategyConfig();
    constructors[HOT_RESTART_CONFIG] = arg -> new HotRestartConfig();
    constructors[TOPIC_CONFIG] = arg -> new TopicConfig();
    constructors[RELIABLE_TOPIC_CONFIG] = arg -> new ReliableTopicConfig();
    constructors[ITEM_LISTENER_CONFIG] = arg -> new ItemListenerConfig();
    constructors[QUEUE_STORE_CONFIG] = arg -> new QueueStoreConfig();
    constructors[QUEUE_CONFIG] = arg -> new QueueConfig();
    constructors[LIST_CONFIG] = arg -> new ListConfig();
    constructors[SET_CONFIG] = arg -> new SetConfig();
    constructors[EXECUTOR_CONFIG] = arg -> new ExecutorConfig();
    constructors[DURABLE_EXECUTOR_CONFIG] = arg -> new DurableExecutorConfig();
    constructors[SCHEDULED_EXECUTOR_CONFIG] = arg -> new ScheduledExecutorConfig();
    constructors[REPLICATED_MAP_CONFIG] = arg -> new ReplicatedMapConfig();
    constructors[RINGBUFFER_CONFIG] = arg -> new RingbufferConfig();
    constructors[RINGBUFFER_STORE_CONFIG] = arg -> new RingbufferStoreConfig();
    constructors[CARDINALITY_ESTIMATOR_CONFIG] = arg -> new CardinalityEstimatorConfig();
    constructors[SIMPLE_CACHE_CONFIG] = arg -> new CacheSimpleConfig();
    constructors[SIMPLE_CACHE_CONFIG_EXPIRY_POLICY_FACTORY_CONFIG] = arg -> new CacheSimpleConfig.ExpiryPolicyFactoryConfig();
    constructors[SIMPLE_CACHE_CONFIG_TIMED_EXPIRY_POLICY_FACTORY_CONFIG] = arg -> new CacheSimpleConfig.ExpiryPolicyFactoryConfig.TimedExpiryPolicyFactoryConfig();
    constructors[SIMPLE_CACHE_CONFIG_DURATION_CONFIG] = arg -> new CacheSimpleConfig.ExpiryPolicyFactoryConfig.DurationConfig();
    constructors[SPLIT_BRAIN_PROTECTION_CONFIG] = arg -> new SplitBrainProtectionConfig();
    constructors[EVENT_JOURNAL_CONFIG] = arg -> new EventJournalConfig();
    constructors[SPLIT_BRAIN_PROTECTION_LISTENER_CONFIG] = arg -> new SplitBrainProtectionListenerConfig();
    constructors[CACHE_PARTITION_LOST_LISTENER_CONFIG] = arg -> new CachePartitionLostListenerConfig();
    constructors[SIMPLE_CACHE_ENTRY_LISTENER_CONFIG] = arg -> new CacheSimpleEntryListenerConfig();
    constructors[FLAKE_ID_GENERATOR_CONFIG] = arg -> new FlakeIdGeneratorConfig();
    constructors[MERGE_POLICY_CONFIG] = arg -> new MergePolicyConfig();
    constructors[PN_COUNTER_CONFIG] = arg -> new PNCounterConfig();
    constructors[MERKLE_TREE_CONFIG] = arg -> new MerkleTreeConfig();
    constructors[WAN_SYNC_CONFIG] = arg -> new WanSyncConfig();
    constructors[KUBERNETES_CONFIG] = arg -> new KubernetesConfig();
    constructors[EUREKA_CONFIG] = arg -> new EurekaConfig();
    constructors[GCP_CONFIG] = arg -> new GcpConfig();
    constructors[AZURE_CONFIG] = arg -> new AzureConfig();
    constructors[AWS_CONFIG] = arg -> new AwsConfig();
    constructors[DISCOVERY_CONFIG] = arg -> new DiscoveryConfig();
    constructors[DISCOVERY_STRATEGY_CONFIG] = arg -> new DiscoveryStrategyConfig();
    constructors[WAN_REPLICATION_REF] = arg -> new WanReplicationRef();
    constructors[EVICTION_CONFIG] = arg -> new EvictionConfig();
    constructors[PERMISSION_CONFIG] = arg -> new PermissionConfig();
    constructors[BITMAP_INDEX_OPTIONS] = arg -> new BitmapIndexOptions();
    constructors[DATA_PERSISTENCE_CONFIG] = arg -> new DataPersistenceConfig();
    constructors[TIERED_STORE_CONFIG] = arg -> new TieredStoreConfig();
    constructors[MEMORY_TIER_CONFIG] = arg -> new MemoryTierConfig();
    constructors[DISK_TIER_CONFIG] = arg -> new DiskTierConfig();
    return new ArrayDataSerializableFactory(constructors);
}
Also used : PermissionConfig(com.hazelcast.config.PermissionConfig) AzureConfig(com.hazelcast.config.AzureConfig) AddDynamicConfigOperation(com.hazelcast.internal.dynamicconfig.AddDynamicConfigOperation) PNCounterConfig(com.hazelcast.config.PNCounterConfig) ExecutorConfig(com.hazelcast.config.ExecutorConfig) ScheduledExecutorConfig(com.hazelcast.config.ScheduledExecutorConfig) DurableExecutorConfig(com.hazelcast.config.DurableExecutorConfig) WanBatchPublisherConfig(com.hazelcast.config.WanBatchPublisherConfig) QueueStoreConfig(com.hazelcast.config.QueueStoreConfig) WanSyncConfig(com.hazelcast.config.WanSyncConfig) DataPersistenceConfig(com.hazelcast.config.DataPersistenceConfig) ReplicatedMapConfig(com.hazelcast.config.ReplicatedMapConfig) WanCustomPublisherConfig(com.hazelcast.config.WanCustomPublisherConfig) EurekaConfig(com.hazelcast.config.EurekaConfig) WanReplicationConfig(com.hazelcast.config.WanReplicationConfig) KubernetesConfig(com.hazelcast.config.KubernetesConfig) MultiMapConfig(com.hazelcast.config.MultiMapConfig) CacheSimpleEntryListenerConfig(com.hazelcast.config.CacheSimpleEntryListenerConfig) EntryListenerConfig(com.hazelcast.config.EntryListenerConfig) PredicateConfig(com.hazelcast.config.PredicateConfig) NearCachePreloaderConfig(com.hazelcast.config.NearCachePreloaderConfig) RingbufferConfig(com.hazelcast.config.RingbufferConfig) RingbufferStoreConfig(com.hazelcast.config.RingbufferStoreConfig) GcpConfig(com.hazelcast.config.GcpConfig) AttributeConfig(com.hazelcast.config.AttributeConfig) CacheSimpleEntryListenerConfig(com.hazelcast.config.CacheSimpleEntryListenerConfig) MergePolicyConfig(com.hazelcast.config.MergePolicyConfig) QueueConfig(com.hazelcast.config.QueueConfig) QueryCacheConfig(com.hazelcast.config.QueryCacheConfig) DiscoveryStrategyConfig(com.hazelcast.config.DiscoveryStrategyConfig) DynamicConfigPreJoinOperation(com.hazelcast.internal.dynamicconfig.DynamicConfigPreJoinOperation) NearCacheConfig(com.hazelcast.config.NearCacheConfig) BitmapIndexOptions(com.hazelcast.config.BitmapIndexOptions) MemoryTierConfig(com.hazelcast.config.MemoryTierConfig) MapStoreConfig(com.hazelcast.config.MapStoreConfig) SplitBrainProtectionConfig(com.hazelcast.config.SplitBrainProtectionConfig) MerkleTreeConfig(com.hazelcast.config.MerkleTreeConfig) SplitBrainProtectionListenerConfig(com.hazelcast.config.SplitBrainProtectionListenerConfig) ItemListenerConfig(com.hazelcast.config.ItemListenerConfig) CacheSimpleEntryListenerConfig(com.hazelcast.config.CacheSimpleEntryListenerConfig) ListenerConfig(com.hazelcast.config.ListenerConfig) EntryListenerConfig(com.hazelcast.config.EntryListenerConfig) CachePartitionLostListenerConfig(com.hazelcast.config.CachePartitionLostListenerConfig) MapPartitionLostListenerConfig(com.hazelcast.config.MapPartitionLostListenerConfig) SplitBrainProtectionListenerConfig(com.hazelcast.config.SplitBrainProtectionListenerConfig) WanConsumerConfig(com.hazelcast.config.WanConsumerConfig) FlakeIdGeneratorConfig(com.hazelcast.config.FlakeIdGeneratorConfig) DiskTierConfig(com.hazelcast.config.DiskTierConfig) ItemListenerConfig(com.hazelcast.config.ItemListenerConfig) SetConfig(com.hazelcast.config.SetConfig) MapConfig(com.hazelcast.config.MapConfig) MultiMapConfig(com.hazelcast.config.MultiMapConfig) ReplicatedMapConfig(com.hazelcast.config.ReplicatedMapConfig) ListConfig(com.hazelcast.config.ListConfig) CardinalityEstimatorConfig(com.hazelcast.config.CardinalityEstimatorConfig) HotRestartConfig(com.hazelcast.config.HotRestartConfig) CacheSimpleConfig(com.hazelcast.config.CacheSimpleConfig) AwsConfig(com.hazelcast.config.AwsConfig) MapPartitionLostListenerConfig(com.hazelcast.config.MapPartitionLostListenerConfig) ReliableTopicConfig(com.hazelcast.config.ReliableTopicConfig) WanReplicationRef(com.hazelcast.config.WanReplicationRef) EvictionConfig(com.hazelcast.config.EvictionConfig) DurableExecutorConfig(com.hazelcast.config.DurableExecutorConfig) CachePartitionLostListenerConfig(com.hazelcast.config.CachePartitionLostListenerConfig) ScheduledExecutorConfig(com.hazelcast.config.ScheduledExecutorConfig) ReliableTopicConfig(com.hazelcast.config.ReliableTopicConfig) TopicConfig(com.hazelcast.config.TopicConfig) EventJournalConfig(com.hazelcast.config.EventJournalConfig) ConstructorFunction(com.hazelcast.internal.util.ConstructorFunction) PartitioningStrategyConfig(com.hazelcast.config.PartitioningStrategyConfig) IndexConfig(com.hazelcast.config.IndexConfig) TieredStoreConfig(com.hazelcast.config.TieredStoreConfig) DiscoveryConfig(com.hazelcast.config.DiscoveryConfig) ArrayDataSerializableFactory(com.hazelcast.internal.serialization.impl.ArrayDataSerializableFactory)

Aggregations

BitmapIndexOptions (com.hazelcast.config.BitmapIndexOptions)3 IndexConfig (com.hazelcast.config.IndexConfig)3 AttributeConfig (com.hazelcast.config.AttributeConfig)1 AwsConfig (com.hazelcast.config.AwsConfig)1 AzureConfig (com.hazelcast.config.AzureConfig)1 CachePartitionLostListenerConfig (com.hazelcast.config.CachePartitionLostListenerConfig)1 CacheSimpleConfig (com.hazelcast.config.CacheSimpleConfig)1 CacheSimpleEntryListenerConfig (com.hazelcast.config.CacheSimpleEntryListenerConfig)1 CardinalityEstimatorConfig (com.hazelcast.config.CardinalityEstimatorConfig)1 DataPersistenceConfig (com.hazelcast.config.DataPersistenceConfig)1 DiscoveryConfig (com.hazelcast.config.DiscoveryConfig)1 DiscoveryStrategyConfig (com.hazelcast.config.DiscoveryStrategyConfig)1 DiskTierConfig (com.hazelcast.config.DiskTierConfig)1 DurableExecutorConfig (com.hazelcast.config.DurableExecutorConfig)1 EntryListenerConfig (com.hazelcast.config.EntryListenerConfig)1 EurekaConfig (com.hazelcast.config.EurekaConfig)1 EventJournalConfig (com.hazelcast.config.EventJournalConfig)1 EvictionConfig (com.hazelcast.config.EvictionConfig)1 ExecutorConfig (com.hazelcast.config.ExecutorConfig)1 FlakeIdGeneratorConfig (com.hazelcast.config.FlakeIdGeneratorConfig)1