summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorJason Kirtland <jek@discorporate.us>2007-11-18 18:19:52 +0000
committerJason Kirtland <jek@discorporate.us>2007-11-18 18:19:52 +0000
commitea627ebe5c8c34ffc4ab5efd04a4855c9419e9c6 (patch)
tree088dba60ebe3c3ab6b9ef34e0ea9d8f7ec1e6a69 /lib/sqlalchemy
parent08a434881faa14eab8f17274b97af042903eaba9 (diff)
downloadsqlalchemy-ea627ebe5c8c34ffc4ab5efd04a4855c9419e9c6.tar.gz
Migrated Connection.properties to Connection.info ('info' is the new standard name for user-writable property collections that came out of [ticket:573]). 'properties' is now an alias, will be removed in 0.5.
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/databases/mysql.py16
-rw-r--r--lib/sqlalchemy/engine/base.py9
-rw-r--r--lib/sqlalchemy/interfaces.py4
-rw-r--r--lib/sqlalchemy/pool.py26
4 files changed, 32 insertions, 23 deletions
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py
index eaba40a6d..441c099a2 100644
--- a/lib/sqlalchemy/databases/mysql.py
+++ b/lib/sqlalchemy/databases/mysql.py
@@ -1591,9 +1591,9 @@ class MySQLDialect(default.DefaultDialect):
"""
try:
- return connection.properties['_mysql_server_version_info']
+ return connection.info['_mysql_server_version_info']
except KeyError:
- version = connection.properties['_mysql_server_version_info'] = \
+ version = connection.info['_mysql_server_version_info'] = \
self._server_version_info(connection.connection.connection)
return version
@@ -1663,8 +1663,8 @@ class MySQLDialect(default.DefaultDialect):
"""Sniff out the character set in use for connection results."""
# Allow user override, won't sniff if force_charset is set.
- if 'force_charset' in connection.properties:
- return connection.properties['force_charset']
+ if 'force_charset' in connection.info:
+ return connection.info['force_charset']
# Note: MySQL-python 1.2.1c7 seems to ignore changes made
# on a connection via set_character_set()
@@ -1710,7 +1710,7 @@ class MySQLDialect(default.DefaultDialect):
# http://dev.mysql.com/doc/refman/5.0/en/name-case-sensitivity.html
try:
- return connection.properties['lower_case_table_names']
+ return connection.info['lower_case_table_names']
except KeyError:
row = _compat_fetchone(connection.execute(
"SHOW VARIABLES LIKE 'lower_case_table_names'"),
@@ -1727,7 +1727,7 @@ class MySQLDialect(default.DefaultDialect):
else:
cs = int(row[1])
row.close()
- connection.properties['lower_case_table_names'] = cs
+ connection.info['lower_case_table_names'] = cs
return cs
def _detect_collations(self, connection, charset=None):
@@ -1737,7 +1737,7 @@ class MySQLDialect(default.DefaultDialect):
"""
try:
- return connection.properties['collations']
+ return connection.info['collations']
except KeyError:
collations = {}
if self.server_version_info(connection) < (4, 1, 0):
@@ -1746,7 +1746,7 @@ class MySQLDialect(default.DefaultDialect):
rs = connection.execute('SHOW COLLATION')
for row in _compat_fetchall(rs, charset):
collations[row[0]] = row[1]
- connection.properties['collations'] = collations
+ connection.info['collations'] = collations
return collations
def _show_create_table(self, connection, table, charset=None,
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py
index c3f99bb24..6af0ce0d3 100644
--- a/lib/sqlalchemy/engine/base.py
+++ b/lib/sqlalchemy/engine/base.py
@@ -557,8 +557,13 @@ class Connection(Connectable):
dialect = property(lambda s:s.engine.dialect, doc="Dialect used by this Connection.")
connection = property(_get_connection, doc="The underlying DB-API connection managed by this Connection.")
should_close_with_result = property(lambda s:s.__close_with_result, doc="Indicates if this Connection should be closed when a corresponding ResultProxy is closed; this is essentially an auto-release mode.")
- properties = property(lambda s: s._get_connection().properties,
- doc="A collection of per-DB-API connection instance properties.")
+
+ info = property(lambda s: s._get_connection().info,
+ doc=("A collection of per-DB-API connection instance "
+ "properties."))
+ properties = property(lambda s: s._get_connection().info,
+ doc=("An alias for the .info collection, will be "
+ "removed in 0.5."))
def connect(self):
"""Returns self.
diff --git a/lib/sqlalchemy/interfaces.py b/lib/sqlalchemy/interfaces.py
index ae2aeed69..eaad25769 100644
--- a/lib/sqlalchemy/interfaces.py
+++ b/lib/sqlalchemy/interfaces.py
@@ -29,7 +29,7 @@ class PoolListener(object):
Events also receive a ``_ConnectionRecord``, a long-lived internal
``Pool`` object that basically represents a "slot" in the
connection pool. ``_ConnectionRecord`` objects have one public
- attribute of note: ``properties``, a dictionary whose contents are
+ attribute of note: ``info``, a dictionary whose contents are
scoped to the lifetime of the DB-API connection managed by the
record. You can use this shared storage area however you like.
@@ -51,7 +51,7 @@ class PoolListener(object):
con_record
The ``_ConnectionRecord`` that persistently manages the connection
-
+
"""
def checkout(self, dbapi_con, con_record, con_proxy):
diff --git a/lib/sqlalchemy/pool.py b/lib/sqlalchemy/pool.py
index 40114144b..ff38f21b8 100644
--- a/lib/sqlalchemy/pool.py
+++ b/lib/sqlalchemy/pool.py
@@ -199,7 +199,7 @@ class _ConnectionRecord(object):
def __init__(self, pool):
self.__pool = pool
self.connection = self.__connect()
- self.properties = {}
+ self.info = {}
if pool._on_connect:
for l in pool._on_connect:
l.connect(self.connection, self)
@@ -222,7 +222,7 @@ class _ConnectionRecord(object):
def get_connection(self):
if self.connection is None:
self.connection = self.__connect()
- self.properties.clear()
+ self.info.clear()
if self.__pool._on_connect:
for l in self.__pool._on_connect:
l.connect(self.connection, self)
@@ -231,7 +231,7 @@ class _ConnectionRecord(object):
self.__pool.log("Connection %s exceeded timeout; recycling" % repr(self.connection))
self.__close()
self.connection = self.__connect()
- self.properties.clear()
+ self.info.clear()
if self.__pool._on_connect:
for l in self.__pool._on_connect:
l.connect(self.connection, self)
@@ -260,6 +260,9 @@ class _ConnectionRecord(object):
self.__pool.log("Error on connect(): %s" % (str(e)))
raise
+ properties = property(lambda self: self.info,
+ doc="A synonym for .info, will be removed in 0.5.")
+
def _finalize_fairy(connection, connection_record, pool, ref=None):
if ref is not None and connection_record.backref is not ref:
return
@@ -304,20 +307,21 @@ class _ConnectionFairy(object):
is_valid = property(lambda self:self.connection is not None)
- def _get_properties(self):
- """A property collection unique to this DB-API connection."""
+ def _get_info(self):
+ """An info collection unique to this DB-API connection."""
try:
- return self._connection_record.properties
+ return self._connection_record.info
except AttributeError:
if self.connection is None:
raise exceptions.InvalidRequestError("This connection is closed")
try:
- return self._detatched_properties
+ return self._detached_info
except AttributeError:
- self._detatched_properties = value = {}
+ self._detached_info = value = {}
return value
- properties = property(_get_properties)
+ info = property(_get_info)
+ properties = property(_get_info)
def invalidate(self, e=None):
"""Mark this connection as invalidated.
@@ -389,8 +393,8 @@ class _ConnectionFairy(object):
self._connection_record.connection = None
self._connection_record.backref = None
self._pool.do_return_conn(self._connection_record)
- self._detatched_properties = \
- self._connection_record.properties.copy()
+ self._detached_info = \
+ self._connection_record.info.copy()
self._connection_record = None
def close(self):