1. 26 Nov, 2010 4 commits
  2. 25 Nov, 2010 10 commits
  3. 24 Nov, 2010 3 commits
    • Bruce Momjian's avatar
      Document that a CHECKPOINT before taking a file system snapshot can · 7276ab58
      Bruce Momjian authored
      reduce recovery time.
      7276ab58
    • Bruce Momjian's avatar
      When reporting the server as not responding, if the hostname was · ba11258c
      Bruce Momjian authored
      supplied, also print the IP address.  This allows IPv4 and IPv6 failures
      to be distinguished.  Also useful when a hostname resolves to multiple
      IP addresses.
      
      Also, remove use of inet_ntoa() and use our own inet_net_ntop() in all
      places, including in libpq, because it is thread-safe.
      ba11258c
    • Tom Lane's avatar
      Create the system catalog infrastructure needed for KNNGIST. · 725d52d0
      Tom Lane authored
      This commit adds columns amoppurpose and amopsortfamily to pg_amop, and
      column amcanorderbyop to pg_am.  For the moment all the entries in
      amcanorderbyop are "false", since the underlying support isn't there yet.
      
      Also, extend the CREATE OPERATOR CLASS/ALTER OPERATOR FAMILY commands with
      [ FOR SEARCH | FOR ORDER BY sort_operator_family ] clauses to allow the new
      columns of pg_amop to be populated, and create pg_dump support for dumping
      that information.
      
      I also added some documentation, although it's perhaps a bit premature
      given that the feature doesn't do anything useful yet.
      
      Teodor Sigaev, Robert Haas, Tom Lane
      725d52d0
  4. 23 Nov, 2010 4 commits
  5. 22 Nov, 2010 2 commits
  6. 21 Nov, 2010 2 commits
    • Robert Haas's avatar
    • Robert Haas's avatar
      Add new SQL function, format(text). · 75048707
      Robert Haas authored
      Currently, three conversion format specifiers are supported: %s for a
      string, %L for an SQL literal, and %I for an SQL identifier.  The latter
      two are deliberately designed not to overlap with what sprintf() already
      supports, in case we want to add more of sprintf()'s functionality here
      later.
      
      Patch by Pavel Stehule, heavily revised by me.  Reviewed by Jeff Janes
      and, in earlier versions, by Itagaki Takahiro and Tom Lane.
      75048707
  7. 20 Nov, 2010 8 commits
    • Tom Lane's avatar
      Further cleanup of indxpath logic related to IndexOptInfo.opfamily array. · 89a36841
      Tom Lane authored
      We no longer need the terminating zero entry in opfamily[], so get rid of
      it.  Also replace assorted ad-hoc looping logic with simple for and foreach
      constructs.  This code is now noticeably more readable than it was an hour
      ago; credit to Robert for seeing that it could be simplified.
      89a36841
    • Robert Haas's avatar
      Minor cleanup of indxpath.c. · 99bc012d
      Robert Haas authored
      Eliminate some superfluous notational complexity around
      match_clause_to_indexcol(), and rip out the DoneMatchingIndexKeys
      crock.
      99bc012d
    • Tom Lane's avatar
      Assorted further cleanup for integer-conversion patch. · d1d8462d
      Tom Lane authored
      Avoid depending on LL notation, which is likely to not work in pre-C99
      compilers; don't pointlessly use INT32_MIN/INT64_MIN in code that has
      the numerical value hard-wired into it anyway; remove some gratuitous
      style inconsistencies between pg_ltoa and pg_lltoa; fix int2 test case
      so it actually tests int2.
      d1d8462d
    • Robert Haas's avatar
      Expose quote_literal_cstr() from core. · 4343c0e5
      Robert Haas authored
      This eliminates the need for inefficient implementions of this
      functionality in both contrib/dblink and contrib/tablefunc, so remove
      them.  The upcoming patch implementing an in-core format() function
      will also require this functionality.
      
      In passing, add some regression tests.
      4343c0e5
    • Robert Haas's avatar
    • Robert Haas's avatar
      Attempt to fix breakage caused by signed integer conversion patch. · 815810ed
      Robert Haas authored
      Use INT_MIN rather than INT32_MIN as we do elsewhere in the code, and
      try to work around nonexistence of INT64_MIN if necessary.  Adjust the
      new regression tests to something hopefully saner, per observation by
      Tom Lane.
      815810ed
    • Tom Lane's avatar
      Fix leakage of cost_limit when multiple autovacuum workers are active. · b58c2505
      Tom Lane authored
      When using default autovacuum_vac_cost_limit, autovac_balance_cost relied
      on VacuumCostLimit to contain the correct global value ... but after the
      first time through in a particular worker process, it didn't, because we'd
      trashed it in previous iterations.  Depending on the state of other autovac
      workers, this could result in a steady reduction of the effective
      cost_limit setting as a particular worker processed more and more tables,
      causing it to go slower and slower.  Spotted by Simon Poole (bug #5759).
      Fix by saving and restoring the GUC variables in the loop in do_autovacuum.
      
      In passing, improve a few comments.
      
      Back-patch to 8.3 ... the cost rebalancing code has been buggy since it was
      put in.
      b58c2505
    • Robert Haas's avatar
      Speed up conversion of signed integers to C strings. · 4fc115b2
      Robert Haas authored
      A hand-coded implementation turns out to be much faster than calling
      printf().  In passing, add a few more regresion tests.
      
      Andres Freund, with assorted, mostly cosmetic changes.
      4fc115b2
  8. 19 Nov, 2010 1 commit
    • Tom Lane's avatar
      Improve relation width estimation for subqueries. · 0f61d4dd
      Tom Lane authored
      As per the ancient comment for set_rel_width, it really wasn't much good
      for relations that aren't plain tables: it would never find any stats and
      would always fall back on datatype-based estimates, which are often pretty
      silly.  Fix that by copying up width estimates from the subquery planning
      process.
      
      At some point we might want to do this for CTEs too, but that would be a
      significantly more invasive patch because the sub-PlannerInfo is no longer
      accessible by the time it's needed.  I refrained from doing anything about
      that, partly for fear of breaking the unmerged CTE-related patches.
      
      In passing, also generate less bogus width estimates for whole-row Vars.
      
      Per a gripe from Jon Nelson.
      0f61d4dd
  9. 18 Nov, 2010 6 commits
    • Tom Lane's avatar
      Improve plpgsql's error reporting for no-such-column cases. · fe24d781
      Tom Lane authored
      Given a column reference foo.bar, where there is a composite plpgsql
      variable foo but it doesn't contain a column bar, the pre-9.0 coding would
      immediately throw a "record foo has no field bar" error.  In 9.0 the parser
      hook instead falls through to let the core parser see if it can resolve the
      reference.  If not, you get a complaint about "missing FROM-clause entry
      for table foo", which while in some sense correct isn't terribly helpful.
      Complicate things a bit so that we can throw the old error message if
      neither the core parser nor the hook are able to resolve the column
      reference, while not changing the behavior in any other case.
      Per bug #5757 from Andrey Galkin.
      fe24d781
    • Alvaro Herrera's avatar
      Add pg_describe_object function · 6cc2deb8
      Alvaro Herrera authored
      This function is useful to obtain textual descriptions of objects as
      stored in pg_depend.
      6cc2deb8
    • Tom Lane's avatar
      Dept of second thoughts: don't try to push LIMIT below a SRF. · 48c348f8
      Tom Lane authored
      If we have Limit->Result->Sort, the Result might be projecting a tlist
      that contains a set-returning function.  If so, it's possible for the
      SRF to sometimes return zero rows, which means we could need to fetch
      more than N rows from the Sort in order to satisfy LIMIT N.
      So top-N sorting cannot be used in this scenario.
      48c348f8
    • Robert Haas's avatar
      Minor corrections to dummy_seclabel documentation. · 1fc2d60d
      Robert Haas authored
      Problems noted by Thom Brown.
      1fc2d60d
    • Heikki Linnakangas's avatar
      ecf70b91
    • Tom Lane's avatar
      Further fallout from the MergeAppend patch. · 6fbc323c
      Tom Lane authored
      Fix things so that top-N sorting can be used in child Sort nodes of a
      MergeAppend node, when there is a LIMIT and no intervening joins or
      grouping.  Actually doing this on the executor side isn't too bad,
      but it's a bit messier to get the planner to cost it properly.
      Per gripe from Robert Haas.
      
      In passing, fix an oversight in the original top-N-sorting patch:
      query_planner should not assume that a LIMIT can be used to make an
      explicit sort cheaper when there will be grouping or aggregation in
      between.  Possibly this should be back-patched, but I'm not sure the
      mistake is serious enough to be a real problem in practice.
      6fbc323c