forked from openGauss-Ecosystem/openGauss-server
Compare commits
6 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
ada51c9fea | |
|
|
1f6832d30b | |
|
|
d8cd223c53 | |
|
|
fcad3b1ccd | |
|
|
1f18fce639 | |
|
|
1ded1fec93 |
|
|
@ -1,24 +1,23 @@
|
|||
<!-- 感谢您提交Pull Reqeust -->
|
||||
|
||||
<!-- 提交说明: 请按照以下的模板提交PR,下列内容均为必填项。如果未补充对应内容,不允许提交PR。 -->
|
||||
|
||||
<!-- 提交说明: 请简单说明PR实现内容和修改逻辑 -->
|
||||
<!-- 关联issue: 请添加上关联issue的链接,如果没有关联issue,请先创建issue -->
|
||||
【标题】(请简要描述下实现的内容)
|
||||
|
||||
【实现内容】:
|
||||
|
||||
【根因分析】:
|
||||
|
||||
【实现方案】:
|
||||
【修改方案】:
|
||||
1. xxx
|
||||
2. xxx
|
||||
|
||||
【关联需求或issue】:
|
||||
【关联issue】:
|
||||
|
||||
【开发自验报告】:
|
||||
1. 请附上自验结果(内容或者截图)
|
||||
2. 是否可以添加fastcheck测试用例,如是,请补充fastcheck用例
|
||||
3. 是否涉及资料修改,如是,在docs仓库补充资料
|
||||
4. 是否考虑升级场景(系统表修改、日志持久化以及修改执行态数据格式)
|
||||
5. 是否考虑在线扩容等扩展场景
|
||||
4. 是否考虑支撑升级和在线扩容等扩展场景
|
||||
5. 是否考虑异常场景/并发场景/前向兼容/性能场景
|
||||
6. 是否对其他模块产生影响
|
||||
|
||||
【其他说明】:
|
||||
6. 是否对其他模块产生影响
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
/.gitee/
|
||||
/.vscode/
|
||||
/.idea/
|
||||
/cmake-build-debug/
|
||||
|
||||
*.a
|
||||
*.o
|
||||
*.so
|
||||
|
|
@ -10,15 +10,12 @@
|
|||
*.sgml
|
||||
*.log
|
||||
*.inc
|
||||
*.rej
|
||||
|
||||
objfiles.txt
|
||||
|
||||
/tmp_build/
|
||||
/output/
|
||||
/mppdb_temp_install/
|
||||
/GNUmakefile
|
||||
/config.status
|
||||
/ereport.txt
|
||||
|
||||
/build/script/version.cfg
|
||||
/build/script/version.cfg
|
||||
/src/Makefile.global
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
[submodule "openGauss-Custom-function"]
|
||||
path = openGauss-Custom-function
|
||||
url = ../openGauss-Custom-function.git
|
||||
[submodule "openGauss-Query-select"]
|
||||
path = openGauss-Query-select
|
||||
url = ../openGauss-Query-select.git
|
||||
[submodule "openGauss-Security-control"]
|
||||
path = openGauss-Security-control
|
||||
url = ../openGauss-Security-control.git
|
||||
[submodule "openGauss-Stored-Procedure"]
|
||||
path = openGauss-Stored-Procedure
|
||||
url = ../openGauss-Stored-Procedure.git
|
||||
[submodule "openGauss-basic-operation"]
|
||||
path = openGauss-basic-operation
|
||||
url = ../openGauss-basic-operation.git
|
||||
[submodule "openGauss-transaction"]
|
||||
path = openGauss-transaction
|
||||
url = ../openGauss-transaction.git
|
||||
[submodule "openGauss-trigger"]
|
||||
path = openGauss-trigger
|
||||
url = ../openGauss-trigger.git
|
||||
[submodule "openGauss-competition"]
|
||||
path = openGauss-competition
|
||||
url = ../openGauss-competition.git
|
||||
|
|
@ -52,6 +52,7 @@ 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 "")
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ install:
|
|||
$(MAKE) -C contrib/hstore $@
|
||||
$(MAKE) -C $(root_builddir)/distribute/kernel/extension/packages $@
|
||||
$(MAKE) -C contrib/pagehack $@
|
||||
$(MAKE) -C contrib/pg_stat_statements $@
|
||||
$(MAKE) -C contrib/pg_xlogdump $@
|
||||
$(MAKE) -C $(root_builddir)/contrib/gsredistribute $@
|
||||
$(MAKE) -C $(root_builddir)/distribute/kernel/extension/dimsearch $@
|
||||
|
|
@ -66,14 +67,14 @@ install:
|
|||
+@echo "openGauss installation complete."
|
||||
else
|
||||
ifeq ($(enable_privategauss), yes)
|
||||
ifneq ($(enable_lite_mode), yes)
|
||||
install:
|
||||
$(MAKE) install_mysql_fdw
|
||||
$(MAKE) install_oracle_fdw
|
||||
$(MAKE) install_pldebugger
|
||||
$(MAKE) -C contrib/postgres_fdw $@
|
||||
$(MAKE) -C contrib/pg_stat_statements $@
|
||||
$(MAKE) -C contrib/hstore $@
|
||||
$(MAKE) -C $(root_builddir)/privategauss/kernel/extension/packages $@
|
||||
$(MAKE) -C $(root_builddir)/distribute/kernel/extension/packages $@
|
||||
$(MAKE) -C $(root_builddir)/contrib/gsredistribute $@
|
||||
+@echo "openGauss installation complete."
|
||||
else
|
||||
|
|
@ -83,18 +84,6 @@ install:
|
|||
$(MAKE) install_pldebugger
|
||||
$(MAKE) -C contrib/postgres_fdw $@
|
||||
$(MAKE) -C contrib/hstore $@
|
||||
$(MAKE) -C $(root_builddir)/privategauss/kernel/extension/packages $@
|
||||
+@echo "openGauss installation complete."
|
||||
endif
|
||||
else
|
||||
install:
|
||||
$(MAKE) install_mysql_fdw
|
||||
$(MAKE) install_oracle_fdw
|
||||
$(MAKE) install_pldebugger
|
||||
$(MAKE) -C contrib/postgres_fdw $@
|
||||
$(MAKE) -C contrib/hstore $@
|
||||
$(MAKE) -C contrib/dblink $@
|
||||
@if test -d contrib/dolphin; then $(MAKE) -C contrib/dolphin $@; fi
|
||||
+@echo "openGauss installation complete."
|
||||
endif
|
||||
endif
|
||||
|
|
@ -144,8 +133,6 @@ qunitcheck: all
|
|||
|
||||
fastcheck_single: all
|
||||
|
||||
upgradecheck_single: all
|
||||
|
||||
fastcheck_single_comm_proxy: all
|
||||
|
||||
redocheck: all
|
||||
|
|
@ -154,6 +141,16 @@ redochecksmall: all
|
|||
|
||||
redischeck: all
|
||||
|
||||
dfsredischeck: all
|
||||
|
||||
orccheckxian: all
|
||||
|
||||
orccheckusa: all
|
||||
|
||||
orcchecksmall: all
|
||||
|
||||
dfscheck: all
|
||||
|
||||
obscheck: all
|
||||
|
||||
obsorccheck: all
|
||||
|
|
@ -162,7 +159,7 @@ securitycheck: all
|
|||
|
||||
parquetchecksmall: all
|
||||
|
||||
check fastcheck fastcheck_inplace fastcheck_parallel_initdb qunitcheck redischeck redocheck redochecksmall orccheckxian orccheckusa orcchecksmall parquetchecksmall obscheck obsorccheck securitycheck installcheck installcheck-parallel 2pccheck:
|
||||
check fastcheck fastcheck_inplace fastcheck_parallel_initdb qunitcheck redischeck redocheck redochecksmall orccheckxian orccheckusa orcchecksmall parquetchecksmall dfscheck obscheck obsorccheck securitycheck dfsredischeck installcheck installcheck-parallel 2pccheck:
|
||||
$(MAKE) -C $(root_builddir)/distribute/test/regress $@
|
||||
|
||||
#llt include all low level test
|
||||
|
|
|
|||
|
|
@ -82,13 +82,23 @@ 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 obscheck obsorccheck securitycheck installcheck installcheck-parallel 2pccheck:
|
||||
check fastcheck fastcheck_inplace fastcheck_parallel_initdb qunitcheck redischeck redocheck redochecksmall orccheckxian orccheckusa orcchecksmall dfscheck obscheck obsorccheck securitycheck dfsredischeck installcheck installcheck-parallel 2pccheck:
|
||||
$(MAKE) -C src/test/regress $@
|
||||
|
||||
#llt include all low level test
|
||||
|
|
|
|||
1
License
1
License
|
|
@ -1,3 +1,4 @@
|
|||
木兰宽松许可证, 第2版
|
||||
木兰宽松许可证, 第2版
|
||||
|
||||
2020年1月 http://license.coscl.org.cn/MulanPSL2
|
||||
|
|
|
|||
|
|
@ -0,0 +1,62 @@
|
|||
[overwrite]
|
||||
CMakeLists.txt
|
||||
License
|
||||
GNUmakefile.in
|
||||
Makefile
|
||||
README.en.md
|
||||
README.md
|
||||
Third_Party_Open_Source_Software_Notice
|
||||
aclocal.m4
|
||||
build
|
||||
build.sh
|
||||
cmake
|
||||
config
|
||||
configure
|
||||
contrib
|
||||
doc
|
||||
docker
|
||||
escan.txt
|
||||
package
|
||||
simpleInstall
|
||||
src/DEVELOPERS
|
||||
src/Makefile
|
||||
src/Makefile.global.in
|
||||
src/Makefile.shlib
|
||||
src/bcc32.mak
|
||||
src/bin
|
||||
src/common
|
||||
src/gausskernel
|
||||
src/get_PlatForm_str.sh
|
||||
src/include
|
||||
src/lib
|
||||
src/makefiles
|
||||
src/manager
|
||||
src/mtlocal.pl
|
||||
src/nls-global.mk
|
||||
src/test
|
||||
src/tools
|
||||
src/win32.mak
|
||||
Tools/memory_check
|
||||
[delete]
|
||||
third_party
|
||||
contrib/secbox
|
||||
contrib/carbondata
|
||||
contrib/gtmtester
|
||||
src/bin/gds
|
||||
src/bin/pg_redis
|
||||
src/include/ssl/openssl_etcd.cnf
|
||||
src/test/regress/jar
|
||||
src/test/regress/krbclient
|
||||
src/test/regress/obstools
|
||||
src/tools/casedb
|
||||
build/script/mpp_release_list_centos
|
||||
build/script/mpp_release_list_centos_aarch64
|
||||
build/script/mpp_release_list_centos_single
|
||||
build/script/mpp_release_list_euleros
|
||||
build/script/mpp_release_list_euleros_aarch64
|
||||
build/script/mpp_release_list_euleros_aarch64_single
|
||||
build/script/mpp_release_list_euleros_single
|
||||
build/script/mpp_release_list_linux_x86_64
|
||||
build/script/mpp_release_list_openeuler_aarch64
|
||||
build/script/mpp_release_list_openeuler_aarch64_single
|
||||
build/script/mpp_release_list_kylin_aarch64
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use File::Basename;
|
||||
use File::Path qw(make_path remove_tree);
|
||||
use Cwd;
|
||||
|
||||
my $gausskernel_dir = $ARGV[0];
|
||||
my $opengauss_dir = $ARGV[1];
|
||||
|
||||
sub usage
|
||||
{
|
||||
print " usage:\n";
|
||||
print " perl port_openGauss.pl GaussDBKernel-server-directory openGauss-server-directory\n";
|
||||
print " \n";
|
||||
}
|
||||
|
||||
sub valid_line
|
||||
{
|
||||
my ($l) = @_;
|
||||
$l =~ s/^\s+//g;
|
||||
$l =~ s/\s+$//g;
|
||||
return 1 if $l;
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub prepare_parentdir
|
||||
{
|
||||
my $dir = $_[0];
|
||||
$dir =~ s/\/*$//g;
|
||||
die "there is no such a directory $dir" unless $dir;
|
||||
|
||||
my $parentdir = dirname($dir);
|
||||
make_path $parentdir unless -d $parentdir;
|
||||
}
|
||||
|
||||
if ( !$opengauss_dir || !$gausskernel_dir || $gausskernel_dir eq "-h" || $gausskernel_dir eq "--help" ) {
|
||||
usage();
|
||||
exit(-1);
|
||||
}
|
||||
if (! -d $opengauss_dir || ! -d $gausskernel_dir ) {
|
||||
print "ERROR: $opengauss_dir or $gausskernel_dir does not exist!";
|
||||
}
|
||||
|
||||
$opengauss_dir =~ s{/+$}{}g;
|
||||
$gausskernel_dir =~ s{/+$}{}g;
|
||||
|
||||
my $open_assist_dir = dirname(__FILE__);
|
||||
if ($open_assist_dir !~ m/^\//) {
|
||||
$open_assist_dir = cwd() . '/' . $open_assist_dir;
|
||||
}
|
||||
$open_assist_dir =~ s/\/\.$//;
|
||||
|
||||
my $opengauss_fileset = "$open_assist_dir/opengauss_fileset";
|
||||
my @overwrite_fileset;
|
||||
my @delete_fileset;
|
||||
|
||||
open my $fset, "<", $opengauss_fileset or die "cannot open $opengauss_fileset: $!\n";
|
||||
my $file_type = "none";
|
||||
while(my $line=<$fset>) {
|
||||
chomp $line;
|
||||
if ($line =~ /\[overwrite\]/) {
|
||||
$file_type = "overwrite";
|
||||
next;
|
||||
}
|
||||
elsif ($line =~ /\[delete\]/) {
|
||||
$file_type = "delete";
|
||||
next;
|
||||
}
|
||||
|
||||
if ($file_type eq "overwrite") {
|
||||
push @overwrite_fileset, $line;
|
||||
}
|
||||
elsif ($file_type eq "delete") {
|
||||
push @delete_fileset, $line;
|
||||
}
|
||||
}
|
||||
|
||||
print "[" . localtime() . "] synchronizing directories and files.\n";
|
||||
foreach my $d(qw/src contrib/) {
|
||||
if ( -d "$opengauss_dir/$d" ) {
|
||||
remove_tree("$opengauss_dir/$d");
|
||||
print "removed $opengauss_dir/$d\n";
|
||||
}
|
||||
make_path("$opengauss_dir/$d");
|
||||
print "created $opengauss_dir/$d\n";
|
||||
}
|
||||
|
||||
foreach my $f(@overwrite_fileset) {
|
||||
next unless valid_line($f);
|
||||
if ( -d "$gausskernel_dir/$f") {
|
||||
prepare_parentdir("$opengauss_dir/$f");
|
||||
remove_tree("$opengauss_dir/$f") if -d "$opengauss_dir/$f";
|
||||
system("cp -fr $gausskernel_dir/$f $opengauss_dir/$f") == 0 or print "ERROR: copy $gausskernel_dir/$f failed\n";
|
||||
print "copied $opengauss_dir/$f\n";
|
||||
}
|
||||
elsif ( -f "$gausskernel_dir/$f") {
|
||||
system("cp -f $gausskernel_dir/$f $opengauss_dir/$f") == 0 or print "ERROR: copy $gausskernel_dir/$f failed\n";
|
||||
print "copied $opengauss_dir/$f\n";
|
||||
}
|
||||
}
|
||||
|
||||
foreach my $f(@delete_fileset) {
|
||||
next unless valid_line($f);
|
||||
if ( -d "$opengauss_dir/$f") {
|
||||
remove_tree("$opengauss_dir/$f");
|
||||
print "deleted $opengauss_dir/$f\n";
|
||||
}
|
||||
elsif ( -f "$opengauss_dir/$f") {
|
||||
unlink "$opengauss_dir/$f";
|
||||
print "deleted $opengauss_dir/$f\n";
|
||||
}
|
||||
}
|
||||
|
||||
print "[" . localtime() . "] synchronized directories and files.\n";
|
||||
19
build.sh
19
build.sh
|
|
@ -1,12 +1,5 @@
|
|||
#!/bin/bash
|
||||
#######################################################################
|
||||
# Copyright (c): 2020-2025, Huawei Tech. Co., Ltd.
|
||||
# descript: Compile and pack openGauss
|
||||
# Return 0 means OK.
|
||||
# Return 1 means failed.
|
||||
# version: 2.0
|
||||
# date: 2020-08-08
|
||||
#######################################################################
|
||||
|
||||
declare build_version_mode='release'
|
||||
declare build_binarylib_dir='None'
|
||||
declare wrap_binaries='NO'
|
||||
|
|
@ -81,14 +74,10 @@ ROOT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
|
|||
echo "ROOT_DIR : $ROOT_DIR"
|
||||
cd build/script
|
||||
chmod a+x build_opengauss.sh
|
||||
./build_opengauss.sh -m ${build_version_mode} -3rd ${build_binarylib_dir} ${not_optimized} -pkg server
|
||||
sh build_opengauss.sh -m ${build_version_mode} -3rd ${build_binarylib_dir} ${not_optimized} -pkg server -mc off
|
||||
if [ "${wrap_binaries}"X = "YES"X ]
|
||||
then
|
||||
chmod a+x package_opengauss.sh
|
||||
if [ X$config_file = "X" ];then
|
||||
./package_opengauss.sh -3rd ${build_binarylib_dir} -m ${build_version_mode}
|
||||
else
|
||||
./package_opengauss.sh -3rd ${build_binarylib_dir} -m ${build_version_mode} -f ${config_file}
|
||||
fi
|
||||
chmod a+x build_opengauss.sh
|
||||
sh package_opengauss.sh -3rd ${build_binarylib_dir} -m ${build_version_mode} -f ${config_file}
|
||||
fi
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -1,165 +1,44 @@
|
|||
#!/bin/bash
|
||||
# Copyright (c) Huawei Technologies Co., Ltd. 2020-2025. All rights reserved.
|
||||
#######################################################################
|
||||
# Copyright (c): 2020-2021, Huawei Tech. Co., Ltd.
|
||||
# descript: Compile opengauss
|
||||
# Return 0 means OK.
|
||||
# Return 1 means failed.
|
||||
# version: 1.0
|
||||
# date: 2020-11-28
|
||||
#######################################################################
|
||||
|
||||
# It is just a wrapper to package_internal.sh
|
||||
# Example: ./build_opengauss.sh -3rd path/third_party_binarylibs/
|
||||
# Example: ./build_opengauss.sh -3rd /path/to/your/third_party_binarylibs/
|
||||
|
||||
# change it to "N", if you want to build with original build system based on solely Makefiles
|
||||
declare CMAKE_PKG="N"
|
||||
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'
|
||||
declare binarylib_dir='None'
|
||||
declare make_check='off'
|
||||
declare separate_symbol='on'
|
||||
CMAKE_PKG="N"
|
||||
|
||||
function print_help()
|
||||
{
|
||||
echo "Usage: $0 [OPTION]
|
||||
-h|--help show help information.
|
||||
-V|--version show version information.
|
||||
-3rd|--binarylib_dir the directory of third party binarylibs.
|
||||
-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.
|
||||
-s|--symbol_mode whether separate symbol in debug mode, the default value is on.
|
||||
-co|--cmake_opt more cmake options
|
||||
"
|
||||
}
|
||||
|
||||
function print_version()
|
||||
{
|
||||
echo $(cat ${SCRIPT_DIR}/gaussdb.ver | grep 'VERSION' | awk -F "=" '{print $2}')
|
||||
}
|
||||
|
||||
if [ $# = 0 ] ; then
|
||||
echo "missing option"
|
||||
print_help
|
||||
#(0) pre-check
|
||||
if [ ! -f opengauss.spec ] || [ ! -f package_internal.sh ]; then
|
||||
echo "ERROR: there is no opengauss.spec/mpp_package.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#########################################################################
|
||||
##read command line paramenters
|
||||
#######################################################################
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-h|--help)
|
||||
print_help
|
||||
exit 1
|
||||
;;
|
||||
-V|--version)
|
||||
print_version
|
||||
exit 1
|
||||
;;
|
||||
-3rd|--binarylib_dir)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given binarylib directory values"
|
||||
exit 1
|
||||
fi
|
||||
binarylib_dir=$2
|
||||
shift 2
|
||||
;;
|
||||
-pkg)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given package type name"
|
||||
exit 1
|
||||
fi
|
||||
package_type=$2
|
||||
shift 2
|
||||
;;
|
||||
-m|--version_mode)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given version number values"
|
||||
exit 1
|
||||
fi
|
||||
version_mode=$2
|
||||
shift 2
|
||||
;;
|
||||
-pm)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given product mode"
|
||||
exit 1
|
||||
fi
|
||||
product_mode=$2
|
||||
shift 2
|
||||
;;
|
||||
-mc|--make_check)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given make check values"
|
||||
exit 1
|
||||
fi
|
||||
make_check=$2
|
||||
shift 2
|
||||
;;
|
||||
-s|--symbol_mode)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given symbol parameter"
|
||||
exit 1
|
||||
fi
|
||||
separate_symbol=$2
|
||||
shift 2
|
||||
;;
|
||||
--cmake_opt)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no extra configure options provided"
|
||||
exit 1
|
||||
fi
|
||||
extra_cmake_opt=$2
|
||||
shift 2
|
||||
;;
|
||||
--config_opt)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no extra configure options provided"
|
||||
exit 1
|
||||
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"
|
||||
echo "${0} --help or ${0} -h"
|
||||
exit 1
|
||||
esac
|
||||
done
|
||||
#(1) prepare
|
||||
cp opengauss.spec gauss.spec
|
||||
|
||||
if [ -e "$SCRIPT_DIR/utils/common.sh" ];then
|
||||
source $SCRIPT_DIR/utils/common.sh
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
#(1) invoke package_internal.sh
|
||||
#(2) invoke package_internal.sh
|
||||
if [ "$CMAKE_PKG" == "N" ]; then
|
||||
declare BUILD_DIR="${ROOT_DIR}/mppdb_temp_install"
|
||||
source $SCRIPT_DIR/utils/make_compile.sh || exit 1
|
||||
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
|
||||
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}"
|
||||
chmod a+x package_internal.sh
|
||||
echo "package_internal.sh $@ -nopkg -pm opengauss"
|
||||
./package_internal.sh $@ -nopkg -pm opengauss
|
||||
if [ $? != "0" ]; then
|
||||
echo "failed in build opengauss"
|
||||
fi
|
||||
else
|
||||
chmod a+x cmake_package_internal.sh
|
||||
echo "cmake_package_internal.sh $@ -nopkg -pm opengauss"
|
||||
./cmake_package_internal.sh $@ -nopkg -pm opengauss
|
||||
if [ $? != "0" ]; then
|
||||
echo "failed in build opengauss"
|
||||
fi
|
||||
echo "[cmake options] cmake options is:${CMAKE_OPT}" >> "$LOG_FILE" 2>&1
|
||||
source $SCRIPT_DIR/utils/cmake_compile.sh || exit 1
|
||||
fi
|
||||
|
||||
function main()
|
||||
{
|
||||
echo "[makegaussdb] $(date +%y-%m-%d' '%T): script dir : ${SCRIPT_DIR}"
|
||||
echo "[makegaussdb] $(date +%y-%m-%d' '%T): Work root dir : ${ROOT_DIR}"
|
||||
read_gaussdb_version
|
||||
read_gaussdb_number
|
||||
gaussdb_pkg_pre_clean
|
||||
gaussdb_build
|
||||
}
|
||||
main
|
||||
echo "now, all build has finished!"
|
||||
exit 0
|
||||
#(3) remove files which are not necessary
|
||||
BUILD_DIR="${ROOT_DIR}/mppdb_temp_install"
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,796 +0,0 @@
|
|||
#!/bin/bash
|
||||
#######################################################################
|
||||
# Copyright (c): 2020-2021, Huawei Tech. Co., Ltd.
|
||||
# descript: Compile and pack MPPDB
|
||||
# Return 0 means OK.
|
||||
# Return 1 means failed.
|
||||
# version: 2.0
|
||||
# date: 2021-12-12
|
||||
#######################################################################
|
||||
|
||||
##default package type is server
|
||||
declare package_type='server'
|
||||
declare install_package_format='tar'
|
||||
##default version mode is relase
|
||||
declare version_mode='release'
|
||||
declare binarylib_dir='None'
|
||||
declare separate_symbol='on'
|
||||
|
||||
#detect platform information.
|
||||
PLATFORM=32
|
||||
bit=$(getconf LONG_BIT)
|
||||
if [ "$bit" -eq 64 ]; then
|
||||
PLATFORM=64
|
||||
fi
|
||||
|
||||
#get OS distributed version.
|
||||
kernel=""
|
||||
version=""
|
||||
ext_version=""
|
||||
if [ -f "/etc/euleros-release" ]; then
|
||||
kernel=$(cat /etc/euleros-release | awk -F ' ' '{print $1}' | tr A-Z a-z)
|
||||
version=$(cat /etc/euleros-release | awk -F '(' '{print $2}'| awk -F ')' '{print $1}' | tr A-Z a-z)
|
||||
ext_version=$version
|
||||
elif [ -f "/etc/openEuler-release" ]; then
|
||||
kernel=$(cat /etc/openEuler-release | awk -F ' ' '{print $1}' | tr A-Z a-z)
|
||||
version=$(cat /etc/openEuler-release | awk -F '(' '{print $2}'| awk -F ')' '{print $1}' | tr A-Z a-z)
|
||||
elif [ -f "/etc/centos-release" ]; then
|
||||
kernel=$(cat /etc/centos-release | awk -F ' ' '{print $1}' | tr A-Z a-z)
|
||||
version=$(cat /etc/centos-release | awk -F '(' '{print $2}'| awk -F ')' '{print $1}' | tr A-Z a-z)
|
||||
else
|
||||
kernel=$(lsb_release -d | awk -F ' ' '{print $2}'| tr A-Z a-z)
|
||||
version=$(lsb_release -r | awk -F ' ' '{print $2}')
|
||||
fi
|
||||
|
||||
if [ X"$kernel" == X"euleros" ]; then
|
||||
dist_version="EULER"
|
||||
elif [ X"$kernel" == X"centos" ]; then
|
||||
dist_version="CentOS"
|
||||
elif [ X"$kernel" == X"openeuler" ]; then
|
||||
dist_version="openEuler"
|
||||
else
|
||||
dist_version="Platform"
|
||||
fi
|
||||
|
||||
show_package=false
|
||||
gcc_version="7.3.0"
|
||||
|
||||
##add platform architecture information
|
||||
cpus_num=$(grep -w processor /proc/cpuinfo|wc -l)
|
||||
PLATFORM_ARCH=$(uname -p)
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ] ; then
|
||||
ARCHITECTURE_EXTRA_FLAG=_euleros2.0_${ext_version}_$PLATFORM_ARCH
|
||||
release_file_list="aarch64_lite_list"
|
||||
else
|
||||
ARCHITECTURE_EXTRA_FLAG=_euleros2.0_sp5_${PLATFORM_ARCH}
|
||||
release_file_list="x86_64_lite_list"
|
||||
fi
|
||||
|
||||
##default install version storage path
|
||||
declare mppdb_version='openGauss Lite'
|
||||
declare mppdb_name_for_package="$(echo ${mppdb_version} | sed 's/ /-/g')"
|
||||
declare package_path='./'
|
||||
declare version_number=''
|
||||
declare make_check='off'
|
||||
declare zip_package='on'
|
||||
declare extra_config_opt=''
|
||||
|
||||
#######################################################################
|
||||
##putout the version of mppdb
|
||||
#######################################################################
|
||||
function print_version()
|
||||
{
|
||||
echo "$version_number"
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
## print help information
|
||||
#######################################################################
|
||||
function print_help()
|
||||
{
|
||||
echo "Usage: $0 [OPTION]
|
||||
-h|--help show help information.
|
||||
-V|--version show version information.
|
||||
-f|--file provide the file list released.
|
||||
-3rd|--binarylib_dir the directory of third party binarylibs.
|
||||
-pkg|--package provode type of installation packages, values parameter is all, server, jdbc, odbc, agent.
|
||||
-pm product mode, values parameter is single, multiple or opengauss, default value is multiple.
|
||||
-p|--path generation package storage path.
|
||||
-t packaging format, values parameter is tar or rpm, the default value is tar.
|
||||
-m|--version_mode this values of paramenter is debug, release, memcheck, the default value is release.
|
||||
-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.
|
||||
-cv|--gcc_version gcc-version option: 7.3.0.
|
||||
-nopkg|--no_package don't zip binaries into packages
|
||||
-co|--config_opt more config options
|
||||
-S|--show_pkg show server package name and Bin name base on current configuration.
|
||||
"
|
||||
}
|
||||
|
||||
if [ $# = 0 ] ; then
|
||||
echo "missing option"
|
||||
print_help
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SCRIPT_PATH=${0}
|
||||
FIRST_CHAR=$(expr substr "$SCRIPT_PATH" 1 1)
|
||||
if [ "$FIRST_CHAR" = "/" ]; then
|
||||
SCRIPT_PATH=${0}
|
||||
else
|
||||
SCRIPT_PATH="$(pwd)/${SCRIPT_PATH}"
|
||||
fi
|
||||
SCRIPT_NAME=$(basename $SCRIPT_PATH)
|
||||
SCRIPT_DIR=$(dirname "${SCRIPT_PATH}")
|
||||
SCRIPT_DIR=$(dirname "$SCRIPT_DIR")
|
||||
|
||||
if [ ! -f "$SCRIPT_DIR/$SCRIPT_NAME" ] ; then
|
||||
SCRIPT_DIR=$SCRIPT_DIR/script
|
||||
fi
|
||||
|
||||
package_path=$SCRIPT_DIR
|
||||
|
||||
#######################################################################
|
||||
##read version from $release_file_list
|
||||
#######################################################################
|
||||
function read_mpp_version()
|
||||
{
|
||||
cd $SCRIPT_DIR
|
||||
local head=$(cat $release_file_list | grep "\[version\]" -n | awk -F: '{print $1}')
|
||||
if [ ! -n "$head" ]; then
|
||||
echo "error: no find version in the $release_file_list file "
|
||||
exit 1
|
||||
fi
|
||||
local tail=$(cat $release_file_list | sed "1,$head d" | grep "^\[" -n | sed -n "1p" | awk -F: '{print $1}')
|
||||
if [ ! -n "$tail" ]; then
|
||||
local all=$(cat $release_file_list | wc -l)
|
||||
let tail=$all+1-$head
|
||||
fi
|
||||
version_number=$(cat $release_file_list | awk "NR==$head+1,NR==$tail+$head-1")
|
||||
echo "${mppdb_name_for_package}-${version_number}">version.cfg
|
||||
#auto read the number from kernal globals.cpp, no need to change it here
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
##read command line paramenters
|
||||
#######################################################################
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-h|--help)
|
||||
print_help
|
||||
exit 1
|
||||
;;
|
||||
-V|--version)
|
||||
print_version
|
||||
exit 1
|
||||
;;
|
||||
-f|--file)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given file name"
|
||||
exit 1
|
||||
fi
|
||||
release_file_list=$2
|
||||
shift 2
|
||||
;;
|
||||
-3rd|--binarylib_dir)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given binarylib directory values"
|
||||
exit 1
|
||||
fi
|
||||
binarylib_dir=$2
|
||||
shift 2
|
||||
;;
|
||||
-p|--path)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given generration package path"
|
||||
exit 1
|
||||
fi
|
||||
package_path=$2
|
||||
if [ ! -d "$package_path" ]; then
|
||||
mkdir -p $package_path
|
||||
fi
|
||||
shift 2
|
||||
;;
|
||||
-pkg)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given package type name"
|
||||
exit 1
|
||||
fi
|
||||
package_type=$2
|
||||
shift 2
|
||||
;;
|
||||
-s|--symbol_mode)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given symbol parameter"
|
||||
exit 1
|
||||
fi
|
||||
separate_symbol=$2
|
||||
shift 2
|
||||
;;
|
||||
-t)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given installation package format values"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$2" = rpm ]; then
|
||||
echo "error: do not suport rpm package now!"
|
||||
exit 1
|
||||
fi
|
||||
install_package_format=$2
|
||||
shift 1
|
||||
;;
|
||||
-m|--version_mode)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given version number values"
|
||||
exit 1
|
||||
fi
|
||||
version_mode=$2
|
||||
shift 2
|
||||
;;
|
||||
-mc|--make_check)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given make check values"
|
||||
exit 1
|
||||
fi
|
||||
make_check=$2
|
||||
shift 2
|
||||
;;
|
||||
-cv|--gcc_version)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given gcc version"
|
||||
exit 1
|
||||
fi
|
||||
gcc_version=$2
|
||||
shift 2
|
||||
;;
|
||||
-nopkg|--no_package)
|
||||
zip_package='off'
|
||||
shift 1
|
||||
;;
|
||||
-co|--config_opt)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no extra configure options provided"
|
||||
exit 1
|
||||
fi
|
||||
extra_config_opt=$2
|
||||
shift 2
|
||||
;;
|
||||
-S|--show_pkg)
|
||||
show_package=true
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo "Internal Error: option processing error: $1" 1>&2
|
||||
echo "please input right paramtenter, the following command may help you"
|
||||
echo "./cmake_package_internal.sh --help or ./cmake_package_internal.sh -h"
|
||||
exit 1
|
||||
esac
|
||||
done
|
||||
|
||||
read_mpp_version
|
||||
|
||||
if [ "$gcc_version" = "7.3.0" ]; then
|
||||
gcc_version=${gcc_version:0:3}
|
||||
else
|
||||
echo "Unknown gcc version $gcc_version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#######################################################################
|
||||
## declare all package name
|
||||
#######################################################################
|
||||
declare version_string="${mppdb_name_for_package}-${version_number}"
|
||||
declare package_pre_name="${version_string}-${dist_version}-${PLATFORM_ARCH}"
|
||||
declare server_package_name="${package_pre_name}.${install_package_format}.gz"
|
||||
|
||||
declare libpq_package_name="${package_pre_name}-Libpq.${install_package_format}.gz"
|
||||
declare symbol_package_name="${package_pre_name}-symbol.${install_package_format}.gz"
|
||||
|
||||
echo "[makemppdb] $(date +%y-%m-%d' '%T): script dir : ${SCRIPT_DIR}"
|
||||
ROOT_DIR=$(dirname "$SCRIPT_DIR")
|
||||
ROOT_DIR=$(dirname "$ROOT_DIR")
|
||||
|
||||
CMAKE_BUILD_DIR=${ROOT_DIR}/tmp_build
|
||||
declare LOG_FILE="${ROOT_DIR}/build/script/makemppdb_pkg.log"
|
||||
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/"
|
||||
PLATFORM_PATH="${binarylib_dir}/kernel/platform/"
|
||||
BINARYLIBS_PATH="${binarylib_dir}/kernel/dependency"
|
||||
else
|
||||
BUILD_TOOLS_PATH="${ROOT_DIR}/buildtools/"
|
||||
PLATFORM_PATH="${ROOT_DIR}/kernel/platform/"
|
||||
BINARYLIBS_PATH="${ROOT_DIR}/binarylibs"
|
||||
fi
|
||||
|
||||
declare UPGRADE_SQL_DIR="${ROOT_DIR}/src/include/catalog/upgrade_sql"
|
||||
|
||||
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}/kernel/platform/huaweijdk8/${PLATFORM_ARCH}/jdk
|
||||
if [ ! -d "${jdkpath}" ]; then
|
||||
jdkpath=${binarylib_dir}/kernel/platform/openjdk8/${PLATFORM_ARCH}/jdk
|
||||
fi
|
||||
export JAVA_HOME=${jdkpath}
|
||||
|
||||
declare p7zpath="${BUILD_TOOLS_PATH}/p7z/bin"
|
||||
|
||||
###################################
|
||||
# build parameter about enable-llt
|
||||
##################################
|
||||
echo "[makemppdb] $(date +%y-%m-%d' '%T): Work root dir : ${ROOT_DIR}"
|
||||
|
||||
###################################
|
||||
# get version number from globals.cpp
|
||||
##################################
|
||||
function read_mpp_number()
|
||||
{
|
||||
global_kernal="${ROOT_DIR}/src/common/backend/utils/init/globals.cpp"
|
||||
version_name="GRAND_VERSION_NUM"
|
||||
version_num=""
|
||||
line=$(cat $global_kernal | grep ^const* | grep $version_name)
|
||||
version_num1=${line#*=}
|
||||
#remove the symbol;
|
||||
version_num=$(echo $version_num1 | tr -d ";")
|
||||
#remove the blank
|
||||
version_num=$(echo $version_num)
|
||||
|
||||
if echo $version_num | grep -qE '^92[0-9]+$'
|
||||
then
|
||||
# get the last three number
|
||||
latter=${version_num:2}
|
||||
echo "92.${latter}" >>${SCRIPT_DIR}/version.cfg
|
||||
else
|
||||
echo "Cannot get the version number from globals.cpp."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
read_mpp_number
|
||||
|
||||
#######################################################################
|
||||
# Print log.
|
||||
#######################################################################
|
||||
log()
|
||||
{
|
||||
echo "[makegaussdb] $(date +%y-%m-%d' '%T): $@"
|
||||
echo "[makegaussdb] $(date +%y-%m-%d' '%T): $@" >> "$LOG_FILE" 2>&1
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# print log and exit.
|
||||
#######################################################################
|
||||
die()
|
||||
{
|
||||
log "$@"
|
||||
echo "$@"
|
||||
exit $ERR_MKGS_FAILED
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
## Check the installation package production environment
|
||||
#######################################################################
|
||||
function mpp_pkg_pre_check()
|
||||
{
|
||||
if [ -d "$BUILD_DIR" ]; then
|
||||
rm -rf $BUILD_DIR
|
||||
fi
|
||||
if [ -d "$LOG_FILE" ]; then
|
||||
rm -rf $LOG_FILE
|
||||
fi
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# Install all SQL files from distribute/include/catalog/upgrade_sql
|
||||
# to INSTALL_DIR/bin/script/upgrade_sql.
|
||||
# Package all SQL files and then verify them with SHA256.
|
||||
#######################################################################
|
||||
function package_upgrade_sql()
|
||||
{
|
||||
echo "Begin to install upgrade_sql files..."
|
||||
UPGRADE_SQL_TAR="upgrade_sql.tar.gz"
|
||||
UPGRADE_SQL_SHA256="upgrade_sql.sha256"
|
||||
MULTIP_IGNORE_VERSION=(289 294 296)
|
||||
cp -r "${UPGRADE_SQL_DIR}" .
|
||||
[ $? -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."
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##install gaussdb database and others
|
||||
##select to install something according to variables package_type need
|
||||
#######################################################################
|
||||
function mpp_pkg_bld()
|
||||
{
|
||||
install_gaussdb
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##install gaussdb database contained server,client and libpq
|
||||
#######################################################################
|
||||
function install_gaussdb()
|
||||
{
|
||||
# Generate the license control file, and set md5sum string to the code.
|
||||
echo "Modify gaussdb_version.cpp file." >> "$LOG_FILE" 2>&1
|
||||
echo "Modify gaussdb_version.cpp file success." >> "$LOG_FILE" 2>&1
|
||||
cd "$ROOT_DIR/"
|
||||
if [ $? -ne 0 ]; then
|
||||
die "change dir to $SRC_DIR failed."
|
||||
fi
|
||||
|
||||
if [ "$version_mode" = "debug" -a "$separate_symbol" = "on" ]; then
|
||||
echo "WARNING: do not separate symbol in debug mode!"
|
||||
fi
|
||||
|
||||
binarylibs_path=${ROOT_DIR}/binarylibs
|
||||
if [ "${binarylib_dir}"x != "None"x ]; then
|
||||
binarylibs_path=${binarylib_dir}
|
||||
fi
|
||||
|
||||
export BUILD_TUPLE=${PLATFORM_ARCH}
|
||||
export THIRD_BIN_PATH="${binarylibs_path}"
|
||||
export PREFIX_HOME="${BUILD_DIR}"
|
||||
export ENABLE_LITE_MODE=ON
|
||||
|
||||
if [ "$version_mode"x == "release"x ]; then
|
||||
CMAKE_OPT="-DENABLE_MULTIPLE_NODES=OFF -DENABLE_PRIVATEGAUSS=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_LITE_MODE=ON"
|
||||
export DEBUG_TYPE=release
|
||||
elif [ "$version_mode"x == "memcheck"x ]; then
|
||||
CMAKE_OPT="-DENABLE_MULTIPLE_NODES=OFF -DENABLE_PRIVATEGAUSS=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_LITE_MODE=ON"
|
||||
export DEBUG_TYPE=memcheck
|
||||
else
|
||||
CMAKE_OPT="-DENABLE_MULTIPLE_NODES=OFF -DENABLE_PRIVATEGAUSS=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_LITE_MODE=ON"
|
||||
export DEBUG_TYPE=debug
|
||||
fi
|
||||
|
||||
if [[ -e "/etc/openEuler-release" && "$(cat /etc/openEuler-release | awk '{print $3}')" == "22.03" ]]; then
|
||||
CMAKE_OPT="$CMAKE_OPT -DENABLE_OPENEULER_MAJOR=ON"
|
||||
fi
|
||||
echo "CMAKE_OPT----> $CMAKE_OPT"
|
||||
echo "Begin run cmake for gaussdb server" >> "$LOG_FILE" 2>&1
|
||||
echo "CMake options: ${CMAKE_OPT}" >> "$LOG_FILE" 2>&1
|
||||
echo "CMake release: ${DEBUG_TYPE}" >> "$LOG_FILE" 2>&1
|
||||
|
||||
export GAUSSHOME=${BUILD_DIR}
|
||||
export LD_LIBRARY_PATH=${BUILD_DIR}/lib:${BUILD_DIR}/lib/postgresql:${LD_LIBRARY_PATH}
|
||||
|
||||
cd ${ROOT_DIR}
|
||||
[ -d "${CMAKE_BUILD_DIR}" ] && rm -rf ${CMAKE_BUILD_DIR}
|
||||
[ -d "${BUILD_DIR}" ] && rm -rf ${BUILD_DIR}
|
||||
mkdir -p ${CMAKE_BUILD_DIR}
|
||||
cd ${CMAKE_BUILD_DIR}
|
||||
cmake .. ${CMAKE_OPT}
|
||||
echo "Begin make and install gaussdb server" >> "$LOG_FILE" 2>&1
|
||||
make VERBOSE=1 -sj ${cpus_num}
|
||||
if [ $? -ne 0 ]; then
|
||||
die "make failed."
|
||||
fi
|
||||
make install -sj ${cpus_num}
|
||||
if [ $? -ne 0 ]; then
|
||||
die "make install failed."
|
||||
fi
|
||||
|
||||
## check build specification
|
||||
spec="gaussdbkernel"
|
||||
if ( cat $SCRIPT_DIR/gauss.spec | grep 'PRODUCT' | grep 'GaussDB Kernel' >/dev/null 2>&1 ); then
|
||||
spec="gaussdbkernel"
|
||||
elif ( cat $SCRIPT_DIR/gauss.spec | grep 'PRODUCT' | grep 'openGauss' >/dev/null 2>&1 ); then
|
||||
spec="opengauss"
|
||||
fi
|
||||
|
||||
chmod 444 ${BUILD_DIR}/bin/cluster_guc.conf
|
||||
dos2unix ${BUILD_DIR}/bin/cluster_guc.conf > /dev/null 2>&1
|
||||
|
||||
#back to separate_debug_symbol.sh dir
|
||||
cd $SCRIPT_DIR
|
||||
if [ "$version_mode" = "release" -a "$separate_symbol" = "on" -a "$zip_package" = "on" ]; then
|
||||
chmod +x ./separate_debug_information.sh
|
||||
./separate_debug_information.sh
|
||||
cd $SCRIPT_DIR
|
||||
mv symbols.tar.gz $symbol_package_name
|
||||
fi
|
||||
|
||||
#back to root dir
|
||||
cd $ROOT_DIR
|
||||
|
||||
#insert the commitid to version.cfg as the upgrade app path specification
|
||||
export PATH=${BUILD_DIR}:$PATH
|
||||
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##select package type according to variable package_type
|
||||
#######################################################################
|
||||
function mpp_pkg_make()
|
||||
{
|
||||
case "$package_type" in
|
||||
server)
|
||||
echo "file list: $release_file_list"
|
||||
make_package $release_file_list 'server'
|
||||
make_package $release_file_list 'libpq'
|
||||
;;
|
||||
libpq)
|
||||
make_package $release_file_list 'libpq'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
declare package_command
|
||||
#######################################################################
|
||||
##select package command accroding to install_package_format
|
||||
#######################################################################
|
||||
function select_package_command()
|
||||
{
|
||||
|
||||
case "$install_package_format" in
|
||||
tar)
|
||||
tar='tar'
|
||||
option=' -zcvf'
|
||||
package_command="$tar$option"
|
||||
;;
|
||||
rpm)
|
||||
rpm='rpm'
|
||||
option=' -i'
|
||||
package_command="$rpm$option"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
###############################################################
|
||||
## client tools package
|
||||
## Roach no
|
||||
## sslcert no
|
||||
## Data Studio no
|
||||
## Database Manager no
|
||||
## Migration Toolkit no
|
||||
## Cluster Configuration Assistant (CCA) no
|
||||
## CAT no
|
||||
###############################################################
|
||||
function target_file_copy_for_non_server()
|
||||
{
|
||||
for file in $(echo $1)
|
||||
do
|
||||
tar -cpf - $file | ( cd $2; tar -xpf - )
|
||||
done
|
||||
}
|
||||
|
||||
declare bin_name="${package_pre_name}.bin"
|
||||
declare sha256_name=''
|
||||
declare script_dir="${ROOT_DIR}/script"
|
||||
|
||||
#######################################################################
|
||||
##copy target file into temporary directory temp
|
||||
#######################################################################
|
||||
function target_file_copy()
|
||||
{
|
||||
###################################################
|
||||
# make bin package
|
||||
###################################################
|
||||
for file in $(echo $1)
|
||||
do
|
||||
tar -cpf - $file | ( cd $2; tar -xpf - )
|
||||
done
|
||||
cd $BUILD_DIR
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ] ; then
|
||||
# do nothing in current version
|
||||
echo ""
|
||||
else
|
||||
sed -i '/^process_cpu_affinity|/d' $2/bin/cluster_guc.conf
|
||||
fi
|
||||
if [ "$(ls -A /lib64/libaio.so*)" != "" ]
|
||||
then
|
||||
cp /lib64/libaio.so* $2/lib/
|
||||
elif [ "$(ls -A /lib/libaio.so*)" != "" ]
|
||||
then
|
||||
cp /lib/libaio.so* $2/lib/
|
||||
fi
|
||||
|
||||
if [ "$(ls -A /lib64/libnuma.so*)" != "" ]
|
||||
then
|
||||
cp /lib64/libnuma.so* $2/lib/
|
||||
elif [ "$(ls -A /lib/libnuma.so*)" != "" ]
|
||||
then
|
||||
cp /lib/libnuma.so* $2/lib/
|
||||
fi
|
||||
|
||||
#generate bin file
|
||||
echo "Begin generate ${bin_name} bin file..." >> "$LOG_FILE" 2>&1
|
||||
curpath=$(pwd)
|
||||
cd $2
|
||||
tar -zcf ${curpath}/${bin_name} . >> "$LOG_FILE" 2>&1
|
||||
cd ${curpath}
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Please check and makesure '7z' exist. "
|
||||
die "generate ${bin_name} failed."
|
||||
fi
|
||||
echo "End generate ${bin_name} bin file" >> "$LOG_FILE" 2>&1
|
||||
|
||||
#generate sha256 file
|
||||
sha256_name="${package_pre_name}.sha256"
|
||||
echo "Begin generate ${sha256_name} sha256 file..." >> "$LOG_FILE" 2>&1
|
||||
sha256sum "${bin_name}" | awk -F" " '{print $1}' > "$sha256_name"
|
||||
if [ $? -ne 0 ]; then
|
||||
die "generate sha256 file failed."
|
||||
fi
|
||||
echo "End generate ${sha256_name} sha256 file" >> "$LOG_FILE" 2>&1
|
||||
|
||||
cp $2/lib/libstdc++.so.6 ./
|
||||
|
||||
###################################################
|
||||
# make server package
|
||||
###################################################
|
||||
if [ -d "${2}" ]; then
|
||||
rm -rf ${2}
|
||||
fi
|
||||
mkdir -p ${2}
|
||||
mkdir -p $2/dependency
|
||||
cp libstdc++.so.6 $2/dependency
|
||||
mv ${bin_name} ${sha256_name} $2
|
||||
}
|
||||
|
||||
|
||||
#######################################################################
|
||||
##function make_package have three actions
|
||||
##1.parse release_file_list variable represent file
|
||||
##2.copy target file into a newly created temporary directory temp
|
||||
##3.package all file in the temp directory and renome to destination package_path
|
||||
#######################################################################
|
||||
function make_package()
|
||||
{
|
||||
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=$(cat $releasefile | awk "NR==$head+1,NR==$tail+$head-1")
|
||||
if [ "$pkgname"x = "libpq"x -a \( "$version_mode" = "debug" -o "$version_mode" = "release" \) ]; then
|
||||
# copy include file
|
||||
head=$(cat $releasefile | grep "\[header\]" -n | awk -F: '{print $1}')
|
||||
if [ ! -n "$head" ]; then
|
||||
die "error: ono find header in the $releasefile file "
|
||||
fi
|
||||
|
||||
tail=$(cat $releasefile | sed "1,$head d" | grep "^\[" -n | sed -n "1p" | awk -F: '{print $1}')
|
||||
if [ ! -n "$tail" ]; then
|
||||
all=$(cat $releasefile | wc -l)
|
||||
let tail=$all+1-$head
|
||||
fi
|
||||
|
||||
dest1=$(cat $releasefile | awk "NR==$head+1,NR==$tail+$head-1")
|
||||
dest=$(echo "$dest";echo "$dest1")
|
||||
fi
|
||||
|
||||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
rm -rf temp
|
||||
mkdir temp
|
||||
|
||||
case "$pkgname" in
|
||||
server)
|
||||
mkdir -p ${BUILD_DIR}/temp/etc
|
||||
target_file_copy "$dest" ${BUILD_DIR}/temp
|
||||
;;
|
||||
*)
|
||||
target_file_copy_for_non_server "$dest" ${BUILD_DIR}/temp $pkgname
|
||||
;;
|
||||
esac
|
||||
|
||||
cd ${BUILD_DIR}/temp
|
||||
select_package_command
|
||||
|
||||
case "$pkgname" in
|
||||
server)
|
||||
echo "packaging server..."
|
||||
cp ${SCRIPT_DIR}/version.cfg ${BUILD_DIR}/temp
|
||||
if [ $? -ne 0 ]; then
|
||||
die "copy ${SCRIPT_DIR}/version.cfg to ${BUILD_DIR}/temp failed"
|
||||
fi
|
||||
cp ${ROOT_DIR}/${open_gauss}/liteom/install.sh ./
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
die "copy ${ROOT_DIR}/${open_gauss}/liteom/install.sh to ${BUILD_DIR}/temp failed"
|
||||
fi
|
||||
|
||||
cp ${ROOT_DIR}/${open_gauss}/liteom/uninstall.sh ./
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
die "copy ${ROOT_DIR}/${open_gauss}/liteom/uninstall.sh to ${BUILD_DIR}/temp failed"
|
||||
fi
|
||||
|
||||
cp ${ROOT_DIR}/${open_gauss}/liteom/opengauss_lite.conf ./
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
die "copy ${ROOT_DIR}/${open_gauss}/liteom/opengauss_lite.conf to ${BUILD_DIR}/temp failed"
|
||||
fi
|
||||
|
||||
# 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}/${open_gauss}/liteom/${filename} ./ ; then
|
||||
die "copy ${ROOT_DIR}/${open_gauss}/liteom/${filename} to ${BUILD_DIR}/temp failed"
|
||||
fi
|
||||
done
|
||||
# install upgrade_sql.* files.
|
||||
package_upgrade_sql
|
||||
|
||||
$package_command "${server_package_name}" ./* >>"$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "$package_command ${server_package_name} failed"
|
||||
fi
|
||||
mv ${server_package_name} ${package_path}
|
||||
echo "install $pkgname tools is ${server_package_name} of ${package_path} directory " >> "$LOG_FILE" 2>&1
|
||||
echo "success!"
|
||||
;;
|
||||
libpq)
|
||||
echo "packaging libpq..."
|
||||
$package_command "${libpq_package_name}" ./* >>"$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "$package_command ${libpq_package_name} failed"
|
||||
fi
|
||||
mv ${libpq_package_name} ${package_path}
|
||||
echo "install $pkgname tools is ${libpq_package_name} of ${package_path} directory " >> "$LOG_FILE" 2>&1
|
||||
echo "success!"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
#############################################################
|
||||
# show package for hotpatch sdv.
|
||||
#############################################################
|
||||
if [ "$show_package" = true ]; then
|
||||
echo "package: "$server_package_name
|
||||
echo "bin: "$bin_name
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#############################################################
|
||||
# main function
|
||||
#############################################################
|
||||
# 1. clean install path and log file
|
||||
mpp_pkg_pre_check
|
||||
|
||||
# 2. chose action
|
||||
mpp_pkg_bld
|
||||
if [ "$zip_package" = "off" ]; then
|
||||
echo "The option 'nopkg' is on, no package will be zipped."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 3. make package
|
||||
mpp_pkg_make
|
||||
|
||||
#clean mpp_install directory
|
||||
echo "clean enviroment"
|
||||
echo "[makemppdb] $(date +%y-%m-%d' '%T): remove ${BUILD_DIR}" >>"$LOG_FILE" 2>&1
|
||||
|
||||
mkdir ${ROOT_DIR}/output
|
||||
mv ${ROOT_DIR}/build/script/*.tar.gz ${ROOT_DIR}/output/
|
||||
echo "now, all packages has finished!"
|
||||
exit 0
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
PRODUCT=GaussDB Kernel
|
||||
VERSION=V500R002C00
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
#!/bin/bash
|
||||
|
||||
#-----------------------------------------------------
|
||||
#Copyright (c): 2020, Huawei Tech. Co., Ltd.
|
||||
#FileName : gsql_env.sh
|
||||
#Version : V500R001C10
|
||||
#Date : 2020-08-06
|
||||
#Description : This file is to configure environment variables of gsql
|
||||
#-----------------------------------------------------
|
||||
|
||||
#find the absolute path of this script
|
||||
LOCAL_PATH=${0}
|
||||
if [ x${LOCAL_PATH:0:1} = "x-" ] || [ "x${LOCAL_PATH}" = "x/bin/bash" ] || [ "x${LOCAL_PATH}" = "x/bin/sh" ]; then
|
||||
LOCAL_PATH="$(pwd)"
|
||||
elif [ x${LOCAL_PATH:0:1} != "x/" ]; then
|
||||
LOCAL_PATH="$(pwd)/$(dirname ${LOCAL_PATH})";
|
||||
fi
|
||||
|
||||
function logerr()
|
||||
{
|
||||
printf "ERROR: $* \n" >&2
|
||||
}
|
||||
|
||||
function loghint()
|
||||
{
|
||||
printf "HINT: $* \n" >&2
|
||||
}
|
||||
|
||||
function logwarning()
|
||||
{
|
||||
printf "WARNING: $* \n" >&2
|
||||
}
|
||||
|
||||
function doing()
|
||||
{
|
||||
length_of_line=60
|
||||
printf "$1 ";
|
||||
for ((i=${#1};i<$length_of_line;i++)); do
|
||||
printf '.';
|
||||
done;
|
||||
printf " "
|
||||
}
|
||||
|
||||
#------------------------------
|
||||
# gsql things
|
||||
#------------------------------
|
||||
function cofig_gsql_and_gs_ktool()
|
||||
{
|
||||
doing 'Configuring LD_LIBRARY_PATH, PATH and GS_KTOOL_FILE_PATH for gsql and gs_ktool...'
|
||||
LIB_PATH="${LOCAL_PATH}/lib"
|
||||
BIN_PATH="${LOCAL_PATH}/bin"
|
||||
GS_KT_FILE_PATH="${LOCAL_PATH}/gs_ktool_file"
|
||||
if [ ! -f "${LOCAL_PATH}/bin/gsql" ]; then
|
||||
logerr "failed to locate ./bin/gsql, please source this file at the path where it is. "
|
||||
return 1;
|
||||
fi;
|
||||
if [ ! -f "${LOCAL_PATH}/bin/gs_ktool" ]; then
|
||||
logerr "failed to locate ./bin/gs_ktool, please source this file at the path where it is. "
|
||||
return 1;
|
||||
fi;
|
||||
if [ ! -f "${LOCAL_PATH}/gs_ktool_file/gs_ktool_conf.ini" ]; then
|
||||
logerr "failed to locate ./gs_ktool_file/gs_ktool_con.ini, please source this file at the path where it is. "
|
||||
return 1;
|
||||
fi;
|
||||
export LD_LIBRARY_PATH=${LIB_PATH}:${LD_LIBRARY_PATH}
|
||||
export PATH=${BIN_PATH}:${PATH}
|
||||
export GS_KTOOL_FILE_PATH=${GS_KT_FILE_PATH}
|
||||
echo 'done'
|
||||
return 0
|
||||
}
|
||||
|
||||
if [ ! -z "$1" ]; then
|
||||
echo "Usage:"
|
||||
echo " source $0"
|
||||
else
|
||||
cofig_gsql_and_gs_ktool
|
||||
if [ 0 -eq $? ]; then
|
||||
echo 'All things done.'
|
||||
fi
|
||||
fi
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
V=100
|
||||
R=003
|
||||
C=00
|
||||
OfficialVersion=
|
||||
InternalVersion=B100
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
PRODUCT=openGauss
|
||||
VERSION=5.0.0
|
||||
VERSION=2.1.0
|
||||
|
|
@ -1,10 +1,4 @@
|
|||
[server]
|
||||
./bin/dsscmd
|
||||
./bin/dssserver
|
||||
./bin/perctrl
|
||||
./bin/dms_contrl.sh
|
||||
./bin/dss_clear.sh
|
||||
./bin/dss_contrl.sh
|
||||
./bin/gsql
|
||||
./bin/gaussdb
|
||||
./bin/gstrace
|
||||
|
|
@ -40,11 +34,9 @@
|
|||
./bin/kadmin.local
|
||||
./bin/lz4
|
||||
./bin/kadmind
|
||||
./bin/gs_dbmind
|
||||
./bin/constant
|
||||
./bin/dbmind
|
||||
./bin/server.key.cipher
|
||||
./bin/server.key.rand
|
||||
./bin/gs_plan_simulator.sh
|
||||
./etc/kerberos/kadm5.acl
|
||||
./etc/kerberos/kdc.conf
|
||||
./etc/kerberos/krb5.conf
|
||||
|
|
@ -66,8 +58,6 @@
|
|||
./share/postgresql/extension/hstore.control
|
||||
./share/postgresql/extension/security_plugin.control
|
||||
./share/postgresql/extension/security_plugin--1.0.sql
|
||||
./share/postgresql/extension/dolphin.control
|
||||
./share/postgresql/extension/dolphin--1.0.sql
|
||||
./share/postgresql/extension/file_fdw--1.0.sql
|
||||
./share/postgresql/extension/plpgsql.control
|
||||
./share/postgresql/extension/dist_fdw.control
|
||||
|
|
@ -77,15 +67,14 @@
|
|||
./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
|
||||
./share/postgresql/extension/mot_fdw.control
|
||||
./share/postgresql/extension/postgres_fdw--1.0.sql
|
||||
./share/postgresql/extension/postgres_fdw.control
|
||||
./share/postgresql/extension/dblink--1.0.sql
|
||||
./share/postgresql/extension/dblink--unpackaged--1.0.sql
|
||||
./share/postgresql/extension/dblink.control
|
||||
./share/postgresql/timezone/GB-Eire
|
||||
./share/postgresql/timezone/Turkey
|
||||
./share/postgresql/timezone/Kwajalein
|
||||
|
|
@ -731,6 +720,7 @@
|
|||
./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
|
||||
|
|
@ -756,12 +746,9 @@
|
|||
./lib/postgresql/pg_plugin
|
||||
./lib/postgresql/proc_srclib
|
||||
./lib/postgresql/security_plugin.so
|
||||
./lib/postgresql/dolphin.so
|
||||
./lib/postgresql/pg_upgrade_support.so
|
||||
./lib/postgresql/java/pljava.jar
|
||||
./lib/postgresql/postgres_fdw.so
|
||||
./lib/postgresql/dblink.so
|
||||
./lib/postgresql/pgoutput.so
|
||||
./lib/libpljava.so
|
||||
./lib/libpq.a
|
||||
./lib/libpq.so
|
||||
|
|
@ -771,11 +758,18 @@
|
|||
./lib/libpq_ce.so.5
|
||||
./lib/libpq_ce.so.5.5
|
||||
./lib/libgauss_cl_jni.so
|
||||
./lib/libcgroup.so*
|
||||
./lib/libcom_err_gauss.so*
|
||||
./lib/libatomic.so*
|
||||
./lib/libcgroup.so
|
||||
./lib/libcgroup.so.1
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
./lib/libatomic.so
|
||||
./lib/libatomic.so.1
|
||||
./lib/libatomic.so.1.2.0
|
||||
./lib/libmasstree.so
|
||||
./lib/libupb.so*
|
||||
./lib/libupb.so
|
||||
./lib/libupb.so.9
|
||||
./lib/libupb.so.9.0.0
|
||||
./lib/libabsl_str_format_internal.so
|
||||
./lib/libabsl_strings.so
|
||||
./lib/libabsl_throw_delegate.so
|
||||
|
|
@ -789,50 +783,103 @@
|
|||
./lib/libabsl_log_severity.so
|
||||
./lib/libaddress_sorting.so
|
||||
./lib/libaddress_sorting.so.9
|
||||
./lib/libgssapi_krb5_gauss.so*
|
||||
./lib/libgssrpc_gauss.so*
|
||||
./lib/libk5crypto_gauss.so*
|
||||
./lib/libgssapi_krb5_gauss.so
|
||||
./lib/libgssapi_krb5_gauss.so.2
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkadm5clnt.so
|
||||
./lib/libkadm5clnt_mit.so*
|
||||
./lib/libkadm5clnt_mit.so
|
||||
./lib/libkadm5clnt_mit.so.11
|
||||
./lib/libkadm5clnt_mit.so.11.0
|
||||
./lib/libkadm5clnt_mit.so.12
|
||||
./lib/libkadm5clnt_mit.so.12.0
|
||||
./lib/libkadm5srv.so
|
||||
./lib/libkadm5srv_mit.so*
|
||||
./lib/libkdb5.so*
|
||||
./lib/libkrad.so*
|
||||
./lib/libkrb5_gauss.so*
|
||||
./lib/libkrb5support_gauss.so*
|
||||
./lib/libkadm5srv_mit.so
|
||||
./lib/libkadm5srv_mit.so.11
|
||||
./lib/libkadm5srv_mit.so.11.0
|
||||
./lib/libkadm5srv_mit.so.12
|
||||
./lib/libkadm5srv_mit.so.12.0
|
||||
./lib/libkdb5.so
|
||||
./lib/libkdb5.so.9
|
||||
./lib/libkdb5.so.9.0
|
||||
./lib/libkdb5.so.10
|
||||
./lib/libkdb5.so.10.0
|
||||
./lib/libkrad.so
|
||||
./lib/libkrad.so.0
|
||||
./lib/libkrad.so.0.0
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/krb5/plugins/kdb/db2.so
|
||||
./lib/libverto.so*
|
||||
./lib/libcurl.so*
|
||||
./lib/libcrypto.so*
|
||||
./lib/libssl.so*
|
||||
./lib/libverto.so
|
||||
./lib/libverto.so.0
|
||||
./lib/libverto.so.0.0
|
||||
./lib/libcurl.so
|
||||
./lib/libcurl.so.4
|
||||
./lib/libcurl.so.4.6.0
|
||||
./lib/libcrypto.so
|
||||
./lib/libcrypto.so.1.1
|
||||
./lib/libssl.so
|
||||
./lib/libssl.so.1.1
|
||||
./lib/libgcc_s.so.1
|
||||
./lib/libstdc++.so.6
|
||||
./lib/libz.so*
|
||||
./lib/liblz4.so*
|
||||
./lib/libcjson.so*
|
||||
./lib/libconfig.so*
|
||||
./lib/libz.so
|
||||
./lib/libz.so.1
|
||||
./lib/libz.so.1.2.11
|
||||
./lib/liblz4.so
|
||||
./lib/liblz4.so.1
|
||||
./lib/liblz4.so.1.9.2
|
||||
./lib/libcjson.so
|
||||
./lib/libcjson.so.1
|
||||
./lib/libcjson.so.1.7.13
|
||||
./lib/libconfig.so
|
||||
./lib/libconfig.so.4
|
||||
./lib/libpgport_tool.so
|
||||
./lib/libpgport_tool.so.1
|
||||
./share/llvmir/GaussDB_expr.ir
|
||||
./lib/libeSDKLogAPI.so
|
||||
./lib/libeSDKOBS.so
|
||||
./lib/liblog4cpp.so*
|
||||
./lib/libcharset.so*
|
||||
./lib/libiconv.so*
|
||||
./lib/libnghttp2.so*
|
||||
./lib/libpcre.so*
|
||||
./lib/liblog4cpp.so
|
||||
./lib/liblog4cpp.so.5
|
||||
./lib/liblog4cpp.so.5.0.6
|
||||
./lib/libcharset.so
|
||||
./lib/libcharset.so.1
|
||||
./lib/libcharset.so.1.0.0
|
||||
./lib/libiconv.so
|
||||
./lib/libiconv.so.2
|
||||
./lib/libiconv.so.2.6.1
|
||||
./lib/libnghttp2.so
|
||||
./lib/libnghttp2.so.14
|
||||
./lib/libnghttp2.so.14.20.0
|
||||
./lib/libpcre.so
|
||||
./lib/libpcre.so.1
|
||||
./lib/libpcre.so.1.2.12
|
||||
./lib/libsecurec.so
|
||||
./lib/libxml2.so*
|
||||
./lib/libxml2.so
|
||||
./lib/libxml2.so.2
|
||||
./lib/libxml2.so.2.9.9
|
||||
./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
|
||||
./lib/libdcf.so
|
||||
./lib/libzstd.so*
|
||||
./lib/libxgboost.so
|
||||
./lib/libpagecompression.so*
|
||||
./lib/libdssapi.so
|
||||
./lib/libdms.so
|
||||
./lib/libodbc.so*
|
||||
./lib/libzstd.so
|
||||
./lib/libzstd.so.1
|
||||
./lib/libzstd.so.1.4.4
|
||||
|
||||
|
||||
./include/postgresql/server/postgres_ext.h
|
||||
./include/postgresql/server/pg_config_os.h
|
||||
|
|
@ -927,7 +974,6 @@
|
|||
./include/postgresql/server/utils/aset.h
|
||||
./include/postgresql/server/utils/catcache.h
|
||||
./include/postgresql/server/utils/atomic_arm.h
|
||||
./include/postgresql/server/utils/oidrbtree.h
|
||||
./include/postgresql/server/datatype/timestamp.h
|
||||
./include/postgresql/server/access/rmgr.h
|
||||
./include/postgresql/server/access/xlogreader.h
|
||||
|
|
@ -939,7 +985,6 @@
|
|||
./include/postgresql/server/access/attnum.h
|
||||
./include/postgresql/server/access/tupmacs.h
|
||||
./include/postgresql/server/access/xlogrecord.h
|
||||
./include/postgresql/server/tde_key_management/data_common.h
|
||||
./include/postgresql/server/tcop/dest.h
|
||||
./include/postgresql/server/catalog/pg_type.h
|
||||
./include/postgresql/server/catalog/pg_attribute.h
|
||||
|
|
@ -963,7 +1008,6 @@
|
|||
./include/postgresql/server/storage/backendid.h
|
||||
./include/postgresql/server/storage/lock/lock.h
|
||||
./include/postgresql/server/storage/lock/lwlock.h
|
||||
./include/postgresql/server/storage/lwlocknames.h
|
||||
./include/postgresql/server/storage/barrier.h
|
||||
./include/postgresql/server/storage/shmem.h
|
||||
./include/postgresql/server/pg_config.h
|
||||
|
|
@ -1016,7 +1060,6 @@
|
|||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_resource.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_common.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_common.h
|
||||
./include/postgresql/server/access/ustore/knl_uverify.h
|
||||
./include/postgresql/server/lib/circularqueue.h
|
||||
./include/postgresql/server/access/double_write_basic.h
|
||||
./include/postgresql/server/knl/knl_thread.h
|
||||
|
|
@ -1126,66 +1169,6 @@
|
|||
./include/postgresql/server/catalog/namespace.h
|
||||
./include/postgresql/server/commands/trigger.h
|
||||
./include/postgresql/server/executor/spi.h
|
||||
./include/postgresql/server/db4ai/db4ai.h
|
||||
./include/postgresql/server/instruments/gs_stack.h
|
||||
./include/postgresql/server/instruments/instr_mfchain.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundotype.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundoapi.h
|
||||
./include/postgresql/server/access/ustore/knl_uheap.h
|
||||
./include/postgresql/server/access/ustore/knl_utuple.h
|
||||
./include/postgresql/server/access/ustore/knl_utype.h
|
||||
./include/postgresql/server/access/ustore/knl_upage.h
|
||||
./include/postgresql/server/access/ustore/knl_uredo.h
|
||||
./include/postgresql/server/access/ustore/knl_uundovec.h
|
||||
./include/postgresql/server/access/ustore/knl_uundorecord.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundoxlog.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundotxn.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundozone.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundospace.h
|
||||
./include/postgresql/server/communication/commproxy_basic.h
|
||||
./include/postgresql/server/access/parallel_recovery/page_redo.h
|
||||
./include/postgresql/server/access/parallel_recovery/spsc_blocking_queue.h
|
||||
./include/postgresql/server/executor/exec/execdesc.h
|
||||
./include/postgresql/server/db4ai/matrix.h
|
||||
./include/postgresql/server/db4ai/scores.h
|
||||
./include/postgresql/server/access/multixact.h
|
||||
./include/postgresql/server/access/xlogutils.h
|
||||
./include/postgresql/server/executor/functions.h
|
||||
./include/postgresql/server/storage/lock/waitpolicy.h
|
||||
./include/postgresql/server/storage/page_compression.h
|
||||
./include/postgresql/server/storage/smgr/knl_usync.h
|
||||
./include/postgresql/server/storage/smgr/fd.h
|
||||
./include/postgresql/server/storage/smgr/smgr.h
|
||||
./include/postgresql/server/storage/sharedfileset.h
|
||||
./include/postgresql/server/utils/knl_globalsysdbcache.h
|
||||
./include/postgresql/server/utils/knl_globaldbstatmanager.h
|
||||
./include/postgresql/server/utils/knl_globalsyscache_common.h
|
||||
./include/postgresql/server/utils/knl_globalbucketlist.h
|
||||
./include/postgresql/server/utils/knl_globalsystabcache.h
|
||||
./include/postgresql/server/utils/knl_globalsystupcache.h
|
||||
./include/postgresql/server/utils/knl_globaltabdefcache.h
|
||||
./include/postgresql/server/utils/knl_globalbasedefcache.h
|
||||
./include/postgresql/server/utils/knl_globalpartdefcache.h
|
||||
./include/postgresql/server/utils/knl_globalrelmapcache.h
|
||||
./include/postgresql/server/utils/knl_localsysdbcache.h
|
||||
./include/postgresql/server/utils/knl_localsystabcache.h
|
||||
./include/postgresql/server/utils/knl_localsystupcache.h
|
||||
./include/postgresql/server/utils/knl_localsyscache_common.h
|
||||
./include/postgresql/server/utils/knl_localtabdefcache.h
|
||||
./include/postgresql/server/utils/knl_localbasedefcache.h
|
||||
./include/postgresql/server/utils/knl_localbucketlist.h
|
||||
./include/postgresql/server/utils/knl_localpartdefcache.h
|
||||
./include/postgresql/server/utils/pl_global_package_runtime_cache.h
|
||||
./include/postgresql/server/catalog/pg_tablespace.h
|
||||
./include/postgresql/server/catalog/pg_subscription.h
|
||||
./include/postgresql/server/catalog/pg_replication_origin.h
|
||||
./include/postgresql/server/postmaster/barrier_creator.h
|
||||
./include/postgresql/server/postmaster/pagerepair.h
|
||||
./include/postgresql/server/replication/libpqwalreceiver.h
|
||||
./include/postgresql/server/replication/worker_internal.h
|
||||
./include/postgresql/server/replication/origin.h
|
||||
./include/postgresql/server/parser/scanner.h
|
||||
./include/postgresql/server/parser/keywords.h
|
||||
./jre/ASSEMBLY_EXCEPTION
|
||||
./jre/bin/java
|
||||
./jre/bin/jjs
|
||||
|
|
@ -1371,19 +1354,33 @@
|
|||
./lib/libpq_ce.so.5
|
||||
./lib/libpq_ce.so.5.5
|
||||
./lib/libgauss_cl_jni.so
|
||||
./lib/libconfig.so*
|
||||
./lib/libcrypto.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
|
||||
./lib/libssl.so.1.1
|
||||
./lib/libpgport_tool.so
|
||||
./lib/libpgport_tool.so.1
|
||||
./lib/libgssapi_krb5_gauss.so*
|
||||
./lib/libgssrpc_gauss.so*
|
||||
./lib/libk5crypto_gauss.so*
|
||||
./lib/libkrb5support_gauss.so*
|
||||
./lib/libkrb5_gauss.so*
|
||||
./lib/libcom_err_gauss.so*
|
||||
./lib/libcjson.so*
|
||||
./lib/libgssapi_krb5_gauss.so
|
||||
./lib/libgssapi_krb5_gauss.so.2
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
[libpq]
|
||||
./lib/libpq.a
|
||||
./lib/libpq.so
|
||||
|
|
@ -1393,25 +1390,41 @@
|
|||
./lib/libpq_ce.so.5
|
||||
./lib/libpq_ce.so.5.5
|
||||
./lib/libgauss_cl_jni.so
|
||||
./lib/libconfig.so*
|
||||
./lib/libcrypto.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
|
||||
./lib/libssl.so.1.1
|
||||
./lib/libpgport_tool.so
|
||||
./lib/libpgport_tool.so.1
|
||||
./lib/libgssapi_krb5_gauss.so*
|
||||
./lib/libgssrpc_gauss.so*
|
||||
./lib/libk5crypto_gauss.so*
|
||||
./lib/libkrb5support_gauss.so*
|
||||
./lib/libkrb5_gauss.so*
|
||||
./lib/libcom_err_gauss.so*
|
||||
./lib/libcjson.so*
|
||||
./lib/libgssapi_krb5_gauss.so
|
||||
./lib/libgssapi_krb5_gauss.so.2
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
./include/gs_thread.h
|
||||
./include/gs_threadlocal.h
|
||||
./include/postgres_ext.h
|
||||
./include/libpq-fe.h
|
||||
./include/libpq-events.h
|
||||
./include/libpq/libpq-fs.h
|
||||
[version]
|
||||
V500R002C00
|
||||
[header]
|
||||
./include/libpq-fe.h
|
||||
./include/postgres_ext.h
|
||||
|
|
@ -1423,6 +1436,9 @@
|
|||
./include/cm_config.h
|
||||
./include/c.h
|
||||
./include/port.h
|
||||
./include/cm_msg.h
|
||||
./include/cm_c.h
|
||||
./include/cm_misc.h
|
||||
./include/libpq-int.h
|
||||
./include/pqcomm.h
|
||||
./include/pqexpbuffer.h
|
||||
|
|
@ -1,10 +1,4 @@
|
|||
[server]
|
||||
./bin/dsscmd
|
||||
./bin/dssserver
|
||||
./bin/perctrl
|
||||
./bin/dms_contrl.sh
|
||||
./bin/dss_clear.sh
|
||||
./bin/dss_contrl.sh
|
||||
./bin/gsql
|
||||
./bin/gaussdb
|
||||
./bin/gstrace
|
||||
|
|
@ -40,11 +34,9 @@
|
|||
./bin/kadmin.local
|
||||
./bin/lz4
|
||||
./bin/kadmind
|
||||
./bin/gs_dbmind
|
||||
./bin/constant
|
||||
./bin/dbmind
|
||||
./bin/server.key.cipher
|
||||
./bin/server.key.rand
|
||||
./bin/gs_plan_simulator.sh
|
||||
./etc/kerberos/kadm5.acl
|
||||
./etc/kerberos/kdc.conf
|
||||
./etc/kerberos/krb5.conf
|
||||
|
|
@ -66,8 +58,6 @@
|
|||
./share/postgresql/extension/hstore.control
|
||||
./share/postgresql/extension/security_plugin.control
|
||||
./share/postgresql/extension/security_plugin--1.0.sql
|
||||
./share/postgresql/extension/dolphin.control
|
||||
./share/postgresql/extension/dolphin--1.0.sql
|
||||
./share/postgresql/extension/file_fdw--1.0.sql
|
||||
./share/postgresql/extension/plpgsql.control
|
||||
./share/postgresql/extension/dist_fdw.control
|
||||
|
|
@ -77,15 +67,14 @@
|
|||
./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
|
||||
./share/postgresql/extension/mot_fdw.control
|
||||
./share/postgresql/extension/postgres_fdw--1.0.sql
|
||||
./share/postgresql/extension/postgres_fdw.control
|
||||
./share/postgresql/extension/dblink--1.0.sql
|
||||
./share/postgresql/extension/dblink--unpackaged--1.0.sql
|
||||
./share/postgresql/extension/dblink.control
|
||||
./share/postgresql/timezone/GB-Eire
|
||||
./share/postgresql/timezone/Turkey
|
||||
./share/postgresql/timezone/Kwajalein
|
||||
|
|
@ -731,6 +720,7 @@
|
|||
./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
|
||||
|
|
@ -756,12 +746,9 @@
|
|||
./lib/postgresql/pg_plugin
|
||||
./lib/postgresql/proc_srclib
|
||||
./lib/postgresql/security_plugin.so
|
||||
./lib/postgresql/dolphin.so
|
||||
./lib/postgresql/pg_upgrade_support.so
|
||||
./lib/postgresql/java/pljava.jar
|
||||
./lib/postgresql/postgres_fdw.so
|
||||
./lib/postgresql/dblink.so
|
||||
./lib/postgresql/pgoutput.so
|
||||
./lib/libpljava.so
|
||||
./lib/libpq.a
|
||||
./lib/libpq.so
|
||||
|
|
@ -771,14 +758,18 @@
|
|||
./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/libcom_err_gauss.so*
|
||||
./lib/libatomic.so*
|
||||
./lib/libcgroup.so
|
||||
./lib/libcgroup.so.1
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
./lib/libatomic.so
|
||||
./lib/libatomic.so.1
|
||||
./lib/libatomic.so.1.2.0
|
||||
./lib/libmasstree.so
|
||||
./lib/libupb.so*
|
||||
./lib/libupb.so
|
||||
./lib/libupb.so.9
|
||||
./lib/libupb.so.9.0.0
|
||||
./lib/libabsl_str_format_internal.so
|
||||
./lib/libabsl_strings.so
|
||||
./lib/libabsl_throw_delegate.so
|
||||
|
|
@ -792,50 +783,102 @@
|
|||
./lib/libabsl_log_severity.so
|
||||
./lib/libaddress_sorting.so
|
||||
./lib/libaddress_sorting.so.9
|
||||
./lib/libgssapi_krb5_gauss.so*
|
||||
./lib/libgssrpc_gauss.so*
|
||||
./lib/libk5crypto_gauss.so*
|
||||
./lib/libgssapi_krb5_gauss.so
|
||||
./lib/libgssapi_krb5_gauss.so.2
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkadm5clnt.so
|
||||
./lib/libkadm5clnt_mit.so*
|
||||
./lib/libkadm5clnt_mit.so
|
||||
./lib/libkadm5clnt_mit.so.11
|
||||
./lib/libkadm5clnt_mit.so.11.0
|
||||
./lib/libkadm5clnt_mit.so.12
|
||||
./lib/libkadm5clnt_mit.so.12.0
|
||||
./lib/libkadm5srv.so
|
||||
./lib/libkadm5srv_mit.so*
|
||||
./lib/libkdb5.so*
|
||||
./lib/libkrad.so*
|
||||
./lib/libkrb5_gauss.so*
|
||||
./lib/libkrb5support_gauss.so*
|
||||
./lib/libkadm5srv_mit.so
|
||||
./lib/libkadm5srv_mit.so.11
|
||||
./lib/libkadm5srv_mit.so.11.0
|
||||
./lib/libkadm5srv_mit.so.12
|
||||
./lib/libkadm5srv_mit.so.12.0
|
||||
./lib/libkdb5.so
|
||||
./lib/libkdb5.so.9
|
||||
./lib/libkdb5.so.9.0
|
||||
./lib/libkdb5.so.10
|
||||
./lib/libkdb5.so.10.0
|
||||
./lib/libkrad.so
|
||||
./lib/libkrad.so.0
|
||||
./lib/libkrad.so.0.0
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/krb5/plugins/kdb/db2.so
|
||||
./lib/libverto.so*
|
||||
./lib/libcurl.so*
|
||||
./lib/libcrypto.so*
|
||||
./lib/libssl.so*
|
||||
./lib/libverto.so
|
||||
./lib/libverto.so.0
|
||||
./lib/libverto.so.0.0
|
||||
./lib/libcurl.so
|
||||
./lib/libcurl.so.4
|
||||
./lib/libcurl.so.4.6.0
|
||||
./lib/libcrypto.so
|
||||
./lib/libcrypto.so.1.1
|
||||
./lib/libssl.so
|
||||
./lib/libssl.so.1.1
|
||||
./lib/libgcc_s.so.1
|
||||
./lib/libstdc++.so.6
|
||||
./lib/libz.so*
|
||||
./lib/liblz4.so*
|
||||
./lib/libcjson.so*
|
||||
./lib/libconfig.so*
|
||||
./lib/libz.so
|
||||
./lib/libz.so.1
|
||||
./lib/libz.so.1.2.11
|
||||
./lib/liblz4.so
|
||||
./lib/liblz4.so.1
|
||||
./lib/liblz4.so.1.9.2
|
||||
./lib/libcjson.so
|
||||
./lib/libcjson.so.1
|
||||
./lib/libcjson.so.1.7.13
|
||||
./lib/libconfig.so
|
||||
./lib/libconfig.so.4
|
||||
./lib/libpgport_tool.so
|
||||
./lib/libpgport_tool.so.1
|
||||
./share/llvmir/GaussDB_expr.ir
|
||||
./lib/libeSDKLogAPI.so
|
||||
./lib/libeSDKOBS.so
|
||||
./lib/liblog4cpp.so*
|
||||
./lib/libcharset.so*
|
||||
./lib/libiconv.so*
|
||||
./lib/libnghttp2.so*
|
||||
./lib/libpcre.so*
|
||||
./lib/liblog4cpp.so
|
||||
./lib/liblog4cpp.so.5
|
||||
./lib/liblog4cpp.so.5.0.6
|
||||
./lib/libcharset.so
|
||||
./lib/libcharset.so.1
|
||||
./lib/libcharset.so.1.0.0
|
||||
./lib/libiconv.so
|
||||
./lib/libiconv.so.2
|
||||
./lib/libiconv.so.2.6.1
|
||||
./lib/libnghttp2.so
|
||||
./lib/libnghttp2.so.14
|
||||
./lib/libnghttp2.so.14.20.0
|
||||
./lib/libpcre.so
|
||||
./lib/libpcre.so.1
|
||||
./lib/libpcre.so.1.2.12
|
||||
./lib/libsecurec.so
|
||||
./lib/libxml2.so*
|
||||
./lib/libxml2.so
|
||||
./lib/libxml2.so.2
|
||||
./lib/libxml2.so.2.9.9
|
||||
./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
|
||||
./lib/libdcf.so
|
||||
./lib/libzstd.so*
|
||||
./lib/libxgboost.so
|
||||
./lib/libpagecompression.so*
|
||||
./lib/libdssapi.so
|
||||
./lib/libdms.so
|
||||
./lib/libodbc.so*
|
||||
./lib/libzstd.so
|
||||
./lib/libzstd.so.1
|
||||
./lib/libzstd.so.1.4.4
|
||||
|
||||
./include/postgresql/server/postgres_ext.h
|
||||
./include/postgresql/server/pg_config_os.h
|
||||
|
|
@ -930,7 +973,6 @@
|
|||
./include/postgresql/server/utils/aset.h
|
||||
./include/postgresql/server/utils/catcache.h
|
||||
./include/postgresql/server/utils/atomic_arm.h
|
||||
./include/postgresql/server/utils/oidrbtree.h
|
||||
./include/postgresql/server/datatype/timestamp.h
|
||||
./include/postgresql/server/access/rmgr.h
|
||||
./include/postgresql/server/access/xlogreader.h
|
||||
|
|
@ -942,7 +984,6 @@
|
|||
./include/postgresql/server/access/attnum.h
|
||||
./include/postgresql/server/access/tupmacs.h
|
||||
./include/postgresql/server/access/xlogrecord.h
|
||||
./include/postgresql/server/tde_key_management/data_common.h
|
||||
./include/postgresql/server/tcop/dest.h
|
||||
./include/postgresql/server/catalog/pg_type.h
|
||||
./include/postgresql/server/catalog/pg_attribute.h
|
||||
|
|
@ -966,7 +1007,6 @@
|
|||
./include/postgresql/server/storage/backendid.h
|
||||
./include/postgresql/server/storage/lock/lock.h
|
||||
./include/postgresql/server/storage/lock/lwlock.h
|
||||
./include/postgresql/server/storage/lwlocknames.h
|
||||
./include/postgresql/server/storage/barrier.h
|
||||
./include/postgresql/server/storage/shmem.h
|
||||
./include/postgresql/server/pg_config.h
|
||||
|
|
@ -1019,7 +1059,6 @@
|
|||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_resource.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_common.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_common.h
|
||||
./include/postgresql/server/access/ustore/knl_uverify.h
|
||||
./include/postgresql/server/lib/circularqueue.h
|
||||
./include/postgresql/server/access/double_write_basic.h
|
||||
./include/postgresql/server/knl/knl_thread.h
|
||||
|
|
@ -1129,66 +1168,6 @@
|
|||
./include/postgresql/server/catalog/namespace.h
|
||||
./include/postgresql/server/commands/trigger.h
|
||||
./include/postgresql/server/executor/spi.h
|
||||
./include/postgresql/server/db4ai/db4ai.h
|
||||
./include/postgresql/server/instruments/gs_stack.h
|
||||
./include/postgresql/server/instruments/instr_mfchain.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundotype.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundoapi.h
|
||||
./include/postgresql/server/access/ustore/knl_uheap.h
|
||||
./include/postgresql/server/access/ustore/knl_utuple.h
|
||||
./include/postgresql/server/access/ustore/knl_utype.h
|
||||
./include/postgresql/server/access/ustore/knl_upage.h
|
||||
./include/postgresql/server/access/ustore/knl_uredo.h
|
||||
./include/postgresql/server/access/ustore/knl_uundovec.h
|
||||
./include/postgresql/server/access/ustore/knl_uundorecord.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundoxlog.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundotxn.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundozone.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundospace.h
|
||||
./include/postgresql/server/communication/commproxy_basic.h
|
||||
./include/postgresql/server/access/parallel_recovery/page_redo.h
|
||||
./include/postgresql/server/access/parallel_recovery/spsc_blocking_queue.h
|
||||
./include/postgresql/server/executor/exec/execdesc.h
|
||||
./include/postgresql/server/db4ai/matrix.h
|
||||
./include/postgresql/server/db4ai/scores.h
|
||||
./include/postgresql/server/access/multixact.h
|
||||
./include/postgresql/server/access/xlogutils.h
|
||||
./include/postgresql/server/executor/functions.h
|
||||
./include/postgresql/server/storage/lock/waitpolicy.h
|
||||
./include/postgresql/server/storage/page_compression.h
|
||||
./include/postgresql/server/storage/smgr/knl_usync.h
|
||||
./include/postgresql/server/storage/smgr/fd.h
|
||||
./include/postgresql/server/storage/smgr/smgr.h
|
||||
./include/postgresql/server/storage/sharedfileset.h
|
||||
./include/postgresql/server/utils/knl_globalsysdbcache.h
|
||||
./include/postgresql/server/utils/knl_globaldbstatmanager.h
|
||||
./include/postgresql/server/utils/knl_globalsyscache_common.h
|
||||
./include/postgresql/server/utils/knl_globalbucketlist.h
|
||||
./include/postgresql/server/utils/knl_globalsystabcache.h
|
||||
./include/postgresql/server/utils/knl_globalsystupcache.h
|
||||
./include/postgresql/server/utils/knl_globaltabdefcache.h
|
||||
./include/postgresql/server/utils/knl_globalbasedefcache.h
|
||||
./include/postgresql/server/utils/knl_globalpartdefcache.h
|
||||
./include/postgresql/server/utils/knl_globalrelmapcache.h
|
||||
./include/postgresql/server/utils/knl_localsysdbcache.h
|
||||
./include/postgresql/server/utils/knl_localsystabcache.h
|
||||
./include/postgresql/server/utils/knl_localsystupcache.h
|
||||
./include/postgresql/server/utils/knl_localsyscache_common.h
|
||||
./include/postgresql/server/utils/knl_localtabdefcache.h
|
||||
./include/postgresql/server/utils/knl_localbasedefcache.h
|
||||
./include/postgresql/server/utils/knl_localbucketlist.h
|
||||
./include/postgresql/server/utils/knl_localpartdefcache.h
|
||||
./include/postgresql/server/utils/pl_global_package_runtime_cache.h
|
||||
./include/postgresql/server/catalog/pg_tablespace.h
|
||||
./include/postgresql/server/catalog/pg_subscription.h
|
||||
./include/postgresql/server/catalog/pg_replication_origin.h
|
||||
./include/postgresql/server/postmaster/barrier_creator.h
|
||||
./include/postgresql/server/postmaster/pagerepair.h
|
||||
./include/postgresql/server/replication/libpqwalreceiver.h
|
||||
./include/postgresql/server/replication/worker_internal.h
|
||||
./include/postgresql/server/replication/origin.h
|
||||
./include/postgresql/server/parser/scanner.h
|
||||
./include/postgresql/server/parser/keywords.h
|
||||
./jre/ASSEMBLY_EXCEPTION
|
||||
./jre/bin/java
|
||||
./jre/bin/jjs
|
||||
|
|
@ -1374,19 +1353,33 @@
|
|||
./lib/libpq_ce.so.5
|
||||
./lib/libpq_ce.so.5.5
|
||||
./lib/libgauss_cl_jni.so
|
||||
./lib/libconfig.so*
|
||||
./lib/libcrypto.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
|
||||
./lib/libssl.so.1.1
|
||||
./lib/libpgport_tool.so
|
||||
./lib/libpgport_tool.so.1
|
||||
./lib/libgssapi_krb5_gauss.so*
|
||||
./lib/libgssrpc_gauss.so*
|
||||
./lib/libk5crypto_gauss.so*
|
||||
./lib/libkrb5support_gauss.so*
|
||||
./lib/libkrb5_gauss.so*
|
||||
./lib/libcom_err_gauss.so*
|
||||
./lib/libcjson.so*
|
||||
./lib/libgssapi_krb5_gauss.so
|
||||
./lib/libgssapi_krb5_gauss.so.2
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
[libpq]
|
||||
./lib/libpq.a
|
||||
./lib/libpq.so
|
||||
|
|
@ -1396,25 +1389,41 @@
|
|||
./lib/libpq_ce.so.5
|
||||
./lib/libpq_ce.so.5.5
|
||||
./lib/libgauss_cl_jni.so
|
||||
./lib/libconfig.so*
|
||||
./lib/libcrypto.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
|
||||
./lib/libssl.so.1.1
|
||||
./lib/libpgport_tool.so
|
||||
./lib/libpgport_tool.so.1
|
||||
./lib/libgssapi_krb5_gauss.so*
|
||||
./lib/libgssrpc_gauss.so*
|
||||
./lib/libk5crypto_gauss.so*
|
||||
./lib/libkrb5support_gauss.so*
|
||||
./lib/libkrb5_gauss.so*
|
||||
./lib/libcom_err_gauss.so*
|
||||
./lib/libcjson.so*
|
||||
./lib/libgssapi_krb5_gauss.so
|
||||
./lib/libgssapi_krb5_gauss.so.2
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
./include/gs_thread.h
|
||||
./include/gs_threadlocal.h
|
||||
./include/postgres_ext.h
|
||||
./include/libpq-fe.h
|
||||
./include/libpq-events.h
|
||||
./include/libpq/libpq-fs.h
|
||||
[version]
|
||||
V500R002C00
|
||||
[header]
|
||||
./include/libpq-fe.h
|
||||
./include/postgres_ext.h
|
||||
|
|
@ -1426,6 +1435,9 @@
|
|||
./include/cm_config.h
|
||||
./include/c.h
|
||||
./include/port.h
|
||||
./include/cm_msg.h
|
||||
./include/cm_c.h
|
||||
./include/cm_misc.h
|
||||
./include/libpq-int.h
|
||||
./include/pqcomm.h
|
||||
./include/pqexpbuffer.h
|
||||
|
|
@ -2,21 +2,46 @@
|
|||
./bin/gsql
|
||||
./bin/gaussdb
|
||||
./bin/gstrace
|
||||
./bin/gs_basebackup
|
||||
./bin/gs_probackup
|
||||
./bin/gs_tar
|
||||
./bin/gs_encrypt
|
||||
./bin/gs_dump
|
||||
./bin/gs_dumpall
|
||||
./bin/gs_ctl
|
||||
./bin/gs_initdb
|
||||
./bin/gs_guc
|
||||
./bin/encrypt
|
||||
./bin/openssl
|
||||
./bin/gs_restore
|
||||
./bin/gs_cgroup
|
||||
./bin/openssl
|
||||
./bin/pg_config
|
||||
./bin/pg_controldata
|
||||
./bin/pg_format_cu
|
||||
./bin/pg_resetxlog
|
||||
./bin/gs_probackup
|
||||
./bin/pg_recvlogical
|
||||
./bin/alarmItem.conf
|
||||
./bin/retry_errcodes.conf
|
||||
./bin/cluster_guc.conf
|
||||
./bin/bind_net_irq.sh
|
||||
./bin/setArmOptimization.sh
|
||||
./bin/krb5kdc
|
||||
./bin/klist
|
||||
./bin/kinit
|
||||
./bin/kdestroy
|
||||
./bin/kdb5_util
|
||||
./bin/kadmin.local
|
||||
./bin/lz4
|
||||
./bin/gs_plan_simulator.sh
|
||||
./bin/kadmind
|
||||
./bin/dbmind
|
||||
./bin/server.key.cipher
|
||||
./bin/server.key.rand
|
||||
./etc/kerberos/kadm5.acl
|
||||
./etc/kerberos/kdc.conf
|
||||
./etc/kerberos/krb5.conf
|
||||
./etc/kerberos/mppdb-site.xml
|
||||
./share/postgresql/tmp/udstools.py
|
||||
./share/postgresql/db4ai
|
||||
./share/postgresql/snowball_create.sql
|
||||
./share/postgresql/pg_hba.conf.sample
|
||||
|
|
@ -28,6 +53,7 @@
|
|||
./share/postgresql/pg_ident.conf.sample
|
||||
./share/postgresql/postgres.description
|
||||
./share/postgresql/postgresql.conf.sample
|
||||
./share/postgresql/mot.conf.sample
|
||||
./share/postgresql/extension/plpgsql--1.0.sql
|
||||
./share/postgresql/extension/hstore.control
|
||||
./share/postgresql/extension/security_plugin.control
|
||||
|
|
@ -41,8 +67,14 @@
|
|||
./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
|
||||
./share/postgresql/extension/mot_fdw.control
|
||||
./share/postgresql/extension/postgres_fdw--1.0.sql
|
||||
./share/postgresql/extension/postgres_fdw.control
|
||||
./share/postgresql/timezone/GB-Eire
|
||||
./share/postgresql/timezone/Turkey
|
||||
./share/postgresql/timezone/Kwajalein
|
||||
|
|
@ -249,6 +281,7 @@
|
|||
./share/postgresql/timezone/Canada/Newfoundland
|
||||
./share/postgresql/timezone/Canada/Saskatchewan
|
||||
./share/postgresql/timezone/Canada/Pacific
|
||||
./share/postgresql/timezone/Canada/East-Saskatchewan
|
||||
./share/postgresql/timezone/Canada/Mountain
|
||||
./share/postgresql/timezone/Canada/Central
|
||||
./share/postgresql/timezone/CST6CDT
|
||||
|
|
@ -669,25 +702,11 @@
|
|||
./share/postgresql/timezonesets/Default
|
||||
./share/postgresql/timezonesets/Etc.txt
|
||||
./share/postgresql/postgres.bki
|
||||
./share/llvmir/GaussDB_expr.ir
|
||||
./share/sslcert/gsql/openssl.cnf
|
||||
./lib/libpq.so
|
||||
./lib/libpq.so.5
|
||||
./lib/libpq.so.5.5
|
||||
./lib/libssl.so*
|
||||
./lib/libcrypto.so*
|
||||
./lib/libcgroup.so*
|
||||
./lib/libz.so*
|
||||
./lib/liblz4.so*
|
||||
./lib/libcjson.so*
|
||||
./lib/libcjson_utils.so*
|
||||
./lib/libstdc++.so.6
|
||||
./lib/libgcc_s.so.1
|
||||
./lib/libgomp.so*
|
||||
./lib/libdcf.so
|
||||
./lib/libzstd.so*
|
||||
./lib/libcurl.so*
|
||||
./lib/libxgboost.so
|
||||
./lib/libpagecompression.so*
|
||||
./share/sslcert/grpc/openssl.cnf
|
||||
./share/sslcert/om/openssl.cnf
|
||||
./lib/libsimsearch/
|
||||
./lib/postgresql/latin2_and_win1250.so
|
||||
./lib/postgresql/euc2004_sjis2004.so
|
||||
./lib/postgresql/euc_kr_and_mic.so
|
||||
|
|
@ -696,6 +715,12 @@
|
|||
./lib/postgresql/cyrillic_and_mic.so
|
||||
./lib/postgresql/utf8_and_johab.so
|
||||
./lib/postgresql/utf8_and_gb18030.so
|
||||
./lib/postgresql/pgxs/src/makefiles/pgxs.mk
|
||||
./lib/postgresql/pgxs/src/Makefile.shlib
|
||||
./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
|
||||
|
|
@ -704,7 +729,6 @@
|
|||
./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
|
||||
|
|
@ -719,15 +743,143 @@
|
|||
./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/java/pljava.jar
|
||||
./lib/postgresql/postgres_fdw.so
|
||||
./lib/libpljava.so
|
||||
./lib/libpq.a
|
||||
./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/libcgroup.so
|
||||
./lib/libcgroup.so.1
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
./lib/libatomic.so
|
||||
./lib/libatomic.so.1
|
||||
./lib/libatomic.so.1.2.0
|
||||
./lib/libmasstree.so
|
||||
./lib/libupb.so
|
||||
./lib/libupb.so.9
|
||||
./lib/libupb.so.9.0.0
|
||||
./lib/libabsl_str_format_internal.so
|
||||
./lib/libabsl_strings.so
|
||||
./lib/libabsl_throw_delegate.so
|
||||
./lib/libabsl_strings_internal.so
|
||||
./lib/libabsl_base.so
|
||||
./lib/libabsl_dynamic_annotations.so
|
||||
./lib/libabsl_spinlock_wait.so
|
||||
./lib/libabsl_int128.so
|
||||
./lib/libabsl_bad_optional_access.so
|
||||
./lib/libabsl_raw_logging_internal.so
|
||||
./lib/libabsl_log_severity.so
|
||||
./lib/libaddress_sorting.so
|
||||
./lib/libaddress_sorting.so.9
|
||||
./lib/libgssapi_krb5_gauss.so
|
||||
./lib/libgssapi_krb5_gauss.so.2
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkadm5clnt.so
|
||||
./lib/libkadm5clnt_mit.so
|
||||
./lib/libkadm5clnt_mit.so.11
|
||||
./lib/libkadm5clnt_mit.so.11.0
|
||||
./lib/libkadm5clnt_mit.so.12
|
||||
./lib/libkadm5clnt_mit.so.12.0
|
||||
./lib/libkadm5srv.so
|
||||
./lib/libkadm5srv_mit.so
|
||||
./lib/libkadm5srv_mit.so.11
|
||||
./lib/libkadm5srv_mit.so.11.0
|
||||
./lib/libkadm5srv_mit.so.12
|
||||
./lib/libkadm5srv_mit.so.12.0
|
||||
./lib/libkdb5.so
|
||||
./lib/libkdb5.so.9
|
||||
./lib/libkdb5.so.9.0
|
||||
./lib/libkdb5.so.10
|
||||
./lib/libkdb5.so.10.0
|
||||
./lib/libkrad.so
|
||||
./lib/libkrad.so.0
|
||||
./lib/libkrad.so.0.0
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/krb5/plugins/kdb/db2.so
|
||||
./lib/libverto.so
|
||||
./lib/libverto.so.0
|
||||
./lib/libverto.so.0.0
|
||||
./lib/libcurl.so
|
||||
./lib/libcurl.so.4
|
||||
./lib/libcurl.so.4.6.0
|
||||
./lib/libcrypto.so
|
||||
./lib/libcrypto.so.1.1
|
||||
./lib/libssl.so
|
||||
./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/liblz4.so
|
||||
./lib/liblz4.so.1
|
||||
./lib/liblz4.so.1.9.2
|
||||
./lib/libcjson.so
|
||||
./lib/libcjson.so.1
|
||||
./lib/libcjson.so.1.7.13
|
||||
./lib/libconfig.so
|
||||
./lib/libconfig.so.4
|
||||
./lib/libpgport_tool.so
|
||||
./lib/libpgport_tool.so.1
|
||||
./share/llvmir/GaussDB_expr.ir
|
||||
./lib/libeSDKLogAPI.so
|
||||
./lib/libeSDKOBS.so
|
||||
./lib/liblog4cpp.so
|
||||
./lib/liblog4cpp.so.5
|
||||
./lib/liblog4cpp.so.5.0.6
|
||||
./lib/libcharset.so
|
||||
./lib/libcharset.so.1
|
||||
./lib/libcharset.so.1.0.0
|
||||
./lib/libiconv.so
|
||||
./lib/libiconv.so.2
|
||||
./lib/libiconv.so.2.6.1
|
||||
./lib/libnghttp2.so
|
||||
./lib/libnghttp2.so.14
|
||||
./lib/libnghttp2.so.14.20.0
|
||||
./lib/libpcre.so
|
||||
./lib/libpcre.so.1
|
||||
./lib/libpcre.so.1.2.12
|
||||
./lib/libsecurec.so
|
||||
./lib/libxml2.so
|
||||
./lib/libxml2.so.2
|
||||
./lib/libxml2.so.2.9.9
|
||||
./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
|
||||
./lib/postgresql/pgoutput.so
|
||||
./lib/libxgboost.so
|
||||
./lib/libdcf.so
|
||||
./lib/libzstd.so
|
||||
./lib/libzstd.so.1
|
||||
./lib/libzstd.so.1.4.4
|
||||
|
||||
./include/postgresql/server/postgres_ext.h
|
||||
./include/postgresql/server/pg_config_os.h
|
||||
./include/postgresql/server/pgtime.h
|
||||
|
|
@ -821,7 +973,6 @@
|
|||
./include/postgresql/server/utils/aset.h
|
||||
./include/postgresql/server/utils/catcache.h
|
||||
./include/postgresql/server/utils/atomic_arm.h
|
||||
./include/postgresql/server/utils/oidrbtree.h
|
||||
./include/postgresql/server/datatype/timestamp.h
|
||||
./include/postgresql/server/access/rmgr.h
|
||||
./include/postgresql/server/access/xlogreader.h
|
||||
|
|
@ -833,7 +984,6 @@
|
|||
./include/postgresql/server/access/attnum.h
|
||||
./include/postgresql/server/access/tupmacs.h
|
||||
./include/postgresql/server/access/xlogrecord.h
|
||||
./include/postgresql/server/tde_key_management/data_common.h
|
||||
./include/postgresql/server/tcop/dest.h
|
||||
./include/postgresql/server/catalog/pg_type.h
|
||||
./include/postgresql/server/catalog/pg_attribute.h
|
||||
|
|
@ -857,7 +1007,6 @@
|
|||
./include/postgresql/server/storage/backendid.h
|
||||
./include/postgresql/server/storage/lock/lock.h
|
||||
./include/postgresql/server/storage/lock/lwlock.h
|
||||
./include/postgresql/server/storage/lwlocknames.h
|
||||
./include/postgresql/server/storage/barrier.h
|
||||
./include/postgresql/server/storage/shmem.h
|
||||
./include/postgresql/server/pg_config.h
|
||||
|
|
@ -881,15 +1030,401 @@
|
|||
./include/postgresql/server/lib/ilist.h
|
||||
./include/postgresql/server/pgxc/locator.h
|
||||
./include/postgresql/server/gstrace/gstrace_infra.h
|
||||
./include/postgresql/server/db4ai/db4ai.h
|
||||
[libpq]
|
||||
./include/postgresql/server/extension_dependency.h
|
||||
./include/postgresql/server/libpq/libpq-fe.h
|
||||
./include/postgresql/server/access/clog.h
|
||||
./include/postgresql/server/storage/proc.h
|
||||
./include/postgresql/server/access/xlog.h
|
||||
./include/postgresql/server/storage/lwlocknames.h
|
||||
./include/postgresql/server/access/xloginsert.h
|
||||
./include/postgresql/server/catalog/pg_control.h
|
||||
./include/postgresql/server/access/parallel_recovery/redo_item.h
|
||||
./include/postgresql/server/access/parallel_recovery/posix_semaphore.h
|
||||
./include/postgresql/server/replication/replicainternal.h
|
||||
./include/postgresql/server/knl/knl_instance.h
|
||||
./include/postgresql/server/knl/knl_guc.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_sql.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_guc_common.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_sql.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_storage.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_storage.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_storage.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_security.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_security.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_network.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_network.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_memory.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_memory.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_resource.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_resource.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_common.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_common.h
|
||||
./include/postgresql/server/lib/circularqueue.h
|
||||
./include/postgresql/server/access/double_write_basic.h
|
||||
./include/postgresql/server/knl/knl_thread.h
|
||||
./include/postgresql/server/access/sdir.h
|
||||
./include/postgresql/server/gssignal/gs_signal.h
|
||||
./include/postgresql/server/knl/knl_session.h
|
||||
./include/postgresql/server/libpq/pqcomm.h
|
||||
./include/postgresql/server/cipher.h
|
||||
./include/postgresql/server/portability/instr_time.h
|
||||
./include/postgresql/server/utils/memgroup.h
|
||||
./include/postgresql/server/storage/latch.h
|
||||
./include/postgresql/server/workload/qnode.h
|
||||
./include/postgresql/server/streaming/init.h
|
||||
./include/postgresql/server/streaming/launcher.h
|
||||
./include/postgresql/server/pgxc/barrier.h
|
||||
./include/postgresql/server/libcomm/libcomm.h
|
||||
./include/postgresql/server/hotpatch/hotpatch.h
|
||||
./include/postgresql/server/hotpatch/hotpatch_backend.h
|
||||
./include/postgresql/server/postmaster/bgwriter.h
|
||||
./include/postgresql/server/postmaster/pagewriter.h
|
||||
./include/postgresql/server/replication/heartbeat.h
|
||||
./include/postgresql/server/access/multi_redo_settings.h
|
||||
./include/postgresql/server/access/redo_statistic_msg.h
|
||||
./include/postgresql/server/replication/rto_statistic.h
|
||||
./include/postgresql/server/replication/walprotocol.h
|
||||
./include/postgresql/server/storage/mot/jit_def.h
|
||||
./include/postgresql/server/threadpool/threadpool.h
|
||||
./include/postgresql/server/threadpool/threadpool_controler.h
|
||||
./include/postgresql/server/threadpool/threadpool_group.h
|
||||
./include/postgresql/server/knl/knl_variable.h
|
||||
./include/postgresql/server/threadpool/threadpool_listener.h
|
||||
./include/postgresql/server/threadpool/threadpool_sessctl.h
|
||||
./include/postgresql/server/storage/procsignal.h
|
||||
./include/postgresql/server/threadpool/threadpool_worker.h
|
||||
./include/postgresql/server/threadpool/threadpool_scheduler.h
|
||||
./include/postgresql/server/threadpool/threadpool_stream.h
|
||||
./include/postgresql/server/replication/dataqueuedefs.h
|
||||
./include/postgresql/server/gtm/gtm_c.h
|
||||
./include/postgresql/server/cm/etcdapi.h
|
||||
./include/postgresql/server/alarm/alarm.h
|
||||
./include/postgresql/server/access/xact.h
|
||||
./include/postgresql/server/access/cstore_am.h
|
||||
./include/postgresql/server/access/cstore_roughcheck_func.h
|
||||
./include/postgresql/server/access/cstoreskey.h
|
||||
./include/postgresql/server/storage/cu.h
|
||||
./include/postgresql/server/vecexecutor/vectorbatch.h
|
||||
./include/postgresql/server/cstore.h
|
||||
./include/postgresql/server/storage/cstore/cstore_mem_alloc.h
|
||||
./include/postgresql/server/access/cstore_minmax_func.h
|
||||
./include/postgresql/server/storage/custorage.h
|
||||
./include/postgresql/server/storage/fd.h
|
||||
./include/postgresql/server/postmaster/aiocompleter.h
|
||||
./include/postgresql/server/storage/buf/bufmgr.h
|
||||
./include/postgresql/server/storage/buf/buf_internals.h
|
||||
./include/postgresql/server/storage/smgr.h
|
||||
./include/postgresql/server/catalog/pg_am.h
|
||||
./include/postgresql/server/catalog/pg_class.h
|
||||
./include/postgresql/server/catalog/pg_index.h
|
||||
./include/postgresql/server/rewrite/prs2lock.h
|
||||
./include/postgresql/server/tcop/stmt_retry.h
|
||||
./include/postgresql/server/catalog/pg_hashbucket_fn.h
|
||||
./include/postgresql/server/utils/rel_gs.h
|
||||
./include/postgresql/server/catalog/pg_partition.h
|
||||
./include/postgresql/server/catalog/pg_hashbucket.h
|
||||
./include/postgresql/server/catalog/catalog.h
|
||||
./include/postgresql/server/catalog/catversion.h
|
||||
./include/postgresql/server/catalog/pg_namespace.h
|
||||
./include/postgresql/server/utils/partitionmap_gs.h
|
||||
./include/postgresql/server/access/heapam.h
|
||||
./include/postgresql/server/storage/pagecompress.h
|
||||
./include/postgresql/server/replication/bcm.h
|
||||
./include/postgresql/server/storage/cstore/cstorealloc.h
|
||||
./include/postgresql/server/storage/cucache_mgr.h
|
||||
./include/postgresql/server/storage/cache_mgr.h
|
||||
./include/postgresql/server/nodes/plannodes.h
|
||||
./include/postgresql/server/foreign/foreign.h
|
||||
./include/postgresql/server/access/obs/obs_am.h
|
||||
./include/postgresql/server/storage/buf/buffile.h
|
||||
./include/postgresql/server/replication/slot.h
|
||||
./include/postgresql/server/access/obs/eSDKOBS.h
|
||||
./include/postgresql/server/commands/defrem.h
|
||||
./include/postgresql/server/optimizer/pruning.h
|
||||
./include/postgresql/server/nodes/relation.h
|
||||
./include/postgresql/server/optimizer/bucketinfo.h
|
||||
./include/postgresql/server/pgxc/nodemgr.h
|
||||
./include/postgresql/server/bulkload/dist_fdw.h
|
||||
./include/postgresql/server/bulkload/importerror.h
|
||||
./include/postgresql/server/commands/gds_stream.h
|
||||
./include/postgresql/server/bulkload/utils.h
|
||||
./include/postgresql/server/cjson/cJSON.h
|
||||
./include/postgresql/server/ssl/gs_openssl_client.h
|
||||
./include/postgresql/server/funcapi.h
|
||||
./include/postgresql/server/executor/executor.h
|
||||
./include/postgresql/server/executor/execdesc.h
|
||||
./include/postgresql/server/nodes/execnodes.h
|
||||
./include/postgresql/server/access/genam.h
|
||||
./include/postgresql/server/nodes/tidbitmap.h
|
||||
./include/postgresql/server/access/relscan.h
|
||||
./include/postgresql/server/access/itup.h
|
||||
./include/postgresql/server/executor/instrument.h
|
||||
./include/postgresql/server/miscadmin.h
|
||||
./include/postgresql/server/libpq/libpq-be.h
|
||||
./include/postgresql/server/libpq/hba.h
|
||||
./include/postgresql/server/libpq/sha2.h
|
||||
./include/postgresql/server/utils/anls_opt.h
|
||||
./include/postgresql/server/pgxc/pgxc.h
|
||||
./include/postgresql/server/catalog/namespace.h
|
||||
./include/postgresql/server/commands/trigger.h
|
||||
./include/postgresql/server/executor/spi.h
|
||||
./jre/ASSEMBLY_EXCEPTION
|
||||
./jre/bin/java
|
||||
./jre/bin/jjs
|
||||
./jre/bin/keytool
|
||||
./jre/bin/orbd
|
||||
./jre/bin/pack200
|
||||
./jre/bin/policytool
|
||||
./jre/bin/rmid
|
||||
./jre/bin/rmiregistry
|
||||
./jre/bin/servertool
|
||||
./jre/bin/tnameserv
|
||||
./jre/bin/unpack200
|
||||
./jre/lib/amd64/jli/libjli.so
|
||||
./jre/lib/amd64/jvm.cfg
|
||||
./jre/lib/amd64/libattach.so
|
||||
./jre/lib/amd64/libavplugin-ffmpeg-58.so
|
||||
./jre/lib/amd64/libawt_headless.so
|
||||
./jre/lib/amd64/libawt.so
|
||||
./jre/lib/amd64/libawt_xawt.so
|
||||
./jre/lib/amd64/libdecora_sse.so
|
||||
./jre/lib/amd64/libdt_socket.so
|
||||
./jre/lib/amd64/libfontmanager.so
|
||||
./jre/lib/amd64/libfxplugins.so
|
||||
./jre/lib/amd64/libglassgtk2.so
|
||||
./jre/lib/amd64/libglassgtk3.so
|
||||
./jre/lib/amd64/libglass.so
|
||||
./jre/lib/amd64/libgstreamer-lite.so
|
||||
./jre/lib/amd64/libhprof.so
|
||||
./jre/lib/amd64/libinstrument.so
|
||||
./jre/lib/amd64/libj2gss.so
|
||||
./jre/lib/amd64/libj2pcsc.so
|
||||
./jre/lib/amd64/libj2pkcs11.so
|
||||
./jre/lib/amd64/libjaas_unix.so
|
||||
./jre/lib/amd64/libjava_crw_demo.so
|
||||
./jre/lib/amd64/libjavafx_font_freetype.so
|
||||
./jre/lib/amd64/libjavafx_font_pango.so
|
||||
./jre/lib/amd64/libjavafx_font.so
|
||||
./jre/lib/amd64/libjavafx_iio.so
|
||||
./jre/lib/amd64/libjava.so
|
||||
./jre/lib/amd64/libjawt.so
|
||||
./jre/lib/amd64/libjdwp.so
|
||||
./jre/lib/amd64/libjfxmedia.so
|
||||
./jre/lib/amd64/libjfxwebkit.so
|
||||
./jre/lib/amd64/libjpeg.so
|
||||
./jre/lib/amd64/libjsdt.so
|
||||
./jre/lib/amd64/libjsig.so
|
||||
./jre/lib/amd64/libjsoundalsa.so
|
||||
./jre/lib/amd64/libjsound.so
|
||||
./jre/lib/amd64/liblcms.so
|
||||
./jre/lib/amd64/libmanagement.so
|
||||
./jre/lib/amd64/libmlib_image.so
|
||||
./jre/lib/amd64/libnet.so
|
||||
./jre/lib/amd64/libnio.so
|
||||
./jre/lib/amd64/libnpt.so
|
||||
./jre/lib/amd64/libprism_common.so
|
||||
./jre/lib/amd64/libprism_es2.so
|
||||
./jre/lib/amd64/libprism_sw.so
|
||||
./jre/lib/amd64/libsaproc.so
|
||||
./jre/lib/amd64/libsctp.so
|
||||
./jre/lib/amd64/libsplashscreen.so
|
||||
./jre/lib/amd64/libsunec.so
|
||||
./jre/lib/amd64/libunpack.so
|
||||
./jre/lib/amd64/libverify.so
|
||||
./jre/lib/amd64/libzip.so
|
||||
./jre/lib/amd64/server/libjvm.so
|
||||
./jre/lib/amd64/server/Xusage.txt
|
||||
./jre/lib/calendars.properties
|
||||
./jre/lib/charsets.jar
|
||||
./jre/lib/classlist
|
||||
./jre/lib/cmm/CIEXYZ.pf
|
||||
./jre/lib/cmm/GRAY.pf
|
||||
./jre/lib/cmm/LINEAR_RGB.pf
|
||||
./jre/lib/cmm/PYCC.pf
|
||||
./jre/lib/cmm/sRGB.pf
|
||||
./jre/lib/content-types.properties
|
||||
./jre/lib/currency.data
|
||||
./jre/lib/ext/cldrdata.jar
|
||||
./jre/lib/ext/dnsns.jar
|
||||
./jre/lib/ext/jaccess.jar
|
||||
./jre/lib/ext/jfxrt.jar
|
||||
./jre/lib/ext/localedata.jar
|
||||
./jre/lib/ext/meta-index
|
||||
./jre/lib/ext/nashorn.jar
|
||||
./jre/lib/ext/sunec.jar
|
||||
./jre/lib/ext/sunjce_provider.jar
|
||||
./jre/lib/ext/sunpkcs11.jar
|
||||
./jre/lib/ext/zipfs.jar
|
||||
./jre/lib/flavormap.properties
|
||||
./jre/lib/fontconfig.Euler.properties
|
||||
./jre/lib/fontconfig.properties
|
||||
./jre/lib/fontconfig.Ubuntu.properties
|
||||
./jre/lib/fonts/Roboto-Regular.ttf
|
||||
./jre/lib/hijrah-config-umalqura.properties
|
||||
./jre/lib/images/cursors/cursors.properties
|
||||
./jre/lib/images/cursors/invalid32x32.gif
|
||||
./jre/lib/images/cursors/motif_CopyDrop32x32.gif
|
||||
./jre/lib/images/cursors/motif_CopyNoDrop32x32.gif
|
||||
./jre/lib/images/cursors/motif_LinkDrop32x32.gif
|
||||
./jre/lib/images/cursors/motif_LinkNoDrop32x32.gif
|
||||
./jre/lib/images/cursors/motif_MoveDrop32x32.gif
|
||||
./jre/lib/images/cursors/motif_MoveNoDrop32x32.gif
|
||||
./jre/lib/javafx-mx.jar
|
||||
./jre/lib/javafx.properties
|
||||
./jre/lib/jce.jar
|
||||
./jre/lib/jexec
|
||||
./jre/lib/jfr/default.jfc
|
||||
./jre/lib/jfr.jar
|
||||
./jre/lib/jfr/profile.jfc
|
||||
./jre/lib/jfxswt.jar
|
||||
./jre/lib/jsse.jar
|
||||
./jre/lib/jvm.hprof.txt
|
||||
./jre/lib/logging.properties
|
||||
./jre/lib/management-agent.jar
|
||||
./jre/lib/management/jmxremote.access
|
||||
./jre/lib/management/jmxremote.password.template
|
||||
./jre/lib/management/management.properties
|
||||
./jre/lib/management/snmp.acl.template
|
||||
./jre/lib/meta-index
|
||||
./jre/lib/net.properties
|
||||
./jre/lib/psfontj2d.properties
|
||||
./jre/lib/psfont.properties.ja
|
||||
./jre/lib/resources.jar
|
||||
./jre/lib/rt.jar
|
||||
./jre/lib/security/blacklisted.certs
|
||||
./jre/lib/security/cacerts
|
||||
./jre/lib/security/java.policy
|
||||
./jre/lib/security/java.security
|
||||
./jre/lib/security/policy/limited/local_policy.jar
|
||||
./jre/lib/security/policy/limited/US_export_policy.jar
|
||||
./jre/lib/security/policy/unlimited/local_policy.jar
|
||||
./jre/lib/security/policy/unlimited/US_export_policy.jar
|
||||
./jre/lib/sound.properties
|
||||
./jre/lib/tzdb.dat
|
||||
./jre/LICENSE
|
||||
./jre/THIRD_PARTY_README
|
||||
[client]
|
||||
./bin/gsql
|
||||
./bin/gs_dump
|
||||
./bin/gs_dumpall
|
||||
./bin/gs_restore
|
||||
./bin/gs_basebackup
|
||||
./bin/gs_probackup
|
||||
./lib/postgresql/latin2_and_win1250.so
|
||||
./lib/postgresql/euc2004_sjis2004.so
|
||||
./lib/postgresql/euc_kr_and_mic.so
|
||||
./lib/postgresql/utf8_and_uhc.so
|
||||
./lib/postgresql/euc_tw_and_big5.so
|
||||
./lib/postgresql/cyrillic_and_mic.so
|
||||
./lib/postgresql/utf8_and_johab.so
|
||||
./lib/postgresql/utf8_and_gb18030.so
|
||||
./lib/postgresql/pgxs/src/makefiles/pgxs.mk
|
||||
./lib/postgresql/pgxs/src/Makefile.shlib
|
||||
./lib/postgresql/pgxs/src/Makefile.port
|
||||
./lib/postgresql/pgxs/src/nls-global.mk
|
||||
./lib/postgresql/pgxs/src/Makefile.global
|
||||
./lib/postgresql/pgxs/config/install-sh
|
||||
./lib/postgresql/euc_cn_and_mic.so
|
||||
./lib/postgresql/latin_and_mic.so
|
||||
./lib/postgresql/utf8_and_sjis2004.so
|
||||
./lib/postgresql/utf8_and_euc_jp.so
|
||||
./lib/postgresql/utf8_and_sjis.so
|
||||
./lib/postgresql/utf8_and_cyrillic.so
|
||||
./lib/postgresql/utf8_and_euc_kr.so
|
||||
./lib/postgresql/ascii_and_mic.so
|
||||
./lib/postgresql/utf8_and_iso8859_1.so
|
||||
./lib/postgresql/euc_jp_and_sjis.so
|
||||
./lib/postgresql/dict_snowball.so
|
||||
./lib/postgresql/utf8_and_ascii.so
|
||||
./lib/postgresql/utf8_and_euc_tw.so
|
||||
./lib/postgresql/utf8_and_iso8859.so
|
||||
./lib/postgresql/utf8_and_win.so
|
||||
./lib/postgresql/utf8_and_euc_cn.so
|
||||
./lib/postgresql/utf8_and_gbk.so
|
||||
./lib/postgresql/utf8_and_euc2004.so
|
||||
./lib/postgresql/utf8_and_big5.so
|
||||
./lib/postgresql/java/pljava.jar
|
||||
./lib/libpljava.so
|
||||
./lib/libpq.a
|
||||
./lib/libpq.so
|
||||
./lib/libpq.so.5
|
||||
./lib/libpq.so.5.5
|
||||
./lib/libcrypto.so*
|
||||
./lib/libssl.so*
|
||||
[header]
|
||||
./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
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
[libpq]
|
||||
./lib/libpq.a
|
||||
./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
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
./include/gs_thread.h
|
||||
./include/gs_threadlocal.h
|
||||
./include/postgres_ext.h
|
||||
./include/libpq-fe.h
|
||||
./include/libpq-events.h
|
||||
./include/libpq/libpq-fs.h
|
||||
[version]
|
||||
V500R002C00
|
||||
[header]
|
||||
./include/libpq-fe.h
|
||||
./include/postgres_ext.h
|
||||
./include/gs_thread.h
|
||||
|
|
@ -897,10 +1432,14 @@
|
|||
./include/pg_config.h
|
||||
./include/pg_config_manual.h
|
||||
./include/pg_config_os.h
|
||||
./include/cm_config.h
|
||||
./include/c.h
|
||||
./include/port.h
|
||||
./include/cm_msg.h
|
||||
./include/cm_c.h
|
||||
./include/cm_misc.h
|
||||
./include/libpq-int.h
|
||||
./include/pqcomm.h
|
||||
./include/pqexpbuffer.h
|
||||
[version]
|
||||
5.0.0
|
||||
./include/xlogdefs.h
|
||||
./include/cm-libpq-fe.h
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -38,6 +38,7 @@
|
|||
./bin/kadmin.local
|
||||
./bin/lz4
|
||||
./bin/kadmind
|
||||
./bin/dbmind
|
||||
./bin/server.key.cipher
|
||||
./bin/server.key.rand
|
||||
./etc/kerberos/kadm5.acl
|
||||
|
|
@ -79,9 +80,6 @@
|
|||
./share/postgresql/extension/gsredistribute--unpackaged--1.0.sql
|
||||
./share/postgresql/extension/postgres_fdw--1.0.sql
|
||||
./share/postgresql/extension/postgres_fdw.control
|
||||
./share/postgresql/extension/dblink--1.0.sql
|
||||
./share/postgresql/extension/dblink--unpackaged--1.0.sql
|
||||
./share/postgresql/extension/dblink.control
|
||||
./share/postgresql/timezone/GB-Eire
|
||||
./share/postgresql/timezone/Turkey
|
||||
./share/postgresql/timezone/Kwajalein
|
||||
|
|
@ -755,7 +753,6 @@
|
|||
./lib/postgresql/pg_upgrade_support.so
|
||||
./lib/postgresql/java/pljava.jar
|
||||
./lib/postgresql/postgres_fdw.so
|
||||
./lib/postgresql/dblink.so
|
||||
./lib/libpljava.so
|
||||
./lib/libpq.a
|
||||
./lib/libpq.so
|
||||
|
|
@ -868,8 +865,6 @@
|
|||
./lib/libnghttp2.so
|
||||
./lib/libnghttp2.so.14
|
||||
./lib/libnghttp2.so.14.20.0
|
||||
./lib/libpagecompression.so
|
||||
./lib/libpagecompression.so.1
|
||||
./lib/libpcre.so
|
||||
./lib/libpcre.so.1
|
||||
./lib/libpcre.so.1.2.12
|
||||
|
|
@ -884,7 +879,6 @@
|
|||
./lib/postgresql/latin2_and_win1250.so
|
||||
./lib/postgresql/euc2004_sjis2004.so
|
||||
./lib/libhll.so
|
||||
./lib/libodbc.so*
|
||||
|
||||
./include/postgresql/server/postgres_ext.h
|
||||
./include/postgresql/server/pg_config_os.h
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -2,21 +2,46 @@
|
|||
./bin/gsql
|
||||
./bin/gaussdb
|
||||
./bin/gstrace
|
||||
./bin/gs_basebackup
|
||||
./bin/gs_probackup
|
||||
./bin/gs_tar
|
||||
./bin/gs_encrypt
|
||||
./bin/gs_dump
|
||||
./bin/gs_dumpall
|
||||
./bin/gs_ctl
|
||||
./bin/gs_initdb
|
||||
./bin/gs_guc
|
||||
./bin/encrypt
|
||||
./bin/openssl
|
||||
./bin/gs_restore
|
||||
./bin/gs_cgroup
|
||||
./bin/openssl
|
||||
./bin/pg_config
|
||||
./bin/pg_controldata
|
||||
./bin/gs_probackup
|
||||
./bin/pg_format_cu
|
||||
./bin/pg_resetxlog
|
||||
./bin/pg_recvlogical
|
||||
./bin/alarmItem.conf
|
||||
./bin/retry_errcodes.conf
|
||||
./bin/cluster_guc.conf
|
||||
./bin/bind_net_irq.sh
|
||||
./bin/setArmOptimization.sh
|
||||
./bin/krb5kdc
|
||||
./bin/klist
|
||||
./bin/kinit
|
||||
./bin/kdestroy
|
||||
./bin/kdb5_util
|
||||
./bin/kadmin.local
|
||||
./bin/lz4
|
||||
./bin/gs_plan_simulator.sh
|
||||
./bin/kadmind
|
||||
./bin/dbmind
|
||||
./bin/server.key.cipher
|
||||
./bin/server.key.rand
|
||||
./etc/kerberos/kadm5.acl
|
||||
./etc/kerberos/kdc.conf
|
||||
./etc/kerberos/krb5.conf
|
||||
./etc/kerberos/mppdb-site.xml
|
||||
./share/postgresql/tmp/udstools.py
|
||||
./share/postgresql/db4ai
|
||||
./share/postgresql/snowball_create.sql
|
||||
./share/postgresql/pg_hba.conf.sample
|
||||
|
|
@ -28,6 +53,7 @@
|
|||
./share/postgresql/pg_ident.conf.sample
|
||||
./share/postgresql/postgres.description
|
||||
./share/postgresql/postgresql.conf.sample
|
||||
./share/postgresql/mot.conf.sample
|
||||
./share/postgresql/extension/plpgsql--1.0.sql
|
||||
./share/postgresql/extension/hstore.control
|
||||
./share/postgresql/extension/security_plugin.control
|
||||
|
|
@ -41,8 +67,14 @@
|
|||
./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
|
||||
./share/postgresql/extension/mot_fdw.control
|
||||
./share/postgresql/extension/postgres_fdw--1.0.sql
|
||||
./share/postgresql/extension/postgres_fdw.control
|
||||
./share/postgresql/timezone/GB-Eire
|
||||
./share/postgresql/timezone/Turkey
|
||||
./share/postgresql/timezone/Kwajalein
|
||||
|
|
@ -249,6 +281,7 @@
|
|||
./share/postgresql/timezone/Canada/Newfoundland
|
||||
./share/postgresql/timezone/Canada/Saskatchewan
|
||||
./share/postgresql/timezone/Canada/Pacific
|
||||
./share/postgresql/timezone/Canada/East-Saskatchewan
|
||||
./share/postgresql/timezone/Canada/Mountain
|
||||
./share/postgresql/timezone/Canada/Central
|
||||
./share/postgresql/timezone/CST6CDT
|
||||
|
|
@ -669,26 +702,11 @@
|
|||
./share/postgresql/timezonesets/Default
|
||||
./share/postgresql/timezonesets/Etc.txt
|
||||
./share/postgresql/postgres.bki
|
||||
./share/llvmir/GaussDB_expr.ir
|
||||
./share/sslcert/gsql/openssl.cnf
|
||||
./lib/libnuma.so*
|
||||
./lib/libpq.so
|
||||
./lib/libpq.so.5
|
||||
./lib/libpq.so.5.5
|
||||
./lib/libssl.so*
|
||||
./lib/libcrypto.so*
|
||||
./lib/libcgroup.so*
|
||||
./lib/libz.so*
|
||||
./lib/liblz4.so*
|
||||
./lib/libcjson.so*
|
||||
./lib/libcjson_utils.so*
|
||||
./lib/libstdc++.so.6
|
||||
./lib/libgcc_s.so.1
|
||||
./lib/libgomp.so*
|
||||
./lib/libdcf.so
|
||||
./lib/libzstd.so*
|
||||
./lib/libcurl.so*
|
||||
./lib/libxgboost.so
|
||||
./lib/libpagecompression.so*
|
||||
./share/sslcert/grpc/openssl.cnf
|
||||
./share/sslcert/om/openssl.cnf
|
||||
./lib/libsimsearch/
|
||||
./lib/postgresql/latin2_and_win1250.so
|
||||
./lib/postgresql/euc2004_sjis2004.so
|
||||
./lib/postgresql/euc_kr_and_mic.so
|
||||
|
|
@ -697,6 +715,12 @@
|
|||
./lib/postgresql/cyrillic_and_mic.so
|
||||
./lib/postgresql/utf8_and_johab.so
|
||||
./lib/postgresql/utf8_and_gb18030.so
|
||||
./lib/postgresql/pgxs/src/makefiles/pgxs.mk
|
||||
./lib/postgresql/pgxs/src/Makefile.shlib
|
||||
./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
|
||||
|
|
@ -705,7 +729,6 @@
|
|||
./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
|
||||
|
|
@ -720,20 +743,149 @@
|
|||
./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/java/pljava.jar
|
||||
./lib/postgresql/postgres_fdw.so
|
||||
./lib/libpljava.so
|
||||
./lib/libpq.a
|
||||
./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/libcgroup.so
|
||||
./lib/libcgroup.so.1
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
./lib/libatomic.so
|
||||
./lib/libatomic.so.1
|
||||
./lib/libatomic.so.1.2.0
|
||||
./lib/libmasstree.so
|
||||
./lib/libupb.so
|
||||
./lib/libupb.so.9
|
||||
./lib/libupb.so.9.0.0
|
||||
./lib/libabsl_str_format_internal.so
|
||||
./lib/libabsl_strings.so
|
||||
./lib/libabsl_throw_delegate.so
|
||||
./lib/libabsl_strings_internal.so
|
||||
./lib/libabsl_base.so
|
||||
./lib/libabsl_dynamic_annotations.so
|
||||
./lib/libabsl_spinlock_wait.so
|
||||
./lib/libabsl_int128.so
|
||||
./lib/libabsl_bad_optional_access.so
|
||||
./lib/libabsl_raw_logging_internal.so
|
||||
./lib/libabsl_log_severity.so
|
||||
./lib/libaddress_sorting.so
|
||||
./lib/libaddress_sorting.so.9
|
||||
./lib/libgssapi_krb5_gauss.so
|
||||
./lib/libgssapi_krb5_gauss.so.2
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkadm5clnt.so
|
||||
./lib/libkadm5clnt_mit.so
|
||||
./lib/libkadm5clnt_mit.so.11
|
||||
./lib/libkadm5clnt_mit.so.11.0
|
||||
./lib/libkadm5clnt_mit.so.12
|
||||
./lib/libkadm5clnt_mit.so.12.0
|
||||
./lib/libkadm5srv.so
|
||||
./lib/libkadm5srv_mit.so
|
||||
./lib/libkadm5srv_mit.so.11
|
||||
./lib/libkadm5srv_mit.so.11.0
|
||||
./lib/libkadm5srv_mit.so.12
|
||||
./lib/libkadm5srv_mit.so.12.0
|
||||
./lib/libkdb5.so
|
||||
./lib/libkdb5.so.9
|
||||
./lib/libkdb5.so.9.0
|
||||
./lib/libkdb5.so.10
|
||||
./lib/libkdb5.so.10.0
|
||||
./lib/libkrad.so
|
||||
./lib/libkrad.so.0
|
||||
./lib/libkrad.so.0.0
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/krb5/plugins/kdb/db2.so
|
||||
./lib/libverto.so
|
||||
./lib/libverto.so.0
|
||||
./lib/libverto.so.0.0
|
||||
./lib/libcurl.so
|
||||
./lib/libcurl.so.4
|
||||
./lib/libcurl.so.4.6.0
|
||||
./lib/libcrypto.so
|
||||
./lib/libcrypto.so.1.1
|
||||
./lib/libssl.so
|
||||
./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/liblz4.so
|
||||
./lib/liblz4.so.1
|
||||
./lib/liblz4.so.1.9.2
|
||||
./lib/libcjson.so
|
||||
./lib/libcjson.so.1
|
||||
./lib/libcjson.so.1.7.13
|
||||
./lib/libconfig.so
|
||||
./lib/libconfig.so.4
|
||||
./lib/libpgport_tool.so
|
||||
./lib/libpgport_tool.so.1
|
||||
./share/llvmir/GaussDB_expr.ir
|
||||
./lib/libeSDKLogAPI.so
|
||||
./lib/libeSDKOBS.so
|
||||
./lib/liblog4cpp.so
|
||||
./lib/liblog4cpp.so.5
|
||||
./lib/liblog4cpp.so.5.0.6
|
||||
./lib/libcharset.so
|
||||
./lib/libcharset.so.1
|
||||
./lib/libcharset.so.1.0.0
|
||||
./lib/libiconv.so
|
||||
./lib/libiconv.so.2
|
||||
./lib/libiconv.so.2.6.1
|
||||
./lib/libnghttp2.so
|
||||
./lib/libnghttp2.so.14
|
||||
./lib/libnghttp2.so.14.20.0
|
||||
./lib/libpcre.so
|
||||
./lib/libpcre.so.1
|
||||
./lib/libpcre.so.1.2.12
|
||||
./lib/libsecurec.so
|
||||
./lib/libxml2.so
|
||||
./lib/libxml2.so.2
|
||||
./lib/libxml2.so.2.9.9
|
||||
./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
|
||||
./lib/postgresql/pgoutput.so
|
||||
./lib/libdcf.so
|
||||
./lib/libzstd.so
|
||||
./lib/libzstd.so.1
|
||||
./lib/libzstd.so.1.4.4
|
||||
|
||||
|
||||
./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
|
||||
|
|
@ -822,7 +974,6 @@
|
|||
./include/postgresql/server/utils/aset.h
|
||||
./include/postgresql/server/utils/catcache.h
|
||||
./include/postgresql/server/utils/atomic_arm.h
|
||||
./include/postgresql/server/utils/oidrbtree.h
|
||||
./include/postgresql/server/datatype/timestamp.h
|
||||
./include/postgresql/server/access/rmgr.h
|
||||
./include/postgresql/server/access/xlogreader.h
|
||||
|
|
@ -834,7 +985,6 @@
|
|||
./include/postgresql/server/access/attnum.h
|
||||
./include/postgresql/server/access/tupmacs.h
|
||||
./include/postgresql/server/access/xlogrecord.h
|
||||
./include/postgresql/server/tde_key_management/data_common.h
|
||||
./include/postgresql/server/tcop/dest.h
|
||||
./include/postgresql/server/catalog/pg_type.h
|
||||
./include/postgresql/server/catalog/pg_attribute.h
|
||||
|
|
@ -858,7 +1008,6 @@
|
|||
./include/postgresql/server/storage/backendid.h
|
||||
./include/postgresql/server/storage/lock/lock.h
|
||||
./include/postgresql/server/storage/lock/lwlock.h
|
||||
./include/postgresql/server/storage/lwlocknames.h
|
||||
./include/postgresql/server/storage/barrier.h
|
||||
./include/postgresql/server/storage/shmem.h
|
||||
./include/postgresql/server/pg_config.h
|
||||
|
|
@ -882,15 +1031,401 @@
|
|||
./include/postgresql/server/lib/ilist.h
|
||||
./include/postgresql/server/pgxc/locator.h
|
||||
./include/postgresql/server/gstrace/gstrace_infra.h
|
||||
./include/postgresql/server/db4ai/db4ai.h
|
||||
[libpq]
|
||||
./include/postgresql/server/extension_dependency.h
|
||||
./include/postgresql/server/libpq/libpq-fe.h
|
||||
./include/postgresql/server/access/clog.h
|
||||
./include/postgresql/server/storage/proc.h
|
||||
./include/postgresql/server/access/xlog.h
|
||||
./include/postgresql/server/storage/lwlocknames.h
|
||||
./include/postgresql/server/access/xloginsert.h
|
||||
./include/postgresql/server/catalog/pg_control.h
|
||||
./include/postgresql/server/access/parallel_recovery/redo_item.h
|
||||
./include/postgresql/server/access/parallel_recovery/posix_semaphore.h
|
||||
./include/postgresql/server/replication/replicainternal.h
|
||||
./include/postgresql/server/knl/knl_instance.h
|
||||
./include/postgresql/server/knl/knl_guc.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_sql.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_guc_common.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_sql.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_storage.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_storage.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_storage.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_security.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_security.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_network.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_network.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_memory.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_memory.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_resource.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_resource.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_session_attr_common.h
|
||||
./include/postgresql/server/knl/knl_guc/knl_instance_attr_common.h
|
||||
./include/postgresql/server/lib/circularqueue.h
|
||||
./include/postgresql/server/access/double_write_basic.h
|
||||
./include/postgresql/server/knl/knl_thread.h
|
||||
./include/postgresql/server/access/sdir.h
|
||||
./include/postgresql/server/gssignal/gs_signal.h
|
||||
./include/postgresql/server/knl/knl_session.h
|
||||
./include/postgresql/server/libpq/pqcomm.h
|
||||
./include/postgresql/server/cipher.h
|
||||
./include/postgresql/server/portability/instr_time.h
|
||||
./include/postgresql/server/utils/memgroup.h
|
||||
./include/postgresql/server/storage/latch.h
|
||||
./include/postgresql/server/workload/qnode.h
|
||||
./include/postgresql/server/streaming/init.h
|
||||
./include/postgresql/server/streaming/launcher.h
|
||||
./include/postgresql/server/pgxc/barrier.h
|
||||
./include/postgresql/server/libcomm/libcomm.h
|
||||
./include/postgresql/server/hotpatch/hotpatch.h
|
||||
./include/postgresql/server/hotpatch/hotpatch_backend.h
|
||||
./include/postgresql/server/postmaster/bgwriter.h
|
||||
./include/postgresql/server/postmaster/pagewriter.h
|
||||
./include/postgresql/server/replication/heartbeat.h
|
||||
./include/postgresql/server/access/multi_redo_settings.h
|
||||
./include/postgresql/server/access/redo_statistic_msg.h
|
||||
./include/postgresql/server/replication/rto_statistic.h
|
||||
./include/postgresql/server/replication/walprotocol.h
|
||||
./include/postgresql/server/storage/mot/jit_def.h
|
||||
./include/postgresql/server/threadpool/threadpool.h
|
||||
./include/postgresql/server/threadpool/threadpool_controler.h
|
||||
./include/postgresql/server/threadpool/threadpool_group.h
|
||||
./include/postgresql/server/knl/knl_variable.h
|
||||
./include/postgresql/server/threadpool/threadpool_listener.h
|
||||
./include/postgresql/server/threadpool/threadpool_sessctl.h
|
||||
./include/postgresql/server/storage/procsignal.h
|
||||
./include/postgresql/server/threadpool/threadpool_worker.h
|
||||
./include/postgresql/server/threadpool/threadpool_scheduler.h
|
||||
./include/postgresql/server/threadpool/threadpool_stream.h
|
||||
./include/postgresql/server/replication/dataqueuedefs.h
|
||||
./include/postgresql/server/gtm/gtm_c.h
|
||||
./include/postgresql/server/cm/etcdapi.h
|
||||
./include/postgresql/server/alarm/alarm.h
|
||||
./include/postgresql/server/access/xact.h
|
||||
./include/postgresql/server/access/cstore_am.h
|
||||
./include/postgresql/server/access/cstore_roughcheck_func.h
|
||||
./include/postgresql/server/access/cstoreskey.h
|
||||
./include/postgresql/server/storage/cu.h
|
||||
./include/postgresql/server/vecexecutor/vectorbatch.h
|
||||
./include/postgresql/server/cstore.h
|
||||
./include/postgresql/server/storage/cstore/cstore_mem_alloc.h
|
||||
./include/postgresql/server/access/cstore_minmax_func.h
|
||||
./include/postgresql/server/storage/custorage.h
|
||||
./include/postgresql/server/storage/fd.h
|
||||
./include/postgresql/server/postmaster/aiocompleter.h
|
||||
./include/postgresql/server/storage/buf/bufmgr.h
|
||||
./include/postgresql/server/storage/buf/buf_internals.h
|
||||
./include/postgresql/server/storage/smgr.h
|
||||
./include/postgresql/server/catalog/pg_am.h
|
||||
./include/postgresql/server/catalog/pg_class.h
|
||||
./include/postgresql/server/catalog/pg_index.h
|
||||
./include/postgresql/server/rewrite/prs2lock.h
|
||||
./include/postgresql/server/tcop/stmt_retry.h
|
||||
./include/postgresql/server/catalog/pg_hashbucket_fn.h
|
||||
./include/postgresql/server/utils/rel_gs.h
|
||||
./include/postgresql/server/catalog/pg_partition.h
|
||||
./include/postgresql/server/catalog/pg_hashbucket.h
|
||||
./include/postgresql/server/catalog/catalog.h
|
||||
./include/postgresql/server/catalog/catversion.h
|
||||
./include/postgresql/server/catalog/pg_namespace.h
|
||||
./include/postgresql/server/utils/partitionmap_gs.h
|
||||
./include/postgresql/server/access/heapam.h
|
||||
./include/postgresql/server/storage/pagecompress.h
|
||||
./include/postgresql/server/replication/bcm.h
|
||||
./include/postgresql/server/storage/cstore/cstorealloc.h
|
||||
./include/postgresql/server/storage/cucache_mgr.h
|
||||
./include/postgresql/server/storage/cache_mgr.h
|
||||
./include/postgresql/server/nodes/plannodes.h
|
||||
./include/postgresql/server/foreign/foreign.h
|
||||
./include/postgresql/server/access/obs/obs_am.h
|
||||
./include/postgresql/server/storage/buf/buffile.h
|
||||
./include/postgresql/server/replication/slot.h
|
||||
./include/postgresql/server/access/obs/eSDKOBS.h
|
||||
./include/postgresql/server/commands/defrem.h
|
||||
./include/postgresql/server/optimizer/pruning.h
|
||||
./include/postgresql/server/nodes/relation.h
|
||||
./include/postgresql/server/optimizer/bucketinfo.h
|
||||
./include/postgresql/server/pgxc/nodemgr.h
|
||||
./include/postgresql/server/bulkload/dist_fdw.h
|
||||
./include/postgresql/server/bulkload/importerror.h
|
||||
./include/postgresql/server/commands/gds_stream.h
|
||||
./include/postgresql/server/bulkload/utils.h
|
||||
./include/postgresql/server/cjson/cJSON.h
|
||||
./include/postgresql/server/ssl/gs_openssl_client.h
|
||||
./include/postgresql/server/funcapi.h
|
||||
./include/postgresql/server/executor/executor.h
|
||||
./include/postgresql/server/executor/execdesc.h
|
||||
./include/postgresql/server/nodes/execnodes.h
|
||||
./include/postgresql/server/access/genam.h
|
||||
./include/postgresql/server/nodes/tidbitmap.h
|
||||
./include/postgresql/server/access/relscan.h
|
||||
./include/postgresql/server/access/itup.h
|
||||
./include/postgresql/server/executor/instrument.h
|
||||
./include/postgresql/server/miscadmin.h
|
||||
./include/postgresql/server/libpq/libpq-be.h
|
||||
./include/postgresql/server/libpq/hba.h
|
||||
./include/postgresql/server/libpq/sha2.h
|
||||
./include/postgresql/server/utils/anls_opt.h
|
||||
./include/postgresql/server/pgxc/pgxc.h
|
||||
./include/postgresql/server/catalog/namespace.h
|
||||
./include/postgresql/server/commands/trigger.h
|
||||
./include/postgresql/server/executor/spi.h
|
||||
./jre/ASSEMBLY_EXCEPTION
|
||||
./jre/bin/java
|
||||
./jre/bin/jjs
|
||||
./jre/bin/keytool
|
||||
./jre/bin/orbd
|
||||
./jre/bin/pack200
|
||||
./jre/bin/policytool
|
||||
./jre/bin/rmid
|
||||
./jre/bin/rmiregistry
|
||||
./jre/bin/servertool
|
||||
./jre/bin/tnameserv
|
||||
./jre/bin/unpack200
|
||||
./jre/lib/amd64/jli/libjli.so
|
||||
./jre/lib/amd64/jvm.cfg
|
||||
./jre/lib/amd64/libattach.so
|
||||
./jre/lib/amd64/libavplugin-ffmpeg-58.so
|
||||
./jre/lib/amd64/libawt_headless.so
|
||||
./jre/lib/amd64/libawt.so
|
||||
./jre/lib/amd64/libawt_xawt.so
|
||||
./jre/lib/amd64/libdecora_sse.so
|
||||
./jre/lib/amd64/libdt_socket.so
|
||||
./jre/lib/amd64/libfontmanager.so
|
||||
./jre/lib/amd64/libfxplugins.so
|
||||
./jre/lib/amd64/libglassgtk2.so
|
||||
./jre/lib/amd64/libglassgtk3.so
|
||||
./jre/lib/amd64/libglass.so
|
||||
./jre/lib/amd64/libgstreamer-lite.so
|
||||
./jre/lib/amd64/libhprof.so
|
||||
./jre/lib/amd64/libinstrument.so
|
||||
./jre/lib/amd64/libj2gss.so
|
||||
./jre/lib/amd64/libj2pcsc.so
|
||||
./jre/lib/amd64/libj2pkcs11.so
|
||||
./jre/lib/amd64/libjaas_unix.so
|
||||
./jre/lib/amd64/libjava_crw_demo.so
|
||||
./jre/lib/amd64/libjavafx_font_freetype.so
|
||||
./jre/lib/amd64/libjavafx_font_pango.so
|
||||
./jre/lib/amd64/libjavafx_font.so
|
||||
./jre/lib/amd64/libjavafx_iio.so
|
||||
./jre/lib/amd64/libjava.so
|
||||
./jre/lib/amd64/libjawt.so
|
||||
./jre/lib/amd64/libjdwp.so
|
||||
./jre/lib/amd64/libjfxmedia.so
|
||||
./jre/lib/amd64/libjfxwebkit.so
|
||||
./jre/lib/amd64/libjpeg.so
|
||||
./jre/lib/amd64/libjsdt.so
|
||||
./jre/lib/amd64/libjsig.so
|
||||
./jre/lib/amd64/libjsoundalsa.so
|
||||
./jre/lib/amd64/libjsound.so
|
||||
./jre/lib/amd64/liblcms.so
|
||||
./jre/lib/amd64/libmanagement.so
|
||||
./jre/lib/amd64/libmlib_image.so
|
||||
./jre/lib/amd64/libnet.so
|
||||
./jre/lib/amd64/libnio.so
|
||||
./jre/lib/amd64/libnpt.so
|
||||
./jre/lib/amd64/libprism_common.so
|
||||
./jre/lib/amd64/libprism_es2.so
|
||||
./jre/lib/amd64/libprism_sw.so
|
||||
./jre/lib/amd64/libsaproc.so
|
||||
./jre/lib/amd64/libsctp.so
|
||||
./jre/lib/amd64/libsplashscreen.so
|
||||
./jre/lib/amd64/libsunec.so
|
||||
./jre/lib/amd64/libunpack.so
|
||||
./jre/lib/amd64/libverify.so
|
||||
./jre/lib/amd64/libzip.so
|
||||
./jre/lib/amd64/server/libjvm.so
|
||||
./jre/lib/amd64/server/Xusage.txt
|
||||
./jre/lib/calendars.properties
|
||||
./jre/lib/charsets.jar
|
||||
./jre/lib/classlist
|
||||
./jre/lib/cmm/CIEXYZ.pf
|
||||
./jre/lib/cmm/GRAY.pf
|
||||
./jre/lib/cmm/LINEAR_RGB.pf
|
||||
./jre/lib/cmm/PYCC.pf
|
||||
./jre/lib/cmm/sRGB.pf
|
||||
./jre/lib/content-types.properties
|
||||
./jre/lib/currency.data
|
||||
./jre/lib/ext/cldrdata.jar
|
||||
./jre/lib/ext/dnsns.jar
|
||||
./jre/lib/ext/jaccess.jar
|
||||
./jre/lib/ext/jfxrt.jar
|
||||
./jre/lib/ext/localedata.jar
|
||||
./jre/lib/ext/meta-index
|
||||
./jre/lib/ext/nashorn.jar
|
||||
./jre/lib/ext/sunec.jar
|
||||
./jre/lib/ext/sunjce_provider.jar
|
||||
./jre/lib/ext/sunpkcs11.jar
|
||||
./jre/lib/ext/zipfs.jar
|
||||
./jre/lib/flavormap.properties
|
||||
./jre/lib/fontconfig.Euler.properties
|
||||
./jre/lib/fontconfig.properties
|
||||
./jre/lib/fontconfig.Ubuntu.properties
|
||||
./jre/lib/fonts/Roboto-Regular.ttf
|
||||
./jre/lib/hijrah-config-umalqura.properties
|
||||
./jre/lib/images/cursors/cursors.properties
|
||||
./jre/lib/images/cursors/invalid32x32.gif
|
||||
./jre/lib/images/cursors/motif_CopyDrop32x32.gif
|
||||
./jre/lib/images/cursors/motif_CopyNoDrop32x32.gif
|
||||
./jre/lib/images/cursors/motif_LinkDrop32x32.gif
|
||||
./jre/lib/images/cursors/motif_LinkNoDrop32x32.gif
|
||||
./jre/lib/images/cursors/motif_MoveDrop32x32.gif
|
||||
./jre/lib/images/cursors/motif_MoveNoDrop32x32.gif
|
||||
./jre/lib/javafx-mx.jar
|
||||
./jre/lib/javafx.properties
|
||||
./jre/lib/jce.jar
|
||||
./jre/lib/jexec
|
||||
./jre/lib/jfr/default.jfc
|
||||
./jre/lib/jfr.jar
|
||||
./jre/lib/jfr/profile.jfc
|
||||
./jre/lib/jfxswt.jar
|
||||
./jre/lib/jsse.jar
|
||||
./jre/lib/jvm.hprof.txt
|
||||
./jre/lib/logging.properties
|
||||
./jre/lib/management-agent.jar
|
||||
./jre/lib/management/jmxremote.access
|
||||
./jre/lib/management/jmxremote.password.template
|
||||
./jre/lib/management/management.properties
|
||||
./jre/lib/management/snmp.acl.template
|
||||
./jre/lib/meta-index
|
||||
./jre/lib/net.properties
|
||||
./jre/lib/psfontj2d.properties
|
||||
./jre/lib/psfont.properties.ja
|
||||
./jre/lib/resources.jar
|
||||
./jre/lib/rt.jar
|
||||
./jre/lib/security/blacklisted.certs
|
||||
./jre/lib/security/cacerts
|
||||
./jre/lib/security/java.policy
|
||||
./jre/lib/security/java.security
|
||||
./jre/lib/security/policy/limited/local_policy.jar
|
||||
./jre/lib/security/policy/limited/US_export_policy.jar
|
||||
./jre/lib/security/policy/unlimited/local_policy.jar
|
||||
./jre/lib/security/policy/unlimited/US_export_policy.jar
|
||||
./jre/lib/sound.properties
|
||||
./jre/lib/tzdb.dat
|
||||
./jre/LICENSE
|
||||
./jre/THIRD_PARTY_README
|
||||
[client]
|
||||
./bin/gsql
|
||||
./bin/gs_dump
|
||||
./bin/gs_dumpall
|
||||
./bin/gs_restore
|
||||
./bin/gs_basebackup
|
||||
./bin/gs_probackup
|
||||
./lib/postgresql/latin2_and_win1250.so
|
||||
./lib/postgresql/euc2004_sjis2004.so
|
||||
./lib/postgresql/euc_kr_and_mic.so
|
||||
./lib/postgresql/utf8_and_uhc.so
|
||||
./lib/postgresql/euc_tw_and_big5.so
|
||||
./lib/postgresql/cyrillic_and_mic.so
|
||||
./lib/postgresql/utf8_and_johab.so
|
||||
./lib/postgresql/utf8_and_gb18030.so
|
||||
./lib/postgresql/pgxs/src/makefiles/pgxs.mk
|
||||
./lib/postgresql/pgxs/src/Makefile.shlib
|
||||
./lib/postgresql/pgxs/src/Makefile.port
|
||||
./lib/postgresql/pgxs/src/nls-global.mk
|
||||
./lib/postgresql/pgxs/src/Makefile.global
|
||||
./lib/postgresql/pgxs/config/install-sh
|
||||
./lib/postgresql/euc_cn_and_mic.so
|
||||
./lib/postgresql/latin_and_mic.so
|
||||
./lib/postgresql/utf8_and_sjis2004.so
|
||||
./lib/postgresql/utf8_and_euc_jp.so
|
||||
./lib/postgresql/utf8_and_sjis.so
|
||||
./lib/postgresql/utf8_and_cyrillic.so
|
||||
./lib/postgresql/utf8_and_euc_kr.so
|
||||
./lib/postgresql/ascii_and_mic.so
|
||||
./lib/postgresql/utf8_and_iso8859_1.so
|
||||
./lib/postgresql/euc_jp_and_sjis.so
|
||||
./lib/postgresql/dict_snowball.so
|
||||
./lib/postgresql/utf8_and_ascii.so
|
||||
./lib/postgresql/utf8_and_euc_tw.so
|
||||
./lib/postgresql/utf8_and_iso8859.so
|
||||
./lib/postgresql/utf8_and_win.so
|
||||
./lib/postgresql/utf8_and_euc_cn.so
|
||||
./lib/postgresql/utf8_and_gbk.so
|
||||
./lib/postgresql/utf8_and_euc2004.so
|
||||
./lib/postgresql/utf8_and_big5.so
|
||||
./lib/postgresql/java/pljava.jar
|
||||
./lib/libpljava.so
|
||||
./lib/libpq.a
|
||||
./lib/libpq.so
|
||||
./lib/libpq.so.5
|
||||
./lib/libpq.so.5.5
|
||||
./lib/libcrypto.so*
|
||||
./lib/libssl.so*
|
||||
[header]
|
||||
./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
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
[libpq]
|
||||
./lib/libpq.a
|
||||
./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
|
||||
./lib/libgssapi_krb5_gauss.so.2.2
|
||||
./lib/libgssrpc_gauss.so
|
||||
./lib/libgssrpc_gauss.so.4
|
||||
./lib/libgssrpc_gauss.so.4.2
|
||||
./lib/libk5crypto_gauss.so
|
||||
./lib/libk5crypto_gauss.so.3
|
||||
./lib/libk5crypto_gauss.so.3.1
|
||||
./lib/libkrb5support_gauss.so
|
||||
./lib/libkrb5support_gauss.so.0
|
||||
./lib/libkrb5support_gauss.so.0.1
|
||||
./lib/libkrb5_gauss.so
|
||||
./lib/libkrb5_gauss.so.3
|
||||
./lib/libkrb5_gauss.so.3.3
|
||||
./lib/libcom_err_gauss.so
|
||||
./lib/libcom_err_gauss.so.3
|
||||
./lib/libcom_err_gauss.so.3.0
|
||||
./include/gs_thread.h
|
||||
./include/gs_threadlocal.h
|
||||
./include/postgres_ext.h
|
||||
./include/libpq-fe.h
|
||||
./include/libpq-events.h
|
||||
./include/libpq/libpq-fs.h
|
||||
[version]
|
||||
V500R002C00
|
||||
[header]
|
||||
./include/libpq-fe.h
|
||||
./include/postgres_ext.h
|
||||
./include/gs_thread.h
|
||||
|
|
@ -898,10 +1433,14 @@
|
|||
./include/pg_config.h
|
||||
./include/pg_config_manual.h
|
||||
./include/pg_config_os.h
|
||||
./include/cm_config.h
|
||||
./include/c.h
|
||||
./include/port.h
|
||||
./include/cm_msg.h
|
||||
./include/cm_c.h
|
||||
./include/cm_misc.h
|
||||
./include/libpq-int.h
|
||||
./include/pqcomm.h
|
||||
./include/pqexpbuffer.h
|
||||
[version]
|
||||
5.0.0
|
||||
./include/xlogdefs.h
|
||||
./include/cm-libpq-fe.h
|
||||
|
|
@ -37,10 +37,9 @@
|
|||
./bin/kadmin.local
|
||||
./bin/lz4
|
||||
./bin/kadmind
|
||||
./bin/gs_dbmind
|
||||
./bin/dbmind
|
||||
./bin/server.key.cipher
|
||||
./bin/server.key.rand
|
||||
./bin/gs_plan_simulator.sh
|
||||
./etc/kerberos/kadm5.acl
|
||||
./etc/kerberos/kdc.conf
|
||||
./etc/kerberos/krb5.conf
|
||||
|
|
@ -60,8 +59,6 @@
|
|||
./share/postgresql/extension/hstore.control
|
||||
./share/postgresql/extension/security_plugin.control
|
||||
./share/postgresql/extension/security_plugin--1.0.sql
|
||||
./share/postgresql/extension/dolphin.control
|
||||
./share/postgresql/extension/dolphin--1.0.sql
|
||||
./share/postgresql/extension/file_fdw--1.0.sql
|
||||
./share/postgresql/extension/plpgsql.control
|
||||
./share/postgresql/extension/dist_fdw.control
|
||||
|
|
@ -82,9 +79,6 @@
|
|||
./share/postgresql/extension/gsredistribute--unpackaged--1.0.sql
|
||||
./share/postgresql/extension/postgres_fdw--1.0.sql
|
||||
./share/postgresql/extension/postgres_fdw.control
|
||||
./share/postgresql/extension/dblink--1.0.sql
|
||||
./share/postgresql/extension/dblink--unpackaged--1.0.sql
|
||||
./share/postgresql/extension/dblink.control
|
||||
./share/postgresql/timezone/GB-Eire
|
||||
./share/postgresql/timezone/Turkey
|
||||
./share/postgresql/timezone/Kwajalein
|
||||
|
|
@ -754,11 +748,9 @@
|
|||
./lib/postgresql/pg_plugin
|
||||
./lib/postgresql/proc_srclib
|
||||
./lib/postgresql/security_plugin.so
|
||||
./lib/postgresql/dolphin.so
|
||||
./lib/postgresql/pg_upgrade_support.so
|
||||
./lib/postgresql/java/pljava.jar
|
||||
./lib/postgresql/postgres_fdw.so
|
||||
./lib/postgresql/dblink.so
|
||||
./lib/libpljava.so
|
||||
./lib/libpq.a
|
||||
./lib/libpq.so
|
||||
|
|
@ -871,8 +863,6 @@
|
|||
./lib/libnghttp2.so
|
||||
./lib/libnghttp2.so.14
|
||||
./lib/libnghttp2.so.14.20.0
|
||||
./lib/libpagecompression.so
|
||||
./lib/libpagecompression.so.1
|
||||
./lib/libpcre.so
|
||||
./lib/libpcre.so.1
|
||||
./lib/libpcre.so.1.2.12
|
||||
|
|
@ -887,7 +877,6 @@
|
|||
./lib/postgresql/latin2_and_win1250.so
|
||||
./lib/postgresql/euc2004_sjis2004.so
|
||||
./lib/libhll.so
|
||||
./lib/libodbc.so*
|
||||
|
||||
./include/postgresql/server/postgres_ext.h
|
||||
./include/postgresql/server/pg_config_os.h
|
||||
|
|
@ -1040,67 +1029,6 @@
|
|||
./include/postgresql/server/pgxc/locator.h
|
||||
./include/postgresql/server/gstrace/gstrace_infra.h
|
||||
./include/postgresql/server/extension_dependency.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundotype.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundoapi.h
|
||||
./include/postgresql/server/access/ustore/knl_uheap.h
|
||||
./include/postgresql/server/access/ustore/knl_utuple.h
|
||||
./include/postgresql/server/access/ustore/knl_utype.h
|
||||
./include/postgresql/server/access/ustore/knl_upage.h
|
||||
./include/postgresql/server/access/ustore/knl_uredo.h
|
||||
./include/postgresql/server/access/ustore/knl_uundovec.h
|
||||
./include/postgresql/server/access/ustore/knl_uundorecord.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundoxlog.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundotxn.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundozone.h
|
||||
./include/postgresql/server/access/ustore/undo/knl_uundospace.h
|
||||
./include/postgresql/server/access/ustore/knl_uverify.h
|
||||
./include/postgresql/server/communication/commproxy_basic.h
|
||||
./include/postgresql/server/access/parallel_recovery/page_redo.h
|
||||
./include/postgresql/server/access/parallel_recovery/spsc_blocking_queue.h
|
||||
./include/postgresql/server/executor/exec/execdesc.h
|
||||
./include/postgresql/server/db4ai/matrix.h
|
||||
./include/postgresql/server/db4ai/scores.h
|
||||
./include/postgresql/server/db4ai/db4ai.h
|
||||
./include/postgresql/server/instruments/gs_stack.h
|
||||
./include/postgresql/server/instruments/instr_mfchain.h
|
||||
./include/postgresql/server/access/multixact.h
|
||||
./include/postgresql/server/access/xlogutils.h
|
||||
./include/postgresql/server/executor/functions.h
|
||||
./include/postgresql/server/storage/lock/waitpolicy.h
|
||||
./include/postgresql/server/storage/page_compression.h
|
||||
./include/postgresql/server/storage/smgr/knl_usync.h
|
||||
./include/postgresql/server/storage/smgr/fd.h
|
||||
./include/postgresql/server/storage/smgr/smgr.h
|
||||
./include/postgresql/server/storage/sharedfileset.h
|
||||
./include/postgresql/server/utils/knl_globalsysdbcache.h
|
||||
./include/postgresql/server/utils/knl_globaldbstatmanager.h
|
||||
./include/postgresql/server/utils/knl_globalsyscache_common.h
|
||||
./include/postgresql/server/utils/knl_globalbucketlist.h
|
||||
./include/postgresql/server/utils/knl_globalsystabcache.h
|
||||
./include/postgresql/server/utils/knl_globalsystupcache.h
|
||||
./include/postgresql/server/utils/knl_globaltabdefcache.h
|
||||
./include/postgresql/server/utils/knl_globalbasedefcache.h
|
||||
./include/postgresql/server/utils/knl_globalpartdefcache.h
|
||||
./include/postgresql/server/utils/knl_globalrelmapcache.h
|
||||
./include/postgresql/server/utils/knl_localsysdbcache.h
|
||||
./include/postgresql/server/utils/knl_localsystabcache.h
|
||||
./include/postgresql/server/utils/knl_localsystupcache.h
|
||||
./include/postgresql/server/utils/knl_localsyscache_common.h
|
||||
./include/postgresql/server/utils/knl_localtabdefcache.h
|
||||
./include/postgresql/server/utils/knl_localbasedefcache.h
|
||||
./include/postgresql/server/utils/knl_localbucketlist.h
|
||||
./include/postgresql/server/utils/knl_localpartdefcache.h
|
||||
./include/postgresql/server/utils/pl_global_package_runtime_cache.h
|
||||
./include/postgresql/server/catalog/pg_tablespace.h
|
||||
./include/postgresql/server/catalog/pg_subscription.h
|
||||
./include/postgresql/server/catalog/pg_replication_origin.h
|
||||
./include/postgresql/server/postmaster/barrier_creator.h
|
||||
./include/postgresql/server/postmaster/pagerepair.h
|
||||
./include/postgresql/server/replication/libpqwalreceiver.h
|
||||
./include/postgresql/server/replication/worker_internal.h
|
||||
./include/postgresql/server/replication/origin.h
|
||||
./include/postgresql/server/parser/scanner.h
|
||||
./include/postgresql/server/parser/keywords.h
|
||||
./jre/ASSEMBLY_EXCEPTION
|
||||
./jre/bin/java
|
||||
./jre/bin/jjs
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,5 +1,5 @@
|
|||
#!/bin/bash
|
||||
#######################################################################
|
||||
#############################################################################
|
||||
# Copyright (c) 2020 Huawei Technologies Co.,Ltd.
|
||||
#
|
||||
# openGauss is licensed under Mulan PSL v2.
|
||||
|
|
@ -14,42 +14,65 @@
|
|||
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
# ----------------------------------------------------------------------------
|
||||
# descript: Compile and pack GaussDB
|
||||
# Return 0 means OK.
|
||||
# Return 1 means failed.
|
||||
# version: 2.0
|
||||
# date: 2021-02-28
|
||||
#######################################################################
|
||||
# Description : gs_backup is a utility to back up or restore binary files and parameter files.
|
||||
#############################################################################
|
||||
|
||||
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'
|
||||
declare binarylib_dir='None'
|
||||
declare om_dir='None'
|
||||
declare cm_dir='None'
|
||||
declare show_package='false'
|
||||
declare install_package_format='tar'
|
||||
declare config_file=''
|
||||
|
||||
function print_help()
|
||||
{
|
||||
echo "Usage: $0 [OPTION]
|
||||
-h|--help show help information.
|
||||
-3rd|--binarylib_dir the directory of third party binarylibs.
|
||||
-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 this values of paramenter is opengauss or lite, the default value is opengauss.
|
||||
"
|
||||
}
|
||||
#detect platform information.
|
||||
PLATFORM=32
|
||||
bit=$(getconf LONG_BIT)
|
||||
if [ "$bit" -eq 64 ]; then
|
||||
PLATFORM=64
|
||||
fi
|
||||
|
||||
if [ $# = 0 ] ; then
|
||||
echo "missing option"
|
||||
print_help
|
||||
#get OS distributed version.
|
||||
kernel=""
|
||||
version=""
|
||||
if [ -f "/etc/openEuler-release" ]
|
||||
then
|
||||
kernel=$(cat /etc/openEuler-release | awk -F ' ' '{print $1}' | tr A-Z a-z)
|
||||
version=$(cat /etc/openEuler-release | awk -F '(' '{print $2}'| awk -F ')' '{print $1}' | tr A-Z a-z)
|
||||
elif [ -f "/etc/centos-release" ]
|
||||
then
|
||||
kernel=$(cat /etc/centos-release | awk -F ' ' '{print $1}' | tr A-Z a-z)
|
||||
version=$(cat /etc/centos-release | awk -F '(' '{print $2}'| awk -F ')' '{print $1}' | tr A-Z a-z)
|
||||
elif [ -f "/etc/euleros-release" ]
|
||||
then
|
||||
kernel=$(cat /etc/centos-release | awk -F ' ' '{print $1}' | tr A-Z a-z)
|
||||
version=$(cat /etc/centos-release | awk -F '(' '{print $2}'| awk -F ')' '{print $1}' | tr A-Z a-z)
|
||||
else
|
||||
kernel=$(lsb_release -d | awk -F ' ' '{print $2}'| tr A-Z a-z)
|
||||
version=$(lsb_release -r | awk -F ' ' '{print $2}')
|
||||
fi
|
||||
|
||||
## to solve kernel="name=openeuler"
|
||||
if echo $kernel | grep -q 'openeuler'
|
||||
then
|
||||
kernel="openeuler"
|
||||
fi
|
||||
|
||||
if [ X"$kernel" == X"centos" ]; then
|
||||
dist_version="CentOS"
|
||||
elif [ X"$kernel" == X"openeuler" ]; then
|
||||
dist_version="openEuler"
|
||||
elif [ X"$kernel" == X"euleros" ]; then
|
||||
dist_version="EulerOS"
|
||||
elif [ X"$kernel" == X"kylin" ]; then
|
||||
dist_version="Kylin"
|
||||
elif [ X"$kernel" = X"ubuntu" ]; then
|
||||
dist_version="Ubuntu"
|
||||
else
|
||||
echo "We only support openEuler(aarch64), EulerOS(aarch64), CentOS, Kylin(aarch64) and Ubuntu(x86) platform."
|
||||
echo "Kernel is $kernel"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
declare release_file_list="opengauss_release_list_${kernel}_single"
|
||||
declare dest_list=""
|
||||
|
||||
#########################################################################
|
||||
##read command line paramenters
|
||||
#######################################################################
|
||||
|
|
@ -59,29 +82,9 @@ while [ $# -gt 0 ]; do
|
|||
print_help
|
||||
exit 1
|
||||
;;
|
||||
-3rd|--binarylib_dir)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given binarylib directory values"
|
||||
exit 1
|
||||
fi
|
||||
binarylib_dir=$2
|
||||
shift 2
|
||||
;;
|
||||
-pkg)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given package type name"
|
||||
exit 1
|
||||
fi
|
||||
package_type=$2
|
||||
shift 2
|
||||
;;
|
||||
-pm)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given product mode"
|
||||
exit 1
|
||||
fi
|
||||
product_mode=$2
|
||||
shift 2
|
||||
-v|--version)
|
||||
print_version
|
||||
exit 1
|
||||
;;
|
||||
-m|--version_mode)
|
||||
if [ "$2"X = X ]; then
|
||||
|
|
@ -91,9 +94,22 @@ while [ $# -gt 0 ]; do
|
|||
version_mode=$2
|
||||
shift 2
|
||||
;;
|
||||
-S|--show_pkg)
|
||||
show_package=true
|
||||
shift
|
||||
-3rd|--binarylibs_dir)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given binarylib directory values"
|
||||
exit 1
|
||||
fi
|
||||
binarylib_dir=$2
|
||||
shift 2
|
||||
;;
|
||||
-f|--config_file)
|
||||
if [ "$2"X = X ]; then
|
||||
echo "no given config file"
|
||||
shift 1
|
||||
else
|
||||
config_file=$2
|
||||
shift 2
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Internal Error: option processing error: $1" 1>&2
|
||||
|
|
@ -103,45 +119,436 @@ while [ $# -gt 0 ]; do
|
|||
esac
|
||||
done
|
||||
|
||||
if [ -e "$SCRIPT_DIR/utils/common.sh" ];then
|
||||
source $SCRIPT_DIR/utils/common.sh
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#############################################################
|
||||
# show package for hotpatch sdv.
|
||||
#############################################################
|
||||
if [ "$show_package" = true ]; then
|
||||
echo "package: "$server_package_name
|
||||
echo "bin: "$bin_name
|
||||
exit 0
|
||||
fi
|
||||
|
||||
declare BUILD_DIR="${ROOT_DIR}/mppdb_temp_install"
|
||||
declare PKG_TMP_DIR="${BUILD_DIR}/temp"
|
||||
|
||||
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
|
||||
if [ -e "$SCRIPT_DIR/utils/internal_packages.sh" ];then
|
||||
source $SCRIPT_DIR/utils/internal_packages.sh
|
||||
else
|
||||
##add platform architecture information
|
||||
PLATFORM_ARCH=$(uname -p)
|
||||
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."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
release_file_list="opengauss_release_list_${kernel}_aarch64_single"
|
||||
fi
|
||||
|
||||
function main()
|
||||
if [ "$version_mode" = "mini" ]; then
|
||||
release_file_list="opengauss_release_list_mini"
|
||||
fi
|
||||
|
||||
##default install version storage path
|
||||
declare server_version='openGauss'
|
||||
declare server_name_for_package="$(echo ${server_version} | sed 's/ /-/g')" # replace blank with '-' for package name.
|
||||
declare version_number=''
|
||||
|
||||
#######################################################################
|
||||
##putout the version of server
|
||||
#######################################################################
|
||||
function print_version()
|
||||
{
|
||||
echo "[makegaussdb] $(date +%y-%m-%d' '%T): script dir : ${SCRIPT_DIR}"
|
||||
echo "[makegaussdb] $(date +%y-%m-%d' '%T): Work root dir : ${ROOT_DIR}"
|
||||
gaussdb_pkg
|
||||
echo "$version_number"
|
||||
}
|
||||
main
|
||||
|
||||
#######################################################################
|
||||
## print help information
|
||||
#######################################################################
|
||||
function print_help()
|
||||
{
|
||||
echo "Usage: $0 [OPTION]
|
||||
-h|--help show help information
|
||||
-V|--version show version information
|
||||
-m|--version_mode this values of paramenter is debug, release or memcheck, the default value is release
|
||||
-3rd|--binarylibs_dir the parent directory of binarylibs
|
||||
"
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##version 2.0.0
|
||||
#######################################################################
|
||||
function read_srv_version()
|
||||
{
|
||||
cd $SCRIPT_DIR
|
||||
version_number=$(grep 'VERSION' opengauss.spec | awk -F "=" '{print $2}')
|
||||
echo "${server_name_for_package}-${version_number}">version.cfg
|
||||
}
|
||||
|
||||
###################################
|
||||
# get version number from globals.cpp
|
||||
##################################
|
||||
function read_srv_number()
|
||||
{
|
||||
global_kernal="${ROOT_DIR}/src/common/backend/utils/init/globals.cpp"
|
||||
version_name="GRAND_VERSION_NUM"
|
||||
version_num=""
|
||||
line=$(cat $global_kernal | grep ^const* | grep $version_name)
|
||||
version_num1=${line#*=}
|
||||
#remove the symbol;
|
||||
version_num=$(echo $version_num1 | tr -d ";")
|
||||
#remove the blank
|
||||
version_num=$(echo $version_num)
|
||||
|
||||
if echo $version_num | grep -qE '^92[0-9]+$'
|
||||
then
|
||||
# get the last three number
|
||||
latter=${version_num:2}
|
||||
echo "92.${latter}" >>${SCRIPT_DIR}/version.cfg
|
||||
else
|
||||
echo "Cannot get the version number from globals.cpp."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
SCRIPT_DIR=$(cd $(dirname $0) && pwd)
|
||||
|
||||
test -d ${SCRIPT_DIR}/../../output || mkdir -p ${SCRIPT_DIR}/../../output && rm -fr ${SCRIPT_DIR}/../../output/*
|
||||
output_path=$(cd ${SCRIPT_DIR}/../../output && pwd)
|
||||
|
||||
read_srv_version
|
||||
|
||||
#######################################################################
|
||||
## declare all package name
|
||||
#######################################################################
|
||||
declare version_string="${server_name_for_package}-${version_number}"
|
||||
declare package_pre_name="${version_string}-${dist_version}-${PLATFORM}bit"
|
||||
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 kernel_symbol_package_name="${package_pre_name}-symbol.tar.gz"
|
||||
declare sha256_name="${package_pre_name}.sha256"
|
||||
|
||||
echo "[make single db] $(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 "We only support openEuler(aarch64), EulerOS(aarch64), CentOS, Kylin(aarch64) platform."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
PG_REG_TEST_ROOT="${ROOT_DIR}/"
|
||||
PMK_SCHEMA="${ROOT_DIR}/script/pmk_schema.sql"
|
||||
declare LOG_FILE="${SCRIPT_DIR}/make_package.log"
|
||||
declare BUILD_DIR="${ROOT_DIR}/mppdb_temp_install"
|
||||
BUILD_TOOLS_PATH="${ROOT_DIR}/binarylibs/buildtools/${PLAT_FORM_STR}"
|
||||
BINARYLIBS_PATH="${ROOT_DIR}/binarylibs/dependency/${PLAT_FORM_STR}"
|
||||
declare UPGRADE_SQL_DIR="${ROOT_DIR}/src/include/catalog/upgrade_sql"
|
||||
if [ "${binarylib_dir}"x != "None"x ]
|
||||
then
|
||||
echo "binarylib dir : ${binarylib_dir}"
|
||||
BUILD_TOOLS_PATH="${binarylib_dir}/buildtools/${PLAT_FORM_STR}"
|
||||
BINARYLIBS_PATH="${binarylib_dir}/dependency/${PLAT_FORM_STR}"
|
||||
fi
|
||||
|
||||
gcc_version="7.3"
|
||||
|
||||
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
|
||||
|
||||
read_srv_number
|
||||
|
||||
#######################################################################
|
||||
# move pkgs to output directory
|
||||
#######################################################################
|
||||
function deploy_pkgs()
|
||||
{
|
||||
for pkg in $@; do
|
||||
if [ -f $pkg ]; then
|
||||
mv $pkg $output_path/
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# Print log.
|
||||
#######################################################################
|
||||
log()
|
||||
{
|
||||
echo "[make single db] $(date +%y-%m-%d' '%T): $@"
|
||||
echo "[make single db] $(date +%y-%m-%d' '%T): $@" >> "$LOG_FILE" 2>&1
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# print log and exit.
|
||||
#######################################################################
|
||||
die()
|
||||
{
|
||||
log "$@"
|
||||
echo "$@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##install gaussdb database contained server
|
||||
#######################################################################
|
||||
function install_gaussdb()
|
||||
{
|
||||
cd $SCRIPT_DIR
|
||||
if [ "$version_mode" = "release" ] || [ "$version_mode" = "mini" ]; then
|
||||
chmod +x ./separate_debug_information.sh
|
||||
./separate_debug_information.sh
|
||||
cd $SCRIPT_DIR
|
||||
mv symbols.tar.gz $kernel_symbol_package_name
|
||||
deploy_pkgs $kernel_symbol_package_name
|
||||
fi
|
||||
|
||||
#insert the commitid to version.cfg as the upgrade app path specification
|
||||
export PATH=${BUILD_DIR}:$PATH
|
||||
export LD_LIBRARY_PATH=${BUILD_DIR}/lib:$LD_LIBRARY_PATH
|
||||
|
||||
commitid=$(LD_PRELOAD='' ${BUILD_DIR}/bin/gaussdb -V | awk '{print $6}' | cut -d ")" -f 1)
|
||||
if [ -z "$commitid" ]
|
||||
then
|
||||
commitid=$(date "+%Y%m%d%H%M%S")
|
||||
commitid=${commitid:4:8}
|
||||
fi
|
||||
echo "${commitid}" >>${SCRIPT_DIR}/version.cfg
|
||||
echo "End insert commitid into version.cfg" >> "$LOG_FILE" 2>&1
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# 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
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# set postgresql.conf.sample from config_file when packing
|
||||
#######################################################################
|
||||
function set_config_sample()
|
||||
{
|
||||
if [[ -f $config_file ]]
|
||||
then
|
||||
config_sample_file=${BUILD_DIR}/share/postgresql/postgresql.conf.sample
|
||||
if [[ ! -f "$config_sample_file" ]]
|
||||
then
|
||||
echo "postgresql.conf.sample does not exist"
|
||||
exit 1
|
||||
else
|
||||
echo "#------------------------------------------------------------------------------" >> $config_sample_file
|
||||
echo "# USER SET CONFIG ON COMPILING TIME" >> $config_sample_file
|
||||
echo "#------------------------------------------------------------------------------" >> $config_sample_file
|
||||
while IFS= read -r line; do
|
||||
SUBSTRING=$(echo $line | cut -d'=' -f 1)"= "
|
||||
if grep -q "$SUBSTRING" $config_sample_file ; then
|
||||
sed -i "/$SUBSTRING/c$line" $config_sample_file
|
||||
else
|
||||
echo $line >> $config_sample_file
|
||||
fi
|
||||
done < $config_file
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##copy target file into temporary directory temp
|
||||
#######################################################################
|
||||
function target_file_copy()
|
||||
{
|
||||
cd ${BUILD_DIR}
|
||||
set_config_sample
|
||||
copy_files_list "$1" $2
|
||||
|
||||
cp ${SCRIPT_DIR}/version.cfg ${BUILD_DIR}/temp
|
||||
cp -rf ${SCRIPT_DIR}/../../simpleInstall ${BUILD_DIR}/temp
|
||||
if [ $? -ne 0 ]; then
|
||||
die "copy ${SCRIPT_DIR}/version.cfg to ${BUILD_DIR}/temp failed"
|
||||
fi
|
||||
|
||||
sed -i '/^process_cpu_affinity|/d' $2/bin/cluster_guc.conf
|
||||
|
||||
#generate tar file
|
||||
echo "Begin generate ${kernel_package_name} tar file..." >> "$LOG_FILE" 2>&1
|
||||
cd $2
|
||||
tar -jcvpf "${kernel_package_name}" ./* >> "$LOG_FILE" 2>&1
|
||||
cd '-'
|
||||
mv $2/"${kernel_package_name}" ./
|
||||
if [ $? -ne 0 ]; then
|
||||
die "generate ${kernel_package_name} failed."
|
||||
fi
|
||||
echo "End generate ${kernel_package_name} tar file" >> "$LOG_FILE" 2>&1
|
||||
|
||||
#generate sha256 file
|
||||
sha256_name="${package_pre_name}.sha256"
|
||||
echo "Begin generate ${sha256_name} sha256 file..." >> "$LOG_FILE" 2>&1
|
||||
sha256sum "${kernel_package_name}" | awk -F" " '{print $1}' > "$sha256_name"
|
||||
if [ $? -ne 0 ]; then
|
||||
die "generate sha256 file failed."
|
||||
fi
|
||||
echo "End generate ${sha256_name} sha256 file" >> "$LOG_FILE" 2>&1
|
||||
|
||||
###################################################
|
||||
# make server package
|
||||
###################################################
|
||||
if [ -d "${2}" ]; then
|
||||
rm -rf ${2}
|
||||
fi
|
||||
}
|
||||
|
||||
function target_file_copy_for_non_server()
|
||||
{
|
||||
cd ${BUILD_DIR}
|
||||
copy_files_list "$1" $2
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##function make_package_prep have two actions
|
||||
##1.parse release_file_list variable represent file
|
||||
##2.copy target file into a newly created temporary directory temp
|
||||
#######################################################################
|
||||
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")
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
deploy_pkgs ${sha256_name} ${kernel_package_name}
|
||||
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}
|
||||
|
||||
deploy_pkgs ${UPGRADE_SQL_TAR} ${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
|
||||
|
||||
cd ${BUILD_DIR}/temp
|
||||
echo "packaging libpq..."
|
||||
tar -zvcf "${libpq_package_name}" ./* >>"$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "$package_command ${libpq_package_name} failed"
|
||||
fi
|
||||
|
||||
deploy_pkgs ${libpq_package_name}
|
||||
echo "install $pkgname tools is ${libpq_package_name} of ${output_path} directory " >> "$LOG_FILE" 2>&1
|
||||
echo "success!"
|
||||
}
|
||||
|
||||
function make_package_tools()
|
||||
{
|
||||
cd $SCRIPT_DIR
|
||||
prep_dest_list $release_file_list 'client'
|
||||
|
||||
rm -rf ${BUILD_DIR}/temp
|
||||
mkdir -p ${BUILD_DIR}/temp
|
||||
|
||||
cd ${BUILD_DIR}/
|
||||
|
||||
target_file_copy_for_non_server "$dest_list" ${BUILD_DIR}/temp
|
||||
|
||||
cd ${BUILD_DIR}/temp
|
||||
echo "packaging tools..."
|
||||
tar -zvcf "${tools_package_name}" ./* >>"$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "$package_command ${tools_package_name} failed"
|
||||
fi
|
||||
|
||||
deploy_pkgs ${tools_package_name}
|
||||
echo "install $pkgname tools is ${tools_package_name} of ${output_path} directory " >> "$LOG_FILE" 2>&1
|
||||
echo "success!"
|
||||
}
|
||||
|
||||
function spec_prep()
|
||||
{
|
||||
cp opengauss.spec gauss.spec
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
## Check the installation package production environment
|
||||
#######################################################################
|
||||
function srv_pkg_bld()
|
||||
{
|
||||
install_gaussdb
|
||||
}
|
||||
|
||||
function srv_pkg_make()
|
||||
{
|
||||
echo "Start package opengauss."
|
||||
make_package_srv
|
||||
make_package_libpq
|
||||
make_package_tools
|
||||
make_package_upgrade_sql
|
||||
echo "End package opengauss."
|
||||
}
|
||||
|
||||
#############################################################
|
||||
# main function
|
||||
#############################################################
|
||||
# 0. prepare spec file
|
||||
spec_prep
|
||||
|
||||
# 1. build server
|
||||
srv_pkg_bld
|
||||
|
||||
# 2. make package
|
||||
srv_pkg_make
|
||||
|
||||
echo "now, all packages has finished!"
|
||||
exit 0
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -0,0 +1,265 @@
|
|||
#!/bin/bash
|
||||
#######################################################################
|
||||
# Copyright (c): 2020-2025, Huawei Tech. Co., Ltd.
|
||||
# descript: recompress package
|
||||
# version: 2.0
|
||||
# date: 2021-05-19
|
||||
#######################################################################
|
||||
|
||||
declare server_package_path=""
|
||||
declare agent_package_path=""
|
||||
declare product_mode="multiple"
|
||||
declare unpack_server="unpack_server"
|
||||
declare unpack_agent="unpack_agent"
|
||||
declare unpack_psycopg2="unpack_psycopg2"
|
||||
declare compress_command="tar -zcf"
|
||||
declare decompress_command="tar -zxf"
|
||||
|
||||
function print_help()
|
||||
{
|
||||
echo "Usage: $0 [OPTION]
|
||||
-h|--help show help information.
|
||||
-pm product mode, values parameter is single, multiple or opengauss, default value is multiple.
|
||||
--server-pacakge the server pacakge path.
|
||||
--agent-package the agent package path, only -pm is single or multiple need.
|
||||
"
|
||||
}
|
||||
|
||||
function log() {
|
||||
echo "[makegaussdb] $(date +%y-%m-%d' '%T): $@"
|
||||
}
|
||||
|
||||
function error() {
|
||||
echo -e "\033[31m[makegaussdb] $(date +%y-%m-%d' '%T) Error: $@\033[0m"
|
||||
}
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-h|--help)
|
||||
print_help
|
||||
exit 1
|
||||
;;
|
||||
-pm)
|
||||
if [ X$2 == X"" ]; then
|
||||
error "no given pm product mode."
|
||||
exit 1
|
||||
fi
|
||||
product_mode=$2
|
||||
shift 2
|
||||
;;
|
||||
--server-package)
|
||||
if [ X$2 == X"" ]; then
|
||||
error "no given server compress path"
|
||||
exit 1
|
||||
fi
|
||||
server_package_path=$2
|
||||
shift 2
|
||||
;;
|
||||
--agent-package)
|
||||
if [ X$2 == X"" ]; then
|
||||
error "no given agent compress path"
|
||||
exit 1
|
||||
fi
|
||||
agent_package_path=$2
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
echo "Internal Error: option processing error: $1" 1>&2
|
||||
echo "please input right paramtenter, the following command may help you"
|
||||
echo "sh reconstruct.sh --help or sh reconstruct.sh -h"
|
||||
exit 1
|
||||
esac
|
||||
done
|
||||
|
||||
function standard_path() {
|
||||
local package_path=$1
|
||||
local first_char=$(expr substr "${package_path}" 1 1)
|
||||
if [ "${first_char}" != "/" ]; then
|
||||
package_path="$(pwd)/${package_path}"
|
||||
fi
|
||||
echo "${package_path}"
|
||||
}
|
||||
|
||||
function check_path() {
|
||||
local package_type=$1
|
||||
local package_path=$2
|
||||
if [ X${package_path} = X ]; then
|
||||
error "the paramtenter --${package_type} can not be empty."
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -f "${package_path}" ]; then
|
||||
error "the file ${package_path} not exist, please check."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function check_parameter() {
|
||||
check_path "server-package" ${server_package_path}
|
||||
server_package_path=$(standard_path ${server_package_path})
|
||||
if [ X${product_mode} != X"opengauss" ]; then
|
||||
check_path "agent-pacakge" ${agent_package_path}
|
||||
agent_package_path=$(standard_path ${agent_package_path})
|
||||
fi
|
||||
}
|
||||
|
||||
function backup_compress() {
|
||||
local compress_name=$1
|
||||
local bak_package_name="${compress_name%%.*}_old.${compress_name#*.}"
|
||||
if [ -d "${bak_package_name}" ]; then
|
||||
rm -rf ${bak_package_name}
|
||||
fi
|
||||
cp ${compress_name} ${bak_package_name}
|
||||
}
|
||||
|
||||
function delete_backup_package() {
|
||||
local compress_name=$1
|
||||
local bak_package_name="${compress_name%%.*}_old.${compress_name#*.}"
|
||||
if [ -d "${bak_package_name}" ]; then
|
||||
rm -rf ${bak_package_name}
|
||||
fi
|
||||
}
|
||||
|
||||
function final_compress() {
|
||||
local compress_file=$1
|
||||
if [ X"${compress_file##*.}" == X"zip" ]; then
|
||||
zip -q -r ${compress_file} ./*
|
||||
else
|
||||
${compress_command} ${compress_file} ./*
|
||||
fi
|
||||
}
|
||||
|
||||
function begin_decompress() {
|
||||
local decompress_file=$1
|
||||
local decompress_dir=$2
|
||||
if [ X"${decompress_file##*.}" == X"zip" ]; then
|
||||
unzip -q ${decompress_file} -d ${decompress_dir}
|
||||
else
|
||||
${decompress_command} ${decompress_file} -C ${decompress_dir}
|
||||
fi
|
||||
}
|
||||
|
||||
function distribute_compress() {
|
||||
server_dir=$(dirname "${server_package_path}")
|
||||
server_name=$(basename "${server_package_path}")
|
||||
|
||||
agent_dir=$(dirname "${agent_package_path}")
|
||||
agent_name=$(basename "${agent_package_path}")
|
||||
|
||||
log "server_name: ${server_name}, agent_name: ${agent_name}"
|
||||
# decompress server package and copy psycopg2 to lib
|
||||
cd ${server_dir}
|
||||
backup_compress ${server_name}
|
||||
if [ -e "${unpack_server}" ]; then
|
||||
rm -rf ${unpack_server}
|
||||
fi
|
||||
mkdir ${unpack_server}
|
||||
begin_decompress ${server_name} ${unpack_server}
|
||||
cd ${unpack_server} && mkdir ${unpack_server} ${unpack_psycopg2}
|
||||
|
||||
euler_name=$(basename "$(find . -name "GaussDB-Kernel-V500R00*-64bit.tar.gz")")
|
||||
psycopg2_name=$(basename "$(find . -name "GaussDB-Kernel-V500R00*-64bit-Python.tar.gz")")
|
||||
log "euler_name: ${euler_name}, psycopg2_name: ${psycopg2_name}"
|
||||
|
||||
${decompress_command} ${euler_name} -C ${unpack_server}
|
||||
${decompress_command} ${psycopg2_name} -C ${unpack_psycopg2}
|
||||
chmod -R 700 ${unpack_psycopg2}/psycopg2
|
||||
cp -r ${unpack_psycopg2}/psycopg2 ${unpack_server}/lib
|
||||
cp -r ${unpack_psycopg2}/psycopg2 ${unpack_server}/script/gspylib/inspection/lib
|
||||
log "complete copy psycopg2 to server package."
|
||||
|
||||
# decompress agent package and copy psycopg2 to lib, then compress
|
||||
cd ${agent_dir}
|
||||
backup_compress ${agent_name}
|
||||
|
||||
if [ -e "${unpack_agent}" ]; then
|
||||
rm -rf ${unpack_agent}
|
||||
fi
|
||||
mkdir ${unpack_agent}
|
||||
begin_decompress ${agent_name} ${unpack_agent}
|
||||
cd ${unpack_agent} && mkdir ${unpack_agent}
|
||||
agent_tar_name=$(basename "$(find . -name "GaussDB-Kernel-V500R00*-64bit-AGENT.tar.gz")")
|
||||
${decompress_command} ${agent_tar_name} -C ${unpack_agent}
|
||||
|
||||
cd ${unpack_agent}
|
||||
cp -r ${server_dir}/${unpack_server}/${unpack_psycopg2}/psycopg2 lib/
|
||||
${compress_command} ${agent_tar_name} ./*
|
||||
rm -rf ../${agent_tar_name} && mv ${agent_tar_name} ../ && cd ../ && rm -rf ${unpack_agent}
|
||||
final_compress ${agent_name}
|
||||
rm -rf ../${agent_name} && mv ${agent_name} ../ && cd ../ && rm -rf ${unpack_agent}
|
||||
|
||||
cd ${agent_dir}
|
||||
delete_backup_package ${agent_name}
|
||||
log "complete copy psycopg2 to agent package and compress agent package."
|
||||
|
||||
# compress server package
|
||||
log "begin to compress server package ......"
|
||||
cd ${server_dir}/${unpack_server}/${unpack_server}
|
||||
${compress_command} ${euler_name} ./*
|
||||
rm -rf ../${euler_name} && mv ${euler_name} ../ && cd ../ && rm -rf ${unpack_server}
|
||||
if [ -d "${unpack_psycopg2}" ]; then
|
||||
rm -rf ${unpack_psycopg2}
|
||||
fi
|
||||
final_compress ${server_name}
|
||||
rm -rf ../${server_name} && mv ${server_name} ../ && cd ../ && rm -rf ${unpack_server}
|
||||
|
||||
cd ${server_dir}
|
||||
delete_backup_package ${server_name}
|
||||
log "complete compress server package."
|
||||
}
|
||||
|
||||
function opengauss_compress() {
|
||||
server_dir=$(dirname "${server_package_path}")
|
||||
server_name=$(basename "${server_package_path}")
|
||||
|
||||
cd ${server_dir}
|
||||
backup_compress ${server_name}
|
||||
if [ -e "${unpack_server}" ]; then
|
||||
rm -rf ${unpack_server}
|
||||
fi
|
||||
mkdir ${unpack_server}
|
||||
${decompress_command} ${server_name} -C ${unpack_server}
|
||||
cd ${unpack_server} && mkdir ${unpack_agent} ${unpack_psycopg2}
|
||||
|
||||
psycopg2_name=$(basename "$(find . -name "openGauss-*-Python.tar.gz")")
|
||||
agent_name=$(basename "$(find . -name "openGauss-*-om.tar.gz")")
|
||||
log "agent_name: ${agent_name}, psycopg2_name: ${psycopg2_name}"
|
||||
|
||||
${decompress_command} ${agent_name} -C ${unpack_agent}
|
||||
${decompress_command} ${psycopg2_name} -C ${unpack_psycopg2}
|
||||
chmod -R 700 ${unpack_psycopg2}/psycopg2
|
||||
cp -r ${unpack_psycopg2}/psycopg2 ${unpack_agent}/lib
|
||||
cp -r ${unpack_psycopg2}/psycopg2 ${unpack_agent}/script/gspylib/inspection/lib
|
||||
log "complete copy psycopg2 to agent package."
|
||||
|
||||
# compress agent package
|
||||
cd ${unpack_agent}
|
||||
${compress_command} ${agent_name} ./*
|
||||
rm -rf ../${agent_name} && mv ${agent_name} ../ && cd ../ && rm -rf ${unpack_agent}
|
||||
log "complete compress agent package."
|
||||
|
||||
# recover om sha256
|
||||
sha256_name="$(echo ${agent_name} | sed 's/\.tar\.gz//').sha256"
|
||||
if [ -d "${sha256_name}" ]; then
|
||||
rm -rf ${sha256_name}
|
||||
fi
|
||||
sha256sum "${agent_name}" | awk -F" " '{print $1}' > "${sha256_name}"
|
||||
if [ $? -ne 0 ]; then
|
||||
die "generate sha256 file failed."
|
||||
fi
|
||||
|
||||
if [ -d "${unpack_psycopg2}" ]; then
|
||||
rm -rf ${unpack_psycopg2}
|
||||
fi
|
||||
${compress_command} ${server_name} ./*
|
||||
rm -rf ../${server_name} && mv ${server_name} ../ && cd ../ && rm -rf ${unpack_server}
|
||||
|
||||
delete_backup_package ${server_name}
|
||||
log "complete compress server package."
|
||||
}
|
||||
|
||||
check_parameter
|
||||
if [ X${product_mode} == X"opengauss" ]; then
|
||||
opengauss_compress
|
||||
else
|
||||
distribute_compress
|
||||
fi
|
||||
|
|
@ -1,6 +1,12 @@
|
|||
#!/bin/bash
|
||||
# Copyright (c) Huawei Technologies Co., Ltd. 2020-2025. All rights reserved.
|
||||
#######################################################################
|
||||
# Copyright (c): 2012-2019, Huawei Tech. Co., Ltd.
|
||||
# descript: Separate debug information
|
||||
# Return 0 means OK.
|
||||
# Return 1 means failed.
|
||||
# version: 2.0
|
||||
# date: 2019-1-6
|
||||
#######################################################################
|
||||
|
||||
DEPTH=$(pwd)
|
||||
INSTALL_DIR=$DEPTH/../../mppdb_temp_install
|
||||
|
|
@ -70,14 +76,11 @@ separate_symbol()
|
|||
echo "$x is a script, do not separate symbol"
|
||||
elif [[ "$x" = *".dat" ]];then
|
||||
echo "$x is a license file, do not separate symbol"
|
||||
# The following second condition judges whether the file is a shell script without a suffix name.
|
||||
# Usually, executable shell script has a header comment that indicates which interpreter to use,
|
||||
# e.g., "#!/usr/bin/env bash".
|
||||
elif [[ "$x" = *".sh" ]] || [[ -f "$x" && -x "$x" && "$(head -c2 $x)" == '#!' ]]; then
|
||||
elif [[ "$x" = *".sh" ]];then
|
||||
echo "$x is a shell file, do not separate symbol"
|
||||
elif [[ "$x" = *".la" ]];then
|
||||
echo "$x is a la file, do not separate symbol"
|
||||
elif [[ "$x" = *".crt" ]];then
|
||||
elif [[ "$x" = *".crt" ]];then
|
||||
echo "$x is a crt file, do not separate symbol"
|
||||
elif [[ "$x" = *".ini" ]];then
|
||||
echo "$x is a ini file, do not separate symbol"
|
||||
|
|
@ -113,7 +116,7 @@ separate_symbol()
|
|||
chmod 755 "$INSTALL_DIR/${symbol_name}.symbol"
|
||||
mv $INSTALL_DIR/${symbol_name}.symbol $CPTODEST
|
||||
fi
|
||||
elif [[ "$x" = *".so" || "$x" = *".so."* ]]; then
|
||||
elif [[ "$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"
|
||||
|
|
|
|||
|
|
@ -1,178 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Copyright (c) Huawei Technologies Co., Ltd. 2020-2025. All rights reserved.
|
||||
# descript: Compile and pack openGauss
|
||||
#######################################################################
|
||||
## Check the installation package production environment
|
||||
#######################################################################
|
||||
function gaussdb_pkg_pre_clean()
|
||||
{
|
||||
if [ -d "$BUILD_DIR" ]; then
|
||||
rm -rf $BUILD_DIR
|
||||
fi
|
||||
if [ -d "$LOG_FILE" ]; then
|
||||
rm -rf $LOG_FILE
|
||||
fi
|
||||
}
|
||||
###################################
|
||||
|
||||
#######################################################################
|
||||
##read version from gaussdb.ver
|
||||
#######################################################################
|
||||
function read_gaussdb_version()
|
||||
{
|
||||
cd ${SCRIPT_DIR}
|
||||
echo "${product_name}-${version_number}" > version.cfg
|
||||
#auto read the number from kernal globals.cpp, no need to change it here
|
||||
}
|
||||
|
||||
###################################
|
||||
# get version number from globals.cpp
|
||||
##################################
|
||||
function read_gaussdb_number()
|
||||
{
|
||||
global_kernal="${ROOT_DIR}/src/common/backend/utils/init/globals.cpp"
|
||||
version_name="GRAND_VERSION_NUM"
|
||||
version_num=""
|
||||
line=$(cat $global_kernal | grep ^const* | grep $version_name)
|
||||
version_num1=${line#*=}
|
||||
#remove the symbol;
|
||||
version_num=$(echo $version_num1 | tr -d ";")
|
||||
#remove the blank
|
||||
version_num=$(echo $version_num)
|
||||
|
||||
if echo $version_num | grep -qE '^92[0-9]+$'
|
||||
then
|
||||
# get the last three number
|
||||
latter=${version_num:2}
|
||||
echo "92.${latter}" >>${SCRIPT_DIR}/version.cfg
|
||||
else
|
||||
echo "Cannot get the version number from globals.cpp."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##insert the commitid to version.cfg as the upgrade app path specification
|
||||
#######################################################################
|
||||
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)
|
||||
echo "${commitid}" >>${SCRIPT_DIR}/version.cfg
|
||||
echo "End insert commitid into version.cfg" >> "$LOG_FILE" 2>&1
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
## generate the version file.
|
||||
#######################################################################
|
||||
function make_license_control()
|
||||
{
|
||||
python_exec=$(which python 2>/dev/null)
|
||||
|
||||
if [ -x "$python_exec" ]; then
|
||||
$python_exec ${binarylib_dir}/buildtools/license_control/encrypted_version_file.py >> "$LOG_FILE" 2>&1
|
||||
fi
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
die "create ${binarylib_dir}/buildtools/license_control license file failed."
|
||||
fi
|
||||
|
||||
if [ -f "$gaussdb_200_file" ] && [ -f "$gaussdb_300_file" ]; then
|
||||
# Get the md5sum.
|
||||
gaussdb_200_sha256sum=$(sha256sum $gaussdb_200_file | awk '{print $1}')
|
||||
gaussdb_300_sha256sum=$(sha256sum $gaussdb_300_file | awk '{print $1}')
|
||||
# Modify the source code.
|
||||
sed -i "s/^[ \t]*const[ \t]\+char[ \t]*\*[ \t]*sha256_digests[ \t]*\[[ \t]*SHA256_DIGESTS_COUNT[ \t]*\][ \t]*=[ \t]*{[ \t]*NULL[ \t]*,[ \t]*NULL[ \t]*}[ \t]*;[ \t]*$/const char \*sha256_digests\[SHA256_DIGESTS_COUNT\] = {\"$gaussdb_200_sha256sum\", \"$gaussdb_300_sha256sum\"};/g" $gaussdb_version_file
|
||||
fi
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
die "modify '$gaussdb_version_file' failed."
|
||||
fi
|
||||
}
|
||||
|
||||
function make_gaussdb_kernel()
|
||||
{
|
||||
export BUILD_TUPLE=${PLATFORM_ARCH}
|
||||
export THIRD_BIN_PATH="${binarylib_dir}"
|
||||
export PREFIX_HOME="${BUILD_DIR}"
|
||||
export DEBUG_TYPE=${version_mode}
|
||||
|
||||
echo "Begin make install gaussdb server" >> "$LOG_FILE" 2>&1
|
||||
|
||||
export GAUSSHOME=${BUILD_DIR}
|
||||
export LD_LIBRARY_PATH=${BUILD_DIR}/lib:${BUILD_DIR}/lib/postgresql:${LD_LIBRARY_PATH}
|
||||
|
||||
[ -d "${CMAKE_BUILD_DIR}" ] && rm -rf ${CMAKE_BUILD_DIR}
|
||||
[ -d "${BUILD_DIR}" ] && rm -rf ${BUILD_DIR}
|
||||
mkdir -p ${CMAKE_BUILD_DIR}
|
||||
cd ${CMAKE_BUILD_DIR}
|
||||
cmake .. ${CMAKE_OPT}
|
||||
if [ $? -ne 0 ]; then
|
||||
die "cmake failed."
|
||||
fi
|
||||
cpus_num=$(grep -w processor /proc/cpuinfo|wc -l)
|
||||
make -sj ${cpus_num}
|
||||
if [ $? -ne 0 ]; then
|
||||
die "make failed."
|
||||
fi
|
||||
make install -sj ${cpus_num}
|
||||
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
|
||||
#######################################################################
|
||||
function install_gaussdb()
|
||||
{
|
||||
# Generate the license control file, and set md5sum string to the code.
|
||||
echo "Modify gaussdb_version.cpp file." >> "$LOG_FILE" 2>&1
|
||||
make_license_control
|
||||
echo "Modify gaussdb_version.cpp file success." >> "$LOG_FILE" 2>&1
|
||||
cd "$ROOT_DIR/"
|
||||
if [ $? -ne 0 ]; then
|
||||
die "change dir to $ROOT_DIR failed."
|
||||
fi
|
||||
|
||||
if [ "$version_mode" = "debug" -a "$separate_symbol" = "on" ]; then
|
||||
echo "WARNING: do not separate symbol in debug mode!"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
#insert the commitid to version.cfg as the upgrade app path specification
|
||||
get_kernel_commitid
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##install gaussdb database and others
|
||||
##select to install something according to variables package_type need
|
||||
#######################################################################
|
||||
function gaussdb_build()
|
||||
{
|
||||
case "$package_type" in
|
||||
server)
|
||||
install_gaussdb
|
||||
;;
|
||||
libpq)
|
||||
install_gaussdb
|
||||
;;
|
||||
*)
|
||||
echo "Internal Error: option processing error: $package_type"
|
||||
echo "please input right paramenter values server or libpq "
|
||||
exit 1
|
||||
esac
|
||||
}
|
||||
|
|
@ -1,136 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Copyright (c) Huawei Technologies Co., Ltd. 2020-2025. All rights reserved.
|
||||
# descript: Compile and pack openGauss
|
||||
|
||||
declare LOG_FILE="${SCRIPT_DIR}/makemppdb_pkg.log"
|
||||
declare product_name='openGauss'
|
||||
declare PLATFORM_ARCH=$(uname -p)
|
||||
declare package_path=${ROOT_DIR}/output
|
||||
declare install_package_format="tar"
|
||||
declare PLATFORM=32
|
||||
bit=$(getconf LONG_BIT)
|
||||
if [ "$bit" -eq 64 ]; then
|
||||
declare PLATFORM=64
|
||||
fi
|
||||
|
||||
# 公共方法
|
||||
#######################################################################
|
||||
##putout the version of gaussdb
|
||||
#######################################################################
|
||||
function print_version()
|
||||
{
|
||||
echo "$version_number"
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# Print log.
|
||||
#######################################################################
|
||||
function log()
|
||||
{
|
||||
echo "[makegaussdb] $(date +%y-%m-%d' '%T): $@"
|
||||
echo "[makegaussdb] $(date +%y-%m-%d' '%T): $@" >> "$LOG_FILE" 2>&1
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
# print log and exit.
|
||||
#######################################################################
|
||||
function die()
|
||||
{
|
||||
log "$@"
|
||||
echo "$@"
|
||||
exit $ERR_FAILED
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##select package command accroding to install_package_format
|
||||
#######################################################################
|
||||
function select_package_command()
|
||||
{
|
||||
case "$install_package_format" in
|
||||
tar)
|
||||
tar='tar'
|
||||
option=' -zcvf'
|
||||
package_command="$tar$option"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
select_package_command
|
||||
|
||||
#######################################################################
|
||||
##get os dist version
|
||||
#######################################################################
|
||||
if [[ -f "/etc/openEuler-release" ]]; then
|
||||
os_name="openEuler"
|
||||
elif [[ -f "/etc/euleros-release" ]]; then
|
||||
os_name="EulerOS"
|
||||
elif [[ -f "/etc/centos-release" ]]; then
|
||||
os_name="CentOS"
|
||||
elif [[ -f "/etc/openEuler-release" ]]; then
|
||||
os_name="openEuler"
|
||||
elif [[ -f "/etc/FusionOS-release" ]]; then
|
||||
os_name="FusionOS"
|
||||
elif [[ -f "/etc/kylin-release" ]]; then
|
||||
os_name="Kylin"
|
||||
elif [[ -f "/etc/asianux-release" ]]; then
|
||||
os_name="Asianux"
|
||||
else
|
||||
os_name=$(lsb_release -d | awk -F ' ' '{print $2}'| tr A-Z a-z | sed 's/.*/\L&/; s/[a-z]*/\u&/g')
|
||||
fi
|
||||
|
||||
##add platform architecture information
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ] ; then
|
||||
if [ "$os_name" != "openEuler" ] && [ "$os_name" != "EulerOS" ] && [ "$os_name" != "FusionOS" ] && [ "$os_name" != "Kylin" ] && [ "$dist_version" != "Asianux" ]; then
|
||||
echo "We only support NUMA on openEuler(aarch64), EulerOS(aarch64), FusionOS(aarch64), Kylin(aarch64), Asianux platform."
|
||||
exit 1
|
||||
fi
|
||||
GAUSSDB_EXTRA_FLAGS=" -D__USE_NUMA"
|
||||
fi
|
||||
|
||||
if [ "${binarylib_dir}" != 'None' ] && [ -d "${binarylib_dir}" ]; then
|
||||
BUILD_TOOLS_PATH="${binarylib_dir}/buildtools"
|
||||
PLATFORM_PATH="${binarylib_dir}/kernel/platform"
|
||||
BINARYLIBS_PATH="${binarylib_dir}/kernel/dependency"
|
||||
else
|
||||
die "${binarylib_dir} doesn't exist."
|
||||
fi
|
||||
|
||||
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=${PLATFORM_PATH}/huaweijdk8/${PLATFORM_ARCH}/jdk
|
||||
|
||||
declare ERR_FAILED=1
|
||||
declare ERR_OK=0
|
||||
|
||||
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
|
||||
echo "gaussdb.ver not found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
declare release_file_list="${PLATFORM_ARCH}_${product_mode}_list"
|
||||
|
||||
#######################################################################
|
||||
## declare all package name
|
||||
#######################################################################
|
||||
declare version_string="${product_name}-${version_number}"
|
||||
declare package_pre_name="${version_string}-${os_name}-${PLATFORM}bit"
|
||||
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"
|
||||
|
|
@ -1,240 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Copyright (c) Huawei Technologies Co., Ltd. 2020-2025. All rights reserved.
|
||||
#
|
||||
# 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.
|
||||
# ----------------------------------------------------------------------------
|
||||
# Description : gs_backup is a utility to back up or restore binary files and parameter files.
|
||||
|
||||
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
|
||||
|
||||
cp ${SCRIPT_DIR}/version.cfg ${BUILD_DIR}/temp
|
||||
|
||||
# package simpleInstall dir
|
||||
cp -rf ${SCRIPT_DIR}/../../simpleInstall ${BUILD_DIR}/temp
|
||||
if [ $? -ne 0 ]; then
|
||||
die "copy ${SCRIPT_DIR}/version.cfg to ${BUILD_DIR}/temp failed"
|
||||
fi
|
||||
|
||||
sed -i '/^process_cpu_affinity|/d' $2/bin/cluster_guc.conf
|
||||
|
||||
#generate tar file
|
||||
echo "Begin generate ${kernel_package_name} tar file..." >> "$LOG_FILE" 2>&1
|
||||
cd $2
|
||||
tar -jcvpf "${kernel_package_name}" ./* >> "$LOG_FILE" 2>&1
|
||||
cd '-'
|
||||
mv $2/"${kernel_package_name}" ./
|
||||
if [ $? -ne 0 ]; then
|
||||
die "generate ${kernel_package_name} failed."
|
||||
fi
|
||||
echo "End generate ${kernel_package_name} tar file" >> "$LOG_FILE" 2>&1
|
||||
|
||||
#generate sha256 file
|
||||
sha256_name="${package_pre_name}.sha256"
|
||||
echo "Begin generate ${sha256_name} sha256 file..." >> "$LOG_FILE" 2>&1
|
||||
sha256sum "${kernel_package_name}" | awk -F" " '{print $1}' > "$sha256_name"
|
||||
if [ $? -ne 0 ]; then
|
||||
die "generate sha256 file failed."
|
||||
fi
|
||||
echo "End generate ${sha256_name} sha256 file" >> "$LOG_FILE" 2>&1
|
||||
|
||||
###################################################
|
||||
# make server package
|
||||
###################################################
|
||||
if [ -d "${2}" ]; then
|
||||
rm -rf ${2}
|
||||
fi
|
||||
}
|
||||
|
||||
function target_file_copy_for_non_server()
|
||||
{
|
||||
cd ${BUILD_DIR}
|
||||
copy_files_list "$1" $2
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##function make_package_prep have two actions
|
||||
##1.parse release_file_list variable represent file
|
||||
##2.copy target file into a newly created temporary directory temp
|
||||
#######################################################################
|
||||
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 $symbol_package_name
|
||||
deploy_pkgs $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
|
||||
|
||||
deploy_pkgs ${sha256_name} ${kernel_package_name}
|
||||
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}
|
||||
|
||||
deploy_pkgs ${UPGRADE_SQL_TAR} ${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
|
||||
|
||||
cd ${BUILD_DIR}/temp
|
||||
echo "packaging libpq..."
|
||||
tar -zvcf "${libpq_package_name}" ./* >>"$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "$package_command ${libpq_package_name} failed"
|
||||
fi
|
||||
|
||||
deploy_pkgs ${libpq_package_name}
|
||||
echo "install $pkgname tools is ${libpq_package_name} of ${package_path} directory " >> "$LOG_FILE" 2>&1
|
||||
echo "success!"
|
||||
}
|
||||
|
||||
function make_package_tools()
|
||||
{
|
||||
cd $SCRIPT_DIR
|
||||
prep_dest_list $release_file_list 'client'
|
||||
|
||||
rm -rf ${BUILD_DIR}/temp
|
||||
mkdir -p ${BUILD_DIR}/temp
|
||||
|
||||
cd ${BUILD_DIR}/
|
||||
|
||||
target_file_copy_for_non_server "$dest_list" ${BUILD_DIR}/temp
|
||||
|
||||
cd ${BUILD_DIR}/temp
|
||||
echo "packaging tools..."
|
||||
tar -zvcf "${tools_package_name}" ./* >>"$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "$package_command ${tools_package_name} failed"
|
||||
fi
|
||||
|
||||
deploy_pkgs ${tools_package_name}
|
||||
echo "install $pkgname tools is ${tools_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
|
||||
make_package_tools
|
||||
make_package_upgrade_sql
|
||||
echo "End package opengauss."
|
||||
}
|
||||
|
|
@ -1,217 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Copyright (c) Huawei Technologies Co., Ltd. 2020-2025. All rights reserved.
|
||||
# descript: package opengauss lite
|
||||
|
||||
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 ${kernel_package_name} tar file..." >> "$LOG_FILE" 2>&1
|
||||
cd $2
|
||||
${BUILD_TOOLS_PATH}/p7z/bin/7z a -t7z -sfx "${kernel_package_name}" ./* >> "$LOG_FILE" 2>&1
|
||||
cd '-'
|
||||
mv $2/"${kernel_package_name}" ./
|
||||
if [ $? -ne 0 ]; then
|
||||
die "generate ${kernel_package_name} failed."
|
||||
fi
|
||||
echo "End generate ${kernel_package_name} tar file" >> "$LOG_FILE" 2>&1
|
||||
|
||||
#generate sha256 file
|
||||
sha256_name="${sha256_name}"
|
||||
echo "Begin generate ${sha256_name} sha256 file..." >> "$LOG_FILE" 2>&1
|
||||
sha256sum "${kernel_package_name}" | awk -F" " '{print $1}' > "${sha256_name}"
|
||||
if [ $? -ne 0 ]; then
|
||||
die "generate sha256 file failed."
|
||||
fi
|
||||
echo "End generate ${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 $symbol_package_name
|
||||
deploy_pkgs $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}/"${kernel_package_name}" ./
|
||||
cp ${BUILD_DIR}/"${sha256_name}" ./
|
||||
tar -czf "${package_pre_name}.tar.gz" ./*
|
||||
deploy_pkgs "${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 "${libpq_package_name}" ./* >>"$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "$package_command ${libpq_package_name} failed"
|
||||
fi
|
||||
|
||||
deploy_pkgs ${libpq_package_name}
|
||||
echo "install $pkgname tools is ${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."
|
||||
}
|
||||
|
|
@ -1,285 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Copyright (c) Huawei Technologies Co., Ltd. 2020-2025. All rights reserved.
|
||||
# descript: Compile and pack openGauss
|
||||
#######################################################################
|
||||
## Check the installation package production environment
|
||||
#######################################################################
|
||||
function gaussdb_pkg_pre_clean()
|
||||
{
|
||||
if [ -d "$BUILD_DIR" ]; then
|
||||
rm -rf $BUILD_DIR
|
||||
fi
|
||||
if [ -d "$LOG_FILE" ]; then
|
||||
rm -rf $LOG_FILE
|
||||
fi
|
||||
}
|
||||
###################################
|
||||
|
||||
#######################################################################
|
||||
##read version from gaussdb.ver
|
||||
#######################################################################
|
||||
function read_gaussdb_version()
|
||||
{
|
||||
cd ${SCRIPT_DIR}
|
||||
echo "${product_name}-${version_number}" > version.cfg
|
||||
#auto read the number from kernal globals.cpp, no need to change it here
|
||||
}
|
||||
|
||||
PG_REG_TEST_ROOT="${ROOT_DIR}"
|
||||
ROACH_DIR="${ROOT_DIR}/distribute/bin/roach"
|
||||
MPPDB_DECODING_DIR="${ROOT_DIR}/contrib/mppdb_decoding"
|
||||
|
||||
###################################
|
||||
# get version number from globals.cpp
|
||||
##################################
|
||||
function read_gaussdb_number()
|
||||
{
|
||||
global_kernal="${ROOT_DIR}/src/common/backend/utils/init/globals.cpp"
|
||||
version_name="GRAND_VERSION_NUM"
|
||||
version_num=""
|
||||
line=$(cat $global_kernal | grep ^const* | grep $version_name)
|
||||
version_num1=${line#*=}
|
||||
#remove the symbol;
|
||||
version_num=$(echo $version_num1 | tr -d ";")
|
||||
#remove the blank
|
||||
version_num=$(echo $version_num)
|
||||
|
||||
if echo $version_num | grep -qE '^92[0-9]+$'
|
||||
then
|
||||
# get the last three number
|
||||
latter=${version_num:2}
|
||||
echo "92.${latter}" >>${SCRIPT_DIR}/version.cfg
|
||||
else
|
||||
echo "Cannot get the version number from globals.cpp."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##insert the commitid to version.cfg as the upgrade app path specification
|
||||
#######################################################################
|
||||
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)
|
||||
echo "${commitid}" >>${SCRIPT_DIR}/version.cfg
|
||||
echo "End insert commitid into version.cfg" >> "$LOG_FILE" 2>&1
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
## generate the version file.
|
||||
#######################################################################
|
||||
function make_license_control()
|
||||
{
|
||||
python_exec=$(which python 2>/dev/null)
|
||||
|
||||
if [ -x "$python_exec" ]; then
|
||||
$python_exec ${binarylib_dir}/buildtools/license_control/encrypted_version_file.py >> "$LOG_FILE" 2>&1
|
||||
fi
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
die "create ${binarylib_dir}/buildtools/license_control license file failed."
|
||||
fi
|
||||
|
||||
if [ -f "$gaussdb_200_file" ] && [ -f "$gaussdb_300_file" ]; then
|
||||
# Get the md5sum.
|
||||
gaussdb_200_sha256sum=$(sha256sum $gaussdb_200_file | awk '{print $1}')
|
||||
gaussdb_300_sha256sum=$(sha256sum $gaussdb_300_file | awk '{print $1}')
|
||||
# Modify the source code.
|
||||
sed -i "s/^[ \t]*const[ \t]\+char[ \t]*\*[ \t]*sha256_digests[ \t]*\[[ \t]*SHA256_DIGESTS_COUNT[ \t]*\][ \t]*=[ \t]*{[ \t]*NULL[ \t]*,[ \t]*NULL[ \t]*}[ \t]*;[ \t]*$/const char \*sha256_digests\[SHA256_DIGESTS_COUNT\] = {\"$gaussdb_200_sha256sum\", \"$gaussdb_300_sha256sum\"};/g" $gaussdb_version_file
|
||||
fi
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
die "modify '$gaussdb_version_file' failed."
|
||||
fi
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##back to separate_debug_symbol.sh dir
|
||||
#######################################################################
|
||||
function separate_symbol()
|
||||
{
|
||||
cd $SCRIPT_DIR
|
||||
if [ "$version_mode" = "release" -a "$separate_symbol" = "on" ]; then
|
||||
chmod +x ./separate_debug_information.sh
|
||||
./separate_debug_information.sh
|
||||
cd $SCRIPT_DIR
|
||||
mkdir -p $package_path
|
||||
mv symbols.tar.gz $package_path/$symbol_package_name
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##install gaussdb database contained server,client and libpq
|
||||
#######################################################################
|
||||
function install_gaussdb()
|
||||
{
|
||||
# Generate the license control file, and set md5sum string to the code.
|
||||
echo "Modify gaussdb_version.cpp file." >> "$LOG_FILE" 2>&1
|
||||
make_license_control
|
||||
echo "Modify gaussdb_version.cpp file success." >> "$LOG_FILE" 2>&1
|
||||
#putinto to Code dir
|
||||
cd "$ROOT_DIR"
|
||||
#echo "$ROOT_DIR/Code"
|
||||
if [ $? -ne 0 ]; then
|
||||
die "change dir to $ROOT_DIR failed."
|
||||
fi
|
||||
|
||||
if [ "$version_mode" = "debug" -a "$separate_symbol" = "on" ]; then
|
||||
echo "WARNING: do not separate symbol in debug mode!"
|
||||
fi
|
||||
|
||||
if [ "$product_mode" != "opengauss" -a "$product_mode" != "lite" ]; then
|
||||
die "the product mode can only be opengauss, lite!"
|
||||
fi
|
||||
|
||||
#configure
|
||||
make distclean -sj >> "$LOG_FILE" 2>&1
|
||||
|
||||
echo "Begin configure." >> "$LOG_FILE" 2>&1
|
||||
chmod 755 configure
|
||||
|
||||
if [ "$product_mode"x == "opengauss"x ]; then
|
||||
enable_readline="--with-readline"
|
||||
else
|
||||
enable_readline="--without-readline"
|
||||
fi
|
||||
shared_opt="--gcc-version=${gcc_version}.0 --prefix="${BUILD_DIR}" --3rd=${binarylib_dir} --enable-thread-safety ${enable_readline} --without-zlib"
|
||||
if [ "$product_mode"x == "opengauss"x ]; then
|
||||
if [ "$version_mode"x == "release"x ]; then
|
||||
# configure -D__USE_NUMA -D__ARM_LSE with arm opengauss mode
|
||||
if [ "$PLATFORM_ARCH"X == "aarch64"X ] ; then
|
||||
echo "configure -D__USE_NUMA -D__ARM_LSE with arm opengauss mode"
|
||||
GAUSSDB_EXTRA_FLAGS=" -D__USE_NUMA -D__ARM_LSE"
|
||||
fi
|
||||
|
||||
./configure $shared_opt CFLAGS="-O2 -g3 ${GAUSSDB_EXTRA_FLAGS}" --enable-mot CC=g++ $extra_config_opt >> "$LOG_FILE" 2>&1
|
||||
elif [ "$version_mode"x == "memcheck"x ]; then
|
||||
./configure $shared_opt CFLAGS="-O0" --enable-mot --enable-debug --enable-cassert --enable-memory-check CC=g++ $extra_config_opt >> "$LOG_FILE" 2>&1
|
||||
elif [ "$version_mode"x == "fiurelease"x ]; then
|
||||
./configure $shared_opt CFLAGS="-O2 -g3 ${GAUSSDB_EXTRA_FLAGS}" --enable-mot --disable-jemalloc CC=g++ $extra_config_opt >> "$LOG_FILE" 2>&1
|
||||
elif [ "$version_mode"x == "fiudebug"x ]; then
|
||||
./configure $shared_opt CFLAGS="-O0 ${GAUSSDB_EXTRA_FLAGS}" --enable-mot --enable-debug --enable-cassert --disable-jemalloc CC=g++ $extra_config_opt >> "$LOG_FILE" 2>&1
|
||||
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
|
||||
die "configure failed."
|
||||
fi
|
||||
echo "End configure" >> "$LOG_FILE" 2>&1
|
||||
|
||||
echo "Begin make install MPPDB server" >> "$LOG_FILE" 2>&1
|
||||
make clean >> "$LOG_FILE" 2>&1
|
||||
|
||||
export GAUSSHOME=${BUILD_DIR}
|
||||
export LD_LIBRARY_PATH=${BUILD_DIR}/lib:${BUILD_DIR}/lib/postgresql:${LD_LIBRARY_PATH}
|
||||
make -sj 20 >> "$LOG_FILE" 2>&1
|
||||
make install -sj 8>> "$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
make install -sj 8>> "$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
make install -sj 8>> "$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "make install failed."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "$ROOT_DIR/contrib/pg_upgrade_support"
|
||||
make clean >> "$LOG_FILE" 2>&1
|
||||
make -sj >> "$LOG_FILE" 2>&1
|
||||
make install -sj >> "$LOG_FILE" 2>&1
|
||||
echo "End make install MPPDB" >> "$LOG_FILE" 2>&1
|
||||
|
||||
|
||||
cd "$ROOT_DIR"
|
||||
if [ "${make_check}" = 'on' ]; then
|
||||
echo "Begin make check MPPDB..." >> "$LOG_FILE" 2>&1
|
||||
cd ${PG_REG_TEST_ROOT}
|
||||
make check -sj >> "$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "make check MPPDB failed."
|
||||
fi
|
||||
echo "End make check MPPDB success." >> "$LOG_FILE" 2>&1
|
||||
fi
|
||||
|
||||
echo "Begin make install mpp_decoding..." >> "$LOG_FILE" 2>&1
|
||||
#copy mppdb_decoding form clienttools to bin
|
||||
if [ "$version_mode"x == "release"x ]; then
|
||||
cd "$MPPDB_DECODING_DIR"
|
||||
make >> "$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "make install mppdb_decoding failed."
|
||||
fi
|
||||
echo "End make install mppdb_decoding success." >> "$LOG_FILE" 2>&1
|
||||
echo "Begin pack mppdb_decoding..." >> "$LOG_FILE" 2>&1
|
||||
cp ${MPPDB_DECODING_DIR}/mppdb_decoding.so ${BUILD_DIR}/lib/postgresql/mppdb_decoding.so
|
||||
elif [ "$version_mode"x == "memcheck"x ]; then
|
||||
cd "$MPPDB_DECODING_DIR"
|
||||
make >> "$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "make install mppdb_decoding failed."
|
||||
fi
|
||||
echo "End make install mppdb_decoding success." >> "$LOG_FILE" 2>&1
|
||||
echo "Begin pack mppdb_decoding..." >> "$LOG_FILE" 2>&1
|
||||
cp ${MPPDB_DECODING_DIR}/mppdb_decoding.so ${BUILD_DIR}/lib/postgresql/mppdb_decoding.so
|
||||
else
|
||||
cd "$MPPDB_DECODING_DIR"
|
||||
make >> "$LOG_FILE" 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
die "make install mppdb_decoding failed."
|
||||
fi
|
||||
echo "End make install mppdb_decoding success." >> "$LOG_FILE" 2>&1
|
||||
echo "Begin pack mppdb_decoding..." >> "$LOG_FILE" 2>&1
|
||||
cp ${MPPDB_DECODING_DIR}/mppdb_decoding.so ${BUILD_DIR}/lib/postgresql/mppdb_decoding.so
|
||||
fi
|
||||
if [ $? -ne 0 ]; then
|
||||
if [ "$version_mode"x == "release"x ]; then
|
||||
die "cp ${MPPDB_DECODING_DIR}/mppdb_decoding ${MPPDB_DECODING_DIR}/bin/mppdb_decoding failed"
|
||||
else
|
||||
die "cp ${MPPDB_DECODING_DIR}/mppdb_decoding ${MPPDB_DECODING_DIR}/bin/mppdb_decoding failed"
|
||||
fi
|
||||
fi
|
||||
|
||||
chmod 444 ${BUILD_DIR}/bin/cluster_guc.conf
|
||||
dos2unix ${BUILD_DIR}/bin/cluster_guc.conf > /dev/null 2>&1
|
||||
get_kernel_commitid
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
##install gaussdb database and others
|
||||
##select to install something according to variables package_type need
|
||||
#######################################################################
|
||||
function gaussdb_build()
|
||||
{
|
||||
case "$package_type" in
|
||||
server)
|
||||
install_gaussdb
|
||||
;;
|
||||
libpq)
|
||||
install_gaussdb
|
||||
;;
|
||||
*)
|
||||
echo "Internal Error: option processing error: $package_type"
|
||||
echo "please input right paramenter values server or libpq "
|
||||
exit 1
|
||||
esac
|
||||
}
|
||||
|
|
@ -198,15 +198,18 @@ ENDMACRO(CHECK_CC_ENABLE)
|
|||
|
||||
function(GET_VERSIONSTR_FROMGIT ret)
|
||||
set(PG_VERSION "9.2.4")
|
||||
set(OPENGAUSS_VERSION "5.0.0")
|
||||
set(OPENGAUSS_VERSION "2.1.0")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/${openGauss}/cmake/src/buildfunction.sh --d ${PROJECT_TRUNK_DIR} OUTPUT_VARIABLE KERNEL_VERSION_STR)
|
||||
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)
|
||||
set(${ret} "${GS_VERSION_STR}" PARENT_SCOPE)
|
||||
set(OPENGAUSS_VERSION_NUM_STR, "${OPENGAUSS_VERSION}" PARENT_SCOPE)
|
||||
if(NOT ${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF)
|
||||
set(PG_VERSION_STR "openGauss ${OPENGAUSS_VERSION} ${GS_VERSION_STR}")
|
||||
set(${ret} "${KERNEL_VERSION_STR}" PARENT_SCOPE)
|
||||
set(PG_VERSION_STR "openGauss ${OPENGAUSS_VERSION} ${KERNEL_VERSION_STR}")
|
||||
else()
|
||||
set(${ret} "${GS_VERSION_STR}" PARENT_SCOPE)
|
||||
set(PG_VERSION_STR "${GS_VERSION_STR}")
|
||||
endif()
|
||||
set(PG_VERSION_STR "${PG_VERSION_STR}" PARENT_SCOPE)
|
||||
|
|
|
|||
|
|
@ -17,12 +17,6 @@ if(NOT ${PGPORT})
|
|||
set(PGPORT 5432)
|
||||
endif()
|
||||
|
||||
#this is the default WAL segment size (MB), the old is --with-wal-segsize=16, now -DWAL_SEGSIZE=16
|
||||
option(WAL_SEGSIZE 16)
|
||||
if(NOT ${WAL_SEGSIZE})
|
||||
set(WAL_SEGSIZE 16)
|
||||
endif()
|
||||
|
||||
GET_VERSIONSTR_FROMGIT(GET_PG_VERSION_STR)
|
||||
|
||||
#CMake does not allow g++ to compile C files. They are two different languages. You should understand what you are doing.
|
||||
|
|
@ -55,16 +49,12 @@ option(ENABLE_LCOV "enable lcov, the old is --enable-lcov" OFF)
|
|||
# new add
|
||||
option(ENABLE_MULTIPLE_NODES "enable distribute,the old is --enable-multiple-nodes" OFF)
|
||||
option(ENABLE_PRIVATEGAUSS "enable privategauss,the old is --enable-pribategauss" OFF)
|
||||
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)
|
||||
option(DEBUG_UHEAP "collect USTORE statistics" OFF)
|
||||
option(MAX_ALLOC_SEGNUM "max alloc xlog seg num in extreme_rto" 4)
|
||||
|
||||
#No matter what to set, the old mppdb aways use ENABLE_THREAD_SAFETY=yes by default defined.
|
||||
option(ENABLE_THREAD_SAFETY "enable thread safety, the old is --enable-thread-safety" ON)
|
||||
|
|
@ -74,7 +64,7 @@ option(USE_BONJOUR "enable bonjour, the old is --with-bonjour" OFF)
|
|||
option(USE_LDAP "build with ldap, the old is --with-ldap" OFF)#ON
|
||||
option(USE_ETCD "build with etcd libs, new option for old mppdb, after 8.1 close it" OFF)
|
||||
option(USE_PROTOBUF "build with with protobuf's libs, we must need it" ON)
|
||||
option(USE_LIBXML "build with libxml, the old is --with-libxml" ON)
|
||||
option(USE_LIBXML "build with libxml, the old is --with-libxml" OFF)
|
||||
option(HAVE_LIBXML2 "build with libxml2, the old is --with-libxml2" OFF)
|
||||
option(USE_LIBXSLT "build with libxslt, the old is --with-libxslt" OFF)
|
||||
option(USE_PAM "build with pam, the old is --with-pam" OFF)
|
||||
|
|
@ -94,7 +84,6 @@ option(HAVE_LIBM "enable -lm, this set to default -lm" ON)
|
|||
option(HAVE_POSIX_SIGNALS "enable posix signals, this set to default" ON)
|
||||
option(HAVE_GCC_INT_ATOMICS "enable gcc buildin atomics operations, this set to default" ON)
|
||||
option(FLEXIBLE_ARRAY_MEMBER "pq_ce need" ON)
|
||||
option(ENABLE_OPENEULER_MAJOR "support openEuler 22.03 LTS, this set to default" OFF)
|
||||
|
||||
# we will differ compile flags and definitions by different vars
|
||||
set(DB_COMMON_DEFINE "")
|
||||
|
|
@ -122,7 +111,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" AND ${ENABLE_LSE} STREQUAL "ON")
|
||||
if($ENV{DEBUG_TYPE} STREQUAL "release" AND ${ENABLE_MULTIPLE_NODES} STREQUAL "OFF")
|
||||
set(DB_COMMON_DEFINE ${DB_COMMON_DEFINE} -D__ARM_LSE)
|
||||
set(OS_OPTIONS -march=armv8-a+crc+lse)
|
||||
else()
|
||||
|
|
@ -130,40 +119,18 @@ if(${BUILD_TUPLE} STREQUAL "aarch64")
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if(${BUILD_TUPLE} STREQUAL "aarch64" AND ${ENABLE_NUMA} STREQUAL "ON")
|
||||
if(${BUILD_TUPLE} STREQUAL "aarch64")
|
||||
if(NOT $ENV{DEBUG_TYPE} STREQUAL "memcheck")
|
||||
set(DB_COMMON_DEFINE ${DB_COMMON_DEFINE} -D__USE_NUMA)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(${ENABLE_LITE_MODE} STREQUAL "ON")
|
||||
set(ENABLE_LLVM_COMPILE OFF)
|
||||
set(ENABLE_GSS OFF)
|
||||
set(KRB5 OFF)
|
||||
set(USE_LIBXML OFF)
|
||||
endif()
|
||||
|
||||
if(${ENABLE_OPENEULER_MAJOR} STREQUAL "ON")
|
||||
add_definitions(-DOPENEULER_MAJOR)
|
||||
endif()
|
||||
|
||||
set(PROTECT_OPTIONS -fwrapv -std=c++14 -fnon-call-exceptions ${OPTIMIZE_LEVEL})
|
||||
set(WARNING_OPTIONS -Wall -Wendif-labels -Wformat-security)
|
||||
set(WARNING_OPTIONS -Wall -Wendif-labels -Werror -Wformat-security)
|
||||
set(OPTIMIZE_OPTIONS -pipe -pthread -fno-aggressive-loop-optimizations -fno-expensive-optimizations -fno-omit-frame-pointer -fno-strict-aliasing -freg-struct-return)
|
||||
set(CHECK_OPTIONS -Wmissing-format-attribute -Wno-attributes -Wno-unused-but-set-variable -Wno-write-strings -Wpointer-arith)
|
||||
set(MACRO_OPTIONS -D_GLIBCXX_USE_CXX11_ABI=0 -DENABLE_GSTRACE -D_GNU_SOURCE -DPGXC -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DSTREAMPLAN -D_THREAD_SAFE ${DB_COMMON_DEFINE})
|
||||
|
||||
# Set MAX_ALLOC_SEGNUM size in extreme_rto
|
||||
if(${WAL_SEGSIZE} LESS 256)
|
||||
set(MAX_ALLOC_SEGNUM 4)
|
||||
elseif(${WAL_SEGSIZE} GREATER_EQUAL 256 AND ${WAL_SEGSIZE} LESS 512)
|
||||
set(MAX_ALLOC_SEGNUM 2)
|
||||
elseif(${WAL_SEGSIZE} GREATER_EQUAL 512)
|
||||
set(MAX_ALLOC_SEGNUM 1)
|
||||
else()
|
||||
message(FATAL_ERROR "error: Invalid WAL segment size. Allowed values are 1,2,4,8,16,32,64,128,256,512.")
|
||||
endif()
|
||||
|
||||
# libraries need secure options during compling
|
||||
set(LIB_SECURE_OPTIONS -fPIC -fno-common -fstack-protector)
|
||||
# libraries need link options during linking
|
||||
|
|
@ -197,7 +164,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} -static-libasan)
|
||||
set(MEMCHECK_LIBS ${MEMCHECK_LIBS} libasan.a)
|
||||
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)
|
||||
|
|
@ -209,7 +176,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} -static-libtsan)
|
||||
set(THREAD_LIBS ${THREAD_LIBS} libtsan.a)
|
||||
set(THREAD_LINK_DIRECTORIES ${THREAD_LINK_DIRECTORIES} ${MEMCHECK_LIB_PATH})
|
||||
set(GAUSSDB_CONFIGURE "${GAUSSDB_CONFIGURE} -DENABLE_THREAD_CHECK")
|
||||
endif()
|
||||
|
|
@ -231,7 +198,6 @@ if(${USE_LIBXML})
|
|||
else()
|
||||
set(LIBS "${LIBS} -lxml")
|
||||
set(GAUSSDB_CONFIGURE "${GAUSSDB_CONFIGURE} -DUSE_LIBXML")
|
||||
set(CMAKE_CXX_FLAGS -l:liblzma.so.5)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
@ -271,8 +237,8 @@ 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)
|
||||
set(HOTPATCH_ARM_LIST euleros2.0_sp8_aarch64 euleros2.0_sp9_aarch64 euleros2.0_sp10_aarch64 kylinv10_sp1_aarch64)
|
||||
set(HOTPATCH_PLATFORM_LIST suse11_sp1_x86_64 euleros2.0_sp8_aarch64 euleros2.0_sp9_aarch64 euleros2.0_sp2_x86_64 euleros2.0_sp5_x86_64 kylinv10_sp1_aarch64 kylinv10_sp1_x86_64_intel)
|
||||
set(HOTPATCH_ARM_LIST euleros2.0_sp8_aarch64 euleros2.0_sp9_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)
|
||||
|
|
@ -280,7 +246,11 @@ if(NOT ${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF)
|
|||
if("${GCC_VERSION}" STREQUAL "7.3.0")
|
||||
set(SUPPORT_HOTPATCH "yes")
|
||||
if(NOT ${RET_ARM_HOTPATCH} EQUAL -1)
|
||||
set(HOTPATCH_ATOMIC_LDS -Wl,-T${LIBHOTPATCH_TOOL_PATH}/atomic.lds)
|
||||
if("$ENV{DEBUG_TYPE}" STREQUAL "debug")
|
||||
set(HOTPATCH_ATOMIC_LDS -Wl,-T${LIBHOTPATCH_TOOL_PATH}/atomic_debug.lds)
|
||||
else()
|
||||
set(HOTPATCH_ATOMIC_LDS -Wl,-T${LIBHOTPATCH_TOOL_PATH}/atomic.lds)
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
set(SUPPORT_HOTPATCH "no")
|
||||
|
|
@ -292,18 +262,11 @@ else()
|
|||
set(SUPPORT_HOTPATCH "no")
|
||||
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)
|
||||
string(REPLACE "." ";" LLVM_VERSION_LIST ${LLVM_VERSION_STR})
|
||||
message(STATUS "status ENV{LLVM_VERSION_STR}" $ENV{LLVM_VERSION_STR})
|
||||
list(GET LLVM_VERSION_LIST 0 LLVM_MAJOR_VERSION)
|
||||
list(GET LLVM_VERSION_LIST 1 LLVM_MINOR_VERSION)
|
||||
endif()
|
||||
# LLVM version
|
||||
execute_process(COMMAND ${LLVM_CONFIG} --version OUTPUT_VARIABLE LLVM_VERSION_STR OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
string(REPLACE "." ";" LLVM_VERSION_LIST ${LLVM_VERSION_STR})
|
||||
list(GET LLVM_VERSION_LIST 0 LLVM_MAJOR_VERSION)
|
||||
list(GET LLVM_VERSION_LIST 1 LLVM_MINOR_VERSION)
|
||||
|
||||
if(${NO_CHECK_CONFIG})
|
||||
string(SUBSTRING "${BUILD_TUPLE}" 0 6 BUILD_HOST_PLATFORM)
|
||||
|
|
@ -342,9 +305,6 @@ SET(EC_CONFIG_IN_FILE ecpg_config.h.in)
|
|||
build_mppdb_config_paths_h(PG_CONFIG_PATH_H)
|
||||
configure_file(${openGauss}/cmake/src/config-in/${CONFIG_IN_FILE} ${CMAKE_BINARY_DIR}/pg_config.h @ONLY)
|
||||
configure_file(${openGauss}/cmake/src/config-in/${EC_CONFIG_IN_FILE} ${CMAKE_BINARY_DIR}/ecpg_config.h @ONLY)
|
||||
#set host_cpu for pgxs.mk
|
||||
set(HOST_CPU ${BUILD_TUPLE})
|
||||
configure_file(${openGauss}/src/makefiles/pgxs.mk ${CMAKE_BINARY_DIR}/${openGauss}/src/makefiles/pgxs.mk @ONLY)
|
||||
SET(PROJECT_INCLUDE_DIR ${PROJECT_INCLUDE_DIR} ${CMAKE_BINARY_DIR})
|
||||
|
||||
# 排斥项
|
||||
|
|
@ -352,6 +312,3 @@ if("${ENABLE_MULTIPLE_NODES}" STREQUAL "ON" AND "${ENABLE_MOT}" STREQUAL "ON")
|
|||
message(FATAL_ERROR "error: --enable-mot option is not supported with --enable-multiple-nodes option")
|
||||
endif()
|
||||
|
||||
if("${ENABLE_MULTIPLE_NODES}" STREQUAL "ON" AND "${ENABLE_LITE_MODE}" STREQUAL "ON")
|
||||
message(FATAL_ERROR "error: --enable-lite-mode option is not supported with --enable-multiple-nodes option")
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -114,20 +114,34 @@ function get_gs_version()
|
|||
commits=$(git log | grep "See merge request" | wc -l)
|
||||
mrid=$(git log | grep "See merge request" | head -1 | awk -F! '{print $2}' | grep -o '[0-9]\+')
|
||||
debug_str="$DEBUG_TYPE"
|
||||
product=$(cat build/script/gaussdb.ver | grep 'PRODUCT' | awk -F "=" '{print $2}')
|
||||
version=$(cat build/script/gaussdb.ver | grep 'VERSION' | awk -F "=" '{print $2}')
|
||||
if [ "${ENABLE_LITE_MODE}" == "ON" ]; then
|
||||
product="$product-lite"
|
||||
fi
|
||||
if test "$enable_ccache" = yes; then
|
||||
default_gs_version="(${product} ${version} build 1f1f1f1f) compiled at 2100-00-00 00:00:00 commit 9999 last mr 9999 debug"
|
||||
default_gs_version="(openGauss 2.0.0 build 1f1f1f1f) compiled at 2100-00-00 00:00:00 commit 9999 last mr 9999 debug"
|
||||
else
|
||||
date_time=$(date -d today +"%Y-%m-%d %H:%M:%S")
|
||||
default_gs_version="(${product} ${version} build ${csv_version}) compiled at $date_time commit $commits last mr $mrid $debug_str"
|
||||
default_gs_version="(openGauss 2.1.0 build $csv_version) compiled at $date_time commit $commits last mr $mrid $debug_str"
|
||||
fi
|
||||
printf "${default_gs_version}"
|
||||
}
|
||||
|
||||
function get_kernel_version()
|
||||
{
|
||||
cd $1
|
||||
csv_version=$(git log | grep commit | head -1 | awk '{print $2}' | cut -b 1-8)
|
||||
commits=$(git log | grep "See merge request" | wc -l)
|
||||
mrid=$(git log | grep "See merge request" | head -1 | awk -F! '{print $2}' | grep -o '[0-9]\+')
|
||||
debug_str="$DEBUG_TYPE"
|
||||
product=$(cat build/script/gauss.spec | grep 'PRODUCT' | awk -F "=" '{print $2}')
|
||||
version=$(cat build/script/gauss.spec | grep 'VERSION' | awk -F "=" '{print $2}')
|
||||
|
||||
if test "$enable_ccache" = yes; then
|
||||
default_kernel_version="(GaussDB Kernel V500R002C00 build 1f1f1f1f1f1f1f1f) compiled at 2100-00-00 00:00:00 commit 9999 last mr 9999 debug"
|
||||
else
|
||||
date_time=$(date -d today +"%Y-%m-%d %H:%M:%S")
|
||||
default_kernel_version="($product $version build $csv_version) compiled at $date_time commit $commits last mr $mrid $debug_str"
|
||||
fi
|
||||
printf "${default_kernel_version}"
|
||||
}
|
||||
|
||||
function get_time_for_roach()
|
||||
{
|
||||
tmp=$(date +'%d %b %Y %H:%M:%S')
|
||||
|
|
@ -152,6 +166,8 @@ case "${DO_CMD}" in
|
|||
create_conversionfile ;;
|
||||
--create_snowballfile|snowball)
|
||||
create_snowballfile ;;
|
||||
--get_kernel_versionstr|--d)
|
||||
get_kernel_version "$2";;
|
||||
--get_gs_versionstr|--s)
|
||||
get_gs_version "$2";;
|
||||
--get_time_for_roach)
|
||||
|
|
|
|||
|
|
@ -714,7 +714,7 @@
|
|||
#define PGXC_VERSION_NUM
|
||||
|
||||
/* openGauss version as a number string */
|
||||
#define OPENGAUSS_VERSION_NUM_STR "5.0.0"
|
||||
#define OPENGAUSS_VERSION_NUM_STR "2.1.0"
|
||||
|
||||
/* A string containing the version number, platform, and C compiler */
|
||||
#define PG_VERSION_STR "@PG_VERSION_STR@"
|
||||
|
|
@ -870,10 +870,7 @@
|
|||
/* XLOG_SEG_SIZE is the size of a single WAL file. This must be a power of 2
|
||||
* * and larger than XLOG_BLCKSZ (preferably, a great deal larger than
|
||||
* * XLOG_BLCKSZ). Changing XLOG_SEG_SIZE requires an initdb. */
|
||||
#define XLOG_SEG_SIZE (@WAL_SEGSIZE@ * 1024 * 1024)
|
||||
|
||||
/* Number of max alloc xlog segment in extreme_rto, default 4 */
|
||||
#define MAX_ALLOC_SEGNUM @MAX_ALLOC_SEGNUM@
|
||||
#define XLOG_SEG_SIZE (16 * 1024 * 1024)
|
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||
#cmakedefine _FILE_OFFSET_BITS
|
||||
|
|
@ -916,10 +913,6 @@
|
|||
* * (--enable-privategauss) */
|
||||
#cmakedefine ENABLE_PRIVATEGAUSS
|
||||
|
||||
/* Define to 1 if you want to generate gauss product as lite mode.
|
||||
* * (--enable-lite-mode) */
|
||||
#cmakedefine ENABLE_LITE_MODE
|
||||
|
||||
/* Define to 1 if you want to use mot
|
||||
* --enable-mot */
|
||||
#cmakedefine ENABLE_MOT
|
||||
|
|
@ -938,7 +931,3 @@
|
|||
|
||||
/* Define to on if you want to collect USTORE statistics */
|
||||
#cmakedefine DEBUG_UHEAP
|
||||
|
||||
/* Define to 1 if you want to build opengauss rpm package on openeuler os.
|
||||
* (--with-openeuler-os) */
|
||||
#cmakedefine WITH_OPENEULER_OS
|
||||
|
|
@ -878,9 +878,6 @@
|
|||
XLOG_BLCKSZ). Changing XLOG_SEG_SIZE requires an initdb. */
|
||||
#define XLOG_SEG_SIZE (16 * 1024 * 1024)
|
||||
|
||||
/* Number of max alloc xlog segment in extreme_rto, default 4 */
|
||||
#define MAX_ALLOC_SEGNUM 4
|
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||
/* #undef _FILE_OFFSET_BITS */
|
||||
|
||||
|
|
|
|||
|
|
@ -878,9 +878,6 @@
|
|||
XLOG_BLCKSZ). Changing XLOG_SEG_SIZE requires an initdb. */
|
||||
#define XLOG_SEG_SIZE (16 * 1024 * 1024)
|
||||
|
||||
/* Number of max alloc xlog segment in extreme_rto, default 4 */
|
||||
#define MAX_ALLOC_SEGNUM 4
|
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||
/* #undef _FILE_OFFSET_BITS */
|
||||
|
||||
|
|
|
|||
|
|
@ -695,7 +695,7 @@
|
|||
#define PG_VERSION "9.2.4"
|
||||
|
||||
/* openGauss version as a string */
|
||||
#define OPENGAUSS_VERSION "5.0.0"
|
||||
#define OPENGAUSS_VERSION "2.1.0"
|
||||
|
||||
/* 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"
|
||||
|
|
@ -870,9 +870,6 @@
|
|||
* XLOG_BLCKSZ). Changing XLOG_SEG_SIZE requires an initdb. */
|
||||
#define XLOG_SEG_SIZE (16 * 1024 * 1024)
|
||||
|
||||
/* Number of max alloc xlog segment in extreme_rto, default 4 */
|
||||
#define MAX_ALLOC_SEGNUM 4
|
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||
/* #undef _FILE_OFFSET_BITS */
|
||||
|
||||
|
|
@ -906,4 +903,5 @@
|
|||
* code using `volatile' can become incorrect without. Disable with care. */
|
||||
/* #undef volatile */
|
||||
|
||||
#define ENABLE_LLVM_COMPILE 1
|
||||
|
||||
|
|
|
|||
|
|
@ -3,16 +3,17 @@ set(3RD_PATH $ENV{THIRD_BIN_PATH})
|
|||
set(VERSION_TYPE $ENV{DEBUG_TYPE})
|
||||
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 are support parameter --enable-llt and --enable-ut;
|
||||
# libxml and protobuf 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;
|
||||
# $(LIB_UNIFIED_SUPPORT)
|
||||
# $(LIB_NOT_SUPPORT_LLT)
|
||||
#############################################################################
|
||||
set(SUPPORT_LLT "")
|
||||
set(JEMALLOC_SUPPORT_LLT "")
|
||||
|
|
@ -33,67 +34,65 @@ else()
|
|||
set(HOST_TUPLE aarch64-unknown-linux-gnu)
|
||||
endif()
|
||||
|
||||
set(LIB_UNIFIED_SUPPORT comm)
|
||||
set(LIB_NOT_SUPPORT_LLT comm)
|
||||
set(MEMCHECK_BUILD_TYPE debug)
|
||||
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(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(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})
|
||||
set(ETCD_HOME ${DEPENDENCY_PATH}/etcd/${LIB_NOT_SUPPORT_LLT})
|
||||
set(EVENT_HOME ${DEPENDENCY_PATH}/event/${LIB_NOT_SUPPORT_LLT})
|
||||
set(FIO_HOME ${DEPENDENCY_PATH}/fio/${SUPPORT_LLT})
|
||||
set(IPERF_HOME ${DEPENDENCY_PATH}/iperf/${LIB_UNIFIED_SUPPORT})
|
||||
set(IPERF_HOME ${DEPENDENCY_PATH}/iperf/${LIB_NOT_SUPPORT_LLT})
|
||||
if("${VERSION_TYPE}" STREQUAL "debug" OR "${VERSION_TYPE}" STREQUAL "memcheck")
|
||||
set(JEMALLOC_HOME ${DEPENDENCY_PATH}/jemalloc/debug${JEMALLOC_SUPPORT_LLT})
|
||||
else()
|
||||
set(JEMALLOC_HOME ${DEPENDENCY_PATH}/jemalloc/${VERSION_TYPE}${JEMALLOC_SUPPORT_LLT})
|
||||
endif()
|
||||
set(KERBEROS_HOME ${DEPENDENCY_PATH}/kerberos/${SUPPORT_LLT})
|
||||
set(KMC_HOME ${PLATFORM_PATH}/kmc/${LIB_UNIFIED_SUPPORT})
|
||||
set(KMC_HOME ${PLATFORM_PATH}/kmc/${LIB_NOT_SUPPORT_LLT})
|
||||
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(OBS_HOME ${DEPENDENCY_PATH}/libobs/${LIB_NOT_SUPPORT_LLT})
|
||||
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(LLVM_HOME ${DEPENDENCY_PATH}/llvm/${LIB_NOT_SUPPORT_LLT})
|
||||
set(LZ4_HOME ${DEPENDENCY_PATH}/lz4/${SUPPORT_LLT})
|
||||
set(NANOMSG_HOME ${DEPENDENCY_PATH}/nng/${LIB_UNIFIED_SUPPORT})
|
||||
set(NANOMSG_HOME ${DEPENDENCY_PATH}/nanomsg/${LIB_NOT_SUPPORT_LLT})
|
||||
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 "${PLATFORM_PATH}/openjdk8/${BUILD_TUPLE}/jdk")
|
||||
set(JAVA_HOME ${PLATFORM_PATH}/openjdk8/${BUILD_TUPLE}/jdk)
|
||||
else()
|
||||
set(JAVA_HOME ${PLATFORM_PATH}/huaweijdk8/${BUILD_TUPLE}/jdk)
|
||||
endif()
|
||||
set(OPENSSL_HOME ${DEPENDENCY_PATH}/openssl/${LIB_NOT_SUPPORT_LLT})
|
||||
set(PLJAVA_HOME ${DEPENDENCY_PATH}/pljava/${LIB_NOT_SUPPORT_LLT})
|
||||
set(JAVA_HOME ${3RD_PATH}/platform/openjdk8/${BUILD_TUPLE}/jdk)
|
||||
set(PROTOBUF_HOME ${DEPENDENCY_PATH}/protobuf/${SUPPORT_LLT})
|
||||
set(THRIFT_HOME ${DEPENDENCY_PATH}/thrift)
|
||||
set(SNAPPY_HOME ${DEPENDENCY_PATH}/snappy/${SUPPORT_LLT})
|
||||
set(ZLIB_HOME ${DEPENDENCY_PATH}/zlib1.2.11/${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})
|
||||
set(HOTPATCH_HOME ${PLATFORM_PATH}/hotpatch)
|
||||
set(SECURE_HOME ${PLATFORM_PATH}/Huawei_Secure_C/${LIB_UNIFIED_SUPPORT})
|
||||
set(SECUREDYNAMICLIB_HOME ${PLATFORM_PATH}/Huawei_Secure_C/Dynamic_Lib)
|
||||
set(SECURE_HOME ${PLATFORM_PATH}/Huawei_Secure_C/${LIB_NOT_SUPPORT_LLT})
|
||||
set(DCF_HOME ${COMPONENT_PATH}/dcf)
|
||||
set(DMS_HOME ${COMPONENT_PATH}/dms)
|
||||
set(DSS_HOME ${COMPONENT_PATH}/dss)
|
||||
|
||||
set(MOCKCPP_HOME ${BUILDTOOLS_PATH}/mockcpp/${LIB_UNIFIED_SUPPORT})
|
||||
set(GTEST_HOME ${BUILDTOOLS_PATH}/gtest/${LIB_UNIFIED_SUPPORT})
|
||||
set(MASSTREE_HOME ${BUILDTOOLS_PATH}/masstree/${LIB_UNIFIED_SUPPORT})
|
||||
set(MOCKCPP_HOME ${BUILDTOOLS_PATH}/mockcpp/${LIB_NOT_SUPPORT_LLT})
|
||||
set(GTEST_HOME ${BUILDTOOLS_PATH}/gtest/${LIB_NOT_SUPPORT_LLT})
|
||||
set(LIBSTD_HOME ${BUILDTOOLS_PATH}/gcc${GCC_VERSION_LIT}/${LIB_NOT_SUPPORT_LLT})
|
||||
set(MASSTREE_HOME ${BUILDTOOLS_PATH}/masstree/${LIB_NOT_SUPPORT_LLT})
|
||||
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 ${DEPENDENCY_PATH}/unixodbc)
|
||||
set(MASSTREE_HOME ${DEPENDENCY_PATH}/masstree/${LIB_UNIFIED_SUPPORT})
|
||||
set(ODBC_HOME ${3RD_PATH}/dependency/${PLAT_FORM_STR}/unixodbc)
|
||||
set(MASSTREE_HOME ${DEPENDENCY_PATH}/masstree/${LIB_NOT_SUPPORT_LLT})
|
||||
set(LCOV_HOME ${BUILDTOOLS_PATH}/gcc${GCC_VERSION_LIT}/gcc/lib/gcc/${HOST_TUPLE})
|
||||
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()
|
||||
|
||||
#############################################################################
|
||||
# memcheck
|
||||
#############################################################################
|
||||
set(MEMCHECK_LIB_PATH ${MEMCHECK_HOME}/gcc${GCC_VERSION}/lib/)
|
||||
|
||||
#############################################################################
|
||||
# lcov
|
||||
|
|
@ -156,12 +155,6 @@ else()
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if(${WITH_OPENEULER_OS} STREQUAL "ON")
|
||||
set(SECURE_C_CHECK boundscheck)
|
||||
else()
|
||||
set(SECURE_C_CHECK securec)
|
||||
endif()
|
||||
|
||||
#############################################################################
|
||||
# kerberos component
|
||||
#############################################################################
|
||||
|
|
@ -200,6 +193,18 @@ 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
|
||||
#############################################################################
|
||||
|
|
@ -241,18 +246,49 @@ 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)
|
||||
if(${ENABLE_LLT} STREQUAL "ON")
|
||||
set(PROTOBUF_LIB_NAME protobuf_pic)
|
||||
else()
|
||||
if("${ENABLE_UT}" STREQUAL "ON")
|
||||
set(PROTOBUF_LIB_NAME protobuf_pic)
|
||||
else()
|
||||
set(PROTOBUF_LIB_NAME protobuf)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#############################################################################
|
||||
# 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)
|
||||
if(${ENABLE_LLT} STREQUAL "ON")
|
||||
set(SNAPPY_LIB_NAME snappy_pic)
|
||||
else()
|
||||
if("${ENABLE_UT}" STREQUAL "ON")
|
||||
set(SNAPPY_LIB_NAME snappy_pic)
|
||||
else()
|
||||
set(SNAPPY_LIB_NAME snappy)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#############################################################################
|
||||
# zlib component
|
||||
#############################################################################
|
||||
set(ZLIB_INCLUDE_PATH ${ZLIB_HOME}/include)
|
||||
set(ZLIB_LIB_PATH ${ZLIB_HOME}/lib)
|
||||
|
||||
#############################################################################
|
||||
# xgboost component
|
||||
#############################################################################
|
||||
set(XGBOOST_INCLUDE_PATH ${XGBOOST_HOME}/include)
|
||||
set(XGBOOST_LIB_PATH ${XGBOOST_HOME}/lib64)
|
||||
|
||||
#############################################################################
|
||||
# zstd component
|
||||
#############################################################################
|
||||
|
|
@ -265,17 +301,6 @@ set(ZSTD_LIB_PATH ${ZSTD_HOME}/lib)
|
|||
set(DCF_INCLUDE_PATH ${DCF_HOME}/include)
|
||||
set(DCF_LIB_PATH ${DCF_HOME}/lib)
|
||||
|
||||
#############################################################################
|
||||
# dms component
|
||||
#############################################################################
|
||||
set(DMS_LIB_PATH ${DMS_HOME}/lib)
|
||||
|
||||
#############################################################################
|
||||
# dss component
|
||||
#############################################################################
|
||||
set(DSS_LIB_PATH ${DSS_HOME}/lib)
|
||||
set(DSS_BIN_PATH ${DSS_HOME}/bin)
|
||||
|
||||
#############################################################################
|
||||
# license manager compnent
|
||||
#############################################################################
|
||||
|
|
@ -302,6 +327,12 @@ 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
|
||||
#############################################################################
|
||||
|
|
@ -329,15 +360,3 @@ set(MOCKCPP_3RDPARTY_PATH ${MOCKCPP_HOME}/3rdparty)
|
|||
set(MASSTREE_INCLUDE_PATH ${MASSTREE_HOME}/include)
|
||||
set(MASSTREE_LIB_PATH ${MASSTREE_HOME}/lib)
|
||||
|
||||
############################################################################
|
||||
# gtest component
|
||||
############################################################################
|
||||
set(GTEST_INCLUDE_PATH ${GTEST_HOME}/include)
|
||||
set(GTEST_LIB_PATH ${GTEST_HOME}/lib)
|
||||
|
||||
############################################################################
|
||||
# mockcpp component
|
||||
############################################################################
|
||||
set(MOCKCPP_INCLUDE_PATH ${MOCKCPP_HOME}/include)
|
||||
set(MOCKCPP_LIB_PATH ${MOCKCPP_HOME}/lib)
|
||||
set(MOCKCPP_3RDPARTY_PATH ${MOCKCPP_HOME}/3rdparty)
|
||||
|
|
|
|||
|
|
@ -121,34 +121,6 @@ fi])# PGAC_C_FUNCNAME_SUPPORT
|
|||
|
||||
|
||||
|
||||
# PGAC_CHECK_BUILTIN_FUNC
|
||||
# -----------------------
|
||||
# This is similar to AC_CHECK_FUNCS(), except that it will work for compiler
|
||||
# builtin functions, as that usually fails to.
|
||||
# The first argument is the function name, eg [__builtin_clzl], and the
|
||||
# second is its argument list, eg [unsigned long x]. The current coding
|
||||
# works only for a single argument named x; we might generalize that later.
|
||||
# It's assumed that the function's result type is coercible to int.
|
||||
# On success, we define "HAVEfuncname" (there's usually more than enough
|
||||
# underscores already, so we don't add another one).
|
||||
AC_DEFUN([PGAC_CHECK_BUILTIN_FUNC],
|
||||
[AC_CACHE_CHECK(for $1, pgac_cv$1,
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([
|
||||
int
|
||||
call$1($2)
|
||||
{
|
||||
return $1(x);
|
||||
}], [])],
|
||||
[pgac_cv$1=yes],
|
||||
[pgac_cv$1=no])])
|
||||
if test x"${pgac_cv$1}" = xyes ; then
|
||||
AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE$1]), 1,
|
||||
[Define to 1 if your compiler understands $1.])
|
||||
fi])# PGAC_CHECK_BUILTIN_FUNC
|
||||
|
||||
|
||||
|
||||
|
||||
# PGAC_PROG_CC_CFLAGS_OPT
|
||||
# -----------------------
|
||||
# Given a string, check if the compiler supports the string as a
|
||||
|
|
|
|||
|
|
@ -708,8 +708,6 @@ with_ossp_uuid
|
|||
with_selinux
|
||||
krb_srvtab
|
||||
with_python
|
||||
with_openeuler_os
|
||||
with_openeuler_major
|
||||
enable_thread_safety
|
||||
INCLUDES
|
||||
TAS
|
||||
|
|
@ -743,15 +741,12 @@ enable_llt
|
|||
enable_llvm
|
||||
llvm_major_version
|
||||
llvm_minor_version
|
||||
flex_major_version
|
||||
flex_minor_version
|
||||
enable_ut
|
||||
enable_qunit
|
||||
enable_jemalloc
|
||||
enable_jemalloc_debug
|
||||
enable_privategauss
|
||||
enable_multiple_nodes
|
||||
enable_lite_mode
|
||||
enable_mot
|
||||
enable_memory_check
|
||||
enable_mysql_fdw
|
||||
|
|
@ -759,6 +754,7 @@ enable_oracle_fdw
|
|||
enable_thread_check
|
||||
enable_shared
|
||||
default_gs_version
|
||||
default_kernel_version
|
||||
default_port
|
||||
WANTED_LANGUAGES
|
||||
enable_nls
|
||||
|
|
@ -828,15 +824,12 @@ enable_integer_datetimes
|
|||
enable_nls
|
||||
with_pgport
|
||||
with_gs_version
|
||||
with_openeuler_os
|
||||
with_openeuler_major
|
||||
enable_shared
|
||||
enable_rpath
|
||||
enable_jemalloc
|
||||
enable_jemalloc_debug
|
||||
enable_privategauss
|
||||
enable_multiple_nodes
|
||||
enable_lite_mode
|
||||
enable_mot
|
||||
enable_memory_check
|
||||
enable_mysql_fdw
|
||||
|
|
@ -1318,11 +1311,6 @@ Try \`$0 --help' for more information." >&2
|
|||
esac
|
||||
done
|
||||
|
||||
# if compile with_openeuler_os. it should use gcc on os.
|
||||
if test "${with_openeuler_os+set}" = set; then
|
||||
gcc_version=$(gcc --version | sed q | awk -F')' '{print $2}' | awk '{print $1}')
|
||||
fi
|
||||
|
||||
if test -n "$ac_prev"; then
|
||||
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
|
||||
{ $as_echo "$as_me: error: missing argument to $ac_option" >&2
|
||||
|
|
@ -1561,7 +1549,6 @@ Optional Features:
|
|||
--disable-float4-byval disable float4 passed by value
|
||||
--disable-float8-byval disable float8 passed by value
|
||||
--enable-ccache build with ccache reducing compile time
|
||||
--enable-lite-mode generate the gauss product as lite mode
|
||||
|
||||
Optional Packages:
|
||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
||||
|
|
@ -2197,7 +2184,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='5.0.0'
|
||||
OPENGAUSS_VERSION='2.1.0'
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define PG_VERSION "$PACKAGE_VERSION"
|
||||
|
|
@ -2668,8 +2655,8 @@ $as_echo "$as_me: error: argument required for --with-gs-version option" >&2;}
|
|||
esac
|
||||
|
||||
else
|
||||
product=$(cat build/script/gaussdb.ver | grep 'PRODUCT' | awk -F "=" '{print $2}')
|
||||
version=$(cat build/script/gaussdb.ver | grep 'VERSION' | awk -F "=" '{print $2}')
|
||||
product=$(cat build/script/gauss.spec | grep 'PRODUCT' | awk -F "=" '{print $2}')
|
||||
version=$(cat build/script/gauss.spec | grep 'VERSION' | awk -F "=" '{print $2}')
|
||||
gitversion=$(git log 2>/dev/null | grep commit | head -1 | awk '{print $2}' | cut -b 1-8)
|
||||
commits=$(git log 2>/dev/null | grep "See in merge request" | wc -l)
|
||||
debug_str=""
|
||||
|
|
@ -2679,9 +2666,11 @@ else
|
|||
fi
|
||||
|
||||
if test "$enable_ccache" = yes; then
|
||||
default_gs_version="($product $version build 1f1f1f1f) compiled at 2100-00-00 00:00:00 commit 9999 last mr 9999 debug"
|
||||
default_gs_version="(openGauss 2.1.0 build 1f1f1f1f) compiled at 2100-00-00 00:00:00 commit 9999 last mr 9999 debug"
|
||||
default_kernel_version="(GaussDB Kernel V500R002C00 build 1f1f1f1f) compiled at 2100-00-00 00:00:00 commit 9999 last mr 9999 debug"
|
||||
else
|
||||
default_gs_version="($product $version build $gitversion) compiled at `date -d today +\"%Y-%m-%d %H:%M:%S\"` commit $commits last mr $mrid $debug_str"
|
||||
default_kernel_version="($product $version build $gitversion) compiled at `date -d today +\"%Y-%m-%d %H:%M:%S\"` commit $commits last mr $mrid $debug_str"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
@ -2690,7 +2679,7 @@ fi
|
|||
$as_echo "$default_gs_version" >&6; }
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define DEF_GS_VERSION "${default_gs_version}"
|
||||
#define DEF_GS_VERSION "${default_kernel_version}"
|
||||
_ACEOF
|
||||
|
||||
|
||||
|
|
@ -2887,6 +2876,14 @@ if test "${enable_mot+set}" = set; then
|
|||
$as_echo "$as_me: error: --enable-mot option is not supported with --enable-multiple-nodes option" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
|
||||
fi
|
||||
|
||||
if test "$enable_llvm" = no; then
|
||||
|
||||
{ { $as_echo "$as_me:$LINENO: error: --enable-mot option is not supported with --disable-llvm option" >&5
|
||||
$as_echo "$as_me: error: --enable-mot option is not supported with --disable-llvm option" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
|
||||
fi
|
||||
;;
|
||||
no)
|
||||
|
|
@ -3188,95 +3185,7 @@ else
|
|||
|
||||
fi
|
||||
|
||||
#
|
||||
# --enable-lite-mode enables
|
||||
#
|
||||
|
||||
# Check whether --enable-lite-mode was given.
|
||||
if test "${enable_lite_mode+set}" = set; then
|
||||
enableval=$enable_lite_mode;
|
||||
case $enableval in
|
||||
yes)
|
||||
if test "$enable_multiple_nodes" = yes; then
|
||||
{ { $as_echo "$as_me:$LINENO: error: --enable-lite-mode option is not supported with --enable-multiple-nodes option" >&5
|
||||
$as_echo "$as_me: error: --enable-lite-mode option is not supported with --enable-multiple-nodes option" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
;;
|
||||
no)
|
||||
:
|
||||
;;
|
||||
*)
|
||||
{ { $as_echo "$as_me:$LINENO: error: no argument expected for --enable-lite-mode option" >&5
|
||||
$as_echo "$as_me: error: no argument expected for --enable-lite-mode option" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
;;
|
||||
esac
|
||||
|
||||
else
|
||||
enable_lite_mode=no
|
||||
|
||||
fi
|
||||
|
||||
if test "$enable_multiple_nodes" = yes; then
|
||||
|
||||
enable_lite_mode=no
|
||||
fi
|
||||
|
||||
if test "$enable_lite_mode" = yes; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define ENABLE_LITE_MODE 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# --with-openeuler-os enable
|
||||
#
|
||||
# Check whether --with-openeuler-os was given.
|
||||
if test "${with_openeuler_os+set}" = set; then
|
||||
enableval=$with_openeuler_os;
|
||||
case $enableval in
|
||||
yes)
|
||||
if test "$enable_multiple_nodes" = yes; then
|
||||
{ { $as_echo "$as_me:$LINENO: error: --with-openeuler-os option is not supported with --enable-multiple-nodes option" >&5
|
||||
$as_echo "$as_me: error: --with-openeuler-os option is not supported with --enable-multiple-nodes option" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
;;
|
||||
no)
|
||||
:
|
||||
;;
|
||||
*)
|
||||
{ { $as_echo "$as_me:$LINENO: error: no argument expected for --with-openeuler-os option" >&5
|
||||
$as_echo "$as_me: error: no argument expected for --with-openeuler-os option" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
;;
|
||||
esac
|
||||
|
||||
else
|
||||
with_openeuler_os=no
|
||||
|
||||
fi
|
||||
|
||||
if test "$enable_multiple_nodes" = yes; then
|
||||
|
||||
with_openeuler_os=no
|
||||
fi
|
||||
|
||||
if test "$with_openeuler_os" = yes; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define WITH_OPENEULER_OS 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
if [ "$(cat /etc/system-release)" == "openEuler release 22.03 LTS" ]; then
|
||||
with_openeuler_major=yes
|
||||
fi
|
||||
|
||||
#
|
||||
# --enable-coverage enables generation of code coverage metrics with gcov
|
||||
|
|
@ -3715,11 +3624,8 @@ case ${wal_segsize} in
|
|||
16) ;;
|
||||
32) ;;
|
||||
64) ;;
|
||||
128) ;;
|
||||
256) ;;
|
||||
512) ;;
|
||||
*) { { $as_echo "$as_me:$LINENO: error: Invalid WAL segment size. Allowed values are 1,2,4,8,16,32,64,128,256,512." >&5
|
||||
$as_echo "$as_me: error: Invalid WAL segment size. Allowed values are 1,2,4,8,16,32,64,128,256,512." >&2;}
|
||||
*) { { $as_echo "$as_me:$LINENO: error: Invalid WAL segment size. Allowed values are 1,2,4,8,16,32,64." >&5
|
||||
$as_echo "$as_me: error: Invalid WAL segment size. Allowed values are 1,2,4,8,16,32,64." >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
esac
|
||||
{ $as_echo "$as_me:$LINENO: result: ${wal_segsize}MB" >&5
|
||||
|
|
@ -3730,18 +3636,6 @@ cat >>confdefs.h <<_ACEOF
|
|||
#define XLOG_SEG_SIZE (${wal_segsize} * 1024 * 1024)
|
||||
_ACEOF
|
||||
|
||||
# Set number of MAX_ALLOC_SEGNUM in extreme_rto
|
||||
if test "${wal_segsize}" -lt 256; then
|
||||
MAX_ALLOC_SEGNUM=4
|
||||
elif test "${wal_segsize}" -ge 256 -a "${wal_segsize}" -lt 512; then
|
||||
MAX_ALLOC_SEGNUM=2
|
||||
else
|
||||
MAX_ALLOC_SEGNUM=1
|
||||
fi
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define MAX_ALLOC_SEGNUM ${MAX_ALLOC_SEGNUM}
|
||||
_ACEOF
|
||||
|
||||
#
|
||||
# C compiler
|
||||
|
|
@ -5877,14 +5771,10 @@ if test "${enable_llvm+set}" = set; then
|
|||
case $enableval in
|
||||
yes)
|
||||
|
||||
if test "$enable_lite_mode" = yes; then
|
||||
{ $as_echo "$as_me:$LINENO: enable_lite_mode is open, llvm will close" >&5
|
||||
$as_echo "$as_me: enable_lite_mode is open, llvm will close" >&2;}
|
||||
else
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define ENABLE_LLVM_COMPILE 1
|
||||
_ACEOF
|
||||
fi
|
||||
|
||||
;;
|
||||
no)
|
||||
:
|
||||
|
|
@ -5896,21 +5786,18 @@ $as_echo "$as_me: error: no argument expected for --enable-llvm option" >&2;}
|
|||
;;
|
||||
esac
|
||||
|
||||
else
|
||||
if test "$enable_lite_mode" = yes; then
|
||||
{ $as_echo "$as_me:$LINENO: enable_lite_mode is open, llvm will close" >&5
|
||||
$as_echo "$as_me: enable_lite_mode is open, llvm will close" >&2;}
|
||||
else
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define ENABLE_LLVM_COMPILE 1
|
||||
_ACEOF
|
||||
fi
|
||||
enable_llvm=yes
|
||||
|
||||
fi
|
||||
|
||||
llvm_version_str='10.0.0'
|
||||
if [[ ! -z "${with_3rdpartydir}" ]] && [[ "$enable_lite_mode" != yes ]]; then
|
||||
llvm_version_str=`${with_3rdpartydir}/kernel/dependency/llvm/comm/bin/llvm-config --version`
|
||||
if [ ! -z "${with_3rdpartydir}" ]; then
|
||||
platstr=$(sh src/get_PlatForm_str.sh)
|
||||
llvm_version_str=`${with_3rdpartydir}/dependency/${platstr}/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}')
|
||||
|
|
@ -6481,11 +6368,7 @@ fi
|
|||
# XML
|
||||
#
|
||||
|
||||
if [[ "$enable_lite_mode" != yes ]]; then
|
||||
with_libxml=yes
|
||||
else
|
||||
with_libxml=no
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --with-libxml was given.
|
||||
if test "${with_libxml+set}" = set; then
|
||||
|
|
@ -6513,11 +6396,10 @@ else
|
|||
|
||||
fi
|
||||
|
||||
xml2_cflag=${with_3rdpartydir}/kernel/dependency/libxml2/comm/include/libxml2
|
||||
xml2_lib=${with_3rdpartydir}/kernel/dependency/libxml2/comm/lib
|
||||
xml2_config=${with_3rdpartydir}/kernel/dependency/libxml2/comm/bin/xml2-config
|
||||
|
||||
|
||||
if test "$with_libxml" = yes ; then
|
||||
for ac_prog in ${xml2_config}
|
||||
for ac_prog in xml2-config
|
||||
do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
|
|
@ -6546,7 +6428,7 @@ IFS=$as_save_IFS
|
|||
|
||||
fi
|
||||
fi
|
||||
XML2_CONFIG=$xml2_config
|
||||
XML2_CONFIG=$ac_cv_prog_XML2_CONFIG
|
||||
if test -n "$XML2_CONFIG"; then
|
||||
{ $as_echo "$as_me:$LINENO: result: $XML2_CONFIG" >&5
|
||||
$as_echo "$XML2_CONFIG" >&6; }
|
||||
|
|
@ -6562,12 +6444,12 @@ done
|
|||
if test -n "$XML2_CONFIG"; then
|
||||
for pgac_option in `$XML2_CONFIG --cflags`; do
|
||||
case $pgac_option in
|
||||
-I*|-D*) CPPFLAGS="$CPPFLAGS $pgac_option -I${xml2_cflag}";;
|
||||
-I*|-D*) CPPFLAGS="$CPPFLAGS $pgac_option";;
|
||||
esac
|
||||
done
|
||||
for pgac_option in `$XML2_CONFIG --libs`; do
|
||||
case $pgac_option in
|
||||
-L*) LDFLAGS="$LDFLAGS $pgac_option -L${xml2_lib}";;
|
||||
-L*) LDFLAGS="$LDFLAGS $pgac_option";;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
|
@ -6645,36 +6527,18 @@ fi
|
|||
# JDK
|
||||
#
|
||||
with_jdk=''
|
||||
if [[ ! -z "${with_3rdpartydir}" ]] && [[ "$with_openeuler_os" != yes ]]; then
|
||||
cpuarch=$(uname -m)
|
||||
if [ ! -z "${with_3rdpartydir}" ]; then
|
||||
platstr=$(sh src/get_PlatForm_str.sh)
|
||||
for d in "openjdk8" "huaweijdk8"; do
|
||||
$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: checking for jdk in ${with_3rdpartydir}/platform/${platstr}/${d}" >&5
|
||||
if [ ! -d "${with_3rdpartydir}/platform/${platstr}/${d}" ]; then
|
||||
$as_echo "$as_me:$LINENO: result: no" >&5
|
||||
continue
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
if [ ! -z "$with_jdk" ]; then
|
||||
$as_echo "$as_me:$LINENO: result: yes" >&5
|
||||
break;
|
||||
fi
|
||||
|
||||
$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}/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}"
|
||||
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}"
|
||||
break;
|
||||
fi
|
||||
done
|
||||
|
|
@ -7939,14 +7803,6 @@ else
|
|||
pgac_flex_version=`$FLEX --version 2>/dev/null`
|
||||
{ $as_echo "$as_me:$LINENO: using $pgac_flex_version" >&5
|
||||
$as_echo "$as_me: using $pgac_flex_version" >&6;}
|
||||
|
||||
flex_major_version=$(echo $pgac_flex_version | awk '{print $2}' | awk -F "." '{print $1}')
|
||||
flex_minor_version=$(echo $pgac_flex_version | awk '{print $2}' | awk -F "." '{print $2}')
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define FLEX_MAJOR_VERSION $flex_major_version
|
||||
#define FLEX_MINOR_VERSION $flex_minor_version
|
||||
_ACEOF
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -9383,7 +9239,7 @@ $as_echo "$as_me: WARNING:
|
|||
*** Not using spinlocks will cause poor performance." >&2;}
|
||||
fi
|
||||
|
||||
if test "$with_gssapi_" = no ; then
|
||||
if test "$with_gssapi" = no ; then
|
||||
if test "$PORTNAME" != "win32"; then
|
||||
{ $as_echo "$as_me:$LINENO: checking for library containing gss_init_sec_context" >&5
|
||||
$as_echo_n "checking for library containing gss_init_sec_context... " >&6; }
|
||||
|
|
@ -9851,7 +9707,7 @@ if test "${ac_cv_lib_xml2_xmlSaveToBuffer+set}" = set; then
|
|||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-L${xml2_lib} -lxml2 -lm -ldl $LIBS"
|
||||
LIBS="-lxml2 $LIBS"
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
|
|
@ -12677,7 +12533,7 @@ fi
|
|||
|
||||
fi
|
||||
|
||||
if test "$with_gssapi_" = no ; then
|
||||
if test "$with_gssapi" = no ; then
|
||||
|
||||
for ac_header in gssapi/gssapi.h
|
||||
do
|
||||
|
|
@ -13443,7 +13299,6 @@ done
|
|||
fi
|
||||
|
||||
if test "$with_libxml" = yes ; then
|
||||
CPPFLAGS="-I${xml2_cflag} $CPPFLAGS"
|
||||
if test "${ac_cv_header_libxml_parser_h+set}" = set; then
|
||||
{ $as_echo "$as_me:$LINENO: checking for libxml/parser.h" >&5
|
||||
$as_echo_n "checking for libxml/parser.h... " >&6; }
|
||||
|
|
@ -18226,47 +18081,9 @@ fi
|
|||
|
||||
# On PPC, check if assembler supports LWARX instruction's mutex hint bit
|
||||
case $host_cpu in
|
||||
x86_64)
|
||||
# On x86_64, check if we can compile a popcntq instruction
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether assembler supports x86_64 popcntq" >&5
|
||||
$as_echo_n "checking whether assembler supports x86_64 popcntq... " >&6; }
|
||||
if ${pgac_cv_have_x86_64_popcntq+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
long long x = 1; long long r;
|
||||
__asm__ __volatile__ (" popcntq %1,%0\n" : "=q"(r) : "rm"(x));
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
pgac_cv_have_x86_64_popcntq=yes
|
||||
else
|
||||
pgac_cv_have_x86_64_popcntq=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_have_x86_64_popcntq" >&5
|
||||
$as_echo "$pgac_cv_have_x86_64_popcntq" >&6; }
|
||||
if test x"$pgac_cv_have_x86_64_popcntq" = xyes ; then
|
||||
|
||||
$as_echo "#define HAVE_X86_64_POPCNTQ 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
;;
|
||||
|
||||
ppc*|powerpc*)
|
||||
{ $as_echo "$as_me:$LINENO: checking whether assembler supports lwarx hint bit" >&5
|
||||
$as_echo_n "checking whether assembler supports lwarx hint bit... " >&6; }
|
||||
if ${pgac_cv_have_ppc_mutex_hint+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
|
|
@ -18310,7 +18127,6 @@ sed 's/^/| /' conftest.$ac_ext >&5
|
|||
fi
|
||||
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_have_ppc_mutex_hint" >&5
|
||||
$as_echo "$pgac_cv_have_ppc_mutex_hint" >&6; }
|
||||
if test x"$pgac_cv_have_ppc_mutex_hint" = xyes ; then
|
||||
|
|
@ -24890,237 +24706,6 @@ cat >>confdefs.h <<_ACEOF
|
|||
#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
|
||||
_ACEOF
|
||||
|
||||
# These typically are compiler builtins, for which AC_CHECK_FUNCS fails.
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_bswap16" >&5
|
||||
$as_echo_n "checking for __builtin_bswap16... " >&6; }
|
||||
if ${pgac_cv__builtin_bswap16+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
call__builtin_bswap16(int x)
|
||||
{
|
||||
return __builtin_bswap16(x);
|
||||
}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
pgac_cv__builtin_bswap16=yes
|
||||
else
|
||||
pgac_cv__builtin_bswap16=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__builtin_bswap16" >&5
|
||||
$as_echo "$pgac_cv__builtin_bswap16" >&6; }
|
||||
if test x"${pgac_cv__builtin_bswap16}" = xyes ; then
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE__BUILTIN_BSWAP16 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_bswap32" >&5
|
||||
$as_echo_n "checking for __builtin_bswap32... " >&6; }
|
||||
if ${pgac_cv__builtin_bswap32+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
call__builtin_bswap32(int x)
|
||||
{
|
||||
return __builtin_bswap32(x);
|
||||
}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
pgac_cv__builtin_bswap32=yes
|
||||
else
|
||||
pgac_cv__builtin_bswap32=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__builtin_bswap32" >&5
|
||||
$as_echo "$pgac_cv__builtin_bswap32" >&6; }
|
||||
if test x"${pgac_cv__builtin_bswap32}" = xyes ; then
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE__BUILTIN_BSWAP32 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_bswap64" >&5
|
||||
$as_echo_n "checking for __builtin_bswap64... " >&6; }
|
||||
if ${pgac_cv__builtin_bswap64+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
call__builtin_bswap64(long int x)
|
||||
{
|
||||
return __builtin_bswap64(x);
|
||||
}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
pgac_cv__builtin_bswap64=yes
|
||||
else
|
||||
pgac_cv__builtin_bswap64=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__builtin_bswap64" >&5
|
||||
$as_echo "$pgac_cv__builtin_bswap64" >&6; }
|
||||
if test x"${pgac_cv__builtin_bswap64}" = xyes ; then
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE__BUILTIN_BSWAP64 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
# We assume that we needn't test all widths of these explicitly:
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_clz" >&5
|
||||
$as_echo_n "checking for __builtin_clz... " >&6; }
|
||||
if ${pgac_cv__builtin_clz+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
call__builtin_clz(unsigned int x)
|
||||
{
|
||||
return __builtin_clz(x);
|
||||
}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
pgac_cv__builtin_clz=yes
|
||||
else
|
||||
pgac_cv__builtin_clz=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__builtin_clz" >&5
|
||||
$as_echo "$pgac_cv__builtin_clz" >&6; }
|
||||
if test x"${pgac_cv__builtin_clz}" = xyes ; then
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE__BUILTIN_CLZ 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_ctz" >&5
|
||||
$as_echo_n "checking for __builtin_ctz... " >&6; }
|
||||
if ${pgac_cv__builtin_ctz+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
call__builtin_ctz(unsigned int x)
|
||||
{
|
||||
return __builtin_ctz(x);
|
||||
}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
pgac_cv__builtin_ctz=yes
|
||||
else
|
||||
pgac_cv__builtin_ctz=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__builtin_ctz" >&5
|
||||
$as_echo "$pgac_cv__builtin_ctz" >&6; }
|
||||
if test x"${pgac_cv__builtin_ctz}" = xyes ; then
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE__BUILTIN_CTZ 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_popcount" >&5
|
||||
$as_echo_n "checking for __builtin_popcount... " >&6; }
|
||||
if ${pgac_cv__builtin_popcount+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
call__builtin_popcount(unsigned int x)
|
||||
{
|
||||
return __builtin_popcount(x);
|
||||
}
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
pgac_cv__builtin_popcount=yes
|
||||
else
|
||||
pgac_cv__builtin_popcount=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv__builtin_popcount" >&5
|
||||
$as_echo "$pgac_cv__builtin_popcount" >&6; }
|
||||
if test x"${pgac_cv__builtin_popcount}" = xyes ; then
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE__BUILTIN_POPCOUNT 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# The cast to long int works around a bug in the HP C Compiler
|
||||
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
|
||||
|
|
@ -30083,7 +29668,7 @@ fi
|
|||
|
||||
if test "$enable_multiple_nodes" = yes; then
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define PG_VERSION_STR "openGauss $OPENGAUSS_VERSION ${default_gs_version} on $host, compiled by $cc_string, `expr $ac_cv_sizeof_void_p \* 8`-bit"
|
||||
#define PG_VERSION_STR "openGauss $OPENGAUSS_VERSION ${default_kernel_version} on $host, compiled by $cc_string, `expr $ac_cv_sizeof_void_p \* 8`-bit"
|
||||
_ACEOF
|
||||
else
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
|
|
@ -30126,8 +29711,8 @@ CFLAGS="-DSTREAMPLAN $CFLAGS"
|
|||
# force set char to signed char
|
||||
CFLAGS="-fsigned-char $CFLAGS"
|
||||
|
||||
release_file=`find /etc/ -name "euleros-release"`
|
||||
is_euler=`echo $release_file | grep EulerOS`
|
||||
platform_version=`sh ./src/get_PlatForm_str.sh`
|
||||
is_euler=`echo $platform_version | 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"
|
||||
|
|
@ -31552,10 +31137,8 @@ find src/gausskernel/ -name "*.y" | sort >> ./ereport.txt
|
|||
find src/common/backend -name "*.cpp" | sort >> ./ereport.txt
|
||||
find src/gausskernel/ -name "*.cpp" | sort >> ./ereport.txt
|
||||
|
||||
if [[ "$enable_lite_mode" != yes ]]; then
|
||||
if [[ "$enable_multiple_nodes" != no ]] || [[ "$enable_privategauss" != no ]]; then
|
||||
find ../distribute/cm -name "*.l" | sort > ./cm_ereport.txt
|
||||
find ../distribute/cm -name "*.y" | sort >> ./cm_ereport.txt
|
||||
find ../distribute/cm -name "*.cpp" | sort >> ./cm_ereport.txt
|
||||
fi
|
||||
if [[ "$enable_multiple_nodes" != no ]] || [[ "$enable_privategauss" != no ]]; then
|
||||
find ../distribute/cm -name "*.l" | sort > ./cm_ereport.txt
|
||||
find ../distribute/cm -name "*.y" | sort >> ./cm_ereport.txt
|
||||
find ../distribute/cm -name "*.cpp" | sort >> ./cm_ereport.txt
|
||||
fi
|
||||
|
|
|
|||
31
configure.in
31
configure.in
|
|
@ -381,10 +381,7 @@ case ${wal_segsize} in
|
|||
16) ;;
|
||||
32) ;;
|
||||
64) ;;
|
||||
128) ;;
|
||||
256) ;;
|
||||
512) ;;
|
||||
*) AC_MSG_ERROR([Invalid WAL segment size. Allowed values are 1,2,4,8,16,32,64,128,256,512.])
|
||||
*) AC_MSG_ERROR([Invalid WAL segment size. Allowed values are 1,2,4,8,16,32,64.])
|
||||
esac
|
||||
AC_MSG_RESULT([${wal_segsize}MB])
|
||||
|
||||
|
|
@ -396,16 +393,6 @@ AC_DEFINE_UNQUOTED([XLOG_SEG_SIZE], [(${wal_segsize} * 1024 * 1024)], [
|
|||
Changing XLOG_SEG_SIZE requires an initdb.
|
||||
])
|
||||
|
||||
# Set number of MAX_ALLOC_SEGNUM in extreme_rto
|
||||
if test "${wal_segsize}" -lt 256; then
|
||||
MAX_ALLOC_SEGNUM=4
|
||||
elif test "${wal_segsize}" -ge 256 -a "${wal_segsize}" -lt 512; then
|
||||
MAX_ALLOC_SEGNUM=2
|
||||
else
|
||||
MAX_ALLOC_SEGNUM=1
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED(MAX_ALLOC_SEGNUM, $MAX_ALLOC_SEGNUM, [Define the max alloc segnum in extreme_rto.])
|
||||
|
||||
#
|
||||
# C compiler
|
||||
#
|
||||
|
|
@ -1186,19 +1173,6 @@ fi
|
|||
|
||||
# On PPC, check if assembler supports LWARX instruction's mutex hint bit
|
||||
case $host_cpu in
|
||||
x86_64)
|
||||
# On x86_64, check if we can compile a popcntq instruction
|
||||
AC_CACHE_CHECK([whether assembler supports x86_64 popcntq],
|
||||
[pgac_cv_have_x86_64_popcntq],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
|
||||
[long long x = 1; long long r;
|
||||
__asm__ __volatile__ (" popcntq %1,%0\n" : "=q"(r) : "rm"(x));])],
|
||||
[pgac_cv_have_x86_64_popcntq=yes],
|
||||
[pgac_cv_have_x86_64_popcntq=no])])
|
||||
if test x"$pgac_cv_have_x86_64_popcntq" = xyes ; then
|
||||
AC_DEFINE(HAVE_X86_64_POPCNTQ, 1, [Define to 1 if the assembler supports X86_64's POPCNTQ instruction.])
|
||||
fi
|
||||
;;
|
||||
ppc*|powerpc*)
|
||||
AC_MSG_CHECKING([whether assembler supports lwarx hint bit])
|
||||
AC_TRY_COMPILE([],
|
||||
|
|
@ -1247,9 +1221,6 @@ LIBS=`echo "$LIBS" | sed -e 's/-ledit//g' -e 's/-lreadline//g'`
|
|||
|
||||
AC_CHECK_FUNCS([cbrt dlopen fdatasync getifaddrs getpeerucred getrlimit mbstowcs_l memmove poll pstat readlink setproctitle setsid sigprocmask symlink sync_file_range towlower utime utimes waitpid wcstombs wcstombs_l])
|
||||
|
||||
# We assume that we needn't test all widths of these explicitly:
|
||||
PGAC_CHECK_BUILTIN_FUNC([__builtin_clz], [unsigned int x])
|
||||
|
||||
AC_REPLACE_FUNCS(fseeko)
|
||||
case $host_os in
|
||||
# NetBSD uses a custom fseeko/ftello built on fsetpos/fgetpos
|
||||
|
|
|
|||
|
|
@ -21,6 +21,3 @@
|
|||
/pg_xlogdump/xlogdesc.cpp
|
||||
/pg_xlogdump/xlogreader.cpp
|
||||
/pg_xlogdump/xlogreader_common.cpp
|
||||
/pg_xlogdump/segpagedesc.cpp
|
||||
/pg_xlogdump/uheapdesc.cpp
|
||||
/pg_xlogdump/undologdesc.cpp
|
||||
|
|
|
|||
|
|
@ -4,14 +4,14 @@ set(CMAKE_VERBOSE_MAKEFILE ON)
|
|||
set(CMAKE_RULE_MESSAGES OFF)
|
||||
set(CMAKE_SKIP_RPATH TRUE)
|
||||
|
||||
INCLUDE_DIRECTORIES(${CJSON_INCLUDE_PATH} ${BOOST_INCLUDE_PATH})
|
||||
INCLUDE_DIRECTORIES(${LIBTHRIFT_INCLUDE_PATH} ${SNAPPY_INCLUDE_PATH} ${CJSON_INCLUDE_PATH} ${BOOST_INCLUDE_PATH})
|
||||
|
||||
set(CMAKE_MODULE_PATH
|
||||
set(CMAKE_MODULE_PATH
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/carbondata
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/gsredistribute
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/hstore
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_decoding
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mppdb_decoding
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/sql_decoding
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/spi
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pg_upgrade_support
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/postgres_fdw
|
||||
|
|
@ -20,6 +20,7 @@ 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
|
||||
)
|
||||
|
|
@ -27,7 +28,6 @@ set(CMAKE_MODULE_PATH
|
|||
add_subdirectory(hstore)
|
||||
add_subdirectory(test_decoding)
|
||||
add_subdirectory(mppdb_decoding)
|
||||
add_subdirectory(sql_decoding)
|
||||
add_subdirectory(spi)
|
||||
if("${ENABLE_MULTIPLE_NODES}" STREQUAL "ON" OR "${ENABLE_PRIVATEGAUSS}" STREQUAL "ON")
|
||||
add_subdirectory(pg_upgrade_support)
|
||||
|
|
@ -38,6 +38,7 @@ 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)
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
PG_MODULE_MAGIC;
|
||||
|
||||
extern "C" void _PG_init(void);
|
||||
void _PG_init(void);
|
||||
|
||||
/* GUC Variables */
|
||||
static int auth_delay_milliseconds;
|
||||
|
|
|
|||
|
|
@ -46,8 +46,8 @@ static ExecutorEnd_hook_type prev_ExecutorEnd = NULL;
|
|||
#define auto_explain_enabled() \
|
||||
(auto_explain_log_min_duration >= 0 && (nesting_level == 0 || auto_explain_log_nested_statements))
|
||||
|
||||
extern "C" void _PG_init(void);
|
||||
extern "C" void _PG_fini(void);
|
||||
void _PG_init(void);
|
||||
void _PG_fini(void);
|
||||
|
||||
static void explain_ExecutorStart(QueryDesc* queryDesc, int eflags);
|
||||
static void explain_ExecutorRun(QueryDesc* queryDesc, ScanDirection direction, long count);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
MODULE_big = dblink
|
||||
OBJS = dblink.o
|
||||
PG_CPPFLAGS = -I$(libpq_srcdir)
|
||||
SHLIB_LINK = $(libpq) -L$(LIBODBC_LIB_PATH) -lodbc
|
||||
SHLIB_LINK = $(libpq)
|
||||
SHLIB_PREREQS = submake-libpq
|
||||
|
||||
EXTENSION = dblink
|
||||
|
|
|
|||
|
|
@ -221,8 +221,3 @@ CREATE FUNCTION dblink_get_notify(
|
|||
RETURNS setof record
|
||||
AS 'MODULE_PATHNAME', 'dblink_get_notify'
|
||||
LANGUAGE C STRICT;
|
||||
|
||||
CREATE FUNCTION dblink_get_drivername()
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'dblink_get_drivername'
|
||||
LANGUAGE C STRICT;
|
||||
|
|
@ -44,4 +44,3 @@ ALTER EXTENSION dblink ADD function dblink_cancel_query(text);
|
|||
ALTER EXTENSION dblink ADD function dblink_error_message(text);
|
||||
ALTER EXTENSION dblink ADD function dblink_get_notify();
|
||||
ALTER EXTENSION dblink ADD function dblink_get_notify(text);
|
||||
ALTER EXTENSION dblink ADD function dblink_get_drivername();
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -35,113 +35,6 @@
|
|||
#define DBLINK_H
|
||||
|
||||
#include "fmgr.h"
|
||||
#include "sql.h"
|
||||
#include "sqlext.h"
|
||||
|
||||
|
||||
typedef struct ODBCconn {
|
||||
SQLHENV envHandle; /* Handle ODBC environment */
|
||||
SQLHDBC connHandle; /* Handle connection */
|
||||
SQLHSTMT stmt; /* Handle sql */
|
||||
} ODBCconn;
|
||||
|
||||
typedef struct storeInfo {
|
||||
FunctionCallInfo fcinfo;
|
||||
Tuplestorestate* tuplestore;
|
||||
AttInMetadata* attinmeta;
|
||||
MemoryContext tmpcontext;
|
||||
char** cstrs;
|
||||
/* temp storage for results to avoid leaks on exception */
|
||||
PGresult* last_res;
|
||||
PGresult* cur_res;
|
||||
} storeInfo;
|
||||
|
||||
typedef struct LinkInfo {
|
||||
SQLCHAR* username; /* odbc username */
|
||||
SQLCHAR* password; /* odbc password */
|
||||
SQLCHAR* drivername; /* odbc driver name */
|
||||
} LinkInfo;
|
||||
|
||||
class Linker : public BaseObject {
|
||||
public:
|
||||
virtual void finish() = 0;
|
||||
virtual text* exec(char* conname, const char* sql, bool fail) = 0;
|
||||
virtual char* errorMsg() = 0;
|
||||
virtual int isBusy() = 0;
|
||||
virtual char* cancel(PGcancel* cancel) = 0;
|
||||
virtual int sendQuery(char* sql) = 0;
|
||||
virtual char* open(char* conname, char* sql, bool fail) = 0;
|
||||
virtual char* close(char* conname, char* sql, bool fail) = 0;
|
||||
virtual void getResult(char* conname, FunctionCallInfo fcinfo, char* sql, bool fail) = 0;
|
||||
virtual void queryResult(ReturnSetInfo* rsinfo, const char* conname, storeInfo* sinfo, const char* sql, bool fail) = 0;
|
||||
virtual void fetch(char* conname, FunctionCallInfo fcinfo, const char* sql, bool fail, char* curname) = 0;
|
||||
virtual void getNotify(ReturnSetInfo* rsinfo) = 0;
|
||||
};
|
||||
|
||||
typedef struct remoteConn {
|
||||
Linker* linker;
|
||||
} remoteConn;
|
||||
|
||||
typedef struct dblink_session_context {
|
||||
remoteConn* pconn;
|
||||
HTAB* remoteConnHash;
|
||||
} dblink_session_context;
|
||||
|
||||
/*
|
||||
* Following is list that holds multiple remote connections.
|
||||
* Calling convention of each dblink function changes to accept
|
||||
* connection name as the first parameter. The connection list is
|
||||
* much like ecpg e.g. a mapping between a name and a PGconn object.
|
||||
*/
|
||||
|
||||
typedef struct remoteConnHashEnt {
|
||||
char name[NAMEDATALEN];
|
||||
remoteConn* rconn;
|
||||
} remoteConnHashEnt;
|
||||
|
||||
class PQLinker : public Linker {
|
||||
public:
|
||||
PGconn* conn;
|
||||
PGresult* res;
|
||||
int openCursorCount; /* The number of open cursors */
|
||||
bool newXactForCursor; /* Opened a transaction for a cursor */
|
||||
public:
|
||||
PQLinker(char* connstr);
|
||||
void finish();
|
||||
text* exec(char* conname, const char* sql, bool fail);
|
||||
char* errorMsg();
|
||||
int isBusy();
|
||||
char* cancel(PGcancel* cancel);
|
||||
int sendQuery(char* sql);
|
||||
char* open(char* conname, char* sql, bool fail);
|
||||
char* close(char* conname, char* sql, bool fail);
|
||||
void getResult(char* conname, FunctionCallInfo fcinfo, char* sql, bool fail);
|
||||
void queryResult(ReturnSetInfo* rsinfo, const char* conname, storeInfo* sinfo, const char* sql, bool fail);
|
||||
void fetch(char* conname, FunctionCallInfo fcinfo, const char* sql, bool fail, char* curname);
|
||||
void getNotify(ReturnSetInfo* rsinfo);
|
||||
};
|
||||
|
||||
|
||||
class ODBCLinker : public Linker {
|
||||
public:
|
||||
SQLHENV envHandle; /* Handle ODBC environment */
|
||||
SQLHDBC connHandle; /* Handle connection */
|
||||
SQLHSTMT stmt; /* Handle sql */
|
||||
public:
|
||||
ODBCLinker(char* connstr_or_name);
|
||||
void finish();
|
||||
text* exec(char* conname, const char* sql, bool fail);
|
||||
char* errorMsg();
|
||||
int isBusy();
|
||||
char* cancel(PGcancel* cancel);
|
||||
int sendQuery(char* sql);
|
||||
char* open(char* conname, char* sql, bool fail);
|
||||
char* close(char* conname, char* sql, bool fail);
|
||||
void getResult(char* conname, FunctionCallInfo fcinfo, char* sql, bool fail);
|
||||
void queryResult(ReturnSetInfo* rsinfo, const char* conname, storeInfo* sinfo, const char* sql, bool fail);
|
||||
void fetch(char* conname, FunctionCallInfo fcinfo, const char* sql, bool fail, char* curname);
|
||||
void getNotify(ReturnSetInfo* rsinfo);
|
||||
};
|
||||
|
||||
/*
|
||||
* External declarations
|
||||
|
|
@ -165,7 +58,6 @@ extern "C" Datum dblink_build_sql_delete(PG_FUNCTION_ARGS);
|
|||
extern "C" Datum dblink_build_sql_update(PG_FUNCTION_ARGS);
|
||||
extern "C" Datum dblink_current_query(PG_FUNCTION_ARGS);
|
||||
extern "C" Datum dblink_get_notify(PG_FUNCTION_ARGS);
|
||||
extern "C" Datum dblink_get_drivername(PG_FUNCTION_ARGS);
|
||||
extern "C" void set_extension_index(uint32 index);
|
||||
extern "C" void init_session_vars(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
||||
\echo Use "CREATE EXTENSION file_fdw" to load this file. \quit
|
||||
|
||||
CREATE FUNCTION pg_catalog.file_fdw_handler()
|
||||
CREATE FUNCTION file_fdw_handler()
|
||||
RETURNS fdw_handler
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT NOT FENCED;
|
||||
|
|
|
|||
|
|
@ -106,8 +106,8 @@ PG_FUNCTION_INFO_V1(file_fdw_validator);
|
|||
*/
|
||||
static void fileGetForeignRelSize(PlannerInfo* root, RelOptInfo* baserel, Oid foreigntableid);
|
||||
static void fileGetForeignPaths(PlannerInfo* root, RelOptInfo* baserel, Oid foreigntableid);
|
||||
static ForeignScan *fileGetForeignPlan(PlannerInfo *root, RelOptInfo *baserel, Oid foreigntableid,
|
||||
ForeignPath *best_path, List *tlist, List *scan_clauses, Plan *outer_plan);
|
||||
static ForeignScan* fileGetForeignPlan(PlannerInfo* root, RelOptInfo* baserel, Oid foreigntableid,
|
||||
ForeignPath* best_path, List* tlist, List* scan_clauses);
|
||||
static void fileExplainForeignScan(ForeignScanState* node, ExplainState* es);
|
||||
static void fileBeginForeignScan(ForeignScanState* node, int eflags);
|
||||
static TupleTableSlot* fileIterateForeignScan(ForeignScanState* node);
|
||||
|
|
@ -158,14 +158,6 @@ Datum file_fdw_handler(PG_FUNCTION_ARGS)
|
|||
PG_RETURN_POINTER(fdwroutine);
|
||||
}
|
||||
|
||||
void check_file_fdw_permission()
|
||||
{
|
||||
if ((!initialuser()) && !(isOperatoradmin(GetUserId()) && u_sess->attr.attr_security.operation_mode)) {
|
||||
ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||
errmsg("Dist fdw are only available for the supper user and Operatoradmin")));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Validate the generic options given to a FOREIGN DATA WRAPPER, SERVER,
|
||||
* USER MAPPING or FOREIGN TABLE that uses file_fdw.
|
||||
|
|
@ -181,7 +173,6 @@ Datum file_fdw_validator(PG_FUNCTION_ARGS)
|
|||
List* other_options = NIL;
|
||||
ListCell* cell = NULL;
|
||||
|
||||
check_file_fdw_permission();
|
||||
if (catalog == UserMappingRelationId) {
|
||||
ereport(
|
||||
ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("file_fdw doesn't support in USER MAPPING.")));
|
||||
|
|
@ -201,8 +192,9 @@ Datum file_fdw_validator(PG_FUNCTION_ARGS)
|
|||
* security hole.
|
||||
*/
|
||||
if (catalog == ForeignTableRelationId && !superuser())
|
||||
ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||
errmsg("only superuser can change options of a file_fdw foreign table")));
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||
errmsg("only superuser can change options of a file_fdw foreign table")));
|
||||
|
||||
/*
|
||||
* Check that only options supported by file_fdw, and allowed for the
|
||||
|
|
@ -250,8 +242,7 @@ Datum file_fdw_validator(PG_FUNCTION_ARGS)
|
|||
} else if (strcmp(def->defname, "format") == 0) {
|
||||
char* fmt = defGetString(def);
|
||||
if (strcasecmp(fmt, "fixed") == 0) {
|
||||
ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR),
|
||||
errmsg("file_fdw doesn't support fixed option in format")));
|
||||
ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("file_fdw doesn't support fixed option in format")));
|
||||
}
|
||||
other_options = lappend(other_options, def);
|
||||
} else {
|
||||
|
|
@ -375,7 +366,7 @@ static List* get_file_fdw_attribute_options(Oid relid)
|
|||
|
||||
/* Retrieve FDW options for all user-defined attributes. */
|
||||
for (attnum = 1; attnum <= natts; attnum++) {
|
||||
Form_pg_attribute attr = &tupleDesc->attrs[attnum - 1];
|
||||
Form_pg_attribute attr = tupleDesc->attrs[attnum - 1];
|
||||
List* options = NIL;
|
||||
ListCell* lc = NULL;
|
||||
|
||||
|
|
@ -452,9 +443,8 @@ static void fileGetForeignPaths(PlannerInfo* root, RelOptInfo* baserel, Oid fore
|
|||
startup_cost,
|
||||
total_cost,
|
||||
NIL, /* no pathkeys */
|
||||
NULL, /* no outer rel either */
|
||||
NULL, /* no outer path either */
|
||||
NIL)); /* no fdw_private data */
|
||||
NULL, /* no outer rel either */
|
||||
NIL)); /* no fdw_private data */
|
||||
|
||||
/*
|
||||
* If data file was sorted, and we knew it somehow, we could insert
|
||||
|
|
@ -465,10 +455,10 @@ static void fileGetForeignPaths(PlannerInfo* root, RelOptInfo* baserel, Oid fore
|
|||
|
||||
/*
|
||||
* fileGetForeignPlan
|
||||
* Create a ForeignScan plan node for scanning the foreign table
|
||||
* Create a ForeignScan plan node for scanning the foreign table
|
||||
*/
|
||||
static ForeignScan *fileGetForeignPlan(PlannerInfo *root, RelOptInfo *baserel, Oid foreigntableid,
|
||||
ForeignPath *best_path, List *tlist, List *scan_clauses, Plan *outer_plan)
|
||||
static ForeignScan* fileGetForeignPlan(
|
||||
PlannerInfo* root, RelOptInfo* baserel, Oid foreigntableid, ForeignPath* best_path, List* tlist, List* scan_clauses)
|
||||
{
|
||||
Index scan_relid = baserel->relid;
|
||||
|
||||
|
|
@ -486,11 +476,8 @@ static ForeignScan *fileGetForeignPlan(PlannerInfo *root, RelOptInfo *baserel, O
|
|||
scan_clauses,
|
||||
scan_relid,
|
||||
NIL, /* no expressions to evaluate */
|
||||
NIL, /* no private state either */
|
||||
NIL,
|
||||
NIL,
|
||||
NULL,
|
||||
EXEC_ON_DATANODES);
|
||||
EXEC_ON_DATANODES); /* no private state either */
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -712,7 +699,7 @@ static void estimate_size(PlannerInfo* root, RelOptInfo* baserel, FileFdwPlanSta
|
|||
*/
|
||||
int tuple_width;
|
||||
|
||||
tuple_width = MAXALIGN(baserel->reltarget->width) + MAXALIGN(sizeof(HeapTupleHeaderData));
|
||||
tuple_width = MAXALIGN(baserel->width) + MAXALIGN(sizeof(HeapTupleHeaderData));
|
||||
ntuples = clamp_row_est((double)stat_buf.st_size / (double)tuple_width);
|
||||
|
||||
baserel->tuples = ntuples;
|
||||
|
|
|
|||
|
|
@ -57,18 +57,7 @@ CREATE FOREIGN TABLE tbl (a int) SERVER file_server OPTIONS (format 'csv', delim
|
|||
CREATE FOREIGN TABLE tbl (a int) SERVER file_server OPTIONS (format 'csv', null '
|
||||
'); -- ERROR
|
||||
CREATE FOREIGN TABLE tbl (a int) SERVER file_server; -- ERROR
|
||||
CREATE FOREIGN TABLE tbl (a int2,b float4) SERVER file_server OPTIONS (format 'text', filename '', delimiter ' ', null '\n'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'text'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'binary'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'csv'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '',format 'text', header 'false'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '',format 'binary', header 'off'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
|
||||
CREATE FOREIGN TABLE agg_text (
|
||||
a int2,
|
||||
b float4
|
||||
|
|
|
|||
|
|
@ -75,18 +75,6 @@ CREATE FOREIGN TABLE tbl (a int) SERVER file_server OPTIONS (format 'csv', null
|
|||
ERROR: COPY null representation cannot use newline or carriage return
|
||||
CREATE FOREIGN TABLE tbl (a int) SERVER file_server; -- ERROR
|
||||
ERROR: filename is required for file_fdw foreign tables
|
||||
CREATE FOREIGN TABLE tbl (a int2,b float4) SERVER file_server OPTIONS (format 'text', filename '', delimiter ' ', null '\n'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'text'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'binary'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'csv'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '',format 'text', header 'false'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '',format 'binary', header 'off'); -- SUCCESS
|
||||
DROP FOREIGN TABLE tbl;
|
||||
CREATE FOREIGN TABLE agg_text (
|
||||
a int2,
|
||||
b float4
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -3,12 +3,12 @@
|
|||
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
||||
\echo Use "CREATE EXTENSION gc_fdw" to load this file. \quit
|
||||
|
||||
CREATE FUNCTION pg_catalog.gc_fdw_handler()
|
||||
CREATE FUNCTION gc_fdw_handler()
|
||||
RETURNS fdw_handler
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.gc_fdw_validator(text[], oid)
|
||||
CREATE FUNCTION gc_fdw_validator(text[], oid)
|
||||
RETURNS void
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT NOT FENCED;
|
||||
|
|
|
|||
|
|
@ -72,8 +72,12 @@ static void gcGetForeignPaths(PlannerInfo* root, RelOptInfo* baserel, Oid foreig
|
|||
return;
|
||||
}
|
||||
|
||||
static ForeignScan *gcGetForeignPlan(PlannerInfo *root, RelOptInfo *baserel, Oid foreigntableid,
|
||||
ForeignPath *best_path, List *tlist, List *scan_clauses, Plan *outer_plan)
|
||||
static ForeignScan *gcGetForeignPlan(PlannerInfo *root,
|
||||
RelOptInfo *baserel,
|
||||
Oid foreigntableid,
|
||||
ForeignPath *best_path,
|
||||
List *tlist,
|
||||
List *scan_clauses)
|
||||
{
|
||||
DISTRIBUTED_FEATURE_NOT_SUPPORTED();
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
#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/
|
||||
)
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
# 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
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
/* 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 hdfs_fdw_handler()
|
||||
RETURNS fdw_handler
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT NOT FENCED;
|
||||
|
||||
CREATE FUNCTION 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;
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
# 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
|
|
@ -0,0 +1,75 @@
|
|||
#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 */
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
#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_ */
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
#!/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
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
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);
|
||||
unsigned char* p = NULL;
|
||||
char* p = NULL;
|
||||
int len, nr;
|
||||
|
||||
len = 0;
|
||||
nr = size;
|
||||
for (len += nr, p = (unsigned char*)buf; nr--; ++p)
|
||||
for (len += nr, p = buf; nr--; ++p)
|
||||
_CRC32_(crc, *p);
|
||||
return ~crc;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,22 +5,22 @@
|
|||
|
||||
CREATE TYPE hstore;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_in(cstring)
|
||||
CREATE FUNCTION hstore_in(cstring)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_out(hstore)
|
||||
CREATE FUNCTION hstore_out(hstore)
|
||||
RETURNS cstring
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_recv(internal)
|
||||
CREATE FUNCTION hstore_recv(internal)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_send(hstore)
|
||||
CREATE FUNCTION hstore_send(hstore)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
|
@ -34,12 +34,12 @@ CREATE TYPE hstore (
|
|||
STORAGE = extended
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_version_diag(hstore)
|
||||
CREATE FUNCTION hstore_version_diag(hstore)
|
||||
RETURNS integer
|
||||
AS 'MODULE_PATHNAME','hstore_version_diag'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.fetchval(hstore,text)
|
||||
CREATE FUNCTION fetchval(hstore,text)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME','hstore_fetchval'
|
||||
LANGUAGE C STRICT IMMUTABLE;
|
||||
|
|
@ -50,7 +50,7 @@ CREATE OPERATOR -> (
|
|||
PROCEDURE = fetchval
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.slice_array(hstore,text[])
|
||||
CREATE FUNCTION slice_array(hstore,text[])
|
||||
RETURNS text[]
|
||||
AS 'MODULE_PATHNAME','hstore_slice_to_array'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
|
@ -61,17 +61,17 @@ CREATE OPERATOR -> (
|
|||
PROCEDURE = slice_array
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.slice(hstore,text[])
|
||||
CREATE FUNCTION slice(hstore,text[])
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_slice_to_hstore'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.isexists(hstore,text)
|
||||
CREATE FUNCTION isexists(hstore,text)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_exists'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.exist(hstore,text)
|
||||
CREATE FUNCTION exist(hstore,text)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_exists'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
|
@ -84,7 +84,7 @@ CREATE OPERATOR ? (
|
|||
JOIN = contjoinsel
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.exists_any(hstore,text[])
|
||||
CREATE FUNCTION exists_any(hstore,text[])
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_exists_any'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
|
@ -97,7 +97,7 @@ CREATE OPERATOR ?| (
|
|||
JOIN = contjoinsel
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.exists_all(hstore,text[])
|
||||
CREATE FUNCTION exists_all(hstore,text[])
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_exists_all'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
|
@ -110,27 +110,27 @@ CREATE OPERATOR ?& (
|
|||
JOIN = contjoinsel
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.isdefined(hstore,text)
|
||||
CREATE FUNCTION isdefined(hstore,text)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_defined'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.defined(hstore,text)
|
||||
CREATE FUNCTION defined(hstore,text)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_defined'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.delete(hstore,text)
|
||||
CREATE FUNCTION delete(hstore,text)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_delete'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.delete(hstore,text[])
|
||||
CREATE FUNCTION delete(hstore,text[])
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_delete_array'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.delete(hstore,hstore)
|
||||
CREATE FUNCTION delete(hstore,hstore)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_delete_hstore'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
|
@ -153,7 +153,7 @@ CREATE OPERATOR - (
|
|||
PROCEDURE = delete
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.hs_concat(hstore,hstore)
|
||||
CREATE FUNCTION hs_concat(hstore,hstore)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_concat'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
|
@ -164,12 +164,12 @@ CREATE OPERATOR || (
|
|||
PROCEDURE = hs_concat
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.hs_contains(hstore,hstore)
|
||||
CREATE FUNCTION hs_contains(hstore,hstore)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_contains'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hs_contained(hstore,hstore)
|
||||
CREATE FUNCTION hs_contained(hstore,hstore)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_contained'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
|
@ -211,12 +211,12 @@ CREATE OPERATOR ~ (
|
|||
JOIN = contjoinsel
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.tconvert(text,text)
|
||||
CREATE FUNCTION tconvert(text,text)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_from_text'
|
||||
LANGUAGE C IMMUTABLE NOT FENCED; -- not STRICT; needs to allow (key,NULL)
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore(text,text)
|
||||
CREATE FUNCTION hstore(text,text)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_from_text'
|
||||
LANGUAGE C IMMUTABLE; -- not STRICT; needs to allow (key,NULL)
|
||||
|
|
@ -227,25 +227,25 @@ CREATE OPERATOR => (
|
|||
PROCEDURE = hstore
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore(text[],text[])
|
||||
CREATE FUNCTION hstore(text[],text[])
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME', 'hstore_from_arrays'
|
||||
LANGUAGE C IMMUTABLE NOT FENCED; -- not STRICT; allows (keys,null)
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore(text[])
|
||||
CREATE FUNCTION hstore(text[])
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME', 'hstore_from_array'
|
||||
LANGUAGE C IMMUTABLE STRICT NOT FENCED;
|
||||
|
||||
CREATE CAST (text[] AS hstore)
|
||||
WITH FUNCTION pg_catalog.hstore(text[]);
|
||||
WITH FUNCTION hstore(text[]);
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore(record)
|
||||
CREATE FUNCTION hstore(record)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME', 'hstore_from_record'
|
||||
LANGUAGE C IMMUTABLE NOT FENCED; -- not STRICT; allows (null::recordtype)
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_to_array(hstore)
|
||||
CREATE FUNCTION hstore_to_array(hstore)
|
||||
RETURNS text[]
|
||||
AS 'MODULE_PATHNAME','hstore_to_array'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
|
@ -255,7 +255,7 @@ CREATE OPERATOR %% (
|
|||
PROCEDURE = hstore_to_array
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_to_matrix(hstore)
|
||||
CREATE FUNCTION hstore_to_matrix(hstore)
|
||||
RETURNS text[]
|
||||
AS 'MODULE_PATHNAME','hstore_to_matrix'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
|
@ -265,27 +265,27 @@ CREATE OPERATOR %# (
|
|||
PROCEDURE = hstore_to_matrix
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.akeys(hstore)
|
||||
CREATE FUNCTION akeys(hstore)
|
||||
RETURNS text[]
|
||||
AS 'MODULE_PATHNAME','hstore_akeys'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.avals(hstore)
|
||||
CREATE FUNCTION avals(hstore)
|
||||
RETURNS text[]
|
||||
AS 'MODULE_PATHNAME','hstore_avals'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.skeys(hstore)
|
||||
CREATE FUNCTION skeys(hstore)
|
||||
RETURNS setof text
|
||||
AS 'MODULE_PATHNAME','hstore_skeys'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.svals(hstore)
|
||||
CREATE FUNCTION svals(hstore)
|
||||
RETURNS setof text
|
||||
AS 'MODULE_PATHNAME','hstore_svals'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.each(IN hs hstore,
|
||||
CREATE FUNCTION each(IN hs hstore,
|
||||
OUT key text,
|
||||
OUT value text)
|
||||
RETURNS SETOF record
|
||||
|
|
@ -521,7 +521,7 @@ AS
|
|||
OPERATOR 9 ?(hstore,text),
|
||||
OPERATOR 10 ?|(hstore,text[]),
|
||||
OPERATOR 11 ?&(hstore,text[]),
|
||||
FUNCTION 1 pg_catalog.bttextcmp(text,text),
|
||||
FUNCTION 1 bttextcmp(text,text),
|
||||
FUNCTION 2 gin_extract_hstore(internal, internal),
|
||||
FUNCTION 3 gin_extract_hstore_query(internal, internal, int2, internal, internal),
|
||||
FUNCTION 4 gin_consistent_hstore(internal, int2, internal, int4, internal, internal),
|
||||
|
|
|
|||
|
|
@ -5,22 +5,22 @@
|
|||
|
||||
CREATE TYPE hstore;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_in(cstring)
|
||||
CREATE FUNCTION hstore_in(cstring)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_out(hstore)
|
||||
CREATE FUNCTION hstore_out(hstore)
|
||||
RETURNS cstring
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_recv(internal)
|
||||
CREATE FUNCTION hstore_recv(internal)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_send(hstore)
|
||||
CREATE FUNCTION hstore_send(hstore)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
|
@ -34,145 +34,145 @@ CREATE TYPE hstore (
|
|||
STORAGE = extended
|
||||
);
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_version_diag(hstore)
|
||||
CREATE FUNCTION hstore_version_diag(hstore)
|
||||
RETURNS integer
|
||||
AS 'MODULE_PATHNAME','hstore_version_diag'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.fetchval(hstore,text)
|
||||
CREATE FUNCTION fetchval(hstore,text)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME','hstore_fetchval'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.slice_array(hstore,text[])
|
||||
CREATE FUNCTION slice_array(hstore,text[])
|
||||
RETURNS text[]
|
||||
AS 'MODULE_PATHNAME','hstore_slice_to_array'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.slice(hstore,text[])
|
||||
CREATE FUNCTION slice(hstore,text[])
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_slice_to_hstore'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.isexists(hstore,text)
|
||||
CREATE FUNCTION isexists(hstore,text)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_exists'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.exist(hstore,text)
|
||||
CREATE FUNCTION exist(hstore,text)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_exists'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.exists_any(hstore,text[])
|
||||
CREATE FUNCTION exists_any(hstore,text[])
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_exists_any'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.exists_all(hstore,text[])
|
||||
CREATE FUNCTION exists_all(hstore,text[])
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_exists_all'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.isdefined(hstore,text)
|
||||
CREATE FUNCTION isdefined(hstore,text)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_defined'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.defined(hstore,text)
|
||||
CREATE FUNCTION defined(hstore,text)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_defined'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.delete(hstore,text)
|
||||
CREATE FUNCTION delete(hstore,text)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_delete'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.delete(hstore,text[])
|
||||
CREATE FUNCTION delete(hstore,text[])
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_delete_array'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.delete(hstore,hstore)
|
||||
CREATE FUNCTION delete(hstore,hstore)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_delete_hstore'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hs_concat(hstore,hstore)
|
||||
CREATE FUNCTION hs_concat(hstore,hstore)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_concat'
|
||||
LANGUAGE C IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hs_contains(hstore,hstore)
|
||||
CREATE FUNCTION hs_contains(hstore,hstore)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_contains'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hs_contained(hstore,hstore)
|
||||
CREATE FUNCTION hs_contained(hstore,hstore)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME','hstore_contained'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.tconvert(text,text)
|
||||
CREATE FUNCTION tconvert(text,text)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_from_text'
|
||||
LANGUAGE C IMMUTABLE NOT FENCED;; -- not STRICT; needs to allow (key,NULL)
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore(text,text)
|
||||
CREATE FUNCTION hstore(text,text)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME','hstore_from_text'
|
||||
LANGUAGE C IMMUTABLE NOT FENCED;; -- not STRICT; needs to allow (key,NULL)
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore(text[],text[])
|
||||
CREATE FUNCTION hstore(text[],text[])
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME', 'hstore_from_arrays'
|
||||
LANGUAGE C IMMUTABLE NOT FENCED;; -- not STRICT; allows (keys,null)
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore(text[])
|
||||
CREATE FUNCTION hstore(text[])
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME', 'hstore_from_array'
|
||||
LANGUAGE C IMMUTABLE STRICT NOT FENCED;;
|
||||
|
||||
CREATE CAST (text[] AS hstore)
|
||||
WITH FUNCTION pg_catalog.hstore(text[]);
|
||||
WITH FUNCTION hstore(text[]);
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore(record)
|
||||
CREATE FUNCTION hstore(record)
|
||||
RETURNS hstore
|
||||
AS 'MODULE_PATHNAME', 'hstore_from_record'
|
||||
LANGUAGE C IMMUTABLE NOT FENCED;; -- not STRICT; allows (null::recordtype)
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_to_array(hstore)
|
||||
CREATE FUNCTION hstore_to_array(hstore)
|
||||
RETURNS text[]
|
||||
AS 'MODULE_PATHNAME','hstore_to_array'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.hstore_to_matrix(hstore)
|
||||
CREATE FUNCTION hstore_to_matrix(hstore)
|
||||
RETURNS text[]
|
||||
AS 'MODULE_PATHNAME','hstore_to_matrix'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.akeys(hstore)
|
||||
CREATE FUNCTION akeys(hstore)
|
||||
RETURNS text[]
|
||||
AS 'MODULE_PATHNAME','hstore_akeys'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.avals(hstore)
|
||||
CREATE FUNCTION avals(hstore)
|
||||
RETURNS text[]
|
||||
AS 'MODULE_PATHNAME','hstore_avals'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.skeys(hstore)
|
||||
CREATE FUNCTION skeys(hstore)
|
||||
RETURNS setof text
|
||||
AS 'MODULE_PATHNAME','hstore_skeys'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.svals(hstore)
|
||||
CREATE FUNCTION svals(hstore)
|
||||
RETURNS setof text
|
||||
AS 'MODULE_PATHNAME','hstore_svals'
|
||||
LANGUAGE C STRICT IMMUTABLE NOT FENCED;;
|
||||
|
||||
CREATE FUNCTION pg_catalog.each(IN hs hstore,
|
||||
CREATE FUNCTION each(IN hs hstore,
|
||||
OUT key text,
|
||||
OUT value text)
|
||||
RETURNS SETOF record
|
||||
|
|
|
|||
|
|
@ -4,55 +4,55 @@
|
|||
\echo Use "CREATE EXTENSION hstore" to load this file. \quit
|
||||
|
||||
ALTER EXTENSION hstore ADD type hstore;
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore_in(cstring);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore_out(hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore_recv(internal);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore_send(hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore_version_diag(hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.fetchval(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function hstore_in(cstring);
|
||||
ALTER EXTENSION hstore ADD function hstore_out(hstore);
|
||||
ALTER EXTENSION hstore ADD function hstore_recv(internal);
|
||||
ALTER EXTENSION hstore ADD function hstore_send(hstore);
|
||||
ALTER EXTENSION hstore ADD function hstore_version_diag(hstore);
|
||||
ALTER EXTENSION hstore ADD function fetchval(hstore,text);
|
||||
ALTER EXTENSION hstore ADD operator ->(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.slice_array(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD function slice_array(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD operator ->(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.slice(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.isexists(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.exist(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function slice(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD function isexists(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function exist(hstore,text);
|
||||
ALTER EXTENSION hstore ADD operator ?(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.exists_any(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD function exists_any(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD operator ?|(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.exists_all(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD function exists_all(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD operator ?&(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.isdefined(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.defined(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.delete(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.delete(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.delete(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD function isdefined(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function defined(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function delete(hstore,text);
|
||||
ALTER EXTENSION hstore ADD function delete(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD function delete(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD operator -(hstore,text);
|
||||
ALTER EXTENSION hstore ADD operator -(hstore,text[]);
|
||||
ALTER EXTENSION hstore ADD operator -(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hs_concat(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD function hs_concat(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD operator ||(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hs_contains(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hs_contained(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD function hs_contains(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD function hs_contained(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD operator <@(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD operator @>(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD operator ~(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD operator @(hstore,hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.tconvert(text,text);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore(text,text);
|
||||
ALTER EXTENSION hstore ADD function tconvert(text,text);
|
||||
ALTER EXTENSION hstore ADD function hstore(text,text);
|
||||
ALTER EXTENSION hstore ADD operator =>(text,text);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore(text[],text[]);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore(text[]);
|
||||
ALTER EXTENSION hstore ADD function hstore(text[],text[]);
|
||||
ALTER EXTENSION hstore ADD function hstore(text[]);
|
||||
ALTER EXTENSION hstore ADD cast (text[] as hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore(record);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore_to_array(hstore);
|
||||
ALTER EXTENSION hstore ADD function hstore(record);
|
||||
ALTER EXTENSION hstore ADD function hstore_to_array(hstore);
|
||||
ALTER EXTENSION hstore ADD operator %%(NONE,hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.hstore_to_matrix(hstore);
|
||||
ALTER EXTENSION hstore ADD function hstore_to_matrix(hstore);
|
||||
ALTER EXTENSION hstore ADD operator %#(NONE,hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.akeys(hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.avals(hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.skeys(hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.svals(hstore);
|
||||
ALTER EXTENSION hstore ADD function pg_catalog.each(hstore);
|
||||
ALTER EXTENSION hstore ADD function akeys(hstore);
|
||||
ALTER EXTENSION hstore ADD function avals(hstore);
|
||||
ALTER EXTENSION hstore ADD function skeys(hstore);
|
||||
ALTER EXTENSION hstore ADD function svals(hstore);
|
||||
ALTER EXTENSION hstore ADD function each(hstore);
|
||||
ALTER EXTENSION hstore ADD function populate_record(anyelement,hstore);
|
||||
ALTER EXTENSION hstore ADD operator #=(anyelement,hstore);
|
||||
ALTER EXTENSION hstore ADD function hstore_eq(hstore,hstore);
|
||||
|
|
|
|||
|
|
@ -397,7 +397,6 @@ 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));
|
||||
|
||||
|
|
@ -406,7 +405,6 @@ 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;
|
||||
|
|
@ -702,15 +700,15 @@ Datum hstore_from_record(PG_FUNCTION_ARGS)
|
|||
|
||||
for (i = 0, j = 0; i < ncolumns; ++i) {
|
||||
ColumnIOData* column_info = &my_extra->columns[i];
|
||||
Oid column_type = tupdesc->attrs[i].atttypid;
|
||||
Oid column_type = tupdesc->attrs[i]->atttypid;
|
||||
char* value = NULL;
|
||||
|
||||
/* Ignore dropped columns in datatype */
|
||||
if (tupdesc->attrs[i].attisdropped)
|
||||
if (tupdesc->attrs[i]->attisdropped)
|
||||
continue;
|
||||
|
||||
pairs[j].key = NameStr(tupdesc->attrs[i].attname);
|
||||
pairs[j].keylen = hstoreCheckKeyLen(strlen(NameStr(tupdesc->attrs[i].attname)));
|
||||
pairs[j].key = NameStr(tupdesc->attrs[i]->attname);
|
||||
pairs[j].keylen = hstoreCheckKeyLen(strlen(NameStr(tupdesc->attrs[i]->attname)));
|
||||
|
||||
if (nulls == NULL || nulls[i]) {
|
||||
pairs[j].val = NULL;
|
||||
|
|
@ -864,18 +862,18 @@ Datum hstore_populate_record(PG_FUNCTION_ARGS)
|
|||
|
||||
for (i = 0; i < ncolumns; ++i) {
|
||||
ColumnIOData* column_info = &my_extra->columns[i];
|
||||
Oid column_type = tupdesc->attrs[i].atttypid;
|
||||
Oid column_type = tupdesc->attrs[i]->atttypid;
|
||||
char* value = NULL;
|
||||
int idx;
|
||||
int vallen;
|
||||
|
||||
/* Ignore dropped columns in datatype */
|
||||
if (tupdesc->attrs[i].attisdropped) {
|
||||
if (tupdesc->attrs[i]->attisdropped) {
|
||||
nulls[i] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
idx = hstoreFindKey(hs, 0, NameStr(tupdesc->attrs[i].attname), strlen(NameStr(tupdesc->attrs[i].attname)));
|
||||
idx = hstoreFindKey(hs, 0, NameStr(tupdesc->attrs[i]->attname), strlen(NameStr(tupdesc->attrs[i]->attname)));
|
||||
|
||||
/*
|
||||
* we can't just skip here if the key wasn't found since we might have
|
||||
|
|
@ -903,7 +901,7 @@ Datum hstore_populate_record(PG_FUNCTION_ARGS)
|
|||
* checks are done
|
||||
*/
|
||||
values[i] =
|
||||
InputFunctionCall(&column_info->proc, NULL, column_info->typioparam, tupdesc->attrs[i].atttypmod);
|
||||
InputFunctionCall(&column_info->proc, NULL, column_info->typioparam, tupdesc->attrs[i]->atttypmod);
|
||||
nulls[i] = true;
|
||||
} else {
|
||||
vallen = HS_VALLEN(entries, idx);
|
||||
|
|
@ -913,7 +911,7 @@ Datum hstore_populate_record(PG_FUNCTION_ARGS)
|
|||
value[vallen] = 0;
|
||||
|
||||
values[i] =
|
||||
InputFunctionCall(&column_info->proc, value, column_info->typioparam, tupdesc->attrs[i].atttypmod);
|
||||
InputFunctionCall(&column_info->proc, value, column_info->typioparam, tupdesc->attrs[i]->atttypmod);
|
||||
nulls[i] = false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,99 +50,99 @@ select ' '::hstore;
|
|||
|
||||
-- -> operator
|
||||
|
||||
select pg_catalog.fetchval('aa=>b, c=>d , b=>16'::hstore, 'c');
|
||||
select pg_catalog.fetchval('aa=>b, c=>d , b=>16'::hstore, 'b');
|
||||
select pg_catalog.fetchval('aa=>b, c=>d , b=>16'::hstore, 'aa');
|
||||
select (pg_catalog.fetchval('aa=>b, c=>d , b=>16'::hstore, 'gg')) is null;
|
||||
select (pg_catalog.fetchval('aa=>NULL, c=>d , b=>16'::hstore, 'aa')) is null;
|
||||
select (pg_catalog.fetchval('aa=>"NULL", c=>d , b=>16'::hstore, 'aa')) is null;
|
||||
select fetchval('aa=>b, c=>d , b=>16'::hstore, 'c');
|
||||
select fetchval('aa=>b, c=>d , b=>16'::hstore, 'b');
|
||||
select fetchval('aa=>b, c=>d , b=>16'::hstore, 'aa');
|
||||
select (fetchval('aa=>b, c=>d , b=>16'::hstore, 'gg')) is null;
|
||||
select (fetchval('aa=>NULL, c=>d , b=>16'::hstore, 'aa')) is null;
|
||||
select (fetchval('aa=>"NULL", c=>d , b=>16'::hstore, 'aa')) is null;
|
||||
|
||||
-- -> array operator
|
||||
|
||||
select pg_catalog.slice_array('aa=>"NULL", c=>d , b=>16'::hstore, ARRAY['aa','c']);
|
||||
select pg_catalog.slice_array('aa=>"NULL", c=>d , b=>16'::hstore, ARRAY['c','aa']);
|
||||
select pg_catalog.slice_array('aa=>NULL, c=>d , b=>16'::hstore, ARRAY['aa','c',null]);
|
||||
select pg_catalog.slice_array('aa=>1, c=>3, b=>2, d=>4'::hstore, ARRAY[['b','d'],['aa','c']]);
|
||||
select slice_array('aa=>"NULL", c=>d , b=>16'::hstore, ARRAY['aa','c']);
|
||||
select slice_array('aa=>"NULL", c=>d , b=>16'::hstore, ARRAY['c','aa']);
|
||||
select slice_array('aa=>NULL, c=>d , b=>16'::hstore, ARRAY['aa','c',null]);
|
||||
select slice_array('aa=>1, c=>3, b=>2, d=>4'::hstore, ARRAY[['b','d'],['aa','c']]);
|
||||
|
||||
-- exists/defined
|
||||
|
||||
select pg_catalog.exist('a=>NULL, b=>qq', 'a');
|
||||
select pg_catalog.exist('a=>NULL, b=>qq', 'b');
|
||||
select pg_catalog.exist('a=>NULL, b=>qq', 'c');
|
||||
select pg_catalog.exist('a=>"NULL", b=>qq', 'a');
|
||||
select pg_catalog.defined('a=>NULL, b=>qq', 'a');
|
||||
select pg_catalog.defined('a=>NULL, b=>qq', 'b');
|
||||
select pg_catalog.defined('a=>NULL, b=>qq', 'c');
|
||||
select pg_catalog.defined('a=>"NULL", b=>qq', 'a');
|
||||
select exist('a=>NULL, b=>qq', 'a');
|
||||
select exist('a=>NULL, b=>qq', 'b');
|
||||
select exist('a=>NULL, b=>qq', 'c');
|
||||
select exist('a=>"NULL", b=>qq', 'a');
|
||||
select defined('a=>NULL, b=>qq', 'a');
|
||||
select defined('a=>NULL, b=>qq', 'b');
|
||||
select defined('a=>NULL, b=>qq', 'c');
|
||||
select defined('a=>"NULL", b=>qq', 'a');
|
||||
|
||||
-- delete
|
||||
|
||||
select pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, 'a');
|
||||
select pg_catalog.delete('a=>null , b=>2, c=>3'::hstore, 'a');
|
||||
select pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, 'b');
|
||||
select pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, 'c');
|
||||
select pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, 'd');
|
||||
select pg_catalog.pg_column_size(pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, 'b'::text))
|
||||
= pg_catalog.pg_column_size('a=>1, b=>2'::hstore);
|
||||
select delete('a=>1 , b=>2, c=>3'::hstore, 'a');
|
||||
select delete('a=>null , b=>2, c=>3'::hstore, 'a');
|
||||
select delete('a=>1 , b=>2, c=>3'::hstore, 'b');
|
||||
select delete('a=>1 , b=>2, c=>3'::hstore, 'c');
|
||||
select delete('a=>1 , b=>2, c=>3'::hstore, 'd');
|
||||
select pg_column_size(delete('a=>1 , b=>2, c=>3'::hstore, 'b'::text))
|
||||
= pg_column_size('a=>1, b=>2'::hstore);
|
||||
|
||||
-- delete (array)
|
||||
|
||||
select pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, ARRAY['d','e']);
|
||||
select pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, ARRAY['d','b']);
|
||||
select pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, ARRAY['a','c']);
|
||||
select pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, ARRAY[['b'],['c'],['a']]);
|
||||
select pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, '{}'::text[]);
|
||||
select pg_catalog.pg_column_size(pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, ARRAY['a','c']))
|
||||
= pg_catalog.pg_column_size('b=>2'::hstore);
|
||||
select pg_catalog.pg_column_size(pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, '{}'::text[]))
|
||||
= pg_catalog.pg_column_size('a=>1, b=>2, c=>3'::hstore);
|
||||
select delete('a=>1 , b=>2, c=>3'::hstore, ARRAY['d','e']);
|
||||
select delete('a=>1 , b=>2, c=>3'::hstore, ARRAY['d','b']);
|
||||
select delete('a=>1 , b=>2, c=>3'::hstore, ARRAY['a','c']);
|
||||
select delete('a=>1 , b=>2, c=>3'::hstore, ARRAY[['b'],['c'],['a']]);
|
||||
select delete('a=>1 , b=>2, c=>3'::hstore, '{}'::text[]);
|
||||
select pg_column_size(delete('a=>1 , b=>2, c=>3'::hstore, ARRAY['a','c']))
|
||||
= pg_column_size('b=>2'::hstore);
|
||||
select pg_column_size(delete('a=>1 , b=>2, c=>3'::hstore, '{}'::text[]))
|
||||
= pg_column_size('a=>1, b=>2, c=>3'::hstore);
|
||||
|
||||
-- delete (hstore)
|
||||
|
||||
select pg_catalog.delete('aa=>1 , b=>2, c=>3'::hstore, 'aa=>4, b=>2'::hstore);
|
||||
select pg_catalog.delete('aa=>1 , b=>2, c=>3'::hstore, 'aa=>NULL, c=>3'::hstore);
|
||||
select pg_catalog.delete('aa=>1 , b=>2, c=>3'::hstore, 'aa=>1, b=>2, c=>3'::hstore);
|
||||
select pg_catalog.delete('aa=>1 , b=>2, c=>3'::hstore, 'b=>2'::hstore);
|
||||
select pg_catalog.delete('aa=>1 , b=>2, c=>3'::hstore, ''::hstore);
|
||||
select pg_catalog.pg_column_size(pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, 'b=>2'::hstore))
|
||||
= pg_catalog.pg_column_size('a=>1, c=>3'::hstore);
|
||||
select pg_catalog.pg_column_size(pg_catalog.delete('a=>1 , b=>2, c=>3'::hstore, ''::hstore))
|
||||
= pg_catalog.pg_column_size('a=>1, b=>2, c=>3'::hstore);
|
||||
select delete('aa=>1 , b=>2, c=>3'::hstore, 'aa=>4, b=>2'::hstore);
|
||||
select delete('aa=>1 , b=>2, c=>3'::hstore, 'aa=>NULL, c=>3'::hstore);
|
||||
select delete('aa=>1 , b=>2, c=>3'::hstore, 'aa=>1, b=>2, c=>3'::hstore);
|
||||
select delete('aa=>1 , b=>2, c=>3'::hstore, 'b=>2'::hstore);
|
||||
select delete('aa=>1 , b=>2, c=>3'::hstore, ''::hstore);
|
||||
select pg_column_size(delete('a=>1 , b=>2, c=>3'::hstore, 'b=>2'::hstore))
|
||||
= pg_column_size('a=>1, c=>3'::hstore);
|
||||
select pg_column_size(delete('a=>1 , b=>2, c=>3'::hstore, ''::hstore))
|
||||
= pg_column_size('a=>1, b=>2, c=>3'::hstore);
|
||||
|
||||
-- hs_concat
|
||||
select pg_catalog.hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>f');
|
||||
select pg_catalog.hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'aq=>l');
|
||||
select pg_catalog.hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'aa=>l');
|
||||
select pg_catalog.hs_concat('aa=>1 , b=>2, cq=>3'::hstore, '');
|
||||
select pg_catalog.hs_concat(''::hstore, 'cq=>l, b=>g, fg=>f');
|
||||
select pg_catalog.pg_column_size(pg_catalog.hs_concat(''::hstore, ''::hstore)) = pg_catalog.pg_column_size(''::hstore);
|
||||
select pg_catalog.pg_column_size(pg_catalog.hs_concat('aa=>1'::hstore, 'b=>2'::hstore))
|
||||
= pg_catalog.pg_column_size('aa=>1, b=>2'::hstore);
|
||||
select pg_catalog.pg_column_size(pg_catalog.hs_concat('aa=>1, b=>2'::hstore, ''::hstore))
|
||||
= pg_catalog.pg_column_size('aa=>1, b=>2'::hstore);
|
||||
select pg_catalog.pg_column_size(pg_catalog.hs_concat(''::hstore, 'aa=>1, b=>2'::hstore))
|
||||
= pg_catalog.pg_column_size('aa=>1, b=>2'::hstore);
|
||||
select hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>f');
|
||||
select hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'aq=>l');
|
||||
select hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'aa=>l');
|
||||
select hs_concat('aa=>1 , b=>2, cq=>3'::hstore, '');
|
||||
select hs_concat(''::hstore, 'cq=>l, b=>g, fg=>f');
|
||||
select pg_column_size(hs_concat(''::hstore, ''::hstore)) = pg_column_size(''::hstore);
|
||||
select pg_column_size(hs_concat('aa=>1'::hstore, 'b=>2'::hstore))
|
||||
= pg_column_size('aa=>1, b=>2'::hstore);
|
||||
select pg_column_size(hs_concat('aa=>1, b=>2'::hstore, ''::hstore))
|
||||
= pg_column_size('aa=>1, b=>2'::hstore);
|
||||
select pg_column_size(hs_concat(''::hstore, 'aa=>1, b=>2'::hstore))
|
||||
= pg_column_size('aa=>1, b=>2'::hstore);
|
||||
|
||||
-- hstore(text,text)
|
||||
select pg_catalog.hs_concat('a=>g, b=>c'::hstore, pg_catalog.hstore('asd', 'gf'));
|
||||
select pg_catalog.hs_concat('a=>g, b=>c'::hstore, pg_catalog.hstore('b', 'gf'));
|
||||
select pg_catalog.hs_concat('a=>g, b=>c'::hstore, pg_catalog.hstore('b', 'NULL'));
|
||||
select pg_catalog.hs_concat('a=>g, b=>c'::hstore, pg_catalog.hstore('b', NULL));
|
||||
select (pg_catalog.hs_concat('a=>g, b=>c'::hstore, pg_catalog.hstore(NULL, 'b'))) is null;
|
||||
select pg_catalog.pg_column_size(pg_catalog.hstore('b', 'gf'))
|
||||
= pg_catalog.pg_column_size('b=>gf'::hstore);
|
||||
select pg_catalog.pg_column_size(pg_catalog.hs_concat('a=>g, b=>c'::hstore, pg_catalog.hstore('b', 'gf')))
|
||||
= pg_catalog.pg_column_size('a=>g, b=>gf'::hstore);
|
||||
select hs_concat('a=>g, b=>c'::hstore, hstore('asd', 'gf'));
|
||||
select hs_concat('a=>g, b=>c'::hstore, hstore('b', 'gf'));
|
||||
select hs_concat('a=>g, b=>c'::hstore, hstore('b', 'NULL'));
|
||||
select hs_concat('a=>g, b=>c'::hstore, hstore('b', NULL));
|
||||
select (hs_concat('a=>g, b=>c'::hstore, hstore(NULL, 'b'))) is null;
|
||||
select pg_column_size(hstore('b', 'gf'))
|
||||
= pg_column_size('b=>gf'::hstore);
|
||||
select pg_column_size(hs_concat('a=>g, b=>c'::hstore, hstore('b', 'gf')))
|
||||
= pg_column_size('a=>g, b=>gf'::hstore);
|
||||
|
||||
-- slice()
|
||||
select pg_catalog.slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['g','h','i']);
|
||||
select pg_catalog.slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['c','b']);
|
||||
select pg_catalog.slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['aa','b']);
|
||||
select pg_catalog.slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['c','b','aa']);
|
||||
select pg_catalog.pg_column_size(pg_catalog.slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['c','b']))
|
||||
= pg_catalog.pg_column_size('b=>2, c=>3'::hstore);
|
||||
select pg_catalog.pg_column_size(pg_catalog.slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['c','b','aa']))
|
||||
= pg_catalog.pg_column_size('aa=>1, b=>2, c=>3'::hstore);
|
||||
select slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['g','h','i']);
|
||||
select slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['c','b']);
|
||||
select slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['aa','b']);
|
||||
select slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['c','b','aa']);
|
||||
select pg_column_size(slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['c','b']))
|
||||
= pg_column_size('b=>2, c=>3'::hstore);
|
||||
select pg_column_size(slice(hstore 'aa=>1, b=>2, c=>3', ARRAY['c','b','aa']))
|
||||
= pg_column_size('aa=>1, b=>2, c=>3'::hstore);
|
||||
|
||||
-- array input
|
||||
select '{}'::text[]::hstore;
|
||||
|
|
@ -151,66 +151,66 @@ select ARRAY['a','g','b','h','asd','i']::hstore;
|
|||
select ARRAY[['a','g'],['b','h'],['asd','i']]::hstore;
|
||||
select ARRAY[['a','g','b'],['h','asd','i']]::hstore;
|
||||
select ARRAY[[['a','g'],['b','h'],['asd','i']]]::hstore;
|
||||
select pg_catalog.hstore('{}'::text[]);
|
||||
select pg_catalog.hstore(ARRAY['a','g','b','h','asd']);
|
||||
select pg_catalog.hstore(ARRAY['a','g','b','h','asd','i']);
|
||||
select pg_catalog.hstore(ARRAY[['a','g'],['b','h'],['asd','i']]);
|
||||
select pg_catalog.hstore(ARRAY[['a','g','b'],['h','asd','i']]);
|
||||
select pg_catalog.hstore(ARRAY[[['a','g'],['b','h'],['asd','i']]]);
|
||||
select pg_catalog.hstore('[0:5]={a,g,b,h,asd,i}'::text[]);
|
||||
select pg_catalog.hstore('[0:2][1:2]={{a,g},{b,h},{asd,i}}'::text[]);
|
||||
select hstore('{}'::text[]);
|
||||
select hstore(ARRAY['a','g','b','h','asd']);
|
||||
select hstore(ARRAY['a','g','b','h','asd','i']);
|
||||
select hstore(ARRAY[['a','g'],['b','h'],['asd','i']]);
|
||||
select hstore(ARRAY[['a','g','b'],['h','asd','i']]);
|
||||
select hstore(ARRAY[[['a','g'],['b','h'],['asd','i']]]);
|
||||
select hstore('[0:5]={a,g,b,h,asd,i}'::text[]);
|
||||
select hstore('[0:2][1:2]={{a,g},{b,h},{asd,i}}'::text[]);
|
||||
|
||||
-- pairs of arrays
|
||||
select pg_catalog.hstore(ARRAY['a','b','asd'], ARRAY['g','h','i']);
|
||||
select pg_catalog.hstore(ARRAY['a','b','asd'], ARRAY['g','h',NULL]);
|
||||
select pg_catalog.hstore(ARRAY['z','y','x'], ARRAY['1','2','3']);
|
||||
select pg_catalog.hstore(ARRAY['aaa','bb','c','d'], ARRAY[null::text,null,null,null]);
|
||||
select pg_catalog.hstore(ARRAY['aaa','bb','c','d'], null);
|
||||
select pg_catalog.quote_literal(pg_catalog.hstore('{}'::text[], '{}'::text[]));
|
||||
select pg_catalog.quote_literal(pg_catalog.hstore('{}'::text[], null));
|
||||
select pg_catalog.hstore(ARRAY['a'], '{}'::text[]); -- error
|
||||
select pg_catalog.hstore('{}'::text[], ARRAY['a']); -- error
|
||||
select pg_catalog.pg_column_size(pg_catalog.hstore(ARRAY['a','b','asd'], ARRAY['g','h','i']))
|
||||
= pg_catalog.pg_column_size('a=>g, b=>h, asd=>i'::hstore);
|
||||
select hstore(ARRAY['a','b','asd'], ARRAY['g','h','i']);
|
||||
select hstore(ARRAY['a','b','asd'], ARRAY['g','h',NULL]);
|
||||
select hstore(ARRAY['z','y','x'], ARRAY['1','2','3']);
|
||||
select hstore(ARRAY['aaa','bb','c','d'], ARRAY[null::text,null,null,null]);
|
||||
select hstore(ARRAY['aaa','bb','c','d'], null);
|
||||
select quote_literal(hstore('{}'::text[], '{}'::text[]));
|
||||
select quote_literal(hstore('{}'::text[], null));
|
||||
select hstore(ARRAY['a'], '{}'::text[]); -- error
|
||||
select hstore('{}'::text[], ARRAY['a']); -- error
|
||||
select pg_column_size(hstore(ARRAY['a','b','asd'], ARRAY['g','h','i']))
|
||||
= pg_column_size('a=>g, b=>h, asd=>i'::hstore);
|
||||
|
||||
-- keys/values
|
||||
select pg_catalog.akeys(pg_catalog.hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>f'));
|
||||
select pg_catalog.akeys('""=>1');
|
||||
select pg_catalog.akeys('');
|
||||
select pg_catalog.avals(pg_catalog.hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>f'));
|
||||
select pg_catalog.avals(pg_catalog.hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>NULL'));
|
||||
select pg_catalog.avals('""=>1');
|
||||
select pg_catalog.avals('');
|
||||
select akeys(hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>f'));
|
||||
select akeys('""=>1');
|
||||
select akeys('');
|
||||
select avals(hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>f'));
|
||||
select avals(hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>NULL'));
|
||||
select avals('""=>1');
|
||||
select avals('');
|
||||
|
||||
select pg_catalog.hstore_to_array('aa=>1, cq=>l, b=>g, fg=>NULL'::hstore);
|
||||
select hstore_to_array('aa=>1, cq=>l, b=>g, fg=>NULL'::hstore);
|
||||
|
||||
select pg_catalog.hstore_to_matrix('aa=>1, cq=>l, b=>g, fg=>NULL'::hstore);
|
||||
select hstore_to_matrix('aa=>1, cq=>l, b=>g, fg=>NULL'::hstore);
|
||||
|
||||
select * from pg_catalog.skeys(pg_catalog.hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>f'));
|
||||
select * from pg_catalog.skeys('""=>1');
|
||||
select * from pg_catalog.skeys('');
|
||||
select * from pg_catalog.svals(pg_catalog.hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>f'));
|
||||
select *, svals is null from pg_catalog.svals(pg_catalog.hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>NULL'));
|
||||
select * from pg_catalog.svals('""=>1');
|
||||
select * from pg_catalog.svals('');
|
||||
select * from skeys(hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>f'));
|
||||
select * from skeys('""=>1');
|
||||
select * from skeys('');
|
||||
select * from svals(hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>f'));
|
||||
select *, svals is null from svals(hs_concat('aa=>1 , b=>2, cq=>3'::hstore, 'cq=>l, b=>g, fg=>NULL'));
|
||||
select * from svals('""=>1');
|
||||
select * from svals('');
|
||||
|
||||
select * from pg_catalog.each('aaa=>bq, b=>NULL, ""=>1 ');
|
||||
select * from each('aaa=>bq, b=>NULL, ""=>1 ');
|
||||
|
||||
-- hs_contains
|
||||
select pg_catalog.hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>b'::hstore);
|
||||
select pg_catalog.hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>b, c=>NULL'::hstore);
|
||||
select pg_catalog.hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>b, g=>NULL'::hstore);
|
||||
select pg_catalog.hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'g=>NULL'::hstore);
|
||||
select pg_catalog.hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>c'::hstore);
|
||||
select pg_catalog.hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>b'::hstore);
|
||||
select pg_catalog.hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>b, c=>q'::hstore);
|
||||
select hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>b'::hstore);
|
||||
select hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>b, c=>NULL'::hstore);
|
||||
select hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>b, g=>NULL'::hstore);
|
||||
select hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'g=>NULL'::hstore);
|
||||
select hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>c'::hstore);
|
||||
select hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>b'::hstore);
|
||||
select hs_contains('a=>b, b=>1, c=>NULL'::hstore, 'a=>b, c=>q'::hstore);
|
||||
|
||||
CREATE TABLE testhstore (h hstore);
|
||||
\copy testhstore from 'data/hstore.data'
|
||||
|
||||
select pg_catalog.count(*) from testhstore where pg_catalog.hs_contains(h, 'wait=>NULL'::hstore);
|
||||
select pg_catalog.count(*) from testhstore where pg_catalog.hs_contains(h, 'wait=>CC'::hstore);
|
||||
select pg_catalog.count(*) from testhstore where pg_catalog.hs_contains(h, 'wait=>CC, public=>t'::hstore);
|
||||
select pg_catalog.count(*) from testhstore where pg_catalog.exist(h, 'public');
|
||||
select pg_catalog.count(*) from testhstore where pg_catalog.exists_any(h, ARRAY['public','disabled']);
|
||||
select pg_catalog.count(*) from testhstore where pg_catalog.exists_all(h, ARRAY['public','disabled']);
|
||||
select count(*) from testhstore where hs_contains(h, 'wait=>NULL'::hstore);
|
||||
select count(*) from testhstore where hs_contains(h, 'wait=>CC'::hstore);
|
||||
select count(*) from testhstore where hs_contains(h, 'wait=>CC, public=>t'::hstore);
|
||||
select count(*) from testhstore where exist(h, 'public');
|
||||
select count(*) from testhstore where exists_any(h, ARRAY['public','disabled']);
|
||||
select count(*) from testhstore where exists_all(h, ARRAY['public','disabled']);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
#include "access/gist.h"
|
||||
#include "access/skey.h"
|
||||
#include "port/pg_bitutils.h"
|
||||
|
||||
#include "_int.h"
|
||||
|
||||
|
|
@ -30,6 +29,264 @@ extern "C" Datum g_intbig_picksplit(PG_FUNCTION_ARGS);
|
|||
extern "C" Datum g_intbig_union(PG_FUNCTION_ARGS);
|
||||
extern "C" Datum g_intbig_same(PG_FUNCTION_ARGS);
|
||||
|
||||
/* Number of one-bits in an unsigned byte */
|
||||
static const uint8 number_of_ones[256] = {0,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
6,
|
||||
7,
|
||||
7,
|
||||
8};
|
||||
|
||||
PG_FUNCTION_INFO_V1(_intbig_in);
|
||||
extern "C" Datum _intbig_in(PG_FUNCTION_ARGS);
|
||||
|
||||
|
|
@ -171,7 +428,11 @@ Datum g_intbig_compress(PG_FUNCTION_ARGS)
|
|||
|
||||
static int4 sizebitvec(BITVECP sign)
|
||||
{
|
||||
return pg_popcount(sign, SIGLEN);
|
||||
int4 size = 0, i;
|
||||
|
||||
LOOPBYTE
|
||||
size += number_of_ones[(unsigned char)sign[i]];
|
||||
return size;
|
||||
}
|
||||
|
||||
static int hemdistsign(BITVECP a, BITVECP b)
|
||||
|
|
@ -181,8 +442,7 @@ static int hemdistsign(BITVECP a, BITVECP b)
|
|||
LOOPBYTE
|
||||
{
|
||||
diff = (unsigned char)(a[i] ^ b[i]);
|
||||
/* Using the popcount functions here isn't likely to win */
|
||||
dist += pg_number_of_ones[diff];
|
||||
dist += number_of_ones[diff];
|
||||
}
|
||||
return dist;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,12 +10,12 @@
|
|||
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
||||
\echo Use "CREATE EXTENSION log_fdw" to load this file. \quit
|
||||
|
||||
CREATE FUNCTION pg_catalog.log_fdw_handler()
|
||||
CREATE FUNCTION log_fdw_handler()
|
||||
RETURNS fdw_handler
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT NOT FENCED;
|
||||
|
||||
CREATE FUNCTION pg_catalog.log_fdw_validator(text[], oid)
|
||||
CREATE FUNCTION log_fdw_validator(text[], oid)
|
||||
RETURNS void
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE C STRICT NOT FENCED;
|
||||
|
|
@ -26,7 +26,7 @@ CREATE FOREIGN DATA WRAPPER log_fdw
|
|||
|
||||
CREATE SERVER log_srv FOREIGN DATA WRAPPER log_fdw;
|
||||
|
||||
create or replace function pg_catalog.gs_create_log_tables()
|
||||
create or replace function gs_create_log_tables()
|
||||
RETURNS void
|
||||
AS $$
|
||||
declare
|
||||
|
|
|
|||
|
|
@ -1530,7 +1530,7 @@ static void fill_pglog_planstate_from_logft_rel(pglogPlanState* pg_log, Relation
|
|||
|
||||
Assert(PGLOG_ATTR_MAX == tupdesc->natts);
|
||||
for (int i = 0; i < PGLOG_ATTR_MAX; ++i) {
|
||||
Form_pg_attribute att = &tupdesc->attrs[i];
|
||||
Form_pg_attribute att = tupdesc->attrs[i];
|
||||
pg_log->allattr_typmod[i] = att->atttypmod;
|
||||
getTypeInputInfo(att->atttypid, &in_func_oid, &pg_log->allattr_typioparam[i]);
|
||||
fmgr_info(in_func_oid, &pg_log->allattr_fmgrinfo[i]);
|
||||
|
|
@ -2722,8 +2722,8 @@ static void log_rescan_foreign_scan(ForeignScanState* node)
|
|||
(void)MemoryContextSwitchTo(old_memcnxt);
|
||||
}
|
||||
|
||||
static ForeignScan* log_get_foreign_plan(PlannerInfo* root, RelOptInfo* baserel, Oid foreigntableid,
|
||||
ForeignPath* best_path, List* tlist, List* scan_clauses, Plan* outer_plan)
|
||||
static ForeignScan* log_get_foreign_plan(
|
||||
PlannerInfo* root, RelOptInfo* baserel, Oid foreigntableid, ForeignPath* best_path, List* tlist, List* scan_clauses)
|
||||
{
|
||||
Index scan_relid = baserel->relid;
|
||||
List* fdw_data = best_path->fdw_private;
|
||||
|
|
@ -2773,9 +2773,6 @@ static ForeignScan* log_get_foreign_plan(PlannerInfo* root, RelOptInfo* baserel,
|
|||
scan_relid,
|
||||
NIL, /* no expressions to evaluate */
|
||||
fdw_data,
|
||||
NIL,
|
||||
NIL,
|
||||
NULL,
|
||||
EXEC_ON_DATANODES); /* no private state either */
|
||||
|
||||
return fscan;
|
||||
|
|
@ -2799,7 +2796,6 @@ static void log_get_foreign_paths(PlannerInfo* root, RelOptInfo* baserel, Oid fo
|
|||
total_cost,
|
||||
NIL, /* no pathkeys */
|
||||
NULL, /* no outer rel either */
|
||||
NULL, /* no outer path either */
|
||||
NIL,
|
||||
1)); /* no fdw_private data */
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
#include "access/gist.h"
|
||||
#include "access/skey.h"
|
||||
#include "port/pg_bitutils.h"
|
||||
#include "crc32.h"
|
||||
#include "ltree.h"
|
||||
|
||||
|
|
@ -35,6 +34,264 @@ extern "C" Datum _ltree_consistent(PG_FUNCTION_ARGS);
|
|||
#define GETENTRY(vec, pos) ((ltree_gist*)DatumGetPointer((vec)->vector[(pos)].key))
|
||||
#define NEXTVAL(x) ((ltree*)((char*)(x) + INTALIGN(VARSIZE(x))))
|
||||
|
||||
/* Number of one-bits in an unsigned byte */
|
||||
static const uint8 number_of_ones[256] = {0,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
2,
|
||||
3,
|
||||
3,
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
5,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
4,
|
||||
5,
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
5,
|
||||
6,
|
||||
6,
|
||||
7,
|
||||
6,
|
||||
7,
|
||||
7,
|
||||
8};
|
||||
|
||||
#define WISH_F(a, b, c) (double)(-(double)(((a) - (b)) * ((a) - (b)) * ((a) - (b))) * (c))
|
||||
|
||||
static void hashing(BITVECP sign, ltree* t)
|
||||
|
|
@ -174,7 +431,11 @@ Datum _ltree_union(PG_FUNCTION_ARGS)
|
|||
|
||||
static int4 sizebitvec(BITVECP sign)
|
||||
{
|
||||
return pg_popcount((const char *) sign, ASIGLEN);
|
||||
int4 size = 0, i;
|
||||
|
||||
ALOOPBYTE
|
||||
size += number_of_ones[(unsigned char)sign[i]];
|
||||
return size;
|
||||
}
|
||||
|
||||
static int hemdistsign(BITVECP a, BITVECP b)
|
||||
|
|
@ -184,8 +445,7 @@ static int hemdistsign(BITVECP a, BITVECP b)
|
|||
ALOOPBYTE
|
||||
{
|
||||
diff = (unsigned char)(a[i] ^ b[i]);
|
||||
/* Using the popcount functions here isn't likely to win */
|
||||
dist += pg_number_of_ones[diff];
|
||||
dist += number_of_ones[diff];
|
||||
}
|
||||
return dist;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,15 +54,21 @@ PG_MODULE_MAGIC;
|
|||
extern "C" void _PG_init(void);
|
||||
extern "C" void _PG_output_plugin_init(OutputPluginCallbacks* cb);
|
||||
|
||||
typedef struct {
|
||||
MemoryContext context;
|
||||
bool include_xids;
|
||||
bool include_timestamp;
|
||||
bool skip_empty_xacts;
|
||||
bool xact_wrote_changes;
|
||||
bool only_local;
|
||||
} TestDecodingData;
|
||||
|
||||
static void pg_decode_startup(LogicalDecodingContext* ctx, OutputPluginOptions* opt, bool is_init);
|
||||
static void pg_decode_shutdown(LogicalDecodingContext* ctx);
|
||||
static void pg_decode_begin_txn(LogicalDecodingContext* ctx, ReorderBufferTXN* txn);
|
||||
static void pg_output_begin(
|
||||
LogicalDecodingContext* ctx, PluginTestDecodingData* data, ReorderBufferTXN* txn, bool last_write);
|
||||
LogicalDecodingContext* ctx, TestDecodingData* data, ReorderBufferTXN* txn, bool last_write);
|
||||
static void pg_decode_commit_txn(LogicalDecodingContext* ctx, ReorderBufferTXN* txn, XLogRecPtr commit_lsn);
|
||||
static void pg_decode_abort_txn(LogicalDecodingContext* ctx, ReorderBufferTXN* txn);
|
||||
static void pg_decode_prepare_txn(LogicalDecodingContext* ctx, ReorderBufferTXN* txn);
|
||||
|
||||
static void pg_decode_change(
|
||||
LogicalDecodingContext* ctx, ReorderBufferTXN* txn, Relation rel, ReorderBufferChange* change);
|
||||
static bool pg_decode_filter(LogicalDecodingContext* ctx, RepOriginId origin_id);
|
||||
|
|
@ -81,8 +87,6 @@ void _PG_output_plugin_init(OutputPluginCallbacks* cb)
|
|||
cb->begin_cb = pg_decode_begin_txn;
|
||||
cb->change_cb = pg_decode_change;
|
||||
cb->commit_cb = pg_decode_commit_txn;
|
||||
cb->abort_cb = pg_decode_abort_txn;
|
||||
cb->prepare_cb = pg_decode_prepare_txn;
|
||||
cb->filter_by_origin_cb = pg_decode_filter;
|
||||
cb->shutdown_cb = pg_decode_shutdown;
|
||||
}
|
||||
|
|
@ -91,40 +95,84 @@ void _PG_output_plugin_init(OutputPluginCallbacks* cb)
|
|||
static void pg_decode_startup(LogicalDecodingContext* ctx, OutputPluginOptions* opt, bool is_init)
|
||||
{
|
||||
ListCell* option = NULL;
|
||||
PluginTestDecodingData* data = NULL;
|
||||
TestDecodingData* data = NULL;
|
||||
|
||||
data = (PluginTestDecodingData*)palloc0(sizeof(PluginTestDecodingData));
|
||||
data = (TestDecodingData*)palloc0(sizeof(TestDecodingData));
|
||||
data->context = AllocSetContextCreate(ctx->context,
|
||||
"text conversion context",
|
||||
ALLOCSET_DEFAULT_MINSIZE,
|
||||
ALLOCSET_DEFAULT_INITSIZE,
|
||||
ALLOCSET_DEFAULT_MAXSIZE);
|
||||
data->include_xids = true;
|
||||
data->include_timestamp = true;
|
||||
data->include_timestamp = false;
|
||||
data->skip_empty_xacts = false;
|
||||
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;
|
||||
|
||||
foreach (option, ctx->output_plugin_options) {
|
||||
ParseDecodingOptionPlugin(option, data, opt);
|
||||
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)
|
||||
data->include_xids = true;
|
||||
else if (!parse_bool(strVal(elem->arg), &data->include_xids))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("could not parse value \"%s\" for parameter \"%s\"", strVal(elem->arg), elem->defname)));
|
||||
} else if (strcmp(elem->defname, "include-timestamp") == 0) {
|
||||
if (elem->arg == NULL)
|
||||
data->include_timestamp = true;
|
||||
else if (!parse_bool(strVal(elem->arg), &data->include_timestamp))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("could not parse value \"%s\" for parameter \"%s\"", strVal(elem->arg), elem->defname)));
|
||||
} else if (strcmp(elem->defname, "force-binary") == 0) {
|
||||
bool force_binary = false;
|
||||
|
||||
if (elem->arg == NULL)
|
||||
continue;
|
||||
else if (!parse_bool(strVal(elem->arg), &force_binary))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("could not parse value \"%s\" for parameter \"%s\"", strVal(elem->arg), elem->defname)));
|
||||
|
||||
if (force_binary)
|
||||
opt->output_type = OUTPUT_PLUGIN_BINARY_OUTPUT;
|
||||
} else if (strcmp(elem->defname, "skip-empty-xacts") == 0) {
|
||||
|
||||
if (elem->arg == NULL)
|
||||
data->skip_empty_xacts = true;
|
||||
else if (!parse_bool(strVal(elem->arg), &data->skip_empty_xacts))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("could not parse value \"%s\" for parameter \"%s\"", strVal(elem->arg), elem->defname)));
|
||||
} else if (strcmp(elem->defname, "only-local") == 0) {
|
||||
|
||||
if (elem->arg == NULL)
|
||||
data->only_local = true;
|
||||
else if (!parse_bool(strVal(elem->arg), &data->only_local))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("could not parse value \"%s\" for parameter \"%s\"", strVal(elem->arg), elem->defname)));
|
||||
} else {
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg(
|
||||
"option \"%s\" = \"%s\" is unknown", elem->defname, elem->arg ? strVal(elem->arg) : "(null)")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* cleanup this plugin's resources */
|
||||
static void pg_decode_shutdown(LogicalDecodingContext* ctx)
|
||||
{
|
||||
PluginTestDecodingData* data = (PluginTestDecodingData*)ctx->output_plugin_private;
|
||||
TestDecodingData* data = (TestDecodingData*)ctx->output_plugin_private;
|
||||
|
||||
/* cleanup our own resources via memory context reset */
|
||||
MemoryContextDelete(data->context);
|
||||
|
|
@ -133,7 +181,7 @@ static void pg_decode_shutdown(LogicalDecodingContext* ctx)
|
|||
/* BEGIN callback */
|
||||
static void pg_decode_begin_txn(LogicalDecodingContext* ctx, ReorderBufferTXN* txn)
|
||||
{
|
||||
PluginTestDecodingData* data = (PluginTestDecodingData*)ctx->output_plugin_private;
|
||||
TestDecodingData* data = (TestDecodingData*)ctx->output_plugin_private;
|
||||
|
||||
data->xact_wrote_changes = false;
|
||||
if (data->skip_empty_xacts)
|
||||
|
|
@ -142,8 +190,7 @@ static void pg_decode_begin_txn(LogicalDecodingContext* ctx, ReorderBufferTXN* t
|
|||
pg_output_begin(ctx, data, txn, true);
|
||||
}
|
||||
|
||||
static void pg_output_begin(LogicalDecodingContext* ctx, PluginTestDecodingData* data, ReorderBufferTXN* txn,
|
||||
bool last_write)
|
||||
static void pg_output_begin(LogicalDecodingContext* ctx, TestDecodingData* data, ReorderBufferTXN* txn, bool last_write)
|
||||
{
|
||||
OutputPluginPrepareWrite(ctx, last_write);
|
||||
if (data->include_xids)
|
||||
|
|
@ -156,7 +203,7 @@ static void pg_output_begin(LogicalDecodingContext* ctx, PluginTestDecodingData*
|
|||
/* COMMIT callback */
|
||||
static void pg_decode_commit_txn(LogicalDecodingContext* ctx, ReorderBufferTXN* txn, XLogRecPtr commit_lsn)
|
||||
{
|
||||
PluginTestDecodingData* data = (PluginTestDecodingData*)ctx->output_plugin_private;
|
||||
TestDecodingData* data = (TestDecodingData*)ctx->output_plugin_private;
|
||||
|
||||
if (data->skip_empty_xacts && !data->xact_wrote_changes)
|
||||
return;
|
||||
|
|
@ -174,60 +221,68 @@ static void pg_decode_commit_txn(LogicalDecodingContext* ctx, ReorderBufferTXN*
|
|||
OutputPluginWrite(ctx, true);
|
||||
}
|
||||
|
||||
/* ABORT callback */
|
||||
static void pg_decode_abort_txn(LogicalDecodingContext* ctx, ReorderBufferTXN* txn)
|
||||
{
|
||||
PluginTestDecodingData* data = (PluginTestDecodingData*)ctx->output_plugin_private;
|
||||
|
||||
if (data->skip_empty_xacts && !data->xact_wrote_changes)
|
||||
return;
|
||||
|
||||
OutputPluginPrepareWrite(ctx, true);
|
||||
if (data->include_xids)
|
||||
appendStringInfo(ctx->out, "ABORT %lu", txn->xid);
|
||||
else
|
||||
appendStringInfoString(ctx->out, "ABORT");
|
||||
|
||||
if (data->include_timestamp)
|
||||
appendStringInfo(ctx->out, " (at %s)", timestamptz_to_str(txn->commit_time));
|
||||
|
||||
OutputPluginWrite(ctx, true);
|
||||
}
|
||||
|
||||
/* PREPARE callback */
|
||||
static void pg_decode_prepare_txn(LogicalDecodingContext* ctx, ReorderBufferTXN* txn)
|
||||
{
|
||||
PluginTestDecodingData* data = (PluginTestDecodingData*)ctx->output_plugin_private;
|
||||
|
||||
if (data->skip_empty_xacts && !data->xact_wrote_changes)
|
||||
return;
|
||||
|
||||
OutputPluginPrepareWrite(ctx, true);
|
||||
if (data->include_xids)
|
||||
appendStringInfo(ctx->out, "PREPARE %lu", txn->xid);
|
||||
else
|
||||
appendStringInfoString(ctx->out, "PREPARE");
|
||||
|
||||
if (data->include_timestamp)
|
||||
appendStringInfo(ctx->out, " (at %s)", timestamptz_to_str(txn->commit_time));
|
||||
|
||||
OutputPluginWrite(ctx, true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static bool pg_decode_filter(LogicalDecodingContext* ctx, RepOriginId origin_id)
|
||||
{
|
||||
PluginTestDecodingData* data = (PluginTestDecodingData*)ctx->output_plugin_private;
|
||||
TestDecodingData* data = (TestDecodingData*)ctx->output_plugin_private;
|
||||
|
||||
if (data->only_local && origin_id != InvalidRepOriginId)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Print literal `outputstr' already represented as string of type `typid'
|
||||
* into stringbuf `s'.
|
||||
*
|
||||
* Some builtin types aren't quoted, the rest is quoted. Escaping is done as
|
||||
* if u_sess->parser_cxt.standard_conforming_strings were enabled.
|
||||
*/
|
||||
static void print_literal(StringInfo s, Oid typid, char* outputstr)
|
||||
{
|
||||
const char* valptr = NULL;
|
||||
|
||||
switch (typid) {
|
||||
case INT1OID:
|
||||
case INT2OID:
|
||||
case INT4OID:
|
||||
case INT8OID:
|
||||
case OIDOID:
|
||||
case FLOAT4OID:
|
||||
case FLOAT8OID:
|
||||
case NUMERICOID:
|
||||
/* NB: We don't care about Inf, NaN et al. */
|
||||
appendStringInfoString(s, outputstr);
|
||||
break;
|
||||
|
||||
case BITOID:
|
||||
case VARBITOID:
|
||||
appendStringInfo(s, "B'%s'", outputstr);
|
||||
break;
|
||||
|
||||
case BOOLOID:
|
||||
if (strcmp(outputstr, "t") == 0)
|
||||
appendStringInfoString(s, "true");
|
||||
else
|
||||
appendStringInfoString(s, "false");
|
||||
break;
|
||||
|
||||
default:
|
||||
appendStringInfoChar(s, '\'');
|
||||
for (valptr = outputstr; *valptr; valptr++) {
|
||||
char ch = *valptr;
|
||||
|
||||
if (SQL_STR_DOUBLE(ch, false))
|
||||
appendStringInfoChar(s, ch);
|
||||
appendStringInfoChar(s, ch);
|
||||
}
|
||||
appendStringInfoChar(s, '\'');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* print the tuple 'tuple' into the StringInfo s */
|
||||
static void TupleToJsoninfo(Relation relation, cJSON* cols_name, cJSON* cols_type, cJSON* cols_val, TupleDesc tupdesc,
|
||||
HeapTuple tuple, bool isOld)
|
||||
static void TupleToJsoninfo(
|
||||
cJSON* cols_name, cJSON* cols_type, cJSON* cols_val, TupleDesc tupdesc, HeapTuple tuple, bool skip_nulls)
|
||||
{
|
||||
if ((tuple->tupTableType == HEAP_TUPLE) && (HEAP_TUPLE_IS_COMPRESSED(tuple->t_data) ||
|
||||
(int)HeapTupleHeaderGetNatts(tuple->t_data, tupdesc) > tupdesc->natts)) {
|
||||
|
|
@ -241,7 +296,7 @@ static void TupleToJsoninfo(Relation relation, cJSON* cols_name, cJSON* cols_typ
|
|||
Datum origval = 0; /* possibly toasted Datum */
|
||||
bool isnull = false; /* column is null? */
|
||||
|
||||
Form_pg_attribute attr = &tupdesc->attrs[natt]; /* the attribute itself */
|
||||
Form_pg_attribute attr = tupdesc->attrs[natt]; /* the attribute itself */
|
||||
|
||||
/*
|
||||
* don't print dropped columns, we can't be sure everything is
|
||||
|
|
@ -254,7 +309,7 @@ static void TupleToJsoninfo(Relation relation, cJSON* cols_name, cJSON* cols_typ
|
|||
* Don't print system columns, oid will already have been printed if
|
||||
* present.
|
||||
*/
|
||||
if (attr->attnum < 0 || (isOld && !IsRelationReplidentKey(relation, attr->attnum)))
|
||||
if (attr->attnum < 0)
|
||||
continue;
|
||||
|
||||
Oid typid = attr->atttypid; /* type of current attribute */
|
||||
|
|
@ -265,6 +320,8 @@ static void TupleToJsoninfo(Relation relation, cJSON* cols_name, cJSON* cols_typ
|
|||
} else {
|
||||
origval = uheap_getattr((UHeapTuple)tuple, natt + 1, tupdesc, &isnull);
|
||||
}
|
||||
if (isnull && skip_nulls)
|
||||
continue;
|
||||
|
||||
/* print attribute name */
|
||||
|
||||
|
|
@ -291,11 +348,11 @@ static void TupleToJsoninfo(Relation relation, cJSON* cols_name, cJSON* cols_typ
|
|||
if (isnull)
|
||||
appendStringInfoString(val_str, "null");
|
||||
else if (!typisvarlena)
|
||||
PrintLiteral(val_str, typid, OidOutputFunctionCall(typoutput, origval));
|
||||
print_literal(val_str, typid, OidOutputFunctionCall(typoutput, origval));
|
||||
else {
|
||||
Datum val; /* definitely detoasted Datum */
|
||||
val = PointerGetDatum(PG_DETOAST_DATUM(origval));
|
||||
PrintLiteral(val_str, typid, OidOutputFunctionCall(typoutput, val));
|
||||
print_literal(val_str, typid, OidOutputFunctionCall(typoutput, val));
|
||||
}
|
||||
cJSON* col_val = cJSON_CreateString(val_str->data);
|
||||
cJSON_AddItemToArray(cols_val, col_val);
|
||||
|
|
@ -308,12 +365,13 @@ static void TupleToJsoninfo(Relation relation, cJSON* cols_name, cJSON* cols_typ
|
|||
static void pg_decode_change(
|
||||
LogicalDecodingContext* ctx, ReorderBufferTXN* txn, Relation relation, ReorderBufferChange* change)
|
||||
{
|
||||
PluginTestDecodingData* data = NULL;
|
||||
TestDecodingData* data = NULL;
|
||||
Form_pg_class class_form;
|
||||
TupleDesc tupdesc;
|
||||
MemoryContext old;
|
||||
char* res = NULL;
|
||||
data = (PluginTestDecodingData*)ctx->output_plugin_private;
|
||||
data = (TestDecodingData*)ctx->output_plugin_private;
|
||||
u_sess->attr.attr_common.extra_float_digits = 0;
|
||||
|
||||
/* output BEGIN if we haven't yet */
|
||||
if (data->skip_empty_xacts && !data->xact_wrote_changes) {
|
||||
|
|
@ -327,18 +385,11 @@ static void pg_decode_change(
|
|||
/* Avoid leaking memory by using and resetting our own context */
|
||||
old = MemoryContextSwitchTo(data->context);
|
||||
|
||||
char *schema = get_namespace_name(class_form->relnamespace);
|
||||
char *table = NameStr(class_form->relname);
|
||||
if (data->tableWhiteList != NIL && !CheckWhiteList(data->tableWhiteList, schema, table)) {
|
||||
(void)MemoryContextSwitchTo(old);
|
||||
MemoryContextReset(data->context);
|
||||
return;
|
||||
}
|
||||
|
||||
OutputPluginPrepareWrite(ctx, true);
|
||||
|
||||
cJSON* root = cJSON_CreateObject();
|
||||
cJSON* table_name = cJSON_CreateString(quote_qualified_identifier(schema, table));
|
||||
cJSON* table_name = cJSON_CreateString(quote_qualified_identifier(
|
||||
get_namespace_name(get_rel_namespace(RelationGetRelid(relation))), NameStr(class_form->relname)));
|
||||
cJSON_AddItemToObject(root, "table_name", table_name);
|
||||
|
||||
cJSON* op_type = NULL;
|
||||
|
|
@ -353,53 +404,53 @@ static void pg_decode_change(
|
|||
case REORDER_BUFFER_CHANGE_INSERT:
|
||||
op_type = cJSON_CreateString("INSERT");
|
||||
if (change->data.tp.newtuple != NULL) {
|
||||
TupleToJsoninfo(relation, columns_name, columns_type, columns_val, tupdesc,
|
||||
&change->data.tp.newtuple->tuple, false);
|
||||
TupleToJsoninfo(
|
||||
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(relation, old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
&change->data.tp.oldtuple->tuple, true);
|
||||
TupleToJsoninfo(
|
||||
old_keys_name, old_keys_type, old_keys_val, tupdesc, &change->data.tp.oldtuple->tuple, true);
|
||||
}
|
||||
|
||||
if (change->data.tp.newtuple != NULL) {
|
||||
TupleToJsoninfo(relation, columns_name, columns_type, columns_val, tupdesc,
|
||||
&change->data.tp.newtuple->tuple, false);
|
||||
TupleToJsoninfo(
|
||||
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(relation, old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
&change->data.tp.oldtuple->tuple, true);
|
||||
TupleToJsoninfo(
|
||||
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(relation, columns_name, columns_type, columns_val, tupdesc,
|
||||
TupleToJsoninfo(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(relation, old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
TupleToJsoninfo(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(relation, old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
TupleToJsoninfo(old_keys_name, old_keys_type, old_keys_val, tupdesc,
|
||||
(HeapTuple)(&change->data.utp.oldtuple->tuple), true);
|
||||
}
|
||||
|
||||
if (change->data.utp.newtuple != NULL) {
|
||||
TupleToJsoninfo(relation, columns_name, columns_type, columns_val, tupdesc,
|
||||
TupleToJsoninfo(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
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
extern char* optarg;
|
||||
|
||||
#include "libpq/libpq-fe.h"
|
||||
#include "libpq-fe.h"
|
||||
|
||||
/* an extensible array to keep track of elements to show */
|
||||
typedef struct {
|
||||
|
|
|
|||
|
|
@ -1,26 +1,22 @@
|
|||
#This is the main CMAKE for build all pagehack.
|
||||
# pagehack
|
||||
execute_process(
|
||||
COMMAND ln -fs ${PROJECT_SRC_DIR}/gausskernel/storage/dss/dss_adaptor.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dss_adaptor.cpp
|
||||
)
|
||||
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_pagehack_SRC)
|
||||
set(TGT_pagehack_INC
|
||||
${TGT_pq_INC} ${ZSTD_INCLUDE_PATH} ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SRC_DIR}/lib/gstrace ${PROJECT_SRC_DIR}/lib/page_compression
|
||||
${TGT_pq_INC} ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SRC_DIR}/lib/gstrace
|
||||
)
|
||||
|
||||
set(pagehack_DEF_OPTIONS ${MACRO_OPTIONS})
|
||||
if(${ENABLE_DEBUG} STREQUAL "ON")
|
||||
set(pagehack_DEF_OPTIONS ${pagehack_DEF_OPTIONS} -DDEBUG -DFRONTEND)
|
||||
set(pagehack_DEF_OPTIONS ${pagehack_DEF_OPTIONS} -DDEBUG)
|
||||
endif()
|
||||
set(pagehack_COMPILE_OPTIONS ${OS_OPTIONS} ${PROTECT_OPTIONS} ${WARNING_OPTIONS} ${CHECK_OPTIONS} ${BIN_SECURE_OPTIONS} ${OPTIMIZE_OPTIONS})
|
||||
set(pagehack_LINK_OPTIONS ${BIN_LINK_OPTIONS})
|
||||
set(pagehack_LINK_LIBS -lpgport -lcrypt -ldl -lm -ledit -lssl -lcrypto -l${SECURE_C_CHECK} -lrt -lz -lminiunz -lzstd -lpagecompression -llz4)
|
||||
set(pagehack_LINK_LIBS -lpgport -lcrypt -ldl -lm -ledit -lssl -lcrypto -lsecurec -lrt -lz -lminiunz)
|
||||
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)
|
||||
add_dependencies(pagehack pgport_static)
|
||||
target_link_directories(pagehack PUBLIC
|
||||
${LIBOPENSSL_LIB_PATH} ${LIBCURL_LIB_PATH} ${SECURE_LIB_PATH}
|
||||
${LIBOPENSSL_LIB_PATH} ${PROTOBUF_LIB_PATH} ${LIBPARQUET_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} ${LZ4_LIB_PATH} ${PROJECT_SRC_DIR}/lib/page_compression
|
||||
)
|
||||
install(TARGETS pagehack RUNTIME DESTINATION bin)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
# contrib/pagehack/Makefile
|
||||
MODULE_big = pagehack
|
||||
OBJS = pagehack.o \
|
||||
$(top_builddir)/src/gausskernel/storage/dss/dss_adaptor.o
|
||||
OBJS = pagehack.o
|
||||
|
||||
# executable program, even there is no database server/client
|
||||
PROGRAM = pagehack
|
||||
all: submake-pagecompression
|
||||
|
||||
ifdef USE_PGXS
|
||||
PG_CONFIG = pg_config
|
||||
|
|
@ -15,9 +13,8 @@ else
|
|||
subdir = contrib/pagehack
|
||||
top_builddir = ../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
override CPPFLAGS += -I${top_builddir}/src/lib/page_compression
|
||||
override LDFLAGS += -L${top_builddir}/src/lib/page_compression
|
||||
override CFLAGS += -lpagecompression -lzstd -llz4
|
||||
enable_shared = false
|
||||
|
||||
ifeq ($(enable_debug), yes)
|
||||
PG_CPPFLAGS += -DDEBUG
|
||||
endif
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -106,7 +106,11 @@ static void GetBTPageStatistics(BlockNumber blkno, Buffer buffer, BTPageStat* st
|
|||
/* page type (flags) */
|
||||
if (P_ISDELETED(opaque)) {
|
||||
stat->type = 'd';
|
||||
stat->btpo.xact = ((BTPageOpaque)opaque)->xact;
|
||||
|
||||
if (PageIs4BXidVersion(page))
|
||||
stat->btpo.xact = opaque->btpo.xact_old;
|
||||
else
|
||||
stat->btpo.xact = ((BTPageOpaque)opaque)->xact;
|
||||
return;
|
||||
} else if (P_IGNORE(opaque))
|
||||
stat->type = 'e';
|
||||
|
|
@ -208,45 +212,44 @@ Datum bt_page_stats(PG_FUNCTION_ARGS)
|
|||
elog(ERROR, "return type must be a row type");
|
||||
|
||||
j = 0;
|
||||
errno_t ret = 0;
|
||||
const int charLen = 32;
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.blkno);
|
||||
int ret = 0;
|
||||
values[j] = (char*)palloc(32);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", stat.blkno);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%c", stat.type);
|
||||
values[j] = (char*)palloc(32);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%c", stat.type);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.live_items);
|
||||
values[j] = (char*)palloc(32);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", stat.live_items);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.dead_items);
|
||||
values[j] = (char*)palloc(32);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", stat.dead_items);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.avg_item_size);
|
||||
values[j] = (char*)palloc(32);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", stat.avg_item_size);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.page_size);
|
||||
values[j] = (char*)palloc(32);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", stat.page_size);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.free_size);
|
||||
values[j] = (char*)palloc(32);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", stat.free_size);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.btpo_prev);
|
||||
values[j] = (char*)palloc(32);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", stat.btpo_prev);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.btpo_next);
|
||||
values[j] = (char*)palloc(32);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", stat.btpo_next);
|
||||
securec_check_ss(ret, "", "");
|
||||
if (stat.type == 'd') {
|
||||
values[j] = (char*)palloc(charLen * 2);
|
||||
ret = snprintf_s(values[j++], charLen * 2, charLen * 2 - 1, XID_FMT, stat.btpo.xact);
|
||||
values[j] = (char*)palloc(32);
|
||||
if (stat.type == 'd'){
|
||||
ret = snprintf_s(values[j++], 64, 63, XID_FMT, stat.btpo.xact);
|
||||
securec_check_ss(ret, "", "");
|
||||
} else {
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.btpo.level);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", stat.btpo.level);
|
||||
securec_check_ss(ret, "", "");
|
||||
}
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(charLen);
|
||||
ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.btpo_flags);
|
||||
values[j] = (char*)palloc(32);
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", stat.btpo_flags);
|
||||
securec_check_ss(ret, "", "");
|
||||
|
||||
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc), values);
|
||||
|
|
@ -283,7 +286,6 @@ Datum bt_page_items(PG_FUNCTION_ARGS)
|
|||
FuncCallContext* fctx = NULL;
|
||||
MemoryContext mctx;
|
||||
struct user_args* uargs;
|
||||
errno_t rc;
|
||||
|
||||
if (!superuser())
|
||||
ereport(ERROR,
|
||||
|
|
@ -331,7 +333,8 @@ Datum bt_page_items(PG_FUNCTION_ARGS)
|
|||
uargs = (user_args*)palloc(sizeof(struct user_args));
|
||||
|
||||
uargs->page = (char*)palloc(BLCKSZ);
|
||||
rc = memcpy_s(uargs->page, BLCKSZ, BufferGetPage(buffer), BLCKSZ);
|
||||
int rc = memcpy_s(uargs->page, BLCKSZ, BufferGetPage(buffer), BLCKSZ);
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
|
||||
UnlockReleaseBuffer(buffer);
|
||||
relation_close(rel, AccessShareLock);
|
||||
|
|
@ -377,21 +380,21 @@ Datum bt_page_items(PG_FUNCTION_ARGS)
|
|||
|
||||
j = 0;
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "%d", uargs->offset);
|
||||
securec_check_ss(rc, "", "");
|
||||
int ret = 0;
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", uargs->offset);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "(%u,%u)",
|
||||
BlockIdGetBlockNumber(&(itup->t_tid.ip_blkid)), itup->t_tid.ip_posid);
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = snprintf_s(values[j++], 32, 31, "(%u,%u)", BlockIdGetBlockNumber(&(itup->t_tid.ip_blkid)), itup->t_tid.ip_posid);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "%d", (int)IndexTupleSize(itup));
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", (int)IndexTupleSize(itup));
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "%c", IndexTupleHasNulls(itup) ? 't' : 'f');
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = snprintf_s(values[j++], 32, 31, "%c", IndexTupleHasNulls(itup) ? 't' : 'f');
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "%c", IndexTupleHasVarwidths(itup) ? 't' : 'f');
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = snprintf_s(values[j++], 32, 31, "%c", IndexTupleHasVarwidths(itup) ? 't' : 'f');
|
||||
securec_check_ss(ret, "", "");
|
||||
|
||||
ptr = (char*)itup + IndexInfoFindDataOffset(itup->t_info);
|
||||
dlen = IndexTupleSize(itup) - IndexInfoFindDataOffset(itup->t_info);
|
||||
|
|
@ -403,8 +406,8 @@ Datum bt_page_items(PG_FUNCTION_ARGS)
|
|||
*dump++ = ' ';
|
||||
length--;
|
||||
}
|
||||
rc = sprintf_s(dump, length, "%02x", *(ptr + off) & 0xff);
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = sprintf_s(dump, length, "%02x", *(ptr + off) & 0xff);
|
||||
securec_check_ss(ret, "", "");
|
||||
dump += 2;
|
||||
length -= 2;
|
||||
}
|
||||
|
|
@ -474,25 +477,26 @@ Datum bt_metap(PG_FUNCTION_ARGS)
|
|||
elog(ERROR, "return type must be a row type");
|
||||
|
||||
j = 0;
|
||||
errno_t rc;
|
||||
int ret = 0;
|
||||
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_magic);
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_magic);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_version);
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_version);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_root);
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_root);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_level);
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_level);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_fastroot);
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_fastroot);
|
||||
securec_check_ss(ret, "", "");
|
||||
values[j] = (char*)palloc(32);
|
||||
rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_fastlevel);
|
||||
securec_check_ss(rc, "", "");
|
||||
ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_fastlevel);
|
||||
securec_check_ss(ret, "", "");
|
||||
|
||||
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc), values);
|
||||
|
||||
|
|
|
|||
|
|
@ -67,8 +67,9 @@ Datum gin_metapage_info(PG_FUNCTION_ARGS)
|
|||
|
||||
metadata = GinPageGetMeta(page);
|
||||
|
||||
errno_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls));
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
int nRet = 0;
|
||||
nRet = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls));
|
||||
securec_check_c(nRet, "\0", "\0");
|
||||
|
||||
values[0] = Int64GetDatum(metadata->head);
|
||||
values[1] = Int64GetDatum(metadata->tail);
|
||||
|
|
@ -145,8 +146,9 @@ Datum gin_page_opaque_info(PG_FUNCTION_ARGS)
|
|||
flags[nflags++] = DirectFunctionCall1(to_hex32, Int32GetDatum(flagbits));
|
||||
}
|
||||
|
||||
errno_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls));
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
int nRet = 0;
|
||||
nRet = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls));
|
||||
securec_check_c(nRet, "\0", "\0");
|
||||
|
||||
values[0] = Int64GetDatum(opaq->rightlink);
|
||||
values[1] = Int64GetDatum(opaq->maxoff);
|
||||
|
|
@ -236,8 +238,9 @@ Datum gin_leafpage_items(PG_FUNCTION_ARGS)
|
|||
ItemPointer tids;
|
||||
Datum* tids_datum = NULL;
|
||||
|
||||
errno_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls));
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
int nRet = 0;
|
||||
nRet = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls));
|
||||
securec_check_c(nRet, "\0", "\0");
|
||||
|
||||
values[0] = ItemPointerGetDatum(&cur->first);
|
||||
values[1] = UInt16GetDatum(cur->nbytes);
|
||||
|
|
|
|||
|
|
@ -121,8 +121,9 @@ Datum heap_page_items(PG_FUNCTION_ARGS)
|
|||
uint16 lp_flags;
|
||||
uint16 lp_len;
|
||||
|
||||
errno_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls));
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
int nRet = 0;
|
||||
nRet = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls));
|
||||
securec_check_c(nRet, "\0", "\0");
|
||||
|
||||
/* Extract information from the line pointer */
|
||||
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ static bytea* get_raw_page_internal(text* relname, ForkNumber forknum, BlockNumb
|
|||
buf = ReadBufferExtended(rel, forknum, blkno, RBM_NORMAL, NULL);
|
||||
LockBuffer(buf, BUFFER_LOCK_SHARE);
|
||||
|
||||
errno_t rc = memcpy_s(raw_page_data, BLCKSZ, BufferGetPage(buf), BLCKSZ);
|
||||
int rc = memcpy_s(raw_page_data, BLCKSZ, BufferGetPage(buf), BLCKSZ);
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
|
||||
LockBuffer(buf, BUFFER_LOCK_UNLOCK);
|
||||
|
|
@ -306,7 +306,7 @@ Datum page_compress_meta(PG_FUNCTION_ARGS)
|
|||
|
||||
bytea* dumpVal = (bytea*)palloc(VARHDRSZ + output->len);
|
||||
SET_VARSIZE(dumpVal, VARHDRSZ + output->len);
|
||||
errno_t rc = memcpy_s(VARDATA(dumpVal), output->len, output->data, output->len);
|
||||
int rc = memcpy_s(VARDATA(dumpVal), output->len, output->data, output->len);
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
pfree(output->data);
|
||||
pfree(output);
|
||||
|
|
@ -326,7 +326,7 @@ Datum page_compress_meta_usage(PG_FUNCTION_ARGS)
|
|||
|
||||
bytea* dumpVal = (bytea*)palloc(VARHDRSZ + help_size);
|
||||
SET_VARSIZE(dumpVal, VARHDRSZ + help_size);
|
||||
errno_t rc = memcpy_s(VARDATA(dumpVal), help_size, help, help_size);
|
||||
int rc = memcpy_s(VARDATA(dumpVal), help_size, help, help_size);
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
|
||||
PG_RETURN_TEXT_P(dumpVal);
|
||||
|
|
@ -413,7 +413,7 @@ static char* read_raw_page(Relation rel, ForkNumber forknum, BlockNumber blkno)
|
|||
raw_page = (char*)palloc(BLCKSZ);
|
||||
buf = ReadBufferExtended(rel, forknum, blkno, RBM_NORMAL, NULL);
|
||||
LockBuffer(buf, BUFFER_LOCK_SHARE);
|
||||
errno_t rc = memcpy_s(raw_page, BLCKSZ, BufferGetPage(buf), BLCKSZ);
|
||||
int rc = memcpy_s(raw_page, BLCKSZ, BufferGetPage(buf), BLCKSZ);
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
LockBuffer(buf, BUFFER_LOCK_UNLOCK);
|
||||
ReleaseBuffer(buf);
|
||||
|
|
@ -435,7 +435,7 @@ static void parse_compress_meta(StringInfo outputBuf, char* page_content, Relati
|
|||
int size = PageGetSpecialSize(page_header);
|
||||
|
||||
TupleDesc desc = RelationGetDescr(rel);
|
||||
FormData_pg_attribute* att = desc->attrs;
|
||||
Form_pg_attribute* att = desc->attrs;
|
||||
int attrno;
|
||||
int attrnum = desc->natts;
|
||||
|
||||
|
|
@ -444,7 +444,7 @@ static void parse_compress_meta(StringInfo outputBuf, char* page_content, Relati
|
|||
char mode = 0;
|
||||
|
||||
for (attrno = 0; attrno < attrnum && cmprsOff < size; ++attrno) {
|
||||
Form_pg_attribute thisatt = &att[attrno];
|
||||
Form_pg_attribute thisatt = att[attrno];
|
||||
int metaSize = 0;
|
||||
|
||||
metaInfo = PageCompress::FetchAttrCmprMeta(start + cmprsOff, thisatt->attlen, &metaSize, &mode);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ PG_MODULE_MAGIC;
|
|||
/* passwords shorter than this will be rejected */
|
||||
#define MIN_PWD_LENGTH 8
|
||||
|
||||
extern "C" void _PG_init(void);
|
||||
extern void _PG_init(void);
|
||||
|
||||
/*
|
||||
* check_password
|
||||
|
|
|
|||
|
|
@ -177,7 +177,6 @@ static void SetWALFileNameForCleanup(void)
|
|||
{
|
||||
bool fnameOK = false;
|
||||
errno_t errorno = EOK;
|
||||
int segLen = 32;
|
||||
|
||||
TrimExtension(restartWALFileName, additional_ext);
|
||||
|
||||
|
|
@ -205,7 +204,7 @@ static void SetWALFileNameForCleanup(void)
|
|||
* Use just the prefix of the filename, ignore everything after
|
||||
* first period
|
||||
*/
|
||||
XLogFileName(exclusiveCleanupFileName, MAXFNAMELEN, tli, ((uint64)log) << segLen | seg);
|
||||
XLogFileName(exclusiveCleanupFileName, tli, ((uint64)log) << 32 | seg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -125,9 +125,9 @@ struct stat stat_buf;
|
|||
|
||||
#define XLOG_DATA_FNAME_LEN 24
|
||||
/* Reworked from access/xlog_internal.h */
|
||||
#define XLogFileName(fname, len, tli, logSegNo) \
|
||||
#define XLogFileName(fname, tli, logSegNo) \
|
||||
snprintf(fname, \
|
||||
len, \
|
||||
XLOG_DATA_FNAME_LEN + 1, \
|
||||
"%08X%08X%08X", \
|
||||
tli, \
|
||||
(uint32)((logSegNo) / XLogSegmentsPerXLogId), \
|
||||
|
|
@ -345,7 +345,7 @@ static bool SetWALFileNameForCleanup(void)
|
|||
}
|
||||
}
|
||||
|
||||
XLogFileName(exclusiveCleanupFileName, MAXFNAMELEN, tli, (((uint32)log) << 32) | seg);
|
||||
XLogFileName(exclusiveCleanupFileName, tli, (((uint32)log) << 32) | seg);
|
||||
|
||||
return cleanup;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,3 +17,6 @@ top_builddir = ../..
|
|||
include $(top_builddir)/src/Makefile.global
|
||||
include $(top_srcdir)/contrib/contrib-global.mk
|
||||
endif
|
||||
|
||||
exclude_option=-fPIE
|
||||
override CPPFLAGS := $(filter-out $(exclude_option),$(CPPFLAGS))
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ typedef struct pgssEntry {
|
|||
* Global shared state
|
||||
*/
|
||||
typedef struct pgssSharedState {
|
||||
LWLockId lock; /* protects hashtable search/modification */
|
||||
LWLock* lock; /* protects hashtable search/modification */
|
||||
int query_size; /* max query length in bytes */
|
||||
double cur_median_usage; /* current median usage in hashtable */
|
||||
} pgssSharedState;
|
||||
|
|
@ -172,20 +172,20 @@ typedef struct pgssJumbleState {
|
|||
/*---- Local variables ----*/
|
||||
|
||||
/* Current nesting depth of ExecutorRun+ProcessUtility calls */
|
||||
static int nested_level = 0;
|
||||
static THR_LOCAL int nested_level = 0;
|
||||
|
||||
/* Saved hook values in case of unload */
|
||||
static shmem_startup_hook_type prev_shmem_startup_hook = NULL;
|
||||
static post_parse_analyze_hook_type prev_post_parse_analyze_hook = NULL;
|
||||
static ExecutorStart_hook_type prev_ExecutorStart = NULL;
|
||||
static ExecutorRun_hook_type prev_ExecutorRun = NULL;
|
||||
static ExecutorFinish_hook_type prev_ExecutorFinish = NULL;
|
||||
static ExecutorEnd_hook_type prev_ExecutorEnd = NULL;
|
||||
static ProcessUtility_hook_type prev_ProcessUtility = NULL;
|
||||
static THR_LOCAL shmem_startup_hook_type prev_shmem_startup_hook = NULL;
|
||||
static THR_LOCAL post_parse_analyze_hook_type prev_post_parse_analyze_hook = NULL;
|
||||
static THR_LOCAL ExecutorStart_hook_type prev_ExecutorStart = NULL;
|
||||
static THR_LOCAL ExecutorRun_hook_type prev_ExecutorRun = NULL;
|
||||
static THR_LOCAL ExecutorFinish_hook_type prev_ExecutorFinish = NULL;
|
||||
static THR_LOCAL ExecutorEnd_hook_type prev_ExecutorEnd = NULL;
|
||||
static THR_LOCAL ProcessUtility_hook_type prev_ProcessUtility = NULL;
|
||||
|
||||
/* Links to shared memory state */
|
||||
static pgssSharedState* pgss = NULL;
|
||||
static HTAB* pgss_hash = NULL;
|
||||
static THR_LOCAL pgssSharedState* pgss = NULL;
|
||||
static THR_LOCAL HTAB* pgss_hash = NULL;
|
||||
|
||||
/*---- GUC variables ----*/
|
||||
|
||||
|
|
@ -210,8 +210,8 @@ static bool pgss_save; /* whether to save stats across shutdown */
|
|||
void _PG_init(void);
|
||||
void _PG_fini(void);
|
||||
|
||||
Datum pg_stat_statements_reset(PG_FUNCTION_ARGS);
|
||||
Datum pg_stat_statements(PG_FUNCTION_ARGS);
|
||||
extern "C" Datum pg_stat_statements_reset(PG_FUNCTION_ARGS);
|
||||
extern "C" Datum pg_stat_statements(PG_FUNCTION_ARGS);
|
||||
|
||||
PG_FUNCTION_INFO_V1(pg_stat_statements_reset);
|
||||
PG_FUNCTION_INFO_V1(pg_stat_statements);
|
||||
|
|
@ -223,14 +223,12 @@ static void pgss_ExecutorStart(QueryDesc* queryDesc, int eflags);
|
|||
static void pgss_ExecutorRun(QueryDesc* queryDesc, ScanDirection direction, long count);
|
||||
static void pgss_ExecutorFinish(QueryDesc* queryDesc);
|
||||
static void pgss_ExecutorEnd(QueryDesc* queryDesc);
|
||||
static void pgss_ProcessUtility(processutility_context* processutility_cxt,
|
||||
static void pgss_ProcessUtility(Node* parsetree, const char* queryString, ParamListInfo params, bool isTopLevel,
|
||||
DestReceiver* dest,
|
||||
#ifdef PGXC
|
||||
bool sentToRemote,
|
||||
#endif /* PGXC */
|
||||
char* completionTag,
|
||||
ProcessUtilityContext context,
|
||||
bool isCTAS);
|
||||
char* completionTag);
|
||||
static uint32 pgss_hash_fn(const void* key, Size keysize);
|
||||
static int pgss_match_fn(const void* key1, const void* key2, Size keysize);
|
||||
static uint32 pgss_hash_string(const char* str);
|
||||
|
|
@ -262,7 +260,7 @@ void _PG_init(void)
|
|||
* module isn't active. The functions must protect themselves against
|
||||
* being called then, however.)
|
||||
*/
|
||||
if (!process_shared_preload_libraries_in_progress)
|
||||
if (!u_sess->misc_cxt.process_shared_preload_libraries_in_progress)
|
||||
return;
|
||||
|
||||
/*
|
||||
|
|
@ -391,7 +389,7 @@ static void pgss_shmem_startup(void)
|
|||
|
||||
if (!found) {
|
||||
/* First time through ... */
|
||||
pgss->lock = LWLockAssign();
|
||||
pgss->lock = LWLockAssign(LWTRANCHE_BUFFER_CONTENT);
|
||||
pgss->query_size = g_instance.attr.attr_common.pgstat_track_activity_query_size;
|
||||
pgss->cur_median_usage = ASSUMED_MEDIAN_INIT;
|
||||
}
|
||||
|
|
@ -458,7 +456,7 @@ static void pgss_shmem_startup(void)
|
|||
buffer_size = temp.query_len + 1;
|
||||
}
|
||||
|
||||
if (fread(buffer, 1, temp.query_len, file) != temp.query_len)
|
||||
if (fread(buffer, 1, temp.query_len, file) != (size_t)temp.query_len)
|
||||
goto error;
|
||||
buffer[temp.query_len] = '\0';
|
||||
|
||||
|
|
@ -538,7 +536,7 @@ static void pgss_shmem_shutdown(int code, Datum arg)
|
|||
while ((entry = (pgssEntry*)hash_seq_search(&hash_seq)) != NULL) {
|
||||
int len = entry->query_len;
|
||||
|
||||
if (fwrite(entry, offsetof(pgssEntry, mutex), 1, file) != 1 || fwrite(entry->query, 1, len, file) != len)
|
||||
if (fwrite(entry, offsetof(pgssEntry, mutex), 1, file) != 1 || fwrite(entry->query, 1, len, file) != (size_t)len)
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
|
@ -724,17 +722,13 @@ static void pgss_ExecutorEnd(QueryDesc* queryDesc)
|
|||
/*
|
||||
* ProcessUtility hook
|
||||
*/
|
||||
static void pgss_ProcessUtility(processutility_context* processutility_cxt,
|
||||
static void pgss_ProcessUtility(Node* parsetree, const char* queryString, ParamListInfo params, bool isTopLevel,
|
||||
DestReceiver* dest,
|
||||
#ifdef PGXC
|
||||
bool sentToRemote,
|
||||
#endif /* PGXC */
|
||||
char* completionTag,
|
||||
ProcessUtilityContext context,
|
||||
bool isCTAS)
|
||||
char* completionTag)
|
||||
{
|
||||
Node* parsetree = processutility_cxt->parse_tree;
|
||||
const char* queryString = processutility_cxt->query_string;
|
||||
/*
|
||||
* If it's an EXECUTE statement, we don't track it and don't increment the
|
||||
* nesting level. This allows the cycles to be charged to the underlying
|
||||
|
|
@ -754,29 +748,31 @@ static void pgss_ProcessUtility(processutility_context* processutility_cxt,
|
|||
BufferUsage bufusage_start, bufusage;
|
||||
uint32 queryId;
|
||||
|
||||
bufusage_start = u_sess->instr_cxt.pg_buffer_usage->INSTR_TIME_SET_CURRENT(start);
|
||||
|
||||
bufusage_start = *(u_sess->instr_cxt.pg_buffer_usage);
|
||||
INSTR_TIME_SET_CURRENT(start);
|
||||
nested_level++;
|
||||
PG_TRY();
|
||||
{
|
||||
if (prev_ProcessUtility)
|
||||
prev_ProcessUtility(processutility_cxt,
|
||||
prev_ProcessUtility(parsetree,
|
||||
queryString,
|
||||
params,
|
||||
isTopLevel,
|
||||
dest,
|
||||
#ifdef PGXC
|
||||
sentToRemote,
|
||||
#endif /* PGXC */
|
||||
completionTag,
|
||||
context,
|
||||
isCTAS);
|
||||
completionTag);
|
||||
else
|
||||
standard_ProcessUtility(processutility_cxt,
|
||||
standard_ProcessUtility(parsetree,
|
||||
queryString,
|
||||
params,
|
||||
isTopLevel,
|
||||
dest,
|
||||
#ifdef PGXC
|
||||
sentToRemote,
|
||||
#endif /* PGXC */
|
||||
completionTag,
|
||||
context,
|
||||
isCTAS);
|
||||
completionTag);
|
||||
nested_level--;
|
||||
}
|
||||
PG_CATCH();
|
||||
|
|
@ -821,23 +817,25 @@ static void pgss_ProcessUtility(processutility_context* processutility_cxt,
|
|||
pgss_store(queryString, queryId, INSTR_TIME_GET_MILLISEC(duration), rows, &bufusage, NULL);
|
||||
} else {
|
||||
if (prev_ProcessUtility)
|
||||
prev_ProcessUtility(processutility_cxt,
|
||||
prev_ProcessUtility(parsetree,
|
||||
queryString,
|
||||
params,
|
||||
isTopLevel,
|
||||
dest,
|
||||
#ifdef PGXC
|
||||
sentToRemote,
|
||||
#endif /* PGXC */
|
||||
completionTag,
|
||||
context,
|
||||
isCTAS);
|
||||
completionTag);
|
||||
else
|
||||
standard_ProcessUtility(processutility_cxt,
|
||||
standard_ProcessUtility(parsetree,
|
||||
queryString,
|
||||
params,
|
||||
isTopLevel,
|
||||
dest,
|
||||
#ifdef PGXC
|
||||
sentToRemote,
|
||||
#endif /* PGXC */
|
||||
completionTag,
|
||||
context,
|
||||
isCTAS);
|
||||
completionTag);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1663,6 +1661,12 @@ static void JumbleExpr(pgssJumbleState* jstate, Node* node)
|
|||
JumbleExpr(jstate, (Node*)lfirst(temp));
|
||||
}
|
||||
break;
|
||||
case T_IntList:
|
||||
foreach(temp, (List *) node)
|
||||
{
|
||||
APP_JUMB(lfirst_int(temp));
|
||||
}
|
||||
break;
|
||||
case T_SortGroupClause: {
|
||||
SortGroupClause* sgc = (SortGroupClause*)node;
|
||||
|
||||
|
|
@ -1676,6 +1680,7 @@ static void JumbleExpr(pgssJumbleState* jstate, Node* node)
|
|||
|
||||
JumbleExpr(jstate, (Node*)gsnode->content);
|
||||
}
|
||||
break;
|
||||
case T_WindowClause: {
|
||||
WindowClause* wc = (WindowClause*)node;
|
||||
|
||||
|
|
@ -1860,7 +1865,7 @@ static void fill_in_constant_lengths(pgssJumbleState* jstate, const char* query)
|
|||
locs = jstate->clocations;
|
||||
|
||||
/* initialize the flex scanner --- should match raw_parser() */
|
||||
yyscanner = scanner_init(query, &yyextra, &ScanKeywords, ScanKeywordTokens);
|
||||
yyscanner = scanner_init(query, &yyextra, ScanKeywords, NumScanKeywords);
|
||||
|
||||
/* Search for each constant, in sequence */
|
||||
for (i = 0; i < jstate->clocations_count; i++) {
|
||||
|
|
|
|||
|
|
@ -8,9 +8,6 @@ DATA = pg_trgm--1.0.sql pg_trgm--unpackaged--1.0.sql
|
|||
|
||||
REGRESS = pg_trgm
|
||||
|
||||
exclude_option = -fPIE
|
||||
override CPPFLAGS := $(filter-out $(exclude_option),$(CPPFLAGS))
|
||||
|
||||
ifdef USE_PGXS
|
||||
PG_CONFIG = pg_config
|
||||
PGXS := $(shell $(PG_CONFIG) --pgxs)
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue