i will give some ideas , some could be stupid but that's just ideas...
1)could be nice a json language as data results, for example
SELECT {'some array':'some value',column1:column2} AS column1
FROM some_table
the result of {} is a string utf8, but well know as json format, the sql server just interpret it and return to client as string, at client side we can include a json feature to auto translate or not, internally we could use MDC format, for example...
2)SELECT dynamic_column AS column1 <- that's the main problem
FROM some_table
it could return the json format of dynamic column
how? i don't know..., maybe include a flag at column (CREATE TABLE) to check if the column value is dynamic column or not?
or at client side, a funtion to translate it, check that in this example MDC format to client side isn't a "good" idea (since JSON is human readable), client side know better how to use json, but maybe at storage level MDC is smaller than json, must think about it...
3) INSERT INTO table (string_column) VALUES ({'some_array':'some value'});
in this example {} is auto translated to MDC
others problems....
WHERE column = {'a':'b','c':'d'} <- auto translate to MDC string, check that we will have problems since: {'c':'d','a':'b'}!=={'a':'b','c':'d'}, maybe we should include a new operator? === <- identical, ==/= <- equal ? the diference is object keys order
4)WHERE column LIKE {'some_array':'abc'} <- what should be done? jpath search?! maybe we should include a new function "SEARCH" WHERE column SEARCH {'some_array':'abc'}?