[issue16379] SQLite error code not exposed to python

2021-10-07 Thread miss-islington


miss-islington  added the comment:


New changeset 8deb7afbd847656842375119f8dbef8aea54 by Erlend Egeberg 
Aasland in branch 'main':
bpo-16379: Fix SQLite version checks in test_module_constants() (GH-28809)
https://github.com/python/cpython/commit/8deb7afbd847656842375119f8dbef8aea54


--
nosy: +miss-islington

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2021-10-07 Thread Erlend E. Aasland


Change by Erlend E. Aasland :


--
pull_requests: +27128
pull_request: https://github.com/python/cpython/pull/28809

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2021-08-30 Thread Erlend E. Aasland


Erlend E. Aasland  added the comment:

Thanks, Torsten for this nice suggestion, Daniel & Aviv for the initial 
patches, Gerhard & Ezio for helping improving the API, and Pablo, Asif, Hai 
Shi, & Michael for reviewing and merging!

--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2021-08-30 Thread Pablo Galindo Salgado


Pablo Galindo Salgado  added the comment:


New changeset 86d8b465231473f850cc5e906013ba8581ddb503 by Erlend Egeberg 
Aasland in branch 'main':
bpo-16379: expose SQLite error codes and error names in `sqlite3` (GH-27786)
https://github.com/python/cpython/commit/86d8b465231473f850cc5e906013ba8581ddb503


--
nosy: +pablogsal

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2021-08-16 Thread Erlend E. Aasland


Change by Erlend E. Aasland :


--
pull_requests: +26255
pull_request: https://github.com/python/cpython/pull/27786

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2021-08-16 Thread Erlend E. Aasland


Erlend E. Aasland  added the comment:

>> What would it take to get this merged?
>
> I've rebased Aviv's PR (GH-1108) onto main and resolved the conflicts.
> If I get his blessing, I'll open a PR try to land this.

I asked Aviv on GH eight days ago, and I haven't heard anything yet, so I'm 
going forward with this. For the record, here's a link to my question on the PR:
https://github.com/python/cpython/pull/1108#issuecomment-894506420

I would also like to see this feature; it makes sqlite3 development slightly 
more convenient :)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2021-08-06 Thread Erlend E. Aasland


Erlend E. Aasland  added the comment:

> What would it take to get this merged?

I've rebased Aviv's PR (GH-1108) onto main and resolved the conflicts. If I get 
his blessing, I'll open a PR try to land this.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2020-05-24 Thread Erlend Egeberg Aasland


Change by Erlend Egeberg Aasland :


--
nosy: +erlendaasland

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2020-01-12 Thread Ned Batchelder


Change by Ned Batchelder :


___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2020-01-12 Thread Ned Batchelder


Ned Batchelder  added the comment:

What would it take to get this merged?

--
nosy: +nedbat

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2017-04-13 Thread Mariatta Wijaya

Changes by Mariatta Wijaya :


--
versions: +Python 3.7 -Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2017-04-13 Thread Aviv Palivoda

Changes by Aviv Palivoda :


--
pull_requests: +1248

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2016-09-01 Thread Aviv Palivoda

Changes by Aviv Palivoda :


Added file: http://bugs.python.org/file44331/16379-3.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2016-08-31 Thread Aviv Palivoda

Aviv Palivoda added the comment:

Attached is a new patch with the encoding problem fixed.

--
Added file: http://bugs.python.org/file44306/16379-2.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2016-08-24 Thread Aviv Palivoda

Aviv Palivoda added the comment:

Attached is a patch based on Daniel last patch with the following changes:

* There is no errorcode mapping.
* The exception object has a error_name attribute.

I think this two changes should solve the API problems raised by Ezio and 
Gerhard about the error code mapping.

> I propose to also set the SQLite extended error code if this is implemented.

I think that this should be done in a separate patch. I will start working on 
the extended error code and will upload a patch to issue 24139.

--
nosy: +palaviv
Added file: https://bugs.python.org/file44213/16379.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2016-01-01 Thread Ezio Melotti

Ezio Melotti added the comment:

I think the error message should display both the numeric code and also the 
error name if available.
Instead of using a mapping, perhaps an Enum could be used instead.

