def post_create_table(self, table):
table_opts = []
+ if table.dialect_options['postgresql']['withoids'] is not None:
+ if table.dialect_options['postgresql']['withoids']:
+ table_opts.append('WITH OIDS')
+ else:
+ table_opts.append('WITHOUT OIDS')
+ if table.dialect_options['postgresql']['on_commit']:
+ on_commit_options = table.dialect_options['postgresql']['on_commit'].replace("_", " ").upper()
+ table_opts.append('ON COMMIT %s' % on_commit_options)
if table.dialect_options['postgresql']['tablespace']:
table_opts.append('TABLESPACE %s' % table.dialect_options['postgresql']['tablespace'])
}),
(schema.Table, {
"ignore_search_path": False,
- "tablespace": None
+ "tablespace": None,
+ "withoids" : None,
+ "on_commit" : None,
})
]
self.assert_compile(schema.CreateTable(tbl),
"CREATE TABLE atable (id INTEGER)TABLESPACE sometablespace")
+ def test_create_table_with_oids(self):
+ m = MetaData()
+ tbl = Table('atable', m, Column("id", Integer), postgresql_withoids = True, )
+ self.assert_compile(schema.CreateTable(tbl),
+ "CREATE TABLE atable (id INTEGER)WITH OIDS")
+
+ tbl2 = Table('anothertable', m, Column("id", Integer), postgresql_withoids = False, )
+ self.assert_compile(schema.CreateTable(tbl2),
+ "CREATE TABLE anothertable (id INTEGER)WITHOUT OIDS")
+
+ def create_table_with_oncommit_option(self):
+ m = MetaData()
+ tbl = Table('atable', m, Column("id", Integer), postgresql_on_commit = "drop")
+ self.assert_compile(schema.CreateTable(tbl),
+ "CREATE TABLE atable (id INTEGER) ON COMMIT DROP")
+
+ def create_table_with_multiple_options(self):
+ m = MetaData()
+ tbl = Table('atable', m, Column("id", Integer), postgresql_tablespace = 'sometablespace', postgresql_withoids = False, postgresql_on_commit = "preserve_rows")
+ self.assert_compile(schema.CreateTable(tbl),
+ "CREATE TABLE atable (id INTEGER)WITHOUT OIDS ON COMMIT PRESERVE ROWS TABLESPACE sometablespace")
+
def test_create_partial_index(self):
m = MetaData()
tbl = Table('testtbl', m, Column('data', Integer))