From c6d869f814d2e8ffe03e519c59cf35f7a4927e1c Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 8 Nov 2020 11:14:22 -0500 Subject: Allow dialect-specific stringification Dialect-specific constructs such as :meth:`_postgresql.Insert.on_conflict_do_update` can now stringify in-place without the need to specify an explicit dialect object. The constructs, when called upon for ``str()``, ``print()``, etc. now have internal direction to call upon their appropriate dialect rather than the "default"dialect which doesn't know how to stringify these. The approach is also adapted to generic schema-level create/drop such as :class:`_schema.AddConstraint`, which will adapt its stringify dialect to one indicated by the element within it, such as the :class:`_postgresql.ExcludeConstraint` object. mostly towards being able to provide doctest-style examples for "on conflict" constructs using print statements. Change-Id: I4b855516fe6dee2df77744c1bb21a373d7fbab93 --- lib/sqlalchemy/sql/schema.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib/sqlalchemy/sql/schema.py') diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py index ab635cd56..98ea8648a 100644 --- a/lib/sqlalchemy/sql/schema.py +++ b/lib/sqlalchemy/sql/schema.py @@ -100,6 +100,8 @@ class SchemaItem(SchemaEventTarget, visitors.Visitable): __visit_name__ = "schema_item" + create_drop_stringify_dialect = "default" + def _init_items(self, *args, **kw): """Initialize the list of child items for this SchemaItem.""" for item in args: -- cgit v1.2.1