(self, create, **kw)
| 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) |
nothing calls this directly
no test coverage detected