]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- renamed DynamicMetaData to ThreadLocalMetaData
authorJason Kirtland <jek@discorporate.us>
Fri, 6 Jul 2007 00:55:41 +0000 (00:55 +0000)
committerJason Kirtland <jek@discorporate.us>
Fri, 6 Jul 2007 00:55:41 +0000 (00:55 +0000)
- removed BoundMetaData, use MetaData instead

59 files changed:
CHANGES
doc/build/content/dbengine.txt
doc/build/content/metadata.txt
doc/build/content/plugins.txt
doc/build/content/sqlconstruction.txt
doc/build/content/tutorial.txt
examples/adjacencytree/basic_tree.py
examples/adjacencytree/byroot_tree.py
examples/association/basic_association.py
examples/association/proxied_association.py
examples/collections/large_collection.py
examples/graphs/graph1.py
examples/pickle/custom_pickler.py
examples/polymorph/polymorph.py
examples/polymorph/single.py
examples/vertical/vertical.py
lib/sqlalchemy/ext/activemapper.py
lib/sqlalchemy/ext/sqlsoup.py
lib/sqlalchemy/schema.py
test/dialect/mysql.py
test/dialect/postgres.py
test/engine/execute.py
test/engine/reflection.py
test/ext/assignmapper.py
test/ext/associationproxy.py
test/ext/orderinglist.py
test/ext/selectresults.py
test/orm/association.py
test/orm/assorted_eager.py
test/orm/cascade.py
test/orm/compile.py
test/orm/cycles.py
test/orm/entity.py
test/orm/generative.py
test/orm/inheritance/polymorph2.py
test/orm/inheritance/single.py
test/orm/lazytest1.py
test/orm/memusage.py
test/orm/onetoone.py
test/orm/relationships.py
test/orm/unitofwork.py
test/perf/cascade_speed.py
test/perf/masseagerload.py
test/perf/massload.py
test/perf/masssave.py
test/perf/poolload.py
test/perf/threaded_compile.py
test/perf/wsgi.py
test/sql/case_statement.py
test/sql/constraints.py
test/sql/defaults.py
test/sql/query.py
test/sql/quote.py
test/sql/rowcount.py
test/sql/selectable.py
test/sql/testtypes.py
test/sql/unicode.py
test/tables.py
test/testbase.py

diff --git a/CHANGES b/CHANGES
index f1f95230dfdef06bb47fe4f83e10ed1ef1faa95a..c658896d5e7035c6d66cdb5fc52c1e157c92eb08 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -73,6 +73,8 @@
       columns joined by a "group" to load as "undeferred".
 
 - sql
+  - DynamicMetaData has been renamed to ThreadLocalMetaData
+  - BoundMetaData has been removed- regular MetaData is equivalent
   - significant architectural overhaul to SQL elements (ClauseElement).  
     all elements share  a common "mutability" framework which allows a 
     consistent approach to in-place modifications of elements as well as 
index 412a0c7a71a143c6fb2603e5912b60619c81259f..3ba23f402fd0adc00af95eaeee255b888c7b73f5 100644 (file)
@@ -252,7 +252,7 @@ Using "bound" metadata:
 
     {python title="Implicit Execution Using Engine-Bound SQL Construct"}
     engine = create_engine('sqlite:///:memory:')
-    meta = BoundMetaData(engine)
+    meta = MetaData(engine)
     table = Table('mytable', meta, Column('col1', Integer), Column('col2', String(20)))
     r = table.insert().execute(col1=5, col2='some record')
 
index 01d5646cce14218ffb3e5b22b10713a796d30890..2ffb279f4d1fe21094326ec35627b96f89abbcc4 100644 (file)
@@ -121,21 +121,27 @@ And `Table` provides an interface to the table's properties as well as that of i
 
 A MetaData object can be associated with one or more Engine instances.  This allows the MetaData and the elements within it to perform operations automatically, using the connection resources of that Engine.  This includes being able to "reflect" the columns of tables, as well as to perform create and drop operations without needing to pass an `Engine` or `Connection` around.  It also allows SQL constructs to be created which know how to execute themselves (called "implicit execution").
 
-To bind `MetaData` to a single `Engine`, use `BoundMetaData`:
+To bind `MetaData` to a single `Engine`, supply an Engine when creating the Meta
+Data, or use the `.connect()` method:
 
     {python}
     engine = create_engine('sqlite://', **kwargs)
     
-    # create BoundMetaData from an Engine
-    meta = BoundMetaData(engine)
+    # create MetaData from an Engine
+    meta = MetaData(engine)
     
     # create the Engine and MetaData in one step
-    meta = BoundMetaData('postgres://db/', **kwargs)
+    meta = MetaData('postgres://db/', **kwargs)
+
+    # or bind the engine later
+    meta = MetaData()
+    # ...
+    meta.connect(engine)
 
 Another form of `MetaData` exits which can connect to an engine within the current thread (or "on a per-thread basis"), allowing other threads to be connected to different engines simultaneously:
 
     {python}
-    meta = DynamicMetaData()
+    meta = ThreadLocalMetaData()
 
     # In thread 1, connect to an existing Engine    
     meta.connect(engine)
@@ -143,7 +149,7 @@ Another form of `MetaData` exits which can connect to an engine within the curre
     # Meanwhile in thread 2, create a new Engine and connect
     meta.connect('mysq://user@host/dsn')
 
-`DynamicMetaData` is intended for applications that need to use the same set of `Tables` for many different database connections in the same process, such as a CherryPy web application which handles multiple application instances in one process.
+`ThreadLocalMetaData` is intended for applications that need to use the same set of `Tables` for many different database connections in the same process, such as a CherryPy web application which handles multiple application instances in one process.
 
 #### Using the global Metadata object
 
@@ -169,7 +175,7 @@ Some users prefer to create `Table` objects without specifying a `MetaData` obje
     
 #### Reflecting Tables
 
-Once you have a `BoundMetaData` or a connected `DynamicMetaData`, you can create `Table` objects without specifying their columns, just their names, using `autoload=True`:
+Once you have a connected `MetaData` or `ThreadLocalMetaData`, you can create `Table` objects without specifying their columns, just their names, using `autoload=True`:
 
     {python}
     >>> messages = Table('messages', meta, autoload = True)
