Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit92812c0

Browse files
committed
Merge branch 'PGPROEE9_6' into PGPROEE9_6_MULTIMASTER
2 parentsfbe11a5 +5635727 commit92812c0

File tree

409 files changed

+69461
-27441
lines changed

Some content is hidden

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

409 files changed

+69461
-27441
lines changed

‎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 itsubsitutes it. This clashes
7247+
# a relative path to it in each makefile where itsubstitutes 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 itsubsitutes it. This clashes
7391+
# a relative path to it in each makefile where itsubstitutes 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 itsubsitutes it. This clashes
928+
# a relative path to it in each makefile where itsubstitutes 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 itsubsitutes it. This clashes
941+
# a relative path to it in each makefile where itsubstitutes 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
@@ -52,6 +52,7 @@ SUBDIRS = \
5252
tablefunc\
5353
tcn\
5454
test_decoding\
55+
test_partitioning\
5556
tsm_system_rows\
5657
tsm_system_time\
5758
tsearch2\

‎contrib/aqo/aqo.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ static const struct config_enum_entry format_options[] = {
1313
{"intelligent",AQO_MODE_INTELLIGENT, false},
1414
{"forced",AQO_MODE_FORCED, false},
1515
{"manual",AQO_MODE_MANUAL, false},
16+
{"disabled",AQO_MODE_DISABLED, false},
1617
{NULL,0, false}
1718
};
1819

@@ -42,6 +43,7 @@ boolauto_tuning;
4243
boolcollect_stat;
4344
booladding_query;
4445
boolexplain_only;
46+
boolexplain_aqo;
4547

4648
/* Query execution time */
4749
instr_timequery_starttime;
@@ -57,6 +59,7 @@ get_parameterized_baserel_size_hook_type prev_get_parameterized_baserel_size_hoo
5759
set_joinrel_size_estimates_hook_typeprev_set_joinrel_size_estimates_hook;
5860
get_parameterized_joinrel_size_hook_typeprev_get_parameterized_joinrel_size_hook;
5961
copy_generic_path_info_hook_typeprev_copy_generic_path_info_hook;
62+
ExplainOnePlan_hook_typeprev_ExplainOnePlan_hook;
6063

6164
/*****************************************************************************
6265
*
@@ -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: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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"
@@ -148,6 +149,8 @@ typedef enum
148149
AQO_MODE_FORCED,
149150
/* New query types are not linked with any feature space */
150151
AQO_MODE_MANUAL,
152+
/* Aqo is disabled for all queries */
153+
AQO_MODE_DISABLED,
151154
}AQO_MODE;
152155
externintaqo_mode;
153156

@@ -193,6 +196,7 @@ extern bool auto_tuning;
193196
externboolcollect_stat;
194197
externbooladding_query;
195198
externboolexplain_only;
199+
externboolexplain_aqo;
196200

197201
/* Query execution time */
198202
externinstr_timequery_starttime;
@@ -213,6 +217,7 @@ externget_parameterized_joinrel_size_hook_type
213217
prev_get_parameterized_joinrel_size_hook;
214218
externcopy_generic_path_info_hook_type
215219
prev_copy_generic_path_info_hook;
220+
externExplainOnePlan_hook_typeprev_ExplainOnePlan_hook;
216221

217222

218223
/* Hash functions */
@@ -252,6 +257,9 @@ PlannedStmt *call_default_planner(Query *parse,
252257
PlannedStmt*aqo_planner(Query*parse,
253258
intcursorOptions,
254259
ParamListInfoboundParams);
260+
voidprint_into_explain(PlannedStmt*plannedstmt,IntoClause*into,
261+
ExplainState*es,constchar*queryString,
262+
ParamListInfoparams,constinstr_time*planduration);
255263
voiddisable_aqo_for_query(void);
256264

257265
/* Cardinality estimation hooks */

‎contrib/aqo/auto_tuning.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ converged_cq(double *elems, int nelems)
8585
bool
8686
is_in_infinite_loop_cq(double*elems,intnelems)
8787
{
88-
if (nelems-auto_tuning_infinite_loop>auto_tuning_window_size+2)
88+
if (nelems-auto_tuning_infinite_loop<auto_tuning_window_size+2)
8989
return false;
9090

9191
return !converged_cq(elems,nelems)&&

‎contrib/aqo/expected/aqo_disabled.out

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ AS (
1616
) INSERT INTO aqo_test1 (SELECT * FROM t);
1717
CREATE INDEX aqo_test1_idx_a ON aqo_test1 (a);
1818
ANALYZE aqo_test1;
19+
SET aqo.mode = 'disabled';
1920
CREATE TABLE tmp1 AS SELECT * FROM aqo_test0
2021
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
2122
SELECT count(*) FROM tmp1;
@@ -35,6 +36,111 @@ SELECT count(*) FROM tmp1;
3536
(1 row)
3637

3738
DROP TABLE tmp1;
39+
EXPLAIN SELECT * FROM aqo_test0
40+
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
41+
QUERY PLAN
42+
----------------------------------------------------------------------------------
43+
Index Scan using aqo_test0_idx_a on aqo_test0 (cost=0.28..8.35 rows=1 width=16)
44+
Index Cond: (a < 3)
45+
Filter: ((b < 3) AND (c < 3) AND (d < 3))
46+
(3 rows)
47+
48+
EXPLAIN SELECT t1.a, t2.b, t3.c
49+
FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3
50+
WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b = t3.b;
51+
QUERY PLAN
52+
------------------------------------------------------------------------------------------------
53+
Nested Loop (cost=0.28..50.59 rows=1 width=12)
54+
Join Filter: (t1.b = t3.b)
55+
-> Nested Loop (cost=0.28..9.56 rows=1 width=12)
56+
-> Seq Scan on aqo_test1 t1 (cost=0.00..1.25 rows=1 width=8)
57+
Filter: (a < 1)
58+
-> Index Scan using aqo_test0_idx_a on aqo_test0 t2 (cost=0.28..8.30 rows=1 width=8)
59+
Index Cond: (a = t1.a)
60+
Filter: (c < 1)
61+
-> Seq Scan on aqo_test0 t3 (cost=0.00..41.02 rows=1 width=8)
62+
Filter: ((b < 1) AND (d < 0))
63+
(10 rows)
64+
65+
CREATE EXTENSION aqo;
66+
SET aqo.mode = 'intelligent';
67+
CREATE TABLE tmp1 AS SELECT * FROM aqo_test0
68+
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
69+
SELECT count(*) FROM tmp1;
70+
count
71+
-------
72+
3
73+
(1 row)
74+
75+
DROP TABLE tmp1;
76+
CREATE TABLE tmp1 AS SELECT t1.a, t2.b, t3.c
77+
FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3
78+
WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b = t3.b;
79+
SELECT count(*) FROM tmp1;
80+
count
81+
-------
82+
0
83+
(1 row)
84+
85+
DROP TABLE tmp1;
86+
SET aqo.mode = 'manual';
87+
UPDATE aqo_queries SET learn_aqo = true, use_aqo = true, auto_tuning = false;
88+
EXPLAIN SELECT * FROM aqo_test0
89+
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
90+
QUERY PLAN
91+
----------------------------------------------------------------------------------
92+
Index Scan using aqo_test0_idx_a on aqo_test0 (cost=0.28..8.35 rows=3 width=16)
93+
Index Cond: (a < 3)
94+
Filter: ((b < 3) AND (c < 3) AND (d < 3))
95+
Using aqo: true
96+
(4 rows)
97+
98+
EXPLAIN SELECT t1.a, t2.b, t3.c
99+
FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3
100+
WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b = t3.b;
101+
QUERY PLAN
102+
------------------------------------------------------------------------------------------------
103+
Nested Loop (cost=0.28..50.59 rows=1 width=12)
104+
Join Filter: (t1.b = t3.b)
105+
-> Nested Loop (cost=0.28..9.56 rows=1 width=12)
106+
-> Seq Scan on aqo_test1 t1 (cost=0.00..1.25 rows=1 width=8)
107+
Filter: (a < 1)
108+
-> Index Scan using aqo_test0_idx_a on aqo_test0 t2 (cost=0.28..8.30 rows=1 width=8)
109+
Index Cond: (a = t1.a)
110+
Filter: (c < 1)
111+
-> Seq Scan on aqo_test0 t3 (cost=0.00..41.02 rows=1 width=8)
112+
Filter: ((b < 1) AND (d < 0))
113+
Using aqo: true
114+
(11 rows)
115+
116+
SET aqo.mode = 'disabled';
117+
EXPLAIN SELECT * FROM aqo_test0
118+
WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
119+
QUERY PLAN
120+
----------------------------------------------------------------------------------
121+
Index Scan using aqo_test0_idx_a on aqo_test0 (cost=0.28..8.35 rows=1 width=16)
122+
Index Cond: (a < 3)
123+
Filter: ((b < 3) AND (c < 3) AND (d < 3))
124+
(3 rows)
125+
126+
EXPLAIN SELECT t1.a, t2.b, t3.c
127+
FROM aqo_test1 AS t1, aqo_test0 AS t2, aqo_test0 AS t3
128+
WHERE t1.a < 1 AND t3.b < 1 AND t2.c < 1 AND t3.d < 0 AND t1.a = t2.a AND t1.b = t3.b;
129+
QUERY PLAN
130+
------------------------------------------------------------------------------------------------
131+
Nested Loop (cost=0.28..50.59 rows=1 width=12)
132+
Join Filter: (t1.b = t3.b)
133+
-> Nested Loop (cost=0.28..9.56 rows=1 width=12)
134+
-> Seq Scan on aqo_test1 t1 (cost=0.00..1.25 rows=1 width=8)
135+
Filter: (a < 1)
136+
-> Index Scan using aqo_test0_idx_a on aqo_test0 t2 (cost=0.28..8.30 rows=1 width=8)
137+
Index Cond: (a = t1.a)
138+
Filter: (c < 1)
139+
-> Seq Scan on aqo_test0 t3 (cost=0.00..41.02 rows=1 width=8)
140+
Filter: ((b < 1) AND (d < 0))
141+
(10 rows)
142+
143+
DROP EXTENSION aqo;
38144
DROP INDEX aqo_test0_idx_a;
39145
DROP TABLE aqo_test0;
40146
DROP INDEX aqo_test1_idx_a;

‎contrib/aqo/expected/aqo_forced.out

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ WHERE a < 3 AND b < 3 AND c < 3 AND d < 3;
6565
Index Scan using aqo_test0_idx_a on aqo_test0
6666
Index Cond: (a < 3)
6767
Filter: ((b < 3) AND (c < 3) AND (d < 3))
68-
(3 rows)
68+
Using aqo: true
69+
(4 rows)
6970

7071
EXPLAIN (COSTS FALSE)
7172
SELECT * FROM aqo_test0
@@ -75,7 +76,8 @@ WHERE a < 5 AND b < 5 AND c < 5 AND d < 5;
7576
Index Scan using aqo_test0_idx_a on aqo_test0
7677
Index Cond: (a < 5)
7778
Filter: ((b < 5) AND (c < 5) AND (d < 5))
78-
(3 rows)
79+
Using aqo: true
80+
(4 rows)
7981

8082
DROP INDEX aqo_test0_idx_a;
8183
DROP TABLE aqo_test0;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp