1. 15 3月, 2013 3 次提交
    • H
      Also update psqlscan.l with the UESCAPE error rule changes. · f7559c01
      Heikki Linnakangas 提交于
      Even though this patch had no user-visible difference, better keep the code
      in psqlscan.l sync with the backend lexer. And of course it's nice to shrink
      the psql binary, too. Ecpg's version of the lexer doesn't have the error
      rule, it doesn't try to avoid backing up, so it doesn't need to be modified.
      
      As reminded by Tom Lane
      f7559c01
    • T
      Avoid inserting Result nodes that only compute identity projections. · 4387cf95
      Tom Lane 提交于
      The planner sometimes inserts Result nodes to perform column projections
      (ie, arbitrary scalar calculations) above plan nodes that lack projection
      logic of their own.  However, we did that even if the lower plan node was
      in fact producing the required column set already; which is a pretty common
      case given the popularity of "SELECT * FROM ...".  Measurements show that
      the useless plan node adds non-negligible overhead, especially when there
      are many columns in the result.  So add a check to avoid inserting a Result
      node unless there's something useful for it to do.
      
      There are a couple of remaining places where unnecessary Result nodes
      could get inserted, but they are (a) much less performance-critical,
      and (b) coded in such a way that it's hard to avoid inserting a Result,
      because the desired tlist is changed on-the-fly in subsequent logic.
      We'll leave those alone for now.
      
      Kyotaro Horiguchi; reviewed and further hacked on by Amit Kapila and
      Tom Lane.
      4387cf95
    • H
      Change the way UESCAPE is lexed, to reduce the size of the flex tables. · a5ff502f
      Heikki Linnakangas 提交于
      The error rule used to avoid backtracking with the U&'...' UESCAPE 'x'
      syntax bloated the flex tables, so refactor that. This patch makes the error
      rule shorter, by introducing a new exclusive flex state that's entered after
      parsing U&'...'. This shrinks the postgres binary by about 220kB.
      a5ff502f
  2. 14 3月, 2013 3 次提交
  3. 13 3月, 2013 1 次提交
    • T
      Allow default expressions to be attached to columns of foreign tables. · a0c6dfee
      Tom Lane 提交于
      There's still some discussion about exactly how postgres_fdw ought to
      handle this case, but there seems no debate that we want to allow defaults
      to be used for inserts into foreign tables.  So remove the core-code
      restrictions that prevented it.
      
      While at it, get rid of the special grammar productions for CREATE FOREIGN
      TABLE, and instead add explicit FEATURE_NOT_SUPPORTED error checks for the
      disallowed cases.  This makes the grammar a shade smaller, and more
      importantly results in much more intelligible error messages for
      unsupported cases.  It's also one less thing to fix if we ever start
      supporting constraints on foreign tables.
      a0c6dfee
  4. 12 3月, 2013 1 次提交
    • T
      Fix thinko in matview patch. · 41eef0ff
      Tom Lane 提交于
      "break" instead of "continue" suppressed view expansion for views appearing
      later in the range table.  Per report from Erikjan Rijkers.
      
      While at it, improve the associated comment a bit.
      41eef0ff
  5. 11 3月, 2013 4 次提交
    • A
      JSON generation improvements. · 38fb4d97
      Andrew Dunstan 提交于
      This adds the following:
      
          json_agg(anyrecord) -> json
          to_json(any) -> json
          hstore_to_json(hstore) -> json (also used as a cast)
          hstore_to_json_loose(hstore) -> json
      
      The last provides heuristic treatment of numbers and booleans.
      
      Also, in json generation, if any non-builtin type has a cast to json,
      that function is used instead of the type's output function.
      
      Andrew Dunstan, reviewed by Steve Singer.
      
      Catalog version bumped.
      38fb4d97
    • P
      31531325
    • P
      74e629cb
    • T
      Support writable foreign tables. · 21734d2f
      Tom Lane 提交于
      This patch adds the core-system infrastructure needed to support updates
      on foreign tables, and extends contrib/postgres_fdw to allow updates
      against remote Postgres servers.  There's still a great deal of room for
      improvement in optimization of remote updates, but at least there's basic
      functionality there now.
      
      KaiGai Kohei, reviewed by Alexander Korotkov and Laurenz Albe, and rather
      heavily revised by Tom Lane.
      21734d2f
  6. 10 3月, 2013 1 次提交
    • M
      Report pg_hba line number and contents when users fail to log in · 7f49a67f
      Magnus Hagander 提交于
      Instead of just reporting which user failed to log in, log both the
      line number in the active pg_hba.conf file (which may not match reality
      in case the file has been edited and not reloaded) and the contents of
      the matching line (which will always be correct), to make it easier
      to debug incorrect pg_hba.conf files.
      
      The message to the client remains unchanged and does not include this
      information, to prevent leaking security sensitive information.
      
      Reviewed by Tom Lane and Dean Rasheed
      7f49a67f
  7. 08 3月, 2013 4 次提交
  8. 07 3月, 2013 7 次提交
  9. 06 3月, 2013 5 次提交
    • K
      Fix broken pg_dump for 9.0 and 9.1 caused by the MV patch. · cfa3df3d
      Kevin Grittner 提交于
      Per report and suggestion from Bernd Helmle
      cfa3df3d
    • A
      Fix message typo. · cd340ca8
      Andrew Dunstan 提交于
      cd340ca8
    • P
      pg_ctl: Add comma to message · 71ea7e97
      Peter Eisentraut 提交于
      71ea7e97
    • A
      Remove dependency on the DLL of pythonxx.def file. · 0d147e43
      Andrew Dunstan 提交于
      This confused Cygwin's make because of the colon in the path. The
      DLL isn't likely to change under us so preserving the dependency
      doesn't gain us much, and it's useful to be able to do a native
      Windows build with the Cygwin mingw toolset.
      
      Noah Misch.
      0d147e43
    • T
      Fix to_char() to use ASCII-only case-folding rules where appropriate. · 80b011ef
      Tom Lane 提交于
      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
  10. 05 3月, 2013 2 次提交
  11. 04 3月, 2013 6 次提交
    • P
      psql: Let \l accept a pattern · 0ea1f6e9
      Peter Eisentraut 提交于
      reviewed by Satoshi Nagayasu
      0ea1f6e9
    • K
      Remove accidentally-committed .orig file. · 54d6706d
      Kevin Grittner 提交于
      54d6706d
    • T
      Fix map_sql_value_to_xml_value() to treat domains like their base types. · bc618786
      Tom Lane 提交于
      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
    • K
      Add a materialized view relations. · 3bf3ab8c
      Kevin Grittner 提交于
      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
    • T
      Get rid of any toast table when converting a table to a view. · b15a6da2
      Tom Lane 提交于
      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
    • T
      Fix SQL function execution to be safe with long-lived FmgrInfos. · 2b78d101
      Tom Lane 提交于
      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
  12. 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
  13. 28 2月, 2013 1 次提交