On May 5, 2014, at 3:03 PM, Petite Abeille <petite.abei...@gmail.com> wrote:
> > On May 5, 2014, at 9:15 PM, RSmith <rsm...@rsweb.co.za> wrote: > >> Je suis desole mon ami… > > Moi aussi :P > > I have no quarrel with you, good Sir Knight, but I must cross this bridge: > > select 1 where 1 is 1; > select 1 where 1 is not 1; > select 1 where 1 is ( 1 = 1 ); Cross what bridge? You seem to be trying to use common sense and semantic meaning to make an argument. To quote an old CS prof, “If you argue in English**, you’re wrong.” Math and formal specifications are really the only thing here, and these do exactly what one would expect. ** or any other spoken language. So far this whole discussion seems to boiled down to the fact that SQLite doesn’t have a native Boolean type. That’s it. No, it doesn’t. Once we accept that, everything else makes perfect sense based off existing computer languages and historical ideas. Can we all move on? > select 1 in ( null ); — oh… > select 1 in ( not null ); — really? Since the rules of three-valued logic make it very clear that the value of the expression “not NULL” is “NULL”, where you really expecting something different? What do you expect the opposite of NULL to be? http://en.wikipedia.org/wiki/Three-valued_logic#Kleene_logic Yes, three-valued logic is confusing to people that try to think of it in terms of “Boolean logic with special rules,” but it is all quite formal and clearly defined… it just isn’t Boolean logic. -j -- Jay A. Kreibich < J A Y @ K R E I B I.C H > "Intelligence is like underwear: it is important that you have it, but showing it to the wrong people has the tendency to make them feel uncomfortable." -- Angela Johnson _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users