- 06 6月, 2013 4 次提交
-
-
由 Bruce Momjian 提交于
Backpatch to 9.2.
-
由 Tom Lane 提交于
The planner is aware that it mustn't push down upper-level quals into subqueries if the quals reference subquery output columns that contain set-returning functions or volatile functions, or are non-DISTINCT outputs of a DISTINCT ON subquery. However, it missed making this check when there were one or more levels of UNION or INTERSECT above the dangerous expression. This could lead to "set-valued function called in context that cannot accept a set" errors, as seen in bug #8213 from Eric Soroos, or to silently wrong answers in the other cases. To fix, refactor the checks so that we make the column-is-unsafe checks during subquery_is_pushdown_safe(), which already has to recursively inspect all arms of a set-operation tree. This makes qual_is_pushdown_safe() considerably simpler, at the cost that we will spend some cycles checking output columns that possibly aren't referenced in any upper qual. But the cases where this code gets executed at all are already nontrivial queries, so it's unlikely anybody will notice any slowdown of planning. This has been broken since commit 05f916e6, which makes the bug over ten years old. A bit surprising nobody noticed it before now.
-
由 Peter Eisentraut 提交于
-
由 Tom Lane 提交于
In commit 2c92edad, I broke "EXPLAIN (ANALYZE)" syntax, because I mistakenly thought that ANALYZE/ANALYSE were only partially reserved and thus would be included in NonReservedWord; but actually they're fully reserved so they still need to be called out here. A nicer solution would be to demote these words to type_func_name_keyword status (they can't be less than that because of "VACUUM [ANALYZE] ColId"). While that works fine so far as the core grammar is concerned, it breaks ECPG's grammar for reasons I don't have time to isolate at the moment. So do this for the time being. Per report from Kevin Grittner. Back-patch to 9.0, like the previous commit.
-
- 05 6月, 2013 3 次提交
-
-
由 Tom Lane 提交于
The new message (and SQLSTATE) matches the corresponding error cases in namespace.c. This was thought to be a "can't happen" case when extension.c was written, so we didn't think hard about how to report it. But it definitely can happen in 9.2 and later, since we no longer require search_path to contain any valid schema names. It's probably also possible in 9.1 if search_path came from a noninteractive source. So, back-patch to all releases containing this code. Per report from Sean Chittenden, though this isn't exactly his patch.
-
由 Tom Lane 提交于
Use the same gcc atomic functions as we do on newer ARM chips. (Basically this is a copy and paste of the __arm__ code block, but omitting the SWPB option since that definitely won't work.) Back-patch to 9.2. The patch would work further back, but we'd also need to update config.guess/config.sub in older branches to make them build out-of-the-box, and there hasn't been demand for it. Mark Salter
-
由 Tom Lane 提交于
The array allocated by GetRunningTransactionLocks() needs to be pfree'd when we're done with it. Otherwise we leak some memory during each checkpoint, if wal_level = hot_standby. This manifests as memory bloat in the checkpointer process, or in bgwriter in versions before we made the checkpointer separate. Reported and fixed by Naoya Anzai. Back-patch to 9.0 where the issue was introduced. In passing, improve comments for GetRunningTransactionLocks(), and add an Assert that we didn't overrun the palloc'd array.
-
- 04 6月, 2013 2 次提交
-
-
由 Heikki Linnakangas 提交于
Because of the bug, -r would not accept the rmgr with the highest ID.
-
由 Tom Lane 提交于
"eval q{foo}" used to complain that the error was on line 2 of the eval'd string, because eval internally tacked on "\n;" so that the end of the erroneous command was indeed on line 2. But as of Perl 5.18 it more sanely says that the error is on line 1. To avoid Perl-version-dependent regression test results, use "eval q{foo;}" instead in the two places where this matters. Per buildfarm. Since people might try to use newer Perl versions with older PG releases, back-patch as far as 9.0 where these test cases were added.
-
- 03 6月, 2013 4 次提交
-
-
由 Heikki Linnakangas 提交于
This reverts commit a475c603. Erik Rijkers reported back in January 2013 that after the patch, if you do "pg_dump -t myschema.mytable" to dump a single table, and restore that in a database where myschema does not exist, the table is silently created in pg_catalog instead. That is because pg_dump uses "SET search_path=myschema, pg_catalog" to set schema the table is created in. While allow_system_table_mods is not a very elegant solution to this, we can't leave it as it is, so for now, revert it back to the way it was previously.
-
由 Stephen Frost 提交于
A few more minor spelling corrections, no functional changes. Thom Brown
-
由 Heikki Linnakangas 提交于
Seems cleaner to get the currently-replayed TLI in the same call to GetXLogReplayRecPtr that we get the WAL position. Make it more clear in the comment what the code does when recovery has already ended (RecoveryInProgress() will set ThisTimeLineID in that case). Finally, make resetting ThisTimeLineID afterwards more explicit.
-
由 Tom Lane 提交于
This change makes type_func_name_keywords less reserved than they were before, by allowing them for role names, language names, EXPLAIN and COPY options, and SET values for GUCs; which are all places where few if any actual keywords could appear instead, so no new ambiguities are introduced. The main driver for this change is to allow "COPY ... (FORMAT BINARY)" to work without quoting the word "binary". That is an inconsistency that has been complained of repeatedly over the years (at least by Pavel Golub, Kurt Lidl, and Simon Riggs); but we hadn't thought of any non-ugly solution until now. Back-patch to 9.0 where the COPY (FORMAT BINARY) syntax was introduced.
-
- 02 6月, 2013 3 次提交
-
-
由 Peter Eisentraut 提交于
-
由 Peter Eisentraut 提交于
See 00b0c73f for an explanation.
-
- 01 6月, 2013 5 次提交
-
-
由 Stephen Frost 提交于
Fix a few spelling mistakes. Per bug report #8193 from Lajos Veres.
-
由 Stephen Frost 提交于
Make slightly better decisions about indentation than what pgindent is capable of. Mostly breaking out long function calls into one line per argument, with a few other minor adjustments. No functional changes- all whitespace. pgindent ran cleanly (didn't change anything) after. Passes all regressions.
-
由 Peter Eisentraut 提交于
They no longer match reality with the web site style sheets, and it is difficult to keep the up to date in a CSS world.
-
由 Noah Misch 提交于
Dean Rasheed
-
由 Peter Eisentraut 提交于
-
- 31 5月, 2013 3 次提交
-
-
由 Peter Eisentraut 提交于
Ian Lawrence Barwick
-
由 Peter Eisentraut 提交于
-
由 Peter Eisentraut 提交于
-
- 30 5月, 2013 2 次提交
-
-
由 Peter Eisentraut 提交于
-
由 Bruce Momjian 提交于
This is the first run of the Perl-based pgindent script. Also update pgindent instructions.
-
- 29 5月, 2013 2 次提交
-
-
由 Robert Haas 提交于
Tomas Vondra
-
由 Bruce Momjian 提交于
-
- 27 5月, 2013 1 次提交
-
-
由 Stephen Frost 提交于
The documentation for ALTER TYPE .. RENAME claimed to support a RESTRICT/CASCADE option at the 'type' level, which wasn't implemented and doesn't make a whole lot of sense to begin with. What is supported, and previously undocumented, is ALTER TYPE .. RENAME ATTRIBUTE .. RESTRICT/CASCADE. I've updated the documentation and back-patched this to 9.1 where it was first introduced.
-
- 24 5月, 2013 1 次提交
-
-
由 Heikki Linnakangas 提交于
We're not installing it anymore. Michael Paquier
-
- 23 5月, 2013 2 次提交
-
-
由 Robert Haas 提交于
Pavan Deolasee
-
由 Heikki Linnakangas 提交于
When COPY uses the multi-insert method to insert a batch of tuples into the heap at a time, incorrect line number was printed if something went wrong in inserting the index tuples (primary key failure, for exampl), or processing after row triggers. Fixes bug #8173 reported by Lloyd Albin. Backpatch to 9.2, where the multi- insert code was added.
-
- 22 5月, 2013 3 次提交
-
-
由 Bruce Momjian 提交于
Per suggestion from Tom Lane.
-
由 Simon Riggs 提交于
Not necessary for correctness, just to make log_checkpoints output look less singular. Requested by Fujii Masao
-
由 Simon Riggs 提交于
checkpointer needs to reset ThisTimeLineID after a restartpoint to allow installing/recycling new WAL files. If recovery has already ended this would leave ThisTimeLineID set incorrectly and so we must reset it otherwise later checkpoints do not have the correct timeline. Bug report by Heikki Linnakangas. Further investigation by Heikki and myself.
-
- 21 5月, 2013 4 次提交
-
-
由 Bruce Momjian 提交于
-
由 Bruce Momjian 提交于
Patch from Joe Abbate.
-
由 Peter Eisentraut 提交于
-
由 Heikki Linnakangas 提交于
In the primary_conninfo line that "pg_basebackup -R" generates, single quotes in parameter values need to be escaped into \\'; the libpq parser requires the quotes to be escaped into \', and recovery.conf parser requires the \ to be escaped into \\. Also, don't quote parameter values unnecessarily, to make the connection string prettier. Most options in a libpq connection string don't need quoting. Reported by Hari Babu, closer analysis by Zoltan Boszormenyi, although I didn't use his patch.
-
- 20 5月, 2013 1 次提交
-
-
由 Tom Lane 提交于
Clarify that this option doesn't suppress measurement of the statement's total runtime. Greg Smith
-