[New-bugs-announce] [issue21465] sqlite3 Row can return duplicate keys when using adapters

Mark Lawrence report at bugs.python.org
Fri May 9 23:50:56 CEST 2014


New submission from Mark Lawrence:

Code adopted from here https://docs.python.org/3/library/sqlite3.html#default-adapters-and-converters.

import sqlite3
import datetime

con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
con.row_factory = sqlite3.Row
cur = con.cursor()
cur.execute("create table test(d date, ts timestamp)")

today = datetime.date.today()
now = datetime.datetime.now()

cur.execute("insert into test(d, ts) values (?, ?)", (today, now))

cur.execute('select current_date as "d [date]", current_timestamp as "ts [timestamp]"')
row = cur.fetchone()
print(row.keys())

cur.execute('select current_date as "nit [date]", current_timestamp as "nit [timestamp]"')
row = cur.fetchone()
print(row.keys())

cur.execute('select current_date as " [date]", current_timestamp as " [timestamp]"')
row = cur.fetchone()
print(row.keys())

Output ---

c:\Users\Mark\MyPython>sqlite3_error.py
['d', 'ts']
['nit', 'nit']
['', '']

This clearly defeats the purpose of using keys to access the given columns.  Hardly a show stopper but I thought I'd flag it up.

----------
components: Library (Lib)
messages: 218200
nosy: BreamoreBoy
priority: normal
severity: normal
status: open
title: sqlite3 Row can return duplicate keys when using adapters
type: behavior
versions: Python 2.7, Python 3.4, Python 3.5

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue21465>
_______________________________________


More information about the New-bugs-announce mailing list