MCPcopy Index your code
hub / github.com/dropbox/godropbox / String

Method String

database/sqlbuilder/statement.go:698–790  ·  view source on GitHub ↗
(database string)

Source from the content-addressed store, hash-verified

696}
697
698func (u *updateStatementImpl) String(database string) (sql string, err error) {
699 if !validIdentifierName(database) {
700 return "", errors.New("Invalid database name specified")
701 }
702
703 buf := new(bytes.Buffer)
704 _, _ = buf.WriteString("UPDATE ")
705
706 if err = writeComment(u.comment, buf); err != nil {
707 return
708 }
709
710 if u.table == nil {
711 return "", errors.Newf("nil table. Generated sql: %s", buf.String())
712 }
713
714 if err = u.table.SerializeSql(database, buf); err != nil {
715 return
716 }
717
718 if len(u.updateValues) == 0 {
719 return "", errors.Newf(
720 "No column updated. Generated sql: %s",
721 buf.String())
722 }
723
724 _, _ = buf.WriteString(" SET ")
725 addComma := false
726
727 // Sorting is too hard in go, just create a second map ...
728 updateValues := make(map[string]Expression)
729 for col, expr := range u.updateValues {
730 if col == nil {
731 return "", errors.Newf(
732 "nil column. Generated sql: %s",
733 buf.String())
734 }
735
736 updateValues[col.Name()] = expr
737 }
738
739 for _, col := range u.table.Columns() {
740 val, inMap := updateValues[col.Name()]
741 if !inMap {
742 continue
743 }
744
745 if addComma {
746 _, _ = buf.WriteString(", ")
747 }
748
749 if val == nil {
750 return "", errors.Newf(
751 "nil value. Generated sql: %s",
752 buf.String())
753 }
754
755 if err = col.SerializeSql(buf); err != nil {

Callers

nothing calls this directly

Calls 8

NewFunction · 0.92
NewfFunction · 0.92
validIdentifierNameFunction · 0.85
writeCommentFunction · 0.85
StringMethod · 0.65
SerializeSqlMethod · 0.65
NameMethod · 0.65
ColumnsMethod · 0.65

Tested by

no test coverage detected