diff --git a/ext/unicode/unicode.go b/ext/unicode/unicode.go index 4a75aa0..c47ec5f 100644 --- a/ext/unicode/unicode.go +++ b/ext/unicode/unicode.go @@ -45,13 +45,7 @@ func Register(db *sqlite3.Conn) { return } - tag, err := language.Parse(arg[0].Text()) - if err != nil { - ctx.ResultError(err) - return - } - - err = db.CreateCollation(name, collate.New(tag).Compare) + err := RegisterCollation(db, name, arg[0].Text()) if err != nil { ctx.ResultError(err) return @@ -59,6 +53,14 @@ func Register(db *sqlite3.Conn) { }) } +func RegisterCollation(db *sqlite3.Conn, name, lang string) error { + tag, err := language.Parse(lang) + if err != nil { + return err + } + return db.CreateCollation(name, collate.New(tag).Compare) +} + func upper(ctx sqlite3.Context, arg ...sqlite3.Value) { if len(arg) == 1 { ctx.ResultBlob(bytes.ToUpper(arg[0].RawBlob()))