Skip to content

Commit 785dffe

Browse files
authored
Merge pull request #874 from lucianojoublanc-da/main
Add cases for sql EXPLAIN command, and a unit test.
2 parents 2eb6655 + 7311c7b commit 785dffe

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ object Completion {
6060
case object AlterTrigger extends Completion
6161
case object DropTrigger extends Completion
6262
case object SetConstraints extends Completion
63+
case object Explain extends Completion
6364
// more ...
6465

6566
/**

modules/core/shared/src/main/scala/net/message/CommandComplete.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ object CommandComplete {
9898
case Patterns.Insert(s) => apply(Completion.Insert(s.drop(2).toInt))
9999
case Patterns.Copy(s) => apply(Completion.Copy(s.toInt))
100100
case "SET CONSTRAINTS" => apply(Completion.SetConstraints)
101+
case "EXPLAIN" => apply(Completion.Explain)
101102
// more .. fill in as we hit them
102103

103104
case s => apply(Completion.Unknown(s))

modules/tests/shared/src/test/scala/QueryTest.scala

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// This software is licensed under the MIT License (MIT).
33
// For more information see LICENSE or https://opensource.org/licenses/MIT
44

5-
package test
5+
package tests
66

77
import skunk._
88
import skunk.codec.all._
@@ -132,4 +132,13 @@ class QueryTest extends SkunkTest {
132132
}
133133
} yield "ok"
134134
}
135+
136+
sessionTest("explain query") { s =>
137+
for {
138+
c <- s.unique(sql"""EXPLAIN SELECT * FROM city""".query(skunk.codec.all.text))
139+
_ <- assert("completion", c.startsWith("Seq Scan on city"))
140+
_ <- s.assertHealthy
141+
} yield "ok"
142+
}
143+
135144
}

0 commit comments

Comments
 (0)