summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-05-28Improve v10 release notes' discussion of money operator changes.Tom Lane
Mention the rounding behavioral change for money/int8. Discussion: https://postgr.es/m/20170519164653.29941.19098@wrigleys.postgresql.org
2017-05-28Avoid locale-dependent output in select_views regression test.Tom Lane
Use 'COLLATE "C"' to force locale-independent sorting of the iexit view results in select_views.sql. We aren't particularly interested in the exact sorting behavior here, and this doesn't change the shape of the generated plan, so it seems like a wash as far as the goals of this test go. This is in response to bug #14637 from Tomasz Kontusz. It doesn't fully resolve his problem, because he also saw some diffs in the create_index test. But other people have had issues with select_views too, and this fix lets us drop the select_views_1.out variant expected file altogether, which is a nice win from a maintenance standpoint. Emre Hasegeli Discussion: https://postgr.es/m/20170501000609.24360.24248@wrigleys.postgresql.org
2017-05-26Fix typo in pg_dump's support for dumping collations from pre-v10 servers.Tom Lane
Dunno what 'p' was supposed to mean, but since neither the code below here nor pg_collation.h think it's valid, it must be a mistake. Per report from Thomas Kellerer. Discussion: https://postgr.es/m/og9q8f%24oes%241%40blaine.gmane.org
2017-05-26Move autogenerated array types out of the way during ALTER ... RENAME.Tom Lane
Commit 9aa3c782c added code to allow CREATE TABLE/CREATE TYPE to not fail when the desired type name conflicts with an autogenerated array type, by dint of renaming the array type out of the way. But I (tgl) overlooked that the same case arises in ALTER TABLE/TYPE RENAME. Fix that too. Back-patch to all supported branches. Report and patch by Vik Fearing, modified a bit by me Discussion: https://postgr.es/m/0f4ade49-4f0b-a9a3-c120-7589f01d1eb8@2ndquadrant.com
2017-05-26Fix pg_dump to not emit invalid SQL for an empty operator class.Tom Lane
If an operator class has no operators or functions, and doesn't need a STORAGE clause, we emitted "CREATE OPERATOR CLASS ... AS ;" which is syntactically invalid. Fix by forcing a STORAGE clause to be emitted anyway in this case. (At some point we might consider changing the grammar to allow CREATE OPERATOR CLASS without an opclass_item_list. But probably we'd want to omit the AS in that case, so that wouldn't fix this pg_dump issue anyway.) It's been like this all along, so back-patch to all supported branches. Daniel Gustafsson, tweaked by me to avoid a dangling-pointer bug Discussion: https://postgr.es/m/D9E5FC64-7A37-4F3D-B946-7E4FB468F88A@yesql.se
2017-05-26Remove docs mention of PGREALM variableMagnus Hagander
This variable was only used with Kerberos v4. That support was removed in 2005, but we forgot to remove the documentation. Noted by Shinichi Matsuda
2017-05-25Update expected fileAlvaro Herrera
Missed in ea3e310e712a.
2017-05-25extended stats: Clarify behavior of omitting stat type clauseAlvaro Herrera
Pointed out by Jeff Janes Discussion: https://postgr.es/m/CAMkU=1zGhK-nW10RAXhokcT3MM=YBg=j5LkG9RMDwmu3i0H0Og@mail.gmail.com
2017-05-25Fix message caseAlvaro Herrera
2017-05-25Fix whitespacePeter Eisentraut
2017-05-25Abort authentication if the client selected an invalid SASL mechanism.Heikki Linnakangas
Previously, the server would log an error, but then try to continue with SCRAM-SHA-256 anyway. Michael Paquier Discussion: https://www.postgresql.org/message-id/CAB7nPqR0G5aF2_kc_LH29knVqwvmBc66TF5DicvpGVdke68nKw@mail.gmail.com
2017-05-24Fix table syncing with different column orderPeter Eisentraut
Logical replication supports replicating between tables with different column order. But this failed for the initial table sync because of a logic error in how the column list for the internal COPY command was composed. Fix that and also add a test. Also fix a minor omission in the column name mapping cache. When creating the mapping list, it would not skip locally dropped columns. So if a remote column had the same name as a locally dropped column (...pg.dropped...), then the expected error would not occur.
2017-05-24Improve logical replication worker log messagesPeter Eisentraut
Reduce some redundant messages to DEBUG1. Be clearer about the distinction between apply workers and table synchronization workers. Add subscription and table name where possible. Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
2017-05-24Code review of get_qual_for_list.Robert Haas
We need not consider the case where both nulltest1 and nulltest2 are NULL; the partition either accepts nulls or it does not. Jeevan Ladhe. I added an assertion.
2017-05-24Tighten checks for whitespace in functions that parse identifiers etc.Tom Lane
This patch replaces isspace() calls with scanner_isspace() in functions that are likely to be presented with non-ASCII input. isspace() has the small advantage that it will correctly recognize no-break space in single-byte encodings (such as LATIN1); but it cannot work successfully for any multibyte character, and depending on platform it might return false positive results for some fragments of multibyte characters. That's disastrous for functions that are trying to discard whitespace between valid strings, as noted in bug #14662 from Justin Muise. Even treating no-break space as whitespace is pretty questionable for the usages touched here, because the core scanner would think it is an identifier character. Affected functions are parse_ident(), parseNameAndArgTypes (underlying regprocedurein() and siblings), SplitIdentifierString (used for parsing GUCs and options that are qualified names or lists of names), and SplitDirectoriesString (used for parsing GUCs that are lists of directories). All the functions adjusted here are parsing SQL identifiers and similar constructs, so it's reasonable to insist that their definition of whitespace match the core scanner. So we can hope that this won't cause many backwards-compatibility problems. I've left alone isspace() calls in places that aren't really expecting any non-ASCII input characters, such as float8in(). Back-patch to all supported branches. Discussion: https://postgr.es/m/10129.1495302480@sss.pgh.pa.us
2017-05-23Update URLs in pgindent source and READMEMagnus Hagander
Website and buildfarm is https, not http, and the ftp protocol will be shut down shortly.
2017-05-23Verify that the server constructed the SCRAM nonce correctly.Heikki Linnakangas
The nonce consists of client and server nonces concatenated together. The client checks the nonce contained the client nonce, but it would get fooled if the server sent a truncated or even empty nonce. Reported by Steven Fackler to security@postgresql.org. Neither me or Steven are sure what harm a malicious server could do with this, but let's fix it.
2017-05-23Synced ecpg's pg_type.h with the one used in the backend.Michael Meskes
Patch by Vinayak Pokale.
2017-05-22Fix typo in commentMagnus Hagander
Author: Masahiko Sawada
2017-05-21Fix precision and rounding issues in money multiplication and division.Tom Lane
The cash_div_intX functions applied rint() to the result of the division. That's not merely useless (because the result is already an integer) but it causes precision loss for values larger than 2^52 or so, because of the forced conversion to float8. On the other hand, the cash_mul_fltX functions neglected to apply rint() to their multiplication results, thus possibly causing off-by-one outputs. Per C standard, arithmetic between any integral value and a float value is performed in float format. Thus, cash_mul_flt4 and cash_div_flt4 produced answers good to only about six digits, even when the float value is exact. We can improve matters noticeably by widening the float inputs to double. (It's tempting to consider using "long double" arithmetic if available, but that's probably too much of a stretch for a back-patched fix.) Also, document that cash_div_intX operators truncate rather than round. Per bug #14663 from Richard Pistole. Back-patch to all supported branches. Discussion: https://postgr.es/m/22403.1495223615@sss.pgh.pa.us
2017-05-21Fix contrib/sepgsql regression tests for partition NOT NULL change.Tom Lane
Commit 3ec76ff1f changed the partitioning logic to not install a forced NOT NULL constraint on range partitioning columns. This affects the expected output for contrib/sepgsql, because there's no longer LOG entries reporting allowance of such a constraint. Per buildfarm.
2017-05-21Change documentation references to PG website to use https: not http:Tom Lane
This is more secure, and saves a redirect since we no longer accept plain HTTP connections on the website. References in code comments should probably be updated too, but that doesn't seem to need back-patching, whereas this does. Also, in the 9.2 branch, remove suggestion that you can get the source code via FTP, since that service will be shut down soon. Daniel Gustafsson, with a few additional changes by me Discussion: https://postgr.es/m/9A2C89A7-0BB8-41A8-B288-8B7BD09D7D44@yesql.se
2017-05-19Rethink flex flags for syncrep_scanner.l.Tom Lane
Using flex's -i switch to achieve case-insensitivity is not a very safe practice, because the scanner's behavior may then depend on the locale that flex was invoked in. In the particular example at hand, that's not academic: the possible matches for "FIRST" will be different in a Turkish locale than elsewhere. Do it the hard way instead, as our other scanners do. Also, drop use of -b -CF -p, because this scanner is only used when parsing the contents of a GUC variable. That's not done often, and the amount of text to be parsed can be expected to be trivial, so prioritizing scanner speed over code size seems like quite the wrong tradeoff. Using flex's default optimization options reduces the size of syncrep_gram.o by more than 50%. The case-insensitivity problem is new in HEAD (cf commit 3901fd70c). The poor choice of optimization flags exists also in 9.6, but it doesn't seem important enough to back-patch. Discussion: https://postgr.es/m/24403.1495225931@sss.pgh.pa.us
2017-05-19pg_upgrade: Handle hash index upgrades more smoothly.Robert Haas
Mark any old hash indexes as invalid so that they don't get used, and create a script to run REINDEX on all of them. Without this, we'd still try to use any upgraded hash indexes, but it would fail. Amit Kapila, reviewed by me. Per a suggestion from Tom Lane. Discussion: http://postgr.es/m/CAA4eK1Jidtagm7Q81q-WoegOVgkotv0OxvHOjFxcvFRP4X=mSw@mail.gmail.com
2017-05-19Fix mistake in error messagePeter Eisentraut
Reported-by: tushar <tushar.ahuja@enterprisedb.com> Author: Dilip Kumar <dilipbalaut@gmail.com>
2017-05-19libpq: Try next host if one of them times out.Robert Haas
If one host in a multi-host connection string times out, move on to the next specified host instead of giving up entirely. Takayuki Tsunakawa, reviewed by Michael Paquier. I added a minor adjustment to the documentation. Discussion: http://postgr.es/m/0A3221C70F24FB45833433255569204D1F6F42F5@G01JPEXMBYT05
2017-05-19Capitalize SHOW when testing whether target_session_attrs=read-write.Robert Haas
This makes it also work for replication connections. Report and patch by Daisuke Higuchi. Discussion: http://postgr.es/m/1803D792815FC24D871C00D17AE95905B1A34A@g01jpexmbkw24
2017-05-19Copy partitioned_rels lists to avoid shared substructure.Robert Haas
Otherwise, set_plan_refs() can get applied to the same list multiple times through different references, leading to chaos. Amit Langote, Dilip Kumar, and Robert Haas, reviewed by Ashutosh Bapat. Original report by Sveinn Sveinsson. Discussion: http://postgr.es/m/20170517141151.1435.79890@wrigleys.postgresql.org
2017-05-19Fix misspelled struct tag.Tom Lane
This was evidently intended to match the struct's typedef name, but it didn't quite. Noted while testing find_typedefs.
2017-05-19Fix corruption of tableElts list by MergeAttributes().Robert Haas
Since commit e7b3349a8ad7afaad565c573fbd65fb46af6abbe, MergeAttributes destructively modifies the input List, to which the caller's CreateStmt still points. One may wonder whether this was already a bug, but commit f0e44751d7175fa3394da2c8f85e3ceb3cdbfe63 made things noticeably worse by adding additional destructive modifications so that the caller's List might, in the case of creation a partitioned table, no longer even be structurally valid. Restore the status quo ante by assigning the return value of MergeAttributes back to stmt->tableElts in the caller. In most of the places where DefineRelation is called, it doesn't matter what stmt->tableElts points to here or whether it's valid or not, because the caller doesn't use the statement for anything after DefineRelation returns anyway. However, ProcessUtilitySlow passes it to EventTriggerCollectSimpleCommand, and that function tries to invoke copyObject on it. If any of the CreateStmt's substructure is invalid at that point, undefined behavior will result. One might wonder whether this whole area needs further revision - perhaps DefineRelation() ought not to be destructively modifying the caller-provided CreateStmt at all. However, that would be a behavior change for any event triggers using C code to inspect the CreateStmt, so for now, just fix the crash. Report by Amit Langote, who provided a somewhat different patch for it. Discussion: http://postgr.es/m/bf6a39a7-100a-74bd-1156-3c16a1429d88@lab.ntt.co.jp
2017-05-19Fix argument name differencesPeter Eisentraut
Different names were used between function declaration and definition.
2017-05-19doc: remove duplicate PG 10 release notes entryBruce Momjian
Reported-by: Daniel Gustafsson
2017-05-19doc: fix PG 10 release notes with proper attribution and commitBruce Momjian
Fix for hot_standby=on change. Reported-by: Huong Dangminh Author: Huong Dangminh
2017-05-19Fix compilation with --with-bsd-auth.Heikki Linnakangas
Commit 8d3b9cce81 added extra arguments to the sendAuthRequest function, but neglected this caller inside #ifdef USE_BSD_AUTH. Per report from Pierre-Emmanuel André. Discussion: https://www.postgresql.org/message-id/20170519090336.whzmjzrsap6ktbgg@digipea.digitick.local
2017-05-19doc: Fix ALTER SUBSCRIPTION option syntax synopsisPeter Eisentraut
Author: Masahiko Sawada <sawada.mshk@gmail.com>
2017-05-18Make slab allocator work on platforms with MAXIMUM_ALIGNOF < sizeof(int).Heikki Linnakangas
Notably, m68k only needs 2-byte alignment. Per report from Christoph Berg. Discussion: https://www.postgresql.org/message-id/20170517193957.fwntkgi6epuso5l2@msg.df7cb.de
2017-05-18Don't explicitly mark range partitioning columns NOT NULL.Robert Haas
This seemed like a good idea originally because there's no way to mark a range partition as accepting NULL, but that now seems more like a current limitation than something we want to lock down for all time. For example, there's a proposal to add the notion of a default partition which accepts all rows not otherwise routed, which directly conflicts with the idea that a range-partitioned table should never allow nulls anywhere. So let's change this while we still can, by putting the NOT NULL test into the partition constraint instead of changing the column properties. Amit Langote and Robert Haas, reviewed by Amit Kapila Discussion: http://postgr.es/m/8e2dd63d-c6fb-bb74-3c2b-ed6d63629c9d@lab.ntt.co.jp
2017-05-18Do not reset global_session on RESET ALLPavan Deolasee
This avoids resetting global session information when DISCARD/RESET ALL is executed. This can have bad effects, especially as seen from the 'guc' test case where we fail to handle temp tables correctly. So we mark global_session GUC with GUC_NO_RESET_ALL flag and instead issue an explicit RESET global_session when connection is cleaned up.
2017-05-18Fix typo in comment.Heikki Linnakangas
Daniel Gustafsson
2017-05-18Ensure that multi-node executor is initialised correctly.Pavan Deolasee
Since parallel background worker threads may need to communicate with remote nodes, we should initialise multi-node executor when the parallel worker starts it work. This was discovered while running queries with force_parallel_mode set to on.
2017-05-18pg_dump: Fix dumping of slot_name = NONEPeter Eisentraut
It previously wrote out slot_name = '', which was incorrect. Reported-by: Masahiko Sawada <sawada.mshk@gmail.com>
2017-05-18Improve CREATE SUBSCRIPTION option parsingPeter Eisentraut
When creating a subscription with slot_name = NONE, we failed to check that also create_slot = false and enabled = false were set. This created an invalid subscription and could later lead to a crash if a NULL slot name was accessed. Add more checks around that for robustness. Reported-by: tushar <tushar.ahuja@enterprisedb.com>
2017-05-17Post-PG 10 beta1 pgperltidy runBruce Momjian
2017-05-17Post-PG 10 beta1 pgindent runBruce Momjian
perltidy run not included.
2017-05-17Update typedefs list in prep. for post-PG10 beta1 pgindent runBruce Momjian
2017-05-17Add download URL for perltidy version v20090616Bruce Momjian
2017-05-17Code review for make_partition_op_expr.Robert Haas
It's better to use the actual keynum here rather than 0, because someday someone might try to make list partitioning work with multiple partitioning columns. Jeevan Ladhe Discussion: http://postgr.es/m/CAOgcT0M6-mx+dSX47JGJuJP1CKr4XssBFVmKNETt0OZYWpFr+w@mail.gmail.com
2017-05-17Revert changes to pg_basebackup and pg_waldump usage() code.Tom Lane
Partially revert commit c079673dcb7f210617c9fc1470e6bf166d8a2971. There were complaints that splitting switch descriptions would complicate translation efforts. There are probably ways to resolve the formatting problem without doing that, but undo it while we're discussing.
2017-05-17Remove redundant has_null member from PartitionBoundInfoData.Robert Haas
Jeevan Ladhe, with some changes by me. Discussion: http://postgr.es/m/CAOgcT0NZ_30-pjBpW2OgneV1ammArHkZDZ8B_KFC3q+_Xb2H9A@mail.gmail.com
2017-05-17Add more tests for CREATE SUBSCRIPTIONPeter Eisentraut
Add some tests for parsing different option combinations. Fix some of the resulting error messages for recent changes in option naming. Author: Masahiko Sawada <sawada.mshk@gmail.com>