package clause

type Update struct {
	Modifier string
	Table    Table
}

// Name update clause name
func ( Update) () string {
	return "UPDATE"
}

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

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

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