(columns *ColumnList)
| 180 | } |
| 181 | |
| 182 | func BuildSetPreparedClause(columns *ColumnList) (result string, err error) { |
| 183 | if columns.Len() == 0 { |
| 184 | return "", fmt.Errorf("got 0 columns in BuildSetPreparedClause") |
| 185 | } |
| 186 | setTokens := []string{} |
| 187 | for _, column := range columns.Columns() { |
| 188 | var setToken string |
| 189 | if column.timezoneConversion != nil { |
| 190 | setToken = fmt.Sprintf("%s=convert_tz(?, '%s', '%s')", EscapeName(column.Name), column.timezoneConversion.ToTimezone, "+00:00") |
| 191 | } else if column.enumToTextConversion { |
| 192 | setToken = fmt.Sprintf("%s=ELT(?, %s)", EscapeName(column.Name), column.EnumValues) |
| 193 | } else if column.Type == JSONColumnType { |
| 194 | setToken = fmt.Sprintf("%s=convert(? using utf8mb4)", EscapeName(column.Name)) |
| 195 | } else { |
| 196 | setToken = fmt.Sprintf("%s=?", EscapeName(column.Name)) |
| 197 | } |
| 198 | setTokens = append(setTokens, setToken) |
| 199 | } |
| 200 | return strings.Join(setTokens, ", "), nil |
| 201 | } |
| 202 | |
| 203 | func BuildRangeComparison(columns []string, values []string, args []interface{}, comparisonSign ValueComparisonSign) (result string, explodedArgs []interface{}, err error) { |
| 204 | if len(columns) == 0 { |
searching dependent graphs…