summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-04-23ecpg: Add additional files to .gitignorePeter Eisentraut
These are test files added by f9179685371b74bf4752bf3f87846e5625cf91fa.
2014-04-23Update obsolete comments.Heikki Linnakangas
We no longer have a TLI field in the page header.
2014-04-23Fix typos in comment.Heikki Linnakangas
2014-04-23Cleanup of new b-tree page deletion code.Heikki Linnakangas
When marking a branch as half-dead, a pointer to the top of the branch is stored in the leaf block's hi-key. During normal operation, the high key was left in place, and the block number was just stored in the ctid field of the high key tuple, but in WAL replay, the high key was recreated as a truncated tuple with zero columns. For the sake of easier debugging, also truncate the tuple in normal operation, so that the page is identical after WAL replay. Also, rename the 'downlink' field in the WAL record to 'topparent', as that seems like a more descriptive name. And make sure it's set to invalid when unlinking the leaf page.
2014-04-22Fix documentation of FmgrInfo.fn_nargs.Tom Lane
Some ancient comments claimed that fn_nargs could be -1 to indicate a variable number of input arguments; but this was never implemented, and is at variance with what we ultimately did with "variadic" functions. Update the comments.
2014-04-22Fix broken logic in logical_heap_rewrite_flush_mappings().Tom Lane
It's blatantly obvious that commit 4d0d607a454ee832574afd52a3c515099cc85eb3 wasn't tested. The leak's real enough, though.
2014-04-22revert 4d0d607a454ee832574afd52a3c515099cc85eb3Bruce Momjian
Revert due to contrib/test_decoding regression failure
2014-04-22build: add EXTRA_REGRESS_OPTS to all pg_regress invocationsBruce Momjian
Patch by Christoph Berg
2014-04-22release memory used while flushing logical mappingsBruce Momjian
Patch by Ants Aasma
2014-04-22regression test: fix hot standby tests by using repeatable readBruce Momjian
Serializable transactions won't work on a Hot Standby. Also fix VACUUM/ANALYZE label mixup. Patch by Martín Marqués
2014-04-22copy: update docs for FORCE_NULL and FORCE_NOT_NULL combinationBruce Momjian
Also update regression tests Patch by Michael Paquier
2014-04-22Fix bug in the new B-tree incomplete-split code.Heikki Linnakangas
Forgot to update LSN of left sibling's page, when creating a new root. I fixed this for regular insertions and page splits earlier, but missed new root creation.
2014-04-22Fix Gin README.Heikki Linnakangas
The README incorrectly claimed that GIN posting tree pages contain an array of uncompressed items in addition to compressed posting lists. Earlier versions of the GIN posting list compression patch worked that way, but not the one that was committed.
2014-04-22Fix bug in new B-tree page deletion code.Heikki Linnakangas
When modifying a page, must hold an exclusive lock. A shared lock is obviously not good enough.
2014-04-22Retain original physical order of tuples in redo of b-tree splits.Heikki Linnakangas
It makes no difference to the system, but minimizing the differences between a master and standby makes debugging simpler.
2014-04-22Fix rm_desc routine of b-tree page delete records.Heikki Linnakangas
A couple of typos from my refactoring of the page deletion patch.
2014-04-22Avoid transient bogus page contents when creating a sequence.Heikki Linnakangas
Don't use simple_heap_insert to insert the tuple to a sequence relation. simple_heap_insert creates a heap insertion WAL record, and replaying that will create a regular heap page without the special area containing the sequence magic constant, which is wrong for a sequence. That was not a bug because we always created a sequence WAL record after that, and replaying that overwrote the bogus heap page, and the transient state could never be seen by another backend because it was only done when creating a new sequence relation. But it's simpler and cleaner to avoid that in the first place.
2014-04-20Fix another typo.Robert Haas
Etsuro Fujita
2014-04-20Fix typo.Robert Haas
Etsuro Fujita
2014-04-19libpq: have PQconnectdbParams() and PQpingParams accept "" as defaultBruce Momjian
Previously, these functions treated "" optin values as defaults in some ways, but not in others, like when comparing to .pgpass. Also, add documentation to clarify that now "" and NULL use defaults, like PQsetdbLogin() has always done. BACKWARD INCOMPATIBILITY Patch by Adrian Vondendriesch, docs by me Report by Jeff Janes
2014-04-18Fix typoMagnus Hagander
Amit Langote
2014-04-18Create function prototype as part of PG_FUNCTION_INFO_V1 macroPeter Eisentraut
Because of gcc -Wmissing-prototypes, all functions in dynamically loadable modules must have a separate prototype declaration. This is meant to detect global functions that are not declared in header files, but in cases where the function is called via dfmgr, this is redundant. Besides filling up space with boilerplate, this is a frequent source of compiler warnings in extension modules. We can fix that by creating the function prototype as part of the PG_FUNCTION_INFO_V1 macro, which such modules have to use anyway. That makes the code of modules cleaner, because there is one less place where the entry points have to be listed, and creates an additional check that functions have the right prototype. Remove now redundant prototypes from contrib and other modules.
2014-04-17Fix unused-variable warning on Windows.Tom Lane
Introduced in 585bca39: msgid is not used in the Windows code path. Also adjust comments a tad (mostly to keep pgindent from messing it up). David Rowley
2014-04-17report stat() error in trigger file checkBruce Momjian
Permissions might prevent the existence of the trigger file from being checked. Per report from Andres Freund
2014-04-17Set the all-visible flag on heap page before writing WAL record, not after.Heikki Linnakangas
If we set the all-visible flag after writing WAL record, and XLogInsert takes a full-page image of the page, the image would not include the flag. We will then proceed to set the VM bit, which would then be set without the corresponding all-visible flag on the heap page. Found by comparing page images on master and standby, after writing/replaying each WAL record. (There is still a discrepancy: the all-visible flag won't be set after replaying the HEAP_CLEAN record, even though it is set in the master. However, it will be set when replaying the HEAP2_VISIBLE record and setting the VM bit, so the all-visible flag and VM bit are always consistent on the standby, even though they are momentarily out-of-sync with master) Backpatch to 9.3 where this code was introduced.
2014-04-16Rename EXPLAIN ANALYZE's "total runtime" output to "execution time".Tom Lane
Now that EXPLAIN also outputs a "planning time" measurement, the use of "total" here seems rather confusing: it sounds like it might include the planning time which of course it doesn't. Majority opinion was that "execution time" is a better label, so we'll call it that. This should be noted as a backwards incompatibility for tools that examine EXPLAIN ANALYZE output. In passing, I failed to resist the temptation to do a little editing on the materialized-view example affected by this change.
2014-04-16libpq: use pgsocket for socket values, for portabilityBruce Momjian
Previously, 'int' was used for socket values in libpq, but socket values are unsigned on Windows. This is a style correction. Initial patch and previous PGINVALID_SOCKET initial patch by Joel Jacobson, modified by me Report from PVS-Studio
2014-04-16psql: update --help output for unaligned mode paramsBruce Momjian
Previously it wasn't clear from --help that -F, -R, -z, -0 only controlled psql unaligned output. Initial patch from Jov <amutu@amutu.com>, adjustments by me
2014-04-16Fix object identities for text search objectsAlvaro Herrera
We were neglecting to schema-qualify them. Backpatch to 9.3, where object identities were introduced as a concept by commit f8348ea32ec8.
2014-04-16Update oidjoins regression test for 9.4.Tom Lane
Now that we're pretty much feature-frozen, it's time to update the checks on system catalog foreign-key references. (It looks like we missed doing this altogether for 9.3. Sigh.)
2014-04-16Attempt to get plpython regression tests working again for MSVC builds.Andrew Dunstan
This has probably been broken for quite a long time. Buildfarm member currawong's current results suggest that it's been broken since 9.1, so backpatch this to that branch. This only supports Python 2 - I will handle Python 3 separately, but this is a fairly simple fix.
2014-04-16Use AF_UNSPEC not PF_UNSPEC in getaddrinfo calls.Tom Lane
According to the Single Unix Spec and assorted man pages, you're supposed to use the constants named AF_xxx when setting ai_family for a getaddrinfo call. In a few places we were using PF_xxx instead. Use of PF_xxx appears to be an ancient BSD convention that was not adopted by later standardization. On BSD and most later Unixen, it doesn't matter much because those constants have equivalent values anyway; but nonetheless this code is not per spec. In the same vein, replace PF_INET by AF_INET in one socket() call, which wasn't even consistent with the other socket() call in the same function let alone the remainder of our code. Per investigation of a Cygwin trouble report from Marco Atzeri. It's probably a long shot that this will fix his issue, but it's wrong in any case.
2014-04-16Fix timeout in LDAP lookup of libpq connection parametersMagnus Hagander
Bind attempts to an LDAP server should time out after two seconds, allowing additional lines in the service control file to be parsed (which provide a fall back to a secondary LDAP server or default options). The existing code failed to enforce that timeout during TCP connect, resulting in a hang far longer than two seconds if the LDAP server does not respond. Laurenz Albe
2014-04-16Add to_regprocedure() and to_regoperator().Robert Haas
These are natural complements to the functions added by commit 0886fc6a5c75b294544263ea979b9cf6195407d9, but they weren't included in the original patch for some reason. Add them. Patch by me, per a complaint by Tom Lane. Review by Tatsuo Ishii.
2014-04-16Try to fix spurious DSM failures on Windows.Robert Haas
Apparently, Windows can sometimes return an error code even when the operation actually worked just fine. Rearrange the order of checks according to what appear to be the best practices in this area. Amit Kapila
2014-04-16check socket creation errors against PGINVALID_SOCKETBruce Momjian
Previously, in some places, socket creation errors were checked for negative values, which is not true for Windows because sockets are unsigned. This masked socket creation errors on Windows. Backpatch through 9.0. 8.4 doesn't have the infrastructure to fix this.
2014-04-16Use correctly-sized buffer when zero-filling a WAL file.Heikki Linnakangas
I mixed up BLCKSZ and XLOG_BLCKSZ when I changed the way the buffer is allocated a couple of weeks ago. With the default settings, they are both 8k, but they can be changed at compile-time.
2014-04-15psql: conditionally display oids and replication identityBruce Momjian
In psql \d+, display oids only when they exist, and display replication identity only when it is non-default. Also document the defaults for replication identity for system and non-system tables. Update regression output.
2014-04-15vacuumdb: Add option --analyze-in-stagesPeter Eisentraut
Add vacuumdb option --analyze-in-stages which runs ANALYZE three times with different configuration settings, adopting the logic from the analyze_new_cluster.sh script that pg_upgrade generates. That way, users of pg_dump/pg_restore can also use that functionality. Change pg_upgrade to create the script so that it calls vacuumdb instead of implementing the logic itself.
2014-04-14Have lcov call the right gcovPeter Eisentraut
By default, lcov will call whatever gcov it can find in the path. But if the user has specified a different gcov to configure, this could be incompatible. So tell lcov explicitly with an option which gcov program to call.
2014-04-14Add @configure_input@ marker to Makefile.global.inPeter Eisentraut
That way, when looking at Makefile.global, we don't get confused by the comment that claims that this is Makefile.global.in.
2014-04-14Add TAP tests for client programsPeter Eisentraut
Reviewed-by: Pavel Stěhule <pavel.stehule@gmail.com> Reviewed-by: Erik Rijkers <er@xs4all.nl>
2014-04-14Fix whitespacePeter Eisentraut
2014-04-14Set pd_lower on internal GIN posting tree pages.Heikki Linnakangas
This allows squeezing out the unused space in full-page writes. And more importantly, it can be a useful debugging aid. In hindsight we should've done this back when GIN was added - we wouldn't need the 'maxoff' field in the page opaque struct if we had used pd_lower and pd_upper like on normal pages. But as long as there can be pages in the index that have been binary-upgraded from pre-9.4 versions, we can't rely on that, and have to continue using 'maxoff'. Most of the code churn comes from renaming some macros, now that they're used on internal pages, too. This change is completely backwards-compatible, no effect on pg_upgrade.
2014-04-14Fix bogus handling of bad strategy number in GIST consistent() functions.Tom Lane
Make sure we throw an error instead of silently doing the wrong thing when fed a strategy number we don't recognize. Also, in the places that did already throw an error, spell the error message in a way more consistent with our message style guidelines. Per report from Paul Jones. Although this is a bug, it won't occur unless a superuser tries to do something he shouldn't, so it doesn't seem worth back-patching.
2014-04-14Tab completion for event triggers.Robert Haas
Ian Barwick
2014-04-14Remove dead checks for invalid left page in ginDeletePage.Heikki Linnakangas
In some places, the function assumes the left page is valid, and in others, it checks if it is valid. Remove all the checks.
2014-04-14GIN entry pages follow the standard page layout - tell XLogInsert.Heikki Linnakangas
The entry B-tree pages all follow the standard page layout. The 9.3 code has this right. I inadvertently changed this at some point during the big refactorings in git master.
2014-04-13Improve some O(N^2) behavior in window function evaluation.Tom Lane
Repositioning the tuplestore seek pointer in window_gettupleslot() turns out to be a very significant expense when the window frame is sizable and the frame end can move. To fix, introduce a tuplestore function for skipping an arbitrary number of tuples in one call, parallel to the one we introduced for tuplesort objects in commit 8d65da1f. This reduces the cost of window_gettupleslot() to O(1) if the tuplestore has not spilled to disk. As in the previous commit, I didn't try to do any real optimization of tuplestore_skiptuples for the case where the tuplestore has spilled to disk. There is probably no practical way to get the cost to less than O(N) anyway, but perhaps someone can think of something later. Also fix PersistHoldablePortal() to make use of this API now that we have it. Based on a suggestion by Dean Rasheed, though this turns out not to look much like his patch.
2014-04-13Make a dedicated AlterTblSpcStmt productionStephen Frost
Given that ALTER TABLESPACE has moved on from just existing for general purpose rename/owner changes, it deserves its own top-level production in the grammar. This also cleans up the RenameStmt to only ever be used for actual RENAMEs again- it really wasn't appropriate to hide non-RENAME productions under there. Noted by Alvaro.