Postgresql正在将参数定义从text [] []更改为text []

时间:2017-12-22 13:42:12

标签: postgresql

我正在创建像

这样的功能
create function a(layers_groups text[][]) returns void as
  $$
  ...
  $$ language plpgsql

当我执行脚本时,postgresql正在将参数定义更改为

create function a(layers_groups text[]) returns void as
      $$
      ...
      $$ language plpgsql

任何人都知道为什么会这样。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我正在做一些研究,它就像来自postgresql docs的@a_horse_with_no_name引用。我相信基于我的测试,postgresql存储和处理来自n维的数组,就像从1维一样。这些是我的测试。

create or REPLACE  FUNCTION f(d text[][]) returns void as
$$
DECLARE
  g text;
BEGIN
  raise notice '%',d[1][1];
  raise notice 'Array iteration'
  FOREACH g in ARRAY d LOOP
    raise notice '%',g;
  END LOOP;

END;
$$ LANGUAGE plpgsql;
select f('{{1,2},{3,4}}')

控制台输出:

1
Array iteration
1
2
3
4