将PostgreSQL数组数据类型解析为perl的数组

时间:2011-05-18 12:06:02

标签: arrays perl postgresql

我将PosgreSQL数组数据类型解析为perl时存在一个可移植性问题。

在SUSE Linux 4.3.2和perl v5.10.0上运行PostgreSQL 8.3.7的一台机器上,postgres数组数据类型被解析为perl数组,并在Red Hat 4.1.2-46和perl上运行PostgreSQL 8.4.4的其他机器上v5.8.8将相同的数据类型解析为表示posgres数组的字符串,例如。 '{{4315}}'。在这两种情况下,都使用相同的非常简单的代码。

use DBI;
$dbh = DBI->connect(DBI:pg [...]);
$res = $dbh -> selectall_arrayref(select [...]);

现在的问题是:

如何强制执行一个行为,最好是前者(解析为perl数组)? 这种行为取决于什么? (perl version?driver?postgres settings?,postgres version?)

1 个答案:

答案 0 :(得分:1)

好吧,official docs说你必须将$dbh->{pg_expand_array}设置为真值。

我自己没有检查过。