Daniele Varrazzo
cd316a94f1
Dropped quirks in connection arguments handling
...
Now connect() raises an exception instead of swallowing keyword arguments
when a connection string is specified as well
Closes ticket #131 .
2012-09-25 23:46:46 +01:00
Daniele Varrazzo
b894539007
Fixed json doc error
2012-09-25 00:12:57 +01:00
Daniele Varrazzo
b8b669611e
More helpful error messasge on Range order attempts
2012-09-25 00:07:08 +01:00
Daniele Varrazzo
7b1973354f
Fixed SQL_IN when getquoted() is called without prepare()
2012-09-24 16:55:01 +01:00
Daniele Varrazzo
71e2f190c2
Json documentation improved
2012-09-24 11:51:35 +01:00
Daniele Varrazzo
a3418052e9
Don't create/register a json array typecaster if no oid provided
2012-09-24 11:23:09 +01:00
Daniele Varrazzo
c756d580f2
Added documentation for range types and adaptation
2012-09-24 00:49:44 +01:00
Daniele Varrazzo
b1953640d2
Don't need to implement __new__ to make an immutable class
2012-09-24 00:49:02 +01:00
Daniele Varrazzo
a858987844
Fixed search of types into schemas.
...
We don't need to look for stuff implicitly into pg_catalog as all
the builtin ranges are already registered. So just search into
'public' if the schema is not specified.
2012-09-24 00:49:02 +01:00
Daniele Varrazzo
841ddaba87
Range objects cannot be ordered
2012-09-23 22:54:50 +01:00
Daniele Varrazzo
25ef540aa3
Range objects are nonzero when not empty
2012-09-23 22:43:23 +01:00
Daniele Varrazzo
a96a4349ed
Range objects are immutable and hashable
2012-09-23 22:40:13 +01:00
Daniele Varrazzo
e002ea5937
Dropped Range._empty attribute
...
We can do with just _bounds: it will make eq and hash easier to
implement in a consistent way
2012-09-23 22:10:33 +01:00
Daniele Varrazzo
d2cee6f9ad
Added in operator for ranges
2012-09-23 22:01:39 +01:00
Daniele Varrazzo
94c6353d55
NumberRange renamed to NumericRange
...
I was avoiding Numeric to avoid conflicting with the 'numeric'
Postgres type, which is an alias for 'decimal'. But now that there
is a single numeric range I can use the preferred name
2012-09-23 21:11:06 +01:00
Daniele Varrazzo
45cbcc0713
Dropped Range classes for specific numeric types
2012-09-23 21:08:18 +01:00
Daniele Varrazzo
5e7c1d0b51
Added first implementation of Range type, adapter, typecaster
2012-09-23 21:03:36 +01:00
Daniele Varrazzo
9949e04c70
Added schema attribute to CompositeCaster
2012-09-22 15:10:40 +01:00
Daniele Varrazzo
59151886a0
Info about hstore versions history moved from code to docs
2012-09-22 02:10:58 +01:00
Daniele Varrazzo
26cfdc1234
Info about versions history moved from code to docs
2012-09-22 02:08:21 +01:00
Daniele Varrazzo
fa9393b587
Added documentation about CompositeCaster subclassing
2012-09-22 02:01:04 +01:00
Daniele Varrazzo
1b2c2c34b6
Make CompositeCaster easier to subclass
2012-09-22 01:46:53 +01:00
Daniele Varrazzo
7de8611607
errorcodes map updated to PostgreSQL 9.2
2012-09-21 01:59:02 +01:00
Daniele Varrazzo
526e270934
Use namedtuple._make in NamedTupleCursor and CompositeCaster
...
Makes things more natural as _make has the same signature of the tuple (see
_ctor in CompositeCaster) and is probably more efficient with less
intermediate sequences to build.
2012-09-20 16:27:50 +01:00
Daniele Varrazzo
5645e7adef
Pasto fixed
2012-09-20 03:44:50 +01:00
Daniele Varrazzo
9b2ad7abb5
Fixed json typecaster with NULL input
2012-09-20 00:39:34 +01:00
Daniele Varrazzo
7386b8327c
Dropped keywords passthrough in Json adapter
...
Pass a dumps function instead. Allow customizing by either arg passing or
subclassing.
The basic Json class now raises ImportError on getquoted() if json is not
available, thus allowing using a customized Json subclass even when the json
module is not available.
2012-09-19 16:32:57 +01:00
Daniele Varrazzo
d963b478e2
Added register_default_json() function
...
Register a typecaster for PostgreSQL 9.2 json.
2012-09-19 15:49:00 +01:00
Daniele Varrazzo
26d71b4cba
First parameter of register_json defaults to None
2012-09-19 15:31:28 +01:00
Daniele Varrazzo
024f0dbada
Added json typecaster
2012-09-19 04:26:35 +01:00
Daniele Varrazzo
b8e7f02256
Added Json adapter
2012-09-19 04:12:20 +01:00
Daniele Varrazzo
21d323d2c8
Fixed register_hstore and register_composite with non-dbapi objects
...
Closed ticket #114 .
2012-08-14 23:26:17 +01:00
Daniele Varrazzo
ba1fe6fff6
Fixed superclass methods call.
...
Methods execute() and callproc() in DictCursor and RealDictCursor should
call DictCursorBase methods, not _cursor's ones.
Reported by Alexey Luchko on the ML.
2012-05-08 15:48:07 +01:00
Daniele Varrazzo
c86ca7687f
Fixed cursor() arguments propagation to other connection classes
2012-04-11 17:59:16 +01:00
Corry Haines
095cce5605
Allow user to override connection factory cursors
...
Prior to this change, using a extras.connection_factory would not allow
any other cursor to be used on that connection. It was set in stone.
This change allows all cursor options to pass through and override the
connection factory behaviors. This allows a connection_factory to be
dropped into existing code with no disruption.
This change also standardizes the extras.connection_factories to have
the same behavior and all pass through *args and **kwargs.
2012-04-11 17:36:04 +01:00
Marti Raudsepp
b97599166e
Update all links to PostgreSQL docs to the current version.
...
I also checked all links and anchors to make sure they're still valid.
2012-02-28 18:28:07 +02:00
Daniele Varrazzo
0c337a2029
Added support for inet array
2012-02-23 23:56:55 +00:00
Daniele Varrazzo
36b6c80ed1
register_uuid takes more iterables types as oids argument
...
Also added docs for the function parameters.
2012-02-23 23:51:28 +00:00
Daniele Varrazzo
b8597dc1d3
Fixed NamedTupleCursor rownumber during iteration.
...
The correction is similar to the other one for the other subclasses.
Also added tests for rowcount and rownumber during different fetch styles.
Just in case.
2012-02-23 22:58:58 +00:00
Daniele Varrazzo
ebec522a07
Fixed rownumber for cursor subclasses during iterations
...
Regression introduced to fix ticket #80 . Don't use fetchmany to get the
chunks of values. I did it that way because I was ending up into infinite
recursion calling __iter__ from __iter__: the solution has been the
"while 1: yield next()" idiom.
2012-02-23 22:55:13 +00:00
Daniele Varrazzo
dca6cffd6e
Dropped custom array parsing for UUID[]
...
Use the C generic array parsing exposed by new_array_type().
2012-02-23 14:41:55 +00:00
Daniele Varrazzo
f782470d71
Parens don't need escaping in regexp char classes
2012-02-23 14:41:51 +00:00
Daniele Varrazzo
1332d4a0d8
Fixed never raised exception in composite parsing
2012-02-23 14:41:46 +00:00
Menno Smits
bca7200b3f
Cache FixedOffsetTimezone instances
...
Avoid creating new a new FixedOffsetTimezone instance if one with the
same offset and name has been created before. This will save memory
when returning many rows containing "timestamp with timezone" columns,
and also improves comparability.
2012-01-30 13:27:40 +00:00
Menno Smits
1469a56512
Fixed repr for FixedOffsetTimezone for offsets west of UTC (negative)
...
The offset displayed was always positive and somewhat confusing. The
offset displayed now is the offset that the instance was created
with.
Also added some tests for initialisation.
2012-01-30 13:27:01 +00:00
Daniele Varrazzo
2cf35b69de
'register_composite()' also works with tables
...
Skip dropped and hidden columns when inspecting the schema.
2011-12-15 20:11:17 +00:00
Daniele Varrazzo
a4485022b5
Use 'autocommit' to check if to rollback after extra types registration
...
isolation_level currently requires an extra query, autocommit doesn't.
2011-12-15 19:56:52 +00:00
Daniele Varrazzo
bb8e1e9455
Fixed error in schema mismatch in composite caster
2011-12-15 19:56:52 +00:00
Daniele Varrazzo
5a6a303d43
A couple of fixes to psycopg1
...
_psycopg.connect is no more. Also use symbolic consts instead of values
for the isolation level.
2011-12-15 13:06:32 +00:00
Daniele Varrazzo
b5de04d2ff
Put back a distinct ISOLATION_LEVEL_READ_UNCOMMITTED value
2011-12-15 12:53:48 +00:00
Federico Di Gregorio
d2d94e203f
Reverted isolation level values to backward compatible values
...
This basically removes the READ UNCOMMITED level (that internally
PostgreSQL maps to READ COMMITED anyway) to keep the numeric values
compattible with old psycopg versions. For full details and discussion
see this thread:
http://archives.postgresql.org/psycopg/2011-12/msg00008.php
2011-12-15 12:25:19 +01:00
Daniele Varrazzo
8473209d24
Named DictCursor/RealDictCursor honour itersize
...
Closes ticket #80 .
2011-12-11 22:06:15 +00:00
Daniele Varrazzo
e18d27c475
Reproducing/documenting odd behaviours of connect()
2011-11-17 21:51:24 +00:00
Daniele Varrazzo
625cc1b402
Escape parameters to the connection strings as required by PQconnectdb
2011-11-17 21:51:24 +00:00
Daniele Varrazzo
d2b67364fd
connect() supports generic keyword arguments passed to the dsn
2011-11-17 01:51:25 +00:00
Daniele Varrazzo
dde4c0de3d
Decimal adapter registration moved from C to Python
...
Fixes Decimal adaptation in sub-interpreter, where the Decimal class has
a different identity from the one in the main interpreter.
Closes ticket #52 .
2011-10-14 22:35:56 +01:00
Daniele Varrazzo
8963b8adcb
Added support for arrays of composite types
2011-09-22 19:57:42 +02:00
Daniele Varrazzo
2f9ceeac64
Added support for arrays of hstores
2011-09-22 19:56:58 +02:00
Daniele Varrazzo
e3054ac9f3
Added new_array_type() function
...
Allows the creation of a generic array typecaster from Python.
2011-09-22 15:51:21 +01:00
Daniele Varrazzo
cd6e2cd8f2
Don't leak private variables into the psycopg2.extensions interface
2011-09-22 14:34:14 +01:00
Daniele Varrazzo
d67d50b434
Fixed interaction between RealDictCursor and named cursors
...
Closes ticket #67 .
2011-09-12 02:20:53 +01:00
Daniele Varrazzo
29932c488f
errorcodes map updated to PostgreSQL 9.1
2011-08-22 17:29:14 +01:00
Daniele Varrazzo
9870ca4dce
Fixed NamedTupleCursor.executemany() (ticket #65 )
2011-08-09 11:44:30 +01:00
Daniele Varrazzo
a2ee25ecfe
Check the connection status before putting back into the pool
...
Rollback connections in transaction or in error.
Discard broken connections.
Closes ticket #62 .
2011-08-09 11:44:30 +01:00
Daniele Varrazzo
4fd5f3267b
Raise PoolError when putting a connection not belonging to the pool
...
A KeyError was raised instead.
2011-08-09 11:44:30 +01:00
Marko Kreen
cb1d163f4f
lazy import for uuid module
...
Attached patch moves uuid import from inside try-except
to register_uuid function. Reason: uuid module import is *very*
heavy. It goes into OS searching for various .dll/.so libraries,
lauches 'ldconfig' and so on...
With this patch, 200x python -c 'import psycopg2.extras'
goes from 22s to 7s. (plain 'import psycopg2' is 6s)
--
marko
2011-06-28 17:28:43 +02:00
Daniele Varrazzo
62a8ef308a
Fixed version check
2011-06-04 14:21:18 +01:00
Daniele Varrazzo
531292bca5
Merge branch 'neg-escape' into devel
2011-05-30 22:09:23 +01:00
Daniele Varrazzo
281427f450
Fixed escape for negative numbers prefixed by minus operator
...
Closes ticket #57 .
2011-05-30 22:00:20 +01:00
Daniele Varrazzo
19ec8809fd
Use all the isolation levels accepted by PostgreSQL
...
In PG 9.1 repeatable read and serializable are distinct levels.
2011-05-11 13:01:20 +01:00
Daniele Varrazzo
c61ec094a3
Don't fetch all the records iterating a NamedTuple cursor on a named cursor
2011-04-26 19:26:19 +01:00
Daniele Varrazzo
ffa7a62b93
Fixed interaction between NamedTuple and named cursor
...
Build the nametuple after fetching the first resutl, or else
cursor.description will be empty.
2011-04-26 19:18:39 +01:00
Daniele Varrazzo
80891e64b3
Dropped unused import
2011-04-26 19:16:10 +01:00
Daniele Varrazzo
9e00196165
Fixed use of the new return value of HstoreAdapter.get_oids()
2011-02-25 01:37:02 +00:00
Daniele Varrazzo
5211e1474b
Don't limit the hstore search to the public schema only
...
Looks like there is a case for installing hstore somewhere else (see
ticket #45 ). And after all the typecaster can be registered on a list of
OIDs, so let's grab them all.
2011-02-25 00:19:49 +00:00
Daniele Varrazzo
143dc2e911
Added oid parameter to register_hstore()
...
The parameter is mostly useful with async connections that would need a
different protocol to be queried.
Issue reported by Jan "the Asynchronous".
2011-02-21 01:29:53 +00:00
Daniele Varrazzo
556b4d461e
Documentation cleanup
...
Added several links to the Python documentation using the 'intersphinx'
extension.
2011-02-19 16:16:28 +00:00
Daniele Varrazzo
1ba5f104c9
Import _psycopg as the first module in the package
...
Failing to do so, the real cause of the _psycopg import failed may get
hidden and people may get a misleading error such as "cannot import name
tz" instead.
2011-02-17 10:45:18 +00:00
Daniele Varrazzo
7a058403ca
Fixed mapping for composite types defined in a schema
2011-02-09 02:22:03 +01:00
Daniele Varrazzo
8ac5f0070a
Fields order enforced in composite types adapter
2011-02-09 02:21:55 +01:00
Daniele Varrazzo
ac5cde8834
Only use absolute imports in the package
...
In Python 3.2b2 the relative imports are not converted into explicit
ones (with .).
2011-01-08 01:24:28 +00:00
Daniele Varrazzo
80bd6e2794
Merge branch 'python2' into python3
...
Conflicts:
NEWS-2.3
psycopg/connection_type.c
tests/test_connection.py
tests/types_basic.py
2011-01-03 21:43:02 +01:00
Daniele Varrazzo
68305a0eb6
Fixed TYPE adaptation to basic tuples
...
Tuples and namedtuples have different constructors.
2011-01-03 19:27:26 +01:00
Daniele Varrazzo
929d62053a
Merge branch 'python2' into python3
...
Conflicts:
NEWS-2.3
setup.py
2011-01-02 03:28:00 +01:00
Daniele Varrazzo
88bb8eda3e
None/IN adaptation ported to Python 3.
2011-01-02 00:44:14 +01:00
Daniele Varrazzo
7ac0bdd661
Added PostgreSQL composite types typecaster to Python tuples.
2011-01-02 00:34:13 +01:00
Daniele Varrazzo
3e94375cf7
Merge branch 'python2' into python3
...
Conflicts:
ChangeLog
NEWS-2.3
lib/extensions.py
psycopg/microprotocols.c
setup.py
2011-01-01 17:14:54 +01:00
Daniele Varrazzo
fdfa2de1a1
Fixed adaptation of None in composite types (ticket #26 ).
...
Added an adapter for None: it is usually not invoked as adaptation to
NULL is a fast path in mogrify, but can be invoked by composite types.
Notice that composite types still have the option to fast-path None
(e.g. list adapter does).
2011-01-01 17:07:54 +01:00
Daniele Varrazzo
2fa9117835
Inet adapter compatible with Python 3.
2010-12-31 03:18:27 +01:00
Daniele Varrazzo
c176de4bf8
Hstore adapter compatible with Python 3.
2010-12-31 03:18:27 +01:00
Daniele Varrazzo
89c492d3a4
Added b() function to return bytes in both Py2 and Py3.
2010-12-31 03:18:27 +01:00
Daniele Varrazzo
e18f1c63ea
Deal with slices passed to __*item__ in Python 3.
2010-12-23 03:28:19 +01:00
Daniele Varrazzo
b96dcef8a2
Fixed PG -> Py encodings mapping with non-alnum chars.
...
We mangle the encoding names a little bit before asking it to the
backend: be sure to be able to find the equivalent Python code back or
decoding (unicode cast or Py3) will barf.
2010-12-21 04:02:14 +00:00
Daniele Varrazzo
31093a7a58
Some light cleanup for Py3 conversion.
...
Either flagged as warning by python2.6 -3 or converted by 2to3.
2010-12-21 04:02:13 +00:00
Daniele Varrazzo
0ad7483a2b
DictRow items can be updated. Patch by Alex Aster.
2010-12-01 13:17:12 +00:00
Daniele Varrazzo
94348bfb78
hstore registration doesn't fail if typarray column not available.
2010-11-19 03:51:53 +00:00
Daniele Varrazzo
3cae0f3f5d
NamedTupleCursor doesn't change exception when fetching with no result.
2010-11-11 10:39:42 +00:00
Daniele Varrazzo
ef7a5ee8a9
Build the namedtuple only once per execution, not once per fetch.
2010-11-11 10:39:42 +00:00
Daniele Varrazzo
f0773d5682
Avoid pointless string manipulation in NamedTupleCursor.
...
Closes ticket #10 . Reported by Marko Kreen.
2010-11-09 11:17:02 +00:00
Daniele Varrazzo
abad3127ca
Added NamedTupleCursor.
2010-11-06 04:33:44 +00:00