MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / visit_create_table

Method visit_create_table

lib/sqlalchemy/sql/compiler.py:7061–7111  ·  view source on GitHub ↗
(self, create, **kw)

Source from the content-addressed store, hash-verified

7059 return text
7060
7061 def visit_create_table(self, create, **kw):
7062 table = create.element
7063 preparer = self.preparer
7064
7065 text = "\nCREATE "
7066 if table._prefixes:
7067 text += " ".join(table._prefixes) + " "
7068
7069 text += "TABLE "
7070 if create.if_not_exists:
7071 text += "IF NOT EXISTS "
7072
7073 text += preparer.format_table(table) + " "
7074
7075 create_table_suffix = self.create_table_suffix(table)
7076 if create_table_suffix:
7077 text += create_table_suffix + " "
7078
7079 text += "("
7080
7081 separator = "\n"
7082
7083 # if only one primary key, specify it along with the column
7084 first_pk = False
7085 for create_column in create.columns:
7086 column = create_column.element
7087 try:
7088 processed = self.process(
7089 create_column, first_pk=column.primary_key and not first_pk
7090 )
7091 if processed is not None:
7092 text += separator
7093 separator = ", \n"
7094 text += "\t" + processed
7095 if column.primary_key:
7096 first_pk = True
7097 except exc.CompileError as ce:
7098 raise exc.CompileError(
7099 "(in table '%s', column '%s'): %s"
7100 % (table.description, column.name, ce.args[0])
7101 ) from ce
7102
7103 const = self.create_table_constraints(
7104 table,
7105 _include_foreign_key_constraints=create.include_foreign_key_constraints, # noqa
7106 )
7107 if const:
7108 text += separator + "\t" + const
7109
7110 text += "\n)%s\n\n" % self.post_create_table(table)
7111 return text
7112
7113 def visit_create_view(self, element: CreateView, **kw: Any) -> str:
7114 return self._generate_table_select(element, "view", **kw)

Callers

nothing calls this directly

Calls 6

create_table_suffixMethod · 0.95
post_create_tableMethod · 0.95
format_tableMethod · 0.80
joinMethod · 0.45
processMethod · 0.45

Tested by

no test coverage detected