提交 e4eb2436 编写于 作者: R Ryuta Kamizono

Eliminate the duplication code of `visit_TableDefinition`

上级 93181210
......@@ -14,8 +14,10 @@ def accept(o)
send m, o
end
delegate :quote_column_name, :quote_table_name, :quote_default_expression, :type_to_sql, to: :@conn
private :quote_column_name, :quote_table_name, :quote_default_expression, :type_to_sql
delegate :quote_column_name, :quote_table_name, :quote_default_expression, :type_to_sql,
:supports_indexes_in_create?, to: :@conn
private :quote_column_name, :quote_table_name, :quote_default_expression, :type_to_sql,
:supports_indexes_in_create?
private
......@@ -38,9 +40,15 @@ def visit_AddColumnDefinition(o)
end
def visit_TableDefinition(o)
create_sql = "CREATE#{' TEMPORARY' if o.temporary} TABLE "
create_sql << "#{quote_table_name(o.name)} "
create_sql << "(#{o.columns.map { |c| accept c }.join(', ')}) " unless o.as
create_sql = "CREATE#{' TEMPORARY' if o.temporary} TABLE #{quote_table_name(o.name)} "
statements = o.columns.map { |c| accept c }
if supports_indexes_in_create?
statements.concat(o.indexes.map { |column_name, options| index_in_create(o.name, column_name, options) })
end
create_sql << "(#{statements.join(', ')}) " if statements.present?
create_sql << "#{o.options}"
create_sql << " AS #{@conn.to_sql(o.as)}" if o.as
create_sql
......
......@@ -52,19 +52,6 @@ def visit_DropForeignKey(name)
"DROP FOREIGN KEY #{name}"
end
def visit_TableDefinition(o)
name = o.name
create_sql = "CREATE#{' TEMPORARY' if o.temporary} TABLE #{quote_table_name(name)} "
statements = o.columns.map { |c| accept c }
statements.concat(o.indexes.map { |column_name, options| index_in_create(name, column_name, options) })
create_sql << "(#{statements.join(', ')}) " if statements.present?
create_sql << "#{o.options}"
create_sql << " AS #{@conn.to_sql(o.as)}" if o.as
create_sql
end
def visit_AddColumnDefinition(o)
add_column_position!(super, column_options(o.column))
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册