MCPcopy Create free account
hub / github.com/auula/gsql / Build

Method Build

selector.go:265–300  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

263}
264
265func (q *Query) Build() (error, string) {
266
267 if q.Err != nil {
268 return q.Err, ""
269 }
270
271 sql := new(strings.Builder)
272 sql.WriteString("SELECT ")
273
274 if q.SelectColumns.Len() > 0 {
275 sql.WriteString(q.SelectColumns.String())
276 }
277
278 if q.TableName == "" {
279 return fmt.Errorf("%w", errors.New("table name found")), ""
280 }
281
282 sql.WriteString(fmt.Sprintf(" FROM %s", q.TableName))
283
284 if q.ConditionSQL.Len() > 0 {
285 sql.WriteString(" WHERE ")
286 sql.WriteString(q.ConditionSQL.String())
287 }
288
289 if q.OrderBySQL.Len() > 0 {
290 sql.WriteString(" ORDER BY ")
291 sql.WriteString(q.OrderBySQL.String())
292 }
293
294 if q.SQLLimit.Len() > 0 {
295 sql.WriteString(" LIMIT ")
296 sql.WriteString(q.SQLLimit.String())
297 }
298
299 return nil, sql.String()
300}
301
302func (q *Query) String() string {
303 err, s := q.Build()

Callers 2

OneMethod · 0.95
StringMethod · 0.95

Calls 1

StringMethod · 0.65

Tested by

no test coverage detected