2022-05-11 22:47:31 +00:00
|
|
|
package database
|
|
|
|
|
2023-05-31 03:52:58 +00:00
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"npm/internal/config"
|
|
|
|
"strings"
|
|
|
|
)
|
|
|
|
|
2022-05-11 22:47:31 +00:00
|
|
|
const (
|
|
|
|
// DateFormat for DateFormat
|
|
|
|
DateFormat = "2006-01-02"
|
|
|
|
// DateTimeFormat for DateTimeFormat
|
|
|
|
DateTimeFormat = "2006-01-02T15:04:05"
|
|
|
|
)
|
2023-05-31 03:52:58 +00:00
|
|
|
|
|
|
|
// QuoteTableName is a special function that will quote a table
|
|
|
|
// name based on the driver. Gorm normally handles this but this
|
|
|
|
// is for special cases where we run raw sql
|
|
|
|
func QuoteTableName(tbl string) string {
|
|
|
|
switch strings.ToLower(config.Configuration.DB.Driver) {
|
|
|
|
case config.DatabasePostgres:
|
|
|
|
return fmt.Sprintf(`"%s"`, tbl)
|
|
|
|
default:
|
|
|
|
// This is the same for Mysql and Sqlite
|
|
|
|
return fmt.Sprintf("`%s`", tbl)
|
|
|
|
}
|
|
|
|
}
|
2023-05-31 05:11:25 +00:00
|
|
|
|
|
|
|
// GetCaseInsensitiveLike returns a different operator based on
|
|
|
|
// the db driver
|
|
|
|
func GetCaseInsensitiveLike() string {
|
|
|
|
switch strings.ToLower(config.Configuration.DB.Driver) {
|
|
|
|
case config.DatabasePostgres:
|
|
|
|
return "ILIKE"
|
|
|
|
default:
|
|
|
|
return "LIKE"
|
|
|
|
}
|
|
|
|
}
|