From: Mike Bayer Date: Tue, 24 Apr 2012 16:01:04 +0000 (-0400) Subject: - [feature] The column_reflect event now X-Git-Tag: rel_0_8_0b1~463 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=998c66fa8b1997453c793da5faa7d4cc436739b2;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - [feature] The column_reflect event now accepts the Inspector object as the first argument, preceding "table". Code which uses the 0.7 version of this very new event will need modification to add the "inspector" object as the first argument. [ticket:2418] --- diff --git a/CHANGES b/CHANGES index f8bf29317e..23f17335db 100644 --- a/CHANGES +++ b/CHANGES @@ -128,6 +128,14 @@ CHANGES acquired using the new inspect() service, part of [ticket:2208] + - [feature] The column_reflect event now + accepts the Inspector object as the first + argument, preceding "table". Code which + uses the 0.7 version of this very new + event will need modification to add the + "inspector" object as the first argument. + [ticket:2418] + - [bug] Removed warning when Index is created with no columns; while this might not be what the user intended, it is a valid use case diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py index b2a5a02eff..4ad3595c3b 100644 --- a/lib/sqlalchemy/engine/reflection.py +++ b/lib/sqlalchemy/engine/reflection.py @@ -374,7 +374,7 @@ class Inspector(object): found_table = False for col_d in self.get_columns(table_name, schema, **tblkw): found_table = True - table.dispatch.column_reflect(table, col_d) + table.dispatch.column_reflect(self, table, col_d) name = col_d['name'] if include_columns and name not in include_columns: diff --git a/lib/sqlalchemy/events.py b/lib/sqlalchemy/events.py index 18888be039..99af804f61 100644 --- a/lib/sqlalchemy/events.py +++ b/lib/sqlalchemy/events.py @@ -166,7 +166,7 @@ class DDLEvents(event.Events): """ - def column_reflect(self, table, column_info): + def column_reflect(self, inspector, table, column_info): """Called for each unit of 'column info' retrieved when a :class:`.Table` is being reflected. @@ -188,7 +188,7 @@ class DDLEvents(event.Events): from sqlalchemy.schema import Table from sqlalchemy import event - def listen_for_reflect(table, column_info): + def listen_for_reflect(inspector, table, column_info): "receive a column_reflect event" # ... @@ -200,7 +200,7 @@ class DDLEvents(event.Events): ...or with a specific :class:`.Table` instance using the ``listeners`` argument:: - def listen_for_reflect(table, column_info): + def listen_for_reflect(inspector, table, column_info): "receive a column_reflect event" # ... diff --git a/test/engine/test_reflection.py b/test/engine/test_reflection.py index e59849d98f..371a4c1b4b 100644 --- a/test/engine/test_reflection.py +++ b/test/engine/test_reflection.py @@ -1645,7 +1645,7 @@ class ColumnEventsTest(fixtures.TestBase): from sqlalchemy.schema import Table m = MetaData(testing.db) - def column_reflect(table, column_info): + def column_reflect(insp, table, column_info): if column_info['name'] == col: column_info.update(update)