NULL and missing are two different concepts. Null means unknown, not missing. The data structure should have an ability to store NULL to be compatible with RDBMS semantics. While a dynamic column is similar to a NoSQL document store it is not one, and should support SQL semantics.
IMHO --Justin Sent from my iPhone > On Feb 3, 2015, at 7:58 AM, Tom Worster <f...@thefsb.org> wrote: > > Hi Sergei, > > On 2/3/15, 7:13 AM, "Sergei Golubchik" <s...@mariadb.org> wrote: > >>> A dynamic column cannot be NULL, so using a JSON null (a different kind >>> of >>> null) to express "dynamic column exists but cannot be represented as >>> requested" should work. The ORM would then have the names and positions >>> in >>> the structure of all the BINARY dynamic columns. With that it can send a >>> SELECT with one or more COLUMN_GET(dyncol_blob, "name" AS BINARY) >>> expressions. I could live with that. >> >> Hmm. May be a dynamic column cannot be NULL now, but this is not a >> conceptual limitation, there is no logical reason why it coldn't be. > > There may be no *technical* reason why it couldn't be but I see no > *logical* reason why it would be. I can understand how tables (be they > schema, temp or select) need NULL to say "it's not here" but a dynamic > column existing and having a "value" of NULL is a non-sequitur. Writing a > NULL to a dynamic column currently deletes it and I think that makes > perfect sense. (I think we see know how the word "column" in "dynamic > columns" can be misleading.) > > >> So I'd rather keep JSON null for that. What I mean was that the whole >> COLUMN_GET should fail and return NULL, just as any function does when >> it gets invalid input: >> >> MariaDB [test]> select uncompress("foobar"), 1/0, sqrt(-2); >> +----------------------+------+----------+ >> | uncompress("foobar") | 1/0 | sqrt(-2) | >> +----------------------+------+----------+ >> | NULL | NULL | NULL | >> +----------------------+------+----------+ >> >> (it can also throw a warning, like uncompress does). > > I see what you mean but it's not a very useful answer. Much more useful to > get the names, datatypes and structure plus all the values that aren't > non-unicode strings. > > Tom > > > > _______________________________________________ > Mailing list: https://launchpad.net/~maria-discuss > Post to : maria-discuss@lists.launchpad.net > Unsubscribe : https://launchpad.net/~maria-discuss > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp