1. 27 Aug, 2012 4 commits
    • Heikki Linnakangas's avatar
      Collect and use histograms of lower and upper bounds for range types. · 918eee0c
      Heikki Linnakangas authored
      This enables selectivity estimation of the <<, >>, &<, &> and && operators,
      as well as the normal inequality operators: <, <=, >=, >. "range @> element"
      is also supported, but the range-variant @> and <@ operators are not,
      because they cannot be sensibly estimated with lower and upper bound
      histograms alone. We would need to make some assumption about the lengths of
      the ranges for that. Alexander's patch included a separate histogram of
      lengths for that, but I left that out of the patch for simplicity. Hopefully
      that will be added as a followup patch.
      
      The fraction of empty ranges is also calculated and used in estimation.
      
      Alexander Korotkov, heavily modified by me.
      918eee0c
    • Peter Eisentraut's avatar
      pg_basebackup: Correct error message · 6bb0b08f
      Peter Eisentraut authored
      It still thought that the --xlog-method option argument could be
      empty, as in a previous version of this feature.
      6bb0b08f
    • Bruce Momjian's avatar
      Update FreeBSD kernel configuration documentation. · 7a42dff4
      Bruce Momjian authored
      Brad Davis
      7a42dff4
    • Tom Lane's avatar
      Fix up planner infrastructure to support LATERAL properly. · 9ff79b9d
      Tom Lane authored
      This patch takes care of a number of problems having to do with failure
      to choose valid join orders and incorrect handling of lateral references
      pulled up from subqueries.  Notable changes:
      
      * Add a LateralJoinInfo data structure similar to SpecialJoinInfo, to
      represent join ordering constraints created by lateral references.
      (I first considered extending the SpecialJoinInfo structure, but the
      semantics are different enough that a separate data structure seems
      better.)  Extend join_is_legal() and related functions to prevent trying
      to form unworkable joins, and to ensure that we will consider joins that
      satisfy lateral references even if the joins would be clauseless.
      
      * Fill in the infrastructure needed for the last few types of relation scan
      paths to support parameterization.  We'd have wanted this eventually
      anyway, but it is necessary now because a relation that gets pulled up out
      of a UNION ALL subquery may acquire a reltargetlist containing lateral
      references, meaning that its paths *have* to be parameterized whether or
      not we have any code that can push join quals down into the scan.
      
      * Compute data about lateral references early in query_planner(), and save
      in RelOptInfo nodes, to avoid repetitive calculations later.
      
      * Assorted corner-case bug fixes.
      
      There's probably still some bugs left, but this is a lot closer to being
      real than it was before.
      9ff79b9d
  2. 26 Aug, 2012 2 commits
  3. 25 Aug, 2012 4 commits
  4. 24 Aug, 2012 3 commits
    • Tom Lane's avatar
      Fix issues with checks for unsupported transaction states in Hot Standby. · 7abaa6b9
      Tom Lane authored
      The GUC check hooks for transaction_read_only and transaction_isolation
      tried to check RecoveryInProgress(), so as to disallow setting read/write
      mode or serializable isolation level (respectively) in hot standby
      sessions.  However, GUC check hooks can be called in many situations where
      we're not connected to shared memory at all, resulting in a crash in
      RecoveryInProgress().  Among other cases, this results in EXEC_BACKEND
      builds crashing during child process start if default_transaction_isolation
      is serializable, as reported by Heikki Linnakangas.  Protect those calls
      by silently allowing any setting when not inside a transaction; which is
      okay anyway since these GUCs are always reset at start of transaction.
      
      Also, add a check to GetSerializableTransactionSnapshot() to complain
      if we are in hot standby.  We need that check despite the one in
      check_XactIsoLevel() because default_transaction_isolation could be
      serializable.  We don't want to complain any sooner than this in such
      cases, since that would prevent running transactions at all in such a
      state; but a transaction can be run, if SET TRANSACTION ISOLATION is done
      before setting a snapshot.  Per report some months ago from Robert Haas.
      
      Back-patch to 9.1, since these problems were introduced by the SSI patch.
      
      Kevin Grittner and Tom Lane, with ideas from Heikki Linnakangas
      7abaa6b9
    • Peter Eisentraut's avatar
    • Peter Eisentraut's avatar
      libpq: Fix memory leak in URI parser · 4faf074a
      Peter Eisentraut authored
      When an invalid query parameter is reported, some memory leaks.
      
      found by Coverity
      4faf074a
  5. 23 Aug, 2012 5 commits
  6. 22 Aug, 2012 8 commits
  7. 21 Aug, 2012 6 commits
    • Tom Lane's avatar
      Avoid somewhat-theoretical overflow risks in RecordIsValid(). · 10685ec0
      Tom Lane authored
      This improves on commit 51fed14d by
      eliminating the assumption that we can form <some pointer value> +
      <some offset> without overflow.  The entire point of those tests is that
      we don't trust the offset value, so coding them in a way that could wrap
      around if the buffer happens to be near the top of memory doesn't seem
      sound.  Instead, track the remaining space as a size_t variable and
      compare offsets against that.
      
      Also, improve comment about why we need the extra early check on
      xl_tot_len.
      10685ec0
    • Tom Lane's avatar
      Fix dumping of security_barrier views with circular dependencies. · 0f524ea0
      Tom Lane authored
      If a view has circular dependencies, pg_dump splits it into a CREATE TABLE
      and a CREATE RULE command to break the dependency loop.  However, if the
      view has reloptions, those options cannot be applied in the CREATE TABLE
      command, because views and tables have different allowed reloptions so
      CREATE TABLE would reject them.  Instead apply the reloptions after the
      CREATE RULE, using ALTER VIEW SET.
      0f524ea0
    • Robert Haas's avatar
      Improve C comments in GetSnapshotData. · 4b373e42
      Robert Haas authored
      Move discussion of why our algorithm for taking snapshots in recovery
      to a more appropriate location in the function, and delete incorrect
      mention of taking a lock.
      4b373e42
    • Robert Haas's avatar
      Add a note to the MVCC chapter that some things aren't transactional. · 82ef3d30
      Robert Haas authored
      Craig Ringer, slightly edited by me.
      82ef3d30
    • Peter Eisentraut's avatar
      Teach compiler that ereport(>=ERROR) does not return · 71450d7f
      Peter Eisentraut authored
      When elevel >= ERROR, we add an abort() call to the ereport() macro to
      give the compiler a hint that the ereport() expansion will not return,
      but the abort() isn't actually reached because the longjmp happens in
      errfinish().
      
      Because the effect of ereport() varies with the elevel, we cannot use
      standard compiler attributes such as noreturn for this.
      71450d7f
    • Peter Eisentraut's avatar
      ffdd5a0e
  8. 20 Aug, 2012 5 commits
  9. 19 Aug, 2012 2 commits
  10. 18 Aug, 2012 1 commit