--- /dev/null
+.. change::
+ :tags: bug, schema
+ :tickets: 6685
+
+ Fixed issue where passing ``None`` for the value of
+ :paramref:`_schema.Table.prefixes` would not store an empty list, but
+ rather the constant ``None``, which may be unexpected by third party
+ dialects. The issue is revealed by a usage in recent versions of Alembic
+ that are passing ``None`` for this value. Pull request courtesy Kai
+ Mueller.
for evt, fn in listeners:
event.listen(self, evt, fn)
- self._prefixes = kwargs.pop("prefixes", [])
+ self._prefixes = kwargs.pop("prefixes", None) or []
self._extra_kwargs(**kwargs)
"CREATE VIRTUAL TABLE temporary_table_2 (col1 INTEGER)",
)
+ @testing.combinations((None, []), ((), []), ([], []), (["foo"], ["foo"]))
+ def test_prefixes_parameter_parsing(self, arg, expected):
+ """test #6685"""
+ table = Table("foo", MetaData(), Column("bar", Integer), prefixes=arg)
+ eq_(table._prefixes, expected)
+
def test_table_info(self):
metadata = MetaData()
t1 = Table("foo", metadata, info={"x": "y"})