TinyButStrong Error in field [var.version...]: the key 'version' does not exist or is not set in VarRef. (VarRef seems refers to $GLOBALS) This message can be cancelled using parameter 'noerr'.

TinyButStrong Error in field [var.version...]: the key 'version' does not exist or is not set in VarRef. (VarRef seems refers to $GLOBALS) This message can be cancelled using parameter 'noerr'.
 SQLite 軟體歷史版本 Download Page38 :: 軟體兄弟

SQLite 歷史版本列表 Page38

最新版本 [var.version]

SQLite 歷史版本列表

SQLite 是一個實現自包含,無服務器,零配置,事務 SQL 數據庫引擎的進程內庫。 SQLite 的代碼是在公共領域,因此可以用於任何目的,商業或私人。 SQLite 是世界上應用最廣泛的數據庫,比我們可以計數的應用程序還要多,其中包括幾個備受矚目的項目。選擇版本:SQLite 3.21.0(32 位)SQLite 3.20.1(64 位) SQLite 軟體介紹

SQLite (32-bit)SQLite (64-bit)


SQLite 3.21.0 (32-bit) 查看版本資訊

更新時間:2017-10-25
更新細節:

What's new in this version:

- Take advantage of the atomic-write capabilities in the F2FS filesystem when available, for greatly reduced transaction overhead. This currently requires the SQLITE_ENABLE_BATCH_ATOMIC_WRITE compile-time option
- Allow ATTACH and DETACH commands to work inside of a transaction
- Allow WITHOUT ROWID virtual tables to be writable if the PRIMARY KEY contains exactly one column
-The "fsync()" that occurs after the header is written in a WAL reset now uses the sync settings for checkpoints. This means it will use a "fullfsync" on macs if PRAGMA checkpoint_fullfsync set on
-The sqlite3_sourceid() function tries to detect if the source code has been modified from what is checked into version control and if there are modifications, the last four characters of the version hash are shown as "alt1" or "alt2". The objective is to detect accidental and/or careless edits. A forger can subvert this feature
-Improved de-quoting of column names for CREATE TABLE AS statements with an aggregate query on the right-hand side
-Fewer "stat()" system calls issued by the unix VFS
-Enhanced the LIKE optimization so that it works with an ESCAPE clause
-Enhanced PRAGMA integrity_check and PRAGMA quick_check to detect obscure row corruption that they were formerly missing. Also update both pragmas so that they return error text rather than SQLITE_CORRUPT when encountering corruption in records
- The query planner now prefers to implement FROM-clause subqueries using co-routines rather using the query flattener optimization. Support for the use of co-routines for subqueries may no longer be disabled
- Pass information about !=, IS, IS NOT, NOT NULL, and IS NULL constraints into the xBestIndex method of virtual tables
- Enhanced the CSV virtual table so that it accepts the last row of input if the final new-line character is missing
- Remove the rarely-used "scratch" memory allocator. Replace it with the SQLITE_CONFIG_SMALL_MALLOC configuration setting that gives SQLite a hint that large memory allocations should be avoided when possible
- Added the swarm virtual table to the existing union virtual table extension
- Added the sqlite_dbpage virtual table for providing direct access to pages of the database file. The source code is built into the amalgamation and is activated using the -DSQLITE_ENABLE_DBPAGE_VTAB compile-time option
- Add a new type of fts5vocab virtual table - "instance" - that provides direct access to an FTS5 full-text index at the lowest possible level
- Remove a call to rand_s() in the Windows VFS since it was causing problems in Firefox on some older laptops
- The src/shell.c source code to the command-line shell is no longer under version control. That file is now generated as part of the build process
- Miscellaneous microoptimizations reduce CPU usage by about 2.1%

Bug fixes:
- Fix a faulty assert() statement discovered by OSSFuzz
- Fix an obscure memory leak in sqlite3_result_pointer()
- Avoid a possible use-after-free error by deferring schema resets until after the query planner has finished running
- Only use indexes-on-expressions to optimize ORDER BY or GROUP BY if the COLLATE is correct
- Fix an assertion fault that was coming up when the expression in an index-on-expressions is really a constant
- Fix an assertion fault that could occur following PRAGMA reverse_unordered_selects
- Fix a segfault that can occur for queries that use table-valued functions in an IN or EXISTS subquery
- Fix a potential integer overflow problem when compiling a particular horrendous common table expression. This was another problem discovered by OSSFuzz
- Fix a potential out-of-bound read when querying a corrupt database file, a problem detected by Natalie Silvanovich of Google Project Zero

