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

update from original#2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
vinpokale merged 360 commits intovinpokale:masterfrompostgres:master
Feb 3, 2016
Merged
Show file tree
Hide file tree
Changes from1 commit
Commits
Show all changes
360 commits
Select commitHold shift + click to select a range
385f337
Allow foreign and custom joins to handle EvalPlanQual rechecks.
robertmhaasDec 8, 2015
d5563d7
psql: Support multiple -c and -f options, and allow mixing them.
robertmhaasDec 8, 2015
938d797
Avoid odd portability problem in TestLib.pm's slurp_file function.
tglsfdcDec 8, 2015
521f045
Make failure to open psql's --log-file fatal.
tglsfdcDec 8, 2015
25c5392
Improve performance in freeing memory contexts
kgrittnDec 8, 2015
b287df7
Allow EXPLAIN (ANALYZE, VERBOSE) to display per-worker statistics.
robertmhaasDec 9, 2015
c00239e
Remove redundant sentence.
robertmhaasDec 9, 2015
9c779c4
Accept flex > 2.5.x on Windows, too.
tglsfdcDec 10, 2015
e3f4cfc
Fix bug leading to restoring unlogged relations from empty files.
anarazelDec 10, 2015
84ac126
Fix ON CONFLICT UPDATE bug breaking AFTER UPDATE triggers.
anarazelDec 10, 2015
348bcd8
Fix typo.
robertmhaasDec 10, 2015
8b469bd
Improve ALTER POLICY tab completion.
robertmhaasDec 10, 2015
a351705
Improve some messages
petereDec 11, 2015
69e7235
Fix commit timestamp initialization
alvherreDec 11, 2015
acfcd45
Still more fixes for planner's handling of LATERAL references.
tglsfdcDec 11, 2015
ed8bec9
Handle dependencies properly in ALTER POLICY
sfrostDec 11, 2015
4fcf484
Get rid of the planner's LateralJoinInfo data structure.
tglsfdcDec 11, 2015
833728d
Handle policies during DROP OWNED BY
sfrostDec 11, 2015
dccf8e9
Install our "missing" script where PGXS builds can find it.
tglsfdcDec 11, 2015
8c16155
For REASSIGN OWNED for foreign user mappings
alvherreDec 11, 2015
6b34e55
pg_rewind: Don't error if the two clusters are already on the same ti…
petereDec 4, 2015
085423e
Add an expected-file to match behavior of latest libxml2.
tglsfdcDec 12, 2015
f54d062
Fix ALTER TABLE ... SET TABLESPACE for unlogged relations.
anarazelDec 12, 2015
19e7ca8
doc: Add some markup
petereDec 12, 2015
6d96cd0
Doc: update external URLs for PostGIS project.
tglsfdcDec 13, 2015
263c195
Properly initialize write, flush and replay locations in walsender slots
mhaganderDec 13, 2015
a91bdf6
Consistently set all fields in pg_stat_replication to null instead of 0
mhaganderDec 13, 2015
fcbbf82
Code and docs review for multiple -c and -f options in psql.
tglsfdcDec 13, 2015
7bd149c
Docs: document that psql's "\i -" means read from stdin.
tglsfdcDec 14, 2015
2a35449
Correct statement to actually be the intended assert statement.
anarazelDec 14, 2015
cca705a
Fix bug in SetOffsetVacuumLimit() triggered by find_multixact_start()…
anarazelDec 14, 2015
7b96bf4
Fix out-of-memory error handling in ParameterDescription message proc…
hlinnakaDec 14, 2015
e2f1765
Remove xmlparse(document '') test
kgrittnDec 14, 2015
0d8f3d5
Add missing CHECK_FOR_INTERRUPTS in lseg_inside_poly
alvherreDec 14, 2015
db81329
Add missing cleanup logic in pg_rewind/t/005_same_timeline.pl test.
tglsfdcDec 15, 2015
e5e11c8
Collect the global OR of hasRowSecurity flags for plancache
sfrostDec 15, 2015
43cd468
Improve CREATE POLICY documentation
sfrostDec 15, 2015
3fed417
Provide a way to predefine LWLock tranche IDs.
robertmhaasDec 15, 2015
6150a1b
Move buffer I/O and content LWLocks out of the main tranche.
robertmhaasDec 15, 2015
049469e
Teach mdnblocks() not to create zero-length files.
robertmhaasDec 15, 2015
bfc7f5d
Update 9.5 release notes through today.
tglsfdcDec 15, 2015
0625dbb
Document use of Subject Alternative Names in SSL server certificates.
tglsfdcDec 15, 2015
f27a6b1
Mark CHECK constraints declared NOT VALID valid if created with table.
robertmhaasDec 16, 2015
b648b70
Speed up CREATE INDEX CONCURRENTLY's TID sort.
robertmhaasDec 16, 2015
2ec477d
Cope with Readline's failure to track SIGWINCH events outside of input.
tglsfdcDec 16, 2015
756e7b4
Rework internals of changing a type's ownership
alvherreDec 17, 2015
aee7705
Fix improper initialization order for readline.
tglsfdcDec 17, 2015
66d947b
Adjust behavior of single-user -j mode for better initdb error report…
tglsfdcDec 18, 2015
c4a8812
Use just one standalone-backend session for initdb's post-bootstrap s…
tglsfdcDec 18, 2015
3d0c50f
Remove unreferenced function declarations.
tglsfdcDec 18, 2015
33bd250
Cube extension kNN support
feodorDec 18, 2015
9246af6
Allow to omit boundaries in array subscript
feodorDec 18, 2015
9a51698
Fix typo in comment.
robertmhaasDec 18, 2015
4496226
Fix copy-and-paste error in logical decoding callback.
robertmhaasDec 18, 2015
2bdfcb5
Fix TupleQueueReaderNext not to ignore its nowait argument.
robertmhaasDec 18, 2015
6e7b335
Remove duplicate word.
robertmhaasDec 18, 2015
3c7042a
pgbench: Change terminology from "threshold" to "parameter".
robertmhaasDec 18, 2015
bbbd807
Revert 9246af6799819847faa33baf441251003acbb8fe because
feodorDec 18, 2015
130d94a
Fix tab completion for ALTER ... TABLESPACE ... OWNED BY.
anarazelDec 19, 2015
529fd74
Fix whitespace
petereDec 19, 2015
d37b816
Adopt a more compact, less error-prone notation for tab completion code.
tglsfdcDec 19, 2015
6542181
Add missing COSTS OFF to EXPLAIN commands in rowsecurity.sql.
tglsfdcDec 19, 2015
69e7c44
psql: Review of new help output strings
petereDec 20, 2015
d854118
Teach psql's tab completion to consider the entire input string.
tglsfdcDec 20, 2015
99ccb23
Remove silly completion for "DELETE FROM tabname ...".
tglsfdcDec 20, 2015
6f8cb1e
Make viewquery a copy in rewriteTargetView()
sfrostDec 21, 2015
f5a4370
Fix calculation of space needed for parsed words in tab completion.
tglsfdcDec 21, 2015
ccd8f97
postgres_fdw: Consider requesting sorted data so we can do a merge join.
robertmhaasDec 22, 2015
0ba3f3b
Comment improvements for abbreviated keys.
robertmhaasDec 22, 2015
6efbded
Allow omitting one or both boundaries in an array slice specifier.
tglsfdcDec 23, 2015
30c0c4b
Remove unnecessary escaping in C character literals
petereDec 23, 2015
51d152f
Change Gather not to use a physical tlist.
robertmhaasDec 23, 2015
bc7fcab
Read from the same worker repeatedly until it returns no tuple.
robertmhaasDec 23, 2015
1aa41e3
In pg_dump, remember connection passwords no matter how we got them.
tglsfdcDec 23, 2015
ff402ae
Improve handling of password reuse in src/bin/scripts programs.
tglsfdcDec 23, 2015
01e386a
Avoid VACUUM FULL altogether in initdb.
tglsfdcDec 24, 2015
bee172f
Docs typo fix.
tglsfdcDec 24, 2015
96cd61a
Fix factual and grammatical errors in comments for struct _tableInfo.
tglsfdcDec 24, 2015
71dd092
Docs: fix erroneously-given function name.
tglsfdcDec 24, 2015
a9246fb
Remove unnecessary row ordering dependency in pg_rewind test suite.
tglsfdcDec 24, 2015
25bfa7e
Improve the gin index scan performance in pg_trgm.
feodorDec 25, 2015
8014c44
Improve SECURITY LABEL tab completion
MasaoFujiiDec 25, 2015
3d2b31e
Fix brin_summarize_new_values() to check index type and ownership.
tglsfdcDec 26, 2015
fec1ad9
Include typmod when complaining about inherited column type mismatches.
tglsfdcDec 26, 2015
743229a
Add forgotten CHECK_FOR_INTERRUPT calls in pgcrypto's crypt()
alvherreDec 27, 2015
fc995bf
Fix translation domain in pg_basebackup
alvherreDec 28, 2015
731dfc7
Update documentation about pseudo-types.
tglsfdcDec 28, 2015
151c4ff
doc: pg_committs -> pg_commit_ts
alvherreDec 28, 2015
870df2b
Fix omission of -X (--no-psqlrc) in some psql invocations.
tglsfdcDec 28, 2015
54aaafe
Document the exponentiation operator as associating left to right.
tglsfdcDec 28, 2015
ac443d1
Document brin_summarize_new_pages
alvherreDec 28, 2015
81ee726
Code and docs review for cube kNN support.
tglsfdcDec 28, 2015
241448b
Rename (new|old)estCommitTs to (new|old)estCommitTsXid
jconwayDec 28, 2015
fd19525
Put back one copyObject() in rewriteTargetView().
tglsfdcDec 29, 2015
efe4c9d
Add some comments about division of labor between rewriter and planner.
tglsfdcDec 29, 2015
e5e5267
Minor hacking on contrib/cube documentation.
tglsfdcDec 30, 2015
e842908
Avoid useless truncation attempts during VACUUM.
tglsfdcDec 30, 2015
e5d06f2
Dept of second thoughts: the !scan_all exit mustn't increase scanned_…
tglsfdcDec 30, 2015
0dab5ef
Fix ALTER OPERATOR to update dependencies properly.
tglsfdcDec 31, 2015
5f36096
Add a comment noting that FDWs don't have to implement EXCEPT or LIMI…
tglsfdcDec 31, 2015
805ac78
doc: Add index entries and better documentation link for Linux OOM
petereJan 1, 2016
253de19
doc: Remove redundant duplicate URLs from ulink elements
petereJan 1, 2016
3cd1ba1
Fix comments about WAL rule "write xlog before data" versus pg_multix…
nmischJan 1, 2016
3c93a60
Add some more defenses against silly estimates to gincostestimate().
tglsfdcJan 1, 2016
c7e27be
Teach flatten_reloptions() to quote option values safely.
tglsfdcJan 1, 2016
dfcd9cb
Cover heap_page_prune_opt()'s cleanup lock tactic in README.
nmischJan 2, 2016
ee94300
Update copyright for 2016
bmomjianJan 2, 2016
ad08bf5
Update copyright for 2016
tglsfdcJan 2, 2016
48c9f28
Update copyright for 2016
tglsfdcJan 2, 2016
de7c8db
Make copyright.pl cope with nonstandard case choices in copyright not…
tglsfdcJan 2, 2016
df35af2
Adjust back-branch release note description of commits a2a718b22 et al.
tglsfdcJan 2, 2016
7157fe8
Fix overly-strict assertions in spgtextproc.c.
tglsfdcJan 2, 2016
b416c0b
Teach pg_dump to quote reloption values safely.
tglsfdcJan 3, 2016
90e61df
Fix treatment of *lpNumberOfBytesRecvd == 0: that's a completion cond…
tglsfdcJan 3, 2016
0279891
Do a final round of copy-editing on the 9.5 release notes.
tglsfdcJan 3, 2016
c6aeba3
Do some copy-editing on the docs for replication origins.
tglsfdcJan 3, 2016
939d10c
Guard against null arguments in binary_upgrade_create_empty_extension().
tglsfdcJan 3, 2016
c1611db
Do some copy-editing on the docs for row-level security.
tglsfdcJan 4, 2016
f47b602
Fix bogus lock release in RemovePolicyById and RemoveRoleFromObjectPo…
tglsfdcJan 4, 2016
fb1227a
Fix regrole and regnamespace types to honor quoting like other reg* t…
tglsfdcJan 4, 2016
b0cadc0
Fix regrole and regnamespace output functions to do quoting, too.
tglsfdcJan 4, 2016
8978eb0
Fix typo in comment.
robertmhaasJan 4, 2016
5d35438
Adjust behavior of row_security GUC to match the docs.
tglsfdcJan 4, 2016
7debf36
Docs: provide a concrete discussion and example for RLS race conditions.
tglsfdcJan 4, 2016
9b181b0
In psql's tab completion, change most TailMatches patterns to Matches.
tglsfdcJan 5, 2016
4f18010
Convert psql's tab completion for backslash commands to the new style.
tglsfdcJan 5, 2016
83be184
Add to_regnamespace() and to_regrole() to the documentation.
tglsfdcJan 5, 2016
efa318b
Make pg_shseclabel available in early backend startup
alvherreJan 5, 2016
ea0d494
Make the to_reg*() functions accept text not cstring.
tglsfdcJan 5, 2016
9211919
In opr_sanity regression test, check for unexpected uses of cstring.
tglsfdcJan 5, 2016
4aecd22
Make pg_receivexlog silent with 9.3 and older servers
alvherreJan 5, 2016
3343ea9
Sort $(wildcard) output where needed for reproducible build output.
tglsfdcJan 5, 2016
419400c
Remove some ancient and unmaintained encoding-conversion test cruft.
tglsfdcJan 5, 2016
abb1733
Add scale(numeric)
alvherreJan 5, 2016
65681d0
Fix typo in create_transform.sgml.
tatsuo-ishiiJan 5, 2016
4bf8716
Comment typo fix.
tglsfdcJan 6, 2016
dad0899
In initdb's post-bootstrap phase, drop temp tables explicitly.
tglsfdcJan 6, 2016
a967613
Windows: Make pg_ctl reliably detect service status
alvherreJan 7, 2016
5e0b5dc
Provide more detail in postmaster log for password authentication fai…
tglsfdcJan 7, 2016
6b1a837
Remove vestigial CHECK_FOR_INTERRUPTS call.
tglsfdcJan 7, 2016
b1a9bad
pgstat: add WAL receiver status view & SRF
alvherreJan 7, 2016
33b054b
Use plain mkdir() not pg_mkdir_p() to create subdirectories of PGDATA.
tglsfdcJan 7, 2016
fa838b5
Add win32security to LIBOBJS
alvherreJan 7, 2016
b41fb65
Fix unobvious interaction between -X switch and subdirectory creation.
tglsfdcJan 7, 2016
f81c966
Fix order of arguments to va_start()
alvherreJan 7, 2016
c44d013
Delay creation of subplan tlist until after create_plan().
tglsfdcJan 8, 2016
a54676a
Marginal cleanup of GROUPING SETS code in grouping_planner().
tglsfdcJan 8, 2016
c662ef1
Remove reundand include of TestLib
mhaganderJan 8, 2016
2650486
Fix typo in comment
mhaganderJan 8, 2016
e9282e9
Blind attempt at a Cygwin fix
alvherreJan 8, 2016
4631721
Revert "Blind attempt at a Cygwin fix"
alvherreJan 8, 2016
687f2cd
Avoid pin scan for replay of XLOG_BTREE_VACUUM
simonat2ndQuadrantJan 9, 2016
529baf6
Add STRICT to some C functions created by the regression tests.
tglsfdcJan 9, 2016
b602842
Revoke change to rmgr desc of btree vacuum
simonat2ndQuadrantJan 9, 2016
1cb63c7
Clean up code for widget_in() and widget_out().
tglsfdcJan 9, 2016
26d538d
Clean up some lack-of-STRICT issues in the core code, too.
tglsfdcJan 9, 2016
3ef16c4
Add some checks on "char"-type columns to type_sanity and opr_sanity.
tglsfdcJan 9, 2016
820bdcc
Remove a useless PG_GETARG_DATUM() call from jsonb_build_array.
tglsfdcJan 9, 2016
c618e1b
doc: Fix typo in logical decoding documentation
petereJan 11, 2016
950ab82
Remove obsolete comment.
robertmhaasJan 11, 2016
866566a
Avoid dump/reload problems when using both plpython2 and plpython3.
tglsfdcJan 12, 2016
fb6fcbd
Use LOAD not actual code execution to pull in plpython library.
tglsfdcJan 12, 2016
796d1e8
Remove no-longer-needed old-style check for incompatible plpythons.
tglsfdcJan 12, 2016
1e29e63
Maintain local LogwrtResult consistently
simonat2ndQuadrantJan 12, 2016
e63bb45
Add new user fn pg_current_xlog_flush_location()
simonat2ndQuadrantJan 12, 2016
7032703
psql: Update tab completion comment
petereJan 10, 2016
bc56d58
psql: Fix CREATE INDEX tab completion
petereJan 10, 2016
b1bfb28
psql: Improve CREATE INDEX CONCURRENTLY tab completion
petereJan 13, 2016
26905e0
Run pgindent on src/bin/pg_dump/*
tglsfdcJan 13, 2016
5b5fea2
Access pg_dump's options structs through Archive struct, not directly.
tglsfdcJan 13, 2016
e72d7d8
Handle extension members when first setting object dump flags in pg_d…
tglsfdcJan 13, 2016
6a61d1f
Properly close token in sspi authentication
mhaganderJan 14, 2016
a923af3
Fix build_grouping_chain() to not clobber its input lists.
tglsfdcJan 14, 2016
23c2dd0
Fix spelling mistakes.
robertmhaasJan 15, 2016
cf7dfbf
Fix minor typo in comment
mhaganderJan 15, 2016
4189e3d
psql: Add completion support for DROP INDEX CONCURRENTLY
petereJan 17, 2016
57ce9ac
Remove dead code in pg_dump.
tglsfdcJan 17, 2016
8d290c8
Re-pgindent a few files.
tglsfdcJan 18, 2016
65c5fcd
Restructure index access method API to hide most of it at the C level.
tglsfdcJan 18, 2016
49b4950
Add explicit cast to amcostestimate call.
tglsfdcJan 18, 2016
85f2228
Fix typo.
tatsuo-ishiiJan 18, 2016
53c949c
Remove Cygwin-specific code from pg_ctl
adunstanJan 19, 2016
9ff6027
Fix assorted inconsistencies in GiST opclass support function declara…
tglsfdcJan 19, 2016
948c979
Add two HyperLogLog functions
alvherreJan 19, 2016
dbe2328
Fix assorted inconsistencies in GIN opclass support function declarat…
tglsfdcJan 20, 2016
216d568
Properly install dynloader.h on MSVC builds
bmomjianJan 20, 2016
c8642d9
PostgresNode: Add names to nodes
alvherreJan 20, 2016
a7de3dc
Support multi-stage aggregation.
robertmhaasJan 20, 2016
45be99f
Support parallel joins, and make related improvements.
robertmhaasJan 20, 2016
422a55a
Refactor to create generic WAL page read callback
simonat2ndQuadrantJan 21, 2016
d0f2f53
psql: Add tab completion for COPY with query
petereJan 21, 2016
978b2f6
Speedup 2PC by skipping two phase state files in normal path
simonat2ndQuadrantJan 21, 2016
c80b31d
Refactor headers to split out standby defs
simonat2ndQuadrantJan 21, 2016
38710a3
Remove unused argument from ginInsertCleanup()
MasaoFujiiJan 21, 2016
b995518
Add defenses against putting expanded objects into Const nodes.
tglsfdcJan 21, 2016
be44ed2
Improve index AMs' opclass validation procedures.
tglsfdcJan 22, 2016
d9b9289
Suppress compiler warning.
tglsfdcJan 22, 2016
647d87c
Make extract() do something more reasonable with infinite datetimes.
tglsfdcJan 22, 2016
a396144
Remove new coupling between NAMEDATALEN and MAX_LEVENSHTEIN_STRLEN.
tglsfdcJan 22, 2016
80aa219
Improve levenshtein() docs.
tglsfdcJan 22, 2016
fd5200c
Improve cross-platform consistency of Inf/NaN handling in trig functi…
tglsfdcJan 22, 2016
e1bd684
Add trigonometric functions that work in degrees.
tglsfdcJan 22, 2016
df43fcf
pg_dump: Fix quoting of domain constraint names
alvherreJan 22, 2016
6ae4c8d
psql: Improve completion of FDW DDL commands
petereJan 23, 2016
73193d8
Adjust degree-based trig functions for more portability.
tglsfdcJan 23, 2016
65abaab
Further adjust degree-based trig functions for more portability.
tglsfdcJan 23, 2016
360f67d
Still further adjust degree-based trig functions for more portability.
tglsfdcJan 23, 2016
0034757
Yet further adjust degree-based trig functions for more portability.
tglsfdcJan 24, 2016
1129c2b
Correct comment in GetConflictingVirtualXIDs()
simonat2ndQuadrantJan 24, 2016
ad2e233
Revert "Fix broken multibyte regression tests."
tatsuo-ishiiJan 25, 2016
879d713
Various fixes to REFRESH MATERIALIZED VIEW tab completion.
kgrittnJan 26, 2016
cc988fb
Improve ResourceOwners' behavior for large numbers of owned objects.
tglsfdcJan 26, 2016
b8682a7
Fix startup so that log prefix %h works for the log_connections message.
tglsfdcJan 26, 2016
5b3cc1a
Mostly mechanical cleanup of pgbench
alvherreJan 27, 2016
8bea3d2
pgbench: improve multi-script support
alvherreJan 27, 2016
e09507a
Fix volatility marking of pg_size_pretty function
MasaoFujiiJan 27, 2016
025b2f3
Fix cross-version pg_dump for aggregate combine functions.
robertmhaasJan 28, 2016
eaf7b1f
Assert that create_unique_path returns non-NULL.
robertmhaasJan 28, 2016
7f46eaf
Add gin_clean_pending_list function to clean up GIN pending list
MasaoFujiiJan 28, 2016
62e2ddd
Fix typos in comments and doc
MasaoFujiiJan 28, 2016
e374838
Fix spi_worker mention in bgworker documentation
alvherreJan 28, 2016
80db1ca
Add [NO]BYPASSRLS options to CREATE USER and ALTER USER docs.
robertmhaasJan 28, 2016
96198d9
Avoid multiple foreign server connections when all use same user mapp…
robertmhaasJan 28, 2016
2f6b041
Add missing quotation mark.
robertmhaasJan 28, 2016
fbe5a3f
Only try to push down foreign joins if the user mapping OIDs match.
robertmhaasJan 28, 2016
b88ef20
postgres_fdw: Refactor deparsing code for locking clauses.
robertmhaasJan 28, 2016
c35c4ec
Fix syntax descriptions for replication commands in logicaldecoding.sgml
MasaoFujiiJan 29, 2016
7e22470
Fix incorrect pattern-match processing in psql's \det command.
tglsfdcJan 29, 2016
b603766
pgbench: refactor handling of stats tracking
alvherreJan 29, 2016
b319356
Migrate PGPROC's backendLock into PGPROC itself, using a new tranche.
robertmhaasJan 29, 2016
2251179
Migrate replication slot I/O locks into a separate tranche.
robertmhaasJan 29, 2016
cc592c4
postgres_fdw: More preliminary refactoring for upcoming join pushdown.
robertmhaasJan 30, 2016
9217bf3
Fix whitespace
petereJan 30, 2016
7dc09c1
Fix error in documentated use of mingw-w64 compilers
adunstanJan 31, 2016
61ce1e8
Fix misspelled function name in comment.
hlinnakaFeb 1, 2016
e51ab85
Fix typos in comments
mhaganderFeb 1, 2016
7a58d19
Make sure ecpg header files do not have a comment lasting several lin…
Feb 1, 2016
89611c4
Various fixes to "ALTER ... SET/RESET" tab completions
MasaoFujiiFeb 1, 2016
64f5edc
pgbench: Install guards against obscure overflow conditions.
robertmhaasFeb 1, 2016
1d0c3b3
pgbench: allow per-script statistics
alvherreFeb 1, 2016
7191ce8
Make all built-in lwlock tranche IDs fixed.
robertmhaasFeb 2, 2016
f25d07d
Fix lossy KNN GiST when ordering operator returns non-float8 value.
feodorFeb 2, 2016
23f3cc3
Fix typo in comment
mhaganderFeb 2, 2016
a4627e8
Fix pg_description entries for jsonb_to_record() and jsonb_to_records…
tglsfdcFeb 2, 2016
2ad83ff
Remove unnecessary "implementation of FOO operator" DESCR() entries.
tglsfdcFeb 2, 2016
3cb5867
Don't test for system columns on join relations
alvherreFeb 2, 2016
2808a2e
Remove printQueryOpt.quote field.
tglsfdcFeb 2, 2016
ac7238d
Improve error reporting when location specified by postgres -D does n…
petereNov 17, 2015
7d17e68
Add support for systemd service notifications
petereNov 17, 2015
e6ecc93
Fix IsValidJsonNumber() to notice trailing non-alphanumeric garbage.
tglsfdcFeb 3, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
PrevPrevious commit
NextNext commit
Still more fixes for planner's handling of LATERAL references.
More fuzz testing by Andreas Seltenreich exposed that the planner did notcope well with chains of lateral references.  If relation X references Ylaterally, and Y references Z laterally, then we will have to scan X on theinside of a nestloop with Z, so for all intents and purposes X is laterallydependent on Z too.  The planner did not understand this and would generateintermediate joins that could not be used.  While that was usually harmlessexcept for wasting some planning cycles, under the right circumstances itwould lead to "failed to build any N-way joins" or "could not devise aquery plan" planner failures.To fix that, convert the existing per-relation lateral_relids andlateral_referencers relid sets into their transitive closures; that is,they now show all relations on which a rel is directly or indirectlylaterally dependent.  This not only fixes the chained-reference problembut allows some of the relevant tests to be made substantially simplerand faster, since they can be reduced to simple bitmap manipulationsinstead of searches of the LateralJoinInfo list.Also, when a PlaceHolderVar that is due to be evaluated at a join containslateral references, we should treat those references as indirect lateraldependencies of each of the join's base relations.  This prevents us fromtrying to join any individual base relations to the lateral referencesource before the join is formed, which again cannot work.Andreas' testing also exposed another oversight in the "dangerousPlaceHolderVar" test added in commit85e5e22.  Simply rejectingunsafe join paths in joinpath.c is insufficient, because in some caseswe will end up rejecting *all* possible paths for a particular join, againleading to "could not devise a query plan" failures.  The restriction hasto be known also to join_is_legal and its cohort functions, so that theywill not select a join for which that will happen.  I chose to move thesupporting logic into joinrels.c where the latter functions are.Back-patch to 9.3 where LATERAL support was introduced.
  • Loading branch information
@tglsfdc
tglsfdc committedDec 11, 2015
commitacfcd45cacb6df23edba4cb3753a2be594238a99
79 changes: 6 additions & 73 deletionssrc/backend/optimizer/path/joinpath.c
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -254,54 +254,6 @@ allow_star_schema_join(PlannerInfo *root,
bms_nonempty_difference(innerparams, outerrelids));
}

/*
* There's a pitfall for creating parameterized nestloops: suppose the inner
* rel (call it A) has a parameter that is a PlaceHolderVar, and that PHV's
* minimum eval_at set includes the outer rel (B) and some third rel (C).
* We might think we could create a B/A nestloop join that's parameterized by
* C. But we would end up with a plan in which the PHV's expression has to be
* evaluated as a nestloop parameter at the B/A join; and the executor is only
* set up to handle simple Vars as NestLoopParams. Rather than add complexity
* and overhead to the executor for such corner cases, it seems better to
* forbid the join. (Note that existence of such a PHV probably means there
* is a join order constraint that will cause us to consider joining B and C
* directly; so we can still make use of A's parameterized path with B+C.)
* So we check whether any PHVs used in the query could pose such a hazard.
* We don't have any simple way of checking whether a risky PHV would actually
* be used in the inner plan, and the case is so unusual that it doesn't seem
* worth working very hard on it.
*
* This case can occur whether or not the join's remaining parameterization
* overlaps param_source_rels, so we have to check for it separately from
* allow_star_schema_join, even though it looks much like a star-schema case.
*/
static inline bool
check_hazardous_phv(PlannerInfo *root,
Path *outer_path,
Path *inner_path)
{
Relidsinnerparams = PATH_REQ_OUTER(inner_path);
Relidsouterrelids = outer_path->parent->relids;
ListCell *lc;

foreach(lc, root->placeholder_list)
{
PlaceHolderInfo *phinfo = (PlaceHolderInfo *) lfirst(lc);

if (!bms_is_subset(phinfo->ph_eval_at, innerparams))
continue;/* ignore, could not be a nestloop param */
if (!bms_overlap(phinfo->ph_eval_at, outerrelids))
continue;/* ignore, not relevant to this join */
if (bms_is_subset(phinfo->ph_eval_at, outerrelids))
continue;/* safe, it can be eval'd within outerrel */
/* Otherwise, it's potentially unsafe, so reject the join */
return false;
}

/* OK to perform the join */
return true;
}

