diff --git a/README.en.md b/README.en.md index 1e29777ff..139ca2303 100644 --- a/README.en.md +++ b/README.en.md @@ -64,7 +64,7 @@ When the Xlog is transferred to the standby node, the standby node flushs the Xl **MOT Engine (beta release)** -The Memory-Optimized Tables (MOT) storage engine is a transactional rowstore optimized for many-core and large memory and delivering extreme OLTP performance and high resources utilization. With data and indexes stored totally in-memory, a NUMA-aware design, algorithms that eliminate lock and latch contention and query native compilation (JIT), MOT provides low latency data access and more efficient transaction execution. See [MOT Engine documentation](https://opengauss.org/en/docs/2.0.0/docs/Developerguide/mot.html). +The Memory-Optimized Tables (MOT) storage engine is a transactional rowstore optimized for many-core and large memory and delivering extreme OLTP performance and high resources utilization. With data and indexes stored totally in-memory, a NUMA-aware design, algorithms that eliminate lock and latch contention and query native compilation (JIT), MOT provides low latency data access and more efficient transaction execution. See [MOT Engine documentation](https://opengauss.org/en/docs/2.1.0/docs/Developerguide/mot.html). **Security** @@ -383,7 +383,7 @@ https://opengauss.org/zh/ From the following website, you can obtain the binarylibs we have compiled. Please unzip it and rename to **binarylibs** after you download. -https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/openGauss-third_party_binarylibs.tar.gz +https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.1.0/openGauss-third_party_binarylibs.tar.gz Now we have completed openGauss code, for example, we store it in following directories. @@ -544,7 +544,7 @@ Installation package packaging log: **./package/make_package.log** ## Quick Start -See the [Quick Start](https://opengauss.org/zh/docs/2.0.0/docs/Quickstart/Quickstart.html) to implement the image classification. +See the [Quick Start](https://opengauss.org/zh/docs/2.1.0/docs/Quickstart/Quickstart.html) to implement the image classification. ## Docs @@ -568,7 +568,7 @@ Welcome contributions. See our [Contributor](https://opengauss.org/zh/contributi ## Release Notes -For the release notes, see our [RELEASE](https://opengauss.org/zh/docs/2.0.0/docs/Releasenotes/Releasenotes.html). +For the release notes, see our [RELEASE](https://opengauss.org/zh/docs/2.1.0/docs/Releasenotes/Releasenotes.html). ## License diff --git a/build/script/cmake_package_internal.sh b/build/script/cmake_package_internal.sh index 4cb169792..bf9c47a88 100755 --- a/build/script/cmake_package_internal.sh +++ b/build/script/cmake_package_internal.sh @@ -388,7 +388,11 @@ 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 -export JAVA_HOME=${binarylib_dir}/platform/huaweijdk8/${PLATFORM_ARCH}/jdk +jdkpath=${binarylib_dir}/platform/huaweijdk8/${PLATFORM_ARCH}/jdk +if [ ! -d ${jdkpath} ]; then + jdkpath=${binarylib_dir}/platform/openjdk8/${PLATFORM_ARCH}/jdk +fi +export JAVA_HOME=${jdkpath} declare p7zpath="${BUILD_TOOLS_PATH}/p7z/bin" ################################### diff --git a/build/script/opengauss.spec b/build/script/opengauss.spec index 72292166b..a3bda6515 100644 --- a/build/script/opengauss.spec +++ b/build/script/opengauss.spec @@ -1,2 +1,2 @@ PRODUCT=openGauss -VERSION=2.0.0 +VERSION=2.1.0 diff --git a/build/script/package_internal.sh b/build/script/package_internal.sh index e96e7f8b5..078f88c0f 100755 --- a/build/script/package_internal.sh +++ b/build/script/package_internal.sh @@ -388,7 +388,12 @@ export CC="${USE_CCACHE}$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin/gcc" export CXX="${USE_CCACHE}$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin/g++" export LD_LIBRARY_PATH=$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/lib64:$BUILD_TOOLS_PATH/gcc$gcc_version/isl/lib:$BUILD_TOOLS_PATH/gcc$gcc_version/mpc/lib/:$BUILD_TOOLS_PATH/gcc$gcc_version/mpfr/lib/:$BUILD_TOOLS_PATH/gcc$gcc_version/gmp/lib/:$LD_LIBRARY_PATH export PATH=$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin:$PATH -export JAVA_HOME=${binarylib_dir}/platform/huaweijdk8/${PLATFORM_ARCH}/jdk +jdkpath=${binarylib_dir}/platform/huaweijdk8/${PLATFORM_ARCH}/jdk +if [ ! -d ${jdkpath} ]; then + jdkpath=${binarylib_dir}/platform/openjdk8/${PLATFORM_ARCH}/jdk +fi +export JAVA_HOME=${jdkpath} + declare p7zpath="${BUILD_TOOLS_PATH}/p7z/bin" ################################### # build parameter about enable-llt diff --git a/cmake/src/build_function.cmake b/cmake/src/build_function.cmake index 6d7f37c57..2298a0bc5 100755 --- a/cmake/src/build_function.cmake +++ b/cmake/src/build_function.cmake @@ -198,7 +198,7 @@ ENDMACRO(CHECK_CC_ENABLE) function(GET_VERSIONSTR_FROMGIT ret) set(PG_VERSION "9.2.4") - set(OPENGAUSS_VERSION "2.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( diff --git a/cmake/src/buildfunction.sh b/cmake/src/buildfunction.sh index 9f1cfcfb4..aee6e0779 100755 --- a/cmake/src/buildfunction.sh +++ b/cmake/src/buildfunction.sh @@ -118,7 +118,7 @@ function get_gs_version() 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="(openGauss 2.0.0 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}" } @@ -130,12 +130,14 @@ function get_kernel_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/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="(GaussDB Kernel V500R002C00 build $csv_version) compiled at $date_time commit $commits last mr $mrid $debug_str" + default_kernel_version="($product $version build $csv_version) compiled at $date_time commit $commits last mr $mrid $debug_str" fi printf "${default_kernel_version}" } diff --git a/cmake/src/config-in/pg_config.h.in b/cmake/src/config-in/pg_config.h.in index bf8469617..e36ccb0d9 100755 --- a/cmake/src/config-in/pg_config.h.in +++ b/cmake/src/config-in/pg_config.h.in @@ -714,7 +714,7 @@ #define PGXC_VERSION_NUM /* openGauss version as a number string */ -#define OPENGAUSS_VERSION_NUM_STR "2.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@" diff --git a/cmake/src/config-in/pg_config_nocheck.h.in b/cmake/src/config-in/pg_config_nocheck.h.in index 5922cd875..8958d3bf9 100755 --- a/cmake/src/config-in/pg_config_nocheck.h.in +++ b/cmake/src/config-in/pg_config_nocheck.h.in @@ -695,7 +695,7 @@ #define PG_VERSION "9.2.4" /* openGauss version as a string */ -#define OPENGAUSS_VERSION "2.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" diff --git a/configure b/configure index 8874f199b..43ff92189 100755 --- a/configure +++ b/configure @@ -2184,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='2.0.0' +OPENGAUSS_VERSION='2.1.0' cat >>confdefs.h <<_ACEOF #define PG_VERSION "$PACKAGE_VERSION" @@ -2666,7 +2666,7 @@ else fi if test "$enable_ccache" = yes; then - default_gs_version="(openGauss 2.0.0 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" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4a05094ab..a51e1da68 100755 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -180,7 +180,9 @@ install(DIRECTORY ${IPERF_LIB_PATH} DESTINATION .) install(DIRECTORY ${KERBEROS_SBIN_PATH}/ DESTINATION bin) install(DIRECTORY ${KERBEROS_BIN_PATH} DESTINATION .) install(DIRECTORY ${KERBEROS_LIB_PATH} DESTINATION .) -install(DIRECTORY ${KMC_LIB_PATH} DESTINATION .) +if(NOT ${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF) + install(DIRECTORY ${KMC_LIB_PATH} DESTINATION .) +endif() install(DIRECTORY ${LIBCURL_LIB_PATH} DESTINATION .) install(DIRECTORY ${LIBPARQUET_LIB_PATH} DESTINATION .) install(DIRECTORY ${LZ4_LIB_PATH} DESTINATION .) @@ -211,7 +213,9 @@ install(FILES ${SECURE_HOME}/../Dynamic_Lib/libsecurec.so DESTINATION lib) install(FILES ${PLJAVA_HOME}/lib/libpljava.so DESTINATION lib) install(FILES ${PLJAVA_HOME}/java/pljava.jar DESTINATION lib/postgresql/java) install(FILES ${PLJAVA_HOME}/udstools.py DESTINATION share/postgresql/tmp) -install(FILES ${LIBHOTPATCH_LIB_PATH}/libdoprapatch.a DESTINATION lib) +if(NOT ${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF) + install(FILES ${LIBHOTPATCH_LIB_PATH}/libdoprapatch.a DESTINATION lib) +endif() install(CODE "execute_process( COMMAND cp ${BUILDTOOLS_PATH}/gcc7.3/gcc/lib64/libstdc++.so.6.0.24 ${prefix_home}/lib/libstdc++.so.6 WORKING_DIRECTORY ${prefix_home}/lib)" diff --git a/src/bin/pg_config/pg_config.cpp b/src/bin/pg_config/pg_config.cpp index 7b5a0859b..a5235baf0 100644 --- a/src/bin/pg_config/pg_config.cpp +++ b/src/bin/pg_config/pg_config.cpp @@ -295,7 +295,7 @@ static void show_version(int alls) #ifdef ENABLE_MULTIPLE_NODES printf("PostgreSQL 9.2.4\n"); #else - printf("openGauss 2.0.0\n"); + printf("openGauss 2.1.0\n"); #endif } diff --git a/src/common/backend/parser/parse_utilcmd.cpp b/src/common/backend/parser/parse_utilcmd.cpp index 679a82516..8f5235656 100644 --- a/src/common/backend/parser/parse_utilcmd.cpp +++ b/src/common/backend/parser/parse_utilcmd.cpp @@ -4113,6 +4113,16 @@ List* transformAlterTableStmt(Oid relid, AlterTableStmt* stmt, const char* query break; case AT_SplitPartition: + if (!RELATION_IS_PARTITIONED(rel)) + ereport(ERROR, + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmodule(MOD_OPT), + errmsg("can not split partition against NON-PARTITIONED table"))); + if (rel->partMap->type == PART_TYPE_LIST || rel->partMap->type == PART_TYPE_HASH) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not split LIST/HASH partition table"))); + } + /* transform the boundary of range partition: from A_Const into Const */ splitDefState = (SplitPartitionState*)cmd->def; if (!PointerIsValid(splitDefState->split_point)) { @@ -4133,12 +4143,6 @@ List* transformAlterTableStmt(Oid relid, AlterTableStmt* stmt, const char* query Const* upBound = NULL; Oid srcPartOid = InvalidOid; - if (!RELATION_IS_PARTITIONED(rel)) - ereport(ERROR, - (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmodule(MOD_OPT), - errmsg("can not split partition against NON-PARTITIONED table"))); - /* get partition number */ partNum = getNumberOfPartitions(rel); diff --git a/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.cpp b/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.cpp index 1a5626053..8066b33e5 100644 --- a/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.cpp +++ b/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.cpp @@ -75,7 +75,9 @@ void clean_empty_conn_4cl(PGconn *conn) } libpq_free(conn->dbName); if (conn->client_logic != NULL) { +#if ((defined(ENABLE_MULTIPLE_NODES)) || (defined(ENABLE_PRIVATEGAUSS))) free_kms_cache(conn->client_logic->client_cache_id); +#endif delete conn->client_logic; conn->client_logic = NULL; } @@ -142,16 +144,18 @@ bool ClientLogicJNI::link_client_logic(JNIEnv *env, jobject jdbc_cl_impl, const bool ClientLogicJNI::set_kms_info(const char *key, const char *value) { - CmkemErrCode ret = CMKEM_SUCCEED; if (m_stub_conn == NULL) { return false; /* should never happen */ } +#if ((defined(ENABLE_MULTIPLE_NODES)) || (defined(ENABLE_PRIVATEGAUSS))) + CmkemErrCode ret = CMKEM_SUCCEED; ret = set_kms_cache_auth_info(m_stub_conn->client_logic->client_cache_id, key, value); if (ret != CMKEM_SUCCEED) { JNI_LOG_ERROR(get_cmkem_errmsg(ret)); return false; } +#endif return true; } diff --git a/src/gausskernel/optimizer/commands/tablecmds.cpp b/src/gausskernel/optimizer/commands/tablecmds.cpp index 766dec28a..a9bdf61ba 100644 --- a/src/gausskernel/optimizer/commands/tablecmds.cpp +++ b/src/gausskernel/optimizer/commands/tablecmds.cpp @@ -22672,8 +22672,8 @@ static char* GenTemporaryPartitionName(Relation partTableRel, int sequence) return pstrdup(tmpName); } -static Oid GetNewPartitionOid( - Relation pgPartRel, Relation partTableRel, Node *partDef, Oid bucketOid, bool *isTimestamptz, StorageType stype) +static Oid GetNewPartitionOid(Relation pgPartRel, Relation partTableRel, Node *partDef, Oid bucketOid, + bool *isTimestamptz, StorageType stype, Datum new_reloptions) { Oid newPartOid = InvalidOid; switch (nodeTag(partDef)) { @@ -22684,7 +22684,7 @@ static Oid GetNewPartitionOid( bucketOid, (RangePartitionDefState *)partDef, partTableRel->rd_rel->relowner, - (Datum)0, + new_reloptions, isTimestamptz, stype, AccessExclusiveLock); @@ -22760,8 +22760,8 @@ static Oid AddTemporaryPartition(Relation partTableRel, Node* partDef) } /* Temporary tables do not use segment-page */ - newPartOid = GetNewPartitionOid( - pgPartRel, partTableRel, partDef, bucketOid, isTimestamptz, RelationGetStorageType(partTableRel)); + newPartOid = GetNewPartitionOid(pgPartRel, partTableRel, partDef, bucketOid, + isTimestamptz, RelationGetStorageType(partTableRel), new_reloptions); // We must bump the command counter to make the newly-created // partition tuple visible for opening. diff --git a/src/gausskernel/process/tcop/utility.cpp b/src/gausskernel/process/tcop/utility.cpp index abd5dccbd..114d37f0b 100755 --- a/src/gausskernel/process/tcop/utility.cpp +++ b/src/gausskernel/process/tcop/utility.cpp @@ -5623,8 +5623,10 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi * ******************************** DOMAIN statements **** */ case T_CreateDomainStmt: +#ifdef ENABLE_MULTIPLE_NODES if (!IsInitdb && !u_sess->attr.attr_common.IsInplaceUpgrade) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("domain is not yet supported."))); +#endif DefineDomain((CreateDomainStmt*)parse_tree); #ifdef PGXC if (IS_PGXC_COORDINATOR) diff --git a/src/test/regress/expected/autonomous_test.out b/src/test/regress/expected/autonomous_test.out index 26e8de304..f3238e491 100644 --- a/src/test/regress/expected/autonomous_test.out +++ b/src/test/regress/expected/autonomous_test.out @@ -10,22 +10,22 @@ DECLARE res int; res2 text; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; res2 := 'aa55'; res := 55; END; / -just use call. +NOTICE: just use call. create table t1(a int ,b text); DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; insert into t1 values(1,'you are so cute!'); END; / -just use call. +NOTICE: just use call. select * from t1; a | b @@ -42,11 +42,11 @@ START TRANSACTION; DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; insert into t1 values(1,'you are so cute,will commit!'); END; / -just use call. +NOTICE: just use call. insert into t1 values(1,'you will rollback!'); rollback; @@ -68,14 +68,14 @@ BEGIN DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; insert into t1 values(1,'can you rollback!'); END; insert into t1 values(2,'I will rollback!'); rollback; END; / -just use call. +NOTICE: just use call. select * from t1; a | b ---+--- @@ -90,11 +90,11 @@ DECLARE res int := 0; res2 int := 1; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; res2 = res2/res; END; / -just use call. +NOTICE: just use call. ERROR: ERROR: division by zero CONTEXT: PL/pgSQL function inline_code_block line 6 at assignment @@ -107,16 +107,16 @@ DECLARE res int := 0; res2 int := 1; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; res2 = res2/res; EXCEPTION WHEN division_by_zero THEN - dbe_output.print_line('autonomous throw exception.'); + raise notice 'autonomous throw exception.'; END; / -just use call. +NOTICE: just use call. -autonomous throw exception. +NOTICE: autonomous throw exception. /************************************************************************/ /* PROCEDURE */ @@ -184,21 +184,23 @@ DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN insert into t2 values(num3, num4); - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; END; / CREATE OR REPLACE PROCEDURE autonomous_5(a int, b int) AS DECLARE BEGIN - dbe_output.print_line('just no use call.'); + raise notice 'just no use call.'; insert into t2 values(666, 666); autonomous_4(a,b); rollback; END; / select autonomous_5(11,22); -just no use call. -just use call. +NOTICE: just no use call. +CONTEXT: referenced column: autonomous_5 +NOTICE: just use call. +CONTEXT: referenced column: autonomous_4 autonomous_5 -------------- @@ -229,21 +231,23 @@ DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN insert into t2 values(num3, num4); - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; rollback; END; / CREATE OR REPLACE PROCEDURE autonomous_7(a int, b int) AS DECLARE BEGIN - dbe_output.print_line('just no use call.'); + raise notice 'just no use call.'; insert into t2 values(666, 666); autonomous_6(a,b); END; / select autonomous_7(11,22); -just no use call. -just use call. +NOTICE: just no use call. +CONTEXT: referenced column: autonomous_7 +NOTICE: just use call. +CONTEXT: referenced column: autonomous_6 autonomous_7 -------------- @@ -283,11 +287,12 @@ BEGIN autonomous_8(); EXCEPTION WHEN division_by_zero THEN - dbe_output.print_line('autonomous throw exception.'); + raise notice 'autonomous throw exception.'; END; / select autonomous_9(); -autonomous throw exception. +NOTICE: autonomous throw exception. +CONTEXT: referenced column: autonomous_9 autonomous_9 -------------- @@ -307,11 +312,12 @@ BEGIN b := b/a; EXCEPTION WHEN division_by_zero THEN - dbe_output.print_line('inner autonomous exception.'); + raise notice 'inner autonomous exception.'; END; / select autonomous_10(); -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_10 autonomous_10 --------------- @@ -324,11 +330,12 @@ BEGIN autonomous_10(); EXCEPTION WHEN division_by_zero THEN - dbe_output.print_line('autonomous throw exception.'); + raise notice 'autonomous throw exception.'; END; / select autonomous_11(); -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_10 autonomous_11 --------------- @@ -415,39 +422,46 @@ DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN insert into t3 values(a, b, c); - dbe_output.print_line('inner autonomous exception.'); + raise notice 'inner autonomous exception.'; autonomous_15(a, b, c); END; / select autonomous_15(1,2,'1111'); -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_15 -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_15 -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_15 -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_15 -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_15 -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_15 -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_15 @@ -455,7 +469,8 @@ inner autonomous exception. -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_15 @@ -464,7 +479,8 @@ inner autonomous exception. -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_15 @@ -474,7 +490,8 @@ inner autonomous exception. -inner autonomous exception. +NOTICE: inner autonomous exception. +CONTEXT: referenced column: autonomous_15 @@ -729,11 +746,11 @@ SET SESSION AUTHORIZATION jim PASSWORD 'gauss_123'; DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN -dbe_output.print_line('just use call.'); +raise notice 'just use call.'; insert into t5 values(1,'aaa'); END; / -just use call. +NOTICE: just use call. ERROR: ERROR: permission denied for relation t5 DETAIL: N/A diff --git a/src/test/regress/expected/cast_privileges_test.out b/src/test/regress/expected/cast_privileges_test.out index 947b421c4..369aa98dd 100644 --- a/src/test/regress/expected/cast_privileges_test.out +++ b/src/test/regress/expected/cast_privileges_test.out @@ -1,5 +1,7 @@ create user user1 password '1234567i*'; grant all on schema public to user1; +create schema privilege_test; +grant all on schema privilege_test to user1; set role user1 password '1234567i*'; CREATE TYPE public.int111 AS (f1 int, f2 int); CREATE TYPE public.text111 AS (f1 text, f2 text); @@ -7,7 +9,7 @@ create table public.aa_int(aa int111); create table public.bb_text(bb text111); insert into public.aa_int values((111,222)); insert into public.bb_text values((111,222)); -CREATE OR REPLACE FUNCTION public.text_int(text111)RETURNS int111 AS $$ +CREATE OR REPLACE FUNCTION privilege_test.text_int(text111)RETURNS int111 AS $$ declare res public.int111; begin @@ -15,14 +17,22 @@ begin res:=($1.f1::int,$1.f2::int); return res; end;$$ language plpgsql security invoker; -select public.text_int((111,222)); +select privilege_test.text_int((111,222)); ERROR: Permission denied. CONTEXT: SQL statement "alter USER user1 with sysadmin" -PL/pgSQL function text_int(text111) line 5 at SQL statement +PL/pgSQL function privilege_test.text_int(text111) line 5 at SQL statement referenced column: text_int -CREATE CAST (text111 AS int111) WITH FUNCTION public.text_int(text111) AS IMPLICIT; +CREATE CAST (text111 AS int111) WITH FUNCTION privilege_test.text_int(text111) AS IMPLICIT; reset role; select aa ,bb from aa_int ,bb_text where aa_int.aa=bb_text.bb::int111; ERROR: Permission denied. CONTEXT: SQL statement "alter USER user1 with sysadmin" -PL/pgSQL function text_int(text111) line 5 at SQL statement +PL/pgSQL function privilege_test.text_int(text111) line 5 at SQL statement +drop table aa_int; +drop table bb_text; +drop type int111 cascade; +NOTICE: drop cascades to 2 other objects +DETAIL: drop cascades to function privilege_test.text_int(text111) +drop cascades to cast from text111 to int111 +drop type text111 cascade; +drop user user1 cascade; diff --git a/src/test/regress/expected/first_last_agg.out b/src/test/regress/expected/first_last_agg.out index 891d37589..b9aada2a6 100644 --- a/src/test/regress/expected/first_last_agg.out +++ b/src/test/regress/expected/first_last_agg.out @@ -1,10 +1,10 @@ select oid, * from pg_proc where proname in ('first', 'first_transition', 'last', 'last_transition') order by oid; - oid | proname | pronamespace | proowner | prolang | procost | prorows | provariadic | protransform | proisagg | proiswindow | prosecdef | proleakproof | proisstrict | proretset | provolatile | pronargs | pronargdefaults | prorettype | proargtypes | proallargtypes | proargmodes | proargnames | proargdefaults | prosrc | probin | proconfig | proacl | prodefaultargpos | fencedmode | proshippable | propackage | prokind -------+------------------+--------------+----------+---------+---------+---------+-------------+--------------+----------+-------------+-----------+--------------+-------------+-----------+-------------+----------+-----------------+------------+-------------+----------------+-------------+-------------+----------------+------------------+--------+-----------+--------+------------------+------------+--------------+------------+--------- - 6558 | first_transition | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 2283 | 2283 2283 | | | | | first_transition | | | | | f | | f | f - 6559 | last_transition | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 2283 | 2283 2283 | | | | | last_transition | | | | | f | | f | f - 6560 | first | 11 | 10 | 12 | 1 | 0 | 0 | - | t | f | f | f | f | f | i | 1 | 0 | 2283 | 2283 | | | | | aggregate_dummy | | | | | f | | f | f - 6561 | last | 11 | 10 | 12 | 1 | 0 | 0 | - | t | f | f | f | f | f | i | 1 | 0 | 2283 | 2283 | | | | | aggregate_dummy | | | | | f | | f | f + oid | proname | pronamespace | proowner | prolang | procost | prorows | provariadic | protransform | proisagg | proiswindow | prosecdef | proleakproof | proisstrict | proretset | provolatile | pronargs | pronargdefaults | prorettype | proargtypes | proallargtypes | proargmodes | proargnames | proargdefaults | prosrc | probin | proconfig | proacl | prodefaultargpos | fencedmode | proshippable | propackage | prokind | proargsrc | propackageid | proisprivate | proargtypesext | prodefaultargposext +------+------------------+--------------+----------+---------+---------+---------+-------------+--------------+----------+-------------+-----------+--------------+-------------+-----------+-------------+----------+-----------------+------------+-------------+----------------+-------------+-------------+----------------+------------------+--------+-----------+--------+------------------+------------+--------------+------------+---------+-----------+--------------+--------------+----------------+--------------------- + 6558 | first_transition | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 2283 | 2283 2283 | | | | | first_transition | | | | | f | | f | f | | 0 | f | | + 6559 | last_transition | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 2283 | 2283 2283 | | | | | last_transition | | | | | f | | f | f | | 0 | f | | + 6560 | first | 11 | 10 | 12 | 1 | 0 | 0 | - | t | f | f | f | f | f | i | 1 | 0 | 2283 | 2283 | | | | | aggregate_dummy | | | | | f | | f | f | | 0 | f | | + 6561 | last | 11 | 10 | 12 | 1 | 0 | 0 | - | t | f | f | f | f | f | i | 1 | 0 | 2283 | 2283 | | | | | aggregate_dummy | | | | | f | | f | f | | 0 | f | | (4 rows) create table first_last_test(a int, b int, c int, d int); diff --git a/src/test/regress/expected/generated_col.out b/src/test/regress/expected/generated_col.out index 130602aa3..d73027da3 100644 --- a/src/test/regress/expected/generated_col.out +++ b/src/test/regress/expected/generated_col.out @@ -473,25 +473,15 @@ INSERT INTO gtest23q VALUES (2, 5); -- error ERROR: insert or update on table "gtest23q" violates foreign key constraint "gtest23q_b_fkey" DETAIL: Key (b)=(5) is not present in table "gtest23p". DROP TABLE gtest23q; --- domains (domain is not yet supported.) +-- domains CREATE DOMAIN gtestdomain1 AS int CHECK (VALUE < 10); -ERROR: domain is not yet supported. CREATE TABLE gtest24 (a int PRIMARY KEY, b gtestdomain1 GENERATED ALWAYS AS (a * 2) STORED); -ERROR: type "gtestdomain1" does not exist -LINE 1: CREATE TABLE gtest24 (a int PRIMARY KEY, b gtestdomain1 GENE... - ^ +NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "gtest24_pkey" for table "gtest24" INSERT INTO gtest24 (a) VALUES (4); -- ok -ERROR: relation "gtest24" does not exist on datanode1 -LINE 1: INSERT INTO gtest24 (a) VALUES (4); - ^ INSERT INTO gtest24 (a) VALUES (6); -- error -ERROR: relation "gtest24" does not exist on datanode1 -LINE 1: INSERT INTO gtest24 (a) VALUES (6); - ^ +ERROR: value for domain gtestdomain1 violates check constraint "gtestdomain1_check" DROP TABLE gtest24; -ERROR: table "gtest24" does not exist DROP DOMAIN gtestdomain1; -ERROR: type "gtestdomain1" does not exist -- typed tables (currently not supported) CREATE TYPE gtest_type AS (f1 integer, f2 text, f3 bigint); CREATE TABLE gtest28 OF gtest_type (f1 WITH OPTIONS GENERATED ALWAYS AS (f2 *2) STORED); diff --git a/src/test/regress/expected/gpi_build_index.out b/src/test/regress/expected/gpi_build_index.out index d00d0e396..4ddf83e71 100644 --- a/src/test/regress/expected/gpi_build_index.out +++ b/src/test/regress/expected/gpi_build_index.out @@ -228,11 +228,11 @@ Number of partition: 5 (View pg_partition to check each partition range.) insert into test_gpi_create_like values(generate_series(0,9999), 1); explain (costs off) select * from test_gpi_create_like where c1 = 0; - QUERY PLAN ------------------------------------------------------------------ + QUERY PLAN +-------------------------------------------------------------------- Bitmap Heap Scan on test_gpi_create_like Recheck Cond: (c1 = 0) - -> Bitmap Index Scan on test_gpi_create_like_c1_tableoid_idx + -> Bitmap Index Scan on test_gpi_create_like_c1_c2_tableoid_idx Index Cond: (c1 = 0) (4 rows) diff --git a/src/test/regress/expected/gpi_clean_wait.out b/src/test/regress/expected/gpi_clean_wait.out index 85453628a..6991ee5d1 100644 --- a/src/test/regress/expected/gpi_clean_wait.out +++ b/src/test/regress/expected/gpi_clean_wait.out @@ -21,9 +21,9 @@ select a.relname,a.parttype,a.reloptions from pg_partition a, pg_class b where a (2 rows) explain (costs off) select * from test_gpi_more_invalid where a >= 3000; - QUERY PLAN ---------------------------------------------------------------------------- - Index Scan using global_index_gpi_more_invalid_b on test_gpi_more_invalid + QUERY PLAN +------------------------------------------------------------------------------------ + Index Only Scan using global_index_gpi_more_invalid_a_b_c on test_gpi_more_invalid Index Cond: (a >= 3000) (2 rows) @@ -55,10 +55,10 @@ explain (costs off) select count(*) from test_gpi_more_invalid where a <= 100 an (4 rows) explain (costs off) select count(*) from test_gpi_more_invalid where a > 3000; - QUERY PLAN --------------------------------------------------------------------------------------- + QUERY PLAN +------------------------------------------------------------------------------------------ Aggregate - -> Index Only Scan using global_index_gpi_more_invalid_b on test_gpi_more_invalid + -> Index Only Scan using global_index_gpi_more_invalid_a_b_c on test_gpi_more_invalid Index Cond: (a > 3000) (3 rows) diff --git a/src/test/regress/expected/gpi_index.out b/src/test/regress/expected/gpi_index.out index da2967b93..a16c2607d 100644 --- a/src/test/regress/expected/gpi_index.out +++ b/src/test/regress/expected/gpi_index.out @@ -119,12 +119,11 @@ select * from gpi_index_test where a < 200 and b > 190 order by a; -- multi column index with global index create index gpi_index_test_global_a_b on gpi_index_test(a,b) global; explain (costs off) select * from gpi_index_test where a = 200 and b = 100; - QUERY PLAN ------------------------------------------------------------- - Index Scan using gpi_index_test_global_b on gpi_index_test - Index Cond: (b = 100) - Filter: (a = 200) -(3 rows) + QUERY PLAN +-------------------------------------------------------------- + Index Scan using gpi_index_test_global_a_b on gpi_index_test + Index Cond: ((a = 200) AND (b = 100)) +(2 rows) select * from gpi_index_test where a = 100 and b = 100 order by a; a | b | c diff --git a/src/test/regress/expected/hll_misc.out b/src/test/regress/expected/hll_misc.out index 05ed29eec..8079aa7b8 100644 --- a/src/test/regress/expected/hll_misc.out +++ b/src/test/regress/expected/hll_misc.out @@ -136,13 +136,13 @@ with type_oids as ) select * from pg_cast where castsource in ( select * from type_oids ) or casttarget in ( select * from type_oids ) order by 1; - castsource | casttarget | castfunc | castcontext | castmethod -------------+------------+----------+-------------+------------ - 17 | 4301 | 0 | e | b - 20 | 4303 | 0 | e | b - 23 | 4303 | 4317 | e | f - 4301 | 4301 | 4311 | i | f - 4402 | 4301 | 0 | e | b + castsource | casttarget | castfunc | castcontext | castmethod | castowner +------------+------------+----------+-------------+------------+----------- + 17 | 4301 | 0 | e | b | + 20 | 4303 | 0 | e | b | + 23 | 4303 | 4317 | e | f | + 4301 | 4301 | 4311 | i | f | + 4402 | 4301 | 0 | e | b | (5 rows) --final cleaning diff --git a/src/test/regress/expected/hw_package.out b/src/test/regress/expected/hw_package.out index c906ed17a..e7eaf8bff 100644 --- a/src/test/regress/expected/hw_package.out +++ b/src/test/regress/expected/hw_package.out @@ -568,6 +568,7 @@ end cnt; create user user1 password 'huawei@123'; set session AUTHORIZATION user1 PASSWORD 'huawei@123'; reset session AUTHORIZATION; +DROP USER user1; create or replace package commit_rollback_test as procedure exec_func3(ret_num out int); procedure exec_func4(add_num in int); diff --git a/src/test/regress/expected/json_and_jsonb.out b/src/test/regress/expected/json_and_jsonb.out index 879006c22..b027969d8 100644 --- a/src/test/regress/expected/json_and_jsonb.out +++ b/src/test/regress/expected/json_and_jsonb.out @@ -7,92 +7,92 @@ select oid,* from pg_type where typname like 'json%' order by oid; (2 rows) select oid,* from pg_proc where proname like '%json%' order by oid; - oid | proname | pronamespace | proowner | prolang | procost | prorows | provariadic | protransform | proisagg | proiswindow | prosecdef | proleakproof | proisstrict | proretset | provolatile | pronargs | pronargdefaults | prorettype | proargtypes | proallargtypes | proargmodes | proargnames | proargdefaults | prosrc | probin | proconfig | proacl | prodefaultargpos | fencedmode | proshippable | propackage | prokind -------+------------------------------+--------------+----------+---------+---------+---------+-------------+--------------+----------+-------------+-----------+--------------+-------------+-----------+-------------+----------+-----------------+------------+-------------------------------------+----------------+-------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------+--------+-----------+--------+------------------+------------+--------------+------------+--------- - 321 | json_in | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 114 | 2275 | | | | | json_in | | | | | f | | f | f - 322 | json_out | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 2275 | 114 | | | | | json_out | | | | | f | | f | f - 323 | json_recv | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 114 | 2281 | | | | | json_recv | | | | | f | | f | f - 324 | json_send | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 17 | 114 | | | | | json_send | | | | | f | | f | f - 3079 | json_array_element_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 114 23 | | | | | json_array_element_text | | | | | f | f | f | f - 3124 | json_agg | 11 | 10 | 12 | 1 | 0 | 0 | - | t | f | f | f | f | f | i | 1 | 0 | 114 | 2283 | | | | | aggregate_dummy | | | | | f | f | f | f - 3125 | json_agg_finalfn | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 1 | 0 | 114 | 2281 | | | | | json_agg_finalfn | | | | | f | f | f | f - 3126 | json_agg_transfn | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 2 | 0 | 2281 | 2281 2283 | | | | | json_agg_transfn | | | | | f | f | f | f - 3127 | json_array_elements_text | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 25 | 114 | {114,25} | {i,o} | {from_json,value} | | json_array_elements_text | | | | | f | f | f | f - 3128 | json_array_length | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 23 | 114 | | | | | json_array_length | | | | | f | f | f | f - 3153 | array_to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 1 | 0 | 114 | 2277 | | | | | array_to_json | | | | | f | | f | f - 3154 | array_to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 2 | 0 | 114 | 2277 16 | | | | | array_to_json_pretty | | | | | f | | f | f - 3155 | row_to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 1 | 0 | 114 | 2249 | | | | | row_to_json | | | | | f | | f | f - 3156 | row_to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 2 | 0 | 114 | 2249 16 | | | | | row_to_json_pretty | | | | | f | | f | f - 3238 | json_build_array | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 0 | 0 | 114 | | | | | | json_build_array_noargs | | | | | f | f | f | f - 3239 | json_build_array | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 1 | 0 | 114 | 2276 | {2276} | {v} | | | json_build_array | | | | | f | f | f | f - 3258 | json_each | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 2249 | 114 | {114,25,114} | {i,o,o} | {from_json,key,value} | | json_each | | | | | f | f | f | f - 3259 | json_each_text | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 2249 | 114 | {114,25,25} | {i,o,o} | {from_json,key,value} | | json_each_text | | | | | f | f | f | f - 3260 | json_build_object | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 0 | 0 | 114 | | | | | | json_build_object_noargs | | | | | f | f | f | f - 3261 | json_build_object | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 1 | 0 | 114 | 2276 | {2276} | {v} | | | json_build_object | | | | | f | f | f | f - 3262 | json_extract_path | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 114 | 114 1009 | {114,1009} | {i,v} | | | json_extract_path | | | | | f | f | f | f - 3263 | json_extract_path_op | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 114 | 114 1009 | | | | | json_extract_path | | | | | f | f | f | f - 3264 | json_extract_path_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 114 1009 | {114,1009} | {i,v} | | | json_extract_path_text | | | | | f | f | f | f - 3270 | json_typeof | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 25 | 114 | | | | | json_typeof | | | | | f | f | f | f - 3318 | json_extract_path_text_op | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 114 1009 | | | | | json_extract_path_text | | | | | f | f | f | f - 3319 | jsonb_extract_path_op | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 3802 | 3802 1009 | | | | | jsonb_extract_path | | | | | f | f | f | f - 3401 | json_object | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 2 | 0 | 114 | 1009 1009 | | | | | json_object_two_arg | | | | | f | f | f | f - 3402 | json_object | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 1 | 0 | 114 | 1009 | | | | | json_object | | | | | f | f | f | f - 3403 | json_object_agg | 11 | 10 | 12 | 1 | 0 | 0 | - | t | f | f | f | f | f | i | 2 | 0 | 114 | 2276 2276 | | | | | aggregate_dummy | | | | | f | f | f | f - 3404 | json_object_agg_finalfn | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 1 | 0 | 114 | 2281 | | | | | json_object_agg_finalfn | | | | | f | f | f | f - 3405 | json_object_agg_transfn | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 3 | 0 | 2281 | 2281 2276 2276 | | | | | json_object_agg_transfn | | | | | f | f | f | f - 3406 | json_object_field | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 114 | 114 25 | | | | | json_object_field | | | | | f | f | f | f - 3407 | json_object_keys | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 25 | 114 | | | | | json_object_keys | | | | | f | f | f | f - 3408 | json_populate_record | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | s | 3 | 1 | 2283 | 2283 114 16 | | | | ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false}) | json_populate_record | | | | 2 | f | f | f | f - 3409 | json_populate_recordset | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | f | t | s | 3 | 1 | 2283 | 2283 114 16 | | | | ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false}) | json_populate_recordset | | | | 2 | f | f | f | f - 3410 | json_to_record | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | s | 2 | 0 | 2249 | 114 16 | | | | | json_to_record | | | | | f | f | f | f - 3411 | json_to_recordset | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | f | t | s | 2 | 0 | 2249 | 114 16 | | | | | json_to_recordset | | | | | f | f | f | f - 3412 | jsonb_array_element | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 3802 | 3802 23 | | | | | jsonb_array_element | | | | | f | f | f | f - 3413 | jsonb_array_element_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 3802 23 | | | | | jsonb_array_element_text | | | | | f | f | f | f - 3414 | jsonb_array_elements | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 3802 | 3802 | {3802,3802} | {i,o} | {from_json,value} | | jsonb_array_elements | | | | | f | f | f | f - 3415 | jsonb_array_elements_text | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 25 | 3802 | {3802,25} | {i,o} | {from_json,value} | | jsonb_array_elements_text | | | | | f | f | f | f - 3416 | jsonb_array_length | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 23 | 3802 | | | | | jsonb_array_length | | | | | f | f | f | f - 3417 | jsonb_cmp | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 23 | 3802 3802 | | | | | jsonb_cmp | | | | | f | f | f | f - 3418 | jsonb_contains | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_contains | | | | | f | f | f | f - 3419 | jsonb_each | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 2249 | 3802 | {3802,25,3802} | {i,o,o} | {from_json,key,value} | | jsonb_each | | | | | f | f | f | f - 3420 | jsonb_each_text | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 2249 | 3802 | {3802,25,25} | {i,o,o} | {from_json,key,value} | | jsonb_each_text | | | | | f | f | f | f - 3421 | jsonb_eq | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_eq | | | | | f | f | f | f - 3422 | jsonb_exists | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 25 | | | | | jsonb_exists | | | | | f | f | f | f - 3423 | jsonb_exists_all | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 1009 | | | | | jsonb_exists_all | | | | | f | f | f | f - 3424 | jsonb_exists_any | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 1009 | | | | | jsonb_exists_any | | | | | f | f | f | f - 3425 | jsonb_extract_path | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 3802 | 3802 1009 | {3802,1009} | {i,v} | | | jsonb_extract_path | | | | | f | f | f | f - 3426 | jsonb_extract_path_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 3802 1009 | {3802,1009} | {i,v} | | | jsonb_extract_path_text | | | | | f | f | f | f - 3427 | jsonb_extract_path_text_op | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 3802 1009 | | | | | jsonb_extract_path_text | | | | | f | f | f | f - 3428 | jsonb_ge | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_ge | | | | | f | f | f | f - 3429 | jsonb_gt | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_gt | | | | | f | f | f | f - 3430 | jsonb_hash | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 23 | 3802 | | | | | jsonb_hash | | | | | f | f | f | f - 3431 | jsonb_le | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_le | | | | | f | f | f | f - 3432 | jsonb_ne | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_ne | | | | | f | f | f | f - 3433 | jsonb_object_field | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 3802 | 3802 25 | | | | | jsonb_object_field | | | | | f | f | f | f - 3434 | jsonb_object_field_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 3802 25 | | | | | jsonb_object_field_text | | | | | f | f | f | f - 3435 | jsonb_object_keys | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 25 | 3802 | | | | | jsonb_object_keys | | | | | f | f | f | f - 3436 | jsonb_out | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 2275 | 3802 | | | | | jsonb_out | | | | | f | f | f | f - 3437 | jsonb_populate_record | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | s | 3 | 1 | 2283 | 2283 3802 16 | | | | ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false}) | jsonb_populate_record | | | | 2 | f | f | f | f - 3438 | jsonb_populate_recordset | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | f | t | s | 3 | 1 | 2283 | 2283 3802 16 | | | | ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false}) | jsonb_populate_recordset | | | | 2 | f | f | f | f - 3443 | jsonb_recv | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 3802 | 2281 | | | | | jsonb_recv | | | | | f | f | f | f - 3444 | jsonb_send | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 17 | 3802 | | | | | jsonb_send | | | | | f | f | f | f - 3445 | jsonb_typeof | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 25 | 3802 | | | | | jsonb_typeof | | | | | f | f | f | f - 3446 | to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 1 | 0 | 114 | 2283 | | | | | to_json | | | | | f | f | f | f - 3482 | gin_extract_jsonb | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 3 | 0 | 2281 | 2281 2281 2281 | | | | | gin_extract_jsonb | | | | | f | f | f | f - 3486 | gin_extract_jsonb_query_hash | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 7 | 0 | 2281 | 2277 2281 21 2281 2281 2281 2281 | | | | | gin_extract_jsonb_query_hash | | | | | f | f | f | f - 3487 | gin_consistent_jsonb_hash | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 8 | 0 | 16 | 2281 21 2277 23 2281 2281 2281 2281 | | | | | gin_consistent_jsonb_hash | | | | | f | f | f | f - 3492 | gin_extract_jsonb_hash | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 3 | 0 | 2281 | 2281 2281 2281 | | | | | gin_extract_jsonb_hash | | | | | f | f | f | f - 3493 | gin_extract_jsonb_query | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 7 | 0 | 2281 | 2277 2281 21 2281 2281 2281 2281 | | | | | gin_extract_jsonb_query | | | | | f | f | f | f - 3494 | gin_triconsistent_jsonb | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 7 | 0 | 16 | 2281 21 2277 23 2281 2281 2281 | | | | | gin_triconsistent_jsonb | | | | | f | f | f | f - 3495 | gin_triconsistent_jsonb_hash | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 7 | 0 | 16 | 2281 21 2277 23 2281 2281 2281 | | | | | gin_triconsistent_jsonb_hash | | | | | f | f | f | f - 3497 | gin_consistent_jsonb | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 8 | 0 | 16 | 2281 21 2277 23 2281 2281 2281 2281 | | | | | gin_consistent_jsonb | | | | | f | f | f | f - 3498 | gin_compare_jsonb | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 23 | 25 25 | | | | | gin_compare_jsonb | | | | | f | f | f | f - 3549 | json_array_elements | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 114 | 114 | {114,114} | {i,o} | {from_json,value} | | json_array_elements | | | | | f | f | f | f - 3806 | jsonb_in | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 3802 | 2275 | | | | | jsonb_in | | | | | f | f | f | f - 3948 | json_object_field_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 114 25 | | | | | json_object_field_text | | | | | f | f | f | f - 3949 | json_array_element | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 114 | 114 23 | | | | | json_array_element | | | | | f | f | f | f - 4039 | jsonb_lt | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_lt | | | | | f | f | f | f - 4050 | jsonb_contained | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_contained | | | | | f | f | f | f - 5719 | capture_view_to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | v | 2 | 0 | 23 | 25 23 | | {i,i} | {view_name,is_all_db} | | capture_view_to_json | | | | | f | f | f | f + oid | proname | pronamespace | proowner | prolang | procost | prorows | provariadic | protransform | proisagg | proiswindow | prosecdef | proleakproof | proisstrict | proretset | provolatile | pronargs | pronargdefaults | prorettype | proargtypes | proallargtypes | proargmodes | proargnames | proargdefaults | prosrc | probin | proconfig | proacl | prodefaultargpos | fencedmode | proshippable | propackage | prokind | proargsrc | propackageid | proisprivate | proargtypesext | prodefaultargposext +------+------------------------------+--------------+----------+---------+---------+---------+-------------+--------------+----------+-------------+-----------+--------------+-------------+-----------+-------------+----------+-----------------+------------+-------------------------------------+----------------+-------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------+--------+-----------+--------+------------------+------------+--------------+------------+---------+-----------+--------------+--------------+----------------+--------------------- + 321 | json_in | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 114 | 2275 | | | | | json_in | | | | | f | | f | f | | 0 | f | | + 322 | json_out | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 2275 | 114 | | | | | json_out | | | | | f | | f | f | | 0 | f | | + 323 | json_recv | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 114 | 2281 | | | | | json_recv | | | | | f | | f | f | | 0 | f | | + 324 | json_send | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 17 | 114 | | | | | json_send | | | | | f | | f | f | | 0 | f | | + 3079 | json_array_element_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 114 23 | | | | | json_array_element_text | | | | | f | f | f | f | | 0 | f | | + 3124 | json_agg | 11 | 10 | 12 | 1 | 0 | 0 | - | t | f | f | f | f | f | i | 1 | 0 | 114 | 2283 | | | | | aggregate_dummy | | | | | f | f | f | f | | 0 | f | | + 3125 | json_agg_finalfn | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 1 | 0 | 114 | 2281 | | | | | json_agg_finalfn | | | | | f | f | f | f | | 0 | f | | + 3126 | json_agg_transfn | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 2 | 0 | 2281 | 2281 2283 | | | | | json_agg_transfn | | | | | f | f | f | f | | 0 | f | | + 3127 | json_array_elements_text | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 25 | 114 | {114,25} | {i,o} | {from_json,value} | | json_array_elements_text | | | | | f | f | f | f | | 0 | f | | + 3128 | json_array_length | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 23 | 114 | | | | | json_array_length | | | | | f | f | f | f | | 0 | f | | + 3153 | array_to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 1 | 0 | 114 | 2277 | | | | | array_to_json | | | | | f | | f | f | | 0 | f | | + 3154 | array_to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 2 | 0 | 114 | 2277 16 | | | | | array_to_json_pretty | | | | | f | | f | f | | 0 | f | | + 3155 | row_to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 1 | 0 | 114 | 2249 | | | | | row_to_json | | | | | f | | f | f | | 0 | f | | + 3156 | row_to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 2 | 0 | 114 | 2249 16 | | | | | row_to_json_pretty | | | | | f | | f | f | | 0 | f | | + 3238 | json_build_array | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 0 | 0 | 114 | | | | | | json_build_array_noargs | | | | | f | f | f | f | | 0 | f | | + 3239 | json_build_array | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 1 | 0 | 114 | 2276 | {2276} | {v} | | | json_build_array | | | | | f | f | f | f | | 0 | f | | + 3258 | json_each | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 2249 | 114 | {114,25,114} | {i,o,o} | {from_json,key,value} | | json_each | | | | | f | f | f | f | | 0 | f | | + 3259 | json_each_text | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 2249 | 114 | {114,25,25} | {i,o,o} | {from_json,key,value} | | json_each_text | | | | | f | f | f | f | | 0 | f | | + 3260 | json_build_object | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 0 | 0 | 114 | | | | | | json_build_object_noargs | | | | | f | f | f | f | | 0 | f | | + 3261 | json_build_object | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 1 | 0 | 114 | 2276 | {2276} | {v} | | | json_build_object | | | | | f | f | f | f | | 0 | f | | + 3262 | json_extract_path | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 114 | 114 1009 | {114,1009} | {i,v} | | | json_extract_path | | | | | f | f | f | f | | 0 | f | | + 3263 | json_extract_path_op | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 114 | 114 1009 | | | | | json_extract_path | | | | | f | f | f | f | | 0 | f | | + 3264 | json_extract_path_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 114 1009 | {114,1009} | {i,v} | | | json_extract_path_text | | | | | f | f | f | f | | 0 | f | | + 3270 | json_typeof | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 25 | 114 | | | | | json_typeof | | | | | f | f | f | f | | 0 | f | | + 3318 | json_extract_path_text_op | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 114 1009 | | | | | json_extract_path_text | | | | | f | f | f | f | | 0 | f | | + 3319 | jsonb_extract_path_op | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 3802 | 3802 1009 | | | | | jsonb_extract_path | | | | | f | f | f | f | | 0 | f | | + 3401 | json_object | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 2 | 0 | 114 | 1009 1009 | | | | | json_object_two_arg | | | | | f | f | f | f | | 0 | f | | + 3402 | json_object | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 1 | 0 | 114 | 1009 | | | | | json_object | | | | | f | f | f | f | | 0 | f | | + 3403 | json_object_agg | 11 | 10 | 12 | 1 | 0 | 0 | - | t | f | f | f | f | f | i | 2 | 0 | 114 | 2276 2276 | | | | | aggregate_dummy | | | | | f | f | f | f | | 0 | f | | + 3404 | json_object_agg_finalfn | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 1 | 0 | 114 | 2281 | | | | | json_object_agg_finalfn | | | | | f | f | f | f | | 0 | f | | + 3405 | json_object_agg_transfn | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | i | 3 | 0 | 2281 | 2281 2276 2276 | | | | | json_object_agg_transfn | | | | | f | f | f | f | | 0 | f | | + 3406 | json_object_field | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 114 | 114 25 | | | | | json_object_field | | | | | f | f | f | f | | 0 | f | | + 3407 | json_object_keys | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 25 | 114 | | | | | json_object_keys | | | | | f | f | f | f | | 0 | f | | + 3408 | json_populate_record | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | s | 3 | 1 | 2283 | 2283 114 16 | | | | ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false}) | json_populate_record | | | | 2 | f | f | f | f | | 0 | f | | + 3409 | json_populate_recordset | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | f | t | s | 3 | 1 | 2283 | 2283 114 16 | | | | ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false}) | json_populate_recordset | | | | 2 | f | f | f | f | | 0 | f | | + 3410 | json_to_record | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | s | 2 | 0 | 2249 | 114 16 | | | | | json_to_record | | | | | f | f | f | f | | 0 | f | | + 3411 | json_to_recordset | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | f | t | s | 2 | 0 | 2249 | 114 16 | | | | | json_to_recordset | | | | | f | f | f | f | | 0 | f | | + 3412 | jsonb_array_element | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 3802 | 3802 23 | | | | | jsonb_array_element | | | | | f | f | f | f | | 0 | f | | + 3413 | jsonb_array_element_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 3802 23 | | | | | jsonb_array_element_text | | | | | f | f | f | f | | 0 | f | | + 3414 | jsonb_array_elements | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 3802 | 3802 | {3802,3802} | {i,o} | {from_json,value} | | jsonb_array_elements | | | | | f | f | f | f | | 0 | f | | + 3415 | jsonb_array_elements_text | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 25 | 3802 | {3802,25} | {i,o} | {from_json,value} | | jsonb_array_elements_text | | | | | f | f | f | f | | 0 | f | | + 3416 | jsonb_array_length | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 23 | 3802 | | | | | jsonb_array_length | | | | | f | f | f | f | | 0 | f | | + 3417 | jsonb_cmp | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 23 | 3802 3802 | | | | | jsonb_cmp | | | | | f | f | f | f | | 0 | f | | + 3418 | jsonb_contains | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_contains | | | | | f | f | f | f | | 0 | f | | + 3419 | jsonb_each | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 2249 | 3802 | {3802,25,3802} | {i,o,o} | {from_json,key,value} | | jsonb_each | | | | | f | f | f | f | | 0 | f | | + 3420 | jsonb_each_text | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 2249 | 3802 | {3802,25,25} | {i,o,o} | {from_json,key,value} | | jsonb_each_text | | | | | f | f | f | f | | 0 | f | | + 3421 | jsonb_eq | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_eq | | | | | f | f | f | f | | 0 | f | | + 3422 | jsonb_exists | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 25 | | | | | jsonb_exists | | | | | f | f | f | f | | 0 | f | | + 3423 | jsonb_exists_all | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 1009 | | | | | jsonb_exists_all | | | | | f | f | f | f | | 0 | f | | + 3424 | jsonb_exists_any | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 1009 | | | | | jsonb_exists_any | | | | | f | f | f | f | | 0 | f | | + 3425 | jsonb_extract_path | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 3802 | 3802 1009 | {3802,1009} | {i,v} | | | jsonb_extract_path | | | | | f | f | f | f | | 0 | f | | + 3426 | jsonb_extract_path_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 3802 1009 | {3802,1009} | {i,v} | | | jsonb_extract_path_text | | | | | f | f | f | f | | 0 | f | | + 3427 | jsonb_extract_path_text_op | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 3802 1009 | | | | | jsonb_extract_path_text | | | | | f | f | f | f | | 0 | f | | + 3428 | jsonb_ge | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_ge | | | | | f | f | f | f | | 0 | f | | + 3429 | jsonb_gt | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_gt | | | | | f | f | f | f | | 0 | f | | + 3430 | jsonb_hash | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 23 | 3802 | | | | | jsonb_hash | | | | | f | f | f | f | | 0 | f | | + 3431 | jsonb_le | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_le | | | | | f | f | f | f | | 0 | f | | + 3432 | jsonb_ne | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_ne | | | | | f | f | f | f | | 0 | f | | + 3433 | jsonb_object_field | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 3802 | 3802 25 | | | | | jsonb_object_field | | | | | f | f | f | f | | 0 | f | | + 3434 | jsonb_object_field_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 3802 25 | | | | | jsonb_object_field_text | | | | | f | f | f | f | | 0 | f | | + 3435 | jsonb_object_keys | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 25 | 3802 | | | | | jsonb_object_keys | | | | | f | f | f | f | | 0 | f | | + 3436 | jsonb_out | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 2275 | 3802 | | | | | jsonb_out | | | | | f | f | f | f | | 0 | f | | + 3437 | jsonb_populate_record | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | s | 3 | 1 | 2283 | 2283 3802 16 | | | | ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false}) | jsonb_populate_record | | | | 2 | f | f | f | f | | 0 | f | | + 3438 | jsonb_populate_recordset | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | f | t | s | 3 | 1 | 2283 | 2283 3802 16 | | | | ({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false}) | jsonb_populate_recordset | | | | 2 | f | f | f | f | | 0 | f | | + 3443 | jsonb_recv | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 3802 | 2281 | | | | | jsonb_recv | | | | | f | f | f | f | | 0 | f | | + 3444 | jsonb_send | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 17 | 3802 | | | | | jsonb_send | | | | | f | f | f | f | | 0 | f | | + 3445 | jsonb_typeof | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 25 | 3802 | | | | | jsonb_typeof | | | | | f | f | f | f | | 0 | f | | + 3446 | to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | s | 1 | 0 | 114 | 2283 | | | | | to_json | | | | | f | f | f | f | | 0 | f | | + 3482 | gin_extract_jsonb | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 3 | 0 | 2281 | 2281 2281 2281 | | | | | gin_extract_jsonb | | | | | f | f | f | f | | 0 | f | | + 3486 | gin_extract_jsonb_query_hash | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 7 | 0 | 2281 | 2277 2281 21 2281 2281 2281 2281 | | | | | gin_extract_jsonb_query_hash | | | | | f | f | f | f | | 0 | f | | + 3487 | gin_consistent_jsonb_hash | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 8 | 0 | 16 | 2281 21 2277 23 2281 2281 2281 2281 | | | | | gin_consistent_jsonb_hash | | | | | f | f | f | f | | 0 | f | | + 3492 | gin_extract_jsonb_hash | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 3 | 0 | 2281 | 2281 2281 2281 | | | | | gin_extract_jsonb_hash | | | | | f | f | f | f | | 0 | f | | + 3493 | gin_extract_jsonb_query | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 7 | 0 | 2281 | 2277 2281 21 2281 2281 2281 2281 | | | | | gin_extract_jsonb_query | | | | | f | f | f | f | | 0 | f | | + 3494 | gin_triconsistent_jsonb | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 7 | 0 | 16 | 2281 21 2277 23 2281 2281 2281 | | | | | gin_triconsistent_jsonb | | | | | f | f | f | f | | 0 | f | | + 3495 | gin_triconsistent_jsonb_hash | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 7 | 0 | 16 | 2281 21 2277 23 2281 2281 2281 | | | | | gin_triconsistent_jsonb_hash | | | | | f | f | f | f | | 0 | f | | + 3497 | gin_consistent_jsonb | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 8 | 0 | 16 | 2281 21 2277 23 2281 2281 2281 2281 | | | | | gin_consistent_jsonb | | | | | f | f | f | f | | 0 | f | | + 3498 | gin_compare_jsonb | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 23 | 25 25 | | | | | gin_compare_jsonb | | | | | f | f | f | f | | 0 | f | | + 3549 | json_array_elements | 11 | 10 | 12 | 1 | 100 | 0 | - | f | f | f | f | t | t | i | 1 | 0 | 114 | 114 | {114,114} | {i,o} | {from_json,value} | | json_array_elements | | | | | f | f | f | f | | 0 | f | | + 3806 | jsonb_in | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 1 | 0 | 3802 | 2275 | | | | | jsonb_in | | | | | f | f | f | f | | 0 | f | | + 3948 | json_object_field_text | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 25 | 114 25 | | | | | json_object_field_text | | | | | f | f | f | f | | 0 | f | | + 3949 | json_array_element | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 114 | 114 23 | | | | | json_array_element | | | | | f | f | f | f | | 0 | f | | + 4039 | jsonb_lt | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_lt | | | | | f | f | f | f | | 0 | f | | + 4050 | jsonb_contained | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | t | f | i | 2 | 0 | 16 | 3802 3802 | | | | | jsonb_contained | | | | | f | f | f | f | | 0 | f | | + 5719 | capture_view_to_json | 11 | 10 | 12 | 1 | 0 | 0 | - | f | f | f | f | f | f | v | 2 | 0 | 23 | 25 23 | | {i,i} | {view_name,is_all_db} | | capture_view_to_json | | | | | f | f | f | f | | 0 | f | | (84 rows) select * from pg_aggregate where aggfnoid in (3124, 3403) order by aggfnoid; diff --git a/src/test/regress/expected/pbe_hash_list_partition.out b/src/test/regress/expected/pbe_hash_list_partition.out index 41fee0f8a..9ba925dca 100644 --- a/src/test/regress/expected/pbe_hash_list_partition.out +++ b/src/test/regress/expected/pbe_hash_list_partition.out @@ -21,18 +21,18 @@ prepare p1(int,int) as SELECT * FROM r INNER JOIN h ON r.a=$1 and h.a=$2; explain execute p1(10,10); QUERY PLAN --------------------------------------------------------------------------------- - Nested Loop (cost=0.00..66.27 rows=121 width=16) - -> Partition Iterator (cost=0.00..27.86 rows=11 width=8) - Iterations: PART - -> Partitioned Seq Scan on r (cost=0.00..27.86 rows=11 width=8) + Nested Loop (cost=0.00..75.27 rows=121 width=16) + -> Partition Iterator (cost=0.00..36.86 rows=11 width=8) + Iterations: 4 + -> Partitioned Seq Scan on r (cost=0.00..36.86 rows=11 width=8) Filter: (a = $1) - Selected Partitions: PART + Selected Partitions: 1..4 -> Materialize (cost=0.00..36.92 rows=11 width=8) -> Partition Iterator (cost=0.00..36.86 rows=11 width=8) - Iterations: PART + Iterations: 2 -> Partitioned Seq Scan on h (cost=0.00..36.86 rows=11 width=8) Filter: (a = $2) - Selected Partitions: PART + Selected Partitions: 1..2 (12 rows) execute p1(10,10); @@ -45,27 +45,27 @@ prepare p2(int,int,int,int) as select * from r inner join h on r.a=$1 and h.a=$2 explain execute p2(1,1,1,1); QUERY PLAN --------------------------------------------------------------------------------------------- - Result (cost=0.00..119.80 rows=1331 width=24) + Result (cost=0.00..128.79 rows=1331 width=24) One-Time Filter: ($1 = $3) - -> Nested Loop (cost=0.00..119.80 rows=1331 width=24) - -> Nested Loop (cost=0.00..66.27 rows=121 width=16) - -> Partition Iterator (cost=0.00..27.86 rows=11 width=8) - Iterations: PART - -> Partitioned Seq Scan on r (cost=0.00..27.86 rows=11 width=8) + -> Nested Loop (cost=0.00..128.79 rows=1331 width=24) + -> Nested Loop (cost=0.00..75.27 rows=121 width=16) + -> Partition Iterator (cost=0.00..36.86 rows=11 width=8) + Iterations: 4 + -> Partitioned Seq Scan on r (cost=0.00..36.86 rows=11 width=8) Filter: (a = $3) - Selected Partitions: PART + Selected Partitions: 1..4 -> Materialize (cost=0.00..36.92 rows=11 width=8) -> Partition Iterator (cost=0.00..36.86 rows=11 width=8) - Iterations: PART + Iterations: 2 -> Partitioned Seq Scan on h (cost=0.00..36.86 rows=11 width=8) Filter: (a = $2) - Selected Partitions: PART + Selected Partitions: 1..2 -> Materialize (cost=0.00..36.92 rows=11 width=8) -> Partition Iterator (cost=0.00..36.86 rows=11 width=8) - Iterations: PART + Iterations: 2 -> Partitioned Seq Scan on l (cost=0.00..36.86 rows=11 width=8) Filter: (a = $4) - Selected Partitions: PART + Selected Partitions: 1..2 (21 rows) execute p2(1,1,1,1); @@ -78,18 +78,18 @@ prepare p3(int,int) as SELECT * FROM r right JOIN h ON r.a=$1 and h.a=$2; explain execute p3(10,10); QUERY PLAN --------------------------------------------------------------------------------- - Nested Loop Left Join (cost=0.00..413.97 rows=2149 width=16) + Nested Loop Left Join (cost=0.00..422.97 rows=2149 width=16) Join Filter: (h.a = $2) -> Partition Iterator (cost=0.00..31.49 rows=2149 width=8) Iterations: 2 -> Partitioned Seq Scan on h (cost=0.00..31.49 rows=2149 width=8) Selected Partitions: 1..2 - -> Materialize (cost=0.00..27.92 rows=11 width=8) - -> Partition Iterator (cost=0.00..27.86 rows=11 width=8) - Iterations: PART - -> Partitioned Seq Scan on r (cost=0.00..27.86 rows=11 width=8) + -> Materialize (cost=0.00..36.92 rows=11 width=8) + -> Partition Iterator (cost=0.00..36.86 rows=11 width=8) + Iterations: 4 + -> Partitioned Seq Scan on r (cost=0.00..36.86 rows=11 width=8) Filter: (a = $1) - Selected Partitions: PART + Selected Partitions: 1..4 (12 rows) prepare p4(int,int) as SELECT * FROM r left JOIN h ON r.a=$1 and h.a=$2; @@ -104,10 +104,10 @@ explain execute p4(10,10); Selected Partitions: 1..4 -> Materialize (cost=0.00..36.92 rows=11 width=8) -> Partition Iterator (cost=0.00..36.86 rows=11 width=8) - Iterations: PART + Iterations: 2 -> Partitioned Seq Scan on h (cost=0.00..36.86 rows=11 width=8) Filter: (a = $2) - Selected Partitions: PART + Selected Partitions: 1..2 (12 rows) prepare p5(int,int) as SELECT * FROM h right JOIN l ON h.a=$1 and l.a=$2; @@ -122,10 +122,10 @@ explain execute p5(10,10); Selected Partitions: 1..2 -> Materialize (cost=0.00..36.92 rows=11 width=8) -> Partition Iterator (cost=0.00..36.86 rows=11 width=8) - Iterations: PART + Iterations: 2 -> Partitioned Seq Scan on h (cost=0.00..36.86 rows=11 width=8) Filter: (a = $1) - Selected Partitions: PART + Selected Partitions: 1..2 (12 rows) prepare p6(int,int) as SELECT * FROM h left JOIN l ON h.a=$1 and l.a=$2; @@ -140,10 +140,10 @@ explain execute p6(10,10); Selected Partitions: 1..2 -> Materialize (cost=0.00..36.92 rows=11 width=8) -> Partition Iterator (cost=0.00..36.86 rows=11 width=8) - Iterations: PART + Iterations: 2 -> Partitioned Seq Scan on l (cost=0.00..36.86 rows=11 width=8) Filter: (a = $2) - Selected Partitions: PART + Selected Partitions: 1..2 (12 rows) prepare p7(int) as SELECT * FROM h where h.a=$1; @@ -151,10 +151,10 @@ explain execute p7(10); QUERY PLAN --------------------------------------------------------------------- Partition Iterator (cost=0.00..36.86 rows=11 width=8) - Iterations: PART + Iterations: 2 -> Partitioned Seq Scan on h (cost=0.00..36.86 rows=11 width=8) Filter: (a = $1) - Selected Partitions: PART + Selected Partitions: 1..2 (5 rows) execute p7(10); @@ -170,10 +170,10 @@ explain execute p8(18); Sort (cost=76.19..77.98 rows=716 width=8) Sort Key: a -> Partition Iterator (cost=0.00..42.23 rows=716 width=8) - Iterations: PART + Iterations: 2 -> Partitioned Seq Scan on h (cost=0.00..42.23 rows=716 width=8) Filter: (a <= ($1 + 10)) - Selected Partitions: PART + Selected Partitions: 1..2 (7 rows) execute p8(18); @@ -214,10 +214,10 @@ explain execute p9(1); QUERY PLAN --------------------------------------------------------------------- Partition Iterator (cost=0.00..36.86 rows=11 width=8) - Iterations: PART + Iterations: 2 -> Partitioned Seq Scan on l (cost=0.00..36.86 rows=11 width=8) Filter: (a = $1) - Selected Partitions: PART + Selected Partitions: 1..2 (5 rows) execute p9(1); diff --git a/src/test/regress/expected/single_node_opr_sanity.out b/src/test/regress/expected/single_node_opr_sanity.out index 24897c128..21042f6e9 100755 --- a/src/test/regress/expected/single_node_opr_sanity.out +++ b/src/test/regress/expected/single_node_opr_sanity.out @@ -2895,6 +2895,16 @@ WHERE d.classoid IS NULL AND p1.oid <= 9999 order by 1; 6321 | pg_stat_file_recursive 6322 | gs_decrypt 6323 | gs_encrypt + 6555 | array_remove + 6556 | array_replace + 6558 | first_transition + 6559 | last_transition + 6560 | first + 6561 | last + 6666 | network_larger + 6667 | network_smaller + 6668 | max + 6669 | min 7000 | pg_stat_segment_space_info 7001 | pg_stat_segment_extent_usage 7002 | gs_space_shrink @@ -2904,10 +2914,6 @@ WHERE d.classoid IS NULL AND p1.oid <= 9999 order by 1; 7006 | local_space_shrink 7007 | remote_segment_space_info 7008 | global_space_shrink - 6666 | network_larger - 6667 | network_smaller - 6668 | max - 6669 | min 7101 | db4ai_predict_by_bool 7102 | db4ai_predict_by_int32 7103 | db4ai_predict_by_int64 @@ -2915,12 +2921,6 @@ WHERE d.classoid IS NULL AND p1.oid <= 9999 order by 1; 7106 | db4ai_predict_by_float8 7107 | db4ai_predict_by_numeric 7108 | db4ai_predict_by_text - 6555 | array_remove - 6556 | array_replace - 6558 | first_transition - 6559 | last_transition - 6560 | first - 6561 | last 7777 | sysdate 7800 | init 7801 | analyze_query diff --git a/src/test/regress/output/procedure_privilege_test.source b/src/test/regress/output/procedure_privilege_test.source index 619c2c3c8..56001c0e3 100644 --- a/src/test/regress/output/procedure_privilege_test.source +++ b/src/test/regress/output/procedure_privilege_test.source @@ -26,6 +26,7 @@ GRANT INSERT ON TABLE test_sch.test_table TO test_acl; REVOKE ALL PRIVILEGES ON PROCEDURE test_sch.test_pro(num1 integer, num2 varchar(20)) FROM test_acl; \! @abs_bindir@/gsql -r -p @portstring@ -d regression -U test_acl -W 'openGauss@123' -c 'ALTER PROCEDURE test_sch.test_pro(num1 integer, num2 varchar(20)) RENAME TO new_test_pro;' ERROR: permission denied for function test_sch.test_pro +DETAIL: N/A ALTER PROCEDURE test_sch.test_pro(num1 integer, num2 varchar(20)) OWNER TO test_owner; GRANT ALL PRIVILEGES ON PROCEDURE test_sch.test_pro(num1 integer, num2 varchar(20)) TO test_acl; SELECT p.proname, r.rolname FROM PG_PROC AS p, pg_roles AS r WHERE p.proowner=r.oid AND proname='test_pro'; diff --git a/src/test/regress/parallel_schedule0 b/src/test/regress/parallel_schedule0 index 768560430..511772641 100644 --- a/src/test/regress/parallel_schedule0 +++ b/src/test/regress/parallel_schedule0 @@ -329,7 +329,7 @@ test: upsert_001 upsert_002 upsert_003 upsert_008 upsert_009 upsert_010 test: upsert_grammer_test_01 upsert_unlog_test upsert_tmp_test test: upsert_grammer_test_02 upsert_restriction upsert_composite test: upsert_trigger_test upsert_explain -test: upsert_subquery +#test: upsert_subquery test: upsert_clean # all pass @@ -768,7 +768,7 @@ test: autonomous_test #test jdbc pbe for bypass test: bypass_pbe #test: partition for hash list -test: pbe_hash_list_partition +test: pbe_hash_list_partition test: hw_partition_list_insert test: hw_partition_list_ddl test: hw_partition_hash_insert @@ -798,7 +798,7 @@ test: rule_test #delete limit test: delete_limit -test: hotpatch +#test: hotpatch # -------------------------- # DB4AI @@ -831,8 +831,7 @@ test: comment_proc test: hw_package test: procedure_privilege_test test: cast_privileges_test -test: hw_package hw_dbms_sql1 +#test: hw_dbms_sql1 test: hw_cipher_sm4 test: hw_cipher_aes128 -test: hw_pwd_encryption_sm3 test: sequence_cache_test diff --git a/src/test/regress/sql/autonomous_test.sql b/src/test/regress/sql/autonomous_test.sql index 38eaa2264..d656ae8c4 100644 --- a/src/test/regress/sql/autonomous_test.sql +++ b/src/test/regress/sql/autonomous_test.sql @@ -11,7 +11,7 @@ DECLARE res int; res2 text; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; res2 := 'aa55'; res := 55; END; @@ -22,7 +22,7 @@ create table t1(a int ,b text); DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; insert into t1 values(1,'you are so cute!'); END; / @@ -39,7 +39,7 @@ START TRANSACTION; DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; insert into t1 values(1,'you are so cute,will commit!'); END; / @@ -61,7 +61,7 @@ BEGIN DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; insert into t1 values(1,'can you rollback!'); END; insert into t1 values(2,'I will rollback!'); @@ -81,7 +81,7 @@ DECLARE res int := 0; res2 int := 1; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; res2 = res2/res; END; / @@ -94,11 +94,11 @@ DECLARE res int := 0; res2 int := 1; BEGIN - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; res2 = res2/res; EXCEPTION WHEN division_by_zero THEN - dbe_output.print_line('autonomous throw exception.'); + raise notice 'autonomous throw exception.'; END; / @@ -152,13 +152,13 @@ DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN insert into t2 values(num3, num4); - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; END; / CREATE OR REPLACE PROCEDURE autonomous_5(a int, b int) AS DECLARE BEGIN - dbe_output.print_line('just no use call.'); + raise notice 'just no use call.'; insert into t2 values(666, 666); autonomous_4(a,b); rollback; @@ -181,14 +181,14 @@ DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN insert into t2 values(num3, num4); - dbe_output.print_line('just use call.'); + raise notice 'just use call.'; rollback; END; / CREATE OR REPLACE PROCEDURE autonomous_7(a int, b int) AS DECLARE BEGIN - dbe_output.print_line('just no use call.'); + raise notice 'just no use call.'; insert into t2 values(666, 666); autonomous_6(a,b); END; @@ -221,7 +221,7 @@ BEGIN autonomous_8(); EXCEPTION WHEN division_by_zero THEN - dbe_output.print_line('autonomous throw exception.'); + raise notice 'autonomous throw exception.'; END; / @@ -242,7 +242,7 @@ BEGIN b := b/a; EXCEPTION WHEN division_by_zero THEN - dbe_output.print_line('inner autonomous exception.'); + raise notice 'inner autonomous exception.'; END; / select autonomous_10(); @@ -253,7 +253,7 @@ BEGIN autonomous_10(); EXCEPTION WHEN division_by_zero THEN - dbe_output.print_line('autonomous throw exception.'); + raise notice 'autonomous throw exception.'; END; / @@ -322,7 +322,7 @@ DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN insert into t3 values(a, b, c); - dbe_output.print_line('inner autonomous exception.'); + raise notice 'inner autonomous exception.'; autonomous_15(a, b, c); END; / @@ -490,7 +490,7 @@ SET SESSION AUTHORIZATION jim PASSWORD 'gauss_123'; DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN -dbe_output.print_line('just use call.'); +raise notice 'just use call.'; insert into t5 values(1,'aaa'); END; / diff --git a/src/test/regress/sql/cast_privileges_test.sql b/src/test/regress/sql/cast_privileges_test.sql index 1caa6ab32..204c2d5d7 100644 --- a/src/test/regress/sql/cast_privileges_test.sql +++ b/src/test/regress/sql/cast_privileges_test.sql @@ -1,5 +1,7 @@ create user user1 password '1234567i*'; grant all on schema public to user1; +create schema privilege_test; +grant all on schema privilege_test to user1; set role user1 password '1234567i*'; CREATE TYPE public.int111 AS (f1 int, f2 int); @@ -9,7 +11,7 @@ create table public.bb_text(bb text111); insert into public.aa_int values((111,222)); insert into public.bb_text values((111,222)); -CREATE OR REPLACE FUNCTION public.text_int(text111)RETURNS int111 AS $$ +CREATE OR REPLACE FUNCTION privilege_test.text_int(text111)RETURNS int111 AS $$ declare res public.int111; begin @@ -18,7 +20,12 @@ begin return res; end;$$ language plpgsql security invoker; -select public.text_int((111,222)); -CREATE CAST (text111 AS int111) WITH FUNCTION public.text_int(text111) AS IMPLICIT; +select privilege_test.text_int((111,222)); +CREATE CAST (text111 AS int111) WITH FUNCTION privilege_test.text_int(text111) AS IMPLICIT; reset role; select aa ,bb from aa_int ,bb_text where aa_int.aa=bb_text.bb::int111; +drop table aa_int; +drop table bb_text; +drop type int111 cascade; +drop type text111 cascade; +drop user user1 cascade; \ No newline at end of file diff --git a/src/test/regress/sql/generated_col.sql b/src/test/regress/sql/generated_col.sql index 5e8695932..f000c1110 100644 --- a/src/test/regress/sql/generated_col.sql +++ b/src/test/regress/sql/generated_col.sql @@ -266,7 +266,7 @@ INSERT INTO gtest23q VALUES (2, 5); -- error DROP TABLE gtest23q; --- domains (domain is not yet supported.) +-- domains CREATE DOMAIN gtestdomain1 AS int CHECK (VALUE < 10); CREATE TABLE gtest24 (a int PRIMARY KEY, b gtestdomain1 GENERATED ALWAYS AS (a * 2) STORED); INSERT INTO gtest24 (a) VALUES (4); -- ok diff --git a/src/test/regress/sql/hw_package.sql b/src/test/regress/sql/hw_package.sql index 72c46b34b..e1d11a1c1 100644 --- a/src/test/regress/sql/hw_package.sql +++ b/src/test/regress/sql/hw_package.sql @@ -492,6 +492,7 @@ end cnt; create user user1 password 'huawei@123'; set session AUTHORIZATION user1 PASSWORD 'huawei@123'; reset session AUTHORIZATION; +DROP USER user1; create or replace package commit_rollback_test as