diff --git a/ext/session/sqlite3session.h b/ext/session/sqlite3session.h index 14d686c66f..107bcfb6a9 100644 --- a/ext/session/sqlite3session.h +++ b/ext/session/sqlite3session.h @@ -576,18 +576,23 @@ int sqlite3changeset_next(sqlite3_changeset_iter *pIter); ** call to [sqlite3changeset_next()] must have returned [SQLITE_ROW]. If this ** is not the case, this function returns [SQLITE_MISUSE]. ** -** If argument pzTab is not NULL, then *pzTab is set to point to a -** nul-terminated utf-8 encoded string containing the name of the table -** affected by the current change. The buffer remains valid until either -** sqlite3changeset_next() is called on the iterator or until the -** conflict-handler function returns. If pnCol is not NULL, then *pnCol is -** set to the number of columns in the table affected by the change. If -** pbIndirect is not NULL, then *pbIndirect is set to true (1) if the change +** Arguments pOp, pnCol and pzTab may not be NULL. Upon return, three +** outputs are set through these pointers: +** +** *pOp is set to one of [SQLITE_INSERT], [SQLITE_DELETE] or [SQLITE_UPDATE], +** depending on the type of change that the iterator currently points to; +** +** *pnCol is set to the number of columns in the table affected by the change; and +** +** *pzTab is set to point to a nul-terminated utf-8 encoded string containing +** the name of the table affected by the current change. The buffer remains +** valid until either sqlite3changeset_next() is called on the iterator +** or until the conflict-handler function returns. +** +** If pbIndirect is not NULL, then *pbIndirect is set to true (1) if the change ** is an indirect change, or false (0) otherwise. See the documentation for ** [sqlite3session_indirect()] for a description of direct and indirect -** changes. Finally, if pOp is not NULL, then *pOp is set to one of -** [SQLITE_INSERT], [SQLITE_DELETE] or [SQLITE_UPDATE], depending on the -** type of change that the iterator currently points to. +** changes. ** ** If no error occurs, SQLITE_OK is returned. If an error does occur, an ** SQLite error code is returned. The values of the output variables may not diff --git a/manifest b/manifest index 4d02f45688..138f947262 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Merge\slatest\swal2\schanges\sinto\sthis\sbranch. -D 2021-03-11T20:07:07.989 +C Merge\sthe\s3.35.0\srelease\sinto\sthe\sbegin-concurrent-pnu-wal2\sbranch. +D 2021-03-12T17:18:13.264 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -463,7 +463,7 @@ F ext/session/sessionwor.test 6fd9a2256442cebde5b2284936ae9e0d54bde692d0f5fd009e F ext/session/sqlite3changebatch.c d5553b79e012ee2cb06c0a96bdf9dfe19e66354390ea0036cc46c4953142d517 F ext/session/sqlite3changebatch.h e72016998c9a22d439ddfd547b69e1ebac810c24 F ext/session/sqlite3session.c 5eb3a3cb490912376c5720d24eb256753e4a29a2a62f39ac708a084d854b4fea -F ext/session/sqlite3session.h e06f2bd77d2a2fc00a926c39ac47d639f7f1e36e1eba56862d010aaf37119e68 +F ext/session/sqlite3session.h cae11f96e40915220076acf4d7b3e4eb26f817d92064bd5983d47f9fe7f31ec6 F ext/session/test_session.c 18372dfe254a219705f89bc95c5ef26744236c4dbac5cdfbe71959290afc928d F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3 F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04 @@ -550,7 +550,7 @@ F src/random.c f27af4099afaea7284ade5c206224dcfdb2334cfd119d018b470d46356b3f27d F src/resolve.c d95db73d3e6a5c689e5f6604b4d2521350e45f2a0f0f84f5a2dc2bfee56580a0 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 F src/select.c bfcf53e991ee5852790f87f5fd699ac812e7dde64c1f81cb511fdc3be48ab3e8 -F src/shell.c.in af18a2e980aabe739a8188266464866fe7947b100674e07480e7ba3e37595947 +F src/shell.c.in 35adf1212d759069b00e468a9304a05a67710c8f8f50e7312335e23cac985d8c F src/sqlite.h.in 71ba363afc97d615d43ab4d1c6992036e82efb799852fe96106b79c94bb87f7f F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h 61b38c073d5e1e96a3d45271b257aef27d0d13da2bea5347692ae579475cd95e @@ -657,7 +657,7 @@ F test/alterauth2.test 794ac5cef251819fe364b4fe20f12f86e9c5d68070513c7fd26c17cb2 F test/altercol.test 65eef562f0eea7a1f5ddd4a140c4274c2bfc5712bb2ab2096f738852b0efce86 F test/altercorrupt.test 584d707a80e106952d6382790c8919bcf9f0db678ed3a1c09fd98b7f9d1d3a10 F test/alterdropcol.test 596623cb8a72d9570bfb8417b0f302810efe007873796f03c17a9e9ff28dade1 -F test/alterdropcol2.test 3948c805ca52f4621051b35968c18c09d107eb117e2b656c78cee3b2870650c0 +F test/alterdropcol2.test 527fce683b200d620f560f666c44ae33e22728e990a10a48a543280dfd4b4d41 F test/alterlegacy.test f38c6d06cda39e1f7b955bbce57f2e3ef5b7cb566d3d1234502093e228c15811 F test/altermalloc.test 167a47de41b5c638f5f5c6efb59784002b196fff70f98d9b4ed3cd74a3fb80c9 F test/altermalloc2.test fa7b1c1139ea39b8dec407cf1feb032ca8e0076bd429574969b619175ad0174b @@ -873,7 +873,7 @@ F test/e_delete.test ab39084f26ae1f033c940b70ebdbbd523dc4962e F test/e_droptrigger.test 235c610f8bf8ec44513e222b9085c7e49fad65ad0c1975ac2577109dd06fd8fa F test/e_dropview.test 74e405df7fa0f762e0c9445b166fe03955856532e2bb234c372f7c51228d75e7 F test/e_expr.test 6ba7a51ece7b3e7fc145f14f924eed25ebb5a24e7b8596c78f3838d372cf0385 -F test/e_fkey.test 0b458b85f192cdb9e9933d5891848bb19bcc44d3f49faf111a375f2844a164d3 +F test/e_fkey.test a2907f749cccd0b2c30d8576b673002eebdcc1fc9964bae61e5117b1d54733e2 F test/e_fts3.test 17ba7c373aba4d4f5696ba147ee23fd1a1ef70782af050e03e262ca187c5ee07 F test/e_insert.test f02f7f17852b2163732c6611d193f84fc67bc641fb4882c77a464076e5eba80e F test/e_reindex.test 2b0e29344497d9a8a999453a003cb476b6b1d2eef2d6c120f83c2d3a429f3164 @@ -1112,7 +1112,7 @@ F test/index6.test f172653b35b20233e59200e8b92a76db61bf7285437bf777b93b306ba26a4 F test/index7.test b8a0ba2110fd517bb48c4e76d26d60f1ab2ed9e257b18d71f820d7e71e9f8570 F test/index8.test bc2e3db70e8e62459aaa1bd7e4a9b39664f8f9d7 F test/index9.test 0aa3e509dddf81f93380396e40e9bb386904c1054924ba8fa9bcdfe85a8e7721 -F test/indexedby.test f54aac21c06948872010a956fd02de5178c362c7785a9887cf0b8616be17883b +F test/indexedby.test a3ca11f0819a9279619099f36b624bcaa315f7a1ed65c3ed2219c2a944683d2c F test/indexexpr1.test 284e119999d132cc8bf37735a928c9859b28e8e295d02b7a6a4f93977c7f9ba5 F test/indexexpr2.test dba11dbb0a58fcba4cd694f46b4004976123b81b0501f525d43c9be59f0207b1 F test/indexfault.test 98d78a8ff1f5335628b62f886a1cb7c7dac1ef6d48fa39c51ec871c87dce9811 @@ -1941,7 +1941,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P b0fc8ca14ec8ed3a42bf647b112d5fba640f2adc948485da795fc802b74b3106 30f912d0b39ff6fcf9a555affb5990c4bce8726fbd27062cd0c95851724f91d4 -R 8cedaa4b31f97146b6754e72ff9d018b -U dan -Z af12c854ae0c3222b4bfe6b609ea4886 +P 88c3c173e04cb01a07a323242872f5d1472d45c726a90ea90386b08e9fd82f57 03142e5f760ef46c7837fef1b21f54baf64f4b9d99d1c9e3f4d8d6c8d1ab875f +R dfb01d2cb04dda70c9dec088fec23ac6 +U drh +Z 56fe82a8a286441bede105b621763ab0 diff --git a/manifest.uuid b/manifest.uuid index b59b2f5ceb..546b63a1c4 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -88c3c173e04cb01a07a323242872f5d1472d45c726a90ea90386b08e9fd82f57 \ No newline at end of file +939b9e75307de5067a11351dd4010046a5400e8126c5c2bafea4fbea97e00f86 \ No newline at end of file diff --git a/src/shell.c.in b/src/shell.c.in index 01d07bb7a9..9339d09396 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -9038,6 +9038,11 @@ static int do_meta_command(char *zLine, ShellState *p){ goto meta_command_exit; } if( azArg[1][0]=='|' ){ +#ifdef SQLITE_OMIT_POPEN + raw_printf(stderr, "Error: pipes are not supported in this OS\n"); + rc = 1; + p->out = stdout; +#else p->in = popen(azArg[1]+1, "r"); if( p->in==0 ){ utf8_printf(stderr, "Error: cannot open \"%s\"\n", azArg[1]); @@ -9046,6 +9051,7 @@ static int do_meta_command(char *zLine, ShellState *p){ rc = process_input(p); pclose(p->in); } +#endif }else if( notNormalFile(azArg[1]) || (p->in = fopen(azArg[1], "rb"))==0 ){ utf8_printf(stderr,"Error: cannot open \"%s\"\n", azArg[1]); rc = 1; diff --git a/test/alterdropcol2.test b/test/alterdropcol2.test index 8af3677d32..d60e7db441 100644 --- a/test/alterdropcol2.test +++ b/test/alterdropcol2.test @@ -57,7 +57,7 @@ proc do_atdc_error_test {tn schema atdc error} { # and does not have a UNIQUE constraint. # -# EVIDENCE-OF: R-05184-13006 The column is a PRIMARY KEY. +# EVIDENCE-OF: R-52436-31752 The column is a PRIMARY KEY or part of one. # do_atdc_error_test 2.1.1 { CREATE TABLE x1(a PRIMARY KEY, b, c); @@ -66,6 +66,13 @@ do_atdc_error_test 2.1.1 { } { cannot drop PRIMARY KEY column: "a" } +do_atdc_error_test 2.1.2 { + CREATE TABLE x1(a,b,c,d,e, PRIMARY KEY(b,c,d)); +} { + ALTER TABLE x1 DROP COLUMN c +} { + cannot drop PRIMARY KEY column: "c" +} # EVIDENCE-OF: R-43412-16016 The column has a UNIQUE constraint. # @@ -84,7 +91,7 @@ do_atdc_error_test 2.2.2 { error in table x1 after drop column: no such column: c } -# EVIDENCE-OF: R-46731-08965: The column is indexed. +# EVIDENCE-OF: R-46731-08965 The column is indexed. # do_atdc_error_test 2.3.1 { CREATE TABLE 'one two'('x y', 'z 1', 'a b'); @@ -103,7 +110,7 @@ do_atdc_error_test 2.3.2 { error in index idx after drop column: no such column: a } -# EVIDENCE-OF: R-46731-08965: The column is indexed. +# EVIDENCE-OF: R-46731-08965 The column is indexed. # do_atdc_error_test 2.4.1 { CREATE TABLE x1234(a, b, c PRIMARY KEY) WITHOUT ROWID; @@ -114,7 +121,8 @@ do_atdc_error_test 2.4.1 { error in index i1 after drop column: no such column: a } -# EVIDENCE-OF: R-18825-17786 The column appears in a table CHECK constraint. +# EVIDENCE-OF: R-47838-03249 The column is named in a table or column +# CHECK constraint not associated with the column being dropped. # do_atdc_error_test 2.5.1 { CREATE TABLE x1234(a, b, c PRIMARY KEY, CHECK(((a+5)%10)!=0)) WITHOUT ROWID; @@ -187,7 +195,7 @@ do_atdc_error_test 2.8.3 { # if the CHECK constraint was specified as part of the column definition. # -# EVIDENCE-OF: R-60924-11170 However, the column being deleted can be used in a +# STALE-EVIDENCE: R-60924-11170 However, the column being deleted can be used in a # column CHECK constraint because the column CHECK constraint is dropped # together with the column itself. do_execsql_test 3.0 { diff --git a/test/e_fkey.test b/test/e_fkey.test index c5ac5fde38..40fa075df3 100644 --- a/test/e_fkey.test +++ b/test/e_fkey.test @@ -2055,9 +2055,9 @@ do_test e_fkey-44.5 { #------------------------------------------------------------------------- # Test SET DEFAULT actions. # -# EVIDENCE-OF: R-43054-54832 The "SET DEFAULT" actions are similar to +# EVIDENCE-OF: R-55814-22637 The "SET DEFAULT" actions are similar to # "SET NULL", except that each of the child key columns is set to -# contain the columns default value instead of NULL. +# contain the column's default value instead of NULL. # drop_all_tables do_test e_fkey-45.1 { diff --git a/test/indexedby.test b/test/indexedby.test index 18f7bb8fa3..41a52d8224 100644 --- a/test/indexedby.test +++ b/test/indexedby.test @@ -90,9 +90,9 @@ do_test indexedby-2.4 { catchsql { SELECT * FROM t1 INDEXED BY i3 WHERE a = 'one' AND b = 'two'} } {1 {no such index: i3}} -# EVIDENCE-OF: R-62112-42456 If the query optimizer is unable to use the -# index specified by the INDEX BY clause, then the query will fail with -# an error. +# EVIDENCE-OF: R-05301-32681 If the query optimizer is unable to use the +# index specified by the INDEXED BY clause, then the query will fail +# with an error. do_test indexedby-2.4.1 { catchsql { SELECT b FROM t1 INDEXED BY i1 WHERE b = 'two' } } {0 {}}