diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-02-04 17:24:12 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-02-04 17:24:12 +0000 |
commit | 385cf6e7b67dc2a51672bc8272da44e0a8cad1b1 (patch) | |
tree | 9a3cdb8ba0dc0bac2afb27e683e7a37dcaca5e47 /lib/sqlalchemy/engine.py | |
parent | f9cea034014ba872b31e478c4ac9a6845f7f9e86 (diff) | |
download | sqlalchemy-385cf6e7b67dc2a51672bc8272da44e0a8cad1b1.tar.gz |
added ISchema object to engine/information_schema, provides somewhat generic information_schema access for db's that support it, i.e. postgres, mysql 5
Diffstat (limited to 'lib/sqlalchemy/engine.py')
-rw-r--r-- | lib/sqlalchemy/engine.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py index 595294741..d99e5eb6c 100644 --- a/lib/sqlalchemy/engine.py +++ b/lib/sqlalchemy/engine.py @@ -178,12 +178,24 @@ class SQLEngine(schema.SchemaEngine): self.echo_uow = echo_uow self.context = util.ThreadLocal(raiseerror=False) self.tables = {} + self._ischema = None self._figure_paramstyle() if logger is None: self.logger = sys.stdout else: self.logger = logger + def _get_ischema(self): + # We use a property for ischema so that the accessor + # creation only happens as needed, since otherwise we + # have a circularity problem with the generic + # ansisql.engine() + if self._ischema is None: + import sqlalchemy.databases.information_schema as ischema + self._ischema = ischema.ISchema(self) + return self._ischema + ischema = property(_get_ischema, doc="""returns an ISchema object for this engine, which allows access to information_schema tables (if supported)""") + def hash_key(self): return "%s(%s)" % (self.__class__.__name__, repr(self.connect_args())) |