From f650b207cbef82e705f2b0c9f599aed05d54d449 Mon Sep 17 00:00:00 2001 From: Flatcar Buildbot Date: Mon, 27 Mar 2023 07:21:39 +0000 Subject: [PATCH] dev-db/sqlite: Sync with Gentoo It's from Gentoo commit 25227e6e5dbc77672a3586312432810c1e2811fe. --- .../portage-stable/dev-db/sqlite/Manifest | 6 +- .../files/sqlite-3.41.2-perf-regression.patch | 101 ++++++++++++++++++ ...-3.41.1.ebuild => sqlite-3.41.2-r1.ebuild} | 5 + ...ite-3.41.0.ebuild => sqlite-3.41.2.ebuild} | 0 4 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.41.2-perf-regression.patch rename sdk_container/src/third_party/portage-stable/dev-db/sqlite/{sqlite-3.41.1.ebuild => sqlite-3.41.2-r1.ebuild} (99%) rename sdk_container/src/third_party/portage-stable/dev-db/sqlite/{sqlite-3.41.0.ebuild => sqlite-3.41.2.ebuild} (100%) diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest index cb3e1c1b34..cba6d8563d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest @@ -1,6 +1,4 @@ DIST sqlite-doc-3400100.zip 10934836 BLAKE2B 52adbfa911a5d8556e4e071bf14ad83145023fbd426f285d9724d7f06e41257df53d3c28224581f12b4ca8f699bf3d3ec829ee161374ce0208783e5da72639dc SHA512 1131b0a6304a4dd6287c85d38d1450fd2dd0e3377d88a263e3c4716415e0587750357f25486727b9433797da0331229682565e7a8a3986eba89cfcab550a2d41 -DIST sqlite-doc-3410000.zip 10979224 BLAKE2B aa42dd8977b1a2f782fcaecdea9797d0a97c623349854b8bf3050bbc8627482e77c1fd8952633c759e99ab6dd1038ab71fd4942429af9f9422cbc76deaac46ed SHA512 6eff61b7a63ee8cd8c9460b50f6ab6c9bf8074a270e900fee8bf28c1602cc5da35b0c626a780e735f349f08310a924ba83cd1420f2767f8d12d0ee0455374109 -DIST sqlite-doc-3410100.zip 10996110 BLAKE2B 03a0c77547ba20957884e202138a280d4f65e25f08e784b06026fdcb97a79999c1065009b8102362d4e58817a359d18245f2f34e98c210faa795b8b96ad4014f SHA512 796e3f75506ab1819043377cfaa96ff156e962b19d1aa5f04da591842ea52bc4e5dc5c69d765d9d7debd34e9075e1c48276d0a57c90d914ccb6236044cad0895 +DIST sqlite-doc-3410200.zip 10633275 BLAKE2B 1323179d04b9fa21df4ed93ad1aa89ff943a9d930ef02699aade779f18f28aa45dac8362d6427d7eb896c0c0b20e12f8446050f1fc08c3deef24e395123319c1 SHA512 77099fd3bfdb0c19baedb1248c5ff028a14cbc98d18956dfb13e55289a7dddbe82d25e4522f0cbbe9c2798e0531c354df5a207f89c62dfe0f84877db47bb4f9e DIST sqlite-src-3400100.zip 13725560 BLAKE2B 24d2efbbf7f8f35888b1e53c98f9c7fece9b1cf0b175bf49b78869253aa753ce47e2db67247183c07368e69d6eb63a6e39c06b212c8fd5ca36c892ff535bedca SHA512 78f8c6396bf8da090671c6f4c41255e60788324fccdaad906c53610eb6e37705f4d25c7f84da3be00b511ddf9f2e0545901f33f5ae4b6e00b1ea9413af095299 -DIST sqlite-src-3410000.zip 13831104 BLAKE2B 3bc0828f53c9e1e4344352375ef749fa145579b1a07ef657ca8d05417b5b0a211c785b44613fffe45d4bf74cff6f8e5320b5af7e8e97c1199e3d69916bc6ae6c SHA512 9c39202eb058e421035ffe4d5c9f74164a0ad4a928f6f01e4fa04af0e7efb64635ab5902220dbb37478c5c777170e4c49a171b36a0f908315e187a8f1aa2b5e8 -DIST sqlite-src-3410100.zip 13833820 BLAKE2B e863f03355bb47ba4464d953c0191a02845e651ec6ceaa1bb203c9976cf4c11ad2739af3f538c7fb675c863fd0b4980ed4f2237fa7e66abacca3bc4dc1986a72 SHA512 840d2542825db2d1758cf9fa0f7159a8c6c7d40d23a5249d1c7bdf0210a6cc83e4dd8e3393c0c6e76e922a76614a1b5f311e232d7439759bdc0e2fbb4c12244a +DIST sqlite-src-3410200.zip 13836230 BLAKE2B 4edcd65728143b1ea27abe65db8c8353dfa309858e6f40d70f3c376ef9e5613d92c41ed5a3c3282cacef8a29a434e3881f6e47ba5642820331170ceb69321d86 SHA512 28cfa72f2b39d851c38fb757a0c6d0696c22548792ce2fa1be5e2f6084e4bf0a5fb216902b59ccba5b6ebaf140aab954ed7676d84841b58ad063404a119a0c17 diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.41.2-perf-regression.patch b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.41.2-perf-regression.patch new file mode 100644 index 0000000000..0bf5c41513 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.41.2-perf-regression.patch @@ -0,0 +1,101 @@ +https://sqlite.org/forum/forumpost/3a180ba0d4 and https://sqlite.org/forum/forumpost/f9346b11a6 +https://sqlite.org/src/info/aa6bd6dff751223e +(-> https://sqlite.org/src/vpatch?from=71215599cd8ebb97&to=aa6bd6dff751223e) + +--- a/src/select.c ++++ b/src/select.c +@@ -4236,12 +4236,11 @@ + ** (17f) the subquery must not be the RHS of a LEFT JOIN. + ** (17g) either the subquery is the first element of the outer + ** query or there are no RIGHT or FULL JOINs in any arm + ** of the subquery. (This is a duplicate of condition (27b).) + ** (17h) The corresponding result set expressions in all arms of the +-** compound must have the same affinity. (See restriction (9) +-** on the push-down optimization.) ++** compound must have the same affinity. + ** + ** The parent and sub-query may contain WHERE clauses. Subject to + ** rules (11), (13) and (14), they may also contain ORDER BY, + ** LIMIT and OFFSET clauses. The subquery cannot use any compound + ** operator other than UNION ALL because all the other compound +@@ -5105,14 +5104,10 @@ + ** + ** (8) If the subquery is a compound that uses UNION, INTERSECT, + ** or EXCEPT, then all of the result set columns for all arms of + ** the compound must use the BINARY collating sequence. + ** +-** (9) If the subquery is a compound, then all arms of the compound must +-** have the same affinity. (This is the same as restriction (17h) +-** for query flattening.) +-** + ** + ** Return 0 if no changes are made and non-zero if one or more WHERE clause + ** terms are duplicated into the subquery. + */ + static int pushDownWhereTerms( +@@ -5139,13 +5134,10 @@ + } + #ifndef SQLITE_OMIT_WINDOWFUNC + if( pSel->pWin ) return 0; /* restriction (6b) */ + #endif + } +- if( compoundHasDifferentAffinities(pSubq) ){ +- return 0; /* restriction (9) */ +- } + if( notUnionAll ){ + /* If any of the compound arms are connected using UNION, INTERSECT, + ** or EXCEPT, then we must ensure that none of the columns use a + ** non-BINARY collating sequence. */ + for(pSel=pSubq; pSel; pSel=pSel->pPrior){ + +--- a/test/pushdown.test ++++ b/test/pushdown.test +@@ -120,7 +120,47 @@ + SELECT v1.a, v1.b, t0.c0 AS cd FROM t0 LEFT JOIN v0 ON v0.c0!=0, v1 + ) WHERE a=2 AND b=0 AND cd=0; + } { + 2 0 0 + } +- ++ ++# 2023-02-22 https://sqlite.org/forum/forumpost/bcc4375032 ++# Performance regression caused by check-in [1ad41840c5e0fa70] from 2022-11-25. ++# That check-in added a new restriction on push-down. The new restriction is ++# no longer necessary after check-in [27655c9353620aa5] from 2022-12-14. ++# ++do_execsql_test 3.5 { ++ DROP TABLE IF EXISTS t1; ++ CREATE TABLE t1(a INT, b INT, c TEXT, PRIMARY KEY(a,b)) WITHOUT ROWID; ++ INSERT INTO t1(a,b,c) VALUES ++ (1,100,'abc'), ++ (2,200,'def'), ++ (3,300,'abc'); ++ DROP TABLE IF EXISTS t2; ++ CREATE TABLE t2(a INT, b INT, c TEXT, PRIMARY KEY(a,b)) WITHOUT ROWID; ++ INSERT INTO t2(a,b,c) VALUES ++ (1,110,'efg'), ++ (2,200,'hij'), ++ (3,330,'klm'); ++ CREATE VIEW v3 AS ++ SELECT a, b, c FROM t1 ++ UNION ALL ++ SELECT a, b, 'xyz' FROM t2; ++ SELECT * FROM v3 WHERE a=2 AND b=200; ++} {2 200 def 2 200 xyz} ++do_eqp_test 3.6 { ++ SELECT * FROM v3 WHERE a=2 AND b=200; ++} { ++ QUERY PLAN ++ |--CO-ROUTINE v3 ++ | `--COMPOUND QUERY ++ | |--LEFT-MOST SUBQUERY ++ | | `--SEARCH t1 USING PRIMARY KEY (a=? AND b=?) ++ | `--UNION ALL ++ | `--SEARCH t2 USING PRIMARY KEY (a=? AND b=?) ++ `--SCAN v3 ++} ++# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ++# We want both arms of the compound subquery to use the ++# primary key. ++ + finish_test diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.41.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.41.2-r1.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.41.1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.41.2-r1.ebuild index b57b59ba8c..95cbc79309 100644 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.41.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.41.2-r1.ebuild @@ -50,6 +50,11 @@ else BDEPEND+=" app-arch/unzip" fi +PATCHES=( + # Will be fixed in 3.42 + "${FILESDIR}"/${PN}-3.41.2-perf-regression.patch +) + _fossil_fetch() { local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" local repo_id="${1}" diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.41.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.41.2.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.41.0.ebuild rename to sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.41.2.ebuild