> Add the LEFT JOIN strength reduction optimization that converts a LEFT JOIN into an ordinary JOIN
A question on this one: I have been using LEFT JOIN for many years (and not juste in SQLIte) in cases where a JOIN could have been used as a way to "hint" query optimizers which tables to scan first, typically in cases where the WHERE is too complex or misleading for the optimizer (ie. whenever index statistics paint a wrong picture, for whatever specific reasons). I can see that change "breaking" optimized queries back to their original performance. Is there a planned "QUERY PLAN" or lightweight hinting is in the works? The current suggestions in the doc are to use cross joins or stat3/stat4 tables, but both are quite more complex to maintain, while just introducing a "LEFT" before a "JOIN" in a particular query used to be enough :) On Fri, Mar 23, 2018 at 1:06 AM, Olivier Mascia <[email protected]> wrote: > > Le 22 mars 2018 à 20:09, Richard Hipp <[email protected]> a écrit : > > > > ... > > Please download the latest Pre-release Snapshot > > (https://sqlite.org/download.html) and test out the latest SQLite in > > your applications. Report any issues, either to this mailing list, or > > directly to me at [email protected]. > > I am of course not really much concerned by this detail — yet I'm writing > an email about it :). Since 3.22 and now with 3.23 snapshot as of today, > latest updates of Visual Studio 2017 report this warning: > > "shell.c(2377): warning C4996: 'chmod': The POSIX name for this item is > deprecated. Instead, use the ISO C and C++ conformant name: _chmod." > > It occurs at two places in shell.c, and the same thing occurs once for > unlink (_unlink). > > In their latest versions of the documentation about their UCRT they say: > > > The C++ standard reserves names that begin with an underscore in the > global namespace to the implementation. Because the POSIX functions are in > the global namespace, but are not part of the standard C runtime library, > the Microsoft-specific implementations of these functions have a leading > underscore. For portability, the UCRT also supports the default names, but > the Visual C++ compiler issues a deprecation warning when code that uses > them is compiled. Only the default POSIX names are deprecated, not the > functions. To suppress the warning, define _CRT_NONSTDC_NO_WARNINGS before > including any headers in code that uses the original POSIX names. > > See: https://docs.microsoft.com/en-us/cpp/c-runtime-library/compatibility > > Adding a #define _CRT_NONSTDC_NO_WARNINGS to shell.c might indeed be a > nice way to go. > > -- > Best Regards, Meilleures salutations, Met vriendelijke groeten, > Olivier Mascia > > > _______________________________________________ > sqlite-users mailing list > [email protected] > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list [email protected] http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

