Skip to content

Commit 4a2004d

Browse files
authored
Merge pull request #1272 from ragb/fix/ltree-hyphen-support
Support hyphens in LTree labels and increase max label length
2 parents d42e571 + 63546cb commit 4a2004d

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

modules/core/shared/src/main/scala/data/LTree.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ object LTree {
3939

4040
labels.foreach(l => l match {
4141
case ValidLabelRegex() => ()
42-
case _ => fail(s"invalid ltree label '$l'. Only alphanumeric characters and '_' are allowed.")
42+
case _ => fail(s"invalid ltree label '$l'. Only alphanumeric characters, '_' and '-' are allowed.")
4343
})
4444

4545
if(failure != null)
@@ -49,11 +49,11 @@ object LTree {
4949
}
5050
}
5151

52-
final val MaxLabelLength = 255
52+
final val MaxLabelLength = 1000
5353
final val MaxTreeLength = 65535
5454

5555
private final val Separator = '.'
56-
private final val ValidLabelRegex = s"""^[\\p{L}0-9_]{1,$MaxLabelLength}$$""".r
56+
private final val ValidLabelRegex = s"""^[\\p{L}0-9_-]{1,$MaxLabelLength}$$""".r
5757

5858
implicit val ltreeEq: Eq[LTree] = Eq.fromUniversalEquals[LTree]
5959
}

modules/tests/shared/src/test/scala/data/LTreeTest.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ class LTreeTest extends ffstest.FTest {
2020
assert(LTree.fromString("abc1.d_f2").isRight, "regex failed")
2121
assert(LTree.fromString("foo.βar.baΣΩ").isRight, "regex failed")
2222
assert(LTree.fromString("foo.βar.❤").isLeft, "regex failed")
23+
assert(LTree.fromString("abc.d-f").isRight, "hyphen in label failed")
24+
assert(LTree.fromString("a-b.c-d.e-f").isRight, "hyphens in multiple labels failed")
2325

2426
assert(LTree.fromString(List.fill(LTree.MaxTreeLength)("a").mkString(".")).isRight, "max tree len failed")
2527
assert(LTree.fromString(List.fill(LTree.MaxTreeLength + 1)("a").mkString(".")).isLeft, "max tree len failed")

0 commit comments

Comments
 (0)