--
stage: needs patch -> patch review
versions: +Python 3.6 -Python 3.4

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2015-08-24 Thread Daniel Shahaf

Daniel Shahaf added the comment:

 What's the reasoning behind offering a error code to name mapping?

Allowing code that runs into an error to print the error name rather than its
numeric value.  This saves whoever reads the error message having to look it up
himself.

 his seem problematic to me. In case a newer SQLite version introduces a new
 error code, this error code cannot be found in the mapping. I propose to
 leave this out in order to not have this problem.
 
 Otherwise we will have people depending on any error code being able to be
 found in this mapping.

Then people shouldn't depend on the mapping being complete.  Let's keep the
mapping and document that people should only use it as
`sqlite3.errorcode.get(...)`, never as `sqlite3.errorcode[...]`.

Or if that's not a good API, we could encapsulate the incompleteness of the
mapping into a small wrapper function:

   def something(errorcode):
   return sqlite3.errorcode.get(errorcode,
sqlite3 error {!d}.format(errorcode))

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2015-08-23 Thread Gerhard Häring

Gerhard Häring added the comment:

I propose to also set the SQLite extended error code if this is implemented.

What's the reasoning behind offering a error code to name mapping? This seem 
problematic to me. In case a newer SQLite version introduces a new error code, 
this error code cannot be found in the mapping. I propose to leave this out in 
order to not have this problem.

Otherwise we will have people depending on any error code being able to be 
found in this mapping.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2015-08-19 Thread Gerhard Häring

Changes by Gerhard Häring g...@ghaering.de:


--
assignee:  - ghaering

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2015-06-25 Thread Cal Leeming

Cal Leeming added the comment:

Any update on this? Still seems to be a problem as of 3.4.0.

--
nosy: +sleepycal

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2015-06-25 Thread Ivan Levkivskyi

Changes by Ivan Levkivskyi levkivs...@gmail.com:


--
nosy: +levkivskyi

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2012-12-30 Thread Daniel Shahaf

Daniel Shahaf added the comment:

New patch, with better docs and less error leaks, per Ezio's review.

--
Added file: http://bugs.python.org/file28496/i16379-v2.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2012-12-30 Thread Daniel Shahaf

Daniel Shahaf added the comment:

A couple of random eyebrow-raisers I noticed while working on v2:

- sqlite3.Warning is a subclass of Exception, rather than sqlite3.Error
  or builtins.Warning.  (Also, the docs say will raise a Warning,
  intending to refer to sqlite3.Warning, but the lack of markup makes
  this ambiguous --- it would be interpreted as a reference to
  builtins.Warning).

- If _PyUnicode_AsStringAndSize() returns NULL, the code sets a
  sqlite3.Warning exception without first checking what exception is
  already set.  (grep for PYSQLITE_SQL_WRONG_TYPE)

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2012-12-30 Thread Daniel Shahaf

Daniel Shahaf added the comment:

New patch fixing indentation of versionadded markup.

--
Added file: http://bugs.python.org/file28497/i16379-v3.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2012-12-28 Thread Daniel Shahaf

Changes by Daniel Shahaf pyt...@danielsh.fastmail.net:


--
nosy: +danielsh

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2012-12-28 Thread Daniel Shahaf

Daniel Shahaf added the comment:

Attached patch that:

- Adds sqlite3.SQLITE_OK constants
- Adds sqlite3.errorcode dictionary
- Adds sqlite_errcode attribute to sqlite.Error instances

The patch does not add support for extended result codes
(http://www.sqlite.org/c3ref/c_abort_rollback.html).

--
keywords: +patch
Added file: http://bugs.python.org/file28470/i16379-v1.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2012-12-28 Thread Daniel Shahaf

Daniel Shahaf added the comment:

I didn't compile-test the Doc/ part of the patch.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2012-11-02 Thread Ezio Melotti

Changes by Ezio Melotti ezio.melo...@gmail.com:


--
nosy: +ezio.melotti, ghaering
stage:  - needs patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16379] SQLite error code not exposed to python

2012-11-01 Thread Torsten Landschoff

New submission from Torsten Landschoff:

The sqlite3 module does not expose the sqlite3 error codes to python. This 
makes it impossible to detect specific error conditions directly.

Case in point: If a user selects some random file as the database in our 
application, we can not detect that it is not a valid database file:

