Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.
|Comment:||Comment enhancement to better explain the logic in the "x IS NULL" optimization.|
|Downloads:||Tarball | ZIP archive | SQL archive|
|Timelines:||family | ancestors | descendants | both | trunk|
|Files:||files | file ages | folders|
|User & Date:||drh 2011-03-17 01:58:21|
|16:45||Update the implementation of ".testctrl" in the command-line shell to use a look-up table rather than a long sequence of if-elses. Shorten source code lines of shell.c to 80 characters or less. (check-in: 54bacb95 user: drh tags: trunk)|
|01:58||Comment enhancement to better explain the logic in the "x IS NULL" optimization. (check-in: 869f8947 user: drh tags: trunk)|
|01:34||Enhances to the query planner such that "x IS NULL" constraints take the STAT2 statistics into account, just like "x=VALUE" constraints. (check-in: 23531768 user: drh tags: trunk)|
Changes to src/where.c.
2516 2516 2517 2517 #ifdef SQLITE_ENABLE_STAT2 2518 2518 /* 2519 2519 ** Estimate the number of rows that will be returned based on 2520 2520 ** an equality constraint x=VALUE and where that VALUE occurs in 2521 2521 ** the histogram data. This only works when x is the left-most 2522 2522 ** column of an index and sqlite_stat2 histogram data is available 2523 -** for that index. 2523 +** for that index. When pExpr==NULL that means the constraint is 2524 +** "x IS NULL" instead of "x=VALUE". 2524 2525 ** 2525 2526 ** Write the estimated row count into *pnRow and return SQLITE_OK. 2526 2527 ** If unable to make an estimate, leave *pnRow unchanged and return 2527 2528 ** non-zero. 2528 2529 ** 2529 2530 ** This routine can fail if it is unable to load a collating sequence 2530 2531 ** required for string comparison, or if unable to allocate memory