Guys, DDL is too broad topic, I think it makes sense to split the needed functionality and discuss each part separately.
Lets start with dynamic SQL index creation, since dynamic table creation usually makes no sense without indexes. I suggest the following plan here: 1. Create method IgniteCacheEx.createQueryIndex(QueryIndex). 2. Use DiscoveryCustomEvents to exchange information about created indexes. 3. In the first version lock the whole SQL table from modifications. 4. Add all the data to the created index from PK. 5. Notify everyone that all the participating data nodes have completed index building using DiscoveryCustomEvents. 6. Implement CREATE INDEX command handling. Items 2 and 5 must become a common mechanism for all other DDL commands we are going to support. Sergi