mirror of
https://github.com/psycopg/psycopg2.git
synced 2024-11-22 17:06:33 +03:00
Merge branch 'master' into nul-terminator
This commit is contained in:
commit
bd95269c69
6
NEWS
6
NEWS
|
@ -21,6 +21,12 @@ New features:
|
|||
- Added `~connection.get_dsn_parameters()` connection method (:ticket:`#364`).
|
||||
|
||||
|
||||
What's new in psycopg 2.6.3
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- Make `~psycopg2.extras.Range` objects picklable (:ticket:`#462`).
|
||||
|
||||
|
||||
What's new in psycopg 2.6.2
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ Why does `!cursor.execute()` raise the exception *can't adapt*?
|
|||
|
||||
I can't pass an integer or a float parameter to my query: it says *a number is required*, but *it is* a number!
|
||||
In your query string, you always have to use ``%s`` placeholders,
|
||||
event when passing a number. All Python objects are converted by Psycopg
|
||||
even when passing a number. All Python objects are converted by Psycopg
|
||||
in their SQL representation, so they get passed to the query as strings.
|
||||
See :ref:`query-parameters`. ::
|
||||
|
||||
|
|
|
@ -171,6 +171,17 @@ class Range(object):
|
|||
else:
|
||||
return self.__gt__(other)
|
||||
|
||||
def __getstate__(self):
|
||||
return dict(
|
||||
(slot, getattr(self, slot))
|
||||
for slot in self.__slots__
|
||||
if hasattr(self, slot)
|
||||
)
|
||||
|
||||
def __setstate__(self, state):
|
||||
for slot, value in state.items():
|
||||
setattr(self, slot, value)
|
||||
|
||||
|
||||
def register_range(pgrange, pyrange, conn_or_curs, globally=False):
|
||||
"""Create and register an adapter and the typecasters to convert between
|
||||
|
|
|
@ -20,6 +20,7 @@ import sys
|
|||
from decimal import Decimal
|
||||
from datetime import date, datetime
|
||||
from functools import wraps
|
||||
from pickle import dumps, loads
|
||||
|
||||
from testutils import unittest, skip_if_no_uuid, skip_before_postgres
|
||||
from testutils import ConnectingTestCase, decorate_all_tests
|
||||
|
@ -1397,6 +1398,12 @@ class RangeTestCase(unittest.TestCase):
|
|||
with py3_raises_typeerror():
|
||||
self.assert_(Range(1, 2) >= 1)
|
||||
|
||||
def test_pickling(self):
|
||||
from psycopg2.extras import Range
|
||||
|
||||
r = Range(0, 4)
|
||||
self.assertEqual(loads(dumps(r)), r)
|
||||
|
||||
|
||||
def skip_if_no_range(f):
|
||||
@wraps(f)
|
||||
|
|
Loading…
Reference in New Issue
Block a user