signoz/pkg/sqlschema/formatter.go
Vibhu Pandey c9e48b6de9
feat(sqlschema): add sqlschema (#8384)
## 📄 Summary

- add sqlschema package
- add unique index on email,org_id in users and user_invite
2025-07-08 00:21:26 +05:30

50 lines
1.1 KiB
Go

package sqlschema
import (
"strings"
"github.com/SigNoz/signoz/pkg/valuer"
"github.com/uptrace/bun/schema"
)
var _ SQLFormatter = (*Formatter)(nil)
type Formatter struct {
bunf schema.Formatter
}
func NewFormatter(dialect schema.Dialect) Formatter {
return Formatter{bunf: schema.NewFormatter(dialect)}
}
func (formatter Formatter) SQLDataTypeOf(dataType DataType) string {
return strings.ToUpper(dataType.String())
}
func (formatter Formatter) DataTypeOf(dataType string) DataType {
switch strings.ToUpper(dataType) {
case "TEXT":
return DataTypeText
case "BIGINT":
return DataTypeBigInt
case "INTEGER":
return DataTypeInteger
case "NUMERIC":
return DataTypeNumeric
case "BOOLEAN":
return DataTypeBoolean
case "TIMESTAMP":
return DataTypeTimestamp
default:
return DataType{s: valuer.NewString(dataType)}
}
}
func (formatter Formatter) AppendIdent(b []byte, ident string) []byte {
return formatter.bunf.AppendIdent(b, ident)
}
func (formatter Formatter) AppendValue(b []byte, v any) []byte {
return schema.Append(formatter.bunf, b, v)
}