1. 15 2月, 2014 9 次提交
  2. 14 2月, 2014 8 次提交
    • H
      Change the order that pg_xlog and WAL archive are polled for WAL segments. · 4d894b41
      Heikki Linnakangas 提交于
      If there is a WAL segment with same ID but different TLI present in both
      the WAL archive and pg_xlog, prefer the one with higher TLI. Before this
      patch, the archive was polled first, for all expected TLIs, and only if no
      file was found was pg_xlog scanned. This was a change in behavior from 9.3,
      which first scanned archive and pg_xlog for the highest TLI, then archive
      and pg_xlog for the next highest TLI and so forth. This patch reverts the
      behavior back to what it was in 9.2.
      
      The reason for this is that if for example you try to do archive recovery
      to timeline 2, which branched off timeline 1, but the WAL for timeline 2 is
      not archived yet, we would replay past the timeline switch point on
      timeline 1 using the archived files, before even looking timeline 2's files
      in pg_xlog
      
      Report and patch by Kyotaro Horiguchi. Backpatch to 9.3 where the behavior
      was changed.
      4d894b41
    • P
      Fix typo · 0f2ca007
      Peter Eisentraut 提交于
      Stefan Kaltenbrunner
      0f2ca007
    • B
      9c57d11f
    • T
      Clean up error cases in psql's COPY TO STDOUT/FROM STDIN code. · b8f00a46
      Tom Lane 提交于
      Adjust handleCopyOut() to stop trying to write data once it's failed
      one time.  For typical cases such as out-of-disk-space or broken-pipe,
      additional attempts aren't going to do anything but waste time, and
      in any case clean truncation of the output seems like a better behavior
      than randomly dropping blocks in the middle.
      
      Also remove dubious (and misleadingly documented) attempt to force our way
      out of COPY_OUT state if libpq didn't do that.  If we did have a situation
      like that, it'd be a bug in libpq and would be better fixed there, IMO.
      We can hope that commit fa4440f5 took care
      of any such problems, anyway.
      
      Also fix longstanding bug in handleCopyIn(): PQputCopyEnd() only supports
      a non-null errormsg parameter in protocol version 3, and will actively
      fail if one is passed in version 2.  This would've made our attempts
      to get out of COPY_IN state after a failure into infinite loops when
      talking to pre-7.4 servers.
      
      Back-patch the COPY_OUT state change business back to 9.2 where it was
      introduced, and the other two fixes into all supported branches.
      b8f00a46
    • A
      Separate multixact freezing parameters from xid's · 801c2dc7
      Alvaro Herrera 提交于
      Previously we were piggybacking on transaction ID parameters to freeze
      multixacts; but since there isn't necessarily any relationship between
      rates of Xid and multixact consumption, this turns out not to be a good
      idea.
      
      Therefore, we now have multixact-specific freezing parameters:
      
      vacuum_multixact_freeze_min_age: when to remove multis as we come across
      them in vacuum (default to 5 million, i.e. early in comparison to Xid's
      default of 50 million)
      
      vacuum_multixact_freeze_table_age: when to force whole-table scans
      instead of scanning only the pages marked as not all visible in
      visibility map (default to 150 million, same as for Xids).  Whichever of
      both which reaches the 150 million mark earlier will cause a whole-table
      scan.
      
      autovacuum_multixact_freeze_max_age: when for cause emergency,
      uninterruptible whole-table scans (default to 400 million, double as
      that for Xids).  This means there shouldn't be more frequent emergency
      vacuuming than previously, unless multixacts are being used very
      rapidly.
      
      Backpatch to 9.3 where multixacts were made to persist enough to require
      freezing.  To avoid an ABI break in 9.3, VacuumStmt has a couple of
      fields in an unnatural place, and StdRdOptions is split in two so that
      the newly added fields can go at the end.
      
      Patch by me, reviewed by Robert Haas, with additional input from Andres
      Freund and Tom Lane.
      801c2dc7
    • B
      docs: improve CREATE FUNCTION docs about language case and quoting · de4b6558
      Bruce Momjian 提交于
      Report from Marc Mamin
      de4b6558
    • B
      pgcrypto: clarify 'md5' (hash) table entry · 474cb24d
      Bruce Momjian 提交于
      Per suggestion from Peter Eisentraut
      474cb24d
    • T
      Fix length checking for Unicode identifiers containing escapes (U&"..."). · 44c21633
      Tom Lane 提交于
      We used the length of the input string, not the de-escaped string, as
      the trigger for NAMEDATALEN truncation.  AFAICS this would only result
      in sometimes printing a phony truncation warning; but it's just luck
      that there was no worse problem, since we were violating the API spec
      for truncate_identifier().  Per bug #9204 from Joshua Yanovski.
      
      This has been wrong since the Unicode-identifier support was added,
      so back-patch to all supported branches.
      44c21633
  3. 13 2月, 2014 16 次提交
    • B
      3f735ae8
    • B
      bcec58cf
    • T
      Improve cross-references between minor version release notes. · 4a6f136c
      Tom Lane 提交于
      We have a practice of providing a "bread crumb" trail between the minor
      versions where the migration section actually tells you to do something.
      Historically that was just plain text, eg, "see the release notes for
      9.2.4"; but if you're using a browser or PDF reader, it's a lot nicer
      if it's a live hyperlink.  So use "<xref>" instead.  Any argument against
      doing this vanished with the recent decommissioning of plain-text release
      notes.
      
      Vik Fearing
      4a6f136c
    • T
      Improve text of stub HISTORY file. · dea5a8c4
      Tom Lane 提交于
      Per Peter Eisentraut.
      dea5a8c4
    • T
      Improve libpq's error recovery for connection loss during COPY. · fa4440f5
      Tom Lane 提交于
      In pqSendSome, if the connection is already closed at entry, discard any
      queued output data before returning.  There is no possibility of ever
      sending the data, and anyway this corresponds to what we'd do if we'd
      detected a hard error while trying to send().  This avoids possible
      indefinite bloat of the output buffer if the application keeps trying
      to send data (or even just keeps trying to do PQputCopyEnd, as psql
      indeed will).
      
      Because PQputCopyEnd won't transition out of PGASYNC_COPY_IN state
      until it's successfully queued the COPY END message, and pqPutMsgEnd
      doesn't distinguish a queuing failure from a pqSendSome failure,
      this omission allowed an infinite loop in psql if the connection closure
      occurred when we had at least 8K queued to send.  It might be worth
      refactoring so that we can make that distinction, but for the moment
      the other changes made here seem to offer adequate defenses.
      
      To guard against other variants of this scenario, do not allow
      PQgetResult to return a PGRES_COPY_XXX result if the connection is
      already known dead.  Make sure it returns PGRES_FATAL_ERROR instead.
      
      Per report from Stephen Frost.  Back-patch to all active branches.
      fa4440f5
    • B
      Revert gmake/make release note changes · 993c3961
      Bruce Momjian 提交于
      Backbranch release note changes cause merge conflicts.
      993c3961
    • B
      Rename 'gmake' to 'make' in docs and recommended commands · 2fc80e8e
      Bruce Momjian 提交于
      This simplifies the docs and makes it easier to cut/paste command lines.
      2fc80e8e
    • B
      pg_upgrade: dramatically reduce memory consumption · 2a2e40aa
      Bruce Momjian 提交于
      Report from Jeff Janes
      2a2e40aa
    • B
      pg_test_fsync: add C comment about direct I/O and write size failure · f9bb944c
      Bruce Momjian 提交于
      Report from Marti Raudsepp
      f9bb944c
    • T
      In XLogReadBufferExtended, don't assume P_NEW yields consecutive pages. · 6f2aead1
      Tom Lane 提交于
      In a database that's not yet reached consistency, it's possible that some
      segments of a relation are not full-size but are not the last ones either.
      Because of the way smgrnblocks() works, asking for a new page with P_NEW
      will fill in the last not-full-size segment --- and if that makes it full
      size, the apparent EOF of the relation will increase by more than one page,
      so that the next P_NEW request will yield a page past the next consecutive
      one.  This breaks the relation-extension logic in XLogReadBufferExtended,
      possibly allowing a page update to be applied to some page far past where
      it was intended to go.  This appears to be the explanation for reports of
      table bloat on replication slaves compared to their masters, and probably
      explains some corrupted-slave reports as well.
      
      Fix the loop to check the page number it actually got, rather than merely
      Assert()'ing that dead reckoning got it to the desired place.  AFAICT,
      there are no other places that make assumptions about exactly which page
      they'll get from P_NEW.
      
      Problem identified by Greg Stark, though this is not the same as his
      proposed patch.
      
      It's been like this for a long time, so back-patch to all supported
      branches.
      6f2aead1
    • M
      Add missing include, required on some platforms · 48870dd9
      Magnus Hagander 提交于
      Noted by the buildfarm and Andres Freund
      48870dd9
    • M
      Kill pg_basebackup background process when exiting · 63ab2bef
      Magnus Hagander 提交于
      If an error occurs in the foreground (backup) process of pg_basebackup,
      and we exit in a controlled way, the background process (streaming
      xlog process) would stay around and keep streaming.
      63ab2bef
    • T
      Use --disable-auto-import linker switch in Mingw builds, too. · 1c9acd5c
      Tom Lane 提交于
      This is evidently the default on buildfarm member narwhal, but that
      is a pretty ancient Mingw version, and there is reason to think that
      more recent versions of GNU ld have this feature turned on by default.
      Since we are trying to achieve consistency of link behavior across
      all Windows toolchains, let's just make sure here.
      1c9acd5c
    • T
      Remove --enable-auto-import linker switch in Cygwin build. · 30657b79
      Tom Lane 提交于
      This is expected to make it start failing when contrib modules
      reference non-PGDLLIMPORT'ed global variables, as the other Windows
      build methods do.  Aside from the value of consistency, the underlying
      implementation of this switch is pretty ugly and not really something
      we want to rely on if we have to use PGDLLIMPORT anyway for MSVC.
      30657b79
    • B
      doc: Postgres date-style date-only output is ISO · 8c9db4a5
      Bruce Momjian 提交于
      Backpatch to 9.3
      
      Report from MauMau
      8c9db4a5
    • T
      Tweak position of $(DLL_DEFFILE) in shared-library link commands. · b23fd2d8
      Tom Lane 提交于
      Reading the GNU ld man page suggests that this is order-sensitive
      and should go in front of library references.  Correction to commit
      846e91e0.
      b23fd2d8
  4. 12 2月, 2014 4 次提交
    • T
      Make gendef.pl emit DATA annotations for global variables. · a5eed4d7
      Tom Lane 提交于
      This should make the MSVC build act more like builds for other platforms,
      i.e. backend global variables will be automatically available to loadable
      libraries without need for explicit PGDLLIMPORT marking.
      
      Craig Ringer
      a5eed4d7
    • T
      Flush a stray definition of $(DLLTOOL). · 7a98d323
      Tom Lane 提交于
      Even if this is needed, it'd be configure's responsibility to set it.
      7a98d323
    • T
      Get rid of use of dlltool in Mingw builds. · 846e91e0
      Tom Lane 提交于
      We are almost completely out of the dlltool game, if this works.
      
      Hiroshi Inoue
      846e91e0
    • T
      Cygwin build fixes. · cba6ffae
      Tom Lane 提交于
      Get rid of use of dlltool for linking the main postgres executable.
      dlltool is obsolete and we'd prefer to stop depending on it.
      
      Also, include $(LDAP_LIBS_FE) in $(libpq_pgport).  (It's not clear that
      this is really needed, or why it's not a linker bug if it is needed.
      But reports are that it's needed on current Cygwin.)
      
      We might want to back-patch this if it works, but first let's see
      what the buildfarm thinks.
      
      Marco Atzeri
      cba6ffae
  5. 11 2月, 2014 2 次提交
    • P
      scripts: Remove newlines from end of generated SQL · d3c4c471
      Peter Eisentraut 提交于
      This results in spurious empty lines in the server log.  Instead, add
      the newlines only when printing out the --echo output.  In some cases,
      this was already done, leading to two newlines being printed.  Clean
      that up as well.
      
      From: Fabrízio de Royes Mello <fabriziomello@gmail.com>
      d3c4c471
    • T
      Don't generate plain-text HISTORY and src/test/regress/README anymore. · 28954152
      Tom Lane 提交于
      Providing this information as plain text was doubtless worth the trouble
      ten years ago, but it seems likely that hardly anyone reads it in this
      format anymore.  And the effort required to maintain these files (in the
      form of extra-complex markup rules in the relevant parts of the SGML
      documentation) is significant.  So, let's stop doing that and rely solely
      on the other documentation formats.
      
      Per discussion, the plain-text INSTALL instructions might still be worth
      their keep, so we continue to generate that file.
      
      Rather than remove HISTORY and src/test/regress/README from distribution
      tarballs entirely, replace them with simple stub files that tell the reader
      where to find the relevant documentation.  This is mainly to avoid possibly
      breaking packaging recipes that expect these files to exist.
      
      Back-patch to all supported branches, because simplifying the markup
      requirements for release notes won't help much unless we do it in all
      branches.
      28954152
  6. 10 2月, 2014 1 次提交