package clause

type Insert struct {
	Table    Table
	Modifier string
}

// Name insert clause name
func ( Insert) () string {
	return "INSERT"
}

// Build build insert clause
func ( Insert) ( Builder) {
	if .Modifier != "" {
		.WriteString(.Modifier)
		.WriteByte(' ')
	}

	.WriteString("INTO ")
	if .Table.Name == "" {
		.WriteQuoted(currentTable)
	} else {
		.WriteQuoted(.Table)
	}
}

// MergeClause merge insert clause
func ( Insert) ( *Clause) {
	if ,  := .Expression.(Insert);  {
		if .Modifier == "" {
			.Modifier = .Modifier
		}
		if .Table.Name == "" {
			.Table = .Table
		}
	}
	.Expression = 
}