Hello community, here is the log from the commit of package python-pysqlite for openSUSE:Factory checked in at 2017-11-09 13:44:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pysqlite (Old) and /work/SRC/openSUSE:Factory/.python-pysqlite.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pysqlite" Thu Nov 9 13:44:07 2017 rev:10 rq:538425 version:2.8.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pysqlite/python-pysqlite.changes 2015-09-03 18:12:49.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-pysqlite.new/python-pysqlite.changes 2017-11-09 13:44:14.668775746 +0100 @@ -1,0 +2,7 @@ +Thu Nov 2 08:39:36 UTC 2017 - mplus...@suse.com + +- Update to version 2.8.3: + * No changelog available +- Cleanup spec file with spec-clener + +------------------------------------------------------------------- Old: ---- pysqlite-2.8.1.tar.gz New: ---- pysqlite-2.8.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pysqlite.spec ++++++ --- /var/tmp/diff_new_pack.T0Z5Q5/_old 2017-11-09 13:44:16.716700882 +0100 +++ /var/tmp/diff_new_pack.T0Z5Q5/_new 2017-11-09 13:44:16.720700736 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-pysqlite # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,25 +16,23 @@ # - Name: python-pysqlite -Version: 2.8.1 +Version: 2.8.3 Release: 0 -Url: http://github.com/ghaering/pysqlite Summary: DB-API 2.0 interface for SQLite 3.x License: Zlib Group: Development/Languages/Python -Source: https://pypi.python.org/packages/source/p/pysqlite/pysqlite-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-build +Url: http://github.com/ghaering/pysqlite +Source: https://files.pythonhosted.org/packages/source/p/pysqlite/pysqlite-%{version}.tar.gz BuildRequires: python-Sphinx BuildRequires: python-devel BuildRequires: sqlite3-devel Requires: sqlite3 Provides: python-sqlite = %{version} +Provides: python2-sqlite = %{version} Obsoletes: python-sqlite < %{version} Provides: python-sqlite2 = %{version} Obsoletes: python-sqlite2 < %{version} -%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} %description Python interface to SQLite 3 @@ -55,7 +53,6 @@ rm -rf %{buildroot}%{_prefix}/pysqlite2-doc # Remove wrongly installed junk %files -%defattr(-,root,root,-) %doc LICENSE doc/sphinx/.build/html %{python_sitearch}/* ++++++ pysqlite-2.8.1.tar.gz -> pysqlite-2.8.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysqlite-2.8.1/PKG-INFO new/pysqlite-2.8.3/PKG-INFO --- old/pysqlite-2.8.1/PKG-INFO 2015-08-23 12:17:44.000000000 +0200 +++ new/pysqlite-2.8.3/PKG-INFO 2016-08-30 23:37:59.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pysqlite -Version: 2.8.1 +Version: 2.8.3 Summary: DB-API 2.0 interface for SQLite 3.x Home-page: http://github.com/ghaering/pysqlite Author: Gerhard Haering diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysqlite-2.8.1/doc/sphinx/sqlite3.rst new/pysqlite-2.8.3/doc/sphinx/sqlite3.rst --- old/pysqlite-2.8.1/doc/sphinx/sqlite3.rst 2015-08-23 12:14:34.000000000 +0200 +++ new/pysqlite-2.8.3/doc/sphinx/sqlite3.rst 2016-03-26 17:11:47.000000000 +0100 @@ -136,7 +136,7 @@ first blank for the column name: the column name would simply be "x". -.. function:: connect(database[, timeout, isolation_level, detect_types, factory]) +.. function:: connect(database[, timeout, isolation_level, detect_types, factory, flags]) Opens a connection to the SQLite database file *database*. You can use ``":memory:"`` to open a database connection to a database that resides in RAM @@ -172,6 +172,12 @@ for the connection, you can set the *cached_statements* parameter. The currently implemented default is to cache 100 statements. + The *flags* parameter can be set to change the behaviour of the wrapped + sqlite3_open_v2 call. It defaults to *SQLITE_OPEN_READWRITE | + SQLITE_OPEN_CREATE*. Please consult the SQLite documentation for the + possible values: https://www.sqlite.org/c3ref/open.html + + .. function:: register_converter(typename, callable) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysqlite-2.8.1/lib/test/dbapi.py new/pysqlite-2.8.3/lib/test/dbapi.py --- old/pysqlite-2.8.1/lib/test/dbapi.py 2015-08-23 12:06:38.000000000 +0200 +++ new/pysqlite-2.8.3/lib/test/dbapi.py 2016-03-26 17:11:47.000000000 +0100 @@ -140,6 +140,11 @@ self.assertEqual(self.cx.ProgrammingError, sqlite.ProgrammingError) self.assertEqual(self.cx.NotSupportedError, sqlite.NotSupportedError) + def CheckOpenFlags(self): + con = sqlite.connect(":memory:", flags=sqlite.SQLITE_OPEN_READONLY) + # exception will be raised because of readonly database + self.assertRaises(sqlite.OperationalError, con.execute, "create table test(foo)") + class CursorTests(unittest.TestCase): def setUp(self): self.cx = sqlite.connect(":memory:") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysqlite-2.8.1/lib/test/regression.py new/pysqlite-2.8.3/lib/test/regression.py --- old/pysqlite-2.8.1/lib/test/regression.py 2015-08-23 12:06:38.000000000 +0200 +++ new/pysqlite-2.8.3/lib/test/regression.py 2016-08-30 23:29:16.000000000 +0200 @@ -1,7 +1,7 @@ #-*- coding: ISO-8859-1 -*- # pysqlite2/test/regression.py: pysqlite regression tests # -# Copyright (C) 2006-2015 Gerhard H�ring <g...@ghaering.de> +# Copyright (C) 2006-2015 Gerhard H�ring <g...@ghaering.de> # # This file is part of pysqlite. # @@ -332,6 +332,19 @@ self.assertRaises(ValueError, cur.execute, " \0select 2") self.assertRaises(ValueError, cur.execute, "select 2\0") + def CheckNonSelectCursorDescription(self): + # https://github.com/ghaering/pysqlite/issues/104 + con = sqlite.connect(":memory:") + cur = con.cursor() + cur.execute("create table test as select 1 foo") + self.assertEqual(cur.description, None) + cur.execute("delete from test") + self.assertEqual(cur.description, None) + cur.execute("insert into test values (1)") + self.assertEqual(cur.description, None) + cur.execute("update test set foo=2") + self.assertEqual(cur.description, None) + def suite(): regression_suite = unittest.makeSuite(RegressionTests, "Check") return unittest.TestSuite((regression_suite,)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysqlite-2.8.1/src/connection.c new/pysqlite-2.8.3/src/connection.c --- old/pysqlite-2.8.1/src/connection.c 2015-08-23 10:55:15.000000000 +0200 +++ new/pysqlite-2.8.3/src/connection.c 2016-03-26 17:11:47.000000000 +0100 @@ -50,7 +50,7 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject* kwargs) { - static char *kwlist[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", NULL, NULL}; + static char *kwlist[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", "flags", NULL, NULL}; PyObject* database; int detect_types = 0; @@ -59,11 +59,12 @@ int check_same_thread = 1; int cached_statements = 100; double timeout = 5.0; + int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE; int rc; PyObject* database_utf8; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|diOiOi", kwlist, - &database, &timeout, &detect_types, &isolation_level, &check_same_thread, &factory, &cached_statements)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|diOiOii", kwlist, + &database, &timeout, &detect_types, &isolation_level, &check_same_thread, &factory, &cached_statements, &flags)) { return -1; } @@ -94,7 +95,7 @@ } Py_BEGIN_ALLOW_THREADS - rc = sqlite3_open(PyString_AsString(database_utf8), &self->db); + rc = sqlite3_open_v2(PyString_AsString(database_utf8), &self->db, flags, NULL); Py_END_ALLOW_THREADS Py_DECREF(database_utf8); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysqlite-2.8.1/src/cursor.c new/pysqlite-2.8.3/src/cursor.c --- old/pysqlite-2.8.1/src/cursor.c 2015-08-23 11:10:00.000000000 +0200 +++ new/pysqlite-2.8.3/src/cursor.c 2016-08-30 23:25:15.000000000 +0200 @@ -580,11 +580,9 @@ } if (rc == SQLITE_ROW || rc == SQLITE_DONE) { - if (self->description == Py_None) { - Py_BEGIN_ALLOW_THREADS - numcols = sqlite3_column_count(self->statement->st); - Py_END_ALLOW_THREADS + numcols = sqlite3_column_count(self->statement->st); + if (self->description == Py_None && numcols > 0) { Py_DECREF(self->description); self->description = PyTuple_New(numcols); if (!self->description) { @@ -614,8 +612,8 @@ } if (!multiple) { - Py_DECREF(self->lastrowid); sqlite_int64 lastrowid; + Py_DECREF(self->lastrowid); Py_BEGIN_ALLOW_THREADS lastrowid = sqlite3_last_insert_rowid(self->connection->db); Py_END_ALLOW_THREADS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysqlite-2.8.1/src/module.c new/pysqlite-2.8.3/src/module.c --- old/pysqlite-2.8.1/src/module.c 2015-08-22 23:33:16.000000000 +0200 +++ new/pysqlite-2.8.3/src/module.c 2016-03-26 17:11:47.000000000 +0100 @@ -52,7 +52,7 @@ * C-level, so this code is redundant with the one in connection_init in * connection.c and must always be copied from there ... */ - static char *kwlist[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", NULL, NULL}; + static char *kwlist[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", "flags", NULL, NULL}; PyObject* database; int detect_types = 0; PyObject* isolation_level; @@ -60,11 +60,12 @@ int check_same_thread = 1; int cached_statements; double timeout = 5.0; + int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE; PyObject* result; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|diOiOi", kwlist, - &database, &timeout, &detect_types, &isolation_level, &check_same_thread, &factory, &cached_statements)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|diOiOii", kwlist, + &database, &timeout, &detect_types, &isolation_level, &check_same_thread, &factory, &cached_statements, &flags)) { return NULL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysqlite-2.8.1/src/module.h new/pysqlite-2.8.3/src/module.h --- old/pysqlite-2.8.1/src/module.h 2015-08-23 12:16:04.000000000 +0200 +++ new/pysqlite-2.8.3/src/module.h 2016-08-30 23:35:23.000000000 +0200 @@ -25,7 +25,7 @@ #define PYSQLITE_MODULE_H #include "Python.h" -#define PYSQLITE_VERSION "2.8.1" +#define PYSQLITE_VERSION "2.8.3" extern PyObject* pysqlite_Error; extern PyObject* pysqlite_Warning; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pysqlite-2.8.1/src/sqlite_constants.h new/pysqlite-2.8.3/src/sqlite_constants.h --- old/pysqlite-2.8.1/src/sqlite_constants.h 2015-08-22 23:33:03.000000000 +0200 +++ new/pysqlite-2.8.3/src/sqlite_constants.h 2016-07-17 02:23:00.000000000 +0200 @@ -154,6 +154,9 @@ #ifdef SQLITE_IOERR_ACCESS {"SQLITE_IOERR_ACCESS", SQLITE_IOERR_ACCESS}, #endif +#ifdef SQLITE_IOERR_AUTH +{"SQLITE_IOERR_AUTH", SQLITE_IOERR_AUTH}, +#endif #ifdef SQLITE_IOERR_BLOCKED {"SQLITE_IOERR_BLOCKED", SQLITE_IOERR_BLOCKED}, #endif @@ -226,6 +229,9 @@ #ifdef SQLITE_IOERR_UNLOCK {"SQLITE_IOERR_UNLOCK", SQLITE_IOERR_UNLOCK}, #endif +#ifdef SQLITE_IOERR_VNODE +{"SQLITE_IOERR_VNODE", SQLITE_IOERR_VNODE}, +#endif #ifdef SQLITE_IOERR_WRITE {"SQLITE_IOERR_WRITE", SQLITE_IOERR_WRITE}, #endif @@ -397,6 +403,9 @@ #ifdef SQLITE_FCNTL_HAS_MOVED {"SQLITE_FCNTL_HAS_MOVED", SQLITE_FCNTL_HAS_MOVED}, #endif +#ifdef SQLITE_FCNTL_JOURNAL_POINTER +{"SQLITE_FCNTL_JOURNAL_POINTER", SQLITE_FCNTL_JOURNAL_POINTER}, +#endif #ifdef SQLITE_FCNTL_LAST_ERRNO {"SQLITE_FCNTL_LAST_ERRNO", SQLITE_FCNTL_LAST_ERRNO}, #endif @@ -442,6 +451,9 @@ #ifdef SQLITE_FCNTL_VFSNAME {"SQLITE_FCNTL_VFSNAME", SQLITE_FCNTL_VFSNAME}, #endif +#ifdef SQLITE_FCNTL_VFS_POINTER +{"SQLITE_FCNTL_VFS_POINTER", SQLITE_FCNTL_VFS_POINTER}, +#endif #ifdef SQLITE_FCNTL_WAL_BLOCK {"SQLITE_FCNTL_WAL_BLOCK", SQLITE_FCNTL_WAL_BLOCK}, #endif @@ -544,6 +556,9 @@ #ifdef SQLITE_CONFIG_SQLLOG {"SQLITE_CONFIG_SQLLOG", SQLITE_CONFIG_SQLLOG}, #endif +#ifdef SQLITE_CONFIG_STMTJRNL_SPILL +{"SQLITE_CONFIG_STMTJRNL_SPILL", SQLITE_CONFIG_STMTJRNL_SPILL}, +#endif #ifdef SQLITE_CONFIG_URI {"SQLITE_CONFIG_URI", SQLITE_CONFIG_URI}, #endif @@ -553,6 +568,12 @@ #ifdef SQLITE_DBCONFIG_ENABLE_FKEY {"SQLITE_DBCONFIG_ENABLE_FKEY", SQLITE_DBCONFIG_ENABLE_FKEY}, #endif +#ifdef SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER +{"SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER", SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER}, +#endif +#ifdef SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION +{"SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION", SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION}, +#endif #ifdef SQLITE_DBCONFIG_ENABLE_TRIGGER {"SQLITE_DBCONFIG_ENABLE_TRIGGER", SQLITE_DBCONFIG_ENABLE_TRIGGER}, #endif @@ -745,24 +766,36 @@ #ifdef SQLITE_TRANSIENT {"SQLITE_TRANSIENT", SQLITE_TRANSIENT}, #endif +#ifdef SQLITE_INDEX_SCAN_UNIQUE +{"SQLITE_INDEX_SCAN_UNIQUE", SQLITE_INDEX_SCAN_UNIQUE}, +#endif #ifdef SQLITE_INDEX_CONSTRAINT_EQ {"SQLITE_INDEX_CONSTRAINT_EQ", SQLITE_INDEX_CONSTRAINT_EQ}, #endif #ifdef SQLITE_INDEX_CONSTRAINT_GE {"SQLITE_INDEX_CONSTRAINT_GE", SQLITE_INDEX_CONSTRAINT_GE}, #endif +#ifdef SQLITE_INDEX_CONSTRAINT_GLOB +{"SQLITE_INDEX_CONSTRAINT_GLOB", SQLITE_INDEX_CONSTRAINT_GLOB}, +#endif #ifdef SQLITE_INDEX_CONSTRAINT_GT {"SQLITE_INDEX_CONSTRAINT_GT", SQLITE_INDEX_CONSTRAINT_GT}, #endif #ifdef SQLITE_INDEX_CONSTRAINT_LE {"SQLITE_INDEX_CONSTRAINT_LE", SQLITE_INDEX_CONSTRAINT_LE}, #endif +#ifdef SQLITE_INDEX_CONSTRAINT_LIKE +{"SQLITE_INDEX_CONSTRAINT_LIKE", SQLITE_INDEX_CONSTRAINT_LIKE}, +#endif #ifdef SQLITE_INDEX_CONSTRAINT_LT {"SQLITE_INDEX_CONSTRAINT_LT", SQLITE_INDEX_CONSTRAINT_LT}, #endif #ifdef SQLITE_INDEX_CONSTRAINT_MATCH {"SQLITE_INDEX_CONSTRAINT_MATCH", SQLITE_INDEX_CONSTRAINT_MATCH}, #endif +#ifdef SQLITE_INDEX_CONSTRAINT_REGEXP +{"SQLITE_INDEX_CONSTRAINT_REGEXP", SQLITE_INDEX_CONSTRAINT_REGEXP}, +#endif #ifdef SQLITE_MUTEX_FAST {"SQLITE_MUTEX_FAST", SQLITE_MUTEX_FAST}, #endif