summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalik Diarra <malik.diarra@gmail.com>2014-08-13 01:39:09 +0200
committerMalik Diarra <malik.diarra@gmail.com>2014-08-17 01:56:02 +0200
commitef6042ff461e490c2a3040f18f0a3688b2e601a0 (patch)
tree679d9cb74b7d391cbf85fdb6ee60ac5a65b674a4
parentb577afcb2bdcd94581606bc911968d8885509769 (diff)
downloadsqlalchemy-ef6042ff461e490c2a3040f18f0a3688b2e601a0.tar.gz
Adding a tablespace options for postgresql create table
-rw-r--r--lib/sqlalchemy/dialects/postgresql/base.py10
-rw-r--r--test/dialect/postgresql/test_compiler.py6
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py
index c2b1d66f4..0f008642e 100644
--- a/lib/sqlalchemy/dialects/postgresql/base.py
+++ b/lib/sqlalchemy/dialects/postgresql/base.py
@@ -1448,6 +1448,13 @@ class PGDDLCompiler(compiler.DDLCompiler):
text += self.define_constraint_deferrability(constraint)
return text
+ def post_create_table(self, table):
+ table_opts = []
+ if table.dialect_options['postgresql']['tablespace']:
+ table_opts.append('TABLESPACE %s' % table.dialect_options['postgresql']['tablespace'])
+
+ return ' '.join(table_opts)
+
class PGTypeCompiler(compiler.GenericTypeCompiler):
@@ -1707,7 +1714,8 @@ class PGDialect(default.DefaultDialect):
"ops": {}
}),
(schema.Table, {
- "ignore_search_path": False
+ "ignore_search_path": False,
+ "tablespace": None
})
]
diff --git a/test/dialect/postgresql/test_compiler.py b/test/dialect/postgresql/test_compiler.py
index b08fb0160..301f80fd4 100644
--- a/test/dialect/postgresql/test_compiler.py
+++ b/test/dialect/postgresql/test_compiler.py
@@ -166,6 +166,12 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL):
"VARCHAR(1), CHECK (somecolumn IN ('x', "
"'y', 'z')))")
+ def test_create_table_with_tablespace(self):
+ m = MetaData()
+ tbl = Table('atable', m, Column("id", Integer), postgresql_tablespace = 'sometablespace')
+ self.assert_compile(schema.CreateTable(tbl),
+ "CREATE TABLE atable (id INTEGER)TABLESPACE sometablespace")
+
def test_create_partial_index(self):
m = MetaData()
tbl = Table('testtbl', m, Column('data', Integer))