diff --git a/src/Common/Library.fs b/src/Common/Library.fs index 8311375..fd2554b 100644 --- a/src/Common/Library.fs +++ b/src/Common/Library.fs @@ -308,6 +308,11 @@ module Query = let parts = it.Name.Split ' ' { it with Name = parts[0] }, Some $" {parts[1]}" else it, None) - |> Seq.map (fun (field, direction) -> field.Path dialect + defaultArg direction "") + |> Seq.map (fun (field, direction) -> + let path = + if dialect = PostgreSQL && field.Name.StartsWith "n:" then + $"({ { field with Name = field.Name[2..] }.Path dialect})::numeric" + else field.Path dialect + path + defaultArg direction "") |> String.concat ", " |> function it -> $" ORDER BY {it}" diff --git a/src/Tests/PostgresTests.fs b/src/Tests/PostgresTests.fs index b930aeb..0a2e3ba 100644 --- a/src/Tests/PostgresTests.fs +++ b/src/Tests/PostgresTests.fs @@ -602,12 +602,12 @@ let integrationTests = Expect.equal results [] "There should have been no documents returned" } ] - testList "allOrdered" [ - ptestTask "succeeds when ordering numerically" { + ftestList "allOrdered" [ + testTask "succeeds when ordering numerically" { use db = PostgresDb.BuildDb() do! loadDocs () - let! results = Find.allOrdered PostgresDb.TableName [ Field.EQ "NumValue" 0 ] + let! results = Find.allOrdered PostgresDb.TableName [ Field.Named "n:NumValue" ] Expect.hasLength results 5 "There should have been 5 documents returned" Expect.equal (results |> List.map _.Id |> String.concat "|")