Skip to content

Commit 92d1f9f

Browse files
committed
Merge branch 'PGPROEE9_6' into PGPROEE9_6_CFS_385
2 parents 4eb9c64 + 41d0c92 commit 92d1f9f

File tree

384 files changed

+68252
-25857
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

384 files changed

+68252
-25857
lines changed

.gitlab-ci.yml

Lines changed: 0 additions & 58 deletions
This file was deleted.

configure

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/sh
22
# Guess values for system-dependent variables and create Makefiles.
3-
# Generated by GNU Autoconf 2.69 for PostgreSQL 9.6.1.
3+
# Generated by GNU Autoconf 2.69 for PostgreSQL 9.6.2.
44
#
55
# Report bugs to <bugs@postgrespro.ru>.
66
#
@@ -583,8 +583,8 @@ MAKEFLAGS=
583583
# Identity of this package.
584584
PACKAGE_NAME='PostgreSQL'
585585
PACKAGE_TARNAME='postgrespro'
586-
PACKAGE_VERSION='9.6.1'
587-
PACKAGE_STRING='PostgreSQL 9.6.1'
586+
PACKAGE_VERSION='9.6.2'
587+
PACKAGE_STRING='PostgreSQL 9.6.2'
588588
PACKAGE_BUGREPORT='bugs@postgrespro.ru'
589589
PACKAGE_URL=''
590590

@@ -1406,7 +1406,7 @@ if test "$ac_init_help" = "long"; then
14061406
# Omit some internal or obsolete options to make the list less imposing.
14071407
# This message is too long to be a string in the A/UX 3.1 sh.
14081408
cat <<_ACEOF
1409-
\`configure' configures PostgreSQL 9.6.1 to adapt to many kinds of systems.
1409+
\`configure' configures PostgreSQL 9.6.2 to adapt to many kinds of systems.
14101410

14111411
Usage: $0 [OPTION]... [VAR=VALUE]...
14121412

@@ -1471,7 +1471,7 @@ fi
14711471

14721472
if test -n "$ac_init_help"; then
14731473
case $ac_init_help in
1474-
short | recursive ) echo "Configuration of PostgreSQL 9.6.1:";;
1474+
short | recursive ) echo "Configuration of PostgreSQL 9.6.2:";;
14751475
esac
14761476
cat <<\_ACEOF
14771477

@@ -1625,7 +1625,7 @@ fi
16251625
test -n "$ac_init_help" && exit $ac_status
16261626
if $ac_init_version; then
16271627
cat <<\_ACEOF
1628-
PostgreSQL configure 9.6.1
1628+
PostgreSQL configure 9.6.2
16291629
generated by GNU Autoconf 2.69
16301630

16311631
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2337,7 +2337,7 @@ cat >config.log <<_ACEOF
23372337
This file contains any messages produced by compilers while
23382338
running configure, to aid debugging if configure makes a mistake.
23392339

2340-
It was created by PostgreSQL $as_me 9.6.1, which was
2340+
It was created by PostgreSQL $as_me 9.6.2, which was
23412341
generated by GNU Autoconf 2.69. Invocation command line was
23422342

23432343
$ $0 $@
@@ -2754,7 +2754,7 @@ else
27542754
fi
27552755

27562756

2757-
PGPRO_VERSION="$PACKAGE_VERSION.3"
2757+
PGPRO_VERSION="$PACKAGE_VERSION.1"
27582758
PGPRO_PACKAGE_NAME="PostgresPro"
27592759
PGPRO_EDITION="enterprise"
27602760

@@ -7244,7 +7244,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
72447244
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
72457245

72467246
# When Autoconf chooses install-sh as install program it tries to generate
7247-
# a relative path to it in each makefile where it subsitutes it. This clashes
7247+
# a relative path to it in each makefile where it substitutes it. This clashes
72487248
# with our Makefile.global concept. This workaround helps.
72497249
case $INSTALL in
72507250
*install-sh*) install_bin='';;
@@ -7388,7 +7388,7 @@ fi
73887388
$as_echo "$MKDIR_P" >&6; }
73897389

73907390
# When Autoconf chooses install-sh as mkdir -p program it tries to generate
7391-
# a relative path to it in each makefile where it subsitutes it. This clashes
7391+
# a relative path to it in each makefile where it substitutes it. This clashes
73927392
# with our Makefile.global concept. This workaround helps.
73937393
case $MKDIR_P in
73947394
*install-sh*) MKDIR_P='\${SHELL} \${top_srcdir}/config/install-sh -c -d';;
@@ -18558,7 +18558,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
1855818558
# report actual input values of CONFIG_FILES etc. instead of their
1855918559
# values after options handling.
1856018560
ac_log="
18561-
This file was extended by PostgreSQL $as_me 9.6.1, which was
18561+
This file was extended by PostgreSQL $as_me 9.6.2, which was
1856218562
generated by GNU Autoconf 2.69. Invocation command line was
1856318563

1856418564
CONFIG_FILES = $CONFIG_FILES
@@ -18628,7 +18628,7 @@ _ACEOF
1862818628
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1862918629
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1863018630
ac_cs_version="\\
18631-
PostgreSQL config.status 9.6.1
18631+
PostgreSQL config.status 9.6.2
1863218632
configured by $0, generated by GNU Autoconf 2.69,
1863318633
with options \\"\$ac_cs_config\\"
1863418634

configure.in

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ dnl Read the Autoconf manual for details.
1717
dnl
1818
m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
1919

20-
AC_INIT([PostgreSQL], [9.6.1], [bugs@postgrespro.ru],[postgrespro])
20+
AC_INIT([PostgreSQL], [9.6.2], [bugs@postgrespro.ru],[postgrespro])
2121
PACKAGE_TARNAME=postgrespro
2222

2323
m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
@@ -38,7 +38,7 @@ AC_DEFINE_UNQUOTED(PG_MAJORVERSION, "$PG_MAJORVERSION", [PostgreSQL major versio
3838
PGAC_ARG_REQ(with, extra-version, [STRING], [append STRING to version],
3939
[PG_VERSION="$PACKAGE_VERSION$withval"],
4040
[PG_VERSION="$PACKAGE_VERSION"])
41-
PGPRO_VERSION="$PACKAGE_VERSION.3"
41+
PGPRO_VERSION="$PACKAGE_VERSION.1"
4242
PGPRO_PACKAGE_NAME="PostgresPro"
4343
PGPRO_EDITION="enterprise"
4444
AC_SUBST(PGPRO_PACKAGE_NAME)
@@ -925,7 +925,7 @@ fi
925925

926926
AC_PROG_INSTALL
927927
# When Autoconf chooses install-sh as install program it tries to generate
928-
# a relative path to it in each makefile where it subsitutes it. This clashes
928+
# a relative path to it in each makefile where it substitutes it. This clashes
929929
# with our Makefile.global concept. This workaround helps.
930930
case $INSTALL in
931931
*install-sh*) install_bin='';;
@@ -938,7 +938,7 @@ AC_PROG_LN_S
938938
AC_PROG_AWK
939939
AC_PROG_MKDIR_P
940940
# When Autoconf chooses install-sh as mkdir -p program it tries to generate
941-
# a relative path to it in each makefile where it subsitutes it. This clashes
941+
# a relative path to it in each makefile where it substitutes it. This clashes
942942
# with our Makefile.global concept. This workaround helps.
943943
case $MKDIR_P in
944944
*install-sh*) MKDIR_P='\${SHELL} \${top_srcdir}/config/install-sh -c -d';;

contrib/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ SUBDIRS = \
5151
tablefunc \
5252
tcn \
5353
test_decoding \
54+
test_partitioning \
5455
tsm_system_rows \
5556
tsm_system_time \
5657
tsearch2 \

contrib/aqo/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ DATA = aqo--1.0.sql
77
OBJS = aqo.o auto_tuning.o cardinality_estimation.o cardinality_hooks.o \
88
hash.o machine_learning.o path_utils.o postprocessing.o preprocessing.o \
99
selectivity_cache.o storage.o utils.o $(WIN32RES)
10-
REGRESS = aqo_disabled aqo_manual aqo_intelligent aqo_forced
10+
REGRESS = aqo_disabled aqo_controlled aqo_intelligent aqo_forced
1111

1212
MODULE_big = aqo
1313
ifdef USE_PGXS

contrib/aqo/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of per-connection.
2121
## Usage
2222

2323
Note that the extension works bad with dynamically generated views. If they
24-
appear in workload, please use "aqo.mode='manual'".
24+
appear in workload, please use "aqo.mode='controlled'".
2525

2626
This extension has intelligent self-tuning mode. If you want to rely completely
2727
on it, just add line "aqo.mode = 'intelligent'" into your postgresql.conf.
@@ -36,8 +36,8 @@ For handling workloads with dynamically generated query structures the forced
3636
mode "aqo.mode = 'forced'" is provided. We cannot guarantee performance
3737
improvement with this mode, but you may try it nevertheless.
3838

39-
If you want to completely control how PostgreSQL optimizes queries, use manual
40-
mode "aqo.mode = 'manual'" and
39+
If you want to completely control how PostgreSQL optimizes queries, use controlled
40+
mode "aqo.mode = 'controlled'" and
4141
contrib/aqo/learn_queries.sh file_with_sql_queries.sql "psql -d YOUR_DATABASE"
4242
where file_with_sql_queries.sql is a textfile with queries on which AQO is
4343
supposed to learn. Please use only SELECT queries file_with_sql_queries.sql.

contrib/aqo/aqo.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ int aqo_mode;
1212
static const struct config_enum_entry format_options[] = {
1313
{"intelligent", AQO_MODE_INTELLIGENT, false},
1414
{"forced", AQO_MODE_FORCED, false},
15-
{"manual", AQO_MODE_MANUAL, false},
15+
{"controlled", AQO_MODE_CONTROLLED, false},
16+
{"disabled", AQO_MODE_DISABLED, false},
1617
{NULL, 0, false}
1718
};
1819

@@ -42,6 +43,7 @@ bool auto_tuning;
4243
bool collect_stat;
4344
bool adding_query;
4445
bool explain_only;
46+
bool explain_aqo;
4547

4648
/* Query execution time */
4749
instr_time query_starttime;
@@ -57,6 +59,7 @@ get_parameterized_baserel_size_hook_type prev_get_parameterized_baserel_size_hoo
5759
set_joinrel_size_estimates_hook_type prev_set_joinrel_size_estimates_hook;
5860
get_parameterized_joinrel_size_hook_type prev_get_parameterized_joinrel_size_hook;
5961
copy_generic_path_info_hook_type prev_copy_generic_path_info_hook;
62+
ExplainOnePlan_hook_type prev_ExplainOnePlan_hook;
6063

6164
/*****************************************************************************
6265
*
@@ -71,7 +74,7 @@ _PG_init(void)
7174
"Mode of aqo usage.",
7275
NULL,
7376
&aqo_mode,
74-
AQO_MODE_MANUAL,
77+
AQO_MODE_CONTROLLED,
7578
format_options,
7679
PGC_SUSET,
7780
0,
@@ -101,6 +104,8 @@ _PG_init(void)
101104
&aqo_get_parameterized_joinrel_size;
102105
prev_copy_generic_path_info_hook = copy_generic_path_info_hook;
103106
copy_generic_path_info_hook = &aqo_copy_generic_path_info;
107+
prev_ExplainOnePlan_hook = ExplainOnePlan_hook;
108+
ExplainOnePlan_hook = print_into_explain;
104109
init_deactivated_queries_storage();
105110
}
106111

@@ -118,6 +123,7 @@ _PG_fini(void)
118123
get_parameterized_joinrel_size_hook =
119124
prev_get_parameterized_joinrel_size_hook;
120125
copy_generic_path_info_hook = prev_copy_generic_path_info_hook;
126+
ExplainOnePlan_hook = prev_ExplainOnePlan_hook;
121127
fini_deactivated_queries_storage();
122128
}
123129

contrib/aqo/aqo.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
* "forced" mode makes no difference between query types and use AQO for them
3535
* all in the similar way. It considers each new query type as linked to special
3636
* feature space called COMMON with hash 0.
37-
* "manual" mode ignores unknown query types. In this case AQO is completely
37+
* "Controlled" mode ignores unknown query types. In this case AQO is completely
3838
* configured manually by user.
3939
* Current mode is stored in aqo.mode variable.
4040
*
@@ -121,6 +121,7 @@
121121
#include "catalog/indexing.h"
122122
#include "catalog/pg_type.h"
123123
#include "catalog/pg_operator.h"
124+
#include "commands/explain.h"
124125
#include "executor/executor.h"
125126
#include "executor/execdesc.h"
126127
#include "nodes/makefuncs.h"
@@ -147,7 +148,9 @@ typedef enum
147148
/* Treats new query types as linked to the common feature space */
148149
AQO_MODE_FORCED,
149150
/* New query types are not linked with any feature space */
150-
AQO_MODE_MANUAL,
151+
AQO_MODE_CONTROLLED,
152+
/* Aqo is disabled for all queries */
153+
AQO_MODE_DISABLED,
151154
} AQO_MODE;
152155
extern int aqo_mode;
153156

@@ -193,6 +196,7 @@ extern bool auto_tuning;
193196
extern bool collect_stat;
194197
extern bool adding_query;
195198
extern bool explain_only;
199+
extern bool explain_aqo;
196200

197201
/* Query execution time */
198202
extern instr_time query_starttime;
@@ -213,6 +217,7 @@ extern get_parameterized_joinrel_size_hook_type
213217
prev_get_parameterized_joinrel_size_hook;
214218
extern copy_generic_path_info_hook_type
215219
prev_copy_generic_path_info_hook;
220+
extern ExplainOnePlan_hook_type prev_ExplainOnePlan_hook;
216221

217222

218223
/* Hash functions */
@@ -252,6 +257,9 @@ PlannedStmt *call_default_planner(Query *parse,
252257
PlannedStmt *aqo_planner(Query *parse,
253258
int cursorOptions,
254259
ParamListInfo boundParams);
260+
void print_into_explain(PlannedStmt *plannedstmt, IntoClause *into,
261+
ExplainState *es, const char *queryString,
262+
ParamListInfo params, const instr_time *planduration);
255263
void disable_aqo_for_query(void);
256264

257265
/* Cardinality estimation hooks */

0 commit comments

Comments
 (0)