PostgreSQL 11 和 12 的 PL/Java 替代方案是啥?

Posted

技术标签:

【中文标题】PostgreSQL 11 和 12 的 PL/Java 替代方案是啥?【英文标题】:What is the alternative of PL/Java for PostgreSQL 11 and 12?PostgreSQL 11 和 12 的 PL/Java 替代方案是什么? 【发布时间】:2021-09-15 16:28:22 【问题描述】:

了解来自:https://www.enterprisedb.com/edb-docs/d/edb-postgres-advanced-server/user-guides/user-guide/11/EDB_Postgres_Advanced_Server_Guide.1.80.html

PL/Java 在 Advanced Server 11 中已弃用,将在服务器版本 12 或更高版本中不可用。

请问:

    在 PostgreSQL12 中推荐的 PL/Java 替代品是什么? 对于我在 PostgreSQL 9.6.x 等中使用 PL/Java 的现有 UDF,我如何才能迁移到 PostgreSQL 12?

提前致谢。

【问题讨论】:

【参考方案1】:

编辑:想想看,2020 年 9 月 (PL/Java issue 260) 报告了一个关于未能针对 EDB PostgreSQL 11 构建的问题。事实证明,EDB 对上游 PostgreSQL 进行了 API 破坏性更改,通过更改 API 函数并仅留下具有旧名称的宏,而不是可以处理的(可能是 inline-qualified)包装器。

这最终需要在 PL/Java 中提供特定于 EDB 的解决方法,并且自 PL/Java 1.6.0 和自 PL/Java 1.5 以来已包含该修复程序。 6,均于 2020 年 10 月发布。


很抱歉之前没有看到这个问题。

我维护 PL/Java,我没有收到 EDB 的通知,说明他们为何弃用它。也许他们根本不再提供他们预先构建的二进制包。

我知道 PL/Java 与 PostgreSQL 12 和 13 一起使用。我相信要从源代码构建它以用于 EDB,它应该使用 Visual Studio 构建,遵循these instructions。

如果您能够从 EDB 了解更多关于弃用的信息,或者如果您从源代码构建有任何困难,请随时 open an issue。谢谢!

【讨论】:

以上是关于PostgreSQL 11 和 12 的 PL/Java 替代方案是啥?的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 初始化版本 12 与 11.14 不兼容

Postgresql 8.4 和 BitDefender 11

19-11 新闻:gitlab放弃mysql,仅支持PostgreSQL

QQ 邮箱漂流瓶正式关闭;PostgreSQL 为 6 版本发布安全更新

连接到较旧的 Postgresql 数据库

PostgreSQL 13.312.711.1210.17和9.6.22发布了!