1. 08 Mar, 2013 1 commit
  2. 07 Mar, 2013 7 commits
  3. 06 Mar, 2013 7 commits
  4. 05 Mar, 2013 2 commits
    • Tom Lane's avatar
      Fix to_char() to use ASCII-only case-folding rules where appropriate. · 80b011ef
      Tom Lane authored
      formatting.c used locale-dependent case folding rules in some code paths
      where the result isn't supposed to be locale-dependent, for example
      to_char(timestamp, 'DAY').  Since the source data is always just ASCII
      in these cases, that usually didn't matter ... but it does matter in
      Turkish locales, which have unusual treatment of "i" and "I".  To confuse
      matters even more, the misbehavior was only visible in UTF8 encoding,
      because in single-byte encodings we used pg_toupper/pg_tolower which
      don't have locale-specific behavior for ASCII characters.  Fix by providing
      intentionally ASCII-only case-folding functions and using these where
      appropriate.  Per bug #7913 from Adnan Dursun.  Back-patch to all active
      branches, since it's been like this for a long time.
      80b011ef
    • Kevin Grittner's avatar
  5. 04 Mar, 2013 6 commits
    • Tom Lane's avatar
      Fix overflow check in tm2timestamp (this time for sure). · 542eeba2
      Tom Lane authored
      I fixed this code back in commit 841b4a2d, but didn't think carefully
      enough about the behavior near zero, which meant it improperly rejected
      1999-12-31 24:00:00.  Per report from Magnus Hagander.
      542eeba2
    • Peter Eisentraut's avatar
      psql: Let \l accept a pattern · 0ea1f6e9
      Peter Eisentraut authored
      reviewed by Satoshi Nagayasu
      0ea1f6e9
    • Kevin Grittner's avatar
      Remove accidentally-committed .orig file. · 54d6706d
      Kevin Grittner authored
      54d6706d
    • Tom Lane's avatar
      Fix map_sql_value_to_xml_value() to treat domains like their base types. · bc618786
      Tom Lane authored
      This was already the case for domains over arrays, but not for domains
      over certain built-in types such as boolean.  The special formatting
      rules for those types should apply to domains over them as well.
      Per discussion.
      
      While this is a bug fix, it's also a behavioral change that seems likely
      to trip up some applications.  So no back-patch.
      
      Pavel Stehule
      bc618786
    • Kevin Grittner's avatar
      Add a materialized view relations. · 3bf3ab8c
      Kevin Grittner authored
      A materialized view has a rule just like a view and a heap and
      other physical properties like a table.  The rule is only used to
      populate the table, references in queries refer to the
      materialized data.
      
      This is a minimal implementation, but should still be useful in
      many cases.  Currently data is only populated "on demand" by the
      CREATE MATERIALIZED VIEW and REFRESH MATERIALIZED VIEW statements.
      It is expected that future releases will add incremental updates
      with various timings, and that a more refined concept of defining
      what is "fresh" data will be developed.  At some point it may even
      be possible to have queries use a materialized in place of
      references to underlying tables, but that requires the other
      above-mentioned features to be working first.
      
      Much of the documentation work by Robert Haas.
      Review by Noah Misch, Thom Brown, Robert Haas, Marko Tiikkaja
      Security review by KaiGai Kohei, with a decision on how best to
      implement sepgsql still pending.
      3bf3ab8c
    • Tom Lane's avatar
      Get rid of any toast table when converting a table to a view. · b15a6da2
      Tom Lane authored
      Also make sure other fields of the view's pg_class entry are appropriate
      for a view; it shouldn't have relfrozenxid set for instance.
      
      This ancient omission isn't believed to have any serious consequences in
      versions 8.4-9.2, so no backpatch.  But let's fix it before it does bite
      us in some serious way.  It's just luck that the case doesn't cause
      problems for autovacuum.  (It did cause problems in 8.3, but that's out
      of support.)
      
      Andres Freund
      b15a6da2
  6. 03 Mar, 2013 3 commits
    • Tom Lane's avatar
      Fix SQL function execution to be safe with long-lived FmgrInfos. · 2b78d101
      Tom Lane authored
      fmgr_sql had been designed on the assumption that the FmgrInfo it's called
      with has only query lifespan.  This is demonstrably unsafe in connection
      with range types, as shown in bug #7881 from Andrew Gierth.  Fix things
      so that we re-generate the function's cache data if the (sub)transaction
      it was made in is no longer active.
      
      Back-patch to 9.2.  This might be needed further back, but it's not clear
      whether the case can realistically arise without range types, so for now
      I'll desist from back-patching further.
      2b78d101
    • Peter Eisentraut's avatar
      doc: Small tweak for consistency · 891869c3
      Peter Eisentraut authored
      submitted by "Lyle"
      891869c3
    • Peter Eisentraut's avatar
      doc: A few awkward phrasing fixes · 743b73bd
      Peter Eisentraut authored
      Josh Kupershmidt
      743b73bd
  7. 02 Mar, 2013 2 commits
    • Peter Eisentraut's avatar
      Exclude utils/probes.h and pg_trace.h from cpluspluscheck · 1275b88f
      Peter Eisentraut authored
      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
    • Tom Lane's avatar
      Eliminate memory leaks in plperl's spi_prepare() function. · a4d3a504
      Tom Lane authored
      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
  8. 28 Feb, 2013 2 commits
  9. 27 Feb, 2013 7 commits
    • Heikki Linnakangas's avatar
      Remove spurious "the", and add a missing one. · 7d6b8f71
      Heikki Linnakangas authored
      Thom Brown and me.
      7d6b8f71
    • Heikki Linnakangas's avatar
      Fix MSVC build. · f70b1b27
      Heikki Linnakangas authored
      The new file in src/port needs to be listed in Mkvcbuild.pm as well.
      f70b1b27
    • Heikki Linnakangas's avatar
      Fix typo in "pg_xlogdump --help" and error message. · 26b45dc5
      Heikki Linnakangas authored
      Fujii Masao and me.
      26b45dc5
    • Heikki Linnakangas's avatar
      Cannot use WL_SOCKET_WRITEABLE without WL_SOCKET_READABLE. · 3a9e64aa
      Heikki Linnakangas authored
      In copy-out mode, the frontend should not send any messages until the
      backend has finished streaming, by sending a CopyDone message. I'm not sure
      if it would be legal for the client to send a new query before receiving the
      CopyDone message from the backend, but trying to support that would require
      bigger changes to the backend code structure.
      
      Fixes an assertion failure reported by Fujii Masao.
      3a9e64aa
    • Heikki Linnakangas's avatar
      5ddf38f2
    • Heikki Linnakangas's avatar
      Add support for piping COPY to/from an external program. · 3d009e45
      Heikki Linnakangas authored
      This includes backend "COPY TO/FROM PROGRAM '...'" syntax, and corresponding
      psql \copy syntax. Like with reading/writing files, the backend version is
      superuser-only, and in the psql version, the program is run in the client.
      
      In the passing, the psql \copy STDIN/STDOUT syntax is subtly changed: if you
      the stdin/stdout is quoted, it's now interpreted as a filename. For example,
      "\copy foo from 'stdin'" now reads from a file called 'stdin', not from
      standard input. Before this, there was no way to specify a filename called
      stdin, stdout, pstdin or pstdout.
      
      This creates a new function in pgport, wait_result_to_str(), which can
      be used to convert the exit status of a process, as returned by wait(3),
      to a human-readable string.
      
      Etsuro Fujita, reviewed by Amit Kapila.
      3d009e45
    • Tom Lane's avatar
      Add missing error check in regexp parser. · 73dc003b
      Tom Lane authored
      parseqatom() failed to check for an error return (NULL result) from its
      recursive call to parsebranch(), and in consequence could crash with a
      null-pointer dereference after an error return.  This bug has been there
      since day one, but wasn't noticed before, probably because most error cases
      in parsebranch() didn't actually lead to returning NULL.  Add the missing
      error check, and also tweak parsebranch() to exit in a less indirect
      fashion after a call to parseqatom() fails.
      
      Report by Tomasz Karlik, fix by me.
      73dc003b
  10. 26 Feb, 2013 3 commits