$ /opt/python3/bin/python3
Python 3.4.0a0 (default:2d6eec5d01f7, Nov  1 2012, 10:47:27) 
[GCC 4.6.3] on linux
Type help, copyright, credits or license for more information.
 import sqlite3
 conn = sqlite3.connect(/etc/passwd)
 from pprint import pprint
 try:
... conn.execute(select * from random_table)
... except Exception as e:
... pprint({name: getattr(e, name) for name in dir(e)})
... raise
... 
{'__cause__': None,
 '__class__': class 'sqlite3.DatabaseError',
 '__context__': None,
 '__delattr__': method-wrapper '__delattr__' of DatabaseError object at 
0x7ffc9a13b050,
 '__dict__': {},
 '__dir__': built-in method __dir__ of DatabaseError object at 0x7ffc9a13b050,
 '__doc__': None,
 '__eq__': method-wrapper '__eq__' of DatabaseError object at 0x7ffc9a13b050,
 '__format__': built-in method __format__ of DatabaseError object at 
0x7ffc9a13b050,
 '__ge__': method-wrapper '__ge__' of DatabaseError object at 0x7ffc9a13b050,
 '__getattribute__': method-wrapper '__getattribute__' of DatabaseError object 
at 0x7ffc9a13b050,
 '__gt__': method-wrapper '__gt__' of DatabaseError object at 0x7ffc9a13b050,
 '__hash__': method-wrapper '__hash__' of DatabaseError object at 
0x7ffc9a13b050,
 '__init__': method-wrapper '__init__' of DatabaseError object at 
0x7ffc9a13b050,
 '__le__': method-wrapper '__le__' of DatabaseError object at 0x7ffc9a13b050,
 '__lt__': method-wrapper '__lt__' of DatabaseError object at 0x7ffc9a13b050,
 '__module__': 'sqlite3',
 '__ne__': method-wrapper '__ne__' of DatabaseError object at 0x7ffc9a13b050,
 '__new__': built-in method __new__ of type object at 0x8267e0,
 '__reduce__': built-in method __reduce__ of DatabaseError object at 
0x7ffc9a13b050,
 '__reduce_ex__': built-in method __reduce_ex__ of DatabaseError object at 
0x7ffc9a13b050,
 '__repr__': method-wrapper '__repr__' of DatabaseError object at 
0x7ffc9a13b050,
 '__setattr__': method-wrapper '__setattr__' of DatabaseError object at 
0x7ffc9a13b050,
 '__setstate__': built-in method __setstate__ of DatabaseError object at 
0x7ffc9a13b050,
 '__sizeof__': built-in method __sizeof__ of DatabaseError object at 
0x7ffc9a13b050,
 '__str__': method-wrapper '__str__' of DatabaseError object at 
0x7ffc9a13b050,
 '__subclasshook__': built-in method __subclasshook__ of type object at 
0x1238770,
 '__suppress_context__': False,
 '__traceback__': traceback object at 0x7ffc9a138cf8,
 '__weakref__': None,
 'args': ('file is encrypted or is not a database',),
 'with_traceback': built-in method with_traceback of DatabaseError object at 
0x7ffc9a13b050}
Traceback (most recent call last):
  File stdin, line 2, in module
sqlite3.DatabaseError: file is encrypted or is not a database


Currently, one can only match the error message, with is bad programming style.

The error code for this error is SQLITE_NOTADB, as found in the function 
sqlite3ErrStr when searching for the message in SQLite's main.c at 
http://www.sqlite.org/src/artifact/02255cf1da50956c5427c469abddb15bccc4ba09

Unfortunately, the sqlite3 module does not expose the error code itself 
(neither the actual error code nor the defined error codes) in any way. Errors 
are handled in Modules/_sqlite/util.c:

http://hg.python.org/cpython/file/2d6eec5d01f7/Modules/_sqlite/util.c#l99

I would like to have the defined error codes available in some mapping inside 
the sqlite3 module as well as the actual error code inside every sqlite 
exception e as e.sqlite_errcode

--
components: Library (Lib)
messages: 174395
nosy: torsten
priority: normal
severity: normal
status: open
title: SQLite error code not exposed to python
type: enhancement
versions: Python 3.4

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16379
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com