summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/dialect/feature/feature.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/uptrace/bun/dialect/feature/feature.go')
-rw-r--r--vendor/github.com/uptrace/bun/dialect/feature/feature.go58
1 files changed, 57 insertions, 1 deletions
diff --git a/vendor/github.com/uptrace/bun/dialect/feature/feature.go b/vendor/github.com/uptrace/bun/dialect/feature/feature.go
index 0707c6f88..89693fc21 100644
--- a/vendor/github.com/uptrace/bun/dialect/feature/feature.go
+++ b/vendor/github.com/uptrace/bun/dialect/feature/feature.go
@@ -1,6 +1,11 @@
package feature
-import "github.com/uptrace/bun/internal"
+import (
+ "fmt"
+ "strconv"
+
+ "github.com/uptrace/bun/internal"
+)
type Feature = internal.Flag
@@ -35,4 +40,55 @@ const (
UpdateOrderLimit // UPDATE ... ORDER BY ... LIMIT ...
DeleteOrderLimit // DELETE ... ORDER BY ... LIMIT ...
DeleteReturning
+ AlterColumnExists // ADD/DROP COLUMN IF NOT EXISTS/IF EXISTS
)
+
+type NotSupportError struct {
+ Flag Feature
+}
+
+func (err *NotSupportError) Error() string {
+ name, ok := flag2str[err.Flag]
+ if !ok {
+ name = strconv.FormatInt(int64(err.Flag), 10)
+ }
+ return fmt.Sprintf("bun: feature %s is not supported by current dialect", name)
+}
+
+func NewNotSupportError(flag Feature) *NotSupportError {
+ return &NotSupportError{Flag: flag}
+}
+
+var flag2str = map[Feature]string{
+ CTE: "CTE",
+ WithValues: "WithValues",
+ Returning: "Returning",
+ InsertReturning: "InsertReturning",
+ Output: "Output",
+ DefaultPlaceholder: "DefaultPlaceholder",
+ DoubleColonCast: "DoubleColonCast",
+ ValuesRow: "ValuesRow",
+ UpdateMultiTable: "UpdateMultiTable",
+ InsertTableAlias: "InsertTableAlias",
+ UpdateTableAlias: "UpdateTableAlias",
+ DeleteTableAlias: "DeleteTableAlias",
+ AutoIncrement: "AutoIncrement",
+ Identity: "Identity",
+ TableCascade: "TableCascade",
+ TableIdentity: "TableIdentity",
+ TableTruncate: "TableTruncate",
+ InsertOnConflict: "InsertOnConflict",
+ InsertOnDuplicateKey: "InsertOnDuplicateKey",
+ InsertIgnore: "InsertIgnore",
+ TableNotExists: "TableNotExists",
+ OffsetFetch: "OffsetFetch",
+ SelectExists: "SelectExists",
+ UpdateFromTable: "UpdateFromTable",
+ MSSavepoint: "MSSavepoint",
+ GeneratedIdentity: "GeneratedIdentity",
+ CompositeIn: "CompositeIn",
+ UpdateOrderLimit: "UpdateOrderLimit",
+ DeleteOrderLimit: "DeleteOrderLimit",
+ DeleteReturning: "DeleteReturning",
+ AlterColumnExists: "AlterColumnExists",
+}