1. 02 3月, 2013 2 次提交
    • P
      Exclude utils/probes.h and pg_trace.h from cpluspluscheck · 1275b88f
      Peter Eisentraut 提交于
      They can include sys/sdt.h from SystemTap, which itself contains C++
      code and so won't compile with a C++ compiler under extern "C" linkage.
      1275b88f
    • T
      Eliminate memory leaks in plperl's spi_prepare() function. · a4d3a504
      Tom Lane 提交于
      Careless use of TopMemoryContext for I/O function data meant that repeated
      use of spi_prepare and spi_freeplan would leak memory at the session level,
      as per report from Christian Schröder.  In addition, spi_prepare
      leaked a lot of transient data within the current plperl function's SPI
      Proc context, which would be a problem for repeated use of spi_prepare
      within a single plperl function call; and it wasn't terribly careful
      about releasing permanent allocations in event of an error, either.
      
      In passing, clean up some copy-and-pasteos in query-lookup error messages.
      
      Alex Hunsaker and Tom Lane
      a4d3a504
  2. 01 3月, 2013 1 次提交
  3. 28 2月, 2013 7 次提交
  4. 27 2月, 2013 5 次提交
  5. 26 2月, 2013 5 次提交
  6. 25 2月, 2013 3 次提交
  7. 24 2月, 2013 3 次提交
  8. 23 2月, 2013 6 次提交
  9. 22 2月, 2013 8 次提交
    • T
      Fix some planning oversights in postgres_fdw. · c0c6acdf
      Tom Lane 提交于
      Include eval costs of local conditions in remote-estimate mode, and don't
      assume the remote eval cost is zero in local-estimate mode.  (The best
      we can do with that at the moment is to assume a seqscan, which may well
      be wildly pessimistic ... but zero won't do at all.)
      
      To get a reasonable local estimate, we need to know the relpages count
      for the remote rel, so improve the ANALYZE code to fetch that rather
      than just setting the foreign table's relpages field to zero.
      c0c6acdf
    • A
      Blind attempt at fixing the non-MSVC Windows builds · af0a4c59
      Alvaro Herrera 提交于
      Apparently, they need -DBUILDING_DLL for the Assert() declarations to
      work correctly.
      af0a4c59
    • T
      Fix whole-row references in postgres_fdw. · 6da378db
      Tom Lane 提交于
      The optimization to not retrieve unnecessary columns wasn't smart enough.
      Noted by Thom Brown.
      6da378db
    • T
      Change postgres_fdw to show casts as casts, not underlying function calls. · 211e157a
      Tom Lane 提交于
      On reflection this method seems to be exposing an unreasonable amount of
      implementation detail.  It wouldn't matter when talking to a remote server
      of the identical Postgres version, but it seems likely to make things worse
      not better if the remote is a different version with different casting
      infrastructure.  Instead adopt ruleutils.c's policy of regurgitating the
      cast as it was originally specified; including not showing it at all, if
      it was implicit to start with.  (We must do that because for some datatypes
      explicit and implicit casts have different semantics.)
      211e157a
    • T
      Get rid of postgres_fdw's assumption that remote type OIDs match ours. · 5fd386bb
      Tom Lane 提交于
      The only place we depended on that was in sending numeric type OIDs in
      PQexecParams; but we can replace that usage with explicitly casting
      each Param symbol in the query string, so that the types are specified
      to the remote by name not OID.  This makes no immediate difference but
      will be essential if we ever hope to support use of non-builtin types.
      5fd386bb
    • H
      Fix thinko in previous commit. · 6c4f6664
      Heikki Linnakangas 提交于
      We must still initialize minRecoveryPoint if we start straight with archive
      recovery, e.g when recovering from a normal base backup taken with
      pg_start/stop_backup. Otherwise we never consider the system consistent.
      6c4f6664
    • T
      Adjust postgres_fdw's search path handling. · 6d060494
      Tom Lane 提交于
      Set the remote session's search path to exactly "pg_catalog" at session
      start, then schema-qualify only names that aren't in that schema.  This
      greatly reduces clutter in the generated SQL commands, as seen in the
      regression test changes.  Per discussion.
      
      Also, rethink use of FirstNormalObjectId as the "built-in object" cutoff
      --- FirstBootstrapObjectId is safer, since the former will accept
      objects in information_schema for instance.
      6d060494
    • H
      If recovery.conf is created after "pg_ctl stop -m i", do crash recovery. · abf5c5c9
      Heikki Linnakangas 提交于
      If you create a base backup using an atomic filesystem snapshot, and try to
      perform PITR starting from that base backup, or if you just kill a master
      server and create recovery.conf to put it into standby mode, we don't know
      how far we need to recover before reaching consistency. Normally in crash
      recovery, we replay all the WAL present in pg_xlog, and assume that we're
      consistent after that. And normally in archive recovery, minRecoveryPoint,
      backupEndRequired, or backupEndPoint is set in the control file, indicating
      how far we need to replay to reach consistency. But if the server was
      previously up and running normally, and you kill -9 it or take an atomic
      filesystem snapshot, none of those fields are set in the control file.
      
      The solution is to perform crash recovery first, replaying all the WAL in
      pg_xlog. After that's done, we assume that the system is consistent like in
      normal crash recovery, and switch to archive recovery mode after that.
      
      Per report from Kyotaro HORIGUCHI. In his scenario, recovery.conf was
      created after "pg_ctl stop -m i". I'm not sure we need to support that exact
      scenario, but we should support backing up using a filesystem snapshot,
      which looks identical.
      
      This issue goes back to at least 9.0, where hot standby was introduced and
      we started to track when consistency is reached. In 9.1 and 9.2, we would
      open up for hot standby too early, and queries could briefly see an
      inconsistent state. But 9.2 made it more visible, as we started to PANIC if
      we see a reference to a non-existing page during recovery, if we've already
      reached consistency. This is a fairly big patch, so back-patch to 9.2 only,
      where the issue is more visible. We can consider back-patching further after
      this has received some more testing in 9.2 and master.
      abf5c5c9