SQLite 3.21.0 (64-bit) 查看版本資訊

更新時間:2017-10-25
更新細節:

What's new in this version:

- Take advantage of the atomic-write capabilities in the F2FS filesystem when available, for greatly reduced transaction overhead. This currently requires the SQLITE_ENABLE_BATCH_ATOMIC_WRITE compile-time option
- Allow ATTACH and DETACH commands to work inside of a transaction
- Allow WITHOUT ROWID virtual tables to be writable if the PRIMARY KEY contains exactly one column
-The "fsync()" that occurs after the header is written in a WAL reset now uses the sync settings for checkpoints. This means it will use a "fullfsync" on macs if PRAGMA checkpoint_fullfsync set on
-The sqlite3_sourceid() function tries to detect if the source code has been modified from what is checked into version control and if there are modifications, the last four characters of the version hash are shown as "alt1" or "alt2". The objective is to detect accidental and/or careless edits. A forger can subvert this feature
-Improved de-quoting of column names for CREATE TABLE AS statements with an aggregate query on the right-hand side
-Fewer "stat()" system calls issued by the unix VFS
-Enhanced the LIKE optimization so that it works with an ESCAPE clause
-Enhanced PRAGMA integrity_check and PRAGMA quick_check to detect obscure row corruption that they were formerly missing. Also update both pragmas so that they return error text rather than SQLITE_CORRUPT when encountering corruption in records
- The query planner now prefers to implement FROM-clause subqueries using co-routines rather using the query flattener optimization. Support for the use of co-routines for subqueries may no longer be disabled
- Pass information about !=, IS, IS NOT, NOT NULL, and IS NULL constraints into the xBestIndex method of virtual tables
- Enhanced the CSV virtual table so that it accepts the last row of input if the final new-line character is missing
- Remove the rarely-used "scratch" memory allocator. Replace it with the SQLITE_CONFIG_SMALL_MALLOC configuration setting that gives SQLite a hint that large memory allocations should be avoided when possible
- Added the swarm virtual table to the existing union virtual table extension
- Added the sqlite_dbpage virtual table for providing direct access to pages of the database file. The source code is built into the amalgamation and is activated using the -DSQLITE_ENABLE_DBPAGE_VTAB compile-time option
- Add a new type of fts5vocab virtual table - "instance" - that provides direct access to an FTS5 full-text index at the lowest possible level
- Remove a call to rand_s() in the Windows VFS since it was causing problems in Firefox on some older laptops
- The src/shell.c source code to the command-line shell is no longer under version control. That file is now generated as part of the build process
- Miscellaneous microoptimizations reduce CPU usage by about 2.1%

Bug fixes:
- Fix a faulty assert() statement discovered by OSSFuzz
- Fix an obscure memory leak in sqlite3_result_pointer()
- Avoid a possible use-after-free error by deferring schema resets until after the query planner has finished running
- Only use indexes-on-expressions to optimize ORDER BY or GROUP BY if the COLLATE is correct
- Fix an assertion fault that was coming up when the expression in an index-on-expressions is really a constant
- Fix an assertion fault that could occur following PRAGMA reverse_unordered_selects
- Fix a segfault that can occur for queries that use table-valued functions in an IN or EXISTS subquery
- Fix a potential integer overflow problem when compiling a particular horrendous common table expression. This was another problem discovered by OSSFuzz
- Fix a potential out-of-bound read when querying a corrupt database file, a problem detected by Natalie Silvanovich of Google Project Zero

SQLite 3.20.1 (32-bit) 查看版本資訊

更新時間:2017-08-25
更新細節:

What's new in this version:

- Fix a potential memory leak in the new sqlite3_result_pointer() interface.

Changes carried forward from version 3.20.0:
- Update the text of error messages returned by sqlite3_errmsg() for some error codes
- Add new pointer passing interfaces
- Backwards-incompatible changes to some extensions in order to take advantage of the improved security offered by the new pointer passing interfaces: a. Extending FTS5 → requires sqlite3_bind_pointer() to find the fts5_api pointer
- carray(PTR,N) → requires sqlite3_bind_pointer() to set the PTR parameter
- remember(V,PTR) → requires sqlite3_bind_pointer() to set the PTR parameter
- Added the SQLITE_STMT virtual table extension
- Added the COMPLETION extension - designed to suggest tab-completions for interactive user interfaces. This is a work in progress. Expect further enhancements in future releases
- Added the UNION virtual table extension
- The built-in date and time functions have been enhanced so that they can be used in CHECK constraints, in indexes on expressions, and in the WHERE clauses of partial indexes, provided that they do not use the 'now', 'localtime', or 'utc' keywords. Futher information
- Added the sqlite3_prepare_v3() and sqlite3_prepare16_v3() interfaces with the extra "prepFlags" parameters
- Provide the SQLITE_PREPARE_PERSISTENT flag for sqlite3_prepare_v3() and use it to limit lookaside memory misuse by FTS3, FTS5, and the R-Tree extension
- Added the PRAGMA secure_delete=FAST command. When secure_delete is set to FAST, old content is overwritten with zeros as long as that does not increase the amount of I/O. Deleted content might still persist on the free-page list but will be purged from all b-tree pages
- Enhancements to the command-line shell: a. Add support for tab-completion using the COMPLETION extension, for both readline and linenoise
- Add the ".cd" command
- Enhance the ".schema" command to show the schema of all attached databases
- Enhance ".tables" so that it shows the schema names for all attached if the name is anything other than "main"
- The ".import" command ignores an initial UTF-8 BOM
- Added the "--newlines" option to the ".dump" command to cause U+000a and U+000d characters to be output literally rather than escaped using the replace() function
- Query planner enhancements: a. When generating individual loops for each ORed term of an OR scan, move any constant WHERE expressions outside of the loop, as is done for top-level loops
- The query planner examines the values of bound parameters to help determine if a partial index is usable
- When deciding between two plans with the same estimated cost, bias the selection toward the one that does not use the sorter
- Evaluate WHERE clause constraints involving correlated subqueries last, in the hope that they never have be evaluated at all
- Do not use the flattening optimization for a sub-query on the RHS of a LEFT JOIN if that subquery reads data from a virtual table as doing so prevents the query planner from creating automatic indexes on the results of the sub-query, which can slow down the query
- Add SQLITE_STMTSTATUS_REPREPARE, SQLITE_STMTSTATUS_RUN, and SQLITE_STMTSTATUS_MEMUSED options for the sqlite3_stmt_status() interface
- Provide PRAGMA functions for PRAGMA integrity_check, PRAGMA quick_check, and PRAGMA foreign_key_check
- Add the -withoutnulls option to the TCL interface eval method
- Enhance the sqlite3_analyzer.exe utility program so that it shows the number of bytes of metadata on btree pages
- The SQLITE_DBCONFIG_ENABLE_QPSG run-time option and the SQLITE_ENABLE_QPSG compile-time option enable the query planner stability guarantee
- Miscellaneous optimizations result in a 2% reduction in CPU cycles used

Bug Fixes:
- Fix the behavior of sqlite3_column_name() for queries that use the flattening optimization so that the result is consistent with other queries that do not use that optimization, and with PostgreSQL, MySQL, and SQLServer
- Fix the query planner so that it knows not to use automatic indexes on the right table of LEFT JOIN if the WHERE clause uses the IS operator
- Ensure that the query planner knows that any column of a flattened LEFT JOIN can be NULL even if that column is labeled with "NOT NULL"
- Fix rare false-positives in PRAGMA integrity_check when run on a database connection with attached databases
- Fix a bug (discovered by OSSFuzz) that causes an assertion fault if certain dodgy CREATE TABLE declarations are used

SQLite 3.20.1 (64-bit) 查看版本資訊

更新時間:2017-08-25
更新細節:

What's new in this version:

- Fix a potential memory leak in the new sqlite3_result_pointer() interface.

Changes carried forward from version 3.20.0:
- Update the text of error messages returned by sqlite3_errmsg() for some error codes
- Add new pointer passing interfaces
- Backwards-incompatible changes to some extensions in order to take advantage of the improved security offered by the new pointer passing interfaces: a. Extending FTS5 → requires sqlite3_bind_pointer() to find the fts5_api pointer
- carray(PTR,N) → requires sqlite3_bind_pointer() to set the PTR parameter
- remember(V,PTR) → requires sqlite3_bind_pointer() to set the PTR parameter
- Added the SQLITE_STMT virtual table extension
- Added the COMPLETION extension - designed to suggest tab-completions for interactive user interfaces. This is a work in progress. Expect further enhancements in future releases
- Added the UNION virtual table extension
- The built-in date and time functions have been enhanced so that they can be used in CHECK constraints, in indexes on expressions, and in the WHERE clauses of partial indexes, provided that they do not use the 'now', 'localtime', or 'utc' keywords. Futher information
- Added the sqlite3_prepare_v3() and sqlite3_prepare16_v3() interfaces with the extra "prepFlags" parameters
- Provide the SQLITE_PREPARE_PERSISTENT flag for sqlite3_prepare_v3() and use it to limit lookaside memory misuse by FTS3, FTS5, and the R-Tree extension
- Added the PRAGMA secure_delete=FAST command. When secure_delete is set to FAST, old content is overwritten with zeros as long as that does not increase the amount of I/O. Deleted content might still persist on the free-page list but will be purged from all b-tree pages
- Enhancements to the command-line shell: a. Add support for tab-completion using the COMPLETION extension, for both readline and linenoise
- Add the ".cd" command
- Enhance the ".schema" command to show the schema of all attached databases
- Enhance ".tables" so that it shows the schema names for all attached if the name is anything other than "main"
- The ".import" command ignores an initial UTF-8 BOM
- Added the "--newlines" option to the ".dump" command to cause U+000a and U+000d characters to be output literally rather than escaped using the replace() function
- Query planner enhancements: a. When generating individual loops for each ORed term of an OR scan, move any constant WHERE expressions outside of the loop, as is done for top-level loops
- The query planner examines the values of bound parameters to help determine if a partial index is usable
- When deciding between two plans with the same estimated cost, bias the selection toward the one that does not use the sorter
- Evaluate WHERE clause constraints involving correlated subqueries last, in the hope that they never have be evaluated at all
- Do not use the flattening optimization for a sub-query on the RHS of a LEFT JOIN if that subquery reads data from a virtual table as doing so prevents the query planner from creating automatic indexes on the results of the sub-query, which can slow down the query
- Add SQLITE_STMTSTATUS_REPREPARE, SQLITE_STMTSTATUS_RUN, and SQLITE_STMTSTATUS_MEMUSED options for the sqlite3_stmt_status() interface
- Provide PRAGMA functions for PRAGMA integrity_check, PRAGMA quick_check, and PRAGMA foreign_key_check
- Add the -withoutnulls option to the TCL interface eval method
- Enhance the sqlite3_analyzer.exe utility program so that it shows the number of bytes of metadata on btree pages
- The SQLITE_DBCONFIG_ENABLE_QPSG run-time option and the SQLITE_ENABLE_QPSG compile-time option enable the query planner stability guarantee
- Miscellaneous optimizations result in a 2% reduction in CPU cycles used

Bug Fixes:
- Fix the behavior of sqlite3_column_name() for queries that use the flattening optimization so that the result is consistent with other queries that do not use that optimization, and with PostgreSQL, MySQL, and SQLServer
- Fix the query planner so that it knows not to use automatic indexes on the right table of LEFT JOIN if the WHERE clause uses the IS operator
- Ensure that the query planner knows that any column of a flattened LEFT JOIN can be NULL even if that column is labeled with "NOT NULL"
- Fix rare false-positives in PRAGMA integrity_check when run on a database connection with attached databases
- Fix a bug (discovered by OSSFuzz) that causes an assertion fault if certain dodgy CREATE TABLE declarations are used

SQLite 3.20.0 (32-bit) 查看版本資訊

更新時間:2017-08-02
更新細節:

What's new in this version:

- Update the text of error messages returned by sqlite3_errmsg() for some error codes
- Add new pointer passing interfaces

