()
| 62 | } |
| 63 | |
| 64 | func (d *selectData) toSqlRaw() (sqlStr string, args []interface{}, err error) { |
| 65 | if len(d.Columns) == 0 { |
| 66 | err = fmt.Errorf("select statements must have at least one result column") |
| 67 | return |
| 68 | } |
| 69 | |
| 70 | sql := &bytes.Buffer{} |
| 71 | |
| 72 | if len(d.Prefixes) > 0 { |
| 73 | args, err = appendToSql(d.Prefixes, sql, " ", args) |
| 74 | if err != nil { |
| 75 | return |
| 76 | } |
| 77 | |
| 78 | sql.WriteString(" ") |
| 79 | } |
| 80 | |
| 81 | sql.WriteString("SELECT ") |
| 82 | |
| 83 | if len(d.Options) > 0 { |
| 84 | sql.WriteString(strings.Join(d.Options, " ")) |
| 85 | sql.WriteString(" ") |
| 86 | } |
| 87 | |
| 88 | if len(d.Columns) > 0 { |
| 89 | args, err = appendToSql(d.Columns, sql, ", ", args) |
| 90 | if err != nil { |
| 91 | return |
| 92 | } |
| 93 | } |
| 94 | |
| 95 | if d.From != nil { |
| 96 | sql.WriteString(" FROM ") |
| 97 | args, err = appendToSql([]Sqlizer{d.From}, sql, "", args) |
| 98 | if err != nil { |
| 99 | return |
| 100 | } |
| 101 | } |
| 102 | |
| 103 | if len(d.Joins) > 0 { |
| 104 | sql.WriteString(" ") |
| 105 | args, err = appendToSql(d.Joins, sql, " ", args) |
| 106 | if err != nil { |
| 107 | return |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | if len(d.WhereParts) > 0 { |
| 112 | sql.WriteString(" WHERE ") |
| 113 | args, err = appendToSql(d.WhereParts, sql, " AND ", args) |
| 114 | if err != nil { |
| 115 | return |
| 116 | } |
| 117 | } |
| 118 | |
| 119 | if len(d.GroupBys) > 0 { |
| 120 | sql.WriteString(" GROUP BY ") |
| 121 | sql.WriteString(strings.Join(d.GroupBys, ", ")) |
no test coverage detected