Updated to version 3.30.0
This commit is contained in:
parent
76cd8b6d29
commit
84c1917155
6
sources
6
sources
@ -1,3 +1,3 @@
|
||||
SHA512 (sqlite-src-3290000.zip) = 575398fbe20c6471ee2abcbde170b8d48efbb3cb2716a65f42f05c52429a45d14e8046e50c59bbf75bfe2d8f151c34abd50b440c50af571f19e19f3290b230df
|
||||
SHA512 (sqlite-doc-3290000.zip) = ca856cf250e395d9c7e9817337adb5a16b1d96a20548a4010f5137188d35bb9d49a4a6da47bf2a696deffa68d2976dbb35a036adce19b8320e0e286876ac094f
|
||||
SHA512 (sqlite-autoconf-3290000.tar.gz) = 85dcaa72cc2476c628e801d4ce46cf10ed8997f56cb0334062df5553f18c29d607883a1049bf75258204f2f53a29a02a01f014dcca383b05dfac1e2123778024
|
||||
SHA512 (sqlite-doc-3300000.zip) = 11bc9910fa0b4740b19bb6c533a329f29520f68951e6e24c9957cd2ac3dc6708640d6e535a8be5af173eb0b273ab3bdee6f81724d5b5560054fccddf7d454f78
|
||||
SHA512 (sqlite-src-3300000.zip) = 43dbe38eae0b14ecba962e418a7a717ef5a0b7aa8610a973daea3f538564fea9440c0053dccabbf1f6652ced180bf44de1a122609564fe357f0f8c7a34078dd7
|
||||
SHA512 (sqlite-autoconf-3300000.tar.gz) = d1b0d4c6874e600f4e0f8c3eae8a5d754f8a25b3ab68b058ea657641acbae7e4f517d075dd103a87544ccf62a706990e3db909de18cf649ac5a1a459d123926a
|
||||
|
@ -1,46 +0,0 @@
|
||||
Index: ext/rtree/rtree.c
|
||||
==================================================================
|
||||
--- ext/rtree/rtree.c
|
||||
+++ ext/rtree/rtree.c
|
||||
@@ -3435,10 +3435,14 @@
|
||||
pRtree->zDb, pRtree->zName
|
||||
);
|
||||
rc = getIntFromStmt(db, zSql, &pRtree->iNodeSize);
|
||||
if( rc!=SQLITE_OK ){
|
||||
*pzErr = sqlite3_mprintf("%s", sqlite3_errmsg(db));
|
||||
+ }else if( pRtree->iNodeSize<(512-64) ){
|
||||
+ rc = SQLITE_CORRUPT;
|
||||
+ *pzErr = sqlite3_mprintf("undersize RTree blobs in \"%q_node\"",
|
||||
+ pRtree->zName);
|
||||
}
|
||||
}
|
||||
|
||||
sqlite3_free(zSql);
|
||||
return rc;
|
||||
|
||||
Index: ext/rtree/rtreeA.test
|
||||
==================================================================
|
||||
--- ext/rtree/rtreeA.test
|
||||
+++ ext/rtree/rtreeA.test
|
||||
@@ -213,8 +213,21 @@
|
||||
} {}
|
||||
do_corruption_tests rtreeA-6.1 {
|
||||
1 "DELETE FROM t1 WHERE rowid = 5"
|
||||
2 "UPDATE t1 SET x1=x1+1, x2=x2+1"
|
||||
}
|
||||
+
|
||||
+#-------------------------------------------------------------------------
|
||||
+# Truncated blobs in the _node table.
|
||||
+#
|
||||
+create_t1
|
||||
+populate_t1
|
||||
+sqlite3 db test.db
|
||||
+do_execsql_test rtreeA-7.100 {
|
||||
+ UPDATE t1_node SET data=x'' WHERE rowid=1;
|
||||
+} {}
|
||||
+do_catchsql_test rtreeA-7.110 {
|
||||
+ SELECT * FROM t1 WHERE x1>0 AND x1<100 AND x2>0 AND x2<100;
|
||||
+} {1 {undersize RTree blobs in "t1_node"}}
|
||||
|
||||
|
||||
finish_test
|
@ -1,51 +0,0 @@
|
||||
Index: src/build.c
|
||||
==================================================================
|
||||
--- src/build.c
|
||||
+++ src/build.c
|
||||
@@ -1868,12 +1868,10 @@
|
||||
}
|
||||
assert( !db->mallocFailed );
|
||||
p = pParse->pNewTable;
|
||||
if( p==0 ) return;
|
||||
|
||||
- assert( !db->init.busy || !pSelect );
|
||||
-
|
||||
/* If the db->init.busy is 1 it means we are reading the SQL off the
|
||||
** "sqlite_master" or "sqlite_temp_master" table on the disk.
|
||||
** So do not write to the disk again. Extract the root page number
|
||||
** for the table from the db->init.newTnum field. (The page number
|
||||
** should have been put there by the sqliteOpenCb routine.)
|
||||
@@ -1880,10 +1878,14 @@
|
||||
**
|
||||
** If the root page number is 1, that means this is the sqlite_master
|
||||
** table itself. So mark it read-only.
|
||||
*/
|
||||
if( db->init.busy ){
|
||||
+ if( pSelect ){
|
||||
+ sqlite3ErrorMsg(pParse, "");
|
||||
+ return;
|
||||
+ }
|
||||
p->tnum = db->init.newTnum;
|
||||
if( p->tnum==1 ) p->tabFlags |= TF_Readonly;
|
||||
}
|
||||
|
||||
/* Special processing for WITHOUT ROWID Tables */
|
||||
|
||||
Index: src/prepare.c
|
||||
==================================================================
|
||||
--- src/prepare.c
|
||||
+++ src/prepare.c
|
||||
@@ -27,11 +27,11 @@
|
||||
sqlite3 *db = pData->db;
|
||||
if( !db->mallocFailed && (db->flags & SQLITE_WriteSchema)==0 ){
|
||||
char *z;
|
||||
if( zObj==0 ) zObj = "?";
|
||||
z = sqlite3MPrintf(db, "malformed database schema (%s)", zObj);
|
||||
- if( zExtra ) z = sqlite3MPrintf(db, "%z - %s", z, zExtra);
|
||||
+ if( zExtra && zExtra[0] ) z = sqlite3MPrintf(db, "%z - %s", z, zExtra);
|
||||
sqlite3DbFree(db, *pData->pzErrMsg);
|
||||
*pData->pzErrMsg = z;
|
||||
}
|
||||
pData->rc = db->mallocFailed ? SQLITE_NOMEM_BKPT : SQLITE_CORRUPT_BKPT;
|
||||
}
|
||||
|
@ -1,40 +0,0 @@
|
||||
Index: test/fts3rank.test
|
||||
==================================================================
|
||||
--- test/fts3rank.test
|
||||
+++ test/fts3rank.test
|
||||
@@ -12,11 +12,11 @@
|
||||
# focus of this script is testing the FTS3 module.
|
||||
#
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
-set testprefix fts3expr5
|
||||
+set testprefix fts3rank
|
||||
|
||||
# If SQLITE_ENABLE_FTS3 is defined, omit this file.
|
||||
ifcapable !fts3 {
|
||||
finish_test
|
||||
return
|
||||
@@ -54,11 +54,16 @@
|
||||
|
||||
do_catchsql_test 1.4 {
|
||||
SELECT * FROM t1 ORDER BY rank(x'0000000000000000') DESC, rowid
|
||||
} {0 {{one two} one {one two} three {one two} two}}
|
||||
|
||||
-do_catchsql_test 1.5 {
|
||||
- SELECT * FROM t1 ORDER BY rank(x'0100000001000000') DESC, rowid
|
||||
-} {1 {invalid matchinfo blob passed to function rank()}}
|
||||
+if {$tcl_platform(byteOrder)=="littleEndian"} {
|
||||
+ do_catchsql_test 1.5le {
|
||||
+ SELECT * FROM t1 ORDER BY rank(x'0100000001000000') DESC, rowid
|
||||
+ } {1 {invalid matchinfo blob passed to function rank()}}
|
||||
+} else {
|
||||
+ do_catchsql_test 1.5be {
|
||||
+ SELECT * FROM t1 ORDER BY rank(x'0000000100000001') DESC, rowid
|
||||
+ } {1 {invalid matchinfo blob passed to function rank()}}
|
||||
+}
|
||||
|
||||
finish_test
|
||||
-
|
||||
|
||||
|
@ -1,40 +0,0 @@
|
||||
Index: src/vdbemem.c
|
||||
==================================================================
|
||||
--- src/vdbemem.c
|
||||
+++ src/vdbemem.c
|
||||
@@ -579,10 +579,22 @@
|
||||
|
||||
pMem->u.r = sqlite3VdbeRealValue(pMem);
|
||||
MemSetTypeFlag(pMem, MEM_Real);
|
||||
return SQLITE_OK;
|
||||
}
|
||||
+
|
||||
+/* Compare a floating point value to an integer. Return true if the two
|
||||
+** values are the same within the precision of the floating point value.
|
||||
+**
|
||||
+** For some versions of GCC on 32-bit machines, if you do the more obvious
|
||||
+** comparison of "r1==(double)i" you sometimes get an answer of false even
|
||||
+** though the r1 and (double)i values are bit-for-bit the same.
|
||||
+*/
|
||||
+static int sqlite3RealSameAsInt(double r1, sqlite3_int64 i){
|
||||
+ double r2 = (double)i;
|
||||
+ return memcmp(&r1, &r2, sizeof(r1))==0;
|
||||
+}
|
||||
|
||||
/*
|
||||
** Convert pMem so that it has types MEM_Real or MEM_Int or both.
|
||||
** Invalidate any prior representations.
|
||||
**
|
||||
@@ -599,11 +611,11 @@
|
||||
if( rc==0 ){
|
||||
MemSetTypeFlag(pMem, MEM_Int);
|
||||
}else{
|
||||
i64 i = pMem->u.i;
|
||||
sqlite3AtoF(pMem->z, &pMem->u.r, pMem->n, pMem->enc);
|
||||
- if( rc==1 && pMem->u.r==(double)i ){
|
||||
+ if( rc==1 && sqlite3RealSameAsInt(pMem->u.r, i) ){
|
||||
pMem->u.i = i;
|
||||
MemSetTypeFlag(pMem, MEM_Int);
|
||||
}else{
|
||||
MemSetTypeFlag(pMem, MEM_Real);
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
Index: test/walro2.test
|
||||
==================================================================
|
||||
--- test/walro2.test
|
||||
+++ test/walro2.test
|
||||
@@ -37,10 +37,22 @@
|
||||
} else {
|
||||
forcecopy test.db-shm test.db2-shm
|
||||
}
|
||||
}
|
||||
|
||||
+# Most systems allocate the *-shm file in 32KB trunks. But on UNIX systems
|
||||
+# for which the getpagesize() call returns greater than 32K, the *-shm
|
||||
+# file is allocated in page-sized units (since you cannot mmap part of
|
||||
+# a page). The following code sets variable $MINSHMSZ to the smallest
|
||||
+# possible *-shm file (i.e. the greater of 32KB and the system page-size).
|
||||
+#
|
||||
+do_execsql_test 0.0 {
|
||||
+ PRAGMA journal_mode = wal;
|
||||
+ CREATE TABLE t1(x);
|
||||
+} {wal}
|
||||
+set MINSHMSZ [file size test.db-shm]
|
||||
+
|
||||
foreach bZeroShm {0 1} {
|
||||
set TN [expr $bZeroShm+1]
|
||||
do_multiclient_test tn {
|
||||
|
||||
# Close all connections and delete the database.
|
||||
@@ -167,11 +179,11 @@
|
||||
code2 { db2 close }
|
||||
sql1 { SELECT * FROM t1 }
|
||||
} {a b c d e f g h 1 2}
|
||||
do_test $TN.3.2.2 {
|
||||
list [file size test.db-wal] [file size test.db-shm]
|
||||
- } {0 32768}
|
||||
+ } [list 0 $MINSHMSZ]
|
||||
|
||||
do_test $TN.3.3.0 {
|
||||
code2 { sqlite3 db2 test.db }
|
||||
sql2 {
|
||||
INSERT INTO t1 VALUES(3, 4);
|
||||
@@ -180,11 +192,11 @@
|
||||
INSERT INTO t1 VALUES(9, 10);
|
||||
}
|
||||
code2 { db2 close }
|
||||
code1 { db close }
|
||||
list [file size test.db-wal] [file size test.db-shm]
|
||||
- } [list [wal_file_size 4 1024] 32768]
|
||||
+ } [list [wal_file_size 4 1024] $MINSHMSZ]
|
||||
do_test $TN.3.3.1 {
|
||||
code1 { sqlite3 db file:test.db?readonly_shm=1 }
|
||||
sql1 { SELECT * FROM t1 }
|
||||
} {a b c d e f g h 1 2 3 4 5 6 7 8 9 10}
|
||||
do_test $TN.3.3.2 {
|
||||
@@ -194,11 +206,11 @@
|
||||
DELETE FROM t1;
|
||||
INSERT INTO t1 VALUES('i', 'ii');
|
||||
}
|
||||
code2 { db2 close }
|
||||
list [file size test.db-wal] [file size test.db-shm]
|
||||
- } [list [wal_file_size 4 1024] 32768]
|
||||
+ } [list [wal_file_size 4 1024] $MINSHMSZ]
|
||||
do_test $TN.3.3.3 {
|
||||
sql1 { SELECT * FROM t1 }
|
||||
} {i ii}
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
|
@ -1,137 +0,0 @@
|
||||
This patch disables a test which caused failed assertion in tcl 8.6.3.
|
||||
According to sqlite upstream[1], this should be fixed in tcl 8.6.5.
|
||||
|
||||
[1] http://mailinglists.sqlite.org/cgi-bin/mailman/private/sqlite-users/2015-May/059518.html
|
||||
|
||||
diff -up sqlite-src-3130000/test/shell1.test.orig sqlite-src-3130000/test/shell1.test
|
||||
--- sqlite-src-3140100/test/shell1.test.orig 2016-08-12 02:17:02.000000000 +0200
|
||||
+++ sqlite-src-3140100/test/shell1.test 2016-08-15 15:00:59.869664051 +0200
|
||||
@@ -855,67 +855,67 @@ do_test shell1-4.6 {
|
||||
|
||||
# Test using arbitrary byte data with the shell via standard input/output.
|
||||
#
|
||||
-do_test shell1-5.0 {
|
||||
- #
|
||||
- # NOTE: Skip NUL byte because it appears to be incompatible with command
|
||||
- # shell argument parsing.
|
||||
- #
|
||||
- for {set i 1} {$i < 256} {incr i} {
|
||||
- #
|
||||
- # NOTE: Due to how the Tcl [exec] command works (i.e. where it treats
|
||||
- # command channels opened for it as textual ones), the carriage
|
||||
- # return character (and on Windows, the end-of-file character)
|
||||
- # cannot be used here.
|
||||
- #
|
||||
- if {$i==0x0D || ($tcl_platform(platform)=="windows" && $i==0x1A)} {
|
||||
- continue
|
||||
- }
|
||||
- if {$i>=0xE0 && $tcl_platform(os)=="OpenBSD"} continue
|
||||
- if {$i>=0xE0 && $i<=0xEF && $tcl_platform(os)=="Linux"} continue
|
||||
- set hex [format %02X $i]
|
||||
- set char [subst \\x$hex]; set oldChar $char
|
||||
- set escapes [list]
|
||||
- if {$tcl_platform(platform)=="windows"} {
|
||||
- #
|
||||
- # NOTE: On Windows, we need to escape all the whitespace characters,
|
||||
- # the alarm (\a) character, and those with special meaning to
|
||||
- # the SQLite shell itself.
|
||||
- #
|
||||
- set escapes [list \
|
||||
- \a \\a \b \\b \t \\t \n \\n \v \\v \f \\f \r \\r \
|
||||
- " " "\" \"" \" \\\" ' \"'\" \\ \\\\]
|
||||
- } else {
|
||||
- #
|
||||
- # NOTE: On Unix, we need to escape most of the whitespace characters
|
||||
- # and those with special meaning to the SQLite shell itself.
|
||||
- # The alarm (\a), backspace (\b), and carriage-return (\r)
|
||||
- # characters do not appear to require escaping on Unix. For
|
||||
- # the alarm and backspace characters, this is probably due to
|
||||
- # differences in the command shell. For the carriage-return,
|
||||
- # it is probably due to differences in how Tcl handles command
|
||||
- # channel end-of-line translations.
|
||||
- #
|
||||
- set escapes [list \
|
||||
- \t \\t \n \\n \v \\v \f \\f \
|
||||
- " " "\" \"" \" \\\" ' \"'\" \\ \\\\]
|
||||
- }
|
||||
- set char [string map $escapes $char]
|
||||
- set x [catchcmdex test.db ".print $char\n"]
|
||||
- set code [lindex $x 0]
|
||||
- set res [lindex $x 1]
|
||||
- if {$code ne "0"} {
|
||||
- error "failed with error: $res"
|
||||
- }
|
||||
- if {$res ne "$oldChar\n"} {
|
||||
- if {[llength $res] > 0} {
|
||||
- set got [format %02X [scan $res %c]]
|
||||
- } else {
|
||||
- set got <empty>
|
||||
- }
|
||||
- error "failed with byte $hex mismatch, got $got"
|
||||
- }
|
||||
- }
|
||||
-} {}
|
||||
+#do_test shell1-5.0 {
|
||||
+# #
|
||||
+# # NOTE: Skip NUL byte because it appears to be incompatible with command
|
||||
+# # shell argument parsing.
|
||||
+# #
|
||||
+# for {set i 1} {$i < 256} {incr i} {
|
||||
+# #
|
||||
+# # NOTE: Due to how the Tcl [exec] command works (i.e. where it treats
|
||||
+# # command channels opened for it as textual ones), the carriage
|
||||
+# # return character (and on Windows, the end-of-file character)
|
||||
+# # cannot be used here.
|
||||
+# #
|
||||
+# if {$i==0x0D || ($tcl_platform(platform)=="windows" && $i==0x1A)} {
|
||||
+# continue
|
||||
+# }
|
||||
+# if {$i>=0xE0 && $tcl_platform(os)=="OpenBSD"} continue
|
||||
+# if {$i>=0xE0 && $i<=0xEF && $tcl_platform(os)=="Linux"} continue
|
||||
+# set hex [format %02X $i]
|
||||
+# set char [subst \\x$hex]; set oldChar $char
|
||||
+# set escapes [list]
|
||||
+# if {$tcl_platform(platform)=="windows"} {
|
||||
+# #
|
||||
+# # NOTE: On Windows, we need to escape all the whitespace characters,
|
||||
+# # the alarm (\a) character, and those with special meaning to
|
||||
+# # the SQLite shell itself.
|
||||
+# #
|
||||
+# set escapes [list \
|
||||
+# \a \\a \b \\b \t \\t \n \\n \v \\v \f \\f \r \\r \
|
||||
+# " " "\" \"" \" \\\" ' \"'\" \\ \\\\]
|
||||
+# } else {
|
||||
+# #
|
||||
+# # NOTE: On Unix, we need to escape most of the whitespace characters
|
||||
+# # and those with special meaning to the SQLite shell itself.
|
||||
+# # The alarm (\a), backspace (\b), and carriage-return (\r)
|
||||
+# # characters do not appear to require escaping on Unix. For
|
||||
+# # the alarm and backspace characters, this is probably due to
|
||||
+# # differences in the command shell. For the carriage-return,
|
||||
+# # it is probably due to differences in how Tcl handles command
|
||||
+# # channel end-of-line translations.
|
||||
+# #
|
||||
+# set escapes [list \
|
||||
+# \t \\t \n \\n \v \\v \f \\f \
|
||||
+# " " "\" \"" \" \\\" ' \"'\" \\ \\\\]
|
||||
+# }
|
||||
+# set char [string map $escapes $char]
|
||||
+# set x [catchcmdex test.db ".print $char\n"]
|
||||
+# set code [lindex $x 0]
|
||||
+# set res [lindex $x 1]
|
||||
+# if {$code ne "0"} {
|
||||
+# error "failed with error: $res"
|
||||
+# }
|
||||
+# if {$res ne "$oldChar\n"} {
|
||||
+# if {[llength $res] > 0} {
|
||||
+# set got [format %02X [scan $res %c]]
|
||||
+# } else {
|
||||
+# set got <empty>
|
||||
+# }
|
||||
+# error "failed with byte $hex mismatch, got $got"
|
||||
+# }
|
||||
+# }
|
||||
+#} {}
|
||||
|
||||
# These test cases do not work on MinGW
|
||||
if 0 {
|
26
sqlite.spec
26
sqlite.spec
@ -3,14 +3,14 @@
|
||||
%bcond_with static
|
||||
%bcond_without check
|
||||
|
||||
%define realver 3290000
|
||||
%define docver 3290000
|
||||
%define rpmver 3.29.0
|
||||
%define realver 3300000
|
||||
%define docver 3300000
|
||||
%define rpmver 3.30.0
|
||||
|
||||
Summary: Library that implements an embeddable SQL database engine
|
||||
Name: sqlite
|
||||
Version: %{rpmver}
|
||||
Release: 2%{?dist}
|
||||
Release: 1%{?dist}
|
||||
License: Public Domain
|
||||
URL: http://www.sqlite.org/
|
||||
|
||||
@ -22,13 +22,13 @@ Patch1: sqlite-3.6.23-lemon-system-template.patch
|
||||
# sqlite >= 3.7.10 is buggy if malloc_usable_size() is detected, disable it:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=801981
|
||||
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665363
|
||||
Patch3: sqlite-3.12.2-no-malloc-usable-size.patch
|
||||
Patch2: sqlite-3.12.2-no-malloc-usable-size.patch
|
||||
# Temporary workaround for failed percentile test, see patch for details
|
||||
Patch4: sqlite-3.8.0-percentile-test.patch
|
||||
Patch3: sqlite-3.8.0-percentile-test.patch
|
||||
# Disable test date-2.2c on i686
|
||||
Patch7: sqlite-3.16-datetest-2.2c.patch
|
||||
Patch4: sqlite-3.16-datetest-2.2c.patch
|
||||
# Modify sync2.test to pass with DIRSYNC turned off
|
||||
Patch8: sqlite-3.18.0-sync2-dirsync.patch
|
||||
Patch5: sqlite-3.18.0-sync2-dirsync.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: ncurses-devel readline-devel glibc-devel
|
||||
@ -119,12 +119,12 @@ This package contains the analysis program for %{name}.
|
||||
%prep
|
||||
%setup -q -a1 -n %{name}-src-%{realver}
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%ifarch %{ix86}
|
||||
%patch7 -p1
|
||||
%patch4 -p1
|
||||
%endif
|
||||
%patch8 -p1
|
||||
%patch5 -p1
|
||||
|
||||
# Remove backup-file
|
||||
rm -f %{name}-doc-%{docver}/sqlite.css~ || :
|
||||
@ -229,6 +229,10 @@ make test
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Oct 07 2019 Ondrej Dubaj <odubaj@redhat.com> - 3.30.0-1
|
||||
- Updated to version 3.30.0 (https://sqlite.org/releaselog/3_30_0.html)
|
||||
- updated spec file, deleted useless patches
|
||||
|
||||
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.29.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user