]> granicus.if.org Git - python/commitdiff
bpo-30262: Don't expose private objects in sqlite3 (GH-1440)
authorAviv Palivoda <palaviv@gmail.com>
Thu, 9 May 2019 18:05:45 +0000 (21:05 +0300)
committerBerker Peksag <berker.peksag@gmail.com>
Thu, 9 May 2019 18:05:45 +0000 (21:05 +0300)
The Cache and Statement objects are undocumented and implementation
details of the sqlite3 module.

They aren't usable from pure Python code.

Doc/whatsnew/3.8.rst
Misc/NEWS.d/next/Library/2019-05-09-12-38-40.bpo-30262.Tu74ak.rst [new file with mode: 0644]
Modules/_sqlite/module.c

index d21a4c7944afba2049b18450bc9ff5514a0c213a..49a6cb0788a137ef0030b1de3d9cc7c46b750d1f 100644 (file)
@@ -796,6 +796,10 @@ The following features and APIs have been removed from Python 3.8:
 * "unicode_internal" codec is removed.
   (Contributed by Inada Naoki in :issue:`36297`.)
 
+* The ``Cache`` and ``Statement`` objects of the :mod:`sqlite3` module are not
+  exposed to the user.
+  (Contributed by Aviv Palivoda in :issue:`30262`.)
+
 
 Porting to Python 3.8
 =====================
diff --git a/Misc/NEWS.d/next/Library/2019-05-09-12-38-40.bpo-30262.Tu74ak.rst b/Misc/NEWS.d/next/Library/2019-05-09-12-38-40.bpo-30262.Tu74ak.rst
new file mode 100644 (file)
index 0000000..059bd71
--- /dev/null
@@ -0,0 +1,2 @@
+The ``Cache`` and ``Statement`` objects of the :mod:`sqlite3` module are not
+exposed to the user.  Patch by Aviv Palivoda.
index 274ee13c375eeb4ac8caac44a6fa0c564f874821..c487ba98908b349b30baf30d28fac0bde12c5770 100644 (file)
@@ -366,10 +366,6 @@ PyMODINIT_FUNC PyInit__sqlite3(void)
     PyModule_AddObject(module, "Connection", (PyObject*) &pysqlite_ConnectionType);
     Py_INCREF(&pysqlite_CursorType);
     PyModule_AddObject(module, "Cursor", (PyObject*) &pysqlite_CursorType);
-    Py_INCREF(&pysqlite_CacheType);
-    PyModule_AddObject(module, "Statement", (PyObject*)&pysqlite_StatementType);
-    Py_INCREF(&pysqlite_StatementType);
-    PyModule_AddObject(module, "Cache", (PyObject*) &pysqlite_CacheType);
     Py_INCREF(&pysqlite_PrepareProtocolType);
     PyModule_AddObject(module, "PrepareProtocol", (PyObject*) &pysqlite_PrepareProtocolType);
     Py_INCREF(&pysqlite_RowType);