Description
Consider the following case:
1) Execute SQL: TABLE Person ...}}
2) Then again: TABLE Person ...}}
Second call will lead to exception in exchange thread and will hang the whole cluster.
We need to add validation of CacheConfiguration.queryEntities wrt to other caches. This check should be performed in discovery thread. Note that we cannot rely on GridQueryProcessor or IgniteH2Indexing state, as some cache start requests may already be enqueued to exchange worker. Instead, we should perform cross-cache validation base only on two things:
1) DynamicCacheDescriptor.cacheCfg
2) DynamicCacheDescriptor.schema
That is, we should resolve cache schema name from configuration, tables and indexes from schema, and then cross-validate them with other caches.
Attachments
Issue Links
- Is contained by
-
IGNITE-4651 Support CREATE TABLE and DROP TABLE commands
- Resolved
-
IGNITE-5054 Support SQL schema sharing between different caches
- Resolved
- is duplicated by
-
IGNITE-5360 Validate SQL configuration state from discovery thread
- Closed
- relates to
-
IGNITE-10195 Cannot create caches with different names but with same indexed types and schema name
- Resolved
- links to