Re: AW: Re: [SQL] behavior of ' = NULL' vs. MySQL vs. Stand ards

From: "Joe Conway" <joseph(dot)conway(at)home(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: AW: Re: [SQL] behavior of ' = NULL' vs. MySQL vs. Stand ards
Date: 2001-06-24 06:57:07
Message-ID: 01db01c0fc7a$e2e9d9c0$0205a8c0@jecw2k1
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Thanks for your thorough review and comments, Tom.

Here's a new patch for review. Summary of changes/response to earlier
comments:
- add a routine for NullTest nodes -- done.
- declare selectivity functions without fmgr notation -- done.
- create selfuncs.h for declarations -- done, but I didn't move anything
else out of builtins.h
- use DatumGetBool() and adjust style -- done
- create better default selectivities -- done:
- DEFAULT_UNK_SEL = 0.005
- DEFAULT_NOT_UNK_SEL = 1 - DEFAULT_UNK_SEL
- DEFAULT_BOOL_SEL = 0.5
- recurse clause_selectivity() for non-Var input -- done
- simplify MCV logic -- done, used 2nd approach (always use the first most
common val's frequency)

Questions:
- I added a debug define (BOOLTESTDEBUG) to selfuncs.h, and a corresponding
ifdef/elog NOTICE to clause_selectivity(). This was to help me debug/verify
the calculations. Should this be left in the code when I create a patch (it
is in this one), and if so, is there a preferred "standard" approach to this
type of debug code?
- Using the debug code mentioned above, I noted that clause_selectivity()
did not seem to get called at all for clauses like "where myfield = 0" or
"where myfield > 0". I haven't looked too closely at it yet, but I was
wondering if this is expected behavior?

Thanks,

-- Joe

Attachment Content-Type Size
newnodesel_01.diff application/octet-stream 11.2 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Brian Hirt 2001-06-24 07:12:38 Problem with plpgsql functions and foreign key constraints.
Previous Message Philip Warner 2001-06-24 05:45:52 Re: Why would this use 600Meg of VM?