feat(lagoon): per-query collation for OrderBy, drop the database locale check

- lagoon.OrderBy takes variadic lagoon.OrderOption values; lagoon.Collate(name)
  emits a validated, double-quoted COLLATE clause (e.g. "pl-x-icu")
- remove the exported CheckLocale and the ICU pl-PL check from Open and Use
- framework test containers and per-test databases are plain PostgreSQL
- lagoon README, root README and docs pages drop the locale requirement;
  queries-and-pagination gains a "Sorting with a collation" section
  backed by ExampleCollate
This commit is contained in:
Jakub Zych
2026-10-01 09:51:03 +02:00
parent 565ce982d9
commit 037dc53030
22 changed files with 344 additions and 168 deletions

View File

@@ -39,22 +39,6 @@ func TestHistoryTableName(t *testing.T) {
}
}
func TestCheckLocaleMessage(t *testing.T) {
if err := checkLocale("i", "pl-PL"); err != nil {
t.Fatal(err)
}
err := checkLocale("c", "en_US")
if err == nil {
t.Fatal("want locale error")
}
msg := err.Error()
for _, want := range []string{"ICU", "pl-PL", "CREATE DATABASE", "LOCALE_PROVIDER icu", "en_US"} {
if !strings.Contains(msg, want) {
t.Fatalf("missing %q in %s", want, msg)
}
}
}
func TestRuntimeCommandsRegisterBareAndColonNames(t *testing.T) {
cmds := RuntimeCommands(nil, nil)
names := map[string]bool{}