问题标签 [plv8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
166 浏览

postgresql - 从 plv8 访问 PostGIS 函数

我正在尝试编写一个 plv8 函数,该函数返回一个表示 UTM 区域值的整数。该函数利用 PostGIS 函数。这是(不起作用的)想法:

调用该功能时,我得到

ERROR: ReferenceError: st_transform is not defined

我如何能够从 plv8 内部访问这些 PostGIS 功能?

编辑: PostGIS 已安装并在此数据库中运行。 在此处输入图像描述

0 投票
1 回答
768 浏览

postgresql - 如何插入复合类型plv8

我创建了一个带有复合类型数组的 db 结构。我想使用 plv8 插入一些值,但我找不到正确的结构来插入这个数组。

我得到的错误是:

我知道用 ARRAY[ROW()] 插入是可行的,但是我必须制作一个必须插入的整个数组的长字符串。下面是我制作的结构和我尝试过的插入。用 plv8 插入这个数组/对象的正确方法是什么?

0 投票
0 回答
395 浏览

postgresql - Heroku 和 plv8 支持错误

我想在 heroku 上使用 plv8 扩展。我按照官方教程进行操作,但是当我连接到 heroku 上的 psql 控制台并尝试添加扩展名时:

我收到以下错误:

我通过 bash 连接到我的 heroku 应用程序来检查位置,但该文件不可用。我也无法创建它,因为它是一个只读文件系统。

我已经购买了使用 plv8 的先决条件的标准 0 计划。当我输入:

我得到:

这表明 plv8 可作为扩展使用。

现在的问题是,是否有人已经在 heroku 上成功启用 plv8 以及如何启用?

提前感谢您的所有帮助。

0 投票
1 回答
400 浏览

windows - postgresql 中的 pvl8.control 文件不存在

我正在尝试执行一个 ./run 语句,但是当我尝试执行它时,我得到了这个错误:

错误:无法打开扩展控制文件“C:/Program Files/PostgreSQL/9.4/share/extension/plv8.control”:没有这样的文件或目录

这个问题与postgresql的版本有关吗?

0 投票
0 回答
92 浏览

postgresql - 事务中的postgres内存问题

我们有一个 postgres 进程,其工作方式如下:-

1) CSV 文件拆分成一个表,每条记录一行

2) pagent 运行一个 postgres 函数,该函数读取每条记录并将其作为新记录或更新写入新表

3)触发器在新表上运行,并根据记录值运行 plv8 函数来更新其数据(涉及相当多的 json 处理,plv8 是最简单的编码方法)。第二次更新来自 plv8,我们使用了以下模式:-

当我们监控这一点时,我们看到处理 5000 条记录使用 14Gb 的虚拟内存。所以有些事情是错误的,因为 CSV 记录的大小小于 1k。在我们向表中添加新索引后,这种情况变得很严重。

我们应该在哪里寻找解决方案?它是否正常,是否与事务中正在更新的索引或其他因素相关联。

0 投票
1 回答
1014 浏览

postgresql - 在 PostgreSQL 中调试 PLV8

前段时间我询问了在 PostgreSQL 函数和触发器中使用 PLV8 的缺点。与此同时,我使用 plpgSQL 的混合 szenario 并喜欢它。但是 - 如前所述 - PLV8 的调试选项较少。到目前为止,我了解 plugin_debugger 仅适用于 plpgSQL。外面有没有人找到一种很好的方法来以另一种方式进行 PLV8 调试,然后使用大量烦人的东西plv8.elog(NOTICE, 'this happens with my variable')?也许任何第三方工具或秘密插件?

0 投票
1 回答
118 浏览

java - 如何在每次查询之前调用额外的 SQL?

我有一个使用 plv8 引擎的数据库,并且有用 coffescript 编写的存储过程。

当我使用 jDBI 时,为了调用这些程序,在我打开连接后我必须运行:

将 JOOQ 与 javax.sql.DataSource 一起使用时,我可以做类似的事情吗?

0 投票
0 回答
406 浏览

javascript - 如何从 JavaScript 数组创建 BYTEA?

如何从 JavaScript 数组创建 BYTEA?根据PL/V8 doc JS 数组应该被转换为 BYTEA 但它没有发生在我身上。

例如考虑以下功能

它返回看起来像这样的 28 (!!!) 字节

E'\\x020000400800009008000010200000000080FF00200000000080FE00'

在 Amazon RDS 上使用 Postgresql 9.5 和 PLV8 1.4.3 进行测试

我错过了什么?

更新:

看起来我知道它是如何创建 BYTEA 的。例如对于这个函数

它产生 E'\\x0A000040 01000080 01000000 01000000 01000000 01000000 01000000 01000000 01000000 01000000 01000000 20202020202020202020';

所以它包含第一个 DWORD 的低字节长度(由于某种原因,高字节中有 0x40),后面是 0x80000001,然后Len-1是 0x1 的副本。然后是实际源字符串的字节。

0 投票
0 回答
94 浏览

postgresql - 函数内部基于函数的查询和函数调用的性能和索引使用情况

我正在尝试提高 PostgreSQL 函数和函数内部函数调用的性能。

在我们的应用程序中,PostgreSQL (9.6) 查询完全基于函数。例如,为了获取大量“项目”,可能会使用如下几行代码:

你看,在内部SELECT,除了一些简单的字段之外,还有另一个函数调用。这些内部函数通常基于 plv8 并包含大量 JavaScript 逻辑,包括数据库查询。一个示例可能如下所示:

抛开这个设计是否有意义的问题,问题是:如何提高性能?

像 item_status 这样的函数返回的数据非常稳定,所以将它放入索引可能是有意义的,但我不知道如何。

使用的 PostgreSQL 版本是 9.6。

0 投票
3 回答
4678 浏览

postgresql - 无法创建扩展 plv8 postgresql

安装 postgres 后,无法创建扩展 plv8。

我正在使用:CREATE EXTENSION plv8;

我越来越:

postgres 版本:9.6.2 pgAdmin4 版本:1.4

如何安装plv8?