/*
* try_nestloop_path
* Consider a nestloop join path; if it appears useful, push it into
Expand All@@ -322,31 +274,24 @@ try_nestloop_path(PlannerInfo *root,
/*
* Check to see if proposed path is still parameterized, and reject if the
* parameterization wouldn't be sensible --- unless allow_star_schema_join
* says to allow it anyway. Also, we must reject if check_hazardous_phv
* doesn't like the look of it.
* says to allow it anyway. Also, we must reject if have_dangerous_phv
* doesn't like the look of it, which could only happen if the nestloop is
* still parameterized.
*/
required_outer = calc_nestloop_required_outer(outer_path,
inner_path);
if (required_outer &&
((!bms_overlap(required_outer, extra->param_source_rels) &&
!allow_star_schema_join(root, outer_path, inner_path)) ||
!check_hazardous_phv(root, outer_path, inner_path)))
have_dangerous_phv(root,
outer_path->parent->relids,
PATH_REQ_OUTER(inner_path))))
{
/* Waste no memory when we reject a path here */
bms_free(required_outer);
return;
}

/*
* Independently of that, add parameterization needed for any
* PlaceHolderVars that need to be computed at the join. We can handle
* that just by adding joinrel->lateral_relids; that might include some
* rels that are already in required_outer, but no harm done. (Note that
* lateral_relids is exactly NULL if empty, so this will not break the
* property that required_outer is too.)
*/
required_outer = bms_add_members(required_outer, joinrel->lateral_relids);

/*
* Do a precheck to quickly eliminate obviously-inferior paths. We
* calculate a cheap lower bound on the path's cost and then use
Expand DownExpand Up@@ -418,12 +363,6 @@ try_mergejoin_path(PlannerInfo *root,
return;
}

/*
* Independently of that, add parameterization needed for any
* PlaceHolderVars that need to be computed at the join.
*/
required_outer = bms_add_members(required_outer, joinrel->lateral_relids);

/*
* If the given paths are already well enough ordered, we can skip doing
* an explicit sort.
Expand DownExpand Up@@ -500,12 +439,6 @@ try_hashjoin_path(PlannerInfo *root,
return;
}

/*
* Independently of that, add parameterization needed for any
* PlaceHolderVars that need to be computed at the join.
*/
required_outer = bms_add_members(required_outer, joinrel->lateral_relids);

/*
* See comments in try_nestloop_path(). Also note that hashjoin paths
* never have any output pathkeys, per comments in create_hashjoin_path.
Expand Down
Loading

[8]ページ先頭

©2009-2025 Movatter.jp