Backwards-incompatible changes to some extensions in order to take advantage of the improved security offered by the new pointer passing interfaces:
- Extending FTS5 → requires sqlite3_bind_pointer() to find the fts5_api pointer
- carray(PTR,N) → requires sqlite3_bind_pointer() to set the PTR parameter
- remember(V,PTR) → requires sqlite3_bind_pointer() to set the PTR parameter
- Added the SQLITE_STMT virtual table extension
- Added the COMPLETION extension - designed to suggest tab-completions for interactive user interfaces. This is a work in progress. Expect further enhancements in future releases
- Added the UNION virtual table extension
- The built-in date and time functions have been enhanced so that they can be used in CHECK constraints, in indexes on expressions, and in the WHERE clauses of partial indexes, provided that they do not use the 'now', 'localtime', or 'utc' keywords. Futher information
- Added the sqlite3_prepare_v3() and sqlite3_prepare16_v3() interfaces with the extra "prepFlags" parameters
- Provide the SQLITE_PREPARE_PERSISTENT flag for sqlite3_prepare_v3() and use it to limit lookaside memory misuse by FTS3, FTS5, and the R-Tree extension
- Added the PRAGMA secure_delete=FAST command. When secure_delete is set to FAST, old content is overwritten with zeros as long as that does not increase the amount of I/O. Deleted content might still persist on the free-page list but will be purged from all b-tree pages

Enhancements to the command-line shell:
- Add support for tab-completion using the COMPLETION extension, for both readline and linenoise
- Add the ".cd" command
- Enhance the ".schema" command to show the schema of all attached databases
- Enhance ".tables" so that it shows the schema names for all attached if the name is anything other than "main"
- The ".import" command ignores an initial UTF-8 BOM
- Added the "--newlines" option to the ".dump" command to cause U+000a and U+000d characters to be output literally rather than escaped using the replace() function

Query planner enhancements:
- When generating individual loops for each ORed term of an OR scan, move any constant WHERE expressions outside of the loop, as is done for top-level loops
- The query planner examines the values of bound parameters to help determine if a partial index is usable
- When deciding between two plans with the same estimated cost, bias the selection toward the one that does not use the sorter
- Evaluate WHERE clause constraints involving correlated subqueries last, in the hope that they never have be evaluated at all
- Do not use the flattening optimization for a sub-query on the RHS of a LEFT JOIN if that subquery reads data from a virtual table as doing so prevents the query planner from creating automatic indexes on the results of the sub-query, which can slow down the query
- Add SQLITE_STMTSTATUS_REPREPARE, SQLITE_STMTSTATUS_RUN, and SQLITE_STMTSTATUS_MEMUSED options for the sqlite3_stmt_status() interface
- Provide PRAGMA functions for PRAGMA integrity_check, PRAGMA quick_check, and PRAGMA foreign_key_check
- Add the -withoutnulls option to the TCL interface eval method
- Enhance the sqlite3_analyzer.exe utility program so that it shows the number of bytes of metadata on btree pages
- The SQLITE_DBCONFIG_ENABLE_QPSG run-time option and the SQLITE_ENABLE_QPSG compile-time option enable the query planner stability guarantee. See also ticket 892fc34f173e99d8
- Miscellaneous optimizations result in a 2% reduction in CPU cycles used

Bug Fixes:
- Fix the behavior of sqlite3_column_name() for queries that use the flattening optimization so that the result is consistent with other queries that do not use that optimization, and with PostgreSQL, MySQL, and SQLServer
- Fix the query planner so that it knows not to use automatic indexes on the right table of LEFT JOIN if the WHERE clause uses the IS operator
- Ensure that the query planner knows that any column of a flattened LEFT JOIN can be NULL even if that column is labeled with "NOT NULL"
- Fix rare false-positives in PRAGMA integrity_check when run on a database connection with attached databases
- Fix a bug (discovered by OSSFuzz) that causes an assertion fault if certain dodgy CREATE TABLE declarations are used

SQLite 3.20.0 (64-bit) 查看版本資訊

更新時間:2017-08-02
更新細節:

What's new in this version:

- Update the text of error messages returned by sqlite3_errmsg() for some error codes
- Add new pointer passing interfaces

