From be7b9ac021735a1bded04576be931c00a9a44f61 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Sat, 8 Aug 2026 17:15:38 +0800 Subject: [PATCH] fix(highgo): preserve public functions in schema queries Closes #5617 --- .../src/main/java/com/dbx/agent/highgo/HighgoAgent.java | 8 ++++++++ .../test/java/com/dbx/agent/highgo/HighgoAgentTest.java | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/agents/drivers/highgo/src/main/java/com/dbx/agent/highgo/HighgoAgent.java b/agents/drivers/highgo/src/main/java/com/dbx/agent/highgo/HighgoAgent.java index 58c3be310..07f8535ab 100644 --- a/agents/drivers/highgo/src/main/java/com/dbx/agent/highgo/HighgoAgent.java +++ b/agents/drivers/highgo/src/main/java/com/dbx/agent/highgo/HighgoAgent.java @@ -14,6 +14,14 @@ public final class HighgoAgent extends PostgresLikeAgent { super(HIGHGO_PROFILE); } + @Override + public String setSchemaSQL(String schema) { + if ("public".equals(schema)) { + return super.setSchemaSQL(schema); + } + return super.setSchemaSQL(schema) + ", public"; + } + public static void main(String[] args) { new MultiSessionJsonRpcServer(HighgoAgent::new).run(); } diff --git a/agents/drivers/highgo/src/test/java/com/dbx/agent/highgo/HighgoAgentTest.java b/agents/drivers/highgo/src/test/java/com/dbx/agent/highgo/HighgoAgentTest.java index a7928ecf9..8203b9a9f 100644 --- a/agents/drivers/highgo/src/test/java/com/dbx/agent/highgo/HighgoAgentTest.java +++ b/agents/drivers/highgo/src/test/java/com/dbx/agent/highgo/HighgoAgentTest.java @@ -28,6 +28,15 @@ class HighgoAgentTest extends JdbcFakeExecutionBehaviorTest { Assertions.assertEquals("jdbc:highgo://{host}:{port}/{database}", agent.getProfile().getUrlTemplate()); } + @Test + void preservesPublicFunctionsWhenSwitchingSchemas() { + HighgoAgent agent = new HighgoAgent(); + + Assertions.assertEquals("SET search_path TO \"app\", public", agent.setSchemaSQL("app")); + Assertions.assertEquals("SET search_path TO \"public\"", agent.setSchemaSQL("public")); + Assertions.assertEquals("SET search_path TO \"PUBLIC\", public", agent.setSchemaSQL("PUBLIC")); + } + @Test void readsViewSourceWithQuotedRegclassParameter() { HighgoAgent agent = new HighgoAgent();