@@ -291,7 +297,7 @@ To force quoting for an identifier, set the "quote=True" flag on `Column` or `Ta
 Creating and dropping individual tables can be done via the `create()` and `drop()` methods of `Table`; these methods take an optional `connectable` parameter which references an `Engine` or a `Connection`.  If not supplied, the `Engine` bound to the `MetaData` will be used, else an error is raised:
 
     {python}
-    meta = BoundMetaData('sqlite:///:memory:')
+    meta = MetaData('sqlite:///:memory:')
     employees = Table('employees', meta, 
         Column('employee_id', Integer, primary_key=True),
         Column('employee_name', String(60), nullable=False, key='name'),
@@ -560,7 +566,7 @@ A `Table` object created against a specific `MetaData` object can be re-created
 
     {python}
     # create two metadata
-    meta1 = BoundMetaData('sqlite:///querytest.db')
+    meta1 = MetaData('sqlite:///querytest.db')
     meta2 = MetaData()
                         
     # load 'users' from the sqlite engine
index 2071b13859d6116c2a76564927c5fd13d485d062..a06a92b1a17eb64b6bfef07f3d9808bbf4dd93bb 100644 (file)
@@ -474,7 +474,7 @@ To use `objectstore`:
     import sqlalchemy.mods.threadlocal
     from sqlalchemy import *
 
-    metadata = BoundMetaData('sqlite:///')
+    metadata = MetaData('sqlite:///')
     user_table = Table('users', metadata,
         Column('user_id', Integer, primary_key=True),
         Column('user_name', String(50), nullable=False)
@@ -501,7 +501,7 @@ To use `assign_mapper`:
     import sqlalchemy.mods.threadlocal
     from sqlalchemy import *
 
-    metadata = BoundMetaData('sqlite:///')
+    metadata = MetaData('sqlite:///')
     user_table = Table('users', metadata,
         Column('user_id', Integer, primary_key=True),
         Column('user_name', String(50), nullable=False)
index 1996b5de4b8af6de77b3712c7504e6ddab3ef67d..e8077f5bd10188808b71a7764889f9852c337368 100644 (file)
@@ -9,11 +9,11 @@ Executing a `ClauseElement` structure can be performed in two general ways.  You
 
 The examples below all include a dump of the generated SQL corresponding to the query object, as well as a dump of the statement's bind parameters.  In all cases, bind parameters are shown as named parameters using the colon format (i.e. ':name').  When the statement is compiled into a database-specific version, the named-parameter statement and its bind values are converted to the proper paramstyle for that database automatically.
 
-For this section, we will mostly use the implcit style of execution, meaning the `Table` objects are associated with an instance of `BoundMetaData`, and constructed `ClauseElement` objects support self-execution.  Assume the following configuration:
+For this section, we will mostly use the implcit style of execution, meaning the `Table` objects are associated with a bound instance of `MetaData`, and constructed `ClauseElement` objects support self-execution.  Assume the following configuration:
 
     {python}
     from sqlalchemy import *
-    metadata = BoundMetaData('sqlite:///mydb.db', echo=True)
+    metadata = MetaData('sqlite:///mydb.db', echo=True)
     
     # a table to store users
     users = Table('users', metadata,
index 63c28860dd530c0baedfcc3aefb774f5fdc005ad..464d3044bcd97ed193af398a3a554f2628de64bf 100644 (file)
@@ -82,15 +82,16 @@ Working with Database Objects {@name=schemasql}
 
 ### Defining Metadata, Binding to Engines {@name=metadata}
 
-Configuring SQLAlchemy for your database consists of creating objects called `Tables`, each of which represent an actual table in the database.  A collection of `Table` objects resides in a `MetaData` object which is essentially a table collection.  We will create a handy form of `MetaData` that automatically connects to our `Engine` (connecting a schema object to an Engine is called *binding*):
+Configuring SQLAlchemy for your database consists of creating objects called `Tables`, each of which represent an actual table in the database.  A collection of `Table` objects resides in a `MetaData` object which is essentially a table collection.  We will create a `MetaData` and connect it to our `Engine` (connecting a schema object to an Engine is called *binding*):
 
     {python}
-    >>> metadata = BoundMetaData(db)
+    >>> metadata = MetaData()
+    >>> metadata.connect(db)
 
-An equivalent operation is to create the `BoundMetaData` object directly with an Engine URL, which calls the `create_engine` call for us:
+An equivalent operation is to create the `MetaData` object directly with an Engine URL, which calls the `create_engine` call for us:
 
     {python}
-    >>> metadata = BoundMetaData('sqlite:///tutorial.db')
+    >>> metadata = MetaData('sqlite:///tutorial.db')
 
 Now, when we tell "metadata" about the tables in our database, we can issue CREATE statements for those tables, as well as execute SQL statements derived from them, without needing to open or close any connections; that will be all done automatically.
 
@@ -107,7 +108,7 @@ With `metadata` as our established home for tables, lets make a Table for it:
     ...     Column('password', String(10))
     ... )
 
-As you might have guessed, we have just defined a table named `users` which has three columns: `user_id` (which is a primary key column), `user_name` and `password`. Currently it is just an object that doesn't necessarily correspond to an existing table in our database.  To actually create the table, we use the `create()` method.  To make it interesting, we will have SQLAlchemy echo the SQL statements it sends to the database, by setting the `echo` flag on the `Engine` associated with our `BoundMetaData`:
+As you might have guessed, we have just defined a table named `users` which has three columns: `user_id` (which is a primary key column), `user_name` and `password`. Currently it is just an object that doesn't necessarily correspond to an existing table in our database.  To actually create the table, we use the `create()` method.  To make it interesting, we will have SQLAlchemy echo the SQL statements it sends to the database, by setting the `echo` flag on the `Engine` associated with our `MetaData`:
 
     {python}
     >>> metadata.engine.echo = True
index 3f4f64e3f9c2a8bac3039d9eeda0ae4b4dc92a2b..9676fae89c189ef5fb010ea3a4cd954d7f8a6026 100644 (file)
@@ -3,7 +3,7 @@
 from sqlalchemy import *
 from sqlalchemy.util import OrderedDict
 
-metadata = BoundMetaData('sqlite:///', echo=True)
+metadata = MetaData('sqlite:///', echo=True)
 
 trees = Table('treenodes', metadata,
     Column('node_id', Integer, Sequence('treenode_id_seq',optional=False), primary_key=True),
index cea3f9758b70be67d0f8526f9906cf768b028b6e..a61bde8757438208e3aec138b55e344f11b8aa8f 100644 (file)
@@ -8,7 +8,7 @@ from sqlalchemy.orm.collections import attribute_mapped_collection
 
 engine = create_engine('sqlite:///:memory:', echo=True)
 
-metadata = BoundMetaData(engine)
+metadata = MetaData(engine)
 
 """create the treenodes table.  This is ia basic adjacency list model table.
 One additional column, "root_node_id", references a "root node" row and is used
index 5ce6436717652c1e671bb8abf8b73a31a4e2d384..fabfdfa783061c8ea76478d4dd5e642842a9083a 100644 (file)
@@ -17,7 +17,7 @@ logging.basicConfig(format='%(message)s')
 logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
 
 engine = create_engine('sqlite://')
-metadata = BoundMetaData(engine)
+metadata = MetaData(engine)
 
 orders = Table('orders', metadata, 
     Column('order_id', Integer, primary_key=True),
index 31a64ce7a0d4b44b57664f3626af9afce579677e..2dd60158b9f39dde785486498848c16da2f9f923 100644 (file)
@@ -11,7 +11,7 @@ logging.basicConfig(format='%(message)s')
 #logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
 
 engine = create_engine('sqlite://')
-metadata = BoundMetaData(engine)
+metadata = MetaData(engine)
 
 orders = Table('orders', metadata, 
     Column('order_id', Integer, primary_key=True),
index 743624e99344eaf3f90a72ad3b032b624d595f2e..d592441ab9c6e9293eeb67fbba48a3819518a967 100644 (file)
@@ -1,7 +1,7 @@
 """illlustrates techniques for dealing with very large collections"""
 
 from sqlalchemy import *
-meta = BoundMetaData('sqlite://', echo=True)
+meta = MetaData('sqlite://', echo=True)
 
 org_table = Table('organizations', meta, 
     Column('org_id', Integer, primary_key=True),
index af75d0ff54571e3390674cd1cc33b6e82f06f054..c2eec44f9fbecec78721e52a1c02b0930407b309 100644 (file)
@@ -6,7 +6,7 @@ import logging
 logging.basicConfig()
 logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
 
-meta = BoundMetaData('sqlite://')
+meta = MetaData('sqlite://')
 
 nodes = Table('nodes', meta,
     Column("nodeid", Integer, primary_key=True)
index 34a2ff0e59bd0b3b5157395de4ea4c565f1af111..4b259c1f86093d694b8d8602a19702f6d40102f5 100644 (file)
@@ -6,7 +6,7 @@ from cStringIO import StringIO
 from pickle import Pickler, Unpickler
 import threading
 
-meta = BoundMetaData('sqlite://', echo=True)
+meta = MetaData('sqlite://', echo=True)
 
 class MyExt(MapperExtension):
     def populate_instance(self, mapper, selectcontext, row, instance, identitykey, isnew):
@@ -79,4 +79,4 @@ sess.clear()
 del MyPickler.sessions.current
 
 f = sess.query(Foo).get(f.id)
-assert f.bar.data == 'some bar'
\ No newline at end of file
+assert f.bar.data == 'some bar'
index d5d747d36c1a0d67e5586e9e3d6252ffa7b77847..498bfa775c15b70a0421bdaf8cade4e592e5b751 100644 (file)
@@ -4,7 +4,7 @@ import sets
 
 # this example illustrates a polymorphic load of two classes
 
-metadata = BoundMetaData('sqlite://', echo=True)
+metadata = MetaData('sqlite://', echo=True)
 
 # a table to store companies
 companies = Table('companies', metadata, 
index 11455a5905f82ab3782c1cd753c39c71e8d1dff8..dcdb3c8906bd1172d6fd1befcb075064a4edddd2 100644 (file)
@@ -1,6 +1,6 @@
 from sqlalchemy import *
 
-metadata = BoundMetaData('sqlite://', echo='debug')
+metadata = MetaData('sqlite://', echo='debug')
 
 # a table to store companies
 companies = Table('companies', metadata, 
index f470fbd191e4cc8103c21bbbf736028a827125d2..75e56935c80a557001438507ef66248004b6855b 100644 (file)
@@ -7,7 +7,7 @@ from sqlalchemy.orm import *
 from sqlalchemy.orm.collections import mapped_collection
 import datetime
 
-e = BoundMetaData('sqlite://', echo=True)
+e = MetaData('sqlite://', echo=True)
 
 # this table represents Entity objects.  each Entity gets a row in this table,
 # with a primary key and a title.
@@ -171,4 +171,4 @@ for entity in entities:
 
 for entity in entities:
     session.delete(entity)
-session.flush()
\ No newline at end of file
+session.flush()
index 3ba98f3457d6e5a3899ee9591b139b53e7318460..eed38e3c05f27988598ebfea65ad4a69addd42ac 100644 (file)
@@ -1,4 +1,4 @@
-from sqlalchemy             import join, DynamicMetaData, util, Integer
+from sqlalchemy             import join, ThreadLocalMetaData, util, Integer
 from sqlalchemy             import and_, or_
 from sqlalchemy             import Table, Column, ForeignKey
 from sqlalchemy.orm         import class_mapper, relation, mapper, create_session
@@ -14,7 +14,7 @@ import sys
 #
 # the "proxy" to the database engine... this can be swapped out at runtime
 #
-metadata = DynamicMetaData("activemapper")
+metadata = ThreadLocalMetaData()
 
 try:
     objectstore = sqlalchemy.objectstore
index a9b93bc56414aa5dbf8b80214e5839ca33b202d6..9940610f754b8877ec6b13dfd7b27835d3802fff 100644 (file)
@@ -22,7 +22,7 @@ engine::
 
 or, you can re-use an existing metadata::
 
-    >>> db = SqlSoup(BoundMetaData(e))
+    >>> db = SqlSoup(MetaData(e))
 
 You can optionally specify a schema within the database for your
 SqlSoup::
@@ -491,7 +491,7 @@ class SqlSoup:
             if args or kwargs:
                 raise ArgumentError('Extra arguments not allowed when metadata is given')
         else:
-            metadata = BoundMetaData(*args, **kwargs)
+            metadata = MetaData(*args, **kwargs)
         self._metadata = metadata
         self._cache = {}
         self.schema = None
index 12568bd4b502608162f2a92a844f1a3b81db0ab7..3df300d8dbd5601b6af9b22e5e55d0c047300e52 100644 (file)
@@ -23,7 +23,7 @@ import copy, re, string
 
 __all__ = ['SchemaItem', 'Table', 'Column', 'ForeignKey', 'Sequence', 'Index', 'ForeignKeyConstraint',
             'PrimaryKeyConstraint', 'CheckConstraint', 'UniqueConstraint', 'DefaultGenerator', 'Constraint',
-           'MetaData', 'BoundMetaData', 'DynamicMetaData', 'SchemaVisitor', 'PassiveDefault', 'ColumnDefault']
+           'MetaData', 'ThreadLocalMetaData', 'SchemaVisitor', 'PassiveDefault', 'ColumnDefault']
 
 class SchemaItem(object):
     """Base class for items that define a database schema."""
@@ -1044,7 +1044,7 @@ class MetaData(SchemaItem):
 
     __visit_name__ = 'metadata'
     
-    def __init__(self, url=None, engine=None, **kwargs):
+    def __init__(self, engine_or_url=None, **kwargs):
         """create a new MetaData object.
         
             url
@@ -1060,12 +1060,15 @@ class MetaData(SchemaItem):
                 all contained objects.  defaults to True.
             
         """        
-
+        
+        if engine_or_url is None:
+            # limited backwards compatability
+            engine_or_url = kwargs.get('url', None) or kwargs.get('engine', None)
         self.tables = {}
         self._engine = None
         self._set_casing_strategy(kwargs)
-        if engine or url:
-            self.connect(engine or url, **kwargs)
+        if engine_or_url:
+            self.connect(engine_or_url, **kwargs)
 
     def __getstate__(self):
         return {'tables':self.tables, 'casesensitive':self._case_sensitive_setting}
@@ -1167,22 +1170,7 @@ class MetaData(SchemaItem):
         return self
 
 
-class BoundMetaData(MetaData):
-    """``MetaData`` for which the first argument is a required Engine, url string, or URL instance.
-    
-    """
-
-    __visit_name__ = 'metadata'
-
-    def __init__(self, engine_or_url, **kwargs):
-        from sqlalchemy.engine.url import URL
-        if isinstance(engine_or_url, basestring) or isinstance(engine_or_url, URL):
-            super(BoundMetaData, self).__init__(url=engine_or_url, **kwargs)
-        else:
-            super(BoundMetaData, self).__init__(engine=engine_or_url, **kwargs)
-            
-
-class DynamicMetaData(MetaData):
+class ThreadLocalMetaData(MetaData):
     """Build upon ``MetaData`` to provide the capability to bind to 
 multiple ``Engine`` implementations on a dynamically alterable,
 thread-local basis.
@@ -1190,13 +1178,10 @@ thread-local basis.
 
     __visit_name__ = 'metadata'
 
-    def __init__(self, threadlocal=True, **kwargs):
-        if threadlocal:
-            self.context = util.ThreadLocal()
-        else:
-            self.context = self
+    def __init__(self, **kwargs):
+        self.context = util.ThreadLocal()
         self.__engines = {}
-        super(DynamicMetaData, self).__init__(**kwargs)
+        super(ThreadLocalMetaData, self).__init__(**kwargs)
 
     def connect(self, engine_or_url, **kwargs):
         from sqlalchemy.engine.url import URL
@@ -1218,7 +1203,7 @@ thread-local basis.
         return hasattr(self.context, '_engine') and self.context._engine is not None
 
     def dispose(self):
-        """Dispose all ``Engines`` to which this ``DynamicMetaData`` has been connected."""
+        """Dispose all ``Engines`` to which this ``ThreadLocalMetaData`` has been connected."""
 
         for e in self.__engines.values():
             e.dispose()
@@ -1231,6 +1216,7 @@ thread-local basis.
 
     engine = property(_get_engine, connect)
 
+
 class SchemaVisitor(sql.ClauseVisitor):
     """Define the visiting for ``SchemaItem`` objects."""
 
index 784993cc45692570693080aaa04e99fab300e740..0e918abedd302964405ea11ae5015fd3f42010d9 100644 (file)
@@ -105,7 +105,7 @@ class TypesTest(AssertMixin):
              'SMALLINT(4) UNSIGNED ZEROFILL'),
            ]
 
-        table_args = ['test_mysql_numeric', BoundMetaData(db)]
+        table_args = ['test_mysql_numeric', MetaData(db)]
         for index, spec in enumerate(columns):
             type_, args, kw, res = spec
             table_args.append(Column('c%s' % index, type_(*args, **kw)))
@@ -189,7 +189,7 @@ class TypesTest(AssertMixin):
              '''ENUM('foo','bar') UNICODE''')
            ]
 
-        table_args = ['test_mysql_charset', BoundMetaData(db)]
+        table_args = ['test_mysql_charset', MetaData(db)]
         for index, spec in enumerate(columns):
             type_, args, kw, res = spec
             table_args.append(Column('c%s' % index, type_(*args, **kw)))
@@ -213,7 +213,7 @@ class TypesTest(AssertMixin):
     def test_enum(self):
         "Exercise the ENUM type"
 
-        enum_table = Table('mysql_enum', BoundMetaData(db),
+        enum_table = Table('mysql_enum', MetaData(db),
             Column('e1', mysql.MSEnum('"a"', "'b'")),
             Column('e2', mysql.MSEnum('"a"', "'b'"), nullable=False),
             Column('e3', mysql.MSEnum('"a"', "'b'", strict=True)),
@@ -326,12 +326,12 @@ class TypesTest(AssertMixin):
 
         columns = [Column('c%i' % (i + 1), t[0]) for i, t in enumerate(specs)]
 
-        m = BoundMetaData(db)
+        m = MetaData(db)
         t_table = Table('mysql_types', m, *columns)
         m.drop_all()
         m.create_all()
         
-        m2 = BoundMetaData(db)
+        m2 = MetaData(db)
         rt = Table('mysql_types', m2, autoload=True)
 
         #print
index d8607f2682156f664630627f5b751887194cc039..686417d7a98fec9d92e04cbce1ef559b2c70d84f 100644 (file)
@@ -28,35 +28,35 @@ class DomainReflectionTest(AssertMixin):
 
     @testbase.supported('postgres')
     def test_table_is_reflected(self):
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
         table = Table('testtable', metadata, autoload=True)
         self.assertEquals(set(table.columns.keys()), set(['question', 'answer']), "Columns of reflected table didn't equal expected columns")
         self.assertEquals(table.c.answer.type.__class__, postgres.PGInteger)
         
     @testbase.supported('postgres')
     def test_domain_is_reflected(self):
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
         table = Table('testtable', metadata, autoload=True)
         self.assertEquals(str(table.columns.answer.default.arg), '42', "Reflected default value didn't equal expected value")
         self.assertFalse(table.columns.answer.nullable, "Expected reflected column to not be nullable.")
 
     @testbase.supported('postgres')
     def test_table_is_reflected_alt_schema(self):
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
         table = Table('testtable', metadata, autoload=True, schema='alt_schema')
         self.assertEquals(set(table.columns.keys()), set(['question', 'answer', 'anything']), "Columns of reflected table didn't equal expected columns")
         self.assertEquals(table.c.anything.type.__class__, postgres.PGInteger)
 
     @testbase.supported('postgres')
     def test_schema_domain_is_reflected(self):
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
         table = Table('testtable', metadata, autoload=True, schema='alt_schema')
         self.assertEquals(str(table.columns.answer.default.arg), '0', "Reflected default value didn't equal expected value")
         self.assertTrue(table.columns.answer.nullable, "Expected reflected column to be nullable.")
 
     @testbase.supported('postgres')
     def test_crosschema_domain_is_reflected(self):
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
         table = Table('crosschema', metadata, autoload=True)
         self.assertEquals(str(table.columns.answer.default.arg), '0', "Reflected default value didn't equal expected value")
         self.assertTrue(table.columns.answer.nullable, "Expected reflected column to be nullable.")
@@ -64,14 +64,14 @@ class DomainReflectionTest(AssertMixin):
 class MiscTest(AssertMixin):
     @testbase.supported('postgres')
     def test_date_reflection(self):
-        m1 = BoundMetaData(testbase.db)
+        m1 = MetaData(testbase.db)
         t1 = Table('pgdate', m1, 
             Column('date1', DateTime(timezone=True)),
             Column('date2', DateTime(timezone=False))
             )
         m1.create_all()
         try:
-            m2 = BoundMetaData(testbase.db)
+            m2 = MetaData(testbase.db)
             t2 = Table('pgdate', m2, autoload=True)
             assert t2.c.date1.type.timezone is True
             assert t2.c.date2.type.timezone is False
@@ -80,7 +80,7 @@ class MiscTest(AssertMixin):
 
     @testbase.supported('postgres')
     def test_checksfor_sequence(self):
-        meta1 = BoundMetaData(testbase.db)
+        meta1 = MetaData(testbase.db)
         t = Table('mytable', meta1, 
             Column('col1', Integer, Sequence('fooseq')))
         try:
@@ -93,7 +93,7 @@ class MiscTest(AssertMixin):
     def test_schema_reflection(self):
         """note: this test requires that the 'alt_schema' schema be separate and accessible by the test user"""
 
-        meta1 = BoundMetaData(testbase.db)
+        meta1 = MetaData(testbase.db)
         users = Table('users', meta1,
             Column('user_id', Integer, primary_key = True),
             Column('user_name', String(30), nullable = False),
@@ -108,7 +108,7 @@ class MiscTest(AssertMixin):
         )
         meta1.create_all()
         try:
-            meta2 = BoundMetaData(testbase.db)
+            meta2 = MetaData(testbase.db)
             addresses = Table('email_addresses', meta2, autoload=True, schema="alt_schema")
             users = Table('users', meta2, mustexist=True, schema="alt_schema")
 
@@ -127,7 +127,7 @@ class MiscTest(AssertMixin):
         that PassiveDefault upon insert."""
         
         try:
-            meta = BoundMetaData(testbase.db)
+            meta = MetaData(testbase.db)
             testbase.db.execute("""
              CREATE TABLE speedy_users
              (
@@ -154,7 +154,7 @@ class TimezoneTest(AssertMixin):
     @testbase.supported('postgres')
     def setUpAll(self):
         global tztable, notztable, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
 
         # current_timestamp() in postgres is assumed to return TIMESTAMP WITH TIMEZONE
         tztable = Table('tztable', metadata,
index c8e23d3debfc0cec0a243138992aabef2f30ca22..5bc9dbfe91ae757deb5fc4bd2bb4b78c185e15ea 100644 (file)
@@ -9,7 +9,7 @@ from testbase import Table, Column
 class ExecuteTest(testbase.PersistTest):
     def setUpAll(self):
         global users, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         users = Table('users', metadata,
             Column('user_id', INT, primary_key = True),
             Column('user_name', VARCHAR(20)),
index 1b6c73e28b2326deb54fb1aaad38ba667c23007c..a1c1e325d617710a129d98cafb02ccf849a432cd 100644 (file)
@@ -38,7 +38,7 @@ class ReflectionTest(PersistTest):
             deftype2, deftype3 = Integer, Integer
             defval2, defval3 = "15", "16"
         
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         
         users = Table('engine_users', meta,
             Column('user_id', INT, primary_key = True),
@@ -112,7 +112,7 @@ class ReflectionTest(PersistTest):
     
     def testoverridecolumns(self):
         """test that you can override columns which contain foreign keys to other reflected tables"""
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         users = Table('users', meta, 
             Column('id', Integer, primary_key=True),
             Column('name', String(30)))
@@ -123,7 +123,7 @@ class ReflectionTest(PersistTest):
             
         meta.create_all()            
         try:
-            meta2 = BoundMetaData(testbase.db)
+            meta2 = MetaData(testbase.db)
             a2 = Table('addresses', meta2, 
                 Column('user_id', Integer, ForeignKey('users.id')),
                 autoload=True)
@@ -133,7 +133,7 @@ class ReflectionTest(PersistTest):
             assert list(a2.c.user_id.foreign_keys)[0].parent is a2.c.user_id
             assert u2.join(a2).onclause == u2.c.id==a2.c.user_id
 
-            meta3 = BoundMetaData(testbase.db)
+            meta3 = MetaData(testbase.db)
             u3 = Table('users', meta3, autoload=True)
             a3 = Table('addresses', meta3, 
                 Column('user_id', Integer, ForeignKey('users.id')),
@@ -147,7 +147,7 @@ class ReflectionTest(PersistTest):
     def testoverridecolumns2(self):
         """test that you can override columns which contain foreign keys to other reflected tables,
         where the foreign key column is also a primary key column"""
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         users = Table('users', meta, 
             Column('id', Integer, primary_key=True),
             Column('name', String(30)))
@@ -158,7 +158,7 @@ class ReflectionTest(PersistTest):
 
         meta.create_all()            
         try:
-            meta2 = BoundMetaData(testbase.db)
+            meta2 = MetaData(testbase.db)
             a2 = Table('addresses', meta2, 
                 Column('id', Integer, ForeignKey('users.id'), primary_key=True, ),
                 autoload=True)
@@ -177,7 +177,7 @@ class ReflectionTest(PersistTest):
             #sess.save(add1)
             #sess.flush()
             
-            meta3 = BoundMetaData(testbase.db)
+            meta3 = MetaData(testbase.db)
             u3 = Table('users', meta3, autoload=True)
             a3 = Table('addresses', meta3, 
                 Column('id', Integer, ForeignKey('users.id'), primary_key=True),
@@ -192,7 +192,7 @@ class ReflectionTest(PersistTest):
             
     @testbase.supported('mysql')
     def testmysqltypes(self):
-        meta1 = BoundMetaData(testbase.db)
+        meta1 = MetaData(testbase.db)
         table = Table(
             'mysql_types', meta1,
             Column('id', Integer, primary_key=True),
@@ -208,7 +208,7 @@ class ReflectionTest(PersistTest):
         try:
             table.drop(checkfirst=True)
             table.create()
-            meta2 = BoundMetaData(testbase.db)
+            meta2 = MetaData(testbase.db)
             t2 = Table('mysql_types', meta2, autoload=True)
             assert isinstance(t2.c.num1.type, mysql.MSInteger)
             assert t2.c.num1.type.unsigned
@@ -285,7 +285,7 @@ class ReflectionTest(PersistTest):
         )
         """)
         try:
-            meta = BoundMetaData(testbase.db)
+            meta = MetaData(testbase.db)
             table1 = Table("django_admin_log", meta, autoload=True)
             table2 = Table("django_content_type", meta, autoload=True)
             j = table1.join(table2)
@@ -300,7 +300,7 @@ class ReflectionTest(PersistTest):
         if (testbase.db.engine.name == 'mysql' and
             testbase.db.dialect.get_version_info(testbase.db) < (4, 1, 1)):
             return
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         table = Table(
             'multi', meta, 
             Column('multi_id', Integer, primary_key=True),
@@ -417,10 +417,10 @@ class ReflectionTest(PersistTest):
     def test_nonexistent(self):
         self.assertRaises(NoSuchTableError, Table,
                           'fake_table',
-                          BoundMetaData(testbase.db), autoload=True)
+                          MetaData(testbase.db), autoload=True)
         
     def testoverride(self):
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         table = Table(
             'override_test', meta, 
             Column('col1', Integer, primary_key=True),
@@ -430,7 +430,7 @@ class ReflectionTest(PersistTest):
         table.create()
         # clear out table registry
 
-        meta2 = BoundMetaData(testbase.db)
+        meta2 = MetaData(testbase.db)
         try:
             table = Table(
                 'override_test', meta2,
index 17c10d3d72acbbd1128a05694f594add34acd14d..8562a016a2489e566887d607e25364afc72c85ba 100644 (file)
@@ -11,7 +11,7 @@ from testbase import Table, Column
 class OverrideAttributesTest(PersistTest):
     def setUpAll(self):
         global metadata, table, table2
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         table = Table('sometable', metadata, 
             Column('id', Integer, primary_key=True),
             Column('data', String(30)))
index 68ad5da6eda8a4d4e28fa0b7b8dc08cde96d5e00..9b83830ca5f53dab8f3d1166dfcb0c09bffd00f4 100644 (file)
@@ -40,7 +40,7 @@ class _CollectionOperations(PersistTest):
     def setUp(self):
         collection_class = self.collection_class
 
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
     
         parents_table = Table('Parent', metadata,
                               Column('id', Integer, primary_key=True),
@@ -476,7 +476,7 @@ class CustomObjectTest(_CollectionOperations):
 
 class ScalarTest(PersistTest):
     def test_scalar_proxy(self):
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
     
         parents_table = Table('Parent', metadata,
                               Column('id', Integer, primary_key=True),
@@ -592,7 +592,7 @@ class ScalarTest(PersistTest):
 
 class LazyLoadTest(PersistTest):
     def setUp(self):
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
     
         parents_table = Table('Parent', metadata,
                               Column('id', Integer, primary_key=True),
index 41348a6482b320fe85554fc82d08572e2b8ab2c3..cf6ab038e4f04c6649f5e36d261a0656b5743558 100644 (file)
@@ -54,7 +54,7 @@ class OrderingListTest(PersistTest):
 
         global metadata, slides_table, bullets_table, Slide, Bullet
 
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
         slides_table = Table('test_Slides', metadata,
                              Column('id', Integer, primary_key=True),
                              Column('name', String))
index 8f77b323a6973cc392ada361e602379fc36e9532..16065cd966273ad303a3f06d0ed5be1a84f9022e 100644 (file)
@@ -15,7 +15,7 @@ class SelectResultsTest(PersistTest):
     def setUpAll(self):
         self.install_threadlocal()
         global foo, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         foo = Table('foo', metadata,
                     Column('id', Integer, Sequence('foo_id_seq'), primary_key=True),
                     Column('bar', Integer),
@@ -109,7 +109,7 @@ class SelectResultsTest2(PersistTest):
     def setUpAll(self):
         self.install_threadlocal()
         global metadata, table1, table2
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         table1 = Table('Table1', metadata,
             Column('id', Integer, primary_key=True),
             )
@@ -203,7 +203,7 @@ class CaseSensitiveTest(PersistTest):
     def setUpAll(self):
         self.install_threadlocal()
         global metadata, table1, table2
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         table1 = Table('Table1', metadata,
             Column('ID', Integer, primary_key=True),
             )
index 61e9bce5f4b15b6be91cd03197c92eacf9f7ee09..4bb8b97b4bcf237c7035a0a6bb38e668d73e171d 100644 (file)
@@ -7,7 +7,7 @@ from testbase import Table, Column
 class AssociationTest(testbase.PersistTest):
     def setUpAll(self):
         global items, item_keywords, keywords, metadata, Item, Keyword, KeywordAssociation
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         items = Table('items', metadata, 
             Column('item_id', Integer, primary_key=True),
             Column('name', String(40)),
@@ -142,7 +142,7 @@ class AssociationTest(testbase.PersistTest):
 class AssociationTest2(testbase.PersistTest):
     def setUpAll(self):
         global table_originals, table_people, table_isauthor, metadata, Originals, People, IsAuthor
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         table_originals = Table('Originals', metadata,
             Column('ID',        Integer,        primary_key=True),
             Column('Title',     String(200),    nullable=False),
index 77f55266108635fe00b1a1197b6cd45e777366df..e955c480de2e5e3b97a5c6207e3b88fa9dbe00d0 100644 (file)
@@ -11,7 +11,7 @@ import random, datetime
 class EagerTest(AssertMixin):
     def setUpAll(self):
         global dbmeta, owners, categories, tests, options, Owner, Category, Test, Option, false
-        dbmeta = BoundMetaData(testbase.db)
+        dbmeta = MetaData(testbase.db)
         
         # determine a literal value for "false" based on the dialect
         false = Boolean().dialect_impl(testbase.db.dialect).convert_bind_param(False, testbase.db.dialect)
@@ -153,7 +153,7 @@ class EagerTest(AssertMixin):
 class EagerTest2(AssertMixin):
     def setUpAll(self):
         global metadata, middle, left, right
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         middle = Table('middle', metadata,
             Column('id', Integer, primary_key = True),
             Column('data', String(50)),
index 27e8e7c8fe5bdd2d0aa0310e01b6c4c54e0d5e36..d43f069bcb79972aa197572927c175d69c5e1e15 100644 (file)
@@ -187,7 +187,7 @@ class M2OCascadeTest(testbase.AssertMixin):
     def setUpAll(self):
         global ctx, data, metadata, User, Pref, Extra
         ctx = SessionContext(create_session)
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         extra = Table("extra", metadata, 
             Column("extra_id", Integer, Sequence("extra_id_seq", optional=True), primary_key=True),
             Column("prefs_id", Integer, ForeignKey("prefs.prefs_id"))
@@ -265,7 +265,7 @@ class M2OCascadeTest(testbase.AssertMixin):
 class M2MCascadeTest(testbase.AssertMixin):
     def setUpAll(self):
         global metadata, a, b, atob
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         a = Table('a', metadata, 
             Column('id', Integer, primary_key=True),
             Column('data', String(30))
@@ -462,7 +462,7 @@ class DoubleParentOrphanTest(testbase.AssertMixin):
     
     def setUpAll(self):
         global metadata, address_table, businesses, homes
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         address_table = Table('addresses', metadata,
             Column('address_id', Integer, primary_key=True),
             Column('street', String(30)),
index 85aa7c927ea2ba92e90ca21dc11e5460bac88627..ef5faa21ddbfa3c2b36f96ff8207bec3640401f6 100644 (file)
@@ -11,7 +11,7 @@ class CompileTest(testbase.AssertMixin):
         
     def testone(self):
         global metadata, order, employee, product, tax, orderproduct
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
 
         order = Table('orders', metadata, 
             Column('id', Integer, primary_key=True),
@@ -72,7 +72,7 @@ class CompileTest(testbase.AssertMixin):
     def testtwo(self):
         """test that conflicting backrefs raises an exception"""
         global metadata, order, employee, product, tax, orderproduct
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
 
         order = Table('orders', metadata, 
             Column('id', Integer, primary_key=True),
@@ -121,7 +121,7 @@ class CompileTest(testbase.AssertMixin):
             assert str(e).index("Backrefs do not match") > -1
 
     def testthree(self):
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         node_table = Table("node", metadata, 
             Column('node_id', Integer, primary_key=True),
             Column('name_index', Integer, nullable=True),
index 6d4caf07b7ec89d9662552019f974cc7e13cc6c3..7e1716ca3b53abdb8dbc8a47d4bf769142abaa1b 100644 (file)
@@ -28,7 +28,7 @@ class SelfReferentialTest(AssertMixin):
     """tests a self-referential mapper, with an additional list of child objects."""
     def setUpAll(self):
         global t1, t2, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         t1 = Table('t1', metadata, 
             Column('c1', Integer, Sequence('t1c1_id_seq', optional=True), primary_key=True),
             Column('parent_c1', Integer, ForeignKey('t1.c1')),
@@ -130,7 +130,7 @@ class SelfReferentialNoPKTest(AssertMixin):
     """test self-referential relationship that joins on a column other than the primary key column"""
     def setUpAll(self):
         global table, meta
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         table = Table('item', meta,
            Column('id', Integer, primary_key=True),
            Column('uuid', String(32), unique=True, nullable=False),
@@ -175,7 +175,7 @@ class SelfReferentialNoPKTest(AssertMixin):
 class InheritTestOne(AssertMixin):
     def setUpAll(self):
         global parent, child1, child2, meta
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         parent = Table("parent", meta,
             Column("id", Integer, primary_key=True),
             Column("parent_data", String(50)),
@@ -377,7 +377,7 @@ class BiDirectionalOneToManyTest(AssertMixin):
     """tests two mappers with a one-to-many relation to each other."""
     def setUpAll(self):
         global t1, t2, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         t1 = Table('t1', metadata, 
             Column('c1', Integer, Sequence('t1c1_id_seq', optional=True), primary_key=True),
             Column('c2', Integer, ForeignKey('t2.c1'))
@@ -418,7 +418,7 @@ class BiDirectionalOneToManyTest2(AssertMixin):
     """tests two mappers with a one-to-many relation to each other, with a second one-to-many on one of the mappers"""
     def setUpAll(self):
         global t1, t2, t3, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         t1 = Table('t1', metadata, 
             Column('c1', Integer, Sequence('t1c1_id_seq', optional=True), primary_key=True),
             Column('c2', Integer, ForeignKey('t2.c1')),
@@ -480,7 +480,7 @@ class OneToManyManyToOneTest(AssertMixin):
     raise an exception when dependencies are sorted."""
     def setUpAll(self):
         global metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         global person    
         global ball
         ball = Table('ball', metadata,
@@ -768,7 +768,7 @@ class SelfReferentialPostUpdateTest(AssertMixin):
     """test using post_update on a single self-referential mapper"""
     def setUpAll(self):
         global metadata, node_table
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         node_table = Table('node', metadata,
             Column('id', Integer, Sequence('nodeid_id_seq', optional=True), primary_key=True),
             Column('path', String(50), nullable=False),
@@ -871,7 +871,7 @@ class SelfReferentialPostUpdateTest(AssertMixin):
 class SelfReferentialPostUpdateTest2(AssertMixin):
     def setUpAll(self):
         global metadata, a_table
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         a_table = Table("a", metadata,
                 Column("id", Integer(), primary_key=True),
                 Column("fui", String()),
index a5346597b4c6d420e31ec424763caccb6201de8a..813ed327cf67eddf3013dd165e5736f5b595b1f6 100644 (file)
@@ -14,7 +14,7 @@ class EntityTest(AssertMixin):
     to have multiple primary mappers """
     def setUpAll(self):
         global user1, user2, address1, address2, metadata, ctx
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         ctx = SessionContext(create_session)
         
         user1 = Table('user1', metadata, 
index a83b81758ade9ae0892c5303756854a9f033004d..fb17ffaf44a12b5dadb1a5ae46a7f283d68e632c 100644 (file)
@@ -14,7 +14,7 @@ class GenerativeQueryTest(PersistTest):
     def setUpAll(self):
         self.install_threadlocal()
         global foo, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         foo = Table('foo', metadata,
                     Column('id', Integer, Sequence('foo_id_seq'), primary_key=True),
                     Column('bar', Integer),
@@ -115,7 +115,7 @@ class GenerativeTest2(PersistTest):
     def setUpAll(self):
         self.install_threadlocal()
         global metadata, table1, table2
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         table1 = Table('Table1', metadata,
             Column('id', Integer, primary_key=True),
             )
@@ -209,7 +209,7 @@ class CaseSensitiveTest(PersistTest):
     def setUpAll(self):
         self.install_threadlocal()
         global metadata, table1, table2
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         table1 = Table('Table1', metadata,
             Column('ID', Integer, primary_key=True),
             )
index cdfd8a8eb53f94c099bbb0551b2efa64755706a2..141b3abc27e8df032e1f226be18e3d594be02b94 100644 (file)
@@ -617,7 +617,7 @@ class GenerativeTest(testbase.AssertMixin):
         #   +--------------------------------------- has a ------+
 
         global metadata, status, people, engineers, managers, cars
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         # table definitions
         status = Table('status', metadata, 
            Column('status_id', Integer, primary_key=True),
index 1839f3b0368e492d2ccf206682f77c202fce8aa2..1432887e00a7e4ce4bf8ea55607ffe3e53faec93 100644 (file)
@@ -6,7 +6,7 @@ import testbase
 
 class SingleInheritanceTest(testbase.AssertMixin):
     def setUpAll(self):
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         global employees_table
         employees_table = Table('employees', metadata, 
             Column('employee_id', Integer, primary_key=True),
index d6c094ddd3550167497bc0a9837e157c32394ec5..83694d3961849d5dfb6d5f2594296723faf87915 100644 (file)
@@ -9,7 +9,7 @@ import datetime
 class LazyTest(AssertMixin):
     def setUpAll(self):
         global info_table, data_table, rel_table, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         info_table = Table('infos', metadata,
                Column('pk', Integer, primary_key=True),
                Column('info', String))
index 04cc6d220b963d05053ad209eae789124c20bd7d..5834974ec539ed1a013434d293b2398f7fe88f2b 100644 (file)
@@ -35,7 +35,7 @@ class MapperCleanoutTest(testbase.AssertMixin):
         assert True
         
     def do_test(self):
-        metadata = BoundMetaData(engine)
+        metadata = MetaData(engine)
 
         table1 = Table("mytable", metadata, 
             Column('col1', Integer, primary_key=True),
index 0f8ddd418834a43e712e8f3fe3801f9b1bb33ea9..ada4c98cdf44d06479d28b4a67b6307d02986e08 100644 (file)
@@ -27,7 +27,7 @@ class Port(object):
 class O2OTest(testbase.AssertMixin):
     def setUpAll(self):
         global jack, port, metadata, ctx
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         ctx = SessionContext(create_session)
         jack = Table('jack', metadata, 
             Column('id', Integer, primary_key=True),
index 4bb62f3e2945dbd134152b4125de3be99a5e0f72..d95b7b4adf36baf3366842428892bcb0d99514d4 100644 (file)
@@ -107,7 +107,7 @@ class RelationTest2(testbase.PersistTest):
     is 'joined to itself'."""
     def setUpAll(self):
         global metadata, company_tbl, employee_tbl
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         
         company_tbl = Table('company', metadata,
              Column('company_id', Integer, primary_key=True),
@@ -222,7 +222,7 @@ class RelationTest3(testbase.PersistTest):
     def setUpAll(self):
         global jobs, pageversions, pages, metadata, Job, Page, PageVersion, PageComment
         import datetime
-        metadata = BoundMetaData(testbase.db)  
+        metadata = MetaData(testbase.db)  
         jobs = Table("jobs", metadata,
                         Column("jobno", Unicode(15), primary_key=True),
                         Column("created", DateTime, nullable=False, default=datetime.datetime.now),
index c98938d1334e04522d0448c5b35162959dc62c06..d9c3cf4c3085f4ed5f3bee6ebbc9ca95570842c6 100644 (file)
@@ -63,7 +63,7 @@ class VersioningTest(UnitOfWorkTest):
         UnitOfWorkTest.setUpAll(self)
         ctx.current.clear()
         global version_table
-        version_table = Table('version_test', BoundMetaData(db),
+        version_table = Table('version_test', MetaData(db),
         Column('id', Integer, Sequence('version_test_seq'), primary_key=True ),
         Column('version_id', Integer, nullable=False),
         Column('value', String(40), nullable=False)
@@ -166,7 +166,7 @@ class UnicodeTest(UnitOfWorkTest):
     def setUpAll(self):
         UnitOfWorkTest.setUpAll(self)
         global metadata, uni_table, uni_table2
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         uni_table = Table('uni_test', metadata,
             Column('id',  Integer, Sequence("uni_test_id_seq", optional=True), primary_key=True),
             Column('txt', Unicode(50), unique=True))
@@ -217,7 +217,7 @@ class MutableTypesTest(UnitOfWorkTest):
     def setUpAll(self):
         UnitOfWorkTest.setUpAll(self)
         global metadata, table
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         table = Table('mutabletest', metadata,
             Column('id', Integer, Sequence('mutableidseq', optional=True), primary_key=True),
             Column('data', PickleType),
@@ -329,7 +329,7 @@ class PKTest(UnitOfWorkTest):
     def setUpAll(self):
         UnitOfWorkTest.setUpAll(self)
         global table, table2, table3
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
         table = Table(
             'multipk', metadata, 
             Column('multi_id', Integer, Sequence("multi_id_seq", optional=True), primary_key=True),
@@ -418,7 +418,7 @@ class ForeignPKTest(UnitOfWorkTest):
     def setUpAll(self):
         UnitOfWorkTest.setUpAll(self)
         global metadata, people, peoplesites
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         people = Table("people", metadata,
            Column('person', String(10), primary_key=True),
            Column('firstname', String(10)),
@@ -459,7 +459,7 @@ class PassiveDeletesTest(UnitOfWorkTest):
     def setUpAll(self):
         UnitOfWorkTest.setUpAll(self)
         global metadata, mytable,myothertable
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         mytable = Table('mytable', metadata,
             Column('id', Integer, primary_key=True),
             Column('data', String(30)),
@@ -527,7 +527,7 @@ class DefaultTest(UnitOfWorkTest):
             self.hohoval = 9
             self.althohoval = 15
         global default_table
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
         default_table = Table('default_test', metadata,
         Column('id', Integer, Sequence("dt_seq", optional=True), primary_key=True),
         Column('hoho', hohotype, PassiveDefault(str(self.hohoval))),
@@ -1423,7 +1423,7 @@ class SaveTest2(UnitOfWorkTest):
         ctx.current.clear()
         clear_mappers()
         global meta, users, addresses
-        meta = BoundMetaData(db)
+        meta = MetaData(db)
         users = Table('users', meta,
             Column('user_id', Integer, Sequence('user_id_seq', optional=True), primary_key = True),
             Column('user_name', String(20)),
index fb3fb79709d8f3ee68dbf9c8568369e4f874742e..dd095ab9aa1c8963705f58ecaf3563114971cc05 100644 (file)
@@ -1,9 +1,11 @@
+import testbase
 from sqlalchemy import *
+from sqlalchemy.orm import *
 from testbase import Table, Column
 from timeit import Timer
 import sys
 
-meta = DynamicMetaData("time_trial")
+meta = MetaData()
 
 orders = Table('orders', meta,
     Column('id', Integer, Sequence('order_id_seq'), primary_key = True),
index 2d87b391e6dbd59cfa6d947555698e1a4084207b..c2c0933a59300e5c93c424e7fd813eca573fe417 100644 (file)
@@ -18,7 +18,7 @@ DIVISOR = 50
 class LoadTest(AssertMixin):
     def setUpAll(self):
         global items, meta,subitems
-        meta = BoundMetaData(db)
+        meta = MetaData(db)
         items = Table('items', meta, 
             Column('item_id', Integer, primary_key=True),
             Column('value', String(100)))
index 560696f511cff546b7c29921ba0684f42ad3a075..02b847599dc9790d5fa62cb11c6a94ab97742f69 100644 (file)
@@ -21,7 +21,7 @@ for best results, dont run with sqlite :memory: database, and keep an eye on top
 class LoadTest(AssertMixin):
     def setUpAll(self):
         global items, meta
-        meta = BoundMetaData(db)
+        meta = MetaData(db)
         items = Table('items', meta, 
             Column('item_id', Integer, primary_key=True),
             Column('value', String(100)))
index 98917462e8475c71cfa9648ed75bcf066e2a05db..53f13119ed86234b5a079b18ee3a8a714e5559c5 100644 (file)
@@ -15,7 +15,7 @@ NUM = 250000
 class SaveTest(AssertMixin):
     def setUpAll(self):
         global items, metadata
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
         items = Table('items', metadata, 
             Column('item_id', Integer, primary_key=True),
             Column('value', String(100)))
index 29dcf87e92c683b0991c965b8772850dd7389bb2..b2a84033e3057bd40e3cd175ffb06f5221bacc8e 100644 (file)
@@ -11,7 +11,7 @@ psycopg = pool.manage(psycopg,pool_size=2,max_overflow=1, timeout=5, echo=True)
 print psycopg
 db = create_engine('postgres://scott:tiger@127.0.0.1/test',pool=psycopg,strategy='threadlocal')
 print db.connection_provider._pool
-metadata = BoundMetaData(db)
+metadata = MetaData(db)
 
 users_table = Table('users', metadata,
   Column('user_id', Integer, primary_key=True),
index cb0d72e4f984b0290903183b095b3882389557ef..38fe145cd1b040aee2f58640f87385630c2864c0 100644 (file)
@@ -8,7 +8,7 @@ import thread, time
 from sqlalchemy.orm import mapperlib
 from testbase import Table, Column
 
-meta = BoundMetaData('sqlite:///foo.db')
+meta = MetaData('sqlite:///foo.db')
 
 t1 = Table('t1', meta, 
     Column('c1', Integer, primary_key=True),
index b77742d78fc05a953f3979bf7b2d58ce271223a2..e40171f07fa90b47d960103ac1d06f5a54c3a5d7 100644 (file)
@@ -11,10 +11,10 @@ logging.basicConfig()
 logging.getLogger('sqlalchemy.pool').setLevel(logging.INFO)
 
 threadids = set()
-#meta = BoundMetaData('postgres://scott:tiger@127.0.0.1/test')
+#meta = MetaData('postgres://scott:tiger@127.0.0.1/test')
 
-#meta = BoundMetaData('mysql://scott:tiger@localhost/test', poolclass=pool.SingletonThreadPool)
-meta = BoundMetaData('mysql://scott:tiger@localhost/test')
+#meta = MetaData('mysql://scott:tiger@localhost/test', poolclass=pool.SingletonThreadPool)
+meta = MetaData('mysql://scott:tiger@localhost/test')
 foo = Table('foo', meta, 
     Column('id', Integer, primary_key=True),
     Column('data', String(30)))
index 802de6231ecc02526de643674f96d2dfcec0c1d0..5a42317d7fa4f94856c506d531b3841369e052d3 100644 (file)
@@ -7,7 +7,7 @@ from testbase import Table, Column
 class CaseTest(testbase.PersistTest):
 
     def setUpAll(self):
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         global info_table
         info_table = Table('infos', metadata,
                Column('pk', Integer, primary_key=True),
index d84901a48ced1e85c74dd4a6c8171bd18ae13f78..b5f1a17414fab23ff3007917a933735d37a64d83 100644 (file)
@@ -7,7 +7,7 @@ class ConstraintTest(testbase.AssertMixin):
     
     def setUp(self):
         global metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         
     def tearDown(self):
         metadata.drop_all()
index 94adaa11d4ec016b675ebffe1edce280efd5fd6e..2eeaef7cc15613572e217896fd2dd0275c116bc1 100644 (file)
@@ -14,7 +14,7 @@ class DefaultTest(PersistTest):
 
     def setUpAll(self):
         global t, f, f2, ts, currenttime, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         x = {'x':50}
         def mydefault():
             x['x'] += 1
@@ -136,7 +136,7 @@ class DefaultTest(PersistTest):
         key values in memory before insert; otherwise we cant locate the just inserted row."""
 
         try:
-            meta = BoundMetaData(testbase.db)
+            meta = MetaData(testbase.db)
             testbase.db.execute("""
              CREATE TABLE speedy_users
              (
@@ -157,7 +157,7 @@ class DefaultTest(PersistTest):
 class AutoIncrementTest(PersistTest):
     @testbase.supported('postgres', 'mysql')
     def testnonautoincrement(self):
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         nonai_table = Table("aitest", meta, 
             Column('id', Integer, autoincrement=False, primary_key=True),
             Column('data', String(20)))
@@ -177,7 +177,7 @@ class AutoIncrementTest(PersistTest):
             nonai_table.drop()    
 
     def testwithautoincrement(self):
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         table = Table("aitest", meta, 
             Column('id', Integer, primary_key=True),
             Column('data', String(20)))
@@ -192,7 +192,7 @@ class AutoIncrementTest(PersistTest):
         
         # TODO: what does this test do that all the various ORM tests dont ?
         
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         table = Table("aitest", meta, 
             Column('id', Integer, primary_key=True),
             Column('data', String(20)))
@@ -200,7 +200,7 @@ class AutoIncrementTest(PersistTest):
 
         try:
             # simulate working on a table that doesn't already exist
-            meta2 = BoundMetaData(testbase.db)
+            meta2 = MetaData(testbase.db)
             table2 = Table("aitest", meta2,
                 Column('id', Integer, primary_key=True),
                 Column('data', String(20)))
@@ -222,7 +222,7 @@ class SequenceTest(PersistTest):
     @testbase.supported('postgres', 'oracle')
     def setUpAll(self):
         global cartitems, sometable, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         cartitems = Table("cartitems", metadata, 
             Column("cart_id", Integer, Sequence('cart_id_seq'), primary_key=True),
             Column("description", String(40)),
index 8eb6ef4256cf005a0ec7edc5837f43af6b0597ab..76e07881b0a2490ec49ce95bb7357f06f8885652 100644 (file)
@@ -15,7 +15,7 @@ class QueryTest(PersistTest):
     
     def setUpAll(self):
         global users, addresses, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         users = Table('query_users', metadata,
             Column('user_id', INT, primary_key = True),
             Column('user_name', VARCHAR(20)),
@@ -286,7 +286,7 @@ class QueryTest(PersistTest):
     def test_update_functions(self):
         """test sending functions and SQL expressions to the VALUES and SET clauses of INSERT/UPDATE instances,
         and that column-level defaults get overridden"""
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         t = Table('t1', meta,
             Column('id', Integer, Sequence('t1idseq', optional=True), primary_key=True),
             Column('value', Integer)
@@ -368,7 +368,7 @@ class QueryTest(PersistTest):
     
     @testbase.unsupported('oracle', 'firebird') 
     def test_column_accessor_shadow(self):
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         shadowed = Table('test_shadowed', meta,
                          Column('shadow_id', INT, primary_key = True),
                          Column('shadow_name', VARCHAR(20)),
@@ -398,7 +398,7 @@ class QueryTest(PersistTest):
     
     @testbase.supported('mssql')
     def test_fetchid_trigger(self):
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         t1 = Table('t1', meta,
                 Column('id', Integer, Sequence('fred', 100, 1), primary_key=True),
                 Column('descr', String(200)))
@@ -424,7 +424,7 @@ class QueryTest(PersistTest):
     
     @testbase.supported('mssql')
     def test_insertid_schema(self):
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         con = testbase.db.connect()
         con.execute('create schema paj')
         tbl = Table('test', meta, Column('id', Integer, primary_key=True), schema='paj')
@@ -491,7 +491,7 @@ class CompoundTest(PersistTest):
     different databases."""
     def setUpAll(self):
         global metadata, t1, t2, t3
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         t1 = Table('t1', metadata, 
             Column('col1', Integer, Sequence('t1pkseq'), primary_key=True),
             Column('col2', String(30)),
@@ -605,7 +605,7 @@ class CompoundTest(PersistTest):
 class OperatorTest(PersistTest):
     def setUpAll(self):
         global metadata, flds
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         flds = Table('flds', metadata, 
             Column('idcol', Integer, Sequence('t1pkseq'), primary_key=True),
             Column('intcol', Integer),
index 1281b3d1ab173ff855c2baa52f3afa34a7261678..08cef8e5f9b3cf9887867cb528d11ec0dfa93f3f 100644 (file)
@@ -10,7 +10,7 @@ class QuoteTest(PersistTest):
         # such as:  spaces, quote characters, punctuation characters, set up tests for those as
         # well.
         global table1, table2, table3
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         table1 = Table('WorstCase1', metadata,
             Column('lowercase', Integer, primary_key=True),
             Column('UPPERCASE', Integer),
@@ -48,7 +48,7 @@ class QuoteTest(PersistTest):
         assert(res2==[(1,2,3),(2,2,3),(4,3,2)])
         
     def testreflect(self):
-        meta2 = BoundMetaData(testbase.db)
+        meta2 = MetaData(testbase.db)
         t2 = Table('WorstCase2', meta2, autoload=True, quote=True)
         assert t2.c.has_key('MixedCase')
 
@@ -121,7 +121,7 @@ class QuoteTest(PersistTest):
             Column('MixedCase', Integer))
         
         # first test case sensitive tables migrating via tometadata
-        meta = BoundMetaData(testbase.db, case_sensitive=False)
+        meta = MetaData(testbase.db, case_sensitive=False)
         lc_table1 = table1.tometadata(meta)
         lc_table2 = table2.tometadata(meta)
         assert lc_table1.case_sensitive is False
index 673a51bb0e3292b952b4d0b3b402d8da7d12d631..a74f3e0f84ffe2cdef3fc41230570e943991a346 100644 (file)
@@ -6,7 +6,7 @@ import testbase
 class FoundRowsTest(testbase.AssertMixin):
     """tests rowcount functionality"""
     def setUpAll(self):
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
 
         global employees_table
 
index dc992399e97398f9b39e87eae6f2950864931761..bc85e74557939ab95d7ce9bc257edae4a5281e0d 100755 (executable)
@@ -9,7 +9,7 @@ from testbase import Table, Column
 
 
 db = testbase.db
-metadata = BoundMetaData(db)
+metadata = MetaData(db)
 table = Table('table1', metadata, 
     Column('col1', Integer, primary_key=True),
     Column('col2', String(20)),
index cd10bed812f3dbaaf67290e7c294580ed9160d66..8d5848d1cd241c777be4923d496b5dc7ebd2d27d 100644 (file)
@@ -107,7 +107,7 @@ class OverrideTest(PersistTest):
 
     def setUpAll(self):
         global users
-        users = Table('type_users', BoundMetaData(db), 
+        users = Table('type_users', MetaData(db), 
             Column('user_id', Integer, primary_key = True),
             # totall custom type
             Column('goofy', MyType, nullable = False),
@@ -142,7 +142,7 @@ class ColumnsTest(AssertMixin):
             expectedResults['float_column'] = 'float_column FLOAT(25)'
     
         print db.engine.__module__
-        testTable = Table('testColumns', BoundMetaData(db),
+        testTable = Table('testColumns', MetaData(db),
             Column('int_column', Integer),
             Column('smallint_column', Smallinteger),
             Column('varchar_column', String(20)),
@@ -157,7 +157,7 @@ class UnicodeTest(AssertMixin):
     """tests the Unicode type.  also tests the TypeDecorator with instances in the types package."""
     def setUpAll(self):
         global unicode_table
-        metadata = BoundMetaData(db)
+        metadata = MetaData(db)
         unicode_table = Table('unicode_table', metadata, 
             Column('id', Integer, Sequence('uni_id_seq', optional=True), primary_key=True),
             Column('unicode_varchar', Unicode(250)),
@@ -217,7 +217,7 @@ class UnicodeTest(AssertMixin):
 class BinaryTest(AssertMixin):
     def setUpAll(self):
         global binary_table
-        binary_table = Table('binary_table', BoundMetaData(db), 
+        binary_table = Table('binary_table', MetaData(db), 
         Column('primary_id', Integer, Sequence('binary_id_seq', optional=True), primary_key=True),
         Column('data', Binary),
         Column('data_slice', Binary(100)),
@@ -307,7 +307,7 @@ class DateTest(AssertMixin):
             collist = [Column('user_id', INT, primary_key = True), Column('user_name', VARCHAR(20)), Column('user_datetime', DateTime(timezone=False)),
                            Column('user_date', Date), Column('user_time', Time)]
  
-        users_with_date = Table('query_users_with_date', BoundMetaData(db), *collist)
+        users_with_date = Table('query_users_with_date', MetaData(db), *collist)
         users_with_date.create()
         insert_dicts = [dict(zip(fnames, d)) for d in insert_data]
 
@@ -353,7 +353,7 @@ class DateTest(AssertMixin):
 class IntervalTest(AssertMixin):
     def setUpAll(self):
         global interval_table, metadata
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         interval_table = Table("intervaltable", metadata, 
             Column("id", Integer, primary_key=True),
             Column("interval", Interval),
@@ -371,7 +371,7 @@ class IntervalTest(AssertMixin):
 class BooleanTest(AssertMixin):
     def setUpAll(self):
         global bool_table
-        metadata = BoundMetaData(testbase.db)
+        metadata = MetaData(testbase.db)
         bool_table = Table('booltest', metadata, 
             Column('id', Integer, primary_key=True),
             Column('value', Boolean))
index fb77a77b749131e4f336936edecde4c381b96b5c..c426a258c7a7387d018b0c352dc9963603b5e963 100644 (file)
@@ -41,7 +41,7 @@ class UnicodeSchemaTest(testbase.PersistTest):
         t1.insert().execute({u'méil':2, u'éXXm':7})
         t2.insert().execute({'a':2, 'b':2})
 
-        meta = BoundMetaData(testbase.db)
+        meta = MetaData(testbase.db)
         tt1 = Table(t1.name, meta, autoload=True)
         tt2 = Table(t2.name, meta, autoload=True)
         tt1.insert().execute({u'méil':1, u'éXXm':5})
index 33ba858c2161b40389aaec7b9a629dc232374ccc..6ae53a1dae0d68b729711c96963595e7ba96676c 100644 (file)
@@ -6,7 +6,7 @@ from testbase import Table, Column
 
 ECHO = testbase.echo
 db = testbase.db
-metadata = BoundMetaData(db)
+metadata = MetaData(db)
 
 users = Table('users', metadata,
     Column('user_id', Integer, Sequence('user_id_seq', optional=True), primary_key = True),
index e8fcadc4d299296613e0d60b72b9508429a5ec52..10b6671d211a5cfe4afd1e9365c308306abebaa5 100644 (file)
@@ -7,7 +7,7 @@ import sys
 import os, unittest, StringIO, re, ConfigParser, optparse
 sys.path.insert(0, os.path.join(os.getcwd(), 'lib'))
 import sqlalchemy
-from sqlalchemy import sql, schema, engine, pool, BoundMetaData
+from sqlalchemy import sql, schema, engine, pool, MetaData
 from sqlalchemy.orm import clear_mappers
 
 db = None
@@ -167,7 +167,7 @@ firebird=firebird://sysdba:s@localhost/tmp/test.fdb
     if options.log_debug is not None:
         for elem in options.log_debug:
             logging.getLogger(elem).setLevel(logging.DEBUG)
-    metadata = sqlalchemy.BoundMetaData(db)
+    metadata = sqlalchemy.MetaData(db)
     
 def unsupported(*dbs):
     """a decorator that marks a test as unsupported by one or more database implementations"""
@@ -309,7 +309,7 @@ class ORMTest(AssertMixin):
     keep_data = False
     def setUpAll(self):
         global _otest_metadata
-        _otest_metadata = BoundMetaData(db)
+        _otest_metadata = MetaData(db)
         self.define_tables(_otest_metadata)
         _otest_metadata.create_all()
     def define_tables(self, _otest_metadata):