From: Mike Bayer Date: Thu, 4 Apr 2013 19:43:33 +0000 (-0400) Subject: Fixed bug whereby double quoting would be applied X-Git-Tag: rel_0_5_0~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0fc1e5fdf34ca3e9b6f48766cf72ec07e69666dd;p=thirdparty%2Fsqlalchemy%2Falembic.git Fixed bug whereby double quoting would be applied to target column name during an ``sp_rename`` operation. #109 --- diff --git a/alembic/ddl/mssql.py b/alembic/ddl/mssql.py index 8011495e..0f2a7592 100644 --- a/alembic/ddl/mssql.py +++ b/alembic/ddl/mssql.py @@ -156,7 +156,7 @@ def visit_column_default(element, compiler, **kw): @compiles(ColumnName, 'mssql') def visit_rename_column(element, compiler, **kw): - return "EXEC sp_rename '%s.%s', '%s', 'COLUMN'" % ( + return "EXEC sp_rename '%s.%s', %s, 'COLUMN'" % ( format_table_name(compiler, element.table_name, element.schema), format_column_name(compiler, element.column_name), format_column_name(compiler, element.newname) diff --git a/docs/build/changelog.rst b/docs/build/changelog.rst index f87deed3..aee64a75 100644 --- a/docs/build/changelog.rst +++ b/docs/build/changelog.rst @@ -6,6 +6,14 @@ Changelog .. changelog:: :version: 0.5.0 + .. change:: + :tags: bug, mssql + :tickets: 109 + + Fixed bug whereby double quoting would be applied + to target column name during an ``sp_rename`` + operation. + .. change:: :tags: bug :tickets: 112 diff --git a/tests/test_mssql.py b/tests/test_mssql.py index 0948581a..66cdb9a5 100644 --- a/tests/test_mssql.py +++ b/tests/test_mssql.py @@ -53,7 +53,14 @@ class OpTest(TestCase): context = op_fixture('mssql') op.alter_column("t", "c", new_column_name="x") context.assert_( - "EXEC sp_rename 't.c', 'x', 'COLUMN'" + "EXEC sp_rename 't.c', x, 'COLUMN'" + ) + + def test_alter_column_rename_quoted_mssql(self): + context = op_fixture('mssql') + op.alter_column("t", "c", new_column_name="SomeFancyName") + context.assert_( + "EXEC sp_rename 't.c', [SomeFancyName], 'COLUMN'" ) def test_alter_column_new_type(self): @@ -157,7 +164,7 @@ class OpTest(TestCase): context.assert_( 'ALTER TABLE t ALTER COLUMN c INTEGER NULL', "ALTER TABLE t ADD DEFAULT '5' FOR c", - "EXEC sp_rename 't.c', 'c2', 'COLUMN'" + "EXEC sp_rename 't.c', c2, 'COLUMN'" ) # TODO: when we add schema support