MCPcopy Index your code
hub / github.com/Masterminds/squirrel / ToSql

Method ToSql

insert.go:53–115  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

51}
52
53func (d *insertData) ToSql() (sqlStr string, args []interface{}, err error) {
54 if len(d.Into) == 0 {
55 err = errors.New("insert statements must specify a table")
56 return
57 }
58 if len(d.Values) == 0 && d.Select == nil {
59 err = errors.New("insert statements must have at least one set of values or select clause")
60 return
61 }
62
63 sql := &bytes.Buffer{}
64
65 if len(d.Prefixes) > 0 {
66 args, err = appendToSql(d.Prefixes, sql, " ", args)
67 if err != nil {
68 return
69 }
70
71 sql.WriteString(" ")
72 }
73
74 if d.StatementKeyword == "" {
75 sql.WriteString("INSERT ")
76 } else {
77 sql.WriteString(d.StatementKeyword)
78 sql.WriteString(" ")
79 }
80
81 if len(d.Options) > 0 {
82 sql.WriteString(strings.Join(d.Options, " "))
83 sql.WriteString(" ")
84 }
85
86 sql.WriteString("INTO ")
87 sql.WriteString(d.Into)
88 sql.WriteString(" ")
89
90 if len(d.Columns) > 0 {
91 sql.WriteString("(")
92 sql.WriteString(strings.Join(d.Columns, ","))
93 sql.WriteString(") ")
94 }
95
96 if d.Select != nil {
97 args, err = d.appendSelectToSQL(sql, args)
98 } else {
99 args, err = d.appendValuesToSQL(sql, args)
100 }
101 if err != nil {
102 return
103 }
104
105 if len(d.Suffixes) > 0 {
106 sql.WriteString(" ")
107 args, err = appendToSql(d.Suffixes, sql, " ", args)
108 if err != nil {
109 return
110 }

Callers

nothing calls this directly

Calls 5

appendSelectToSQLMethod · 0.95
appendValuesToSQLMethod · 0.95
appendToSqlFunction · 0.85
JoinMethod · 0.80
ReplacePlaceholdersMethod · 0.65

Tested by

no test coverage detected