1. 16 8月, 2006 1 次提交
    • T
      Add server support for "plugin" libraries that can be used for add-on tasks · abc3120e
      Tom Lane 提交于
      such as debugging and performance measurement.  This consists of two features:
      a table of "rendezvous variables" that allows separately-loaded shared
      libraries to communicate, and a new GUC setting "local_preload_libraries"
      that allows libraries to be loaded into specific sessions without explicit
      cooperation from the client application.  To make local_preload_libraries
      as flexible as possible, we do not restrict its use to superusers; instead,
      it is restricted to load only libraries stored in $libdir/plugins/.  The
      existing LOAD command has also been modified to allow non-superusers to
      LOAD libraries stored in this directory.
      
      This patch also renames the existing GUC variable preload_libraries to
      shared_preload_libraries (after a suggestion by Simon Riggs) and does some
      code refactoring in dfmgr.c to improve clarity.
      
      Korry Douglas, with a little help from Tom Lane.
      abc3120e
  2. 14 8月, 2006 1 次提交
  3. 10 8月, 2006 1 次提交
  4. 08 8月, 2006 1 次提交
    • B
      For protocol-level prepare/bind/execute: · 3716f90c
      Bruce Momjian 提交于
      	o  print user name for all
      	o  print portal name if defined for all
      	o  print query for all
      	o  reduce log_statement header to single keyword
      	o  print bind parameters as DETAIL if text mode
      3716f90c
  5. 06 8月, 2006 1 次提交
  6. 05 8月, 2006 1 次提交
  7. 29 7月, 2006 1 次提交
    • T
      Adjust initialization sequence for timezone_abbreviations so that · 033a477e
      Tom Lane 提交于
      it's handled just about like timezone; in particular, don't try
      to read anything during InitializeGUCOptions.  Should solve current
      startup failure on Windows, and avoid wasted cycles if a nondefault
      setting is specified in postgresql.conf too.  Possibly we need to
      think about a more general solution for handling 'expensive to set'
      GUC options.
      033a477e
  8. 14 7月, 2006 2 次提交
  9. 28 6月, 2006 1 次提交
  10. 21 6月, 2006 1 次提交
    • T
      Remove redundant gettimeofday() calls to the extent practical without · 27c3e3de
      Tom Lane 提交于
      changing semantics too much.  statement_timestamp is now set immediately
      upon receipt of a client command message, and the various places that used
      to do their own gettimeofday() calls to mark command startup are referenced
      to that instead.  I have also made stats_command_string use that same
      value for pg_stat_activity.query_start for both the command itself and
      its eventual replacement by <IDLE> or <idle in transaction>.  There was
      some debate about that, but no argument that seemed convincing enough to
      justify an extra gettimeofday() call.
      27c3e3de
  11. 18 6月, 2006 1 次提交
  12. 11 6月, 2006 1 次提交
    • T
      Fix Assert failure when a fastpath function call is attempted inside an · bf64a379
      Tom Lane 提交于
      already-aborted transaction block.  GetSnapshotData throws an Assert if
      not in a valid transaction; hence we mustn't attempt to set a snapshot
      for the function until after checking for aborted transaction.  This is
      harmless AFAICT if Asserts aren't enabled (GetSnapshotData will compute
      a bogus snapshot, but it doesn't matter since HandleFunctionRequest will
      throw an error shortly anywy).  Hence, not a major bug.
      
      Along the way, add some ability to log fastpath calls when statement
      logging is turned on.  This could probably stand to be improved further,
      but not logging anything is clearly undesirable.
      
      Backpatched as far as 8.0; bug doesn't exist before that.
      bf64a379
  13. 25 4月, 2006 1 次提交
  14. 22 4月, 2006 1 次提交
  15. 18 4月, 2006 1 次提交
    • B
      Document that errors are not output by log_statement (was they were in · 5bd59b9c
      Bruce Momjian 提交于
      8.0), and add as suggestion to use log_min_error_statement for this
      purpose.  I also fixed the code so the first EXECUTE has it's prepare,
      rather than the last which is what was in the current code.  Also remove
      "protocol" prefix for SQL EXECUTE output because it is not accurate.
      
      Backpatch to 8.1.X.
      5bd59b9c
  16. 05 4月, 2006 1 次提交
    • T
      Modify all callers of datatype input and receive functions so that if these · 147d4bf3
      Tom Lane 提交于
      functions are not strict, they will be called (passing a NULL first parameter)
      during any attempt to input a NULL value of their datatype.  Currently, all
      our input functions are strict and so this commit does not change any
      behavior.  However, this will make it possible to build domain input functions
      that centralize checking of domain constraints, thereby closing numerous holes
      in our domain support, as per previous discussion.
      
      While at it, I took the opportunity to introduce convenience functions
      InputFunctionCall, OutputFunctionCall, etc to use in code that calls I/O
      functions.  This eliminates a lot of grotty-looking casts, but the main
      motivation is to make it easier to grep for these places if we ever need
      to touch them again.
      147d4bf3
  17. 15 3月, 2006 1 次提交
    • T
      Improve parser so that we can show an error cursor position for errors · 20ab467d
      Tom Lane 提交于
      during parse analysis, not only errors detected in the flex/bison stages.
      This is per my earlier proposal.  This commit includes all the basic
      infrastructure, but locations are only tracked and reported for errors
      involving column references, function calls, and operators.  More could
      be done later but this seems like a good set to start with.  I've also
      moved the ReportSyntaxErrorPosition logic out of psql and into libpq,
      which should make it available to more people --- even within psql this
      is an improvement because warnings weren't handled by ReportSyntaxErrorPosition.
      20ab467d
  18. 05 3月, 2006 1 次提交
  19. 17 2月, 2006 1 次提交
  20. 18 1月, 2006 1 次提交
    • N
      Add a new system view, pg_cursors, that displays the currently available · 33e06ebc
      Neil Conway 提交于
      cursors. Patch from Joachim Wieland, review and ediorialization by Neil
      Conway. The view lists cursors defined by DECLARE CURSOR, using SPI, or
      via the Bind message of the frontend/backend protocol. This means the
      view does not list the unnamed portal or the portal created to implement
      EXECUTE. Because we do list SPI portals, there might be more rows in
      this view than you might expect if you are using SPI implicitly (e.g.
      via a procedural language).
      
      Per recent discussion on -hackers, the query string included in the
      view for cursors defined by DECLARE CURSOR is based on
      debug_query_string. That means it is not accurate if multiple queries
      separated by semicolons are submitted as one query string. However,
      there doesn't seem a trivial fix for that: debug_query_string
      is better than nothing. I also changed SPI_cursor_open() to include
      the source text for the portal it creates: AFAICS there is no reason
      not to do this.
      
      Update the documentation and regression tests, bump the catversion.
      33e06ebc
  21. 08 1月, 2006 1 次提交
    • N
      Add a new system view, pg_prepared_statements, that can be used to · 44b928e8
      Neil Conway 提交于
      access information about the prepared statements that are available
      in the current session. Original patch from Joachim Wieland, various
      improvements by Neil Conway.
      
      The "statement" column of the view contains the literal query string
      sent by the client, without any rewriting or pretty printing. This
      means that prepared statements created via SQL will be prefixed with
      "PREPARE ... AS ", whereas those prepared via the FE/BE protocol will
      not. That is unfortunate, but discussion on -patches did not yield an
      efficient way to improve this, and there is some merit in returning
      exactly what the client sent to the backend.
      
      Catalog version bumped, regression tests updated.
      44b928e8
  22. 05 1月, 2006 3 次提交
  23. 01 1月, 2006 1 次提交
  24. 31 12月, 2005 2 次提交
  25. 15 12月, 2005 1 次提交
  26. 23 11月, 2005 1 次提交
  27. 10 11月, 2005 1 次提交
    • T
      When in transaction-aborted state, reject Bind message for portals containing · da4e00bf
      Tom Lane 提交于
      anything but transaction-exiting commands (ROLLBACK etc).  We already rejected
      Parse and Execute in such cases, so there seems little point in allowing Bind.
      This prevents at least an Assert failure, and probably worse things, since
      there's a lot of infrastructure that doesn't work when not in a live
      transaction.  We can also simplify the Bind logic a bit by rejecting messages
      with a nonzero number of parameters, instead of the former kluge to silently
      substitute NULL for each parameter.  Per bug #2033 from Joel Stevenson.
      da4e00bf
  28. 04 11月, 2005 1 次提交
  29. 21 10月, 2005 1 次提交
  30. 15 10月, 2005 1 次提交
  31. 14 10月, 2005 1 次提交
  32. 06 10月, 2005 1 次提交
  33. 26 9月, 2005 1 次提交
  34. 25 9月, 2005 1 次提交
  35. 22 9月, 2005 1 次提交
  36. 20 9月, 2005 1 次提交