Skip to content
Snippets Groups Projects
  1. Jul 13, 2006
  2. Jun 28, 2006
  3. Jun 21, 2006
    • Tom Lane's avatar
      Remove redundant gettimeofday() calls to the extent practical without · 27c3e3de
      Tom Lane authored
      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
  4. Jun 18, 2006
  5. Jun 11, 2006
    • Tom Lane's avatar
      Fix Assert failure when a fastpath function call is attempted inside an · bf64a379
      Tom Lane authored
      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
  6. Apr 25, 2006
  7. Apr 22, 2006
  8. Apr 18, 2006
    • Bruce Momjian's avatar
      Document that errors are not output by log_statement (was they were in · 5bd59b9c
      Bruce Momjian authored
      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
  9. Apr 04, 2006
    • Tom Lane's avatar
      Modify all callers of datatype input and receive functions so that if these · 147d4bf3
      Tom Lane authored
      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
  10. Mar 14, 2006
    • Tom Lane's avatar
      Improve parser so that we can show an error cursor position for errors · 20ab467d
      Tom Lane authored
      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
  11. Mar 05, 2006
  12. Feb 17, 2006
  13. Jan 18, 2006
    • Neil Conway's avatar
      Add a new system view, pg_cursors, that displays the currently available · 33e06ebc
      Neil Conway authored
      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
  14. Jan 08, 2006
    • Neil Conway's avatar
      Add a new system view, pg_prepared_statements, that can be used to · 44b928e8
      Neil Conway authored
      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
  15. Jan 05, 2006
  16. Jan 04, 2006
  17. Dec 31, 2005
  18. Dec 30, 2005
  19. Dec 14, 2005
  20. Nov 22, 2005
  21. Nov 10, 2005
    • Tom Lane's avatar
      When in transaction-aborted state, reject Bind message for portals containing · da4e00bf
      Tom Lane authored
      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
  22. Nov 03, 2005
  23. Oct 20, 2005
  24. Oct 15, 2005
  25. Oct 14, 2005
  26. Oct 06, 2005
  27. Sep 26, 2005
  28. Sep 24, 2005
  29. Sep 22, 2005
  30. Sep 19, 2005
  31. Sep 16, 2005
  32. Sep 02, 2005
  33. Aug 11, 2005
    • Tom Lane's avatar
      Autovacuum loose end mop-up. Provide autovacuum-specific vacuum cost · d90c5311
      Tom Lane authored
      delay and limit, both as global GUCs and as table-specific entries in
      pg_autovacuum.  stats_reset_on_server_start is now OFF by default,
      but a reset is forced if we did WAL replay.  XID-wrap vacuums do not
      ANALYZE, but do FREEZE if it's a template database.  Alvaro Herrera
      d90c5311
  34. Aug 08, 2005
    • Tom Lane's avatar
      Cause ShutdownPostgres to do a normal transaction abort during backend · 7117cd3a
      Tom Lane authored
      exit, instead of trying to take shortcuts.  Introduce some additional
      shutdown callback routines to eliminate kluges like having ProcKill
      be responsible for shutting down the buffer manager.  Ensure that the
      order of operations during shutdown is predictable and what you would
      expect given the module layering.
      7117cd3a
  35. Jul 21, 2005
  36. Jul 14, 2005
  37. Jul 10, 2005
    • Tom Lane's avatar
      Change typreceive function API so that receive functions get the same · d78397d3
      Tom Lane authored
      optional arguments as text input functions, ie, typioparam OID and
      atttypmod.  Make all the datatypes that use typmod enforce it the same
      way in typreceive as they do in typinput.  This fixes a problem with
      failure to enforce length restrictions during COPY FROM BINARY.
      d78397d3
  38. Jul 04, 2005
    • Tom Lane's avatar
      Arrange for the postmaster (and standalone backends, initdb, etc) to · eb5949d1
      Tom Lane authored
      chdir into PGDATA and subsequently use relative paths instead of absolute
      paths to access all files under PGDATA.  This seems to give a small
      performance improvement, and it should make the system more robust
      against naive DBAs doing things like moving a database directory that
      has a live postmaster in it.  Per recent discussion.
      eb5949d1
Loading