Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
432fb5b8
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
432fb5b8
编写于
8月 19, 2003
作者:
T
Tom Lane
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updates for array documentation, from Joe Conway.
上级
80860c32
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
85 addition
and
23 deletion
+85
-23
doc/src/sgml/array.sgml
doc/src/sgml/array.sgml
+58
-18
doc/src/sgml/func.sgml
doc/src/sgml/func.sgml
+9
-4
doc/src/sgml/syntax.sgml
doc/src/sgml/syntax.sgml
+18
-1
未找到文件。
doc/src/sgml/array.sgml
浏览文件 @
432fb5b8
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/array.sgml,v 1.
29 2003/08/09 22:50:21
tgl Exp $ -->
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/array.sgml,v 1.
30 2003/08/19 06:06:43
tgl Exp $ -->
<sect1 id="arrays">
<title>Arrays</title>
...
...
@@ -162,7 +162,6 @@ ERROR: multidimensional arrays must have array expressions with matching dimens
expression syntax is discussed in more detail in <xref
linkend="sql-syntax-array-constructors">.
</para>
</sect2>
<sect2>
...
...
@@ -326,9 +325,9 @@ UPDATE sal_emp SET pay_by_quarter[1:2] = '{27000,27000}'
<literal>||</literal>.
<programlisting>
SELECT ARRAY[1,2] || ARRAY[3,4];
?column?
-----------
----
{
{1,2},{3,4}
}
?column?
-----------
{
1,2,3,4
}
(1 row)
SELECT ARRAY[5,6] || ARRAY[[1,2],[3,4]];
...
...
@@ -337,27 +336,68 @@ SELECT ARRAY[5,6] || ARRAY[[1,2],[3,4]];
{{5,6},{1,2},{3,4}}
(1 row)
</programlisting>
</para>
<para>
The concatenation operator allows a single element to be pushed on to the
beginning or end of a one-dimensional array. It also accepts two
<replaceable>N</>-dimensional arrays, or an <replaceable>N</>-dimensional
and an <replaceable>N+1</>-dimensional array. In the former case, the two
<replaceable>N</>-dimension arrays become outer elements of an
<replaceable>N+1</>-dimensional array. In the latter, the
<replaceable>N</>-dimensional array is added as either the first or last
outer element of the <replaceable>N+1</>-dimensional array.
When extending an array by concatenation, the subscripts of its existing
elements are preserved. For example, when pushing
onto the beginning of an array with one-based subscripts, the resulting
array has zero-based subscripts:
and an <replaceable>N+1</>-dimensional array.
</para>
<para>
When a single element is pushed on to the beginning of a one-dimensional
array, the result is an array with a lower bound subscript equal to
the righthand operand's lower bound subscript, minus one. When a single
element is pushed on to the end of a one-dimensional array, the result is
an array retaining the lower bound of the lefthand operand. For example:
<programlisting>
SELECT array_dims(1 || ARRAY[2,3]);
array_dims
------------
[0:2]
(1 row)
SELECT array_dims(ARRAY[1,2] || 3);
array_dims
------------
[1:3]
(1 row)
</programlisting>
</para>
<para>
When two arrays with an equal number of dimensions are concatenated, the
result retains the lower bound subscript of the lefthand operand's outer
dimension. The result is an array comprising every element of the lefthand
operand followed by every element of the righthand operand. For example:
<programlisting>
SELECT array_dims(ARRAY[1,2] || ARRAY[3,4,5]);
array_dims
------------
[1:5]
(1 row)
SELECT array_dims(ARRAY[[1,2],[3,4]] || ARRAY[[5,6],[7,8],[9,0]]);
array_dims
------------
[1:5][1:2]
(1 row)
</programlisting>
</para>
<para>
When an <replaceable>N</>-dimensional array is pushed on to the beginning
or end of an <replaceable>N+1</>-dimensional array, the result is
analogous to the element-array case above. Each <replaceable>N</>-dimensional
sub-array is essentially an element of the <replaceable>N+1</>-dimensional
array's outer dimension. For example:
<programlisting>
SELECT array_dims(ARRAY[1,2] || ARRAY[[3,4],[5,6]]);
array_dims
------------
[0:2][1:2]
(1 row)
</programlisting>
</para>
...
...
@@ -386,9 +426,9 @@ SELECT array_append(ARRAY[1,2], 3);
(1 row)
SELECT array_cat(ARRAY[1,2], ARRAY[3,4]);
array_cat
-----------
----
{
{1,2},{3,4}
}
array_cat
-----------
{
1,2,3,4
}
(1 row)
SELECT array_cat(ARRAY[[1,2],[3,4]], ARRAY[5,6]);
...
...
doc/src/sgml/func.sgml
浏览文件 @
432fb5b8
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/func.sgml,v 1.16
7 2003/08/17 04:52:41 momjian
Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/func.sgml,v 1.16
8 2003/08/19 06:06:43 tgl
Exp $
PostgreSQL documentation
-->
...
...
@@ -7032,7 +7032,7 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
<para>
<xref linkend="array-operators-table"> shows the operators
available for
the
<type>array</type> types.
available for <type>array</type> types.
</para>
<table id="array-operators-table">
...
...
@@ -7093,7 +7093,7 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
<entry> <literal>||</literal> </entry>
<entry>array-to-array concatenation</entry>
<entry><literal>ARRAY[1,2,3] || ARRAY[4,5,6]</literal></entry>
<entry><literal>{
{1,2,3},{4,5,6}
}</literal></entry>
<entry><literal>{
1,2,3,4,5,6
}</literal></entry>
</row>
<row>
...
...
@@ -7120,6 +7120,11 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
</tgroup>
</table>
<para>
See <xref linkend="arrays"> for more details about array operator
behavior.
</para>
<para>
<xref linkend="array-functions-table"> shows the functions
available for use with array types. See <xref linkend="arrays">
...
...
@@ -7167,7 +7172,7 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
for <literal>NULL</literal> inputs
</entry>
<entry><literal>array_cat(ARRAY[1,2,3], ARRAY[4,5,6])</literal></entry>
<entry><literal>{
{1,2,3},{4,5,6}
}</literal></entry>
<entry><literal>{
1,2,3,4,5,6
}</literal></entry>
</row>
<row>
<entry>
...
...
doc/src/sgml/syntax.sgml
浏览文件 @
432fb5b8
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/syntax.sgml,v 1.8
2 2003/08/14 23:13:27
tgl Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/syntax.sgml,v 1.8
3 2003/08/19 06:06:48
tgl Exp $
-->
<chapter id="sql-syntax">
...
...
@@ -1270,6 +1270,23 @@ SELECT ARRAY[[1,2],[3,4]];
at the same level must produce sub-arrays of identical dimensions.
</para>
<para>
Multidimensional array constructor elements can be anything yielding
an array of the proper kind, not only a sub-<literal>ARRAY</> construct.
For example:
<programlisting>
create table arr(f1 int[], f2 int[]);
CREATE TABLE
insert into arr values (ARRAY[[1,2],[3,4]],ARRAY[[5,6],[7,8]]);
INSERT 2635544 1
select ARRAY[f1, f2, '{{9,10},{11,12}}'::int[]] from arr;
array
------------------------------------------------
{{{1,2},{3,4}},{{5,6},{7,8}},{{9,10},{11,12}}}
(1 row)
</programlisting>
</para>
<para>
It is also possible to construct an array from the results of a
subquery. In this form, the array constructor is written with the
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录