summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-03-30 23:30:31 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-03-30 23:30:31 +0000
commit0f8896e6fa692c0a91eb0980700bee069eddc8ef (patch)
treefbee55c4b9682fc993c4b54a7f797a82d9fd6cf3 /lib/sqlalchemy/databases
parent5291acd5974632433cd89a6aa5828224673878ed (diff)
downloadsqlalchemy-0f8896e6fa692c0a91eb0980700bee069eddc8ef.tar.gz
- reverted previous "strings instead of tuples" change due to more specific test results showing tuples faster
- changed cache decorator call on default_schema_name call to a connection.info specific one
Diffstat (limited to 'lib/sqlalchemy/databases')
-rw-r--r--lib/sqlalchemy/databases/mysql.py11
-rw-r--r--lib/sqlalchemy/databases/oracle.py5
-rw-r--r--lib/sqlalchemy/databases/postgres.py5
3 files changed, 10 insertions, 11 deletions
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py
index f09f08507..18b236d1c 100644
--- a/lib/sqlalchemy/databases/mysql.py
+++ b/lib/sqlalchemy/databases/mysql.py
@@ -157,6 +157,7 @@ import datetime, inspect, re, sys
from array import array as _array
from sqlalchemy import exceptions, logging, schema, sql, util
+from sqlalchemy.pool import connection_cache_decorator
from sqlalchemy.sql import operators as sql_operators
from sqlalchemy.sql import functions as sql_functions
from sqlalchemy.sql import compiler
@@ -1542,13 +1543,9 @@ class MySQLDialect(default.DefaultDialect):
return False
def get_default_schema_name(self, connection):
- try:
- return connection.info['default_schema']
- except KeyError:
- connection.info['default_schema'] = schema = \
- connection.execute('SELECT DATABASE()').scalar()
- return schema
-
+ return connection.execute('SELECT DATABASE()').scalar()
+ get_default_schema_name = connection_cache_decorator(get_default_schema_name)
+
def table_names(self, connection, schema):
"""Return a Unicode SHOW TABLES from a given schema."""
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py
index 8a2df7f3b..276397264 100644
--- a/lib/sqlalchemy/databases/oracle.py
+++ b/lib/sqlalchemy/databases/oracle.py
@@ -12,6 +12,7 @@ from sqlalchemy.engine import default, base
from sqlalchemy.sql import compiler, visitors
from sqlalchemy.sql import operators as sql_operators, functions as sql_functions
from sqlalchemy import types as sqltypes
+from sqlalchemy.pool import connection_cache_decorator
class OracleNumeric(sqltypes.Numeric):
@@ -380,8 +381,8 @@ class OracleDialect(default.DefaultDialect):
def get_default_schema_name(self,connection):
return connection.execute('SELECT USER FROM DUAL').scalar()
- get_default_schema_name = util.cache_decorator(get_default_schema_name)
-
+ get_default_schema_name = connection_cache_decorator(get_default_schema_name)
+
def table_names(self, connection, schema):
# note that table_names() isnt loading DBLINKed or synonym'ed tables
if schema is None:
diff --git a/lib/sqlalchemy/databases/postgres.py b/lib/sqlalchemy/databases/postgres.py
index 9dbf359b6..abae27eb1 100644
--- a/lib/sqlalchemy/databases/postgres.py
+++ b/lib/sqlalchemy/databases/postgres.py
@@ -26,6 +26,7 @@ from sqlalchemy.engine import base, default
from sqlalchemy.sql import compiler, expression
from sqlalchemy.sql import operators as sql_operators
from sqlalchemy import types as sqltypes
+from sqlalchemy.pool import connection_cache_decorator
class PGInet(sqltypes.TypeEngine):
@@ -368,8 +369,8 @@ class PGDialect(default.DefaultDialect):
def get_default_schema_name(self, connection):
return connection.scalar("select current_schema()", None)
- get_default_schema_name = util.cache_decorator(get_default_schema_name)
-
+ get_default_schema_name = connection_cache_decorator(get_default_schema_name)
+
def last_inserted_ids(self):
if self.context.last_inserted_ids is None:
raise exceptions.InvalidRequestError("no INSERT executed, or can't use cursor.lastrowid without Postgres OIDs enabled")