Backwards-incompatible changes to some extensions in order to take advantage of the improved security offered by the new pointer passing interfaces:
- Extending FTS5 → requires sqlite3_bind_pointer() to find the fts5_api pointer
- carray(PTR,N) → requires sqlite3_bind_pointer() to set the PTR parameter
- remember(V,PTR) → requires sqlite3_bind_pointer() to set the PTR parameter
- Added the SQLITE_STMT virtual table extension
- Added the COMPLETION extension - designed to suggest tab-completions for interactive user interfaces. This is a work in progress. Expect further enhancements in future releases
- Added the UNION virtual table extension
- The built-in date and time functions have been enhanced so that they can be used in CHECK constraints, in indexes on expressions, and in the WHERE clauses of partial indexes, provided that they do not use the 'now', 'localtime', or 'utc' keywords. Futher information
- Added the sqlite3_prepare_v3() and sqlite3_prepare16_v3() interfaces with the extra "prepFlags" parameters
- Provide the SQLITE_PREPARE_PERSISTENT flag for sqlite3_prepare_v3() and use it to limit lookaside memory misuse by FTS3, FTS5, and the R-Tree extension
- Added the PRAGMA secure_delete=FAST command. When secure_delete is set to FAST, old content is overwritten with zeros as long as that does not increase the amount of I/O. Deleted content might still persist on the free-page list but will be purged from all b-tree pages

Enhancements to the command-line shell:
- Add support for tab-completion using the COMPLETION extension, for both readline and linenoise
- Add the ".cd" command
- Enhance the ".schema" command to show the schema of all attached databases
- Enhance ".tables" so that it shows the schema names for all attached if the name is anything other than "main"
- The ".import" command ignores an initial UTF-8 BOM
- Added the "--newlines" option to the ".dump" command to cause U+000a and U+000d characters to be output literally rather than escaped using the replace() function

Query planner enhancements:
- When generating individual loops for each ORed term of an OR scan, move any constant WHERE expressions outside of the loop, as is done for top-level loops
- The query planner examines the values of bound parameters to help determine if a partial index is usable
- When deciding between two plans with the same estimated cost, bias the selection toward the one that does not use the sorter
- Evaluate WHERE clause constraints involving correlated subqueries last, in the hope that they never have be evaluated at all
- Do not use the flattening optimization for a sub-query on the RHS of a LEFT JOIN if that subquery reads data from a virtual table as doing so prevents the query planner from creating automatic indexes on the results of the sub-query, which can slow down the query
- Add SQLITE_STMTSTATUS_REPREPARE, SQLITE_STMTSTATUS_RUN, and SQLITE_STMTSTATUS_MEMUSED options for the sqlite3_stmt_status() interface
- Provide PRAGMA functions for PRAGMA integrity_check, PRAGMA quick_check, and PRAGMA foreign_key_check
- Add the -withoutnulls option to the TCL interface eval method
- Enhance the sqlite3_analyzer.exe utility program so that it shows the number of bytes of metadata on btree pages
- The SQLITE_DBCONFIG_ENABLE_QPSG run-time option and the SQLITE_ENABLE_QPSG compile-time option enable the query planner stability guarantee. See also ticket 892fc34f173e99d8
- Miscellaneous optimizations result in a 2% reduction in CPU cycles used

Bug Fixes:
- Fix the behavior of sqlite3_column_name() for queries that use the flattening optimization so that the result is consistent with other queries that do not use that optimization, and with PostgreSQL, MySQL, and SQLServer
- Fix the query planner so that it knows not to use automatic indexes on the right table of LEFT JOIN if the WHERE clause uses the IS operator
- Ensure that the query planner knows that any column of a flattened LEFT JOIN can be NULL even if that column is labeled with "NOT NULL"
- Fix rare false-positives in PRAGMA integrity_check when run on a database connection with attached databases
- Fix a bug (discovered by OSSFuzz) that causes an assertion fault if certain dodgy CREATE TABLE declarations are used

SQLite 3.19.3 (32-bit) 查看版本資訊

更新時間:2017-06-09
更新細節:

What's new in this version:

- Fix a bug associated with auto_vacuum that can lead to database corruption. The bug was introduced in version 3.16.0 (2017-01-02). Ticket fda22108

SQLite 3.19.3 (64-bit) 查看版本資訊

更新時間:2017-06-09
更新細節:

What's new in this version:

- Fix a bug associated with auto_vacuum that can lead to database corruption. The bug was introduced in version 3.16.0 (2017-01-02). Ticket fda22108

SQLite 3.19.2 (32-bit) 查看版本資訊

更新時間:2017-05-26
更新細節:

What's new in this version:

- Fix more bugs in the LEFT JOIN flattening optimization

SQLite 3.19.2 (64-bit) 查看版本資訊

更新時間:2017-05-26
更新細節:

What's new in this version:

- Fix more bugs in the LEFT JOIN flattening optimization