forked from openGauss-Ecosystem/openGauss-server
Compare commits
259 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
5c97f84e91 | |
|
|
68447494a4 | |
|
|
2951c00316 | |
|
|
f2b1038e12 | |
|
|
e9310d2976 | |
|
|
7029e5f016 | |
|
|
88e9160ad0 | |
|
|
404009bab0 | |
|
|
46134f7305 | |
|
|
5f6c9616a6 | |
|
|
f5c8dfd75b | |
|
|
fd2d247b4c | |
|
|
38973b0519 | |
|
|
a393a0988a | |
|
|
eb6f124dee | |
|
|
1a512ca82d | |
|
|
8106e23629 | |
|
|
2142246c60 | |
|
|
f6cd6f650e | |
|
|
bd163157ad | |
|
|
6584b8ff9e | |
|
|
47d345bc83 | |
|
|
3791143129 | |
|
|
1eee74fc30 | |
|
|
4d1c7b1a82 | |
|
|
6ffadffa5c | |
|
|
eec3c1d634 | |
|
|
c7e3c702a2 | |
|
|
98fc84f790 | |
|
|
d1cb9a377f | |
|
|
a7daf5ac3e | |
|
|
bad6703ab1 | |
|
|
692cd93a19 | |
|
|
ccd3eceecc | |
|
|
e8a0efc9c0 | |
|
|
cccbdebfbf | |
|
|
54e8b987b2 | |
|
|
5e0f4cdc3b | |
|
|
9e884c1073 | |
|
|
3276228499 | |
|
|
a0c190f19b | |
|
|
f87c380fea | |
|
|
84801fc880 | |
|
|
f33c2bca58 | |
|
|
1d0cca0689 | |
|
|
cd329d4636 | |
|
|
feb32b6c04 | |
|
|
fb6329d9d6 | |
|
|
a0fae7338c | |
|
|
41125fd93d | |
|
|
d9c1282ff4 | |
|
|
044f55ab0b | |
|
|
3aa0d7736a | |
|
|
fecdeb4f99 | |
|
|
ff7124c0bd | |
|
|
76491de228 | |
|
|
f916fcd84e | |
|
|
38802d405a | |
|
|
1a6ee507cc | |
|
|
7552d5a3a7 | |
|
|
e52a1eb067 | |
|
|
ddd954bd3c | |
|
|
0413e7f1b0 | |
|
|
df6a619b4c | |
|
|
897ea8b9fb | |
|
|
e39c152f65 | |
|
|
62e42c25d3 | |
|
|
cd1b328e22 | |
|
|
8922430919 | |
|
|
b4c82fb41c | |
|
|
6346315bfe | |
|
|
baa1414993 | |
|
|
90c8169f18 | |
|
|
06d4c6ee4a | |
|
|
66244cdee0 | |
|
|
01bc7a3f5d | |
|
|
63080b2d37 | |
|
|
c5e88b3be7 | |
|
|
800396f61b | |
|
|
2e691bd9cd | |
|
|
4d633b8364 | |
|
|
cd9f6b490c | |
|
|
7c57e5975b | |
|
|
a976745182 | |
|
|
e0241f088b | |
|
|
3afb086f4d | |
|
|
a81495043c | |
|
|
2544f59021 | |
|
|
653b534bd2 | |
|
|
f042f6fe7c | |
|
|
288cd473c3 | |
|
|
a1559e3e8b | |
|
|
7335c381a7 | |
|
|
40e02971c2 | |
|
|
a53d22a0ad | |
|
|
dc21219e6d | |
|
|
c1e1948931 | |
|
|
6b32ac9484 | |
|
|
3f7bf26194 | |
|
|
1894187ba7 | |
|
|
2a078bf0b8 | |
|
|
a45bfae25a | |
|
|
39e0320615 | |
|
|
7d3b2c03c3 | |
|
|
0c469e5f2a | |
|
|
e7a99b76c1 | |
|
|
79de533005 | |
|
|
0039280728 | |
|
|
332fc7da41 | |
|
|
92dfe1863e | |
|
|
74914a8da7 | |
|
|
b53f15e104 | |
|
|
55cebcb77f | |
|
|
6095f81310 | |
|
|
bffa58e13e | |
|
|
2e621a804f | |
|
|
f53c24ea8b | |
|
|
3a9585c0b0 | |
|
|
c8f5943251 | |
|
|
3c344a205f | |
|
|
9b108988a6 | |
|
|
15060bf00f | |
|
|
4c8204e7f4 | |
|
|
3a848f7323 | |
|
|
7efcd00a66 | |
|
|
44a75e3e28 | |
|
|
6530335e38 | |
|
|
e621c4edd7 | |
|
|
227d200aba | |
|
|
9a805c2eef | |
|
|
0c77d0027e | |
|
|
12ba820996 | |
|
|
bf074c9975 | |
|
|
e883989fb2 | |
|
|
8437e63439 | |
|
|
ed8c0638ff | |
|
|
f2fa1e1ba1 | |
|
|
b992e1957e | |
|
|
2798e7d19e | |
|
|
88ed60395a | |
|
|
54d7584191 | |
|
|
be6071eebd | |
|
|
46b4dac18d | |
|
|
a0260b81fb | |
|
|
3be0488ab1 | |
|
|
9b7170c6c1 | |
|
|
28270e72ed | |
|
|
2f29eeae78 | |
|
|
20c4bf07fe | |
|
|
25cbdcf6ce | |
|
|
6f091037b2 | |
|
|
a8f77a4678 | |
|
|
552ee3298a | |
|
|
683d8be157 | |
|
|
430acfbd84 | |
|
|
e605dc5aba | |
|
|
04a116ea22 | |
|
|
ad7eb165cf | |
|
|
fbf4fc2861 | |
|
|
616cf713ff | |
|
|
12da7491f1 | |
|
|
f1d24398d4 | |
|
|
afdf9b9858 | |
|
|
d2bcd8ca96 | |
|
|
8179d400ae | |
|
|
0a568bd991 | |
|
|
aaac084d7f | |
|
|
1ead26832f | |
|
|
96c50c0a81 | |
|
|
3cfa51a9c1 | |
|
|
5d67447ae3 | |
|
|
654e407446 | |
|
|
4f106fe8a3 | |
|
|
28c087e456 | |
|
|
ee99e11525 | |
|
|
f3d1def27a | |
|
|
4ce17d47de | |
|
|
cbeba1779e | |
|
|
52d009c6ae | |
|
|
70838dbbab | |
|
|
714954a06f | |
|
|
50db19b62c | |
|
|
a7dae44b62 | |
|
|
6fc31000c6 | |
|
|
b11082c4af | |
|
|
7ab4eebf6a | |
|
|
e911707543 | |
|
|
89b6c03df0 | |
|
|
96a41cfdd8 | |
|
|
5df7418564 | |
|
|
4bfd4765e0 | |
|
|
f5b5da8c00 | |
|
|
6736b6e2bf | |
|
|
d895a5767c | |
|
|
4e60932817 | |
|
|
c63a880e8a | |
|
|
dc5fc6299d | |
|
|
e1c5cb8c73 | |
|
|
a1c81e7ce5 | |
|
|
301ac8502e | |
|
|
cdd0841585 | |
|
|
d69e333d76 | |
|
|
dee07756d5 | |
|
|
324994809b | |
|
|
a5554872c0 | |
|
|
6d9302928f | |
|
|
ae26a4b680 | |
|
|
f70512b3e1 | |
|
|
9fae85b375 | |
|
|
88a0533c0b | |
|
|
9dfce8735a | |
|
|
6939022cdf | |
|
|
6bc3fae656 | |
|
|
17049c589d | |
|
|
f28c85bb15 | |
|
|
e266ff1896 | |
|
|
9a1542b4ab | |
|
|
c62aa81f3e | |
|
|
998f4a0fa6 | |
|
|
8bca669066 | |
|
|
ee791bd720 | |
|
|
8a2b19a1cf | |
|
|
07d4a897dd | |
|
|
b1377ef6a4 | |
|
|
5d64306497 | |
|
|
90433cd603 | |
|
|
b95ba5bc17 | |
|
|
8b7319f2cf | |
|
|
30971ad56e | |
|
|
56d56689dc | |
|
|
1ce0d3bc9a | |
|
|
c86cd03855 | |
|
|
705a139012 | |
|
|
a6ff7b5fff | |
|
|
4b966bc1cb | |
|
|
40612feeac | |
|
|
fb013d16f6 | |
|
|
5ee0248876 | |
|
|
b3e4d5a60d | |
|
|
43a3b0b2db | |
|
|
a493c304c4 | |
|
|
127a821823 | |
|
|
1e8931d6e4 | |
|
|
6b5e8d599a | |
|
|
c17ac270e8 | |
|
|
1e46d1b4ca | |
|
|
c85eab2542 | |
|
|
8fc10a08b1 | |
|
|
87ff1d3c76 | |
|
|
6e6eb8708c | |
|
|
f8003325cb | |
|
|
707f627e9c | |
|
|
8793cac1c6 | |
|
|
f1ab25ed55 | |
|
|
c6cf59f29f | |
|
|
36e8a88c7a | |
|
|
a5410b7f86 | |
|
|
c711c7dc5f | |
|
|
3bea35e8c1 |
|
|
@ -52,7 +52,6 @@ set(PROJECT_OPENGS_DIR ${PROJECT_TRUNK_DIR}/${openGauss} CACHE INTERNAL "")
|
|||
set(PROJECT_SRC_DIR ${PROJECT_OPENGS_DIR}/src CACHE INTERNAL "")
|
||||
|
||||
set(3RD_PATH $ENV{THIRD_BIN_PATH})
|
||||
execute_process(COMMAND sh ${PROJECT_SRC_DIR}/get_PlatForm_str.sh OUTPUT_VARIABLE PLAT_FORM_NAME OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(prefix_home $ENV{PREFIX_HOME})
|
||||
set(CMAKE_INSTALL_PREFIX ${prefix_home} CACHE INTERNAL "")
|
||||
if("$ENV{GCC_VERSION}" STREQUAL "")
|
||||
|
|
@ -67,9 +66,9 @@ if("${GCC_VERSION}" STREQUAL "7.3.0")
|
|||
set(GCC_VERSION_LIT 7.3)
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND uname -p OUTPUT_VARIABLE CURRENT_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if("$ENV{BUILD_TUPLE}" STREQUAL "")
|
||||
execute_process(COMMAND uname -p OUTPUT_VARIABLE CURRENT_TUPLE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(BUILD_TUPLE ${CURRENT_TUPLE})
|
||||
set(BUILD_TUPLE ${CURRENT_ARCH})
|
||||
else()
|
||||
set(BUILD_TUPLE $ENV{BUILD_TUPLE})
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -152,16 +152,6 @@ redochecksmall: all
|
|||
|
||||
redischeck: all
|
||||
|
||||
dfsredischeck: all
|
||||
|
||||
orccheckxian: all
|
||||
|
||||
orccheckusa: all
|
||||
|
||||
orcchecksmall: all
|
||||
|
||||
dfscheck: all
|
||||
|
||||
obscheck: all
|
||||
|
||||
obsorccheck: all
|
||||
|
|
@ -170,7 +160,7 @@ securitycheck: all
|
|||
|
||||
parquetchecksmall: all
|
||||
|
||||
check fastcheck fastcheck_inplace fastcheck_parallel_initdb qunitcheck redischeck redocheck redochecksmall orccheckxian orccheckusa orcchecksmall parquetchecksmall dfscheck obscheck obsorccheck securitycheck dfsredischeck installcheck installcheck-parallel 2pccheck:
|
||||
check fastcheck fastcheck_inplace fastcheck_parallel_initdb qunitcheck redischeck redocheck redochecksmall orccheckxian orccheckusa orcchecksmall parquetchecksmall obscheck obsorccheck securitycheck installcheck installcheck-parallel 2pccheck:
|
||||
$(MAKE) -C $(root_builddir)/distribute/test/regress $@
|
||||
|
||||
#llt include all low level test
|
||||
|
|
|
|||
|
|
@ -82,23 +82,13 @@ redochecksmall: all
|
|||
|
||||
redischeck: all
|
||||
|
||||
dfsredischeck: all
|
||||
|
||||
orccheckxian: all
|
||||
|
||||
orccheckusa: all
|
||||
|
||||
orcchecksmall: all
|
||||
|
||||
dfscheck: all
|
||||
|
||||
obscheck: all
|
||||
|
||||
obsorccheck: all
|
||||
|
||||
securitycheck: all
|
||||
|
||||
check fastcheck fastcheck_inplace fastcheck_parallel_initdb qunitcheck redischeck redocheck redochecksmall orccheckxian orccheckusa orcchecksmall dfscheck obscheck obsorccheck securitycheck dfsredischeck installcheck installcheck-parallel 2pccheck:
|
||||
check fastcheck fastcheck_inplace fastcheck_parallel_initdb qunitcheck redischeck redocheck redochecksmall orccheckxian orccheckusa orcchecksmall obscheck obsorccheck securitycheck installcheck installcheck-parallel 2pccheck:
|
||||
$(MAKE) -C src/test/regress $@
|
||||
|
||||
#llt include all low level test
|
||||
|
|
|
|||
|
|
@ -41,12 +41,11 @@
|
|||
./share/postgresql/extension/file_fdw.control
|
||||
./share/postgresql/extension/hstore--unpackaged--1.0.sql
|
||||
./share/postgresql/extension/hstore--1.0--1.1.sql
|
||||
./share/postgresql/extension/hdfs_fdw--1.0.sql
|
||||
./share/postgresql/extension/hdfs_fdw.control
|
||||
./share/postgresql/extension/log_fdw--1.0.sql
|
||||
./share/postgresql/extension/log_fdw.control
|
||||
./share/postgresql/extension/postgres_fdw--1.0.sql
|
||||
./share/postgresql/extension/postgres_fdw.control
|
||||
./share/postgresql/extension/packages--1.0.sql
|
||||
./share/postgresql/extension/packages--1.0--1.1.sql
|
||||
./share/postgresql/extension/packages.control
|
||||
./share/postgresql/timezone/GB-Eire
|
||||
./share/postgresql/timezone/Turkey
|
||||
./share/postgresql/timezone/Kwajalein
|
||||
|
|
@ -618,6 +617,23 @@
|
|||
./share/postgresql/timezone/Asia/Yakutsk
|
||||
./share/postgresql/timezone/Asia/Magadan
|
||||
./share/postgresql/timezone/Asia/Amman
|
||||
./share/postgresql/timezone/Asia/Barnaul
|
||||
./share/postgresql/timezone/Asia/Chita
|
||||
./share/postgresql/timezone/Asia/Tomsk
|
||||
./share/postgresql/timezone/Asia/Atyrau
|
||||
./share/postgresql/timezone/Asia/Famagusta
|
||||
./share/postgresql/timezone/Asia/Qostanay
|
||||
./share/postgresql/timezone/Asia/Srednekolymsk
|
||||
./share/postgresql/timezone/Asia/Yangon
|
||||
./share/postgresql/timezone/Pacific/Bougainville
|
||||
./share/postgresql/timezone/Antarctica/Troll
|
||||
./share/postgresql/timezone/Europe/Astrakhan
|
||||
./share/postgresql/timezone/Europe/Ulyanovsk
|
||||
./share/postgresql/timezone/Europe/Kirov
|
||||
./share/postgresql/timezone/Europe/Saratov
|
||||
./share/postgresql/timezone/America/Fort_Nelson
|
||||
./share/postgresql/timezone/America/Nuuk
|
||||
./share/postgresql/timezone/America/Punta_Arenas
|
||||
./share/postgresql/timezone/Asia/Kuching
|
||||
./share/postgresql/timezone/Asia/Novosibirsk
|
||||
./share/postgresql/timezone/Asia/Seoul
|
||||
|
|
@ -634,6 +650,7 @@
|
|||
./share/postgresql/timezone/Navajo
|
||||
./share/postgresql/timezone/GMT
|
||||
./share/postgresql/system_views.sql
|
||||
./share/postgresql/private_system_views.sql
|
||||
./share/postgresql/performance_views.sql
|
||||
./share/postgresql/sql_features.txt
|
||||
./share/postgresql/pg_cast_oid.txt
|
||||
|
|
@ -673,7 +690,6 @@
|
|||
./share/postgresql/timezonesets/Etc.txt
|
||||
./share/postgresql/postgres.bki
|
||||
./share/sslcert/gsql/openssl.cnf
|
||||
./share/sslcert/grpc/openssl.cnf
|
||||
./lib/libnuma.so
|
||||
./lib/libnuma.so.1
|
||||
./lib/libnuma.so.1.0.0
|
||||
|
|
@ -686,18 +702,16 @@
|
|||
./lib/libcrypto.so.1.1
|
||||
./lib/libcgroup.so
|
||||
./lib/libcgroup.so.1
|
||||
./lib/libz.so
|
||||
./lib/libz.so.1
|
||||
./lib/libz.so.1.2.11
|
||||
./lib/libz.so*
|
||||
./lib/liblz4.so
|
||||
./lib/liblz4.so.1
|
||||
./lib/liblz4.so.1.9.2
|
||||
./lib/liblz4.so.1.9.3
|
||||
./lib/libcjson.so
|
||||
./lib/libcjson.so.1
|
||||
./lib/libcjson.so.1.7.14
|
||||
./lib/libcjson.so.1.7.15
|
||||
./lib/libcjson_utils.so
|
||||
./lib/libcjson_utils.so.1
|
||||
./lib/libcjson_utils.so.1.7.14
|
||||
./lib/libcjson_utils.so.1.7.15
|
||||
./lib/libstdc++.so.6
|
||||
./lib/libgcc_s.so.1
|
||||
./lib/libgomp.so
|
||||
|
|
@ -729,6 +743,7 @@
|
|||
./lib/postgresql/utf8_and_sjis.so
|
||||
./lib/postgresql/utf8_and_cyrillic.so
|
||||
./lib/postgresql/hstore.so
|
||||
./lib/postgresql/packages.so
|
||||
./lib/postgresql/utf8_and_euc_kr.so
|
||||
./lib/postgresql/ascii_and_mic.so
|
||||
./lib/postgresql/utf8_and_iso8859_1.so
|
||||
|
|
@ -743,17 +758,19 @@
|
|||
./lib/postgresql/utf8_and_euc2004.so
|
||||
./lib/postgresql/utf8_and_big5.so
|
||||
./lib/postgresql/mppdb_decoding.so
|
||||
./lib/postgresql/sql_decoding.so
|
||||
./lib/postgresql/pg_plugin
|
||||
./lib/postgresql/proc_srclib
|
||||
./lib/postgresql/security_plugin.so
|
||||
./lib/postgresql/pg_upgrade_support.so
|
||||
./lib/postgresql/latin2_and_win1250.so
|
||||
./lib/postgresql/euc2004_sjis2004.so
|
||||
./lib/libxgboost.so
|
||||
./include/postgresql/server/postgres_ext.h
|
||||
./include/postgresql/server/pg_config_os.h
|
||||
./include/postgresql/server/pgtime.h
|
||||
./include/postgresql/server/datatypes.h
|
||||
./include/postgresql/server/client_logic/client_logic_enums.h
|
||||
./include/postgresql/server/libpq/libpq-fs.h
|
||||
./include/postgresql/server/nodes/primnodes.h
|
||||
./include/postgresql/server/nodes/parsenodes.h
|
||||
./include/postgresql/server/nodes/parsenodes_common.h
|
||||
|
|
@ -911,6 +928,7 @@
|
|||
./lib/libssl.so
|
||||
./lib/libssl.so.1.1
|
||||
[header]
|
||||
./include/libpq/libpq-fs.h
|
||||
./include/libpq-fe.h
|
||||
./include/postgres_ext.h
|
||||
./include/gs_thread.h
|
||||
|
|
@ -924,4 +942,4 @@
|
|||
./include/pqcomm.h
|
||||
./include/pqexpbuffer.h
|
||||
[version]
|
||||
3.0.0
|
||||
3.0.3
|
||||
|
|
|
|||
|
|
@ -69,8 +69,6 @@
|
|||
./share/postgresql/extension/file_fdw.control
|
||||
./share/postgresql/extension/hstore--unpackaged--1.0.sql
|
||||
./share/postgresql/extension/hstore--1.0--1.1.sql
|
||||
./share/postgresql/extension/hdfs_fdw--1.0.sql
|
||||
./share/postgresql/extension/hdfs_fdw.control
|
||||
./share/postgresql/extension/log_fdw--1.0.sql
|
||||
./share/postgresql/extension/log_fdw.control
|
||||
./share/postgresql/extension/mot_fdw--1.0.sql
|
||||
|
|
@ -649,6 +647,23 @@
|
|||
./share/postgresql/timezone/Asia/Yakutsk
|
||||
./share/postgresql/timezone/Asia/Magadan
|
||||
./share/postgresql/timezone/Asia/Amman
|
||||
./share/postgresql/timezone/Asia/Barnaul
|
||||
./share/postgresql/timezone/Asia/Chita
|
||||
./share/postgresql/timezone/Asia/Tomsk
|
||||
./share/postgresql/timezone/Asia/Atyrau
|
||||
./share/postgresql/timezone/Asia/Famagusta
|
||||
./share/postgresql/timezone/Asia/Qostanay
|
||||
./share/postgresql/timezone/Asia/Srednekolymsk
|
||||
./share/postgresql/timezone/Asia/Yangon
|
||||
./share/postgresql/timezone/Pacific/Bougainville
|
||||
./share/postgresql/timezone/Antarctica/Troll
|
||||
./share/postgresql/timezone/Europe/Astrakhan
|
||||
./share/postgresql/timezone/Europe/Ulyanovsk
|
||||
./share/postgresql/timezone/Europe/Kirov
|
||||
./share/postgresql/timezone/Europe/Saratov
|
||||
./share/postgresql/timezone/America/Fort_Nelson
|
||||
./share/postgresql/timezone/America/Nuuk
|
||||
./share/postgresql/timezone/America/Punta_Arenas
|
||||
./share/postgresql/timezone/Asia/Kuching
|
||||
./share/postgresql/timezone/Asia/Novosibirsk
|
||||
./share/postgresql/timezone/Asia/Seoul
|
||||
|
|
@ -722,7 +737,6 @@
|
|||
./lib/postgresql/pgxs/src/Makefile.port
|
||||
./lib/postgresql/pgxs/src/nls-global.mk
|
||||
./lib/postgresql/pgxs/src/Makefile.global
|
||||
./lib/postgresql/pgxs/src/get_PlatForm_str.sh
|
||||
./lib/postgresql/pgxs/config/install-sh
|
||||
./lib/postgresql/euc_cn_and_mic.so
|
||||
./lib/postgresql/latin_and_mic.so
|
||||
|
|
@ -761,6 +775,9 @@
|
|||
./lib/libpq_ce.so.5
|
||||
./lib/libpq_ce.so.5.5
|
||||
./lib/libgauss_cl_jni.so
|
||||
./lib/libnuma.so
|
||||
./lib/libnuma.so.1
|
||||
./lib/libnuma.so.1.0.0
|
||||
./lib/libcgroup.so
|
||||
./lib/libcgroup.so.1
|
||||
./lib/libcom_err_gauss.so
|
||||
|
|
@ -832,12 +849,10 @@
|
|||
./lib/libssl.so.1.1
|
||||
./lib/libgcc_s.so.1
|
||||
./lib/libstdc++.so.6
|
||||
./lib/libz.so
|
||||
./lib/libz.so.1
|
||||
./lib/libz.so.1.2.11
|
||||
./lib/libz.so*
|
||||
./lib/liblz4.so
|
||||
./lib/liblz4.so.1
|
||||
./lib/liblz4.so.1.9.2
|
||||
./lib/liblz4.so.1.9.3
|
||||
./lib/libcjson.so*
|
||||
./lib/libconfig.so
|
||||
./lib/libconfig.so.4
|
||||
|
|
@ -853,12 +868,6 @@
|
|||
./lib/libpcre.so*
|
||||
./lib/libsecurec.so
|
||||
./lib/libxml2.so*
|
||||
./lib/libparquet.so
|
||||
./lib/libparquet.so.14
|
||||
./lib/libparquet.so.14.1.0
|
||||
./lib/libarrow.so
|
||||
./lib/libarrow.so.14
|
||||
./lib/libarrow.so.14.1.0
|
||||
./lib/OBS.ini
|
||||
./lib/postgresql/latin2_and_win1250.so
|
||||
./lib/postgresql/euc2004_sjis2004.so
|
||||
|
|
@ -1397,18 +1406,6 @@
|
|||
./lib/libpq.so
|
||||
./lib/libpq.so.5
|
||||
./lib/libpq.so.5.5
|
||||
./lib/libpq_ce.so
|
||||
./lib/libpq_ce.so.5
|
||||
./lib/libpq_ce.so.5.5
|
||||
./lib/libgauss_cl_jni.so
|
||||
./lib/libconfig.so
|
||||
./lib/libconfig.so.4
|
||||
./lib/libcrypto.so
|
||||
./lib/libcrypto.so.1.1
|
||||
./lib/libstdc++.so.6
|
||||
./lib/libssl.so
|
||||
./lib/libssl.so.1.1
|
||||
./lib/libpgport_tool.so
|
||||
./lib/libpgport_tool.so.1
|
||||
./lib/libgssapi_krb5_gauss.so
|
||||
./lib/libgssapi_krb5_gauss.so.2
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ function print_help()
|
|||
-pkg|--package provode type of installation packages, values parameter is server.
|
||||
-m|--version_mode this values of paramenter is debug, release, memcheck, the default value is release.
|
||||
-pm product mode, values parameter is opengauss.
|
||||
-mc|--make_check this values of paramenter is on or off, the default value is on.
|
||||
-mc|--make_check this values of paramenter is on or off, the default value is on.
|
||||
-s|--symbol_mode whether separate symbol in debug mode, the default value is on.
|
||||
-co|--cmake_opt more cmake options
|
||||
"
|
||||
|
|
@ -93,7 +93,7 @@ while [ $# -gt 0 ]; do
|
|||
fi
|
||||
product_mode=$2
|
||||
shift 2
|
||||
;;
|
||||
;;
|
||||
-mc|--make_check)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given make check values"
|
||||
|
|
@ -101,7 +101,7 @@ while [ $# -gt 0 ]; do
|
|||
fi
|
||||
make_check=$2
|
||||
shift 2
|
||||
;;
|
||||
;;
|
||||
-s|--symbol_mode)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given symbol parameter"
|
||||
|
|
@ -109,7 +109,7 @@ while [ $# -gt 0 ]; do
|
|||
fi
|
||||
separate_symbol=$2
|
||||
shift 2
|
||||
;;
|
||||
;;
|
||||
--cmake_opt)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no extra configure options provided"
|
||||
|
|
@ -125,7 +125,7 @@ while [ $# -gt 0 ]; do
|
|||
fi
|
||||
extra_config_opt=$2
|
||||
shift 2
|
||||
;;
|
||||
;;
|
||||
*)
|
||||
echo "Internal Error: option processing error: $1" 1>&2
|
||||
echo "please input right paramtenter, the following command may help you"
|
||||
|
|
@ -149,7 +149,11 @@ else
|
|||
echo "begin config cmake options:" >> "$LOG_FILE" 2>&1
|
||||
declare BUILD_DIR="${ROOT_DIR}/mppdb_temp_install"
|
||||
declare CMAKE_BUILD_DIR=${ROOT_DIR}/tmp_build
|
||||
declare CMAKE_OPT="-DENABLE_MULTIPLE_NODES=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_MOT=ON ${extra_cmake_opt}"
|
||||
if [ "$product_mode"x == "lite"x ]; then
|
||||
declare CMAKE_OPT="-DENABLE_MULTIPLE_NODES=OFF -DENABLE_PRIVATEGAUSS=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_LITE_MODE=ON ${extra_cmake_opt}"
|
||||
else
|
||||
declare CMAKE_OPT="-DENABLE_MULTIPLE_NODES=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_MOT=ON ${extra_cmake_opt}"
|
||||
fi
|
||||
echo "[cmake options] cmake options is:${CMAKE_OPT}" >> "$LOG_FILE" 2>&1
|
||||
source $SCRIPT_DIR/utils/cmake_compile.sh || exit 1
|
||||
fi
|
||||
|
|
@ -164,6 +168,5 @@ function main()
|
|||
gaussdb_build
|
||||
}
|
||||
main
|
||||
|
||||
echo "now, all build has finished!"
|
||||
exit 0
|
||||
exit 0
|
||||
|
|
@ -49,9 +49,7 @@ elif [ X"$kernel" == X"centos" ]; then
|
|||
elif [ X"$kernel" == X"openeuler" ]; then
|
||||
dist_version="openEuler"
|
||||
else
|
||||
echo "Only support EulerOS|Centos|openEuler platform."
|
||||
echo "Kernel is $kernel"
|
||||
exit 1
|
||||
dist_version="Platform"
|
||||
fi
|
||||
|
||||
show_package=false
|
||||
|
|
@ -291,12 +289,6 @@ declare symbol_package_name="${package_pre_name}-symbol.${install_package_format
|
|||
echo "[makemppdb] $(date +%y-%m-%d' '%T): script dir : ${SCRIPT_DIR}"
|
||||
ROOT_DIR=$(dirname "$SCRIPT_DIR")
|
||||
ROOT_DIR=$(dirname "$ROOT_DIR")
|
||||
PLAT_FORM_STR=$(sh "${ROOT_DIR}/src/get_PlatForm_str.sh")
|
||||
if [ "${PLAT_FORM_STR}"x == "Failed"x ]
|
||||
then
|
||||
echo "Only support EulerOS openEuler platform."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CMAKE_BUILD_DIR=${ROOT_DIR}/tmp_build
|
||||
declare LOG_FILE="${ROOT_DIR}/build/script/makemppdb_pkg.log"
|
||||
|
|
@ -304,12 +296,12 @@ declare BUILD_DIR="${ROOT_DIR}/mppdb_temp_install"
|
|||
declare ERR_MKGS_FAILED=1
|
||||
declare MKGS_OK=0
|
||||
if [ "${binarylib_dir}" != 'None' ] && [ -d "${binarylib_dir}" ]; then
|
||||
BUILD_TOOLS_PATH="${binarylib_dir}/buildtools/${PLAT_FORM_STR}"
|
||||
PLATFORM_PATH="${binarylib_dir}/platform/${PLAT_FORM_STR}"
|
||||
BINARYLIBS_PATH="${binarylib_dir}/dependency"
|
||||
BUILD_TOOLS_PATH="${binarylib_dir}/buildtools/"
|
||||
PLATFORM_PATH="${binarylib_dir}/kernel/platform/"
|
||||
BINARYLIBS_PATH="${binarylib_dir}/kernel/dependency"
|
||||
else
|
||||
BUILD_TOOLS_PATH="${ROOT_DIR}/buildtools/${PLAT_FORM_STR}"
|
||||
PLATFORM_PATH="${ROOT_DIR}/platform/${PLAT_FORM_STR}"
|
||||
BUILD_TOOLS_PATH="${ROOT_DIR}/buildtools/"
|
||||
PLATFORM_PATH="${ROOT_DIR}/kernel/platform/"
|
||||
BINARYLIBS_PATH="${ROOT_DIR}/binarylibs"
|
||||
fi
|
||||
|
||||
|
|
@ -319,9 +311,9 @@ export CC="$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin/gcc"
|
|||
export CXX="$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin/g++"
|
||||
export LD_LIBRARY_PATH=$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/lib64:$BUILD_TOOLS_PATH/gcc$gcc_version/isl/lib:$BUILD_TOOLS_PATH/gcc$gcc_version/mpc/lib/:$BUILD_TOOLS_PATH/gcc$gcc_version/mpfr/lib/:$BUILD_TOOLS_PATH/gcc$gcc_version/gmp/lib/:$LD_LIBRARY_PATH
|
||||
export PATH=$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin:$PATH
|
||||
jdkpath=${binarylib_dir}/platform/huaweijdk8/${PLATFORM_ARCH}/jdk
|
||||
jdkpath=${binarylib_dir}/kernel/platform/huaweijdk8/${PLATFORM_ARCH}/jdk
|
||||
if [ ! -d "${jdkpath}" ]; then
|
||||
jdkpath=${binarylib_dir}/platform/openjdk8/${PLATFORM_ARCH}/jdk
|
||||
jdkpath=${binarylib_dir}/kernel/platform/openjdk8/${PLATFORM_ARCH}/jdk
|
||||
fi
|
||||
export JAVA_HOME=${jdkpath}
|
||||
|
||||
|
|
@ -515,21 +507,6 @@ function install_gaussdb()
|
|||
commitid=$(LD_PRELOAD='' ${BUILD_DIR}/bin/gaussdb -V | cut -d ")" -f 1 | awk '{print $NF}')
|
||||
echo "${commitid}" >>${SCRIPT_DIR}/version.cfg
|
||||
echo "End insert commitid into version.cfg" >> "$LOG_FILE" 2>&1
|
||||
|
||||
cp ${BINARYLIBS_PATH}/${PLAT_FORM_STR}/iperf/comm/bin/iperf3 ${BUILD_DIR}/bin
|
||||
if [ $? -ne 0 ]; then
|
||||
die "cp ${BINARYLIBS_PATH}/${PLAT_FORM_STR}/iperf/comm/bin/iperf3 ${BUILD_DIR}/bin failed"
|
||||
fi
|
||||
|
||||
cp ${BINARYLIBS_PATH}/${PLAT_FORM_STR}/iperf/comm/lib/libiperf.so.0 ${BUILD_DIR}/lib
|
||||
if [ $? -ne 0 ]; then
|
||||
die "cp ${BINARYLIBS_PATH}/${PLAT_FORM_STR}/iperf/comm/lib/libiperf.so.0 ${BUILD_DIR}/lib failed"
|
||||
fi
|
||||
|
||||
cp ${BINARYLIBS_PATH}/${PLAT_FORM_STR}/fio/comm/bin/fio ${BUILD_DIR}/bin
|
||||
if [ $? -ne 0 ]; then
|
||||
die "cp ${BINARYLIBS_PATH}/${PLAT_FORM_STR}/fio/comm/bin/fio ${BUILD_DIR}/bin failed"
|
||||
fi
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
PRODUCT=openGauss
|
||||
VERSION=3.0.0
|
||||
VERSION=3.0.3
|
||||
|
|
@ -24,8 +24,6 @@
|
|||
declare SCRIPT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}"); pwd)
|
||||
declare ROOT_DIR=$(dirname "${SCRIPT_DIR}")
|
||||
declare ROOT_DIR=$(dirname "${ROOT_DIR}")
|
||||
|
||||
|
||||
declare package_type='server'
|
||||
declare product_mode='opengauss'
|
||||
declare version_mode='release'
|
||||
|
|
@ -35,8 +33,6 @@ declare cm_dir='None'
|
|||
declare show_package='false'
|
||||
declare install_package_format='tar'
|
||||
|
||||
|
||||
|
||||
function print_help()
|
||||
{
|
||||
echo "Usage: $0 [OPTION]
|
||||
|
|
@ -48,7 +44,6 @@ function print_help()
|
|||
"
|
||||
}
|
||||
|
||||
|
||||
if [ $# = 0 ] ; then
|
||||
echo "missing option"
|
||||
print_help
|
||||
|
|
@ -126,10 +121,18 @@ fi
|
|||
declare BUILD_DIR="${ROOT_DIR}/mppdb_temp_install"
|
||||
declare PKG_TMP_DIR="${BUILD_DIR}/temp"
|
||||
|
||||
if [ -e "$SCRIPT_DIR/utils/internal_packages.sh" ];then
|
||||
source $SCRIPT_DIR/utils/internal_packages.sh
|
||||
if [ "${product_mode}" == "lite" ]; then
|
||||
if [ -e "$SCRIPT_DIR/utils/internal_packages_lite.sh" ];then
|
||||
source $SCRIPT_DIR/utils/internal_packages_lite.sh
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
exit 1
|
||||
if [ -e "$SCRIPT_DIR/utils/internal_packages.sh" ];then
|
||||
source $SCRIPT_DIR/utils/internal_packages.sh
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
function main()
|
||||
|
|
@ -141,4 +144,4 @@ function main()
|
|||
main
|
||||
|
||||
echo "now, all packages has finished!"
|
||||
exit 0
|
||||
exit 0
|
||||
|
|
@ -119,7 +119,7 @@ separate_symbol()
|
|||
chmod 755 "$INSTALL_DIR/${symbol_name}.symbol"
|
||||
mv $INSTALL_DIR/${symbol_name}.symbol $CPTODEST
|
||||
fi
|
||||
elif [[ "$x" = *".so" ]]; then
|
||||
elif [[ "$x" = *".so" || "$x" = *".so."* ]]; then
|
||||
if [[ "$platformname" = "Redhat" ]] || [[ "$platformname" = "Euler" ]]; then
|
||||
if [[ "$x" = "libkadm5clnt.so" ]]; then
|
||||
echo "$x is not a dynamically linked or not stripped, do not separate symbol"
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ function read_gaussdb_version()
|
|||
echo "${gaussdb_name_for_package}-${version_number}" > version.cfg
|
||||
#auto read the number from kernal globals.cpp, no need to change it here
|
||||
}
|
||||
|
||||
|
||||
###################################
|
||||
# get version number from globals.cpp
|
||||
##################################
|
||||
|
|
@ -64,7 +64,7 @@ function get_kernel_commitid()
|
|||
{
|
||||
export PATH=${BUILD_DIR}:$PATH
|
||||
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
|
||||
commitid=$(LD_PRELOAD='' ${BUILD_DIR}/bin/gaussdb -V | awk '{print $5}' | cut -d ")" -f 1)
|
||||
commitid=$(LD_PRELOAD='' ${BUILD_DIR}/bin/gaussdb -V | awk '{print $5}' | cut -d ")" -f 1)
|
||||
echo "${commitid}" >>${SCRIPT_DIR}/version.cfg
|
||||
echo "End insert commitid into version.cfg" >> "$LOG_FILE" 2>&1
|
||||
}
|
||||
|
|
@ -96,6 +96,7 @@ function make_license_control()
|
|||
die "modify '$gaussdb_version_file' failed."
|
||||
fi
|
||||
}
|
||||
|
||||
function make_gaussdb_kernel()
|
||||
{
|
||||
export BUILD_TUPLE=${PLATFORM_ARCH}
|
||||
|
|
@ -125,11 +126,10 @@ function make_gaussdb_kernel()
|
|||
if [ $? -ne 0 ]; then
|
||||
die "make install failed."
|
||||
fi
|
||||
|
||||
|
||||
echo "End make install gaussdb server" >> "$LOG_FILE" 2>&1
|
||||
}
|
||||
|
||||
|
||||
#######################################################################
|
||||
##install gaussdb database contained server,client and libpq
|
||||
#######################################################################
|
||||
|
|
@ -148,14 +148,14 @@ function install_gaussdb()
|
|||
echo "WARNING: do not separate symbol in debug mode!"
|
||||
fi
|
||||
|
||||
if [ "$product_mode" != "opengauss" ]; then
|
||||
die "the product mode can only be opengauss!"
|
||||
if [ "$product_mode" != "opengauss" -a "$product_mode" != "lite" ]; then
|
||||
die "the product mode can only be opengauss, lite!"
|
||||
fi
|
||||
|
||||
echo "build gaussdb kernel." >> "$LOG_FILE" 2>&1
|
||||
make_gaussdb_kernel
|
||||
echo "build gaussdb kernel success." >> "$LOG_FILE" 2>&1
|
||||
|
||||
|
||||
chmod 444 ${BUILD_DIR}/bin/cluster_guc.conf
|
||||
dos2unix ${BUILD_DIR}/bin/cluster_guc.conf > /dev/null 2>&1
|
||||
|
||||
|
|
@ -163,9 +163,6 @@ function install_gaussdb()
|
|||
get_kernel_commitid
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#######################################################################
|
||||
##install gaussdb database and others
|
||||
##select to install something according to variables package_type need
|
||||
|
|
@ -184,4 +181,4 @@ function gaussdb_build()
|
|||
echo "please input right paramenter values server or libpq "
|
||||
exit 1
|
||||
esac
|
||||
}
|
||||
}
|
||||
|
|
@ -72,74 +72,89 @@ select_package_command
|
|||
export PLAT_FORM_STR=$(sh "${ROOT_DIR}/src/get_PlatForm_str.sh")
|
||||
if [ "${PLAT_FORM_STR}"x == "Failed"x -o "${PLAT_FORM_STR}"x == ""x ]
|
||||
then
|
||||
echo "We only support openEuler(aarch64), EulerOS(aarch64), CentOS, Kylin(aarch64) platform."
|
||||
echo "We only support openEuler(aarch64), EulerOS(aarch64), CentOS, Kylin(aarch64), Asianux platform."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [[ "$PLAT_FORM_STR" =~ "euleros" ]]; then
|
||||
if [[ -f "/etc/euleros-release" ]]; then
|
||||
dist_version="EulerOS"
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ];then
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ];then
|
||||
GAUSSDB_EXTRA_FLAGS=" -D__USE_NUMA"
|
||||
fi
|
||||
elif [[ "$PLAT_FORM_STR" =~ "centos" ]]; then
|
||||
elif [[ -f "/etc/centos-release" ]]; then
|
||||
dist_version="CentOS"
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ];then
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ];then
|
||||
GAUSSDB_EXTRA_FLAGS=" -D__USE_NUMA"
|
||||
fi
|
||||
elif [[ "$PLAT_FORM_STR" =~ "openeuler" ]]; then
|
||||
elif [[ -f "/etc/openEuler-release" ]]; then
|
||||
dist_version="openEuler"
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ];then
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ];then
|
||||
GAUSSDB_EXTRA_FLAGS=" -D__USE_NUMA -D__ARM_LSE"
|
||||
fi
|
||||
elif [[ "$PLAT_FORM_STR" =~ "kylin" ]]; then
|
||||
elif [[ -f "/etc/kylin-release" ]]; then
|
||||
dist_version="Kylin"
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ];then
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ];then
|
||||
GAUSSDB_EXTRA_FLAGS=" -D__USE_NUMA"
|
||||
fi
|
||||
elif [[ "$PLAT_FORM_STR" =~ "asianux" ]]; then
|
||||
dist_version="Asianux"
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ];then
|
||||
GAUSSDB_EXTRA_FLAGS=" -D__USE_NUMA"
|
||||
fi
|
||||
else
|
||||
echo "We only support openEuler(aarch64), EulerOS(aarch64), CentOS, Kylin(aarch64) platform."
|
||||
echo "We only support openEuler(aarch64), EulerOS(aarch64), CentOS, Kylin(aarch64), Asianux platform."
|
||||
echo "Kernel is $kernel"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
##add platform architecture information
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ] ; then
|
||||
if [ "$dist_version" != "openEuler" ] && [ "$dist_version" != "EulerOS" ] && [ "$dist_version" != "Kylin" ] ; then
|
||||
echo "We only support NUMA on openEuler(aarch64), EulerOS(aarch64), Kylin(aarch64) platform."
|
||||
if [ "$dist_version" != "openEuler" ] && [ "$dist_version" != "EulerOS" ] && [ "$dist_version" != "Kylin" ] && [ "$dist_version" != "Asianux" ]; then
|
||||
echo "We only support NUMA on openEuler(aarch64), EulerOS(aarch64), Kylin(aarch64), Asianux platform."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${binarylib_dir}" != 'None' ] && [ -d "${binarylib_dir}" ]; then
|
||||
BUILD_TOOLS_PATH="${binarylib_dir}/buildtools/${PLAT_FORM_STR}"
|
||||
PLATFORM_PATH="${binarylib_dir}/platform/${PLAT_FORM_STR}"
|
||||
BINARYLIBS_PATH="${binarylib_dir}/dependency"
|
||||
BUILD_TOOLS_PATH="${binarylib_dir}/buildtools"
|
||||
PLATFORM_PATH="${binarylib_dir}/kernel/platform"
|
||||
BINARYLIBS_PATH="${binarylib_dir}/kernel/dependency"
|
||||
else
|
||||
die "${binarylib_dir} not exist"
|
||||
die "${binarylib_dir} doesn't exist."
|
||||
fi
|
||||
|
||||
declare INSTALL_TOOLS_DIR=${BINARYLIBS_PATH}/install_tools_${PLAT_FORM_STR}
|
||||
declare UNIX_ODBC="${BINARYLIBS_PATH}/${PLAT_FORM_STR}/unixodbc"
|
||||
# 小型化
|
||||
declare lite_dist_version=${dist_version}
|
||||
if [ "${lite_dist_version}" == "openEuler" ]; then
|
||||
lite_dist_version="OPENEULER"
|
||||
elif [ "${lite_dist_version}" == "Kylin" ]; then
|
||||
lite_dist_version="LYLIN"
|
||||
elif [ "${lite_dist_version}" == "EulerOS" ]; then
|
||||
lite_dist_version="EULER"
|
||||
fi
|
||||
|
||||
# Comment 编译相关
|
||||
gcc_version="7.3"
|
||||
declare INSTALL_TOOLS_DIR=${binarylib_dir}/install_tools
|
||||
declare UNIX_ODBC="${BINARYLIBS_PATH}/unixodbc"
|
||||
|
||||
# Comment 编译相关
|
||||
gcc_version="7.3"
|
||||
ccache -V >/dev/null 2>&1 && USE_CCACHE="ccache " ENABLE_CCACHE="--enable-ccache"
|
||||
export CC="${USE_CCACHE}$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin/gcc"
|
||||
export CXX="${USE_CCACHE}$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin/g++"
|
||||
export LD_LIBRARY_PATH=$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/lib64:$BUILD_TOOLS_PATH/gcc$gcc_version/isl/lib:$BUILD_TOOLS_PATH/gcc$gcc_version/mpc/lib/:$BUILD_TOOLS_PATH/gcc$gcc_version/mpfr/lib/:$BUILD_TOOLS_PATH/gcc$gcc_version/gmp/lib/:$LD_LIBRARY_PATH
|
||||
export PATH=$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin:$PATH
|
||||
export JAVA_HOME=${binarylib_dir}/platform/huaweijdk8/${PLATFORM_ARCH}/jdk
|
||||
export JAVA_HOME=${PLATFORM_PATH}/huaweijdk8/${PLATFORM_ARCH}/jdk
|
||||
|
||||
declare ERR_MKGS_FAILED=1
|
||||
declare MKGS_OK=0
|
||||
|
||||
|
||||
gaussdb_200_file="${binarylib_dir}/buildtools/license_control/gaussdb.version.GaussDB200"
|
||||
gaussdb_300_file="${binarylib_dir}/buildtools/license_control/gaussdb.version.GaussDB300"
|
||||
gaussdb_200_standard_file="${binarylib_dir}/buildtools/license_control/gaussdb.license.GaussDB200_Standard"
|
||||
gaussdb_200_file="${BUILD_TOOLS_PATH}/license_control/gaussdb.version.GaussDB200"
|
||||
gaussdb_300_file="${BUILD_TOOLS_PATH}/license_control/gaussdb.version.GaussDB300"
|
||||
gaussdb_200_standard_file="${BUILD_TOOLS_PATH}/license_control/gaussdb.license.GaussDB200_Standard"
|
||||
gaussdb_version_file="${ROOT_DIR}/src/gausskernel/process/postmaster/gaussdb_version.cpp"
|
||||
|
||||
|
||||
|
||||
if [ -f "$SCRIPT_DIR/gaussdb.ver" ];then
|
||||
declare version_number=$(cat ${SCRIPT_DIR}/gaussdb.ver | grep 'VERSION' | awk -F "=" '{print $2}')
|
||||
else
|
||||
|
|
@ -159,6 +174,9 @@ declare libpq_package_name="${package_pre_name}-Libpq.tar.gz"
|
|||
declare tools_package_name="${package_pre_name}-tools.tar.gz"
|
||||
declare kernel_package_name="${package_pre_name}.tar.bz2"
|
||||
declare symbol_package_name="${package_pre_name}-symbol.tar.gz"
|
||||
declare sha256_name="${package_pre_name}.sha256"
|
||||
|
||||
|
||||
declare sha256_name="${lite_package_pre_name}.sha256"
|
||||
declare lite_package_pre_name="GaussDB-Kernel-V500R002C10-${lite_dist_version}-${PLATFORM}bit"
|
||||
declare lite_kernel_package_name="${lite_package_pre_name}.bin"
|
||||
declare lite_libpq_package_name="${lite_package_pre_name}-Libpq.tar.gz"
|
||||
declare lite_symbol_package_name="${lite_package_pre_name}-symbol.tar.gz"
|
||||
declare lite_sha256_name="${lite_package_pre_name}.sha256"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,223 @@
|
|||
#!/bin/bash
|
||||
#######################################################################
|
||||
# Copyright (c): 2020-2021, Huawei Tech. Co., Ltd.
|
||||
# descript: package opengauss lite
|
||||
# Return 0 means OK.
|
||||
# Return 1 means failed.
|
||||
# version: 1.0
|
||||
# date: 2022-04-10
|
||||
#######################################################################
|
||||
|
||||
declare UPGRADE_SQL_DIR="${ROOT_DIR}/src/include/catalog/upgrade_sql"
|
||||
|
||||
#######################################################################
|
||||
# move pkgs to output directory
|
||||
#######################################################################
|
||||
function deploy_pkgs()
|
||||
{
|
||||
mkdir -p $package_path
|
||||
for pkg in $@; do
|
||||
if [ -f "$pkg" ]; then
|
||||
mv $pkg $package_path/
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# copy directory's files list to $2
|
||||
#######################################################################
|
||||
function copy_files_list()
|
||||
{
|
||||
for file in $(echo $1)
|
||||
do
|
||||
test -e $file && tar -cpf - $file | ( cd $2; tar -xpf - )
|
||||
done
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##copy target file into temporary directory temp
|
||||
#######################################################################
|
||||
function target_file_copy()
|
||||
{
|
||||
cd ${BUILD_DIR}
|
||||
copy_files_list "$1" $2
|
||||
|
||||
sed -i '/^process_cpu_affinity|/d' $2/bin/cluster_guc.conf
|
||||
|
||||
#generate tar file
|
||||
echo "Begin generate ${lite_kernel_package_name} tar file..." >> "$LOG_FILE" 2>&1
|
||||
cd $2
|
||||
${BUILD_TOOLS_PATH}/p7z/bin/7z a -t7z -sfx "${lite_kernel_package_name}" ./* >> "$LOG_FILE" 2>&1
|
||||
cd '-'
|
||||
mv $2/"${lite_kernel_package_name}" ./
|
||||
if [ $? -ne 0 ]; then
|
||||
die "generate ${lite_kernel_package_name} failed."
|
||||
fi
|
||||
echo "End generate ${lite_kernel_package_name} tar file" >> "$LOG_FILE" 2>&1
|
||||
|
||||
#generate sha256 file
|
||||
sha256_name="${lite_sha256_name}"
|
||||
echo "Begin generate ${lite_sha256_name} sha256 file..." >> "$LOG_FILE" 2>&1
|
||||
sha256sum "${lite_kernel_package_name}" | awk -F" " '{print $1}' > "${lite_sha256_name}"
|
||||
if [ $? -ne 0 ]; then
|
||||
die "generate sha256 file failed."
|
||||
fi
|
||||
echo "End generate ${lite_sha256_name} sha256 file" >> "$LOG_FILE" 2>&1
|
||||
if [ -d "${2}" ]; then
|
||||
rm -rf ${2}
|
||||
fi
|
||||
}
|
||||
|
||||
function target_file_copy_for_non_server()
|
||||
{
|
||||
cd ${BUILD_DIR}
|
||||
copy_files_list "$1" $2
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##function prep_dest_list parse release_file_list variable represent file
|
||||
#######################################################################
|
||||
function prep_dest_list()
|
||||
{
|
||||
cd $SCRIPT_DIR
|
||||
releasefile=$1
|
||||
pkgname=$2
|
||||
|
||||
local head=$(cat $releasefile | grep "\[$pkgname\]" -n | awk -F: '{print $1}')
|
||||
if [ ! -n "$head" ]; then
|
||||
die "error: ono find $pkgname in the $releasefile file "
|
||||
fi
|
||||
|
||||
local tail=$(cat $releasefile | sed "1,$head d" | grep "^\[" -n | sed -n "1p" | awk -F: '{print $1}')
|
||||
if [ ! -n "$tail" ]; then
|
||||
local all=$(cat $releasefile | wc -l)
|
||||
let tail=$all+1-$head
|
||||
fi
|
||||
|
||||
dest_list=$(cat $releasefile | awk "NR==$head+1,NR==$tail+$head-1")
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##back to separate_debug_symbol.sh dir
|
||||
#######################################################################
|
||||
function separate_symbol()
|
||||
{
|
||||
cd $SCRIPT_DIR
|
||||
if [ "$version_mode" = "release" ]; then
|
||||
chmod +x ./separate_debug_information.sh
|
||||
./separate_debug_information.sh
|
||||
cd $SCRIPT_DIR
|
||||
mv symbols.tar.gz $lite_symbol_package_name
|
||||
deploy_pkgs $lite_symbol_package_name
|
||||
fi
|
||||
}
|
||||
|
||||
function make_package_srv()
|
||||
{
|
||||
echo "Begin package server"
|
||||
cd $SCRIPT_DIR
|
||||
prep_dest_list $release_file_list 'server'
|
||||
|
||||
rm -rf ${BUILD_DIR}/temp
|
||||
mkdir -p ${BUILD_DIR}/temp/etc
|
||||
target_file_copy "$dest_list" ${BUILD_DIR}/temp
|
||||
make_package_upgrade_sql
|
||||
cp ${SCRIPT_DIR}/version.cfg ${BUILD_DIR}/temp
|
||||
if [ $? -ne 0 ]; then
|
||||
die "copy ${SCRIPT_DIR}/version.cfg to ${BUILD_DIR}/temp failed"
|
||||
fi
|
||||
|
||||
# pkg install uninstall scripts:install.sh, uninstall.sh, opengauss_lite.conf, upgrade_errorcode.sh
|
||||
for filename in install.sh uninstall.sh opengauss_lite.conf
|
||||
do
|
||||
if ! cp ${ROOT_DIR}/liteom/${filename} ${BUILD_DIR}/temp ; then
|
||||
die "copy ${ROOT_DIR}/liteom/${filename} to ${BUILD_DIR}/temp failed"
|
||||
fi
|
||||
done
|
||||
chmod 500 ./install.sh ./uninstall.sh
|
||||
# pkg upgrade scripts:upgrade_GAUSSV5.sh, upgrade_common.sh, upgrade_config.sh, upgrade_errorcode.sh
|
||||
for filename in upgrade_GAUSSV5.sh upgrade_common.sh upgrade_config.sh upgrade_errorcode.sh
|
||||
do
|
||||
if ! cp ${ROOT_DIR}/liteom/${filename} ${BUILD_DIR}/temp ; then
|
||||
die "copy ${ROOT_DIR}/liteom/${filename} to ${BUILD_DIR}/temp failed"
|
||||
fi
|
||||
done
|
||||
chmod 500 ./upgrade_GAUSSV5.sh
|
||||
chmod 400 ./upgrade_common.sh upgrade_errorcode.sh
|
||||
chmod 600 ./opengauss_lite.conf upgrade_config.sh
|
||||
mkdir -p ${BUILD_DIR}/temp/dependency
|
||||
cp ${BUILD_DIR}/lib/libstdc++.so.6 ${BUILD_DIR}/temp/dependency
|
||||
cd ${BUILD_DIR}/temp
|
||||
cp ${BUILD_DIR}/"${lite_kernel_package_name}" ./
|
||||
cp ${BUILD_DIR}/"${lite_sha256_name}" ./
|
||||
tar -czf "${lite_package_pre_name}.tar.gz" ./*
|
||||
deploy_pkgs "${lite_package_pre_name}.tar.gz"
|
||||
echo "make server(all) package success!"
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# Install all SQL files from src/distribute/include/catalog/upgrade_sql
|
||||
# to INSTALL_DIR/bin/script/upgrade_sql.
|
||||
# Package all SQL files and then verify them with SHA256.
|
||||
#######################################################################
|
||||
function make_package_upgrade_sql()
|
||||
{
|
||||
echo "Begin to install upgrade_sql files..."
|
||||
UPGRADE_SQL_TAR="upgrade_sql.tar.gz"
|
||||
UPGRADE_SQL_SHA256="upgrade_sql.sha256"
|
||||
cd $SCRIPT_DIR
|
||||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
rm -rf temp
|
||||
mkdir temp
|
||||
cd ${BUILD_DIR}/temp
|
||||
cp -r "${UPGRADE_SQL_DIR}" ./upgrade_sql
|
||||
[ $? -ne 0 ] && die "Failed to cp upgrade_sql files"
|
||||
tar -czf ${UPGRADE_SQL_TAR} upgrade_sql
|
||||
[ $? -ne 0 ] && die "Failed to package ${UPGRADE_SQL_TAR}"
|
||||
rm -rf ./upgrade_sql > /dev/null 2>&1
|
||||
|
||||
sha256sum ${UPGRADE_SQL_TAR} | awk -F" " '{print $1}' > "${UPGRADE_SQL_SHA256}"
|
||||
[ $? -ne 0 ] && die "Failed to generate sha256 sum file for ${UPGRADE_SQL_TAR}"
|
||||
|
||||
chmod 600 ${UPGRADE_SQL_TAR}
|
||||
chmod 600 ${UPGRADE_SQL_SHA256}
|
||||
echo "Successfully packaged upgrade_sql files."
|
||||
}
|
||||
|
||||
function make_package_libpq()
|
||||
{
|
||||
cd $SCRIPT_DIR
|
||||
prep_dest_list $release_file_list 'libpq'
|
||||
|
||||
rm -rf ${BUILD_DIR}/temp
|
||||
mkdir -p ${BUILD_DIR}/temp
|
||||
|
||||
target_file_copy_for_non_server "$dest_list" ${BUILD_DIR}/temp
|
||||
|
||||
if [ "$version_mode" != "memcheck" ]; then
|
||||
# copy include file
|
||||
prep_dest_list $release_file_list 'header'
|
||||
target_file_copy_for_non_server "$dest_list" ${BUILD_DIR}/temp
|
||||
fi
|
||||
|
||||
cd ${BUILD_DIR}/temp
|
||||
echo "packaging libpq..."
|
||||
tar -zvcf "${lite_libpq_package_name}" ./* >>"$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "$package_command ${lite_libpq_package_name} failed"
|
||||
fi
|
||||
|
||||
deploy_pkgs ${lite_libpq_package_name}
|
||||
echo "install $pkgname tools is ${lite_libpq_package_name} of ${package_path} directory " >> "$LOG_FILE" 2>&1
|
||||
echo "success!"
|
||||
}
|
||||
|
||||
function gaussdb_pkg()
|
||||
{
|
||||
echo "Start package opengauss."
|
||||
separate_symbol
|
||||
make_package_srv
|
||||
make_package_libpq
|
||||
echo "End package opengauss."
|
||||
}
|
||||
|
|
@ -142,8 +142,8 @@ function install_gaussdb()
|
|||
echo "WARNING: do not separate symbol in debug mode!"
|
||||
fi
|
||||
|
||||
if [ "$product_mode" != "opengauss" ]; then
|
||||
die "the product mode can only be opengauss!"
|
||||
if [ "$product_mode" != "opengauss" -a "$product_mode" != "lite" ]; then
|
||||
die "the product mode can only be opengauss, lite!"
|
||||
fi
|
||||
|
||||
#configure
|
||||
|
|
@ -176,6 +176,20 @@ function install_gaussdb()
|
|||
else
|
||||
./configure $shared_opt CFLAGS="-O0 ${GAUSSDB_EXTRA_FLAGS}" --enable-mot --enable-debug --enable-cassert CC=g++ $extra_config_opt >> "$LOG_FILE" 2>&1
|
||||
fi
|
||||
elif [ "$product_mode"x == "lite"x ]; then
|
||||
shared_opt="--gcc-version=${gcc_version}.0 --prefix="${BUILD_DIR}" --3rd=${binarylib_dir} --enable-thread-safety ${enable_readline} --without-zlib --without-gssapi --without-krb5"
|
||||
if [ "$version_mode"x == "release"x ]; then
|
||||
# configure -D__USE_NUMA -D__ARM_LSE with arm single mode
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ] ; then
|
||||
echo "configure -D__USE_NUMA -D__ARM_LSE with arm single mode"
|
||||
GAUSSDB_EXTRA_FLAGS=" -D__USE_NUMA -D__ARM_LSE"
|
||||
fi
|
||||
./configure $shared_opt CFLAGS="-O2 -g3 ${GAUSSDB_EXTRA_FLAGS}" CC=g++ $extra_config_opt --enable-lite-mode >> "$LOG_FILE" 2>&1
|
||||
elif [ "$version_mode"x == "memcheck"x ]; then
|
||||
./configure $shared_opt CFLAGS='-O0' --enable-debug --enable-cassert --enable-memory-check CC=g++ $extra_config_opt --enable-lite-mode >> "$LOG_FILE" 2>&1
|
||||
else
|
||||
./configure $shared_opt CFLAGS="-O0 ${GAUSSDB_EXTRA_FLAGS}" --enable-debug --enable-cassert CC=g++ $extra_config_opt --enable-lite-mode>> "$LOG_FILE" 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
|
|
@ -258,9 +272,6 @@ function install_gaussdb()
|
|||
|
||||
chmod 444 ${BUILD_DIR}/bin/cluster_guc.conf
|
||||
dos2unix ${BUILD_DIR}/bin/cluster_guc.conf > /dev/null 2>&1
|
||||
|
||||
separate_symbol
|
||||
|
||||
get_kernel_commitid
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
./bin/gstrace
|
||||
./bin/gs_dump
|
||||
./bin/gs_dumpall
|
||||
./bin/gs_initdb
|
||||
./bin/gs_ctl
|
||||
./bin/gs_initdb
|
||||
./bin/gs_guc
|
||||
./bin/gs_restore
|
||||
./bin/pg_config
|
||||
|
|
@ -41,12 +41,11 @@
|
|||
./share/postgresql/extension/file_fdw.control
|
||||
./share/postgresql/extension/hstore--unpackaged--1.0.sql
|
||||
./share/postgresql/extension/hstore--1.0--1.1.sql
|
||||
./share/postgresql/extension/hdfs_fdw--1.0.sql
|
||||
./share/postgresql/extension/hdfs_fdw.control
|
||||
./share/postgresql/extension/log_fdw--1.0.sql
|
||||
./share/postgresql/extension/log_fdw.control
|
||||
./share/postgresql/extension/postgres_fdw--1.0.sql
|
||||
./share/postgresql/extension/postgres_fdw.control
|
||||
./share/postgresql/extension/packages--1.0.sql
|
||||
./share/postgresql/extension/packages--1.0--1.1.sql
|
||||
./share/postgresql/extension/packages.control
|
||||
./share/postgresql/timezone/GB-Eire
|
||||
./share/postgresql/timezone/Turkey
|
||||
./share/postgresql/timezone/Kwajalein
|
||||
|
|
@ -618,6 +617,23 @@
|
|||
./share/postgresql/timezone/Asia/Yakutsk
|
||||
./share/postgresql/timezone/Asia/Magadan
|
||||
./share/postgresql/timezone/Asia/Amman
|
||||
./share/postgresql/timezone/Asia/Barnaul
|
||||
./share/postgresql/timezone/Asia/Chita
|
||||
./share/postgresql/timezone/Asia/Tomsk
|
||||
./share/postgresql/timezone/Asia/Atyrau
|
||||
./share/postgresql/timezone/Asia/Famagusta
|
||||
./share/postgresql/timezone/Asia/Qostanay
|
||||
./share/postgresql/timezone/Asia/Srednekolymsk
|
||||
./share/postgresql/timezone/Asia/Yangon
|
||||
./share/postgresql/timezone/Pacific/Bougainville
|
||||
./share/postgresql/timezone/Antarctica/Troll
|
||||
./share/postgresql/timezone/Europe/Astrakhan
|
||||
./share/postgresql/timezone/Europe/Ulyanovsk
|
||||
./share/postgresql/timezone/Europe/Kirov
|
||||
./share/postgresql/timezone/Europe/Saratov
|
||||
./share/postgresql/timezone/America/Fort_Nelson
|
||||
./share/postgresql/timezone/America/Nuuk
|
||||
./share/postgresql/timezone/America/Punta_Arenas
|
||||
./share/postgresql/timezone/Asia/Kuching
|
||||
./share/postgresql/timezone/Asia/Novosibirsk
|
||||
./share/postgresql/timezone/Asia/Seoul
|
||||
|
|
@ -634,6 +650,7 @@
|
|||
./share/postgresql/timezone/Navajo
|
||||
./share/postgresql/timezone/GMT
|
||||
./share/postgresql/system_views.sql
|
||||
./share/postgresql/private_system_views.sql
|
||||
./share/postgresql/performance_views.sql
|
||||
./share/postgresql/sql_features.txt
|
||||
./share/postgresql/pg_cast_oid.txt
|
||||
|
|
@ -682,18 +699,16 @@
|
|||
./lib/libcrypto.so.1.1
|
||||
./lib/libcgroup.so
|
||||
./lib/libcgroup.so.1
|
||||
./lib/libz.so
|
||||
./lib/libz.so.1
|
||||
./lib/libz.so.1.2.11
|
||||
./lib/libz.so*
|
||||
./lib/liblz4.so
|
||||
./lib/liblz4.so.1
|
||||
./lib/liblz4.so.1.9.2
|
||||
./lib/liblz4.so.1.9.3
|
||||
./lib/libcjson.so
|
||||
./lib/libcjson.so.1
|
||||
./lib/libcjson.so.1.7.14
|
||||
./lib/libcjson.so.1.7.15
|
||||
./lib/libcjson_utils.so
|
||||
./lib/libcjson_utils.so.1
|
||||
./lib/libcjson_utils.so.1.7.14
|
||||
./lib/libcjson_utils.so.1.7.15
|
||||
./lib/libstdc++.so.6
|
||||
./lib/libgcc_s.so.1
|
||||
./lib/libgomp.so
|
||||
|
|
@ -725,6 +740,7 @@
|
|||
./lib/postgresql/utf8_and_sjis.so
|
||||
./lib/postgresql/utf8_and_cyrillic.so
|
||||
./lib/postgresql/hstore.so
|
||||
./lib/postgresql/packages.so
|
||||
./lib/postgresql/utf8_and_euc_kr.so
|
||||
./lib/postgresql/ascii_and_mic.so
|
||||
./lib/postgresql/utf8_and_iso8859_1.so
|
||||
|
|
@ -739,9 +755,11 @@
|
|||
./lib/postgresql/utf8_and_euc2004.so
|
||||
./lib/postgresql/utf8_and_big5.so
|
||||
./lib/postgresql/mppdb_decoding.so
|
||||
./lib/postgresql/sql_decoding.so
|
||||
./lib/postgresql/pg_plugin
|
||||
./lib/postgresql/proc_srclib
|
||||
./lib/postgresql/security_plugin.so
|
||||
./lib/postgresql/pg_upgrade_support.so
|
||||
./lib/postgresql/latin2_and_win1250.so
|
||||
./lib/postgresql/euc2004_sjis2004.so
|
||||
./lib/libxgboost.so
|
||||
|
|
@ -899,14 +917,15 @@
|
|||
./include/postgresql/server/pgxc/locator.h
|
||||
./include/postgresql/server/gstrace/gstrace_infra.h
|
||||
[libpq]
|
||||
./lib/libpq.so
|
||||
./lib/libpq.so.5
|
||||
./lib/libpq.so.5.5
|
||||
./lib/libcrypto.so
|
||||
./lib/libcrypto.so.1.1
|
||||
./lib/libssl.so
|
||||
./lib/libssl.so.1.1
|
||||
./lib/libpq.so
|
||||
./lib/libpq.so.5
|
||||
./lib/libpq.so.5.5
|
||||
[header]
|
||||
./include/libpq/libpq-fs.h
|
||||
./include/libpq-fe.h
|
||||
./include/postgres_ext.h
|
||||
./include/gs_thread.h
|
||||
|
|
@ -920,4 +939,4 @@
|
|||
./include/pqcomm.h
|
||||
./include/pqexpbuffer.h
|
||||
[version]
|
||||
3.0.0
|
||||
3.0.3
|
||||
|
|
|
|||
|
|
@ -69,8 +69,6 @@
|
|||
./share/postgresql/extension/file_fdw.control
|
||||
./share/postgresql/extension/hstore--unpackaged--1.0.sql
|
||||
./share/postgresql/extension/hstore--1.0--1.1.sql
|
||||
./share/postgresql/extension/hdfs_fdw--1.0.sql
|
||||
./share/postgresql/extension/hdfs_fdw.control
|
||||
./share/postgresql/extension/log_fdw--1.0.sql
|
||||
./share/postgresql/extension/log_fdw.control
|
||||
./share/postgresql/extension/mot_fdw--1.0.sql
|
||||
|
|
@ -649,6 +647,23 @@
|
|||
./share/postgresql/timezone/Asia/Yakutsk
|
||||
./share/postgresql/timezone/Asia/Magadan
|
||||
./share/postgresql/timezone/Asia/Amman
|
||||
./share/postgresql/timezone/Asia/Barnaul
|
||||
./share/postgresql/timezone/Asia/Chita
|
||||
./share/postgresql/timezone/Asia/Tomsk
|
||||
./share/postgresql/timezone/Asia/Atyrau
|
||||
./share/postgresql/timezone/Asia/Famagusta
|
||||
./share/postgresql/timezone/Asia/Qostanay
|
||||
./share/postgresql/timezone/Asia/Srednekolymsk
|
||||
./share/postgresql/timezone/Asia/Yangon
|
||||
./share/postgresql/timezone/Pacific/Bougainville
|
||||
./share/postgresql/timezone/Antarctica/Troll
|
||||
./share/postgresql/timezone/Europe/Astrakhan
|
||||
./share/postgresql/timezone/Europe/Ulyanovsk
|
||||
./share/postgresql/timezone/Europe/Kirov
|
||||
./share/postgresql/timezone/Europe/Saratov
|
||||
./share/postgresql/timezone/America/Fort_Nelson
|
||||
./share/postgresql/timezone/America/Nuuk
|
||||
./share/postgresql/timezone/America/Punta_Arenas
|
||||
./share/postgresql/timezone/Asia/Kuching
|
||||
./share/postgresql/timezone/Asia/Novosibirsk
|
||||
./share/postgresql/timezone/Asia/Seoul
|
||||
|
|
@ -722,7 +737,6 @@
|
|||
./lib/postgresql/pgxs/src/Makefile.port
|
||||
./lib/postgresql/pgxs/src/nls-global.mk
|
||||
./lib/postgresql/pgxs/src/Makefile.global
|
||||
./lib/postgresql/pgxs/src/get_PlatForm_str.sh
|
||||
./lib/postgresql/pgxs/config/install-sh
|
||||
./lib/postgresql/euc_cn_and_mic.so
|
||||
./lib/postgresql/latin_and_mic.so
|
||||
|
|
@ -832,12 +846,10 @@
|
|||
./lib/libssl.so.1.1
|
||||
./lib/libgcc_s.so.1
|
||||
./lib/libstdc++.so.6
|
||||
./lib/libz.so
|
||||
./lib/libz.so.1
|
||||
./lib/libz.so.1.2.11
|
||||
./lib/libz.so*
|
||||
./lib/liblz4.so
|
||||
./lib/liblz4.so.1
|
||||
./lib/liblz4.so.1.9.2
|
||||
./lib/liblz4.so.1.9.3
|
||||
./lib/libcjson.so*
|
||||
./lib/libconfig.so
|
||||
./lib/libconfig.so.4
|
||||
|
|
@ -853,12 +865,6 @@
|
|||
./lib/libpcre.so*
|
||||
./lib/libsecurec.so
|
||||
./lib/libxml2.so*
|
||||
./lib/libparquet.so
|
||||
./lib/libparquet.so.14
|
||||
./lib/libparquet.so.14.1.0
|
||||
./lib/libarrow.so
|
||||
./lib/libarrow.so.14
|
||||
./lib/libarrow.so.14.1.0
|
||||
./lib/OBS.ini
|
||||
./lib/postgresql/latin2_and_win1250.so
|
||||
./lib/postgresql/euc2004_sjis2004.so
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ ENDMACRO(CHECK_CC_ENABLE)
|
|||
|
||||
function(GET_VERSIONSTR_FROMGIT ret)
|
||||
set(PG_VERSION "9.2.4")
|
||||
set(OPENGAUSS_VERSION "3.0.0")
|
||||
set(OPENGAUSS_VERSION "3.0.3")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/${openGauss}/cmake/src/buildfunction.sh --s ${PROJECT_TRUNK_DIR} OUTPUT_VARIABLE GS_VERSION_STR)
|
||||
set(PG_VERSION "${PG_VERSION}" PARENT_SCOPE)
|
||||
|
|
|
|||
|
|
@ -52,6 +52,8 @@ option(ENABLE_PRIVATEGAUSS "enable privategauss,the old is --enable-pribategauss
|
|||
option(ENABLE_LITE_MODE "enable lite in single_node mode,the old is --enable-lite-mode" OFF)
|
||||
option(ENABLE_DEBUG "enable privategauss,the old is --enable-pribategauss" OFF)
|
||||
option(ENABLE_MOT "enable mot in single_node mode,the old is --enable-mot" OFF)
|
||||
option(ENABLE_NUMA "enable numa,the old is --enable-numa" ON)
|
||||
option(ENABLE_LSE "enable lse,the old is --enable-lse" ON)
|
||||
option(ENABLE_MYSQL_FDW "enable export or import data with mysql,the old is --enable-mysql-fdw" OFF)
|
||||
option(ENABLE_ORACLE_FDW "enable export or import data with oracle,the old is --enable-oracle-fdw" OFF)
|
||||
option(BUILD_BY_CMAKE "the BUILD_BY_CMAKE is new,used in distribute pg_regress.cpp" ON)
|
||||
|
|
@ -112,7 +114,7 @@ if($ENV{DEBUG_TYPE} STREQUAL "debug" OR $ENV{DEBUG_TYPE} STREQUAL "memcheck")
|
|||
endif()
|
||||
|
||||
if(${BUILD_TUPLE} STREQUAL "aarch64")
|
||||
if($ENV{DEBUG_TYPE} STREQUAL "release" AND ${ENABLE_MULTIPLE_NODES} STREQUAL "OFF")
|
||||
if($ENV{DEBUG_TYPE} STREQUAL "release" AND ${ENABLE_MULTIPLE_NODES} STREQUAL "OFF" AND ${ENABLE_LSE} STREQUAL "ON")
|
||||
set(DB_COMMON_DEFINE ${DB_COMMON_DEFINE} -D__ARM_LSE)
|
||||
set(OS_OPTIONS -march=armv8-a+crc+lse)
|
||||
else()
|
||||
|
|
@ -120,7 +122,7 @@ if(${BUILD_TUPLE} STREQUAL "aarch64")
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if(${BUILD_TUPLE} STREQUAL "aarch64")
|
||||
if(${BUILD_TUPLE} STREQUAL "aarch64" AND ${ENABLE_NUMA} STREQUAL "ON")
|
||||
if(NOT $ENV{DEBUG_TYPE} STREQUAL "memcheck")
|
||||
set(DB_COMMON_DEFINE ${DB_COMMON_DEFINE} -D__USE_NUMA)
|
||||
endif()
|
||||
|
|
@ -171,7 +173,7 @@ set(MEMCHECK_LIBS "")
|
|||
set(MEMCHECK_LINK_DIRECTORIES "")
|
||||
if(${ENABLE_MEMORY_CHECK})
|
||||
set(MEMCHECK_FLAGS ${MEMCHECK_FLAGS} -fsanitize=address -fsanitize=leak -fno-omit-frame-pointer)
|
||||
set(MEMCHECK_LIBS ${MEMCHECK_LIBS} libasan.a)
|
||||
set(MEMCHECK_LIBS ${MEMCHECK_LIBS} -static-libasan)
|
||||
set(MEMCHECK_LINK_DIRECTORIES ${MEMCHECK_LINK_DIRECTORIES} ${MEMCHECK_LIB_PATH})
|
||||
set(GAUSSDB_CONFIGURE "${GAUSSDB_CONFIGURE} -DENABLE_MEMORY_CHECK")
|
||||
list(REMOVE_ITEM LIB_SECURE_OPTIONS -fstack-protector)
|
||||
|
|
@ -183,7 +185,7 @@ set(THREAD_LIBS "")
|
|||
set(THREAD_LINK_DIRECTORIES "")
|
||||
if(${ENABLE_THREAD_CHECK})
|
||||
set(THREAD_FLAGS ${THREAD_FLAGS} -fsanitize=thread -fno-omit-frame-pointer)
|
||||
set(THREAD_LIBS ${THREAD_LIBS} libtsan.a)
|
||||
set(THREAD_LIBS ${THREAD_LIBS} -static-libtsan)
|
||||
set(THREAD_LINK_DIRECTORIES ${THREAD_LINK_DIRECTORIES} ${MEMCHECK_LIB_PATH})
|
||||
set(GAUSSDB_CONFIGURE "${GAUSSDB_CONFIGURE} -DENABLE_THREAD_CHECK")
|
||||
endif()
|
||||
|
|
@ -244,31 +246,31 @@ add_definitions(-Wno-builtin-macro-redefined)
|
|||
SET_GCC_FLAGS(DB_COMMON_FLAGS "")
|
||||
|
||||
#hotpatch
|
||||
set(HOTPATCH_PLATFORM_LIST suse11_sp1_x86_64 suse12_sp5_x86_64 euleros2.0_sp8_aarch64 euleros2.0_sp9_aarch64 euleros2.0_sp10_aarch64 euleros2.0_sp2_x86_64 euleros2.0_sp5_x86_64 euleros2.0_sp10_x86_64 kylinv10_sp1_aarch64 kylinv10_sp1_x86_64_intel)
|
||||
set(HOTPATCH_ARM_LIST euleros2.0_sp8_aarch64 euleros2.0_sp9_aarch64 euleros2.0_sp10_aarch64 kylinv10_sp1_aarch64)
|
||||
list(FIND HOTPATCH_PLATFORM_LIST "${PLAT_FORM_NAME}" RET_HOTPATCH)
|
||||
list(FIND HOTPATCH_ARM_LIST "${PLAT_FORM_NAME}" RET_ARM_HOTPATCH)
|
||||
if(NOT ${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF)
|
||||
if(NOT "${RET_HOTPATCH}" STREQUAL "-1")
|
||||
if("${GCC_VERSION}" STREQUAL "7.3.0")
|
||||
set(RET_ARM_HOTPATCH "no")
|
||||
if("${CURRENT_ARCH}" STREQUAL "aarch64")
|
||||
set(RET_ARM_HOTPATCH "yes")
|
||||
endif()
|
||||
set(SUPPORT_HOTPATCH "no")
|
||||
if(EXISTS ${LIBHOTPATCH_LIB_PATH}/libdoprapatch.a)
|
||||
if(NOT ${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF)
|
||||
if(NOT "${ENABLE_LITE_NODES}" STREQUAL "ON")
|
||||
set(SUPPORT_HOTPATCH "yes")
|
||||
if(NOT ${RET_ARM_HOTPATCH} EQUAL -1)
|
||||
set(HOTPATCH_ATOMIC_LDS -Wl,-T${LIBHOTPATCH_TOOL_PATH}/atomic.lds)
|
||||
endif()
|
||||
else()
|
||||
set(SUPPORT_HOTPATCH "no")
|
||||
endif()
|
||||
else()
|
||||
endif()
|
||||
endif()
|
||||
if("${SUPPORT_HOTPATCH}_${RET_ARM_HOTPATCH}" STREQUAL "yes_yes")
|
||||
set(HOTPATCH_ATOMIC_LDS -Wl,-T${LIBHOTPATCH_TOOL_PATH}/atomic.lds)
|
||||
endif()
|
||||
if(EXISTS ${LIBHOTPATCH_SPEC_PATH}/x86_nop.spec)
|
||||
if("${ENABLE_DEBUG}" STREQUAL "ON")
|
||||
set(SUPPORT_HOTPATCH "no")
|
||||
endif()
|
||||
else()
|
||||
set(SUPPORT_HOTPATCH "no")
|
||||
if("${SUPPORT_HOTPATCH}" STREQUAL "yes")
|
||||
list(REMOVE_ITEM OPTIMIZE_OPTIONS -pipe)
|
||||
list(APPEND OPTIMIZE_OPTIONS -specs=${LIBHOTPATCH_SPEC_PATH}/x86_nop.spec)
|
||||
set(HOTPATCH_ATOMIC_LDS -Wl,-T${LIBHOTPATCH_TOOL_PATH}/atomic.lds)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(${ENABLE_LITE_MODE} STREQUAL "ON")
|
||||
set(SUPPORT_HOTPATCH "no")
|
||||
endif()
|
||||
|
||||
if(${ENABLE_LLVM_COMPILE} STREQUAL "ON")
|
||||
# LLVM version
|
||||
execute_process(COMMAND ${LLVM_CONFIG} --version OUTPUT_VARIABLE LLVM_VERSION_STR OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
|
|
|||
|
|
@ -714,7 +714,7 @@
|
|||
#define PGXC_VERSION_NUM
|
||||
|
||||
/* openGauss version as a number string */
|
||||
#define OPENGAUSS_VERSION_NUM_STR "3.0.0"
|
||||
#define OPENGAUSS_VERSION_NUM_STR "3.0.3"
|
||||
|
||||
/* A string containing the version number, platform, and C compiler */
|
||||
#define PG_VERSION_STR "@PG_VERSION_STR@"
|
||||
|
|
|
|||
|
|
@ -695,7 +695,7 @@
|
|||
#define PG_VERSION "9.2.4"
|
||||
|
||||
/* openGauss version as a string */
|
||||
#define OPENGAUSS_VERSION "3.0.0"
|
||||
#define OPENGAUSS_VERSION "3.0.3"
|
||||
|
||||
/* Gaussdb version as a string*/
|
||||
#define DEF_GS_VERSION "(GaussDB A 8.0.0 build 21f07aff) compiled at 2020-03-17 10:59:07 commit 7431 last mr 12039 debug"
|
||||
|
|
|
|||
|
|
@ -5,12 +5,10 @@ option(ENABLE_LLT "enable llt, current value is --enable-llt" OFF)
|
|||
option(ENABLE_UT "enable ut, current value is --enable-ut" OFF)
|
||||
option(WITH_OPENEULER_OS "Build openGauss rpm package on openEuler os" OFF)
|
||||
|
||||
execute_process(COMMAND sh ${PROJECT_SRC_DIR}/get_PlatForm_str.sh OUTPUT_VARIABLE PLAT_FORM_STR OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
#############################################################################
|
||||
# get the depend lib path
|
||||
# 1. libedit, event, libcgroup, kerberos, zlib1.2.11, boost,
|
||||
# libxml and protobuf are support parameter --enable-llt and --enable-ut;
|
||||
# libxml are support parameter --enable-llt and --enable-ut;
|
||||
# $(LIB_SUPPORT_LLT)
|
||||
# 2. Huawei_Secure_C, gtest, mockcpp, unixodbc, libstd
|
||||
# and openssl not support parameter --enable-llt and --enable-ut;
|
||||
|
|
@ -37,12 +35,11 @@ endif()
|
|||
|
||||
set(LIB_UNIFIED_SUPPORT comm)
|
||||
set(MEMCHECK_BUILD_TYPE debug)
|
||||
set(DEPENDENCY_PATH ${3RD_PATH}/dependency/${PLAT_FORM_STR})
|
||||
set(PLATFORM_PATH ${3RD_PATH}/platform/${PLAT_FORM_STR})
|
||||
set(BUILDTOOLS_PATH ${3RD_PATH}/buildtools/${PLAT_FORM_STR})
|
||||
set(COMPONENT_PATH ${3RD_PATH}/component/${PLAT_FORM_STR})
|
||||
set(DEPENDENCY_PATH ${3RD_PATH}/kernel/dependency)
|
||||
set(PLATFORM_PATH ${3RD_PATH}/kernel/platform)
|
||||
set(BUILDTOOLS_PATH ${3RD_PATH}/buildtools)
|
||||
set(COMPONENT_PATH ${3RD_PATH}/kernel/component)
|
||||
|
||||
set(MEMCHECK_HOME ${DEPENDENCY_PATH}/memcheck/${MEMCHECK_BUILD_TYPE})
|
||||
set(CJSON_HOME ${DEPENDENCY_PATH}/cjson/${SUPPORT_LLT})
|
||||
set(ETCD_HOME ${DEPENDENCY_PATH}/etcd/${LIB_UNIFIED_SUPPORT})
|
||||
set(EVENT_HOME ${DEPENDENCY_PATH}/event/${LIB_UNIFIED_SUPPORT})
|
||||
|
|
@ -59,8 +56,6 @@ set(CGROUP_HOME ${DEPENDENCY_PATH}/libcgroup/${SUPPORT_LLT})
|
|||
set(CURL_HOME ${DEPENDENCY_PATH}/libcurl/${SUPPORT_LLT})
|
||||
set(EDIT_HOME ${DEPENDENCY_PATH}/libedit/${SUPPORT_LLT})
|
||||
set(OBS_HOME ${DEPENDENCY_PATH}/libobs/${LIB_UNIFIED_SUPPORT})
|
||||
set(ORC_HOME ${DEPENDENCY_PATH}/liborc/${SUPPORT_LLT})
|
||||
set(PARQUET_HOME ${DEPENDENCY_PATH}/libparquet/${SUPPORT_LLT})
|
||||
set(XML2_HOME ${DEPENDENCY_PATH}/libxml2/${SUPPORT_LLT})
|
||||
set(LLVM_HOME ${DEPENDENCY_PATH}/llvm/${LIB_UNIFIED_SUPPORT})
|
||||
set(LZ4_HOME ${DEPENDENCY_PATH}/lz4/${SUPPORT_LLT})
|
||||
|
|
@ -68,15 +63,12 @@ set(NANOMSG_HOME ${DEPENDENCY_PATH}/nanomsg/${LIB_UNIFIED_SUPPORT})
|
|||
set(NCURSES_HOME ${DEPENDENCY_PATH}/ncurses/${SUPPORT_LLT})
|
||||
set(OPENSSL_HOME ${DEPENDENCY_PATH}/openssl/${LIB_UNIFIED_SUPPORT})
|
||||
set(PLJAVA_HOME ${DEPENDENCY_PATH}/pljava/${LIB_UNIFIED_SUPPORT})
|
||||
if (EXISTS "${3RD_PATH}/platform/openjdk8/${BUILD_TUPLE}/jdk")
|
||||
set(JAVA_HOME ${3RD_PATH}/platform/openjdk8/${BUILD_TUPLE}/jdk)
|
||||
if (EXISTS "${PLATFORM_PATH}/openjdk8/${BUILD_TUPLE}/jdk")
|
||||
set(JAVA_HOME ${PLATFORM_PATH}/openjdk8/${BUILD_TUPLE}/jdk)
|
||||
else()
|
||||
set(JAVA_HOME ${3RD_PATH}/platform/huaweijdk8/${BUILD_TUPLE}/jdk)
|
||||
set(JAVA_HOME ${PLATFORM_PATH}/huaweijdk8/${BUILD_TUPLE}/jdk)
|
||||
endif()
|
||||
set(PROTOBUF_HOME ${DEPENDENCY_PATH}/protobuf/${SUPPORT_LLT})
|
||||
set(THRIFT_HOME ${DEPENDENCY_PATH}/thrift)
|
||||
set(SNAPPY_HOME ${DEPENDENCY_PATH}/snappy/${LIB_UNIFIED_SUPPORT})
|
||||
set(ZLIB_HOME ${DEPENDENCY_PATH}/zlib1.2.11/${SUPPORT_LLT})
|
||||
set(ZLIB_HOME ${DEPENDENCY_PATH}/zlib1.2.12/${SUPPORT_LLT})
|
||||
set(XGBOOST_HOME ${DEPENDENCY_PATH}/xgboost/${SUPPORT_LLT})
|
||||
set(ZSTD_HOME ${DEPENDENCY_PATH}/zstd)
|
||||
set(LICENSE_HOME ${PLATFORM_PATH}/AdaptiveLM_C_V100R005C01SPC002/${SUPPORT_LLT})
|
||||
|
|
@ -86,19 +78,19 @@ set(DCF_HOME ${COMPONENT_PATH}/dcf)
|
|||
|
||||
set(MOCKCPP_HOME ${BUILDTOOLS_PATH}/mockcpp/${LIB_UNIFIED_SUPPORT})
|
||||
set(GTEST_HOME ${BUILDTOOLS_PATH}/gtest/${LIB_UNIFIED_SUPPORT})
|
||||
set(LIBSTD_HOME ${BUILDTOOLS_PATH}/gcc${GCC_VERSION_LIT}/${LIB_UNIFIED_SUPPORT})
|
||||
set(MASSTREE_HOME ${BUILDTOOLS_PATH}/masstree/${LIB_UNIFIED_SUPPORT})
|
||||
set(NUMA_HOME ${DEPENDENCY_PATH}/numactl/${SUPPORT_LLT})
|
||||
set(ARROW_HOME ${DEPENDENCY_PATH}/libparquet/${SUPPORT_LLT})
|
||||
set(BOOST_HOME ${DEPENDENCY_PATH}/boost/${SUPPORT_LLT})
|
||||
set(ODBC_HOME ${3RD_PATH}/dependency/${PLAT_FORM_STR}/unixodbc)
|
||||
set(ODBC_HOME ${DEPENDENCY_PATH}/unixodbc)
|
||||
set(MASSTREE_HOME ${DEPENDENCY_PATH}/masstree/${LIB_UNIFIED_SUPPORT})
|
||||
set(LCOV_HOME ${BUILDTOOLS_PATH}/gcc${GCC_VERSION_LIT}/gcc/lib/gcc/${HOST_TUPLE})
|
||||
|
||||
#############################################################################
|
||||
# memcheck
|
||||
#############################################################################
|
||||
set(MEMCHECK_LIB_PATH ${MEMCHECK_HOME}/gcc${GCC_VERSION}/lib/)
|
||||
set(GCC_LIB_PATH $ENV{GCC_INSTALL_HOME})
|
||||
set(MEMCHECK_LIB_PATH $ENV{GCC_INSTALL_HOME}/lib64/)
|
||||
if("${GCC_LIB_PATH}" STREQUAL "")
|
||||
set(GCC_LIB_PATH ${BUILDTOOLS_PATH}/gcc${GCC_VERSION_LIT}/gcc)
|
||||
set(MEMCHECK_HOME ${DEPENDENCY_PATH}/memcheck/${MEMCHECK_BUILD_TYPE})
|
||||
set(MEMCHECK_LIB_PATH ${MEMCHECK_HOME}/gcc${GCC_VERSION}/lib/)
|
||||
endif()
|
||||
|
||||
#############################################################################
|
||||
# lcov
|
||||
|
|
@ -205,18 +197,6 @@ set(LIBEDIT_LIB_PATH ${EDIT_HOME}/lib)
|
|||
set(LIBOBS_INCLUDE_PATH ${OBS_HOME}/include)
|
||||
set(LIBOBS_LIB_PATH ${OBS_HOME}/lib)
|
||||
|
||||
#############################################################################
|
||||
# orc component
|
||||
#############################################################################
|
||||
set(LIBORC_INCLUDE_PATH ${ORC_HOME}/include)
|
||||
set(LIBORC_LIB_PATH ${ORC_HOME}/lib)
|
||||
|
||||
#############################################################################
|
||||
# parquet component
|
||||
#############################################################################
|
||||
set(LIBPARQUET_INCLUDE_PATH ${PARQUET_HOME}/include)
|
||||
set(LIBPARQUET_LIB_PATH ${PARQUET_HOME}/lib)
|
||||
|
||||
#############################################################################
|
||||
# xml2 component
|
||||
#############################################################################
|
||||
|
|
@ -258,25 +238,6 @@ set(LIBOPENSSL_LIB_PATH ${OPENSSL_HOME}/lib)
|
|||
set(LIBOPENSSL_SSL_PATH ${OPENSSL_HOME}/ssl)
|
||||
set(LIBOPENSSL_INCLUDE_PATH ${OPENSSL_HOME}/include)
|
||||
|
||||
#############################################################################
|
||||
# protobuf component
|
||||
#############################################################################
|
||||
set(PROTOBUF_INCLUDE_PATH ${PROTOBUF_HOME}/include)
|
||||
set(PROTOBUF_LIB_PATH ${PROTOBUF_HOME}/lib)
|
||||
|
||||
#############################################################################
|
||||
# thrift component
|
||||
#############################################################################
|
||||
set(LIBTHRIFT_INCLUDE_PATH ${THRIFT_HOME}/include)
|
||||
set(LIBTHRIFT_LIB_PATH ${THRIFT_HOME}/lib)
|
||||
set(LIBTHRIFT_BIN_PATH ${THRIFT_HOME}/bin)
|
||||
|
||||
#############################################################################
|
||||
# snappy component
|
||||
#############################################################################
|
||||
set(SNAPPY_INCLUDE_PATH ${SNAPPY_HOME}/include)
|
||||
set(SNAPPY_LIB_PATH ${SNAPPY_HOME}/lib)
|
||||
|
||||
#############################################################################
|
||||
# zlib component
|
||||
#############################################################################
|
||||
|
|
@ -314,6 +275,7 @@ set(LIBHOTPATCH_INCLUDE_PATH ${HOTPATCH_HOME}/include)
|
|||
set(LIBHOTPATCH_LIB_PATH ${HOTPATCH_HOME}/lib)
|
||||
set(LIBHOTPATCH_TOOL_PATH ${HOTPATCH_HOME}/tool)
|
||||
set(LIBHOTPATCH_CONFIG_PATH ${HOTPATCH_HOME}/config)
|
||||
set(LIBHOTPATCH_SPEC_PATH ${HOTPATCH_HOME}/spec)
|
||||
|
||||
#############################################################################
|
||||
# secure component
|
||||
|
|
@ -327,12 +289,6 @@ set(SECURE_LIB_PATH ${SECURE_HOME}/lib)
|
|||
set(NUMA_INCLUDE_PATH ${NUMA_HOME}/include)
|
||||
set(NUMA_LIB_PATH ${NUMA_HOME}/lib)
|
||||
|
||||
#############################################################################
|
||||
# arrow component
|
||||
#############################################################################
|
||||
set(ARROW_INCLUDE_PATH ${ARROW_HOME}/include)
|
||||
set(ARROW_LIB_PATH ${ARROW_HOME}/lib)
|
||||
|
||||
#############################################################################
|
||||
# odbc component
|
||||
#############################################################################
|
||||
|
|
|
|||
|
|
@ -2195,7 +2195,7 @@ PACKAGE_VERSION='9.2.4'
|
|||
# Postgres-XC 1.1devel is based on PostgreSQL 9.2.4
|
||||
PACKAGE_XC_VERSION='1.1'
|
||||
# openGauss is based on PostgreSQL 9.2.4 and it will be the Kernel of GaussDB database
|
||||
OPENGAUSS_VERSION='3.0.0'
|
||||
OPENGAUSS_VERSION='3.0.3'
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define PG_VERSION "$PACKAGE_VERSION"
|
||||
|
|
@ -5890,8 +5890,7 @@ fi
|
|||
|
||||
llvm_version_str='10.0.0'
|
||||
if [[ ! -z "${with_3rdpartydir}" ]] && [[ "$enable_lite_mode" != yes ]]; then
|
||||
platstr=$(sh src/get_PlatForm_str.sh)
|
||||
llvm_version_str=`${with_3rdpartydir}/dependency/${platstr}/llvm/comm/bin/llvm-config --version`
|
||||
llvm_version_str=`${with_3rdpartydir}/kernel/dependency/llvm/comm/bin/llvm-config --version`
|
||||
fi
|
||||
llvm_major_version=$(echo $llvm_version_str | awk -F "." '{print $1}')
|
||||
llvm_minor_version=$(echo $llvm_version_str | awk -F "." '{print $2}')
|
||||
|
|
@ -6622,18 +6621,17 @@ fi
|
|||
#
|
||||
with_jdk=''
|
||||
if [[ ! -z "${with_3rdpartydir}" ]] && [[ "$with_openeuler_os" != yes ]]; then
|
||||
platstr=$(sh src/get_PlatForm_str.sh)
|
||||
cpuarch=$(uname -m)
|
||||
for d in "openjdk8" "huaweijdk8"; do
|
||||
$as_echo "$as_me:$LINENO: checking for jdk in ${with_3rdpartydir}/platform/${d}/${cpuarch}" >&5
|
||||
if [ ! -d "${with_3rdpartydir}/platform/${d}/${cpuarch}" ]; then
|
||||
$as_echo "$as_me:$LINENO: checking for jdk in ${with_3rdpartydir}/kernel/platform/${d}/${cpuarch}" >&5
|
||||
if [ ! -d "${with_3rdpartydir}/kernel/platform/${d}/${cpuarch}" ]; then
|
||||
$as_echo "$as_me:$LINENO: result: no" >&5
|
||||
continue
|
||||
fi
|
||||
|
||||
for d2 in $(ls "${with_3rdpartydir}/platform/${d}/${cpuarch}" | sort -r 2>/dev/null); do
|
||||
if [ -f "${with_3rdpartydir}/platform/${d}/${cpuarch}/${d2}/jre/bin/java" ]; then
|
||||
with_jdk="${with_3rdpartydir}/platform/${d}/${cpuarch}/${d2}"
|
||||
for d2 in $(ls "${with_3rdpartydir}/kernel/platform/${d}/${cpuarch}" | sort -r 2>/dev/null); do
|
||||
if [ -f "${with_3rdpartydir}/kernel/platform/${d}/${cpuarch}/${d2}/jre/bin/java" ]; then
|
||||
with_jdk="${with_3rdpartydir}/kernel/platform/${d}/${cpuarch}/${d2}"
|
||||
break;
|
||||
fi
|
||||
done
|
||||
|
|
@ -6643,15 +6641,15 @@ if [[ ! -z "${with_3rdpartydir}" ]] && [[ "$with_openeuler_os" != yes ]]; then
|
|||
break;
|
||||
fi
|
||||
|
||||
$as_echo "$as_me:$LINENO: checking for jdk in ${with_3rdpartydir}/platform/${platstr}/${d}" >&5
|
||||
if [ ! -d "${with_3rdpartydir}/platform/${platstr}/${d}" ]; then
|
||||
$as_echo "$as_me:$LINENO: checking for jdk in ${with_3rdpartydir}/kernel/platform/${d}" >&5
|
||||
if [ ! -d "${with_3rdpartydir}/kernel/platform/${d}" ]; then
|
||||
$as_echo "$as_me:$LINENO: result: no" >&5
|
||||
continue
|
||||
fi
|
||||
|
||||
for d2 in $(ls "${with_3rdpartydir}/platform/${platstr}/${d}" | sort -r 2>/dev/null); do
|
||||
if [ -f "${with_3rdpartydir}/platform/${platstr}/${d}/${d2}/jre/bin/java" ]; then
|
||||
with_jdk="${with_3rdpartydir}/platform/${platstr}/${d}/${d2}"
|
||||
for d2 in $(ls "${with_3rdpartydir}/kernel/platform/${d}" | sort -r 2>/dev/null); do
|
||||
if [ -f "${with_3rdpartydir}/kernel/platform/${d}/${d2}/jre/bin/java" ]; then
|
||||
with_jdk="${with_3rdpartydir}/kernel/platform/${d}/${d2}"
|
||||
break;
|
||||
fi
|
||||
done
|
||||
|
|
@ -29832,8 +29830,8 @@ CFLAGS="-DSTREAMPLAN $CFLAGS"
|
|||
# force set char to signed char
|
||||
CFLAGS="-fsigned-char $CFLAGS"
|
||||
|
||||
platform_version=`sh ./src/get_PlatForm_str.sh`
|
||||
is_euler=`echo $platform_version | grep euleros`
|
||||
release_file=`find /etc/ -name "euleros-release"`
|
||||
is_euler=`echo $release_file | grep EulerOS`
|
||||
# New gcc version should be compatible to old one
|
||||
if test "$CC_VERSION" = "$NEW_GCC"; then
|
||||
CFLAGS=" -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 $CFLAGS -fno-aggressive-loop-optimizations -Wno-attributes -fno-omit-frame-pointer -fno-expensive-optimizations"
|
||||
|
|
|
|||
|
|
@ -4,10 +4,9 @@ set(CMAKE_VERBOSE_MAKEFILE ON)
|
|||
set(CMAKE_RULE_MESSAGES OFF)
|
||||
set(CMAKE_SKIP_RPATH TRUE)
|
||||
|
||||
INCLUDE_DIRECTORIES(${LIBTHRIFT_INCLUDE_PATH} ${SNAPPY_INCLUDE_PATH} ${CJSON_INCLUDE_PATH} ${BOOST_INCLUDE_PATH})
|
||||
INCLUDE_DIRECTORIES(${CJSON_INCLUDE_PATH} ${BOOST_INCLUDE_PATH})
|
||||
|
||||
set(CMAKE_MODULE_PATH
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/carbondata
|
||||
set(CMAKE_MODULE_PATH
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/gsredistribute
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/hstore
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_decoding
|
||||
|
|
@ -21,7 +20,6 @@ set(CMAKE_MODULE_PATH
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/pagehack
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pg_xlogdump
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/file_fdw
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/hdfs_fdw
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/log_fdw
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/gc_fdw
|
||||
)
|
||||
|
|
@ -40,7 +38,6 @@ add_subdirectory(dummy_seclabel)
|
|||
add_subdirectory(pagehack)
|
||||
add_subdirectory(pg_xlogdump)
|
||||
add_subdirectory(file_fdw)
|
||||
add_subdirectory(hdfs_fdw)
|
||||
add_subdirectory(log_fdw)
|
||||
if("${ENABLE_MULTIPLE_NODES}" STREQUAL "OFF")
|
||||
add_subdirectory(gc_fdw)
|
||||
|
|
|
|||
|
|
@ -61,6 +61,19 @@ static int32 gbt_textcmp(const void* a, const void* b, Oid collation)
|
|||
return DatumGetInt32(DirectFunctionCall2Coll(bttextcmp, collation, PointerGetDatum(a), PointerGetDatum(b)));
|
||||
}
|
||||
|
||||
static Datum gbt_rtrim1(PG_FUNCTION_ARGS)
|
||||
{
|
||||
text* string = PG_GETARG_TEXT_PP(0);
|
||||
text* ret = NULL;
|
||||
|
||||
ret = dotrim(VARDATA_ANY(string), VARSIZE_ANY_EXHDR(string), " ", 1, false, true);
|
||||
|
||||
if ((ret == NULL || 0 == VARSIZE_ANY_EXHDR(ret)) && u_sess->attr.attr_sql.sql_compatibility == A_FORMAT)
|
||||
PG_RETURN_NULL();
|
||||
else
|
||||
PG_RETURN_TEXT_P(ret);
|
||||
}
|
||||
|
||||
static gbtree_vinfo tinfo = {
|
||||
gbt_t_text, 0, FALSE, gbt_textgt, gbt_textge, gbt_texteq, gbt_textle, gbt_textlt, gbt_textcmp, NULL};
|
||||
|
||||
|
|
@ -91,7 +104,7 @@ Datum gbt_bpchar_compress(PG_FUNCTION_ARGS)
|
|||
|
||||
if (entry->leafkey) {
|
||||
|
||||
Datum d = DirectFunctionCall1(rtrim1, entry->key);
|
||||
Datum d = DirectFunctionCall1(gbt_rtrim1, entry->key);
|
||||
GISTENTRY trim;
|
||||
|
||||
gistentryinit(trim, d, entry->rel, entry->page, entry->offset, TRUE);
|
||||
|
|
@ -135,7 +148,7 @@ Datum gbt_bpchar_consistent(PG_FUNCTION_ARGS)
|
|||
bool retval = false;
|
||||
GBT_VARKEY* key = (GBT_VARKEY*)DatumGetPointer(entry->key);
|
||||
GBT_VARKEY_R r = gbt_var_key_readable(key);
|
||||
void* trim = (void*)DatumGetPointer(DirectFunctionCall1(rtrim1, PointerGetDatum(query)));
|
||||
void* trim = (void*)DatumGetPointer(DirectFunctionCall1(gbt_rtrim1, PointerGetDatum(query)));
|
||||
|
||||
/* All cases served by this function are exact */
|
||||
*recheck = false;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* option_single.cpp
|
||||
* option_single.cpp
|
||||
* FDW option handling for gc_fdw
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* contrib/gc_fdw/option_single.cpp
|
||||
* contrib/gc_fdw/option_single.cpp
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
*/
|
||||
#include "postgres.h"
|
||||
#include "knl/knl_variable.h"
|
||||
|
||||
|
|
@ -21,11 +21,11 @@
|
|||
#include "commands/extension.h"
|
||||
#include "foreign/foreign.h"
|
||||
#include "gaussdb_version.h"
|
||||
#include "utils/builtins.h"
|
||||
|
||||
PG_FUNCTION_INFO_V1(gc_fdw_validator);
|
||||
#include "utils/builtins.h"
|
||||
|
||||
PG_FUNCTION_INFO_V1(gc_fdw_validator);
|
||||
Datum gc_fdw_validator(PG_FUNCTION_ARGS)
|
||||
{
|
||||
{
|
||||
PG_RETURN_VOID();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
#This is the main CMAKE for build all components.
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/orc.cpp
|
||||
COMMAND protoc-c --c_out=${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/orc.proto
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/orc.proto
|
||||
COMMENT "Now Generating orc.cpp"
|
||||
)
|
||||
|
||||
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_hdfs_fdw_SRC)
|
||||
|
||||
set(TGT_hdfs_fdw_INC
|
||||
${LIBORC_INCLUDE_PATH}
|
||||
${PROJECT_SRC_DIR}/include
|
||||
${PROJECT_OPENGS_DIR}/contrib/hdfs_fdw/include
|
||||
${PROJECT_OPENGS_DIR}/contrib
|
||||
)
|
||||
|
||||
if("${ENABLE_MULTIPLE_NODES}" STREQUAL "ON")
|
||||
list(APPEND TGT_hdfs_fdw_INC ${PROJECT_TRUNK_DIR}/contrib/carbondata)
|
||||
endif()
|
||||
|
||||
set(hdfs_fdw_DEF_OPTIONS ${MACRO_OPTIONS})
|
||||
set(hdfs_fdw_COMPILE_OPTIONS ${OPTIMIZE_OPTIONS} ${OS_OPTIONS} ${PROTECT_OPTIONS} ${WARNING_OPTIONS} ${BIN_SECURE_OPTIONS} ${CHECK_OPTIONS})
|
||||
set(hdfs_fdw_LINK_OPTIONS ${BIN_LINK_OPTIONS})
|
||||
add_static_objtarget(contrib_hdfs_fdw TGT_hdfs_fdw_SRC TGT_hdfs_fdw_INC "${hdfs_fdw_DEF_OPTIONS}" "${hdfs_fdw_COMPILE_OPTIONS}" "${hdfs_fdw_LINK_OPTIONS}")
|
||||
if("${ENABLE_MULTIPLE_NODES}" STREQUAL "ON")
|
||||
add_dependencies(contrib_hdfs_fdw carbondata_static)
|
||||
endif()
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/hdfs_fdw.control
|
||||
DESTINATION share/postgresql/extension/
|
||||
)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/hdfs_fdw--1.0.sql
|
||||
DESTINATION share/postgresql/extension/
|
||||
)
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
# contrib/hdfs_fdw/Makefile
|
||||
|
||||
MODULE_big = hdfs_fdw
|
||||
OBJS = hdfs_fdw.o scheduler.o
|
||||
SHLIB_LINK = -lz $(shell pkg-config --libs libprotobuf)
|
||||
top_builddir = ../..
|
||||
EXTENSION = hdfs_fdw
|
||||
DATA = hdfs_fdw--1.0.sql hdfs_fdw.control
|
||||
|
||||
REGRESS = hdfs_fdw
|
||||
|
||||
EXTRA_CLEAN = sql/hdfs_fdw.sql expected/hdfs_fdw.out
|
||||
|
||||
ifdef USE_PGXS
|
||||
PG_CONFIG = pg_config
|
||||
PGXS := $(shell $(PG_CONFIG) --pgxs)
|
||||
include $(PGXS)
|
||||
else
|
||||
subdir = contrib/hdfs_fdw
|
||||
top_builddir = ../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
include $(top_srcdir)/src/gausskernel/common.mk
|
||||
override CXXFLAGS += -I$(top_builddir)/contrib/hdfs_fdw/include -I$(LIBCARBONDATA_INCLUDE_PATH) -I$(LIBTHRIFT_INCLUDE_PATH)
|
||||
install:install-data
|
||||
|
||||
.PHONY: install-data
|
||||
install-data: installdirs
|
||||
$(INSTALL_DATA) $(addprefix $(srcdir)/, $(DATA)) '$(DESTDIR)$(datadir)/extension/'
|
||||
|
||||
installdirs:
|
||||
$(MKDIR_P) '$(DESTDIR)$(datadir)/extension'
|
||||
|
||||
uninstall:uninstall-data
|
||||
|
||||
.PHONY: uninstall-data
|
||||
uninstall-data:
|
||||
rm -f $(addprefix '$(DESTDIR)$(datadir)/extension'/, $(notdir $(DATA)))
|
||||
endif
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
/* contrib/hdfs_fdw/hdfs_fdw--1.0.sql */
|
||||
|
||||
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
||||
\echo Use "CREATE EXTENSION hdfs_fdw" to load this file. \quit
|
||||
|
||||
CREATE FUNCTION pg_catalog.hdfs_fdw_handler()
|
||||
RETURNS fdw_handler
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hdfs_fdw_validator(text[], oid)
|
||||
RETURNS void
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT NOT FENCED;
|
||||
|
||||
CREATE FOREIGN DATA WRAPPER hdfs_fdw
|
||||
HANDLER hdfs_fdw_handler
|
||||
VALIDATOR hdfs_fdw_validator;
|
||||
/* we define the unified FDW named dfs_fdw. The hdfs_fdw will be reserved */
|
||||
/* in order to compate with older version. */
|
||||
CREATE FOREIGN DATA WRAPPER dfs_fdw
|
||||
HANDLER hdfs_fdw_handler
|
||||
VALIDATOR hdfs_fdw_validator;
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# hdfs_fdw extension
|
||||
comment = 'foreign-data wrapper for flat file access'
|
||||
default_version = '1.0'
|
||||
module_pathname = '$libdir/hdfs_fdw'
|
||||
relocatable = true
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,75 +0,0 @@
|
|||
#ifndef HDFS_FDW_h
|
||||
#define HDFS_FDW_h
|
||||
#include "access/dfs/dfs_am.h"
|
||||
#include "foreign/foreign.h"
|
||||
#include "nodes/execnodes.h"
|
||||
#include "nodes/pg_list.h"
|
||||
|
||||
#define HDFS_TUPLE_COST_MULTIPLIER 5
|
||||
|
||||
typedef enum OptionType {
|
||||
T_INVALID_TYPE = 0x0000,
|
||||
T_SERVER_COMMON_OPTION = 0x0001 << 1,
|
||||
T_OBS_SERVER_OPTION = 0x0001 << 2,
|
||||
T_HDFS_SERVER_OPTION = 0x0001 << 3,
|
||||
T_DUMMY_SERVER_OPTION = 0x0001 << 4,
|
||||
T_FOREIGN_TABLE_COMMON_OPTION = 0x0001 << 5,
|
||||
T_FOREIGN_TABLE_OBS_OPTION = 0x0001 << 6,
|
||||
T_FOREIGN_TABLE_HDFS_OPTION = 0x0001 << 7,
|
||||
T_SERVER_TYPE_OPTION = 0x0001 << 8,
|
||||
T_FOREIGN_TABLE_TEXT_OPTION = 0x0001 << 9,
|
||||
T_FOREIGN_TABLE_CSV_OPTION = 0x0001 << 10
|
||||
} OptionType;
|
||||
|
||||
#define OBS_SERVER_OPTION (T_SERVER_COMMON_OPTION | T_OBS_SERVER_OPTION)
|
||||
#define HDFS_SERVER_OPTION (T_SERVER_COMMON_OPTION | T_HDFS_SERVER_OPTION)
|
||||
#define DUMMY_SERVER_OPTION (T_SERVER_COMMON_OPTION | T_DUMMY_SERVER_OPTION)
|
||||
#define OBS_FOREIGN_TABLE_OPTION \
|
||||
(T_FOREIGN_TABLE_COMMON_OPTION | T_FOREIGN_TABLE_OBS_OPTION | T_FOREIGN_TABLE_CSV_OPTION | \
|
||||
T_FOREIGN_TABLE_TEXT_OPTION)
|
||||
|
||||
#define HDFS_FOREIGN_TABLE_OPTION \
|
||||
(T_FOREIGN_TABLE_COMMON_OPTION | T_FOREIGN_TABLE_HDFS_OPTION | T_FOREIGN_TABLE_CSV_OPTION | \
|
||||
T_FOREIGN_TABLE_TEXT_OPTION)
|
||||
|
||||
#define SERVER_TYPE_OPTION (T_SERVER_TYPE_OPTION)
|
||||
|
||||
#define DFS_OPTION_ARRAY \
|
||||
(T_SERVER_COMMON_OPTION | T_HDFS_SERVER_OPTION | T_OBS_SERVER_OPTION | T_DUMMY_SERVER_OPTION | \
|
||||
HDFS_FOREIGN_TABLE_OPTION | OBS_FOREIGN_TABLE_OPTION)
|
||||
|
||||
#define SERVER_TYPE_OPTION_ARRAY (T_SERVER_TYPE_OPTION)
|
||||
|
||||
/*
|
||||
* HdfsValidOption keeps an option name and a context. When an option is passed
|
||||
* into hdfs_fdw objects (server and foreign table), we compare this option's
|
||||
* name and context against those of valid options.
|
||||
*/
|
||||
typedef struct HdfsValidOption {
|
||||
const char* optionName;
|
||||
uint32 optType;
|
||||
} HdfsValidOption;
|
||||
|
||||
/*
|
||||
* FDW-specific information for RelOptInfo.fdw_private.
|
||||
*/
|
||||
typedef struct HdfsFdwPlanState {
|
||||
double tuplesCount; /* estimate of number of rows in file */
|
||||
HdfsFdwOptions* hdfsFdwOptions;
|
||||
} HdfsFdwPlanState;
|
||||
|
||||
/*
|
||||
* HdfsFdwExecState keeps foreign data wrapper specific execution state that we
|
||||
* create and hold onto when executing the query.
|
||||
*/
|
||||
typedef struct HdfsFdwExecState {
|
||||
dfs::reader::ReaderState* readerState;
|
||||
|
||||
dfs::reader::Reader* fileReader;
|
||||
} HdfsFdwExecState;
|
||||
|
||||
/* Function declarations for foreign data wrapper */
|
||||
extern "C" Datum hdfs_fdw_handler(PG_FUNCTION_ARGS);
|
||||
extern "C" Datum hdfs_fdw_validator(PG_FUNCTION_ARGS);
|
||||
|
||||
#endif /* hdfs_fdw_H */
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
#ifndef SCHEDULER_H_
|
||||
#define SCHEDULER_H_
|
||||
#include "hdfs_fdw.h"
|
||||
#include "foreign/foreign.h"
|
||||
#include "nodes/execnodes.h"
|
||||
#include "nodes/pg_list.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define PGXC_NODE_ID 9015
|
||||
#define MAX_FOREIGN_PARTITIONKEY_NUM 4
|
||||
|
||||
#define MASK_HIGH_UINT32(x) (x & (uint64)0xFFFFFFFF)
|
||||
#define GETIP(x) ((uint32)(x & (uint64)0xFFFFFFFF))
|
||||
#define GETOID(x) ((uint32)(x >> 32))
|
||||
|
||||
#define LOCAL_IP "127.0.0.1"
|
||||
#define LOCAL_HOST "localhost"
|
||||
#define MAX_HOST_NAME_LENGTH 255
|
||||
#define EXTRA_IP_NUM 32
|
||||
#define MAX_ROUNDROBIN_AVAILABLE_DN_NUM 256
|
||||
#define MAX_UINT32 (0xFFFFFFFF)
|
||||
|
||||
typedef struct dnWork {
|
||||
Oid nodeOid;
|
||||
List* toDoList;
|
||||
} dnWork;
|
||||
|
||||
typedef struct dnInfoStat {
|
||||
uint32 ipAddr;
|
||||
uint32 Start;
|
||||
uint32 Cnt;
|
||||
} dnInfoStat;
|
||||
|
||||
/*
|
||||
* This is executed on CN to schedule the files to each dn for load balance and use cache.
|
||||
* add param isAnalyze because the func CNScheduling has called by foreign scan which get random dn for schedule,
|
||||
* the random dn also changed, we should get a determinded dn to get single stats for global stats in order to get
|
||||
* stable stats.
|
||||
*/
|
||||
List* CNScheduling(Oid foreignTableId, Index relId, List* columnList, List* scanClauses, List*& prunningResult,
|
||||
List*& partList, char locatorType, bool isAnalyze, List* allColumnList, int16 attrNum, int64* fileNum);
|
||||
|
||||
/* CNSchedulingForAnalyze
|
||||
* firstly calculate the files to be analyzed,and because we just do analyze in one datanode,
|
||||
* the analyze files is about (total files) /(datanode number)
|
||||
* we will find the suitable datanode to do the anlayze and return
|
||||
* add param isglbstats in order to discriminate the processing of single stats and global stats.
|
||||
* we only get files in one dn for single stats, and we must get files in all dns for global stats.
|
||||
*/
|
||||
List* CNSchedulingForAnalyze(unsigned int* totalFilesNum, unsigned int* numOfDns, Oid foreignTableId, bool isglbstats);
|
||||
|
||||
/*
|
||||
* Assign the list of splits scheduled by CN to the current data node.
|
||||
* @_in_param splitToDnMap: The list of all the splits which map to each data node.
|
||||
* @_in_out_param readerState: The state stores the splits of the current data node.
|
||||
* @_in_param conn: The connector of dfs(hdfs or obs)
|
||||
*/
|
||||
void AssignSplits(List* splitToDnMap, dfs::reader::ReaderState* readerState, dfs::DFSConnector* conn);
|
||||
|
||||
/*
|
||||
* Search the catalog pg_partition to build a partition list to return.
|
||||
*
|
||||
* @_in param relid: The oid of the foreign table by which we search the partition list from the
|
||||
* catalog.
|
||||
* @return Return the partition list we get.
|
||||
*/
|
||||
List* GetPartitionList(Oid relid);
|
||||
|
||||
#endif /* SCHEDULER_H_ */
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
#!/bin/bash
|
||||
#Copyright (c) 2020 Huawei Technologies Co.,Ltd.
|
||||
#
|
||||
#openGauss is licensed under Mulan PSL v2.
|
||||
#You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
#You may obtain a copy of Mulan PSL v2 at:
|
||||
#
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# init.sh
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# contrib/hdfs_fdw/init.sh
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
protoc-c --c_out=. orc.proto
|
||||
|
|
@ -1,149 +0,0 @@
|
|||
message IntegerStatistics {
|
||||
optional sint64 minimum = 1;
|
||||
optional sint64 maximum = 2;
|
||||
optional sint64 sum = 3;
|
||||
}
|
||||
|
||||
message DoubleStatistics {
|
||||
optional double minimum = 1;
|
||||
optional double maximum = 2;
|
||||
optional double sum = 3;
|
||||
}
|
||||
|
||||
message StringStatistics {
|
||||
optional string minimum = 1;
|
||||
optional string maximum = 2;
|
||||
}
|
||||
|
||||
message BucketStatistics {
|
||||
repeated uint64 count = 1 [packed=true];
|
||||
}
|
||||
|
||||
message DecimalStatistics {
|
||||
optional string minimum = 1;
|
||||
optional string maximum = 2;
|
||||
optional string sum = 3;
|
||||
}
|
||||
|
||||
message DateStatistics {
|
||||
// min,max values saved as days since epoch
|
||||
optional sint32 minimum = 1;
|
||||
optional sint32 maximum = 2;
|
||||
}
|
||||
|
||||
message ColumnStatistics {
|
||||
optional uint64 numberOfValues = 1;
|
||||
optional IntegerStatistics intStatistics = 2;
|
||||
optional DoubleStatistics doubleStatistics = 3;
|
||||
optional StringStatistics stringStatistics = 4;
|
||||
optional BucketStatistics bucketStatistics = 5;
|
||||
optional DecimalStatistics decimalStatistics = 6;
|
||||
optional DateStatistics dateStatistics = 7;
|
||||
}
|
||||
|
||||
message RowIndexEntry {
|
||||
repeated uint64 positions = 1 [packed=true];
|
||||
optional ColumnStatistics statistics = 2;
|
||||
}
|
||||
|
||||
message RowIndex {
|
||||
repeated RowIndexEntry entry = 1;
|
||||
}
|
||||
|
||||
message OrcStream {
|
||||
// if you add new index stream kinds, you need to make sure to update
|
||||
// StreamName to ensure it is added to the stripe in the right area
|
||||
enum Kind {
|
||||
PRESENT = 0;
|
||||
DATA = 1;
|
||||
LENGTH = 2;
|
||||
DICTIONARY_DATA = 3;
|
||||
DICTIONARY_COUNT = 4;
|
||||
SECONDARY = 5;
|
||||
ROW_INDEX = 6;
|
||||
}
|
||||
required Kind kind = 1;
|
||||
optional uint32 column = 2;
|
||||
optional uint64 length = 3;
|
||||
}
|
||||
|
||||
message ColumnEncoding {
|
||||
enum Kind {
|
||||
DIRECT = 0;
|
||||
DICTIONARY = 1;
|
||||
DIRECT_V2 = 2;
|
||||
DICTIONARY_V2 = 3;
|
||||
}
|
||||
required Kind kind = 1;
|
||||
optional uint32 dictionarySize = 2;
|
||||
}
|
||||
|
||||
message StripeFooter {
|
||||
repeated OrcStream streams = 1;
|
||||
repeated ColumnEncoding columns = 2;
|
||||
}
|
||||
|
||||
message FieldType {
|
||||
enum Kind {
|
||||
BOOLEAN = 0;
|
||||
BYTE = 1;
|
||||
SHORT = 2;
|
||||
INT = 3;
|
||||
LONG = 4;
|
||||
FLOAT = 5;
|
||||
DOUBLE = 6;
|
||||
STRING = 7;
|
||||
BINARY = 8;
|
||||
TIMESTAMP = 9;
|
||||
LIST = 10;
|
||||
MAP = 11;
|
||||
STRUCT = 12;
|
||||
UNION = 13;
|
||||
DECIMAL = 14;
|
||||
DATE = 15;
|
||||
}
|
||||
required Kind kind = 1;
|
||||
repeated uint32 subtypes = 2 [packed=true];
|
||||
repeated string fieldNames = 3;
|
||||
}
|
||||
|
||||
message StripeInformation {
|
||||
optional uint64 offset = 1;
|
||||
optional uint64 indexLength = 2;
|
||||
optional uint64 dataLength = 3;
|
||||
optional uint64 footerLength = 4;
|
||||
optional uint64 numberOfRows = 5;
|
||||
}
|
||||
|
||||
message UserMetadataItem {
|
||||
required string name = 1;
|
||||
required bytes value = 2;
|
||||
}
|
||||
|
||||
message Footer {
|
||||
optional uint64 headerLength = 1;
|
||||
optional uint64 contentLength = 2;
|
||||
repeated StripeInformation stripes = 3;
|
||||
repeated FieldType types = 4;
|
||||
repeated UserMetadataItem metadata = 5;
|
||||
optional uint64 numberOfRows = 6;
|
||||
repeated ColumnStatistics statistics = 7;
|
||||
optional uint32 rowIndexStride = 8;
|
||||
}
|
||||
|
||||
enum CompressionKind {
|
||||
NONE = 0;
|
||||
ZLIB = 1;
|
||||
SNAPPY = 2;
|
||||
LZO = 3;
|
||||
}
|
||||
|
||||
// Serialized length must be less that 255 bytes
|
||||
message PostScript {
|
||||
optional uint64 footerLength = 1;
|
||||
optional CompressionKind compression = 2;
|
||||
optional uint64 compressionBlockSize = 3;
|
||||
repeated uint32 version = 4 [packed = true];
|
||||
// Leave this last in the record
|
||||
optional string magic = 8000;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -285,12 +285,12 @@ static const unsigned int crc32tab[256] = {
|
|||
unsigned int crc32_sz(char* buf, int size)
|
||||
{
|
||||
unsigned int crc = ~((unsigned int)0);
|
||||
char* p = NULL;
|
||||
unsigned char* p = NULL;
|
||||
int len, nr;
|
||||
|
||||
len = 0;
|
||||
nr = size;
|
||||
for (len += nr, p = buf; nr--; ++p)
|
||||
for (len += nr, p = (unsigned char*)buf; nr--; ++p)
|
||||
_CRC32_(crc, *p);
|
||||
return ~crc;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -397,6 +397,7 @@ Datum hstore_from_text(PG_FUNCTION_ARGS)
|
|||
|
||||
p.needfree = false;
|
||||
key = PG_GETARG_TEXT_PP(0);
|
||||
FUNC_CHECK_HUGE_POINTER(false, key, "tconvert()");
|
||||
p.key = VARDATA_ANY(key);
|
||||
p.keylen = hstoreCheckKeyLen(VARSIZE_ANY_EXHDR(key));
|
||||
|
||||
|
|
@ -405,6 +406,7 @@ Datum hstore_from_text(PG_FUNCTION_ARGS)
|
|||
p.isnull = true;
|
||||
} else {
|
||||
val = PG_GETARG_TEXT_PP(1);
|
||||
FUNC_CHECK_HUGE_POINTER(false, val, "tconvert()");
|
||||
p.val = VARDATA_ANY(val);
|
||||
p.vallen = hstoreCheckValLen(VARSIZE_ANY_EXHDR(val));
|
||||
p.isnull = false;
|
||||
|
|
|
|||
|
|
@ -105,6 +105,13 @@ static void pg_decode_startup(LogicalDecodingContext* ctx, OutputPluginOptions*
|
|||
data->only_local = true;
|
||||
data->tableWhiteList = NIL;
|
||||
|
||||
/* read default option from GUC */
|
||||
DecodeOptionsDefault *defaultOption = LogicalDecodeGetOptionsDefault();
|
||||
if (defaultOption != NULL) {
|
||||
data->max_txn_in_memory = defaultOption->max_txn_in_memory;
|
||||
data->max_reorderbuffer_in_memory = defaultOption->max_reorderbuffer_in_memory;
|
||||
}
|
||||
|
||||
ctx->output_plugin_private = data;
|
||||
|
||||
opt->output_type = OUTPUT_PLUGIN_TEXTUAL_OUTPUT;
|
||||
|
|
@ -219,8 +226,8 @@ static bool pg_decode_filter(LogicalDecodingContext* ctx, RepOriginId origin_id)
|
|||
}
|
||||
|
||||
/* print the tuple 'tuple' into the StringInfo s */
|
||||
static void TupleToJsoninfo(
|
||||
cJSON* cols_name, cJSON* cols_type, cJSON* cols_val, TupleDesc tupdesc, HeapTuple tuple, bool skip_nulls)
|
||||
static void TupleToJsoninfo(Relation relation, cJSON* cols_name, cJSON* cols_type, cJSON* cols_val, TupleDesc tupdesc,
|
||||
HeapTuple tuple, bool isOld)
|
||||
{
|
||||
if ((tuple->tupTableType == HEAP_TUPLE) && (HEAP_TUPLE_IS_COMPRESSED(tuple->t_data) ||
|
||||
(int)HeapTupleHeaderGetNatts(tuple->t_data, tupdesc) > tupdesc->natts)) {
|
||||
|
|
@ -247,7 +254,7 @@ static void TupleToJsoninfo(
|
|||
* Don't print system columns, oid will already have been printed if
|
||||
* present.
|
||||
*/
|
||||
if (attr->attnum < 0)
|
||||
if (attr->attnum < 0 || (isOld && !IsRelationReplidentKey(relation, attr->attnum)))
|
||||
continue;
|
||||
|
||||
Oid typid = attr->atttypid; /* type of current attribute */
|
||||
|
|
@ -258,8 +265,6 @@ static void TupleToJsoninfo(
|
|||
} else {
|
||||
origval = uheap_getattr((UHeapTuple)tuple, natt + 1, tupdesc, &isnull);
|
||||
}
|
||||
if (isnull && skip_nulls)
|
||||
continue;
|
||||
|
||||
/* print attribute name */
|
||||
|
||||
|
|
@ -348,53 +353,53 @@ static void pg_decode_change(
|
|||
case REORDER_BUFFER_CHANGE_INSERT:
|
||||
op_type = cJSON_CreateString("INSERT");
|
||||
if (change->data.tp.newtuple != NULL) {
|
||||
TupleToJsoninfo(
|
||||
columns_name, columns_type, columns_val, tupdesc, &change->data.tp.newtuple->tuple, false);
|
||||
TupleToJsoninfo(relation, columns_name, columns_type, columns_val, tupdesc,
|
||||
&change->data.tp.newtuple->tuple, false);
|
||||
}
|
||||
break;
|
||||
case REORDER_BUFFER_CHANGE_UPDATE:
|
||||
op_type = cJSON_CreateString("UPDATE");
|
||||
if (change->data.tp.oldtuple != NULL) {
|
||||
TupleToJsoninfo(
|
||||
old_keys_name, old_keys_type, old_keys_val, tupdesc, &change->data.tp.oldtuple->tuple, true);
|
||||
TupleToJsoninfo(relation, old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
&change->data.tp.oldtuple->tuple, true);
|
||||
}
|
||||
|
||||
if (change->data.tp.newtuple != NULL) {
|
||||
TupleToJsoninfo(
|
||||
columns_name, columns_type, columns_val, tupdesc, &change->data.tp.newtuple->tuple, false);
|
||||
TupleToJsoninfo(relation, columns_name, columns_type, columns_val, tupdesc,
|
||||
&change->data.tp.newtuple->tuple, false);
|
||||
}
|
||||
break;
|
||||
case REORDER_BUFFER_CHANGE_DELETE:
|
||||
op_type = cJSON_CreateString("DELETE");
|
||||
if (change->data.tp.oldtuple != NULL) {
|
||||
TupleToJsoninfo(
|
||||
old_keys_name, old_keys_type, old_keys_val, tupdesc, &change->data.tp.oldtuple->tuple, true);
|
||||
TupleToJsoninfo(relation, old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
&change->data.tp.oldtuple->tuple, true);
|
||||
}
|
||||
/* if there was no PK, we only know that a delete happened */
|
||||
break;
|
||||
case REORDER_BUFFER_CHANGE_UINSERT:
|
||||
op_type = cJSON_CreateString("INSERT");
|
||||
if (change->data.utp.newtuple != NULL) {
|
||||
TupleToJsoninfo(columns_name, columns_type, columns_val, tupdesc,
|
||||
TupleToJsoninfo(relation, columns_name, columns_type, columns_val, tupdesc,
|
||||
(HeapTuple)(&change->data.utp.newtuple->tuple), false);
|
||||
}
|
||||
break;
|
||||
case REORDER_BUFFER_CHANGE_UDELETE:
|
||||
op_type = cJSON_CreateString("DELETE");
|
||||
if (change->data.utp.oldtuple != NULL) {
|
||||
TupleToJsoninfo(old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
TupleToJsoninfo(relation, old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
(HeapTuple)(&change->data.utp.oldtuple->tuple), true);
|
||||
}
|
||||
break;
|
||||
case REORDER_BUFFER_CHANGE_UUPDATE:
|
||||
op_type = cJSON_CreateString("UPDATE");
|
||||
if (change->data.utp.oldtuple != NULL) {
|
||||
TupleToJsoninfo(old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
TupleToJsoninfo(relation, old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
(HeapTuple)(&change->data.utp.oldtuple->tuple), true);
|
||||
}
|
||||
|
||||
if (change->data.utp.newtuple != NULL) {
|
||||
TupleToJsoninfo(columns_name, columns_type, columns_val, tupdesc,
|
||||
TupleToJsoninfo(relation, columns_name, columns_type, columns_val, tupdesc,
|
||||
(HeapTuple)&change->data.utp.newtuple->tuple, false);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,46 +1,46 @@
|
|||
#
|
||||
# Copyright (c) 2020 Huawei Technologies Co.,Ltd.
|
||||
#
|
||||
# openGauss is licensed under Mulan PSL v2.
|
||||
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
# You may obtain a copy of Mulan PSL v2 at:
|
||||
#
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
# ---------------------------------------------------------------------------------------
|
||||
#
|
||||
# Makefile
|
||||
# Makefile for the mysql_fdw
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# contrib/mysql_fdw/Makefile
|
||||
#
|
||||
# ---------------------------------------------------------------------------------------
|
||||
|
||||
all:mysql_fdw_target
|
||||
install:install-data
|
||||
|
||||
top_builddir ?= ../../
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
CODE_DIR=mysql_fdw
|
||||
|
||||
.PHONY: mysql_fdw_target
|
||||
mysql_fdw_target: prep_checked
|
||||
@make -C $(MYFDW_HOME) TOP_DIR=$(abs_top_srcdir)
|
||||
|
||||
prep_checked:
|
||||
@test -d $(MYFDW_HOME) || ( echo "ERROR: You need fetch and copy mysql_fdw from 'third_party' repo to 'third_party_binarylibs' repo and keep directory strucutre unchanged" && exit 1 )
|
||||
@test -d $(MYFDW_HOME) && date > prep_checked
|
||||
.PHONY: install-data
|
||||
install-data: mysql_fdw_target
|
||||
@make -C $(MYFDW_HOME) TOP_DIR=$(abs_top_srcdir) install
|
||||
uninstall distclean clean:
|
||||
@rm -rf $(MYFDW_HOME)/*.o
|
||||
@rm -rf $(MYFDW_HOME)/*.so
|
||||
@rm -f prep_checked
|
||||
|
||||
MYSQL_FDW_RELEVANT_SOURCES = connection.c deparse.c mysql_fdw.c mysql_query.c option.c
|
||||
#
|
||||
# Copyright (c) 2020 Huawei Technologies Co.,Ltd.
|
||||
#
|
||||
# openGauss is licensed under Mulan PSL v2.
|
||||
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
# You may obtain a copy of Mulan PSL v2 at:
|
||||
#
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
# ---------------------------------------------------------------------------------------
|
||||
#
|
||||
# Makefile
|
||||
# Makefile for the mysql_fdw
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# contrib/mysql_fdw/Makefile
|
||||
#
|
||||
# ---------------------------------------------------------------------------------------
|
||||
|
||||
all:mysql_fdw_target
|
||||
install:install-data
|
||||
|
||||
top_builddir ?= ../../
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
CODE_DIR=mysql_fdw
|
||||
|
||||
.PHONY: mysql_fdw_target
|
||||
mysql_fdw_target: prep_checked
|
||||
@make -C $(MYFDW_HOME) TOP_DIR=$(abs_top_srcdir)
|
||||
|
||||
prep_checked:
|
||||
@test -d $(MYFDW_HOME) || ( echo "ERROR: You need fetch and copy mysql_fdw from 'third_party' repo to 'third_party_binarylibs' repo and keep directory strucutre unchanged" && exit 1 )
|
||||
@test -d $(MYFDW_HOME) && date > prep_checked
|
||||
.PHONY: install-data
|
||||
install-data: mysql_fdw_target
|
||||
@make -C $(MYFDW_HOME) TOP_DIR=$(abs_top_srcdir) install
|
||||
uninstall distclean clean:
|
||||
@rm -rf $(MYFDW_HOME)/*.o
|
||||
@rm -rf $(MYFDW_HOME)/*.so
|
||||
@rm -f prep_checked
|
||||
|
||||
MYSQL_FDW_RELEVANT_SOURCES = connection.c deparse.c mysql_fdw.c mysql_query.c option.c
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ set(pagehack_LINK_LIBS -lpgport -lcrypt -ldl -lm -ledit -lssl -lcrypto -lsecurec
|
|||
add_bintarget(pagehack TGT_pagehack_SRC TGT_pagehack_INC "${pagehack_DEF_OPTIONS}" "${pagehack_COMPILE_OPTIONS}" "${pagehack_LINK_OPTIONS}" "${pagehack_LINK_LIBS}")
|
||||
add_dependencies(pagehack pgport_static pagecompression)
|
||||
target_link_directories(pagehack PUBLIC
|
||||
${LIBOPENSSL_LIB_PATH} ${PROTOBUF_LIB_PATH} ${LIBPARQUET_LIB_PATH} ${LIBCURL_LIB_PATH} ${SECURE_LIB_PATH}
|
||||
${LIBOPENSSL_LIB_PATH} ${LIBCURL_LIB_PATH} ${SECURE_LIB_PATH}
|
||||
${ZLIB_LIB_PATH} ${LIBOBS_LIB_PATH} ${LIBEDIT_LIB_PATH} ${LIBCGROUP_LIB_PATH} ${CMAKE_BINARY_DIR}/lib
|
||||
${ZSTD_LIB_PATH} ${PROJECT_SRC_DIR}/lib/page_compression
|
||||
)
|
||||
|
|
|
|||
|
|
@ -141,7 +141,16 @@ static const char* PgHeapRelName[] = {"pg_class",
|
|||
"pg_am",
|
||||
"pg_statistic",
|
||||
"pg_toast"};
|
||||
typedef enum SegmentType { SEG_HEAP, SEG_FSM, SEG_UHEAP, SEG_INDEX_BTREE, SEG_UNDO, SEG_UNKNOWN } SegmentType;
|
||||
|
||||
typedef enum SegmentType {
|
||||
SEG_HEAP,
|
||||
SEG_FSM,
|
||||
SEG_UHEAP,
|
||||
SEG_INDEX_BTREE,
|
||||
SEG_UNDO,
|
||||
SEG_INDEX_URQ,
|
||||
SEG_UNKNOWN
|
||||
} SegmentType;
|
||||
|
||||
static void ParsePgClassTupleData(binary tupdata, int len, binary nullBitmap, int natrrs);
|
||||
static void ParsePgIndexTupleData(binary tupdata, int len, binary nullBitmap, int nattrs);
|
||||
|
|
@ -811,6 +820,7 @@ typedef enum HackingType {
|
|||
HACKING_UNDO_RECORD,
|
||||
HACKING_UNDO_FIX,
|
||||
HACKING_SEGMENT,
|
||||
HACKING_INDEX_URQ,
|
||||
NUM_HACKINGTYPE
|
||||
} HackingType;
|
||||
|
||||
|
|
@ -837,7 +847,8 @@ static const char* HACKINGTYPE[] = {"heap",
|
|||
"undo_slot",
|
||||
"undo_record",
|
||||
"undo_fix",
|
||||
"segment"
|
||||
"segment",
|
||||
"btree_index_urq"
|
||||
};
|
||||
|
||||
const char* PageTypeNames[] = {"DATA", "FSM", "VM"};
|
||||
|
|
@ -1055,7 +1066,8 @@ static void ParsePgCudescXXTupleData(binary tupdata, int len, binary nullBitmap,
|
|||
char* nextAttr = (char*)tupdata;
|
||||
|
||||
bool isnulls[nattrs];
|
||||
memset(isnulls, false, nattrs);
|
||||
errno_t rc = memset_s(isnulls, nattrs, false, nattrs);
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
if (NULL != nullBitmap) {
|
||||
datlen = (nattrs + 7) / 8;
|
||||
int j = 0;
|
||||
|
|
@ -2360,12 +2372,14 @@ static void parse_uheap_item(const Item item, unsigned len, int blkno, int linen
|
|||
|
||||
indentLevel = 3;
|
||||
|
||||
errno_t rc = snprintf_s(buffer, 128, 127, "\t\t\txid:%d, td:%d locker_td:%d\n",
|
||||
utuple->xid, utuple->td_id, utuple->locker_td_id);
|
||||
errno_t rc = snprintf_s(buffer, 128, 127, "\t\t\txid:%u, td:%d locker_td:%d\n",
|
||||
utuple->xid, utuple->td_id, utuple->reserved);
|
||||
securec_check(rc, "\0", "\0");
|
||||
fprintf(stdout, "%s", buffer);
|
||||
fprintf(stdout, "\t\t\tNumber of columns: %d\n", UHeapTupleHeaderGetNatts(utuple));
|
||||
fprintf(stdout, "\t\t\tFlag: %d\n", utuple->flag);
|
||||
fprintf(stdout, "\t\t\tFlag2: %d\n", utuple->flag2);
|
||||
fprintf(stdout, "\t\t\tt_hoff: %d\n", utuple->t_hoff);
|
||||
|
||||
if (utuple->flag & UHEAP_HAS_NULL) {
|
||||
fprintf(stdout, "\t\t\tFlag: %s\n", "UHEAP_HASNULL ");
|
||||
|
|
@ -2560,7 +2574,7 @@ static void parse_btree_index_item(const Item item, unsigned len, int blkno, int
|
|||
/* there are xmin/xmax */
|
||||
UstoreIndexXid uxid = (UstoreIndexXid)UstoreIndexTupleGetXid(itup);
|
||||
fprintf(stdout,
|
||||
"%s xmin:%d xmax:%d Heap Tid: block %u/%u, offset %u\n",
|
||||
"%s xmin:%u xmax:%u Heap Tid: block %u/%u, offset %u\n",
|
||||
indents[indentLevel],
|
||||
uxid->xmin,
|
||||
uxid->xmax,
|
||||
|
|
@ -2705,7 +2719,7 @@ static void ParseUHeapPageHeader(const PageHeader page, int blkno, int blknum)
|
|||
fprintf(stdout, "\tpd_xid_base: %lu, pd_multi_base: %lu\n",
|
||||
upage->pd_xid_base, upage->pd_multi_base);
|
||||
if (upage->pd_upper < upage->pd_lower) {
|
||||
fprintf(stdout, "WARNING: INVALID PAGE!");
|
||||
fprintf(stdout, "WARNING: INVALID PAGE!\n");
|
||||
} else {
|
||||
freeSpace = upage->pd_upper - upage->pd_lower;
|
||||
g_freeMax = freeSpace > g_freeMax ? freeSpace : g_freeMax;
|
||||
|
|
@ -2786,6 +2800,7 @@ static void parse_special_data(const char* buffer, SegmentType type)
|
|||
|
||||
fprintf(stdout, "\tbtree cycle ID: %u\n", opaque->btpo_cycleid);
|
||||
if (uopaque) {
|
||||
(void)fprintf(stdout, "\tubtree xidbase: %lu\n", uopaque->xid_base);
|
||||
fprintf(stdout, "\tubtree active tuples: %d\n", uopaque->activeTupleCount);
|
||||
}
|
||||
} else if (SEG_UHEAP == type) {
|
||||
|
|
@ -2890,7 +2905,7 @@ static void parse_heap_or_index_page(const char* buffer, int blkno, SegmentType
|
|||
}
|
||||
fprintf(stdout, "\n\tUHeap tuple information on this page\n");
|
||||
for (i = FirstOffsetNumber; i <= nline; i++) {
|
||||
rowptr = UPageGetRowPtr(buffer, i);
|
||||
rowptr = UPageGenerateRowPtr(buffer, i);
|
||||
if (RowPtrIsUsed(rowptr)) {
|
||||
if (RowPtrHasStorage(rowptr))
|
||||
nstorage++;
|
||||
|
|
@ -3038,6 +3053,67 @@ static void parse_fsm_page(const char *buffer, int blkno)
|
|||
fprintf(stdout, "\n");
|
||||
}
|
||||
|
||||
static bool UrqIsMetaPage(BlockNumber blkno)
|
||||
{
|
||||
const int FirstNormalBlockNumber = 2;
|
||||
return blkno < FirstNormalBlockNumber;
|
||||
}
|
||||
|
||||
static uint32 UrqGetBlockMaxItems(BlockNumber blkno)
|
||||
{
|
||||
uint32 freeSpace = BLCKSZ - sizeof(PageHeaderData) - offsetof(UBTRecycleQueueHeaderData, items);
|
||||
if (UrqIsMetaPage(blkno)) {
|
||||
freeSpace -= sizeof(UBTRecycleMetaData);
|
||||
}
|
||||
return freeSpace / sizeof(UBTRecycleQueueItemData);
|
||||
}
|
||||
|
||||
static UBTRecycleQueueHeader UrqGetRecycleQueueHeader(Page page, BlockNumber blkno)
|
||||
{
|
||||
if (!UrqIsMetaPage(blkno)) {
|
||||
return (UBTRecycleQueueHeader)PageGetContents(page);
|
||||
}
|
||||
return (UBTRecycleQueueHeader)(((char*)PageGetContents(page)) + sizeof(UBTRecycleMetaData));
|
||||
}
|
||||
|
||||
static void ParseBtreeIndexUrq(const char *buffer, int blkno)
|
||||
{
|
||||
const int baseIndent = 1;
|
||||
const int indent1 = baseIndent + 1;
|
||||
const int indent2 = indent1 + 1;
|
||||
(void)fprintf(stdout, "\n%sRecycle queue information on this page\n", indents[baseIndent]);
|
||||
|
||||
if (UrqIsMetaPage((BlockNumber)blkno)) {
|
||||
UBTRecycleMeta meta = (UBTRecycleMeta)(PageGetContents((Page)buffer));
|
||||
(void)fprintf(stdout, "%sMeta: #%u\n", indents[indent1], blkno);
|
||||
(void)fprintf(stdout, "%sflags: %u\n", indents[indent2], meta->flags);
|
||||
(void)fprintf(stdout, "%sheadBlkno: %u\n", indents[indent2], meta->headBlkno);
|
||||
(void)fprintf(stdout, "%stailBlkno: %u\n", indents[indent2], meta->tailBlkno);
|
||||
(void)fprintf(stdout, "%snblocksUpper: %u\n", indents[indent2], meta->nblocksUpper);
|
||||
(void)fprintf(stdout, "%snblocksLower: %u\n", indents[indent2], meta->nblocksLower);
|
||||
}
|
||||
|
||||
UBTRecycleQueueHeader header = UrqGetRecycleQueueHeader((Page)buffer, (BlockNumber)blkno);
|
||||
uint32 maxItem = UrqGetBlockMaxItems((BlockNumber)blkno);
|
||||
|
||||
(void)fprintf(stdout, "%sBlock: #%d, flags: %u, head:%d, tail:%d, ",
|
||||
indents[indent1], blkno, header->flags, header->head, header->tail);
|
||||
(void)fprintf(stdout, "freeItems:%d, freeListHead:%d, prevBlkno:%u, nextBlkno:%u\n",
|
||||
header->freeItems, header->freeListHead, header->prevBlkno, header->nextBlkno);
|
||||
|
||||
for (uint32 i = 0; i < maxItem; i++) {
|
||||
UBTRecycleQueueItem item = &(header->items[i]);
|
||||
if (item->xid == 0 && item->blkno == 0 && item->prev == 0 && item->next == 0) {
|
||||
continue;
|
||||
}
|
||||
(void)fprintf(stdout, "%s#%3d, xid: %lu, blkno: %3u, prev: %3d, next: %3d\n",
|
||||
indents[indent2], i, item->xid, item->blkno, item->prev, item->next);
|
||||
}
|
||||
|
||||
(void)fprintf(stdout, "%sSummary (%u total): %u used, %d free\n\n",
|
||||
indents[baseIndent], maxItem, maxItem - header->freeItems, header->freeItems);
|
||||
}
|
||||
|
||||
static bool parse_data_page(const char *buffer, int blkno, SegmentType type)
|
||||
{
|
||||
if (only_vm || only_bcm) {
|
||||
|
|
@ -3047,6 +3123,8 @@ static bool parse_data_page(const char *buffer, int blkno, SegmentType type)
|
|||
parse_heap_or_index_page(buffer, blkno, type);
|
||||
} else if (type == SEG_FSM) {
|
||||
parse_fsm_page(buffer, blkno);
|
||||
} else if (type == SEG_INDEX_URQ) {
|
||||
ParseBtreeIndexUrq(buffer, blkno);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3058,7 +3136,7 @@ static int parse_a_page(const char* buffer, int blkno, int blknum, SegmentType t
|
|||
|
||||
if (PageIsNew(page)) {
|
||||
fprintf(stdout, "Page information of block %d/%d : new page\n\n", blkno, blknum);
|
||||
ParseHeapPageHeader(page, blkno, blknum);
|
||||
ParsePageHeader(page, blkno, blknum, type);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3236,7 +3314,8 @@ static int parse_uncompressed_page_file(const char *filename, SegmentType type,
|
|||
unsigned char fill_byte[4096] = {0xFF};
|
||||
for (int i = 0; i < 4096; i++)
|
||||
fill_byte[i] = 0xFF;
|
||||
memcpy(buffer + 4096, fill_byte, 4096);
|
||||
errno_t rc = memcpy_s(buffer + 4096, BLCKSZ - 4096, fill_byte, 4096);
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
}
|
||||
fseek(fd, (start * BLCKSZ), SEEK_SET);
|
||||
fwrite(buffer, 1, BLCKSZ, fd);
|
||||
|
|
@ -3718,7 +3797,8 @@ static int parse_cu_file(char* filename, uint64 offset)
|
|||
seg_num = offset / (RELSEG_SIZE * BLCKSZ);
|
||||
seg_offset = offset % (RELSEG_SIZE * BLCKSZ);
|
||||
|
||||
sprintf(fullpath, "%s.%d", filename, seg_num);
|
||||
errno_t rc = snprintf_s(fullpath, sizeof(fullpath), sizeof(fullpath) - 1, "%s.%d", filename, seg_num);
|
||||
securec_check_ss_c(rc, "\0", "\0");
|
||||
|
||||
if (NULL == (fd = fopen(fullpath, "rb"))) {
|
||||
fprintf(stderr, "%s: %s\n", fullpath, strerror(errno));
|
||||
|
|
@ -3970,7 +4050,9 @@ static int parse_pg_control_file(char* filename)
|
|||
* Format system_identifier separately to keep platform-dependent format
|
||||
* code out of the translatable message string.
|
||||
*/
|
||||
snprintf(sysident_str, sizeof(sysident_str), UINT64_FORMAT, ControlFile.system_identifier);
|
||||
errno_t rc = snprintf_s(sysident_str, sizeof(sysident_str), sizeof(sysident_str) - 1, UINT64_FORMAT,
|
||||
ControlFile.system_identifier);
|
||||
securec_check_ss_c(rc, "\0", "\0");
|
||||
|
||||
fprintf(stdout, "pg_control version number: %u\n", ControlFile.pg_control_version);
|
||||
|
||||
|
|
@ -4366,26 +4448,37 @@ static bool parse_dw_file(const char* file_name, uint32 start_page, uint32 page_
|
|||
size_t result;
|
||||
uint32 dw_batch_page_num;
|
||||
dw_file_head_t file_head;
|
||||
char meta_path[PATH_MAX];
|
||||
char cur_dir[PATH_MAX];
|
||||
char* meta_name;
|
||||
char meta_full_path[PATH_MAX];
|
||||
char meta_name_tmp[PATH_MAX];
|
||||
dw_batch_meta_file* batch_meta_file;
|
||||
char* meta_buf = NULL;
|
||||
char* dw_buf = NULL;
|
||||
|
||||
rc = strcpy_s(cur_dir, PATH_MAX, file_name);
|
||||
/* copy the full path of dw file to meta_full_path */
|
||||
if (realpath(file_name, meta_full_path) == NULL && file_name[0] == '\0') {
|
||||
fprintf(stderr, "could not get correct path or the absolute path is too long!\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
/* extract the path dir of dw file, which is the dir of meta file */
|
||||
(void)dirname(meta_full_path);
|
||||
|
||||
/* extract the meta name from DW_META_FILE */
|
||||
rc = strcpy_s(meta_name_tmp, PATH_MAX, DW_META_FILE);
|
||||
securec_check(rc, "", "");
|
||||
(void)dirname(cur_dir);
|
||||
rc = strcpy_s(meta_path, PATH_MAX, cur_dir);
|
||||
meta_name = basename(meta_name_tmp);
|
||||
|
||||
/* fetch the full meta path with above two parts */
|
||||
rc = strcat_s(meta_full_path, PATH_MAX, "/");
|
||||
securec_check(rc, "", "");
|
||||
rc = strcat_s(meta_path, PATH_MAX, "\\");
|
||||
securec_check(rc, "", "");
|
||||
rc = strcat_s(meta_path, PATH_MAX, DW_META_FILE);
|
||||
rc = strcat_s(meta_full_path, PATH_MAX, meta_name);
|
||||
securec_check(rc, "", "");
|
||||
|
||||
fd = fopen(meta_path, "rb+");
|
||||
fd = fopen(meta_full_path, "rb+");
|
||||
|
||||
if (fd == NULL) {
|
||||
fprintf(stderr, "%s: %s\n", meta_path, strerror(errno));
|
||||
fprintf(stderr, "%s: %s\n", meta_full_path, strerror(errno));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -4400,7 +4493,7 @@ static bool parse_dw_file(const char* file_name, uint32 start_page, uint32 page_
|
|||
if (result != 1) {
|
||||
free(meta_buf);
|
||||
fclose(fd);
|
||||
fprintf(stderr, "read %s: %s\n", meta_path, strerror(errno));
|
||||
fprintf(stderr, "read %s: %s\n", meta_full_path, strerror(errno));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -4822,11 +4915,15 @@ static int ParseUndoZoneMeta(const char *filename, int zid)
|
|||
uspMetaInfo = (UndoZoneMetaInfo *) (uspMetaBuffer + offset * sizeof(UndoZoneMetaInfo));
|
||||
if ((zid == INVALID_ZONE_ID) || (zid != INVALID_ZONE_ID && zid == zoneId)) {
|
||||
fprintf(stdout,
|
||||
"zid=%d, insert=%lu, discard=%lu, forcediscard=%lu, allocate=%lu, recycle=%lu, recyclexid=%lu, "
|
||||
"lsn=%lu.\n",
|
||||
zoneId, UNDO_PTR_GET_OFFSET(uspMetaInfo->insert), UNDO_PTR_GET_OFFSET(uspMetaInfo->discard),
|
||||
UNDO_PTR_GET_OFFSET(uspMetaInfo->forceDiscard), UNDO_PTR_GET_OFFSET(uspMetaInfo->allocate),
|
||||
UNDO_PTR_GET_OFFSET(uspMetaInfo->recycle), uspMetaInfo->recycleXid, uspMetaInfo->lsn);
|
||||
"zid=%d, insertURecPtr=%lu, discardURecPtr=%lu, forcediscardURecPtr=%lu, allocateTSlotPtr=%lu, "
|
||||
"recycleTSlotPtr=%lu, recyclexid=%lu, lsn=%lu.\n",
|
||||
zoneId,
|
||||
UNDO_PTR_GET_OFFSET(uspMetaInfo->insertURecPtr),
|
||||
UNDO_PTR_GET_OFFSET(uspMetaInfo->discardURecPtr),
|
||||
UNDO_PTR_GET_OFFSET(uspMetaInfo->forceDiscardURecPtr),
|
||||
UNDO_PTR_GET_OFFSET(uspMetaInfo->allocateTSlotPtr),
|
||||
UNDO_PTR_GET_OFFSET(uspMetaInfo->recycleTSlotPtr),
|
||||
uspMetaInfo->recycleXid, uspMetaInfo->lsn);
|
||||
|
||||
if (zid != INVALID_ZONE_ID) {
|
||||
break;
|
||||
|
|
@ -4928,6 +5025,7 @@ static int ParseUndoSlot(const char *filename)
|
|||
}
|
||||
|
||||
for (uint32 loop = 0; loop < UNDO_META_SEG_SIZE; loop++) {
|
||||
int flag = 0;
|
||||
seekpos = (off_t)BLCKSZ * loop;
|
||||
lseek(fd, seekpos, SEEK_SET);
|
||||
rc = memset_s(buffer, BLCKSZ, 0, BLCKSZ);
|
||||
|
|
@ -4942,13 +5040,32 @@ static int ParseUndoSlot(const char *filename)
|
|||
fprintf(stdout, "Block %u, LSN (%X/%X)\n", loop, (uint32)(PageGetLSN(buffer) >> 32),
|
||||
(uint32)PageGetLSN(buffer));
|
||||
|
||||
if (PageIsNew(buffer)) {
|
||||
continue;
|
||||
}
|
||||
for (uint32 offset = UNDO_LOG_BLOCK_HEADER_SIZE; offset < BLCKSZ - MAXALIGN(sizeof(TransactionSlot));
|
||||
offset += MAXALIGN(sizeof(TransactionSlot))) {
|
||||
slot = (TransactionSlot *) (buffer + offset);
|
||||
if (slot->XactId() != InvalidTransactionId || slot->StartUndoPtr() != INVALID_UNDO_REC_PTR) {
|
||||
if (flag > 0) {
|
||||
uint32 tempOffset = offset - (uint32)flag * MAXALIGN(sizeof(TransactionSlot));
|
||||
TransactionSlot *tempSlot = NULL;
|
||||
fprintf(stdout, "WARNING: invalid slot num %d.\n", flag);
|
||||
for (int i = 0; i < flag; i++) {
|
||||
tempOffset += MAXALIGN(sizeof(TransactionSlot));
|
||||
tempSlot = (TransactionSlot *) (buffer + tempOffset);
|
||||
fprintf(stdout,
|
||||
"offset=%u, xid=%lu, startptr=%lu, endptr=%lu, dbid=%u, rollback finish=%d.\n",
|
||||
tempOffset, tempSlot->XactId(), tempSlot->StartUndoPtr(), tempSlot->EndUndoPtr(),
|
||||
tempSlot->DbId(), !(tempSlot->NeedRollback()));
|
||||
}
|
||||
flag = 0;
|
||||
}
|
||||
fprintf(stdout, "offset=%u, xid=%lu, startptr=%lu, endptr=%lu, dbid=%u, rollback finish=%d.\n",
|
||||
offset, slot->XactId(), slot->StartUndoPtr(), slot->EndUndoPtr(),
|
||||
slot->DbId(), !(slot->NeedRollback()));
|
||||
} else {
|
||||
flag++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4964,26 +5081,40 @@ typedef struct UndoHeader {
|
|||
UndoRecordOldTd wtd_;
|
||||
UndoRecordPartition wpart_;
|
||||
UndoRecordTablespace wtspc_;
|
||||
StringInfoData rawdata_;
|
||||
} UndoHeader;
|
||||
|
||||
char g_dir[100] = {0};
|
||||
typedef struct UHeapDiskTupleDataHeader {
|
||||
ShortTransactionId xid;
|
||||
uint16 td_id : 8, reserved : 8; /* Locker as well as the last updater, 8 bits each */
|
||||
uint16 flag; /* Flag for tuple attributes */
|
||||
uint16 flag2; /* Number of attributes for now(11 bits) */
|
||||
uint8 t_hoff; /* header incl. bitmap, padding */
|
||||
} UHeapDiskTupleDataHeader;
|
||||
|
||||
char g_dir[MAX_PATH_LEN] = {0};
|
||||
|
||||
static int OpenUndoBlock(int zoneId, BlockNumber blockno)
|
||||
{
|
||||
char fileName[100] = {0};
|
||||
char fileName[MAX_PATH_LEN] = {0};
|
||||
const int idLen = 13;
|
||||
errno_t rc = EOK;
|
||||
int segno = blockno / UNDOSEG_SIZE;
|
||||
|
||||
rc = snprintf_s(fileName, sizeof(fileName), sizeof(fileName), g_dir);
|
||||
rc = snprintf_s(fileName, sizeof(fileName), sizeof(fileName) - 1, g_dir);
|
||||
securec_check(rc, "\0", "\0");
|
||||
rc = snprintf_s(fileName + strlen(fileName), sizeof(fileName), sizeof(fileName), "%05X.%07zX", zoneId, segno);
|
||||
if (strlen(g_dir) + idLen >= MAX_PATH_LEN) {
|
||||
fprintf(stdout, "ERROR: path is too long, MAX_PATH_LEN %d, path len %lu.\n", MAX_PATH_LEN, strlen(g_dir));
|
||||
}
|
||||
rc = snprintf_s(fileName + strlen(fileName), sizeof(fileName) - strlen(fileName),
|
||||
sizeof(fileName) - strlen(fileName) - 1, "%05X.%07zX", zoneId, segno);
|
||||
securec_check(rc, "\0", "\0");
|
||||
|
||||
int fd = open(fileName, O_RDONLY | PG_BINARY, S_IRUSR | S_IWUSR);
|
||||
|
||||
if (fd < 0) {
|
||||
fprintf(stderr, "Open file(%s), return code desc(%s).\n", UNDO_META_FILE, strerror(errno));
|
||||
return-1;
|
||||
fprintf(stderr, "Open file(%s), return code desc(%s).\n", fileName, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
return fd;
|
||||
|
|
@ -5057,69 +5188,191 @@ bool ReadUndoRecord(UndoHeader *urec, char *buffer, int startingByte, int *alrea
|
|||
&readptr, endptr, &myBytesRead, alreadyRead)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
urec->rawdata_.len = urec->wpay_.payloadlen;
|
||||
if (urec->rawdata_.len > 0) {
|
||||
if (urec->rawdata_.data == NULL) {
|
||||
urec->rawdata_.data = (char *)malloc(urec->rawdata_.len);
|
||||
if (NULL == urec->rawdata_.data) {
|
||||
fprintf(stderr, "out of memory\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!ReadUndoBytes((char *)urec->rawdata_.data, urec->rawdata_.len,
|
||||
&readptr, endptr, &myBytesRead, alreadyRead)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ParseUndoRecord(UndoRecPtr urp)
|
||||
static bool ParseUndoRecord(UndoRecPtr urp, bool forward = false)
|
||||
{
|
||||
char buffer[BLCKSZ] = {'\0'};
|
||||
BlockNumber blockno = UNDO_PTR_GET_BLOCK_NUM(urp);
|
||||
int zoneId = UNDO_PTR_GET_ZONE_ID(urp);
|
||||
int startingByte = UNDO_PTR_GET_PAGE_OFFSET(urp);
|
||||
int fd = -1;
|
||||
int alreadyRead = 0;
|
||||
off_t seekpos;
|
||||
errno_t rc = EOK;
|
||||
uint32 ret = 0;
|
||||
UndoHeader *urec = (UndoHeader *)malloc(sizeof(UndoHeader));
|
||||
UndoRecPtr blkprev = INVALID_UNDO_REC_PTR;
|
||||
|
||||
rc = memset_s(urec, sizeof(UndoHeader), (0), sizeof(UndoHeader));
|
||||
securec_check(rc, "\0", "\0");
|
||||
|
||||
do {
|
||||
fd = OpenUndoBlock(zoneId, blockno);
|
||||
if (fd < 0) {
|
||||
free(urec);
|
||||
return false;
|
||||
}
|
||||
seekpos = (off_t)BLCKSZ * (blockno % ((BlockNumber)UNDOSEG_SIZE));
|
||||
lseek(fd, seekpos, SEEK_SET);
|
||||
rc = memset_s(buffer, BLCKSZ, 0, BLCKSZ);
|
||||
char buffer[BLCKSZ] = {'\0'};
|
||||
BlockNumber blockno = UNDO_PTR_GET_BLOCK_NUM(urp);
|
||||
int zoneId = UNDO_PTR_GET_ZONE_ID(urp);
|
||||
int startingByte = UNDO_PTR_GET_PAGE_OFFSET(urp);
|
||||
int fd = -1;
|
||||
int alreadyRead = 0;
|
||||
off_t seekpos;
|
||||
errno_t rc = EOK;
|
||||
uint32 ret = 0;
|
||||
UndoHeader *urec = (UndoHeader *)malloc(sizeof(UndoHeader));
|
||||
UndoRecPtr blkprev = INVALID_UNDO_REC_PTR;
|
||||
const UndoRecordSize UNDO_RECORD_FIX_SIZE = SIZE_OF_UNDO_RECORD_HEADER + SIZE_OF_UNDO_RECORD_BLOCK;
|
||||
uint32 curSize = UNDO_RECORD_FIX_SIZE + sizeof(UndoRecordSize);
|
||||
PageHeader phdr;
|
||||
|
||||
rc = memset_s(urec, sizeof(UndoHeader), (0), sizeof(UndoHeader));
|
||||
securec_check(rc, "\0", "\0");
|
||||
|
||||
ret = read(fd, (char *)buffer, BLCKSZ);
|
||||
if (ret != BLCKSZ) {
|
||||
do {
|
||||
fd = OpenUndoBlock(zoneId, blockno);
|
||||
if (fd < 0) {
|
||||
free(urec);
|
||||
return false;
|
||||
}
|
||||
seekpos = (off_t)BLCKSZ * (blockno % ((BlockNumber)UNDOSEG_SIZE));
|
||||
lseek(fd, seekpos, SEEK_SET);
|
||||
rc = memset_s(buffer, BLCKSZ, 0, BLCKSZ);
|
||||
securec_check(rc, "\0", "\0");
|
||||
|
||||
ret = read(fd, (char *)buffer, BLCKSZ);
|
||||
if (ret != BLCKSZ) {
|
||||
close(fd);
|
||||
free(urec);
|
||||
fprintf(stderr, "Read undo meta page failed, expect size(8192), real size(%u).\n", ret);
|
||||
return false;
|
||||
}
|
||||
phdr = (PageHeader)buffer;
|
||||
if (ReadUndoRecord(urec, buffer, startingByte, &alreadyRead)) {
|
||||
break;
|
||||
}
|
||||
|
||||
startingByte = UNDO_LOG_BLOCK_HEADER_SIZE;
|
||||
blockno++;
|
||||
close(fd);
|
||||
} while (true);
|
||||
|
||||
if (!TransactionIdIsValid(urec->whdr_.xid)) {
|
||||
free(urec);
|
||||
fprintf(stderr, "Read undo meta page failed, expect size(8192), real size(%u).\n", ret);
|
||||
return false;
|
||||
close(fd);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (ReadUndoRecord(urec, buffer, startingByte, &alreadyRead)) {
|
||||
break;
|
||||
fprintf(stdout, "DumpPageInfo: lsn:%X/%X, pd_checksum:%u, flags:%u, lower:%u, upper:%u, special:%u, "
|
||||
"pagesize_version:%u.\n",
|
||||
phdr->pd_lsn.xlogid, phdr->pd_lsn.xrecoff, (uint16)(phdr->pd_checksum), (uint16)(phdr->pd_flags),
|
||||
(uint16)(phdr->pd_lower), (uint16)(phdr->pd_upper), (uint16)(phdr->pd_special),
|
||||
(uint16)(phdr->pd_pagesize_version));
|
||||
|
||||
blkprev = urec->wblk_.blkprev;
|
||||
fprintf(stdout, "UndoRecPtr(%lu):\nwhdr = xid(%lu), cid(%u), reloid(%u), relfilenode(%u), utype(%u), "
|
||||
"uinfo(%u).\n", urp, urec->whdr_.xid, urec->whdr_.cid, urec->whdr_.reloid, urec->whdr_.relfilenode,
|
||||
urec->whdr_.utype, urec->whdr_.uinfo);
|
||||
if ((urec->whdr_.uinfo & UNDO_UREC_INFO_PAYLOAD) != 0) {
|
||||
fprintf(stdout, "flag_payload, size = %lu.\n", SIZE_OF_UNDO_RECORD_PAYLOAD);
|
||||
curSize += SIZE_OF_UNDO_RECORD_PAYLOAD;
|
||||
curSize += urec->rawdata_.len;
|
||||
}
|
||||
if ((urec->whdr_.uinfo & UNDO_UREC_INFO_TRANSAC) != 0) {
|
||||
fprintf(stdout, "flag_transac, size = %lu.\n", SIZE_OF_UNDO_RECORD_TRANSACTION);
|
||||
curSize += SIZE_OF_UNDO_RECORD_TRANSACTION;
|
||||
}
|
||||
if ((urec->whdr_.uinfo & UNDO_UREC_INFO_BLOCK) != 0) {
|
||||
fprintf(stdout, "flag_block, size = %lu.\n", SIZE_OF_UNDO_RECORD_BLOCK);
|
||||
}
|
||||
if ((urec->whdr_.uinfo & UNDO_UREC_INFO_OLDTD) != 0) {
|
||||
fprintf(stdout, "flag_oldtd, size = %lu.\n", SIZE_OF_UNDO_RECORD_OLDTD);
|
||||
curSize += SIZE_OF_UNDO_RECORD_OLDTD;
|
||||
}
|
||||
if ((urec->whdr_.uinfo & UNDO_UREC_INFO_CONTAINS_SUBXACT) != 0) {
|
||||
/* subxid is at the end of rawdata */
|
||||
char *end = (char *)(urec->rawdata_.data) + (urec->rawdata_.len - sizeof(SubTransactionId));
|
||||
SubTransactionId *subxid = (SubTransactionId *)end;
|
||||
fprintf(stdout, "flag_subxact, subxid = %lu.\n", *subxid);
|
||||
}
|
||||
if ((urec->whdr_.uinfo & UNDO_UREC_INFO_HAS_PARTOID) != 0) {
|
||||
fprintf(stdout, "flag_partoid, size = %lu.\n", SIZE_OF_UNDO_RECORD_PARTITION);
|
||||
curSize += SIZE_OF_UNDO_RECORD_PARTITION;
|
||||
}
|
||||
if ((urec->whdr_.uinfo & UNDO_UREC_INFO_HAS_TABLESPACEOID) != 0) {
|
||||
fprintf(stdout, "flag_tablespaceoid, size = %lu.\n", SIZE_OF_UNDO_RECORD_TABLESPACE);
|
||||
curSize += SIZE_OF_UNDO_RECORD_TABLESPACE;
|
||||
}
|
||||
fprintf(stdout, "wblk = blk_prev(%lu), blockno(%u), offset(%u).\n", urec->wblk_.blkprev, urec->wblk_.blkno,
|
||||
urec->wblk_.offset);
|
||||
fprintf(stdout, "wtxn = prevurp(%lu).\n", urec->wtxn_.prevurp);
|
||||
fprintf(stdout, "wpay = payloadlen(%u).\n", urec->wpay_.payloadlen);
|
||||
fprintf(stdout, "wtd = oldxactid(%lu).\n", urec->wtd_.oldxactid);
|
||||
fprintf(stdout, "wpart_ = partitionoid(%u).\n", urec->wpart_.partitionoid);
|
||||
fprintf(stdout, "wtspc_ = tablespace(%u).\n", urec->wtspc_.tablespace);
|
||||
fprintf(stdout, "len = alreadyRead(%u).\n", alreadyRead);
|
||||
|
||||
char prevLen[2];
|
||||
UndoRecordSize byteToRead = sizeof(UndoRecordSize);
|
||||
char *readptr = buffer + startingByte - byteToRead;
|
||||
for (auto i = 0; i < byteToRead; i++) {
|
||||
prevLen[i] = *readptr;
|
||||
readptr++;
|
||||
}
|
||||
UndoRecordSize prevRecLen = *(UndoRecordSize *)(prevLen);
|
||||
fprintf(stdout, "prevLen = prevLen(%u).\n", prevRecLen);
|
||||
|
||||
if (urec->whdr_.utype != UNDO_INSERT && urec->whdr_.utype != UNDO_MULTI_INSERT &&
|
||||
urec->rawdata_.len > 0 && urec->rawdata_.data != NULL) {
|
||||
UHeapDiskTupleDataHeader diskTuple;
|
||||
if (urec->whdr_.utype == UNDO_INPLACE_UPDATE) {
|
||||
Assert(urec->rawdata_.len >= (int)SizeOfUHeapDiskTupleData);
|
||||
uint8 *t_hoff_ptr = (uint8 *)(urec->rawdata_.data);
|
||||
uint8 t_hoff = *t_hoff_ptr;
|
||||
char *cur_undodata_ptr = NULL;
|
||||
fprintf(stdout, "t_hoff %u ", t_hoff);
|
||||
rc = memcpy_s((char *)&diskTuple + OffsetTdId, SizeOfUHeapDiskTupleHeaderExceptXid,
|
||||
urec->rawdata_.data + sizeof(uint8), SizeOfUHeapDiskTupleHeaderExceptXid);
|
||||
securec_check(rc, "", "");
|
||||
cur_undodata_ptr = urec->rawdata_.data + sizeof(uint8) + t_hoff - OffsetTdId;
|
||||
uint8* flags_ptr = (uint8 *)cur_undodata_ptr;
|
||||
uint8 flags = *flags_ptr;
|
||||
fprintf(stdout, "flags %u ", flags);
|
||||
cur_undodata_ptr += sizeof(uint8);
|
||||
if (flags & UREC_INPLACE_UPDATE_XOR_PREFIX) {
|
||||
uint16* prefixlen_ptr = (uint16 *)(cur_undodata_ptr);
|
||||
cur_undodata_ptr += sizeof(uint16);
|
||||
uint16 prefixlen = *prefixlen_ptr;
|
||||
fprintf(stdout, "PREFIXLEN %u ", prefixlen);
|
||||
}
|
||||
|
||||
if (flags & UREC_INPLACE_UPDATE_XOR_SUFFIX) {
|
||||
uint16* suffixlen_ptr = (uint16 *)(cur_undodata_ptr);
|
||||
cur_undodata_ptr += sizeof(uint16);
|
||||
uint16 suffixlen = *suffixlen_ptr;
|
||||
fprintf(stdout, "SUFFIXLEN %u ", suffixlen);
|
||||
}
|
||||
diskTuple.xid = (ShortTransactionId)InvalidTransactionId;
|
||||
} else {
|
||||
Assert(urec->rawdata_.len >= (int)SizeOfUHeapDiskTupleHeaderExceptXid);
|
||||
rc = memcpy_s(((char *)&diskTuple + OffsetTdId), SizeOfUHeapDiskTupleHeaderExceptXid,
|
||||
urec->rawdata_.data, SizeOfUHeapDiskTupleHeaderExceptXid);
|
||||
securec_check(rc, "", "");
|
||||
diskTuple.xid = (ShortTransactionId)InvalidTransactionId;
|
||||
}
|
||||
fprintf(stdout, "\ndiskTuple: td_id %u, reserved %u, flag %u, flag2 %u, t_hoff %u.\n",
|
||||
diskTuple.td_id, diskTuple.reserved, diskTuple.flag, diskTuple.flag2, diskTuple.t_hoff);
|
||||
fprintf(stdout, "current undo record size: %u\n\n", curSize);
|
||||
}
|
||||
|
||||
startingByte = UNDO_LOG_BLOCK_HEADER_SIZE;
|
||||
blockno++;
|
||||
} while (true);
|
||||
free(urec);
|
||||
close(fd);
|
||||
|
||||
blkprev = urec->wblk_.blkprev;
|
||||
fprintf(stderr, "UndoRecPtr(%lu):\nwhdr = xid(%lu), cid(%u), reloid(%u), relfilenode(%u), utype(%u).\n",
|
||||
urp, urec->whdr_.xid, urec->whdr_.cid, urec->whdr_.reloid, urec->whdr_.relfilenode, urec->whdr_.utype);
|
||||
fprintf(stderr, "wblk = blk_prev(%lu), blockno(%u), offset(%u).\n", urec->wblk_.blkprev, urec->wblk_.blkno,
|
||||
urec->wblk_.offset);
|
||||
fprintf(stderr, "wtxn = prevurp(%lu).\n", urec->wtxn_.prevurp);
|
||||
fprintf(stderr, "wpay = payloadlen(%u).\n", urec->wpay_.payloadlen);
|
||||
|
||||
free(urec);
|
||||
close(fd);
|
||||
|
||||
if (blkprev != INVALID_UNDO_REC_PTR) {
|
||||
ParseUndoRecord(blkprev);
|
||||
}
|
||||
if (!forward) {
|
||||
urp = blkprev;
|
||||
} else {
|
||||
urp = UNDO_LOG_OFFSET_PLUS_USABLE_BYTES(urp, curSize);
|
||||
}
|
||||
} while (urp != INVALID_UNDO_REC_PTR);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -5336,7 +5589,9 @@ static void fill_filenode_map(char** class_map)
|
|||
return;
|
||||
}
|
||||
if (NULL != cmap[i].class_name) {
|
||||
memcpy(name, cmap[i].class_name, strlen(cmap[i].class_name) + 1);
|
||||
errno_t rc = EOK;
|
||||
rc = memcpy_s(name, 64 * sizeof(char), cmap[i].class_name, strlen(cmap[i].class_name) + 1);
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
class_map[cmap[i].ralation_id] = name;
|
||||
name = NULL;
|
||||
} else {
|
||||
|
|
@ -5529,7 +5784,8 @@ int main(int argc, char** argv)
|
|||
|
||||
if (((start_point != 0) || (num_block != 0)) &&
|
||||
/* only heap/index/undo/dw */
|
||||
(hackingtype > HACKING_UNDO && hackingtype != HACKING_DW && hackingtype != HACKING_SEGMENT)) {
|
||||
(hackingtype > HACKING_UNDO && hackingtype != HACKING_DW && hackingtype != HACKING_SEGMENT &&
|
||||
hackingtype != HACKING_INDEX_URQ)) {
|
||||
fprintf(stderr, "Start point or block number only takes effect when hacking segment/heap/undo/index.\n");
|
||||
start_point = num_block = 0;
|
||||
}
|
||||
|
|
@ -5595,6 +5851,13 @@ int main(int argc, char** argv)
|
|||
}
|
||||
break;
|
||||
|
||||
case HACKING_INDEX_URQ:
|
||||
if (!parse_page_file(filename, SEG_INDEX_URQ, start_point, num_block)) {
|
||||
(void)fprintf(stderr, "Error during parsing index urq file %s\n", filename);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
|
||||
case HACKING_FILENODE:
|
||||
if (!parse_filenodemap_file(filename)) {
|
||||
fprintf(stderr, "Error during parsing filenode_map file %s\n", filename);
|
||||
|
|
@ -5695,8 +5958,14 @@ int main(int argc, char** argv)
|
|||
case HACKING_UNDO_RECORD:
|
||||
ret = snprintf_s(g_dir, sizeof(g_dir), sizeof(g_dir), filename);
|
||||
securec_check(ret, "\0", "\0");
|
||||
if (!ParseUndoRecord(cu_offset)) {
|
||||
fprintf(stderr, "Error during parsing undo group meta file %s\n", filename);
|
||||
fprintf(stdout, "Parsing backward, urp %lu:\n", cu_offset);
|
||||
if (!ParseUndoRecord(cu_offset, false)) {
|
||||
fprintf(stderr, "Error during parsing undo group meta file %s backward\n", filename);
|
||||
exit(1);
|
||||
}
|
||||
fprintf(stdout, "Parsing forward, urp %lu:\n", cu_offset);
|
||||
if (!ParseUndoRecord(cu_offset, true)) {
|
||||
fprintf(stderr, "Error during parsing undo group meta file %s forward\n", filename);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ SET(xlogdump_LINK_LIBS libpgcommon.a -lpgport -lcrypt -ldl -lm -ledit -lssl -lcr
|
|||
add_bintarget(pg_xlogdump TGT_xlogdump_SRC TGT_xlogdump_INC "${xlogdump_DEF_OPTIONS}" "${xlogdump_COMPILE_OPTIONS}" "${xlogdump_LINK_OPTIONS}" "${xlogdump_LINK_LIBS}")
|
||||
add_dependencies(pg_xlogdump pgport_static pgcommon_static)
|
||||
target_link_directories(pg_xlogdump PUBLIC
|
||||
${LIBOPENSSL_LIB_PATH} ${PROTOBUF_LIB_PATH} ${LIBPARQUET_LIB_PATH} ${LIBCURL_LIB_PATH} ${SECURE_LIB_PATH}
|
||||
${LIBOPENSSL_LIB_PATH} ${LIBCURL_LIB_PATH} ${SECURE_LIB_PATH}
|
||||
${ZLIB_LIB_PATH} ${LIBOBS_LIB_PATH} ${LIBEDIT_LIB_PATH} ${LIBCGROUP_LIB_PATH} ${CMAKE_BINARY_DIR}/lib
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -78,14 +78,17 @@ const char* timestamptz_to_str(TimestampTz dt)
|
|||
char zone[MAXDATELEN + 1];
|
||||
time_t result = (time_t)timestamptz_to_time_t(dt);
|
||||
struct tm* ltime = localtime(&result);
|
||||
errno_t rc = EOK;
|
||||
|
||||
strftime(ts, sizeof(ts), "%Y-%m-%d %H:%M:%S", ltime);
|
||||
strftime(zone, sizeof(zone), "%Z", ltime);
|
||||
|
||||
#ifdef HAVE_INT64_TIMESTAMP
|
||||
sprintf(buf, "%s.%06d %s", ts, (int)(dt % USECS_PER_SEC), zone);
|
||||
rc = snprintf_s(buf, sizeof(buf), sizeof(buf) - 1, "%s.%06d %s", ts, (int)(dt % USECS_PER_SEC), zone);
|
||||
securec_check_ss_c(rc, "\0", "\0");
|
||||
#else
|
||||
sprintf(buf, "%s.%.6f %s", ts, fabs(dt - floor(dt)), zone);
|
||||
rc = snprintf_s(buf, sizeof(buf), sizeof(buf) - 1, "%s.%.6f %s", ts, fabs(dt - floor(dt)), zone);
|
||||
securec_check_ss_c(rc, "\0", "\0");
|
||||
#endif
|
||||
|
||||
return buf;
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@ static bool foreign_expr_walker_var(Node *node, foreign_glob_cxt *glob_cxt, Oid
|
|||
|
||||
}
|
||||
|
||||
static void foreign_expr_walker_const(Node *node, Oid *collation,FDWCollateState * state)
|
||||
static bool foreign_expr_walker_const(Node *node, Oid *collation,FDWCollateState * state)
|
||||
{
|
||||
Const *c = (Const *)node;
|
||||
|
||||
|
|
@ -255,9 +255,10 @@ static void foreign_expr_walker_const(Node *node, Oid *collation,FDWCollateSta
|
|||
*state = FDW_COLLATE_UNSAFE;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static void foreign_expr_walker_param(Node *node, Oid *collation,FDWCollateState * state)
|
||||
static bool foreign_expr_walker_param(Node *node, Oid *collation,FDWCollateState * state)
|
||||
{
|
||||
Param *p = (Param *)node;
|
||||
|
||||
|
|
@ -271,6 +272,7 @@ static void foreign_expr_walker_param(Node *node, Oid *collation,FDWCollateState
|
|||
*state = FDW_COLLATE_UNSAFE;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool foreign_expr_walker_arrayref(Node *node, foreign_glob_cxt *glob_cxt, foreign_loc_cxt *inner_cxt,Oid *collation,FDWCollateState * state)
|
||||
|
|
@ -626,11 +628,11 @@ static bool foreign_expr_walker(Node *node, foreign_glob_cxt *glob_cxt, foreign_
|
|||
} break;
|
||||
case T_Const: {
|
||||
|
||||
foreign_expr_walker_const(node, &collation, &state);
|
||||
walker_result = foreign_expr_walker_const(node, &collation, &state);
|
||||
} break;
|
||||
case T_Param: {
|
||||
|
||||
foreign_expr_walker_param(node, &collation, &state);
|
||||
walker_result = foreign_expr_walker_param(node, &collation, &state);
|
||||
} break;
|
||||
case T_ArrayRef: {
|
||||
|
||||
|
|
|
|||
|
|
@ -179,11 +179,8 @@ static bool is_valid_for_masking(const char* func_name, Oid funcnsp, int& funcid
|
|||
{
|
||||
CatCList *catlist = NULL;
|
||||
#ifndef ENABLE_MULTIPLE_NODES
|
||||
if (t_thrd.proc->workingVersionNum < 92470) {
|
||||
catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(func_name));
|
||||
} else {
|
||||
catlist = SearchSysCacheList1(PROCALLARGS, CStringGetDatum(func_name));
|
||||
}
|
||||
int cacheId = (t_thrd.proc->workingVersionNum < 92470) ? PROCNAMEARGSNSP : PROCALLARGS;
|
||||
catlist = SearchSysCacheList1(cacheId, CStringGetDatum(func_name));
|
||||
#else
|
||||
catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(func_name));
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -170,9 +170,10 @@ bool load_policy_labels(bool reload)
|
|||
}
|
||||
|
||||
/* scan to load all labels */
|
||||
if (all_labels == NULL) {
|
||||
all_labels = new loaded_labels;
|
||||
if (all_labels != NULL) {
|
||||
delete all_labels;
|
||||
}
|
||||
all_labels = new loaded_labels;
|
||||
scan_policy_labels(all_labels);
|
||||
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -855,7 +855,7 @@ void gen_policy_labelitem(PolicyLabelItem &item, const ListCell *rel, int objtyp
|
|||
switch (objtype) {
|
||||
case O_VIEW:
|
||||
case O_TABLE: {
|
||||
Oid relid = RangeVarGetRelid((RangeVar *)rel, NoLock, false);
|
||||
Oid relid = RangeVarGetRelid((const RangeVar *)rel, NoLock, true);
|
||||
if (!OidIsValid(relid)) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -865,7 +865,7 @@ void gen_policy_labelitem(PolicyLabelItem &item, const ListCell *rel, int objtyp
|
|||
}
|
||||
case O_FUNCTION: {
|
||||
FuncWithArgs *func = (FuncWithArgs *)(rel);
|
||||
Oid funcid = LookupFuncNameTypeNames(func->funcname, func->funcargs, false);
|
||||
Oid funcid = LookupFuncNameTypeNames(func->funcname, func->funcargs, true);
|
||||
if (!OidIsValid(funcid)) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -974,4 +974,4 @@ CmdType get_rte_commandtype(RangeTblEntry *rte)
|
|||
} else {
|
||||
return CMD_UNKNOWN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -140,6 +140,7 @@ static THR_LOCAL MngEventsVector *mng_events = NULL;
|
|||
using StrMap = gs_stl::gs_map<gs_stl::gs_string, masking_result>;
|
||||
|
||||
static void gsaudit_next_PostParseAnalyze_hook(ParseState *pstate, Query *query);
|
||||
|
||||
static void destroy_local_parameter();
|
||||
static void destory_thread_variables()
|
||||
{
|
||||
|
|
@ -410,18 +411,16 @@ bool verify_copy_command_is_reparsed(List* parsetree_list, const char* query_str
|
|||
gs_stl::gs_string& replaced_query_string)
|
||||
{
|
||||
/* do nothing when enable_security_policy is off */
|
||||
if (!u_sess->attr.attr_security.Enable_Security_Policy || !is_masking_policy_exist()) {
|
||||
return false;
|
||||
}
|
||||
bool is_exist = (!u_sess->attr.attr_security.Enable_Security_Policy ||
|
||||
!is_masking_policy_exist());
|
||||
if (is_exist) return false;
|
||||
ListCell* item = NULL;
|
||||
foreach(item, parsetree_list) {
|
||||
Node* parsetree = (Node *) lfirst(item);
|
||||
if (nodeTag(parsetree) == T_CopyStmt) {
|
||||
CopyStmt* stmt = (CopyStmt*)parsetree;
|
||||
if (stmt->is_from || stmt->query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool is_from_query = (stmt->is_from || stmt->query);
|
||||
if (is_from_query) return false;
|
||||
/* verify policies */
|
||||
IPV6 ip;
|
||||
get_remote_addr(&ip);
|
||||
|
|
@ -433,10 +432,8 @@ bool verify_copy_command_is_reparsed(List* parsetree_list, const char* query_str
|
|||
checkSecurityPolicyFilter_hook(filter_item, &policy_ids);
|
||||
}
|
||||
}
|
||||
if (policy_ids.empty() && !check_audit_policy_filter(&filter_item, &policy_ids)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool is_empty_filter = (policy_ids.empty() && !check_audit_policy_filter(&filter_item, &policy_ids));
|
||||
if (is_empty_filter) return false;
|
||||
gs_stl::gs_string replace_buffer("(select ");
|
||||
|
||||
char replace_name[POLICY_TMP_BUFF_LEN] = {0};
|
||||
|
|
@ -519,30 +516,6 @@ void set_result_set_function(const PolicyLabelItem &func)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* check exchange partition list contains masked table.
|
||||
* For given AlterTableCmd list, check whether ordinary
|
||||
* tables have bound masking policies.
|
||||
*/
|
||||
static bool exchange_partition_with_masked_table(List *cmds)
|
||||
{
|
||||
if (cmds == NIL) {
|
||||
return false;
|
||||
}
|
||||
ListCell *lc = NULL;
|
||||
foreach (lc, cmds) {
|
||||
AlterTableCmd *cmd = (AlterTableCmd*)lfirst(lc);
|
||||
if (cmd->subtype == AT_ExchangePartition && cmd->exchange_with_rel != NULL) {
|
||||
Oid relid = RangeVarGetRelid(cmd->exchange_with_rel, NoLock, true);
|
||||
if (is_masked_relation(relid)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static void gsaudit_next_PostParseAnalyze_hook(ParseState *pstate, Query *query)
|
||||
{
|
||||
/* do nothing when enable_security_policy is off */
|
||||
|
|
@ -559,7 +532,7 @@ static void gsaudit_next_PostParseAnalyze_hook(ParseState *pstate, Query *query)
|
|||
enable_dml_auditing = true;
|
||||
}
|
||||
|
||||
if (u_sess->proc_cxt.IsInnerMaintenanceTools || (t_thrd.role != WORKER && t_thrd.role != THREADPOOL_WORKER) ||
|
||||
if (u_sess->proc_cxt.IsNoMaskingInnerTools || (t_thrd.role != WORKER && t_thrd.role != THREADPOOL_WORKER) ||
|
||||
(!enable_dml_auditing && !is_masking_policy_exist())) {
|
||||
if (next_post_parse_analyze_hook) {
|
||||
next_post_parse_analyze_hook(pstate, query);
|
||||
|
|
@ -656,9 +629,24 @@ static void gsaudit_next_PostParseAnalyze_hook(ParseState *pstate, Query *query)
|
|||
/* For ALTER TABLE EXCHANGE, will not allowed if the ordinary table(it's columns) has masking policy.*/
|
||||
if (query->utilityStmt != NULL && nodeTag(query->utilityStmt) == T_AlterTableStmt) {
|
||||
AlterTableStmt *alter_table = (AlterTableStmt *)(query->utilityStmt);
|
||||
if (exchange_partition_with_masked_table(alter_table->cmds)) {
|
||||
ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("ALTER TABLE EXCHANGE can not execute with masked ordinary table.")));
|
||||
Oid relid = RangeVarGetRelid(alter_table->relation, NoLock, true);
|
||||
|
||||
ListCell *lc = NULL;
|
||||
foreach (lc, alter_table->cmds) {
|
||||
AlterTableCmd *cmd = (AlterTableCmd *)lfirst(lc);
|
||||
if (cmd->subtype == AT_ExchangePartition) {
|
||||
Assert(PointerIsValid(cmd->exchange_with_rel));
|
||||
if (is_masked_relation(relid)) {
|
||||
ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||
errmsg("ALTER TABLE EXCHANGE can not execute with masked partition table.")));
|
||||
}
|
||||
|
||||
Oid ordTableOid = RangeVarGetRelid(cmd->exchange_with_rel, NoLock, true);
|
||||
if (is_masked_relation(ordTableOid)) {
|
||||
ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||
errmsg("ALTER TABLE EXCHANGE can not execute with masked ordinary table.")));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ declare
|
|||
rd INTEGER;
|
||||
size INTEGER := pg_catalog.length(col);
|
||||
tmp text := col;
|
||||
res text;
|
||||
res text := '';
|
||||
begin
|
||||
while size > 0 loop
|
||||
rd := pg_catalog.floor(pg_catalog.random() * pg_catalog.length(tmp) + 1);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# security_plugin extension
|
||||
comment = 'provides security functionality'
|
||||
default_version = '1.0'
|
||||
module_pathname = '$libdir/security_plugin'
|
||||
relocatable = true
|
||||
# security_plugin extension
|
||||
comment = 'provides security functionality'
|
||||
default_version = '1.0'
|
||||
module_pathname = '$libdir/security_plugin'
|
||||
relocatable = true
|
||||
|
|
|
|||
|
|
@ -107,9 +107,9 @@ static void pg_decode_startup(LogicalDecodingContext* ctx, OutputPluginOptions*
|
|||
|
||||
foreach (option, ctx->output_plugin_options) {
|
||||
DefElem* elem = (DefElem*)lfirst(option);
|
||||
|
||||
|
||||
Assert(elem->arg == NULL || IsA(elem->arg, String));
|
||||
|
||||
|
||||
if (strcmp(elem->defname, "include-xids") == 0) {
|
||||
/* if option does not provide a value, it means its value is true */
|
||||
if (elem->arg == NULL) {
|
||||
|
|
@ -194,7 +194,7 @@ static void pg_decode_commit_txn(LogicalDecodingContext* ctx, ReorderBufferTXN*
|
|||
|
||||
OutputPluginPrepareWrite(ctx, true);
|
||||
appendStringInfoString(ctx->out, "COMMIT");
|
||||
appendStringInfo(ctx->out, " (at %s)", timestamptz_to_str(txn->commit_time));
|
||||
appendStringInfo(ctx->out, " (at %s)", timestamptz_to_str(txn->commit_time));
|
||||
appendStringInfo(ctx->out, " %lu", txn->csn);
|
||||
OutputPluginWrite(ctx, true);
|
||||
}
|
||||
|
|
@ -286,7 +286,7 @@ static void print_literal(StringInfo s, Oid typid, char* outputstr)
|
|||
/*
|
||||
* Decode tuple into stringinfo.
|
||||
*/
|
||||
static void TupleToStringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple, bool skip_nulls)
|
||||
static void TupleToStringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple)
|
||||
{
|
||||
Assert(tuple != NULL);
|
||||
if ((tuple->tupTableType == HEAP_TUPLE) && (HEAP_TUPLE_IS_COMPRESSED(tuple->t_data) ||
|
||||
|
|
@ -315,10 +315,6 @@ static void TupleToStringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple,
|
|||
origval = uheap_getattr((UHeapTuple)tuple, natt + 1, tupdesc, &isnull);
|
||||
}
|
||||
|
||||
if (skip_nulls && isnull) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/* query output function */
|
||||
Oid typid = attr->atttypid; /* type of current attribute */
|
||||
getTypeOutputInfo(typid, &typoutput, &typisvarlena);
|
||||
|
|
@ -343,7 +339,7 @@ static void TupleToStringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple,
|
|||
* Decode tuple into stringinfo.
|
||||
* This function is used for UPDATE or DELETE statements.
|
||||
*/
|
||||
static void TupleToStringinfoUpd(StringInfo s, TupleDesc tupdesc, HeapTuple tuple, bool skip_nulls)
|
||||
static void TupleToStringinfoUpd(Relation relation, StringInfo s, TupleDesc tupdesc, HeapTuple tuple)
|
||||
{
|
||||
if ((tuple->tupTableType == HEAP_TUPLE) && (HEAP_TUPLE_IS_COMPRESSED(tuple->t_data) ||
|
||||
(int)HeapTupleHeaderGetNatts(tuple->t_data, tupdesc) > tupdesc->natts)) {
|
||||
|
|
@ -360,7 +356,7 @@ static void TupleToStringinfoUpd(StringInfo s, TupleDesc tupdesc, HeapTuple tupl
|
|||
|
||||
Form_pg_attribute attr = tupdesc->attrs[natt]; /* the attribute itself */
|
||||
|
||||
if (attr->attisdropped || attr->attnum < 0) {
|
||||
if (attr->attisdropped || attr->attnum < 0 || !IsRelationReplidentKey(relation, attr->attnum)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -371,10 +367,6 @@ static void TupleToStringinfoUpd(StringInfo s, TupleDesc tupdesc, HeapTuple tupl
|
|||
origval = uheap_getattr((UHeapTuple)tuple, natt + 1, tupdesc, &isnull);
|
||||
}
|
||||
|
||||
if (isnull && skip_nulls) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isFirstAtt) {
|
||||
appendStringInfoString(s, " and ");
|
||||
} else {
|
||||
|
|
@ -403,31 +395,32 @@ static void TupleToStringinfoUpd(StringInfo s, TupleDesc tupdesc, HeapTuple tupl
|
|||
* Callback for handle decoded tuple.
|
||||
* Additional info will be added if the tuple is found null.
|
||||
*/
|
||||
static void TupleHandler(StringInfo s, TupleDesc tupdesc, ReorderBufferChange* change, bool isHeap, bool isNewTuple)
|
||||
static void TupleHandler(Relation relation, StringInfo s, TupleDesc tupdesc, ReorderBufferChange* change,
|
||||
bool isHeap, bool isNewTuple)
|
||||
{
|
||||
if (isHeap && isNewTuple) {
|
||||
if (change->data.tp.newtuple == NULL) {
|
||||
appendStringInfoString(s, " (no-tuple-data)");
|
||||
} else {
|
||||
TupleToStringinfo(s, tupdesc, &change->data.tp.newtuple->tuple, false);
|
||||
TupleToStringinfo(s, tupdesc, &change->data.tp.newtuple->tuple);
|
||||
}
|
||||
} else if (isHeap && !isNewTuple) {
|
||||
if (change->data.tp.oldtuple == NULL) {
|
||||
appendStringInfoString(s, " (no-tuple-data)");
|
||||
} else {
|
||||
TupleToStringinfoUpd(s, tupdesc, &change->data.tp.oldtuple->tuple, true);
|
||||
TupleToStringinfoUpd(relation, s, tupdesc, &change->data.tp.oldtuple->tuple);
|
||||
}
|
||||
} else if (!isHeap && isNewTuple) {
|
||||
if (change->data.utp.newtuple == NULL) {
|
||||
appendStringInfoString(s, " (no-tuple-data)");
|
||||
} else {
|
||||
TupleToStringinfo(s, tupdesc, (HeapTuple)(&change->data.utp.newtuple->tuple), false);
|
||||
TupleToStringinfo(s, tupdesc, (HeapTuple)(&change->data.utp.newtuple->tuple));
|
||||
}
|
||||
} else {
|
||||
if (change->data.utp.oldtuple == NULL) {
|
||||
appendStringInfoString(s, " (no-tuple-data)");
|
||||
} else {
|
||||
TupleToStringinfoUpd(s, tupdesc, (HeapTuple)(&change->data.utp.oldtuple->tuple), true);
|
||||
TupleToStringinfoUpd(relation, s, tupdesc, (HeapTuple)(&change->data.utp.oldtuple->tuple));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -472,7 +465,7 @@ static void pg_decode_change(
|
|||
isHeap = false;
|
||||
}
|
||||
appendStringInfoString(ctx->out, " values ");
|
||||
TupleHandler(ctx->out, tupdesc, change, isHeap, true);
|
||||
TupleHandler(relation, ctx->out, tupdesc, change, isHeap, true);
|
||||
break;
|
||||
case REORDER_BUFFER_CHANGE_UPDATE:
|
||||
case REORDER_BUFFER_CHANGE_UUPDATE:
|
||||
|
|
@ -483,12 +476,12 @@ static void pg_decode_change(
|
|||
isHeap = false;
|
||||
}
|
||||
appendStringInfoString(ctx->out, " where ");
|
||||
TupleHandler(ctx->out, tupdesc, change, isHeap, false);
|
||||
TupleHandler(relation, ctx->out, tupdesc, change, isHeap, false);
|
||||
appendStringInfoChar(ctx->out, ';');
|
||||
appendStringInfoString(ctx->out, "insert into ");
|
||||
appendStringInfoString(ctx->out, quote_qualified_identifier(schema, table));
|
||||
appendStringInfoString(ctx->out, " values ");
|
||||
TupleHandler(ctx->out, tupdesc, change, isHeap, true);
|
||||
TupleHandler(relation, ctx->out, tupdesc, change, isHeap, true);
|
||||
|
||||
break;
|
||||
|
||||
|
|
@ -502,7 +495,7 @@ static void pg_decode_change(
|
|||
}
|
||||
appendStringInfoString(ctx->out, " where ");
|
||||
|
||||
TupleHandler(ctx->out, tupdesc, change, isHeap, false);
|
||||
TupleHandler(relation, ctx->out, tupdesc, change, isHeap, false);
|
||||
break;
|
||||
default:
|
||||
Assert(false);
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ static bool pg_decode_filter(LogicalDecodingContext* ctx, RepOriginId origin_id)
|
|||
return true;
|
||||
return false;
|
||||
}
|
||||
static void tuple_to_stringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple, bool skip_nulls)
|
||||
static void tuple_to_stringinfo(Relation relation, StringInfo s, TupleDesc tupdesc, HeapTuple tuple, bool isOld)
|
||||
{
|
||||
if (HEAP_TUPLE_IS_COMPRESSED(tuple->t_data))
|
||||
return;
|
||||
|
|
@ -237,7 +237,7 @@ static void tuple_to_stringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple
|
|||
* Don't print system columns, oid will already have been printed if
|
||||
* present.
|
||||
*/
|
||||
if (attr->attnum < 0)
|
||||
if (attr->attnum < 0 || (isOld && !IsRelationReplidentKey(relation, attr->attnum)))
|
||||
continue;
|
||||
|
||||
typid = attr->atttypid;
|
||||
|
|
@ -245,9 +245,6 @@ static void tuple_to_stringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple
|
|||
/* get Datum from tuple */
|
||||
origval = heap_getattr(tuple, natt + 1, tupdesc, &isnull);
|
||||
|
||||
if (isnull && skip_nulls)
|
||||
continue;
|
||||
|
||||
/* print attribute name */
|
||||
appendStringInfoChar(s, ' ');
|
||||
appendStringInfoString(s, quote_identifier(NameStr(attr->attname)));
|
||||
|
|
@ -327,20 +324,20 @@ static void pg_decode_change(
|
|||
if (change->data.tp.newtuple == NULL)
|
||||
appendStringInfoString(ctx->out, " (no-tuple-data)");
|
||||
else
|
||||
tuple_to_stringinfo(ctx->out, tupdesc, &change->data.tp.newtuple->tuple, false);
|
||||
tuple_to_stringinfo(relation, ctx->out, tupdesc, &change->data.tp.newtuple->tuple, false);
|
||||
break;
|
||||
case REORDER_BUFFER_CHANGE_UPDATE:
|
||||
appendStringInfoString(ctx->out, " UPDATE:");
|
||||
if (change->data.tp.oldtuple != NULL) {
|
||||
appendStringInfoString(ctx->out, " old-key:");
|
||||
tuple_to_stringinfo(ctx->out, tupdesc, &change->data.tp.oldtuple->tuple, true);
|
||||
tuple_to_stringinfo(relation, ctx->out, tupdesc, &change->data.tp.oldtuple->tuple, true);
|
||||
appendStringInfoString(ctx->out, " new-tuple:");
|
||||
}
|
||||
|
||||
if (change->data.tp.newtuple == NULL)
|
||||
appendStringInfoString(ctx->out, " (no-tuple-data)");
|
||||
else
|
||||
tuple_to_stringinfo(ctx->out, tupdesc, &change->data.tp.newtuple->tuple, false);
|
||||
tuple_to_stringinfo(relation, ctx->out, tupdesc, &change->data.tp.newtuple->tuple, false);
|
||||
break;
|
||||
case REORDER_BUFFER_CHANGE_DELETE:
|
||||
appendStringInfoString(ctx->out, " DELETE:");
|
||||
|
|
@ -350,7 +347,7 @@ static void pg_decode_change(
|
|||
appendStringInfoString(ctx->out, " (no-tuple-data)");
|
||||
/* In DELETE, only the replica identity is present; display that */
|
||||
else
|
||||
tuple_to_stringinfo(ctx->out, tupdesc, &change->data.tp.oldtuple->tuple, true);
|
||||
tuple_to_stringinfo(relation, ctx->out, tupdesc, &change->data.tp.oldtuple->tuple, true);
|
||||
break;
|
||||
default:
|
||||
Assert(false);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
<repoType>Generic</repoType>
|
||||
<id>
|
||||
<offering>Huawei Secure C</offering>
|
||||
<version>Huawei Secure C V100R001C01SPC010B002</version>
|
||||
<version>Huawei Secure C V100R001C01SPC012B002</version>
|
||||
</id>
|
||||
<copies>
|
||||
<copy>
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
<repoType>Generic</repoType>
|
||||
<id>
|
||||
<offering>DOPRA SSP</offering>
|
||||
<version>DOPRA SSP V300R021C10SPC010B100</version>
|
||||
<version>DOPRA SSP V300R022C00SPC050B200</version>
|
||||
</id>
|
||||
<copies>
|
||||
<copy>
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
<repoType>Generic</repoType>
|
||||
<id>
|
||||
<offering>BiSheng JDK Enterprise</offering>
|
||||
<version>BiSheng JDK Enterprise 2.1.0.320.B001</version>
|
||||
<version>BiSheng JDK Enterprise 2.3.0.340.B003</version>
|
||||
</id>
|
||||
<copies>
|
||||
<copy>
|
||||
|
|
@ -74,4 +74,4 @@
|
|||
</copies>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
<refentry id="SQL-ABORT">
|
||||
<refmeta>
|
||||
<refentrytitle>ABORT</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ABORT</refname>
|
||||
<refpurpose>abort the current transaction</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ABORT [ WORK | TRANSACTION ] ;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ABORT">
|
||||
<refmeta>
|
||||
<refentrytitle>ABORT</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ABORT</refname>
|
||||
<refpurpose>abort the current transaction</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ABORT [ WORK | TRANSACTION ] ;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
<refentry id="SQL-ALTER_APP_WORKLOAD_GROUP_MAPPING">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER APP WORKLOAD GROUP MAPPING</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER APP WORKLOAD GROUP MAPPING</refname>
|
||||
<refpurpose>modify app group relate with group mapping</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER APP WORKLOAD GROUP MAPPING app_name
|
||||
WITH ( WORKLOAD_GPNAME = wg_name );
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_APP_WORKLOAD_GROUP_MAPPING">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER APP WORKLOAD GROUP MAPPING</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER APP WORKLOAD GROUP MAPPING</refname>
|
||||
<refpurpose>modify app group relate with group mapping</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER APP WORKLOAD GROUP MAPPING app_name
|
||||
WITH ( WORKLOAD_GPNAME = wg_name );
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,35 +1,35 @@
|
|||
<refentry id="SQL-ALTER_AUDIT_POLICY">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER AUDIT POLICY</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER AUDIT POLICY</refname>
|
||||
<refpurpose>change a audit policy</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ADD | REMOVE } { [ privilege_audit_clause ] [ access_audit_clause ] };
|
||||
ALTER AUDIT POLICY [ IF EXISTS ] policy_name MODIFY ( filter_group_clause );
|
||||
ALTER AUDIT POLICY [ IF EXISTS ] policy_name DROP FILTER;
|
||||
ALTER AUDIT POLICY [ IF EXISTS ] policy_name COMMENTS policy_comments;
|
||||
ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ENABLE | DISABLE };
|
||||
|
||||
where privilege_audit_clause can be:
|
||||
PRIVILEGES { DDL | ALL }
|
||||
|
||||
where access_audit_clause can be:
|
||||
ACCESS { DML | ALL }
|
||||
|
||||
where filter_group_clause can be:
|
||||
FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }
|
||||
|
||||
where DDL can be:
|
||||
{ ( ALTER | ANALYZE | COMMENT | CREATE | DROP | GRANT | REVOKE | SET | SHOW | LOGIN_ACCESS | LOGIN_FAILURE | LOGOUT | LOGIN ) }
|
||||
|
||||
where DML can be:
|
||||
{ ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | PREPARE | SELECT | TRUNCATE | UPDATE ) }
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_AUDIT_POLICY">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER AUDIT POLICY</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER AUDIT POLICY</refname>
|
||||
<refpurpose>change a audit policy</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ADD | REMOVE } { [ privilege_audit_clause ] [ access_audit_clause ] };
|
||||
ALTER AUDIT POLICY [ IF EXISTS ] policy_name MODIFY ( filter_group_clause );
|
||||
ALTER AUDIT POLICY [ IF EXISTS ] policy_name DROP FILTER;
|
||||
ALTER AUDIT POLICY [ IF EXISTS ] policy_name COMMENTS policy_comments;
|
||||
ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ENABLE | DISABLE };
|
||||
|
||||
where privilege_audit_clause can be:
|
||||
PRIVILEGES { DDL | ALL }
|
||||
|
||||
where access_audit_clause can be:
|
||||
ACCESS { DML | ALL }
|
||||
|
||||
where filter_group_clause can be:
|
||||
FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }
|
||||
|
||||
where DDL can be:
|
||||
{ ( ALTER | ANALYZE | COMMENT | CREATE | DROP | GRANT | REVOKE | SET | SHOW | LOGIN_ACCESS | LOGIN_FAILURE | LOGOUT | LOGIN ) }
|
||||
|
||||
where DML can be:
|
||||
{ ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | PREPARE | SELECT | TRUNCATE | UPDATE ) }
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,24 +1,24 @@
|
|||
<refentry id="SQL-ALTER_DATA_SOURCE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER DATA SOURCE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER DATA SOURCE</refname>
|
||||
<refpurpose>alter the data source</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER DATA SOURCE src_name
|
||||
[TYPE 'type_str']
|
||||
[VERSION {'version_str' | NULL}]
|
||||
[OPTIONS ( { [ADD | SET | DROP] optname ['optvalue'] } [, ...] )];
|
||||
ALTER DATA SOURCE src_name RENAME TO src_new_name;
|
||||
ALTER DATA SOURCE src_name OWNER TO new_owner;
|
||||
|
||||
Valid optname are:
|
||||
DSN, USERNAME, PASSWORD, ENCODING
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_DATA_SOURCE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER DATA SOURCE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER DATA SOURCE</refname>
|
||||
<refpurpose>alter the data source</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER DATA SOURCE src_name
|
||||
[TYPE 'type_str']
|
||||
[VERSION {'version_str' | NULL}]
|
||||
[OPTIONS ( { [ADD | SET | DROP] optname ['optvalue'] } [, ...] )];
|
||||
ALTER DATA SOURCE src_name RENAME TO src_new_name;
|
||||
ALTER DATA SOURCE src_name OWNER TO new_owner;
|
||||
|
||||
Valid optname are:
|
||||
DSN, USERNAME, PASSWORD, ENCODING
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,29 +1,29 @@
|
|||
<refentry id="SQL-ALTER_DATABASE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER DATABASE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER DATABASE</refname>
|
||||
<refpurpose>change a database</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER DATABASE database_name
|
||||
[ [ WITH ] CONNECTION LIMIT connlimit ];
|
||||
ALTER DATABASE database_name
|
||||
RENAME TO new_name;
|
||||
ALTER DATABASE database_name
|
||||
OWNER TO new_owner;
|
||||
ALTER DATABASE database_name
|
||||
SET TABLESPACE new_tablespace;
|
||||
ALTER DATABASE database_name
|
||||
SET configuration_parameter { { TO | = } { value | DEFAULT } | FROM CURRENT };
|
||||
ALTER DATABASE database_name
|
||||
RESET { configuration_parameter | ALL };
|
||||
ALTER DATABASE database_name
|
||||
[ WITH ] { ENABLE | DISABLE } PRIVATE OBJECT;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_DATABASE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER DATABASE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER DATABASE</refname>
|
||||
<refpurpose>change a database</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER DATABASE database_name
|
||||
[ [ WITH ] CONNECTION LIMIT connlimit ];
|
||||
ALTER DATABASE database_name
|
||||
RENAME TO new_name;
|
||||
ALTER DATABASE database_name
|
||||
OWNER TO new_owner;
|
||||
ALTER DATABASE database_name
|
||||
SET TABLESPACE new_tablespace;
|
||||
ALTER DATABASE database_name
|
||||
SET configuration_parameter { { TO | = } { value | DEFAULT } | FROM CURRENT };
|
||||
ALTER DATABASE database_name
|
||||
RESET { configuration_parameter | ALL };
|
||||
ALTER DATABASE database_name
|
||||
[ WITH ] { ENABLE | DISABLE } PRIVATE OBJECT;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,103 +1,103 @@
|
|||
<refentry id="SQL-ALTER_DEFAULT_PRIVILEGES">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER DEFAULT PRIVILEGES</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER DEFAULT PRIVILEGES</refname>
|
||||
<refpurpose>define default access privileges</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER DEFAULT PRIVILEGES
|
||||
[ FOR { ROLE | USER } target_role [, ...] ]
|
||||
[ IN SCHEMA schema_name [, ...] ]
|
||||
abbreviated_grant_or_revoke;
|
||||
|
||||
where abbreviated_grant_or_revoke can be:
|
||||
grant_on_tables_clause
|
||||
| grant_on_sequences_clause
|
||||
| grant_on_functions_clause
|
||||
| grant_on_types_clause
|
||||
| grant_on_client_master_keys_clause
|
||||
| grant_on_column_encryption_keys_clause
|
||||
| revoke_on_tables_clause
|
||||
| revoke_on_sequences_clause
|
||||
| revoke_on_functions_clause
|
||||
| revoke_on_types_clause
|
||||
| revoke_on_client_master_keys_clause
|
||||
| revoke_on_column_encryption_keys_clause
|
||||
where grant_on_tables_clause can be:
|
||||
GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES |
|
||||
ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON TABLES
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where grant_on_sequences_clause can be:
|
||||
GRANT { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT }
|
||||
[, ...] | ALL [ PRIVILEGES ] }
|
||||
ON SEQUENCES
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where grant_on_functions_clause can be:
|
||||
GRANT { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON FUNCTIONS
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where grant_on_types_clause can be:
|
||||
GRANT { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON TYPES
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where grant_on_client_master_keys_clause can be:
|
||||
GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON CLIENT_MASTER_KEYS
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where grant_on_column_encryption_keys_clause can be:
|
||||
GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON COLUMN_ENCRYPTION_KEYS
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where revoke_on_tables_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES |
|
||||
ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON TABLES
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
where revoke_on_sequences_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT }
|
||||
[, ...] | ALL [ PRIVILEGES ] }
|
||||
ON SEQUENCES
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
where revoke_on_functions_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON FUNCTIONS
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
where revoke_on_types_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON TYPES
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
where revoke_on_client_master_keys_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON CLIENT_MASTER_KEYS
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
where revoke_on_column_encryption_keys_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON COLUMN_ENCRYPTION_KEYS
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_DEFAULT_PRIVILEGES">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER DEFAULT PRIVILEGES</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER DEFAULT PRIVILEGES</refname>
|
||||
<refpurpose>define default access privileges</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER DEFAULT PRIVILEGES
|
||||
[ FOR { ROLE | USER } target_role [, ...] ]
|
||||
[ IN SCHEMA schema_name [, ...] ]
|
||||
abbreviated_grant_or_revoke;
|
||||
|
||||
where abbreviated_grant_or_revoke can be:
|
||||
grant_on_tables_clause
|
||||
| grant_on_sequences_clause
|
||||
| grant_on_functions_clause
|
||||
| grant_on_types_clause
|
||||
| grant_on_client_master_keys_clause
|
||||
| grant_on_column_encryption_keys_clause
|
||||
| revoke_on_tables_clause
|
||||
| revoke_on_sequences_clause
|
||||
| revoke_on_functions_clause
|
||||
| revoke_on_types_clause
|
||||
| revoke_on_client_master_keys_clause
|
||||
| revoke_on_column_encryption_keys_clause
|
||||
where grant_on_tables_clause can be:
|
||||
GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES |
|
||||
ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON TABLES
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where grant_on_sequences_clause can be:
|
||||
GRANT { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT }
|
||||
[, ...] | ALL [ PRIVILEGES ] }
|
||||
ON SEQUENCES
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where grant_on_functions_clause can be:
|
||||
GRANT { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON FUNCTIONS
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where grant_on_types_clause can be:
|
||||
GRANT { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON TYPES
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where grant_on_client_master_keys_clause can be:
|
||||
GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON CLIENT_MASTER_KEYS
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where grant_on_column_encryption_keys_clause can be:
|
||||
GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON COLUMN_ENCRYPTION_KEYS
|
||||
TO { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ WITH GRANT OPTION ]
|
||||
where revoke_on_tables_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES |
|
||||
ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON TABLES
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
where revoke_on_sequences_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT }
|
||||
[, ...] | ALL [ PRIVILEGES ] }
|
||||
ON SEQUENCES
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
where revoke_on_functions_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON FUNCTIONS
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
where revoke_on_types_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON TYPES
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
where revoke_on_client_master_keys_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON CLIENT_MASTER_KEYS
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
where revoke_on_column_encryption_keys_clause can be:
|
||||
REVOKE [ GRANT OPTION FOR ]
|
||||
{ { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
|
||||
ON COLUMN_ENCRYPTION_KEYS
|
||||
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
|
||||
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
<refentry id="SQL-ALTER_DIRECTORY">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER DIRECTORY</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER DIRECTORY</refname>
|
||||
<refpurpose>change a directory</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER DIRECTORY directory_name
|
||||
OWNER TO new_owner;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_DIRECTORY">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER DIRECTORY</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER DIRECTORY</refname>
|
||||
<refpurpose>change a directory</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER DIRECTORY directory_name
|
||||
OWNER TO new_owner;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -27,19 +27,19 @@ ALTER EXTENSION <replaceable class="PARAMETER">name</replaceable> UPDATE [ TO <r
|
|||
ALTER EXTENSION <replaceable class="PARAMETER">name</replaceable> SET SCHEMA <replaceable class="PARAMETER">new_schema</replaceable>;
|
||||
ALTER EXTENSION <replaceable class="PARAMETER">name</replaceable> ADD <replaceable class="PARAMETER">member_object</replaceable>;
|
||||
ALTER EXTENSION <replaceable class="PARAMETER">name</replaceable> DROP <replaceable class="PARAMETER">member_object</replaceable>;
|
||||
|
||||
<phrase>where <replaceable class="PARAMETER">member_object</replaceable> is:</phrase>
|
||||
|
||||
FOREIGN TABLE <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
FUNCTION <replaceable class="PARAMETER">function_name</replaceable> ( [ [ <replaceable class="parameter">argmode</replaceable> ] [ <replaceable class="parameter">argname</replaceable> ] <replaceable class="parameter">argtype</replaceable> [, ...] ] ) |
|
||||
[ PROCEDURAL ] LANGUAGE <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
SCHEMA <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
SERVER <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
TABLE <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
TEXT SEARCH CONFIGURATION <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
TYPE <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
VIEW <replaceable class="PARAMETER">object_name</replaceable>
|
||||
</synopsis>
|
||||
|
||||
<phrase>where <replaceable class="PARAMETER">member_object</replaceable> is:</phrase>
|
||||
|
||||
FOREIGN TABLE <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
FUNCTION <replaceable class="PARAMETER">function_name</replaceable> ( [ [ <replaceable class="parameter">argmode</replaceable> ] [ <replaceable class="parameter">argname</replaceable> ] <replaceable class="parameter">argtype</replaceable> [, ...] ] ) |
|
||||
[ PROCEDURAL ] LANGUAGE <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
SCHEMA <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
SERVER <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
TABLE <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
TEXT SEARCH CONFIGURATION <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
TYPE <replaceable class="PARAMETER">object_name</replaceable> |
|
||||
VIEW <replaceable class="PARAMETER">object_name</replaceable>
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
|
|
|
|||
|
|
@ -1,88 +1,88 @@
|
|||
<refentry id="SQL-ALTER_FOREIGN_TABLE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER FOREIGN TABLE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER FOREIGN TABLE</refname>
|
||||
<refpurpose>change the definition of a foreign table</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
|
||||
1. GDS:
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ]);
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OWNER TO new_owner;
|
||||
|
||||
2. HDFS:
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ]);
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OWNER TO new_owner;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
ADD [CONSTRAINT constraint_name]
|
||||
{PRIMARY KEY | UNIQUE} (column_name)
|
||||
[NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED];
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
DROP CONSTRAINT constraint_name ;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
action [, ... ];
|
||||
|
||||
where action can be:
|
||||
ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
|
||||
| ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
|
||||
| ALTER [ COLUMN ] column_name SET STATISTICS integer
|
||||
| ALTER [ COLUMN ] column_name OPTIONS ( {[ ADD | SET | DROP ] option ['value'] } [, ... ])
|
||||
| MODIFY column_name data_type
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ]
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NULL
|
||||
|
||||
3. OBS:
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ]);
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OWNER TO new_owner;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
ADD [CONSTRAINT constraint_name]
|
||||
{PRIMARY KEY | UNIQUE} (column_name)
|
||||
[NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED];
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
DROP CONSTRAINT constraint_name ;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
action [, ... ];
|
||||
|
||||
where action can be:
|
||||
ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
|
||||
| ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
|
||||
| ALTER [ COLUMN ] column_name SET STATISTICS integer
|
||||
| ALTER [ COLUMN ] column_name OPTIONS ( {[ ADD | SET | DROP ] option ['value'] } [, ... ])
|
||||
| MODIFY column_name data_type
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ]
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NULL
|
||||
|
||||
4. GC:
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OPTIONS ( {[ SET ] option ['value']} [, ... ]);
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OWNER TO new_owner;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
MODIFY ( { column_name data_type [, ...] );
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
action [, ... ];
|
||||
|
||||
where action can be:
|
||||
ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
|
||||
| MODIFY column_name data_type
|
||||
|
||||
|
||||
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_FOREIGN_TABLE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER FOREIGN TABLE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER FOREIGN TABLE</refname>
|
||||
<refpurpose>change the definition of a foreign table</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
|
||||
1. GDS:
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ]);
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OWNER TO new_owner;
|
||||
|
||||
2. HDFS:
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ]);
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OWNER TO new_owner;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
ADD [CONSTRAINT constraint_name]
|
||||
{PRIMARY KEY | UNIQUE} (column_name)
|
||||
[NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED];
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
DROP CONSTRAINT constraint_name ;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
action [, ... ];
|
||||
|
||||
where action can be:
|
||||
ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
|
||||
| ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
|
||||
| ALTER [ COLUMN ] column_name SET STATISTICS integer
|
||||
| ALTER [ COLUMN ] column_name OPTIONS ( {[ ADD | SET | DROP ] option ['value'] } [, ... ])
|
||||
| MODIFY column_name data_type
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ]
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NULL
|
||||
|
||||
3. OBS:
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ]);
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OWNER TO new_owner;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
ADD [CONSTRAINT constraint_name]
|
||||
{PRIMARY KEY | UNIQUE} (column_name)
|
||||
[NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED];
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
DROP CONSTRAINT constraint_name ;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
action [, ... ];
|
||||
|
||||
where action can be:
|
||||
ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
|
||||
| ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
|
||||
| ALTER [ COLUMN ] column_name SET STATISTICS integer
|
||||
| ALTER [ COLUMN ] column_name OPTIONS ( {[ ADD | SET | DROP ] option ['value'] } [, ... ])
|
||||
| MODIFY column_name data_type
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ]
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NULL
|
||||
|
||||
4. GC:
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OPTIONS ( {[ SET ] option ['value']} [, ... ]);
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OWNER TO new_owner;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] table_name
|
||||
MODIFY ( { column_name data_type [, ...] );
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
action [, ... ];
|
||||
|
||||
where action can be:
|
||||
ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
|
||||
| MODIFY column_name data_type
|
||||
|
||||
|
||||
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,30 +1,30 @@
|
|||
<refentry id="SQL-ALTER_FOREIGN_TABLE_FOR_HDFS">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER FOREIGN TABLE FOR HDFS</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER FOREIGN TABLE FOR HDFS</refname>
|
||||
<refpurpose>change the definition of a foreign table</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OWNER TO new_owner;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
action [, ... ];
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
ADD [CONSTRAINT constraint_name]
|
||||
{PRIMARY KEY | UNIQUE} (column_name)
|
||||
[NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED];
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
DROP CONSTRAINT constraint_name ;
|
||||
|
||||
where action can be:
|
||||
ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
|
||||
| ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
|
||||
| ALTER [ COLUMN ] column_name SET STATISTICS [PERCENT] integer
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_FOREIGN_TABLE_FOR_HDFS">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER FOREIGN TABLE FOR HDFS</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER FOREIGN TABLE FOR HDFS</refname>
|
||||
<refpurpose>change the definition of a foreign table</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
OWNER TO new_owner;
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
action [, ... ];
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
ADD [CONSTRAINT constraint_name]
|
||||
{PRIMARY KEY | UNIQUE} (column_name)
|
||||
[NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED];
|
||||
ALTER FOREIGN TABLE [ IF EXISTS ] tablename
|
||||
DROP CONSTRAINT constraint_name ;
|
||||
|
||||
where action can be:
|
||||
ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
|
||||
| ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
|
||||
| ALTER [ COLUMN ] column_name SET STATISTICS [PERCENT] integer
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,35 +1,35 @@
|
|||
<refentry id="SQL-ALTER_FUNCTION">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER FUNCTION</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER FUNCTION</refname>
|
||||
<refpurpose>change the definition of a function</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER FUNCTION function_name ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
|
||||
action [ ... ] [ RESTRICT ];
|
||||
ALTER FUNCTION funname ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
|
||||
RENAME TO new_name;
|
||||
ALTER FUNCTION funname ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
|
||||
OWNER TO new_owner;
|
||||
ALTER FUNCTION funname ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
|
||||
SET SCHEMA new_schema;
|
||||
|
||||
where action can be:
|
||||
{CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT}
|
||||
| {IMMUTABLE | STABLE | VOLATILE}
|
||||
| {NOT FENCED | FENCED}
|
||||
| [ NOT ] LEAKPROOF
|
||||
| {[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER}
|
||||
| AUTHID { DEFINER | CURRENT_USER }
|
||||
| COST execution_cost
|
||||
| ROWS result_rows
|
||||
| SET configuration_parameter {{ TO | = } { value | DEFAULT }| FROM CURRENT}
|
||||
| RESET {configuration_parameter| ALL}
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_FUNCTION">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER FUNCTION</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER FUNCTION</refname>
|
||||
<refpurpose>change the definition of a function</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER FUNCTION function_name ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
|
||||
action [ ... ] [ RESTRICT ];
|
||||
ALTER FUNCTION funname ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
|
||||
RENAME TO new_name;
|
||||
ALTER FUNCTION funname ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
|
||||
OWNER TO new_owner;
|
||||
ALTER FUNCTION funname ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
|
||||
SET SCHEMA new_schema;
|
||||
|
||||
where action can be:
|
||||
{CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT}
|
||||
| {IMMUTABLE | STABLE | VOLATILE}
|
||||
| {NOT FENCED | FENCED}
|
||||
| [ NOT ] LEAKPROOF
|
||||
| {[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER}
|
||||
| AUTHID { DEFINER | CURRENT_USER }
|
||||
| COST execution_cost
|
||||
| ROWS result_rows
|
||||
| SET configuration_parameter {{ TO | = } { value | DEFAULT }| FROM CURRENT}
|
||||
| RESET {configuration_parameter| ALL}
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
<refentry id="SQL-ALTER_GROUP">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER GROUP</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER GROUP</refname>
|
||||
<refpurpose>change role name or membership</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER GROUP group_name
|
||||
ADD USER user_name [, ... ];
|
||||
ALTER GROUP group_name
|
||||
DROP USER user_name [, ... ];
|
||||
ALTER GROUP group_name
|
||||
RENAME TO new_name;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_GROUP">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER GROUP</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER GROUP</refname>
|
||||
<refpurpose>change role name or membership</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER GROUP group_name
|
||||
ADD USER user_name [, ... ];
|
||||
ALTER GROUP group_name
|
||||
DROP USER user_name [, ... ];
|
||||
ALTER GROUP group_name
|
||||
RENAME TO new_name;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,31 +1,31 @@
|
|||
<refentry id="SQL-ALTER_INDEX">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER INDEX</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER INDEX</refname>
|
||||
<refpurpose>change the definition of an index</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
RENAME TO new_name;
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
SET TABLESPACE tablespace_name;
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
SET ( {storage_parameter = value} [, ... ] );
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
RESET ( storage_parameter [, ... ] ) ;
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
[ MODIFY PARTITION partition_name ] UNUSABLE;
|
||||
ALTER INDEX index_name
|
||||
REBUILD [ PARTITION partition_name ];
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
RENAME PARTITION partition_name TO new_partition_name;
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
MOVE PARTITION index_partition_name TABLESPACE new_tablespace;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_INDEX">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER INDEX</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER INDEX</refname>
|
||||
<refpurpose>change the definition of an index</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
RENAME TO new_name;
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
SET TABLESPACE tablespace_name;
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
SET ( {storage_parameter = value} [, ... ] );
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
RESET ( storage_parameter [, ... ] ) ;
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
[ MODIFY PARTITION partition_name ] UNUSABLE;
|
||||
ALTER INDEX index_name
|
||||
REBUILD [ PARTITION partition_name ];
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
RENAME PARTITION partition_name TO new_partition_name;
|
||||
ALTER INDEX [ IF EXISTS ] index_name
|
||||
MOVE PARTITION index_partition_name TABLESPACE new_tablespace;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
<refentry id="SQL-ALTER_LARGE_OBJECT">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER LARGE OBJECT</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER LARGE OBJECT</refname>
|
||||
<refpurpose>change the definition of a large object</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER LARGE OBJECT large_object_oid
|
||||
OWNER TO new_owner;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_LARGE_OBJECT">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER LARGE OBJECT</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER LARGE OBJECT</refname>
|
||||
<refpurpose>change the definition of a large object</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER LARGE OBJECT large_object_oid
|
||||
OWNER TO new_owner;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,31 +1,31 @@
|
|||
<!--
|
||||
doc/src/sgml/ref/alter_materialized_view.sgml
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
<refentry id="SQL-ALTERMATERIALIZEDVIEW">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER MATERIALIZED VIEW</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>ALTER MATERIALIZED VIEW</refname>
|
||||
<refpurpose>replace the contents of a materialized view</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<indexterm zone="sql-altermaterializedview">
|
||||
<primary>ALTER MATERIALIZED VIEW</primary>
|
||||
</indexterm>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER MATERIALIZED VIEW [ IF EXISTS ] mv_name
|
||||
OWNER TO new_owner;
|
||||
ALTER MATERIALIZED VIEW [ IF EXISTS ] mv_name
|
||||
RENAME [COLUMN] column_name to new_column_name;
|
||||
ALTER MATERIALIZED VIEW [ IF EXISTS ] mv_name
|
||||
RENAME TO new_name;
|
||||
</synopsis>
|
||||
</refentry>
|
||||
<!--
|
||||
doc/src/sgml/ref/alter_materialized_view.sgml
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
<refentry id="SQL-ALTERMATERIALIZEDVIEW">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER MATERIALIZED VIEW</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>ALTER MATERIALIZED VIEW</refname>
|
||||
<refpurpose>replace the contents of a materialized view</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<indexterm zone="sql-altermaterializedview">
|
||||
<primary>ALTER MATERIALIZED VIEW</primary>
|
||||
</indexterm>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER MATERIALIZED VIEW [ IF EXISTS ] mv_name
|
||||
OWNER TO new_owner;
|
||||
ALTER MATERIALIZED VIEW [ IF EXISTS ] mv_name
|
||||
RENAME [COLUMN] column_name to new_column_name;
|
||||
ALTER MATERIALIZED VIEW [ IF EXISTS ] mv_name
|
||||
RENAME TO new_name;
|
||||
</synopsis>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,32 +1,32 @@
|
|||
<refentry id="SQL-ALTER_NODE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER NODE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER NODE</refname>
|
||||
<refpurpose>alter a cluster node</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER NODE nodename WITH
|
||||
(
|
||||
[ TYPE = nodetype,]
|
||||
[ HOST = hostname,]
|
||||
[ PORT = portnum,]
|
||||
[ HOST1 = 'hostname',]
|
||||
[ PORT1 = portnum,]
|
||||
[ HOSTPRIMARY [ = boolean ],]
|
||||
[ PRIMARY [ = boolean ],]
|
||||
[ PREFERRED [ = boolean ],]
|
||||
[ SCTP_PORT = portnum,]
|
||||
[ CONTROL_PORT = portnum,]
|
||||
[ SCTP_PORT1 = portnum,]
|
||||
[ CONTROL_PORT1 = portnum, ]
|
||||
[ NODEIS_CENTRAL [= boolean], ]
|
||||
[ NODEIS_ACTIVE [= boolean] ]
|
||||
);
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_NODE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER NODE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER NODE</refname>
|
||||
<refpurpose>alter a cluster node</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER NODE nodename WITH
|
||||
(
|
||||
[ TYPE = nodetype,]
|
||||
[ HOST = hostname,]
|
||||
[ PORT = portnum,]
|
||||
[ HOST1 = 'hostname',]
|
||||
[ PORT1 = portnum,]
|
||||
[ HOSTPRIMARY [ = boolean ],]
|
||||
[ PRIMARY [ = boolean ],]
|
||||
[ PREFERRED [ = boolean ],]
|
||||
[ SCTP_PORT = portnum,]
|
||||
[ CONTROL_PORT = portnum,]
|
||||
[ SCTP_PORT1 = portnum,]
|
||||
[ CONTROL_PORT1 = portnum, ]
|
||||
[ NODEIS_CENTRAL [= boolean], ]
|
||||
[ NODEIS_ACTIVE [= boolean] ]
|
||||
);
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<refentry id="sql-alterprocedure">
|
||||
<indexterm zone="sql-alterprocedure">
|
||||
<primary>ALTER PROCEDURE</primary>
|
||||
</indexterm>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER PROCEDURE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>ALTER PROCEDURE</refname>
|
||||
<refpurpose>change the definition of a procedure</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER PROCEDURE <replaceable>name</replaceable> [ ( [ [ <replaceable class="parameter">argmode</replaceable> ] [ <replaceable class="parameter">argname</replaceable> ] <replaceable class="parameter">argtype</replaceable> [, ...] ] ) ]
|
||||
<replaceable class="parameter">action</replaceable> [ ... ] [ RESTRICT ]
|
||||
ALTER PROCEDURE <replaceable>name</replaceable> [ ( [ [ <replaceable class="parameter">argmode</replaceable> ] [ <replaceable class="parameter">argname</replaceable> ] <replaceable class="parameter">argtype</replaceable> [, ...] ] ) ]
|
||||
RENAME TO <replaceable>new_name</replaceable>
|
||||
ALTER PROCEDURE <replaceable>name</replaceable> [ ( [ [ <replaceable class="parameter">argmode</replaceable> ] [ <replaceable class="parameter">argname</replaceable> ] <replaceable class="parameter">argtype</replaceable> [, ...] ] ) ]
|
||||
OWNER TO <replaceable>new_owner</replaceable>
|
||||
ALTER PROCEDURE <replaceable>name</replaceable> [ ( [ [ <replaceable class="parameter">argmode</replaceable> ] [ <replaceable class="parameter">argname</replaceable> ] <replaceable class="parameter">argtype</replaceable> [, ...] ] ) ]
|
||||
SET SCHEMA <replaceable>new_schema</replaceable>
|
||||
|
||||
<phrase>where <replaceable class="parameter">action</replaceable> is one of:</phrase>
|
||||
|
||||
CALLED ON NULL INPUT | STRICT
|
||||
IMMUTABLE | STABLE | VOLATILE
|
||||
SHIPPABLE | NOT SHIPPABLE
|
||||
NOT FENCED | FENCED
|
||||
[ NOT ] LEAKPROOF
|
||||
[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
|
||||
AUTHID DEFINER
|
||||
AUTHID CURRENT_USER
|
||||
COST <replaceable class="parameter">execution_cost</replaceable>
|
||||
ROWS <replaceable class="parameter">result_rows</replaceable>
|
||||
SET <replaceable class="parameter">configuration_parameter</replaceable> { TO | = } { <replaceable class="parameter">value</replaceable> | DEFAULT }
|
||||
SET <replaceable class="parameter">configuration_parameter</replaceable> FROM CURRENT
|
||||
RESET <replaceable class="parameter">configuration_parameter</replaceable>
|
||||
RESET ALL
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
<refentry id="SQL-ALTER_RESOURCE_POOL">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER RESOURCE POOL</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER RESOURCE POOL</refname>
|
||||
<refpurpose>change the resource pool</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER RESOURCE POOL pool_name
|
||||
WITH ({MEM_PERCENT=pct | CONTROL_GROUP="group_name" | ACTIVE_STATEMENTS=stmt | MAX_DOP = dop | MEMORY_LIMIT='memory_size' | io_limits=io_limits | io_priority='priority' | nodegroup='nodegroup_name' }[, ... ]);
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_RESOURCE_POOL">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER RESOURCE POOL</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER RESOURCE POOL</refname>
|
||||
<refpurpose>change the resource pool</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER RESOURCE POOL pool_name
|
||||
WITH ({MEM_PERCENT=pct | CONTROL_GROUP="group_name" | ACTIVE_STATEMENTS=stmt | MAX_DOP = dop | MEMORY_LIMIT='memory_size' | io_limits=io_limits | io_priority='priority' | nodegroup='nodegroup_name' }[, ... ]);
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,51 +1,51 @@
|
|||
<refentry id="SQL-ALTER_ROLE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER ROLE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER ROLE</refname>
|
||||
<refpurpose>change a database role</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER ROLE role_name [ [ WITH ] option [ ... ] ];
|
||||
ALTER ROLE role_name
|
||||
RENAME TO new_name;
|
||||
ALTER ROLE role_name [ IN DATABASE database_name ]
|
||||
SET configuration_parameter {{ TO | = } { value | DEFAULT }|FROM CURRENT};
|
||||
ALTER ROLE role_name
|
||||
[ IN DATABASE database_name ] RESET {configuration_parameter|ALL};
|
||||
|
||||
where option can be:
|
||||
{CREATEDB | NOCREATEDB}
|
||||
| {CREATEROLE | NOCREATEROLE}
|
||||
| {INHERIT | NOINHERIT}
|
||||
| {AUDITADMIN | NOAUDITADMIN}
|
||||
| {SYSADMIN | NOSYSADMIN}
|
||||
| {MONADMIN | NOMONADMIN}
|
||||
| {OPRADMIN | NOOPRADMIN}
|
||||
| {POLADMIN | NOPOLADMIN}
|
||||
| {USEFT | NOUSEFT}
|
||||
| {LOGIN | NOLOGIN}
|
||||
| {REPLICATION | NOREPLICATION}
|
||||
| {INDEPENDENT | NOINDEPENDENT}
|
||||
| {VCADMIN | NOVCADMIN}
|
||||
| {PERSISTENCE | NOPERSISTENCE}
|
||||
| CONNECTION LIMIT connlimit
|
||||
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' [ EXPIRED ] | DISABLE | EXPIRED }
|
||||
| [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' | EXPIRED ] | DISABLE }
|
||||
| VALID BEGIN 'timestamp'
|
||||
| VALID UNTIL 'timestamp'
|
||||
| RESOURCE POOL 'respool'
|
||||
| USER GROUP 'groupuser'
|
||||
| PERM SPACE 'spacelimit'
|
||||
| TEMP SPACE 'tmpspacelimit'
|
||||
| SPILL SPACE 'spillspacelimit'
|
||||
| NODE GROUP logic_cluster_name
|
||||
| ACCOUNT { LOCK | UNLOCK }
|
||||
| PGUSER
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_ROLE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER ROLE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER ROLE</refname>
|
||||
<refpurpose>change a database role</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER ROLE role_name [ [ WITH ] option [ ... ] ];
|
||||
ALTER ROLE role_name
|
||||
RENAME TO new_name;
|
||||
ALTER ROLE role_name [ IN DATABASE database_name ]
|
||||
SET configuration_parameter {{ TO | = } { value | DEFAULT }|FROM CURRENT};
|
||||
ALTER ROLE role_name
|
||||
[ IN DATABASE database_name ] RESET {configuration_parameter|ALL};
|
||||
|
||||
where option can be:
|
||||
{CREATEDB | NOCREATEDB}
|
||||
| {CREATEROLE | NOCREATEROLE}
|
||||
| {INHERIT | NOINHERIT}
|
||||
| {AUDITADMIN | NOAUDITADMIN}
|
||||
| {SYSADMIN | NOSYSADMIN}
|
||||
| {MONADMIN | NOMONADMIN}
|
||||
| {OPRADMIN | NOOPRADMIN}
|
||||
| {POLADMIN | NOPOLADMIN}
|
||||
| {USEFT | NOUSEFT}
|
||||
| {LOGIN | NOLOGIN}
|
||||
| {REPLICATION | NOREPLICATION}
|
||||
| {INDEPENDENT | NOINDEPENDENT}
|
||||
| {VCADMIN | NOVCADMIN}
|
||||
| {PERSISTENCE | NOPERSISTENCE}
|
||||
| CONNECTION LIMIT connlimit
|
||||
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' [ EXPIRED ] | DISABLE | EXPIRED }
|
||||
| [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' | EXPIRED ] | DISABLE }
|
||||
| VALID BEGIN 'timestamp'
|
||||
| VALID UNTIL 'timestamp'
|
||||
| RESOURCE POOL 'respool'
|
||||
| USER GROUP 'groupuser'
|
||||
| PERM SPACE 'spacelimit'
|
||||
| TEMP SPACE 'tmpspacelimit'
|
||||
| SPILL SPACE 'spillspacelimit'
|
||||
| NODE GROUP logic_cluster_name
|
||||
| ACCOUNT { LOCK | UNLOCK }
|
||||
| PGUSER
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<refentry id="SQL-ALTER_SCHEMA">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER SCHEMA</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER SCHEMA</refname>
|
||||
<refpurpose>change the definition of a schema</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER SCHEMA schema_name
|
||||
RENAME TO new_name;
|
||||
ALTER SCHEMA schema_name
|
||||
OWNER TO new_owner;
|
||||
ALTER SCHEMA schema_name {WITH | WITHOUT} BLOCKCHAIN;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_SCHEMA">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER SCHEMA</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER SCHEMA</refname>
|
||||
<refpurpose>change the definition of a schema</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER SCHEMA schema_name
|
||||
RENAME TO new_name;
|
||||
ALTER SCHEMA schema_name
|
||||
OWNER TO new_owner;
|
||||
ALTER SCHEMA schema_name {WITH | WITHOUT} BLOCKCHAIN;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,21 +1,21 @@
|
|||
<refentry id="SQL-ALTER_SERVER">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER SERVER</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER SERVER</refname>
|
||||
<refpurpose>change the definition of a foreign server</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER SERVER server_name [ VERSION 'new_version' ]
|
||||
[ OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ] ) ];
|
||||
ALTER SERVER server_name
|
||||
OWNER TO new_owner;
|
||||
ALTER SERVER server_name
|
||||
RENAME TO new_name;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_SERVER">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER SERVER</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER SERVER</refname>
|
||||
<refpurpose>change the definition of a foreign server</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER SERVER server_name [ VERSION 'new_version' ]
|
||||
[ OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ] ) ];
|
||||
ALTER SERVER server_name
|
||||
OWNER TO new_owner;
|
||||
ALTER SERVER server_name
|
||||
RENAME TO new_name;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,27 +1,27 @@
|
|||
<refentry id="SQL-ALTER_SESSION">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER SESSION</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER SESSION</refname>
|
||||
<refpurpose>define and modify the current session influenced by condition or parameter</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER SESSION SET
|
||||
{{config_parameter { { TO | = } { value | DEFAULT }
|
||||
| FROM CURRENT }} | CURRENT_SCHEMA [ TO | = ] { schema | DEFAULT }
|
||||
| TIME ZONE time_zone
|
||||
| SCHEMA schema
|
||||
| NAMES encoding_name
|
||||
| ROLE role_name PASSWORD 'password'
|
||||
| SESSION AUTHORIZATION { role_name PASSWORD 'password' | DEFAULT }
|
||||
| XML OPTION { DOCUMENT | CONTENT }
|
||||
} ;
|
||||
ALTER SESSION SET [ SESSION CHARACTERISTICS AS ] TRANSACTION
|
||||
{ ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED } | { READ ONLY | READ WRITE } } [, ...] ;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_SESSION">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER SESSION</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER SESSION</refname>
|
||||
<refpurpose>define and modify the current session influenced by condition or parameter</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER SESSION SET
|
||||
{{config_parameter { { TO | = } { value | DEFAULT }
|
||||
| FROM CURRENT }} | CURRENT_SCHEMA [ TO | = ] { schema | DEFAULT }
|
||||
| TIME ZONE time_zone
|
||||
| SCHEMA schema
|
||||
| NAMES encoding_name
|
||||
| ROLE role_name PASSWORD 'password'
|
||||
| SESSION AUTHORIZATION { role_name PASSWORD 'password' | DEFAULT }
|
||||
| XML OPTION { DOCUMENT | CONTENT }
|
||||
} ;
|
||||
ALTER SESSION SET [ SESSION CHARACTERISTICS AS ] TRANSACTION
|
||||
{ ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED } | { READ ONLY | READ WRITE } } [, ...] ;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
<refentry id="SQL-ALTER_SYSTEM_KILL_SESSION">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER SYSTEM KILL SESSION</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER SYSTEM KILL SESSION</refname>
|
||||
<refpurpose>kill and finish a system session</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER SYSTEM KILL SESSION 'session_sid, serial' [ IMMEDIATE ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_SYSTEM_KILL_SESSION">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER SYSTEM KILL SESSION</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER SYSTEM KILL SESSION</refname>
|
||||
<refpurpose>kill and finish a system session</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER SYSTEM KILL SESSION 'session_sid, serial' [ IMMEDIATE ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,16 +1,18 @@
|
|||
<refentry id="SQL-ALTER_SYSTEM_SET">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER SYSTEM SET</refentrytitle>
|
||||
<manvolnum>6</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER SYSTEM SET</refname>
|
||||
<refpurpose>set a high-level(postmaster, sighup and backend) GUC.</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER SYSTEM SET { GUC_name } TO { GUC_value };
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_SYSTEM_SET">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER SYSTEM SET</refentrytitle>
|
||||
<manvolnum>6</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER SYSTEM SET</refname>
|
||||
<refpurpose>set a high-level(postmaster, sighup and backend) GUC.</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER SYSTEM SET { GUC_name } TO { GUC_value };
|
||||
|
||||
NOTICE: only supported in opengauss, not supported in distributeGauss or privateGauss.
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,102 +1,102 @@
|
|||
<refentry id="SQL-ALTER_TABLE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER TABLE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER TABLE</refname>
|
||||
<refpurpose>change the definition of a table</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
|
||||
action [, ... ];
|
||||
ALTER TABLE [ IF EXISTS ] table_name
|
||||
ADD ( { column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ]} [, ...] );
|
||||
ALTER TABLE [ IF EXISTS ] table_name
|
||||
MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
|
||||
ALTER TABLE [ IF EXISTS ] table_name
|
||||
RENAME TO new_table_name;
|
||||
ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
|
||||
RENAME [ COLUMN ] column_name TO new_column_name;
|
||||
ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
|
||||
RENAME CONSTRAINT constraint_name TO new_constraint_name;
|
||||
ALTER TABLE [ IF EXISTS ] table_name
|
||||
SET SCHEMA new_schema;
|
||||
|
||||
where action can be:
|
||||
column_clause
|
||||
| ADD table_constraint [ NOT VALID ]
|
||||
| ADD table_constraint_using_index
|
||||
| VALIDATE CONSTRAINT constraint_name
|
||||
| DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ]
|
||||
| CLUSTER ON index_name
|
||||
| SET WITHOUT CLUSTER
|
||||
| SET ( {storage_parameter = value} [, ... ] )
|
||||
| RESET ( storage_parameter [, ... ] )
|
||||
| OWNER TO new_owner
|
||||
| SET TABLESPACE new_tablespace
|
||||
| SET {COMPRESS|NOCOMPRESS}
|
||||
| TO { GROUP groupname | NODE ( nodename [, ... ] ) }
|
||||
| ADD NODE ( nodename [, ... ] )
|
||||
| DELETE NODE ( nodename [, ... ] )
|
||||
| UPDATE SLICE LIKE table_name
|
||||
| DISABLE TRIGGER [ trigger_name | ALL | USER ]
|
||||
| ENABLE TRIGGER [ trigger_name | ALL | USER ]
|
||||
| ENABLE REPLICA TRIGGER trigger_name
|
||||
| ENABLE ALWAYS TRIGGER trigger_name
|
||||
| ENABLE ROW LEVEL SECURITY
|
||||
| DISABLE ROW LEVEL SECURITY
|
||||
| FORCE ROW LEVEL SECURITY
|
||||
| NO FORCE ROW LEVEL SECURITY
|
||||
| ENCRYPTION KEY ROTATION
|
||||
where column_clause can be:
|
||||
ADD [ COLUMN ] column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ]
|
||||
| MODIFY column_name data_type
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ]
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NULL
|
||||
| DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ]
|
||||
| ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
|
||||
| ALTER [ COLUMN ] column_name { SET DEFAULT expression | DROP DEFAULT }
|
||||
| ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
|
||||
| ALTER [ COLUMN ] column_name SET STATISTICS [PERCENT] integer
|
||||
| ADD STATISTICS (( column_1_name, column_2_name [, ...] ))
|
||||
| DELETE STATISTICS (( column_1_name, column_2_name [, ...] ))
|
||||
| ALTER [ COLUMN ] column_name SET ( {attribute_option = value} [, ... ] )
|
||||
| ALTER [ COLUMN ] column_name RESET ( attribute_option [, ... ] )
|
||||
| ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
|
||||
where column_constraint can be:
|
||||
[ CONSTRAINT constraint_name ]
|
||||
{ NOT NULL |
|
||||
NULL |
|
||||
CHECK ( expression ) |
|
||||
DEFAULT default_expr |
|
||||
GENERATED ALWAYS AS ( generation_expr ) STORED |
|
||||
UNIQUE index_parameters |
|
||||
PRIMARY KEY index_parameters |
|
||||
ENCRYPTED WITH ( COLUMN_ENCRYPTION_KEY = column_encryption_key, ENCRYPTION_TYPE = encryption_type_value ) |
|
||||
REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
|
||||
[ ON DELETE action ] [ ON UPDATE action ] }
|
||||
[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
|
||||
where compress_mode can be:
|
||||
{ DELTA | PREFIX | DICTIONARY | NUMSTR | NOCOMPRESS }
|
||||
where table_constraint can be:
|
||||
[ CONSTRAINT constraint_name ]
|
||||
{ CHECK ( expression ) |
|
||||
UNIQUE ( column_name [, ... ] ) index_parameters |
|
||||
PRIMARY KEY ( column_name [, ... ] ) index_parameters |
|
||||
PARTIAL CLUSTER KEY ( column_name [, ... ] ) |
|
||||
FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ]
|
||||
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] }
|
||||
[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
|
||||
where index_parameters can be:
|
||||
[ WITH ( {storage_parameter = value} [, ... ] ) ]
|
||||
[ USING INDEX TABLESPACE tablespace_name ]
|
||||
where table_constraint_using_index can be:
|
||||
[ CONSTRAINT constraint_name ]
|
||||
{ UNIQUE | PRIMARY KEY } USING INDEX index_name
|
||||
[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_TABLE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER TABLE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER TABLE</refname>
|
||||
<refpurpose>change the definition of a table</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
|
||||
action [, ... ];
|
||||
ALTER TABLE [ IF EXISTS ] table_name
|
||||
ADD ( { column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ]} [, ...] );
|
||||
ALTER TABLE [ IF EXISTS ] table_name
|
||||
MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
|
||||
ALTER TABLE [ IF EXISTS ] table_name
|
||||
RENAME TO new_table_name;
|
||||
ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
|
||||
RENAME [ COLUMN ] column_name TO new_column_name;
|
||||
ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
|
||||
RENAME CONSTRAINT constraint_name TO new_constraint_name;
|
||||
ALTER TABLE [ IF EXISTS ] table_name
|
||||
SET SCHEMA new_schema;
|
||||
|
||||
where action can be:
|
||||
column_clause
|
||||
| ADD table_constraint [ NOT VALID ]
|
||||
| ADD table_constraint_using_index
|
||||
| VALIDATE CONSTRAINT constraint_name
|
||||
| DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ]
|
||||
| CLUSTER ON index_name
|
||||
| SET WITHOUT CLUSTER
|
||||
| SET ( {storage_parameter = value} [, ... ] )
|
||||
| RESET ( storage_parameter [, ... ] )
|
||||
| OWNER TO new_owner
|
||||
| SET TABLESPACE new_tablespace
|
||||
| SET {COMPRESS|NOCOMPRESS}
|
||||
| TO { GROUP groupname | NODE ( nodename [, ... ] ) }
|
||||
| ADD NODE ( nodename [, ... ] )
|
||||
| DELETE NODE ( nodename [, ... ] )
|
||||
| UPDATE SLICE LIKE table_name
|
||||
| DISABLE TRIGGER [ trigger_name | ALL | USER ]
|
||||
| ENABLE TRIGGER [ trigger_name | ALL | USER ]
|
||||
| ENABLE REPLICA TRIGGER trigger_name
|
||||
| ENABLE ALWAYS TRIGGER trigger_name
|
||||
| ENABLE ROW LEVEL SECURITY
|
||||
| DISABLE ROW LEVEL SECURITY
|
||||
| FORCE ROW LEVEL SECURITY
|
||||
| NO FORCE ROW LEVEL SECURITY
|
||||
| ENCRYPTION KEY ROTATION
|
||||
where column_clause can be:
|
||||
ADD [ COLUMN ] column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ]
|
||||
| MODIFY column_name data_type
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ]
|
||||
| MODIFY column_name [ CONSTRAINT constraint_name ] NULL
|
||||
| DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ]
|
||||
| ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
|
||||
| ALTER [ COLUMN ] column_name { SET DEFAULT expression | DROP DEFAULT }
|
||||
| ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
|
||||
| ALTER [ COLUMN ] column_name SET STATISTICS [PERCENT] integer
|
||||
| ADD STATISTICS (( column_1_name, column_2_name [, ...] ))
|
||||
| DELETE STATISTICS (( column_1_name, column_2_name [, ...] ))
|
||||
| ALTER [ COLUMN ] column_name SET ( {attribute_option = value} [, ... ] )
|
||||
| ALTER [ COLUMN ] column_name RESET ( attribute_option [, ... ] )
|
||||
| ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
|
||||
where column_constraint can be:
|
||||
[ CONSTRAINT constraint_name ]
|
||||
{ NOT NULL |
|
||||
NULL |
|
||||
CHECK ( expression ) |
|
||||
DEFAULT default_expr |
|
||||
GENERATED ALWAYS AS ( generation_expr ) STORED |
|
||||
UNIQUE index_parameters |
|
||||
PRIMARY KEY index_parameters |
|
||||
ENCRYPTED WITH ( COLUMN_ENCRYPTION_KEY = column_encryption_key, ENCRYPTION_TYPE = encryption_type_value ) |
|
||||
REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
|
||||
[ ON DELETE action ] [ ON UPDATE action ] }
|
||||
[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
|
||||
where compress_mode can be:
|
||||
{ DELTA | PREFIX | DICTIONARY | NUMSTR | NOCOMPRESS }
|
||||
where table_constraint can be:
|
||||
[ CONSTRAINT constraint_name ]
|
||||
{ CHECK ( expression ) |
|
||||
UNIQUE ( column_name [, ... ] ) index_parameters |
|
||||
PRIMARY KEY ( column_name [, ... ] ) index_parameters |
|
||||
PARTIAL CLUSTER KEY ( column_name [, ... ] ) |
|
||||
FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ]
|
||||
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] }
|
||||
[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
|
||||
where index_parameters can be:
|
||||
[ WITH ( {storage_parameter = value} [, ... ] ) ]
|
||||
[ USING INDEX TABLESPACE tablespace_name ]
|
||||
where table_constraint_using_index can be:
|
||||
[ CONSTRAINT constraint_name ]
|
||||
{ UNIQUE | PRIMARY KEY } USING INDEX index_name
|
||||
[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,25 +1,25 @@
|
|||
<refentry id="SQL-ALTER_TABLESPACE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER TABLESPACE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER TABLESPACE</refname>
|
||||
<refpurpose>change the definition of a tablespace</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER TABLESPACE tablespace_name
|
||||
RENAME TO new_tablespace_name;
|
||||
ALTER TABLESPACE tablespace_name
|
||||
OWNER TO new_owner;
|
||||
ALTER TABLESPACE tablespace_name
|
||||
SET ( {tablespace_option = value} [, ... ] );
|
||||
ALTER TABLESPACE tablespace_name
|
||||
RESET ( tablespace_option [, ... ] );
|
||||
ALTER TABLESPACE tablespace_name
|
||||
RESIZE MAXSIZE { UNLIMITED | 'space_size' };
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_TABLESPACE">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER TABLESPACE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER TABLESPACE</refname>
|
||||
<refpurpose>change the definition of a tablespace</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER TABLESPACE tablespace_name
|
||||
RENAME TO new_tablespace_name;
|
||||
ALTER TABLESPACE tablespace_name
|
||||
OWNER TO new_owner;
|
||||
ALTER TABLESPACE tablespace_name
|
||||
SET ( {tablespace_option = value} [, ... ] );
|
||||
ALTER TABLESPACE tablespace_name
|
||||
RESET ( tablespace_option [, ... ] );
|
||||
ALTER TABLESPACE tablespace_name
|
||||
RESIZE MAXSIZE { UNLIMITED | 'space_size' };
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,29 +1,29 @@
|
|||
<refentry id="SQL-ALTER_TEXT_SEARCH_CONFIGURATION">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER TEXT SEARCH CONFIGURATION</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER TEXT SEARCH CONFIGURATION</refname>
|
||||
<refpurpose>change the definition of a text search configuration</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER TEXT SEARCH CONFIGURATION name
|
||||
ADD MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ];
|
||||
ALTER TEXT SEARCH CONFIGURATION name
|
||||
ALTER MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ];
|
||||
ALTER TEXT SEARCH CONFIGURATION name
|
||||
ALTER MAPPING FOR token_type [, ... ] REPLACE old_dictionary WITH new_dictionary;
|
||||
ALTER TEXT SEARCH CONFIGURATION name
|
||||
ALTER MAPPING REPLACE old_dictionary WITH new_dictionary;
|
||||
ALTER TEXT SEARCH CONFIGURATION name
|
||||
DROP MAPPING [ IF EXISTS ] FOR token_type [, ... ];
|
||||
ALTER TEXT SEARCH CONFIGURATION name RENAME TO new_name;
|
||||
ALTER TEXT SEARCH CONFIGURATION name OWNER TO new_owner;
|
||||
ALTER TEXT SEARCH CONFIGURATION name SET SCHEMA new_schema;
|
||||
ALTER TEXT SEARCH CONFIGURATION name SET ( {configuration_option = value} [, ...] );
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_TEXT_SEARCH_CONFIGURATION">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER TEXT SEARCH CONFIGURATION</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER TEXT SEARCH CONFIGURATION</refname>
|
||||
<refpurpose>change the definition of a text search configuration</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER TEXT SEARCH CONFIGURATION name
|
||||
ADD MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ];
|
||||
ALTER TEXT SEARCH CONFIGURATION name
|
||||
ALTER MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ];
|
||||
ALTER TEXT SEARCH CONFIGURATION name
|
||||
ALTER MAPPING FOR token_type [, ... ] REPLACE old_dictionary WITH new_dictionary;
|
||||
ALTER TEXT SEARCH CONFIGURATION name
|
||||
ALTER MAPPING REPLACE old_dictionary WITH new_dictionary;
|
||||
ALTER TEXT SEARCH CONFIGURATION name
|
||||
DROP MAPPING [ IF EXISTS ] FOR token_type [, ... ];
|
||||
ALTER TEXT SEARCH CONFIGURATION name RENAME TO new_name;
|
||||
ALTER TEXT SEARCH CONFIGURATION name OWNER TO new_owner;
|
||||
ALTER TEXT SEARCH CONFIGURATION name SET SCHEMA new_schema;
|
||||
ALTER TEXT SEARCH CONFIGURATION name SET ( {configuration_option = value} [, ...] );
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,51 +1,51 @@
|
|||
<refentry id="SQL-ALTER_USER">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER USER</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER USER</refname>
|
||||
<refpurpose>change a database role</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER USER user_name [ [ WITH ] option [ ... ] ];
|
||||
ALTER USER user_name
|
||||
RENAME TO new_name;
|
||||
ALTER USER user_name [ IN DATABASE database_name ]
|
||||
SET configuration_parameter {{ TO | = } { value | DEFAULT }|FROM CURRENT};
|
||||
ALTER USER user_name
|
||||
[ IN DATABASE database_name ] RESET {configuration_parameter|ALL};
|
||||
|
||||
where option can be:
|
||||
{CREATEDB | NOCREATEDB}
|
||||
| {CREATEROLE | NOCREATEROLE}
|
||||
| {INHERIT | NOINHERIT}
|
||||
| {AUDITADMIN | NOAUDITADMIN}
|
||||
| {SYSADMIN | NOSYSADMIN}
|
||||
| {MONADMIN | NOMONADMIN}
|
||||
| {OPRADMIN | NOOPRADMIN}
|
||||
| {POLADMIN | NOPOLADMIN}
|
||||
| {USEFT | NOUSEFT}
|
||||
| {LOGIN | NOLOGIN}
|
||||
| {REPLICATION | NOREPLICATION}
|
||||
| {INDEPENDENT | NOINDEPENDENT}
|
||||
| {VCADMIN | NOVCADMIN}
|
||||
| {PERSISTENCE | NOPERSISTENCE}
|
||||
| CONNECTION LIMIT connlimit
|
||||
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' [ EXPIRED ] | DISABLE | EXPIRED }
|
||||
| [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' | EXPIRED ] | DISABLE }
|
||||
| VALID BEGIN 'timestamp'
|
||||
| VALID UNTIL 'timestamp'
|
||||
| RESOURCE POOL 'respool'
|
||||
| USER GROUP 'groupuser'
|
||||
| PERM SPACE 'spacelimit'
|
||||
| TEMP SPACE 'tmpspacelimit'
|
||||
| SPILL SPACE 'spillspacelimit'
|
||||
| NODE GROUP logic_cluster_name
|
||||
| ACCOUNT { LOCK | UNLOCK }
|
||||
| PGUSER
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ALTER_USER">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER USER</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER USER</refname>
|
||||
<refpurpose>change a database role</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER USER user_name [ [ WITH ] option [ ... ] ];
|
||||
ALTER USER user_name
|
||||
RENAME TO new_name;
|
||||
ALTER USER user_name [ IN DATABASE database_name ]
|
||||
SET configuration_parameter {{ TO | = } { value | DEFAULT }|FROM CURRENT};
|
||||
ALTER USER user_name
|
||||
[ IN DATABASE database_name ] RESET {configuration_parameter|ALL};
|
||||
|
||||
where option can be:
|
||||
{CREATEDB | NOCREATEDB}
|
||||
| {CREATEROLE | NOCREATEROLE}
|
||||
| {INHERIT | NOINHERIT}
|
||||
| {AUDITADMIN | NOAUDITADMIN}
|
||||
| {SYSADMIN | NOSYSADMIN}
|
||||
| {MONADMIN | NOMONADMIN}
|
||||
| {OPRADMIN | NOOPRADMIN}
|
||||
| {POLADMIN | NOPOLADMIN}
|
||||
| {USEFT | NOUSEFT}
|
||||
| {LOGIN | NOLOGIN}
|
||||
| {REPLICATION | NOREPLICATION}
|
||||
| {INDEPENDENT | NOINDEPENDENT}
|
||||
| {VCADMIN | NOVCADMIN}
|
||||
| {PERSISTENCE | NOPERSISTENCE}
|
||||
| CONNECTION LIMIT connlimit
|
||||
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' [ EXPIRED ] | DISABLE | EXPIRED }
|
||||
| [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' | EXPIRED ] | DISABLE }
|
||||
| VALID BEGIN 'timestamp'
|
||||
| VALID UNTIL 'timestamp'
|
||||
| RESOURCE POOL 'respool'
|
||||
| USER GROUP 'groupuser'
|
||||
| PERM SPACE 'spacelimit'
|
||||
| TEMP SPACE 'tmpspacelimit'
|
||||
| SPILL SPACE 'spillspacelimit'
|
||||
| NODE GROUP logic_cluster_name
|
||||
| ACCOUNT { LOCK | UNLOCK }
|
||||
| PGUSER
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,29 +1,29 @@
|
|||
<refentry id="SQL-ALTER_VIEW">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER VIEW</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER VIEW</refname>
|
||||
<refpurpose>change the definition of a view</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
ALTER [ COLUMN ] column_name SET DEFAULT expression;
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
ALTER [ COLUMN ] column_name DROP DEFAULT;
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
OWNER TO new_owner;
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
RENAME TO new_name;
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
SET SCHEMA new_schema;
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
SET ( {view_option_name [= view_option_value]} [, ... ] );
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
RESET ( view_option_name [, ... ] );
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_VIEW">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER VIEW</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER VIEW</refname>
|
||||
<refpurpose>change the definition of a view</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
ALTER [ COLUMN ] column_name SET DEFAULT expression;
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
ALTER [ COLUMN ] column_name DROP DEFAULT;
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
OWNER TO new_owner;
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
RENAME TO new_name;
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
SET SCHEMA new_schema;
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
SET ( {view_option_name [= view_option_value]} [, ... ] );
|
||||
ALTER VIEW [ IF EXISTS ] view_name
|
||||
RESET ( view_option_name [, ... ] );
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
<refentry id="SQL-ALTER_WORKLOAD_GROUP">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER WORKLOAD GROUP</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER WORKLOAD GROUP</refname>
|
||||
<refpurpose>change the definition of a workload group</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER WORKLOAD GROUP wg_name
|
||||
USING RESOURCE POOL pool_name [ WITH ( ACT_STATEMENTS = count ) ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-ALTER_WORKLOAD_GROUP">
|
||||
<refmeta>
|
||||
<refentrytitle>ALTER WORKLOAD GROUP</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ALTER WORKLOAD GROUP</refname>
|
||||
<refpurpose>change the definition of a workload group</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
ALTER WORKLOAD GROUP wg_name
|
||||
USING RESOURCE POOL pool_name [ WITH ( ACT_STATEMENTS = count ) ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,29 +1,29 @@
|
|||
<refentry id="SQL-ANALYSE">
|
||||
<refmeta>
|
||||
<refentrytitle>ANALYSE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ANALYSE</refname>
|
||||
<refpurpose>collect statistics about a database</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
{ANALYZE | ANALYSE} [ VERBOSE ]
|
||||
[ table_name [ ( column_name [, ...] ) ] ];
|
||||
{ANALYZE | ANALYSE} [ VERBOSE ]
|
||||
[ table_name [ ( column_name [, ...] ) ] ]
|
||||
PARTITION patrition_name;
|
||||
{ANALYZE | ANALYSE} [ VERBOSE ]
|
||||
{ foreign_table_name | FOREIGN TABLES };
|
||||
{ANALYZE | ANALYSE} [ VERBOSE ]
|
||||
table_name (( column_1_name, column_2_name [, ...] ));
|
||||
{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE};
|
||||
{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE}
|
||||
table_name|index_name [CASCADE];
|
||||
{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE}
|
||||
table_name PARTITION (patrition_name) [CASCADE];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ANALYSE">
|
||||
<refmeta>
|
||||
<refentrytitle>ANALYSE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ANALYSE</refname>
|
||||
<refpurpose>collect statistics about a database</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
{ANALYZE | ANALYSE} [ VERBOSE ]
|
||||
[ table_name [ ( column_name [, ...] ) ] ];
|
||||
{ANALYZE | ANALYSE} [ VERBOSE ]
|
||||
[ table_name [ ( column_name [, ...] ) ] ]
|
||||
PARTITION patrition_name;
|
||||
{ANALYZE | ANALYSE} [ VERBOSE ]
|
||||
{ foreign_table_name | FOREIGN TABLES };
|
||||
{ANALYZE | ANALYSE} [ VERBOSE ]
|
||||
table_name (( column_1_name, column_2_name [, ...] ));
|
||||
{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE};
|
||||
{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE}
|
||||
table_name|index_name [CASCADE];
|
||||
{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE}
|
||||
table_name PARTITION (patrition_name) [CASCADE];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,28 +1,28 @@
|
|||
<refentry id="SQL-ANALYZE">
|
||||
<refmeta>
|
||||
<refentrytitle>ANALYZE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ANALYZE</refname>
|
||||
<refpurpose>collect statistics about a database</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
{ ANALYZE | ANALYSE } [ VERBOSE ]
|
||||
[ table_name [ ( column_name [, ...] ) ] ];
|
||||
{ ANALYZE | ANALYSE } [ VERBOSE ]
|
||||
[ table_name [ ( column_name [, ...] ) ] ]
|
||||
PARTITION patrition_name;
|
||||
{ ANALYZE | ANALYSE } [ VERBOSE ]
|
||||
{ foreign_table_name | FOREIGN TABLES };
|
||||
{ ANALYZE | ANALYSE } [ VERBOSE ]
|
||||
table_name (( column_1_name, column_2_name [, ...] ));
|
||||
{ ANALYZE | ANALYSE } VERIFY { FAST | COMPLETE };
|
||||
{ ANALYZE | ANALYSE } VERIFY { FAST | COMPLETE } table_name | index_name [ CASCADE ];
|
||||
{ ANALYZE | ANALYSE } VERIFY { FAST | COMPLETE }
|
||||
table_name PARTITION (patrition_name) [ CASCADE ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-ANALYZE">
|
||||
<refmeta>
|
||||
<refentrytitle>ANALYZE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>ANALYZE</refname>
|
||||
<refpurpose>collect statistics about a database</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
{ ANALYZE | ANALYSE } [ VERBOSE ]
|
||||
[ table_name [ ( column_name [, ...] ) ] ];
|
||||
{ ANALYZE | ANALYSE } [ VERBOSE ]
|
||||
[ table_name [ ( column_name [, ...] ) ] ]
|
||||
PARTITION patrition_name;
|
||||
{ ANALYZE | ANALYSE } [ VERBOSE ]
|
||||
{ foreign_table_name | FOREIGN TABLES };
|
||||
{ ANALYZE | ANALYSE } [ VERBOSE ]
|
||||
table_name (( column_1_name, column_2_name [, ...] ));
|
||||
{ ANALYZE | ANALYSE } VERIFY { FAST | COMPLETE };
|
||||
{ ANALYZE | ANALYSE } VERIFY { FAST | COMPLETE } table_name | index_name [ CASCADE ];
|
||||
{ ANALYZE | ANALYSE } VERIFY { FAST | COMPLETE }
|
||||
table_name PARTITION (patrition_name) [ CASCADE ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,31 +1,31 @@
|
|||
<refentry id="SQL-BEGIN">
|
||||
<refmeta>
|
||||
<refentrytitle>BEGIN</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>BEGIN</refname>
|
||||
<refpurpose>1. start a anonymous block. 2. start a transaction.</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
|
||||
start a anonymous block:
|
||||
[DECLARE [declare_statements]]
|
||||
BEGIN
|
||||
execution_statements
|
||||
END;
|
||||
/
|
||||
|
||||
start a transaction:
|
||||
BEGIN [ WORK | TRANSACTION ]
|
||||
[
|
||||
{
|
||||
ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ }
|
||||
| { READ WRITE | READ ONLY }
|
||||
} [, ...]
|
||||
];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-BEGIN">
|
||||
<refmeta>
|
||||
<refentrytitle>BEGIN</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>BEGIN</refname>
|
||||
<refpurpose>1. start a anonymous block. 2. start a transaction.</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
|
||||
start a anonymous block:
|
||||
[DECLARE [declare_statements]]
|
||||
BEGIN
|
||||
execution_statements
|
||||
END;
|
||||
/
|
||||
|
||||
start a transaction:
|
||||
BEGIN [ WORK | TRANSACTION ]
|
||||
[
|
||||
{
|
||||
ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ }
|
||||
| { READ WRITE | READ ONLY }
|
||||
} [, ...]
|
||||
];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
<refentry id="SQL-CALL">
|
||||
<refmeta>
|
||||
<refentrytitle>CALL</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CALL</refname>
|
||||
<refpurpose>call a defined function</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CALL [ schema. ] func_name ( param_expr );
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-CALL">
|
||||
<refmeta>
|
||||
<refentrytitle>CALL</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CALL</refname>
|
||||
<refpurpose>call a defined function</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CALL [ schema. ] func_name ( param_expr );
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
<refentry id="SQL-CLEAN_CONNECTION">
|
||||
<refmeta>
|
||||
<refentrytitle>CLEAN CONNECTION</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CLEAN CONNECTION</refname>
|
||||
<refpurpose>clean up pooler connections in a cluster</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CLEAN CONNECTION
|
||||
TO { COORDINATOR ( nodename [, ... ] ) | NODE ( nodename [, ... ] ) | ALL [ CHECK ] [ FORCE ] }
|
||||
[ FOR DATABASE dbname ]
|
||||
[ TO USER username ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-CLEAN_CONNECTION">
|
||||
<refmeta>
|
||||
<refentrytitle>CLEAN CONNECTION</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CLEAN CONNECTION</refname>
|
||||
<refpurpose>clean up pooler connections in a cluster</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CLEAN CONNECTION
|
||||
TO { COORDINATOR ( nodename [, ... ] ) | NODE ( nodename [, ... ] ) | ALL [ CHECK ] [ FORCE ] }
|
||||
[ FOR DATABASE dbname ]
|
||||
[ TO USER username ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
<refentry id="SQL-CLOSE">
|
||||
<refmeta>
|
||||
<refentrytitle>CLOSE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CLOSE</refname>
|
||||
<refpurpose>close a cursor</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CLOSE { cursor_name | ALL };
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-CLOSE">
|
||||
<refmeta>
|
||||
<refentrytitle>CLOSE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CLOSE</refname>
|
||||
<refpurpose>close a cursor</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CLOSE { cursor_name | ALL };
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
<refentry id="SQL-CLUSTER">
|
||||
<refmeta>
|
||||
<refentrytitle>CLUSTER</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CLUSTER</refname>
|
||||
<refpurpose>cluster a table according to an index</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CLUSTER [ VERBOSE ] table_name [ USING index_name ];
|
||||
CLUSTER [ VERBOSE ] table_name PARTITION ( partition_name ) [ USING index_name ];
|
||||
CLUSTER [ VERBOSE ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-CLUSTER">
|
||||
<refmeta>
|
||||
<refentrytitle>CLUSTER</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CLUSTER</refname>
|
||||
<refpurpose>cluster a table according to an index</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CLUSTER [ VERBOSE ] table_name [ USING index_name ];
|
||||
CLUSTER [ VERBOSE ] table_name PARTITION ( partition_name ) [ USING index_name ];
|
||||
CLUSTER [ VERBOSE ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,49 +1,49 @@
|
|||
<refentry id="SQL-COMMENT">
|
||||
<refmeta>
|
||||
<refentrytitle>COMMENT</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>COMMENT</refname>
|
||||
<refpurpose>define or change the comment of an object</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
COMMENT ON
|
||||
{
|
||||
AGGREGATE agg_name (agg_type [, ...] ) |
|
||||
CAST (source_type AS target_type) |
|
||||
COLLATION object_name |
|
||||
COLUMN { table_name.column_name | view_name.column_name } |
|
||||
CONSTRAINT constraint_name ON table_name |
|
||||
CONVERSION object_name |
|
||||
DATABASE object_name |
|
||||
DOMAIN object_name |
|
||||
EXTENSION object_name |
|
||||
FOREIGN DATA WRAPPER object_name |
|
||||
FOREIGN TABLE object_name |
|
||||
FUNCTION function_name ( [ {[ argmode ] [ argname ] argtype} [, ...] ] ) |
|
||||
INDEX object_name |
|
||||
LARGE OBJECT large_object_oid |
|
||||
OPERATOR operator_name (left_type, right_type) |
|
||||
OPERATOR CLASS object_name USING index_method |
|
||||
OPERATOR FAMILY object_name USING index_method |
|
||||
[ PROCEDURAL ] LANGUAGE object_name |
|
||||
ROLE object_name |
|
||||
RULE rule_name ON table_name |
|
||||
SCHEMA object_name |
|
||||
SERVER object_name |
|
||||
TABLE object_name |
|
||||
TABLESPACE object_name |
|
||||
TEXT SEARCH CONFIGURATION object_name |
|
||||
TEXT SEARCH DICTIONARY object_name |
|
||||
TEXT SEARCH PARSER object_name |
|
||||
TEXT SEARCH TEMPLATE object_name |
|
||||
TYPE object_name |
|
||||
VIEW object_name
|
||||
}
|
||||
IS 'text';
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-COMMENT">
|
||||
<refmeta>
|
||||
<refentrytitle>COMMENT</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>COMMENT</refname>
|
||||
<refpurpose>define or change the comment of an object</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
COMMENT ON
|
||||
{
|
||||
AGGREGATE agg_name (agg_type [, ...] ) |
|
||||
CAST (source_type AS target_type) |
|
||||
COLLATION object_name |
|
||||
COLUMN { table_name.column_name | view_name.column_name } |
|
||||
CONSTRAINT constraint_name ON table_name |
|
||||
CONVERSION object_name |
|
||||
DATABASE object_name |
|
||||
DOMAIN object_name |
|
||||
EXTENSION object_name |
|
||||
FOREIGN DATA WRAPPER object_name |
|
||||
FOREIGN TABLE object_name |
|
||||
FUNCTION function_name ( [ {[ argmode ] [ argname ] argtype} [, ...] ] ) |
|
||||
INDEX object_name |
|
||||
LARGE OBJECT large_object_oid |
|
||||
OPERATOR operator_name (left_type, right_type) |
|
||||
OPERATOR CLASS object_name USING index_method |
|
||||
OPERATOR FAMILY object_name USING index_method |
|
||||
[ PROCEDURAL ] LANGUAGE object_name |
|
||||
ROLE object_name |
|
||||
RULE rule_name ON table_name |
|
||||
SCHEMA object_name |
|
||||
SERVER object_name |
|
||||
TABLE object_name |
|
||||
TABLESPACE object_name |
|
||||
TEXT SEARCH CONFIGURATION object_name |
|
||||
TEXT SEARCH DICTIONARY object_name |
|
||||
TEXT SEARCH PARSER object_name |
|
||||
TEXT SEARCH TEMPLATE object_name |
|
||||
TYPE object_name |
|
||||
VIEW object_name
|
||||
}
|
||||
IS 'text';
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
<refentry id="SQL-COMMIT">
|
||||
<refmeta>
|
||||
<refentrytitle>COMMIT</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>COMMIT</refname>
|
||||
<refpurpose>commit the current transaction</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
{ COMMIT | END } [ WORK | TRANSACTION ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-COMMIT">
|
||||
<refmeta>
|
||||
<refentrytitle>COMMIT</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>COMMIT</refname>
|
||||
<refpurpose>commit the current transaction</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
{ COMMIT | END } [ WORK | TRANSACTION ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
<refentry id="SQL-COMMIT_PREPARED">
|
||||
<refmeta>
|
||||
<refentrytitle>COMMIT PREPARED</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>COMMIT PREPARED</refname>
|
||||
<refpurpose>commit a transaction that was earlier prepared for two-phase commit</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
COMMIT PREPARED transaction_id;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-COMMIT_PREPARED">
|
||||
<refmeta>
|
||||
<refentrytitle>COMMIT PREPARED</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>COMMIT PREPARED</refname>
|
||||
<refpurpose>commit a transaction that was earlier prepared for two-phase commit</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
COMMIT PREPARED transaction_id;
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -36,7 +36,7 @@ COPY query
|
|||
| [ FIXED FORMATTER ( { column_name( offset, length ) } [, ...] ) ];
|
||||
|
||||
where option can be:
|
||||
FORMAT 'format_name'
|
||||
FORMAT format_name
|
||||
| OIDS [ boolean ]
|
||||
| DELIMITER 'delimiter_character'
|
||||
| NULL 'null_string'
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
<refentry id="SQL-CREATE_APP_WORKLOAD_GROUP_MAPPING">
|
||||
<refmeta>
|
||||
<refentrytitle>CREATE APP WORKLOAD GROUP MAPPING</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CREATE APP WORKLOAD GROUP MAPPING</refname>
|
||||
<refpurpose>create a workload group mapping</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CREATE APP WORKLOAD GROUP MAPPING app_name
|
||||
[ WITH ( WORKLOAD_GPNAME = workload_gpname ) ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-CREATE_APP_WORKLOAD_GROUP_MAPPING">
|
||||
<refmeta>
|
||||
<refentrytitle>CREATE APP WORKLOAD GROUP MAPPING</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CREATE APP WORKLOAD GROUP MAPPING</refname>
|
||||
<refpurpose>create a workload group mapping</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CREATE APP WORKLOAD GROUP MAPPING app_name
|
||||
[ WITH ( WORKLOAD_GPNAME = workload_gpname ) ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,34 +1,34 @@
|
|||
<refentry id="SQL-CREATE_AUDIT_POLICY">
|
||||
<refmeta>
|
||||
<refentrytitle>CREATE AUDIT POLICY</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CREATE AUDIT POLICY</refname>
|
||||
<refpurpose>define a new audit policy</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CREATE AUDIT POLICY [ IF NOT EXISTS ] policy_name { { privilege_audit_clause | access_audit_clause } [ filter_group_clause ] [ ENABLED | DISABLED ] };
|
||||
|
||||
where privilege_audit_clause can be:
|
||||
PRIVILEGES { DDL | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
|
||||
|
||||
where access_audit_clause can be:
|
||||
ACCESS { DML | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
|
||||
|
||||
where filter_group_clause can be:
|
||||
FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }
|
||||
|
||||
where DDL can be:
|
||||
{ ( ALTER | ANALYZE | COMMENT | CREATE | DROP | GRANT | REVOKE | SET | SHOW | LOGIN_ACCESS | LOGIN_FAILURE | LOGOUT | LOGIN ) }
|
||||
|
||||
where DML can be:
|
||||
{ ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | PREPARE | SELECT | TRUNCATE | UPDATE ) }
|
||||
|
||||
where FILTER_TYPE can be:
|
||||
{ APP | ROLES | IP }
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
<refentry id="SQL-CREATE_AUDIT_POLICY">
|
||||
<refmeta>
|
||||
<refentrytitle>CREATE AUDIT POLICY</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CREATE AUDIT POLICY</refname>
|
||||
<refpurpose>define a new audit policy</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CREATE AUDIT POLICY [ IF NOT EXISTS ] policy_name { { privilege_audit_clause | access_audit_clause } [ filter_group_clause ] [ ENABLED | DISABLED ] };
|
||||
|
||||
where privilege_audit_clause can be:
|
||||
PRIVILEGES { DDL | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
|
||||
|
||||
where access_audit_clause can be:
|
||||
ACCESS { DML | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
|
||||
|
||||
where filter_group_clause can be:
|
||||
FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }
|
||||
|
||||
where DDL can be:
|
||||
{ ( ALTER | ANALYZE | COMMENT | CREATE | DROP | GRANT | REVOKE | SET | SHOW | LOGIN_ACCESS | LOGIN_FAILURE | LOGOUT | LOGIN ) }
|
||||
|
||||
where DML can be:
|
||||
{ ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | PREPARE | SELECT | TRUNCATE | UPDATE ) }
|
||||
|
||||
where FILTER_TYPE can be:
|
||||
{ APP | ROLES | IP }
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
<refentry id="SQL-CREATE_BARRIER">
|
||||
<refmeta>
|
||||
<refentrytitle>CREATE BARRIER</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CREATE BARRIER</refname>
|
||||
<refpurpose>create a new barrier</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CREATE BARRIER [ barrier_name ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-CREATE_BARRIER">
|
||||
<refmeta>
|
||||
<refentrytitle>CREATE BARRIER</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CREATE BARRIER</refname>
|
||||
<refpurpose>create a new barrier</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CREATE BARRIER [ barrier_name ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,22 +1,22 @@
|
|||
<refentry id="SQL-CREATE_DATA_SOURCE">
|
||||
<refmeta>
|
||||
<refentrytitle>CREATE DATA SOURCE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CREATE DATA SOURCE</refname>
|
||||
<refpurpose>define a data source</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CREATE DATA SOURCE src_name
|
||||
[TYPE 'type_str']
|
||||
[VERSION {'version_str' | NULL}]
|
||||
[OPTIONS (optname 'optvalue' [, ...])];
|
||||
|
||||
Valid optname are:
|
||||
DSN, USERNAME, PASSWORD, ENCODING
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-CREATE_DATA_SOURCE">
|
||||
<refmeta>
|
||||
<refentrytitle>CREATE DATA SOURCE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CREATE DATA SOURCE</refname>
|
||||
<refpurpose>define a data source</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CREATE DATA SOURCE src_name
|
||||
[TYPE 'type_str']
|
||||
[VERSION {'version_str' | NULL}]
|
||||
[OPTIONS (optname 'optvalue' [, ...])];
|
||||
|
||||
Valid optname are:
|
||||
DSN, USERNAME, PASSWORD, ENCODING
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
|
|
@ -1,24 +1,24 @@
|
|||
<refentry id="SQL-CREATE_DATABASE">
|
||||
<refmeta>
|
||||
<refentrytitle>CREATE DATABASE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CREATE DATABASE</refname>
|
||||
<refpurpose>create a new database</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CREATE DATABASE database_name
|
||||
[ [ WITH ] {[ OWNER [=] user_name ]|
|
||||
[ TEMPLATE [=] template ]|
|
||||
[ ENCODING [=] encoding ]|
|
||||
[ LC_COLLATE [=] lc_collate ]|
|
||||
[ LC_CTYPE [=] lc_ctype ]|
|
||||
[ DBCOMPATIBILITY [=] compatibility_type ]|
|
||||
[ TABLESPACE [=] tablespace_name ]|
|
||||
[ CONNECTION LIMIT [=] connlimit ]}[...] ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refentry id="SQL-CREATE_DATABASE">
|
||||
<refmeta>
|
||||
<refentrytitle>CREATE DATABASE</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>CREATE DATABASE</refname>
|
||||
<refpurpose>create a new database</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
CREATE DATABASE database_name
|
||||
[ [ WITH ] {[ OWNER [=] user_name ]|
|
||||
[ TEMPLATE [=] template ]|
|
||||
[ ENCODING [=] encoding ]|
|
||||
[ LC_COLLATE [=] lc_collate ]|
|
||||
[ LC_CTYPE [=] lc_ctype ]|
|
||||
[ DBCOMPATIBILITY [=] compatibility_type ]|
|
||||
[ TABLESPACE [=] tablespace_name ]|
|
||||
[ CONNECTION LIMIT [=] connlimit ]}[...] ];
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
</refentry>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue