List:Internals« Previous MessageNext Message »
From:Michael Widenius Date:November 28 2000 1:57am
Subject:Re: Index with condition? [A distant idea]
View as plain text  

Do you still remember this discussion:

Jan> I know Informix a little bit.
Jan> Their server is basically in two possible modes:
Jan>  * online: serving clients.
Jan>  * quiescent: checking and repairing dbspaces.
Jan> When the server is brought up, it enters the quiescent mode
Jan> and "mounts" all the dbspaces it should work with.
Jan> Only when it's ready, it enters the online mode.
Jan> If you pass an option to the server,
Jan> it only does the quiescent part and then exits.
Jan> This way, they could get rid of standalone utilities for the check & repair.

Jan> I'm not saying MySQL should go this direction.
Jan> After all, MySQL's data files are very different in nature from Informix's
> dbspaces
Jan> (those can be raw devices or cooked files, but the structure is page-oriented,
Jan> just like Oracle).

I just asked a guy from the ANSI SQL standard committee about this.

I mailed the following example to him and asked if it was according to
the standard to accept the following rows WITHOUT any errors:

create table crash_q (a int, b int, unique (a,b));
insert into crash_q values (1,1);
insert into crash_q values (1,null);
insert into crash_q values (1,null);

His answer was:

'Your interpretation of the semantics of null values and unique constraints is
 correct. A null value in any uniqueness column will cause that row not to be
 considered a duplicate of any other row'

It looks like Informix and Oracle are not following the standard in
this case...

Anyway, I have added a test for this in crash-me so that we can get
some more information about this next time we run it.