maria-discuss team mailing list archive
Mailing list archive
Re: Restated: JSON cannot represent binary data
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.
Sent from my iPhone
> On Feb 3, 2015, at 7:58 AM, Tom Worster <fsb@xxxxxxxxxx> wrote:
> Hi Sergei,
> On 2/3/15, 7:13 AM, "Sergei Golubchik" <serg@xxxxxxxxxxx> wrote:
>>> A dynamic column cannot be NULL, so using a JSON null (a different kind
>>> null) to express "dynamic column exists but cannot be represented as
>>> requested" should work. The ORM would then have the names and positions
>>> 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.
> Mailing list: https://launchpad.net/~maria-discuss
> Post to : maria-discuss@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~maria-discuss
> More help : https://help.launchpad.net/ListHelp