summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/compiler.py
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2017-03-17 14:16:27 -0400
committerGerrit Code Review <gerrit@awstats.zzzcomputing.com>2017-03-17 14:16:27 -0400
commitd96fc5d02a921820aa5973daf66445c880ca6cd4 (patch)
treea7b3a47cca6e9a5af48dda6b3d92e3ba3f0b2418 /lib/sqlalchemy/sql/compiler.py
parent9974e9a46bdf6c570c650aa911b76c2dcfd9327b (diff)
parentfadb8d61babb76ef7bdbc98279096a8900c7328d (diff)
downloadsqlalchemy-d96fc5d02a921820aa5973daf66445c880ca6cd4.tar.gz
Merge "Implement comments for tables, columns"
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r--lib/sqlalchemy/sql/compiler.py29
1 files changed, 26 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index a1d5a879d..e3bef8f82 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -2492,6 +2492,29 @@ class DDLCompiler(Compiled):
self.process(create.element)
)
+ def visit_set_table_comment(self, create):
+ return "COMMENT ON TABLE %s IS %s" % (
+ self.preparer.format_table(create.element),
+ self.sql_compiler.render_literal_value(
+ create.element.comment, sqltypes.String())
+ )
+
+ def visit_drop_table_comment(self, drop):
+ return "COMMENT ON TABLE %s IS NULL" % \
+ self.preparer.format_table(drop.element)
+
+ def visit_set_column_comment(self, create):
+ return "COMMENT ON COLUMN %s IS %s" % (
+ self.preparer.format_column(
+ create.element, use_table=True, use_schema=True),
+ self.sql_compiler.render_literal_value(
+ create.element.comment, sqltypes.String())
+ )
+
+ def visit_drop_column_comment(self, drop):
+ return "COMMENT ON COLUMN %s IS NULL" % \
+ self.preparer.format_column(drop.element, use_table=True)
+
def visit_create_sequence(self, create):
text = "CREATE SEQUENCE %s" % \
self.preparer.format_sequence(create.element)
@@ -2996,7 +3019,7 @@ class IdentifierPreparer(object):
return self.quote(name, quote)
def format_column(self, column, use_table=False,
- name=None, table_name=None):
+ name=None, table_name=None, use_schema=False):
"""Prepare a quoted column name."""
if name is None:
@@ -3004,7 +3027,7 @@ class IdentifierPreparer(object):
if not getattr(column, 'is_literal', False):
if use_table:
return self.format_table(
- column.table, use_schema=False,
+ column.table, use_schema=use_schema,
name=table_name) + "." + self.quote(name)
else:
return self.quote(name)
@@ -3014,7 +3037,7 @@ class IdentifierPreparer(object):
if use_table:
return self.format_table(
- column.table, use_schema=False,
+ column.table, use_schema=use_schema,
name=table_name) + '.' + name
else:
return name