1. 03 5月, 2012 7 次提交
  2. 02 5月, 2012 6 次提交
  3. 01 5月, 2012 5 次提交
    • P
      Improve markup of cmdsynopsis elements · 4266509c
      Peter Eisentraut 提交于
      Add more markup in particular so that the command options appear
      consistently in monospace in the HTML output.
      
      On the vacuumdb reference page, remove listing all the possible
      options in the synopsis.  They have become too many now; we have the
      detailed options list for that.
      4266509c
    • P
      Fix display of <command> elements on man pages · 61c84b47
      Peter Eisentraut 提交于
      We had changed this from the default bold to monospace for all output
      formats, but for man pages, this creates visual inconsistencies, so
      revert to the default for man pages.
      61c84b47
    • T
      Converge all SQL-level statistics timing values to float8 milliseconds. · 809e7e21
      Tom Lane 提交于
      This patch adjusts the core statistics views to match the decision already
      taken for pg_stat_statements, that values representing elapsed time should
      be represented as float8 and measured in milliseconds.  By using float8,
      we are no longer tied to a specific maximum precision of timing data.
      (Internally, it's still microseconds, but we could now change that without
      needing changes at the SQL level.)
      
      The columns affected are
      pg_stat_bgwriter.checkpoint_write_time
      pg_stat_bgwriter.checkpoint_sync_time
      pg_stat_database.blk_read_time
      pg_stat_database.blk_write_time
      pg_stat_user_functions.total_time
      pg_stat_user_functions.self_time
      pg_stat_xact_user_functions.total_time
      pg_stat_xact_user_functions.self_time
      
      The first four of these are new in 9.2, so there is no compatibility issue
      from changing them.  The others require a release note comment that they
      are now double precision (and can show a fractional part) rather than
      bigint as before; also their underlying statistics functions now match
      the column definitions, instead of returning bigint microseconds.
      809e7e21
    • P
      Mark ReThrowError() with attribute noreturn · 26471a51
      Peter Eisentraut 提交于
      All related functions were already so marked.
      26471a51
    • R
      Remove duplicate word in comment. · 0d2235a2
      Robert Haas 提交于
      Noted by Peter Geoghegan.
      0d2235a2
  4. 30 4月, 2012 7 次提交
  5. 29 4月, 2012 2 次提交
    • T
      Adjust timing units in pg_stat_statements. · 93f94e35
      Tom Lane 提交于
      Display total time and I/O timings in milliseconds, for consistency with
      the units used for timings in the core statistics views.  The columns
      remain of float8 type, so that sub-msec precision is available.  (At some
      point we will probably want to convert the core views to use float8 type
      for the same reason, but this patch does not touch that issue.)
      
      This is a release-note-requiring change in the meaning of the total_time
      column.  The I/O timing columns are new as of 9.2, so there is no
      compatibility impact from redefining them.
      
      Do some minor copy-editing in the documentation, too.
      93f94e35
    • T
      Clear I/O timing counters after sending them to the stats collector. · cdbad241
      Tom Lane 提交于
      This oversight caused the reported times to accumulate in an O(N^2)
      fashion the longer a backend runs.
      cdbad241
  6. 28 4月, 2012 3 次提交
    • P
      05dd9fb1
    • T
      Fix printing of whole-row Vars at top level of a SELECT targetlist. · d6f7d4fd
      Tom Lane 提交于
      Normally whole-row Vars are printed as "tabname.*".  However, that does not
      work at top level of a targetlist, because per SQL standard the parser will
      think that the "*" should result in column-by-column expansion; which is
      not at all what a whole-row Var implies.  We used to just print the table
      name in such cases, which works most of the time; but it fails if the table
      name matches a column name available anywhere in the FROM clause.  This
      could lead for instance to a view being interpreted differently after dump
      and reload.  Adding parentheses doesn't fix it, but there is a reasonably
      simple kluge we can use instead: attach a no-op cast, so that the "*" isn't
      syntactically at top level anymore.  This makes the printing of such
      whole-row Vars a lot more consistent with other Vars, and may indeed fix
      more cases than just the reported one; I'm suspicious that cases involving
      schema qualification probably didn't work properly before, either.
      
      Per bug report and fix proposal from Abbas Butt, though this patch is quite
      different in detail from his.
      
      Back-patch to all supported versions.
      d6f7d4fd
    • B
      Add options to git_changelog for use in major release note creation: · 993ce4e6
      Bruce Momjian 提交于
      	--details-after
      	--master-only
      	--oldest-first
      993ce4e6
  7. 27 4月, 2012 6 次提交
    • T
      Fix syslogger's rotation disable/re-enable logic. · 537b2669
      Tom Lane 提交于
      If it fails to open a new log file, the syslogger assumes there's something
      wrong with its parameters (such as log_directory), and stops attempting
      automatic time-based or size-based log file rotations.  Sending it SIGHUP
      is supposed to start that up again.  However, the original coding for that
      was really bogus, involving clobbering a couple of GUC variables and hoping
      that SIGHUP processing would restore them.  Get rid of that technique in
      favor of maintaining a separate flag showing we've turned rotation off.
      Per report from Mark Kirkwood.
      
      Also, the syslogger will automatically attempt to create the log_directory
      directory if it doesn't exist, but that was only happening at startup.
      For consistency and ease of use, it should do the same whenever the value
      of log_directory is changed by SIGHUP.
      
      Back-patch to all supported branches.
      537b2669
    • R
      Prevent index-only scans from returning wrong answers under Hot Standby. · 3424bff9
      Robert Haas 提交于
      The alternative of disallowing index-only scans in HS operation was
      discussed, but the consensus was that it was better to treat marking
      a page all-visible as a recovery conflict for snapshots that could still
      fail to see XIDs on that page.  We may in the future try to soften this,
      so that we simply force index scans to do heap fetches in cases where
      this may be an issue, rather than throwing a hard conflict.
      3424bff9
    • T
      Improve documentation around historical calendar rules. · 92df2203
      Tom Lane 提交于
      Get rid of section 8.5.6 (Date/Time Internals), which appears to confuse
      people more than it helps, and anyway discussion of Postgres' internal
      datetime calculation methods seems pretty out of place here.  Instead,
      make datatype.sgml just say that we follow the Gregorian calendar (a bit
      of specification not previously present anywhere in that chapter :-()
      and link to the History of Units appendix for more info.  Do some mild
      editorialization on that appendix, too, to make it clearer that we are
      following proleptic Gregorian calendar rules rather than anything more
      historically accurate.
      
      Per a question from Florence Cousin and subsequent discussion in
      pgsql-docs.
      92df2203
    • T
      Fix oversight in recent parameterized-path patch. · 7c85aa39
      Tom Lane 提交于
      bitmap_scan_cost_est() has to be able to cope with a BitmapOrPath, but
      I'd taken a shortcut that didn't work for that case.  Noted by Heikki.
      Add some regression tests since this area is evidently under-covered.
      7c85aa39
    • P
      PL/Python: Accept strings in functions returning composite types · ba3e4157
      Peter Eisentraut 提交于
      Before 9.1, PL/Python functions returning composite types could return
      a string and it would be parsed using record_in.  The 9.1 changes made
      PL/Python only expect dictionaries, tuples, or objects supporting
      getattr as output of composite functions, resulting in a regression
      and a confusing error message, as the strings were interpreted as
      sequences and the code for transforming lists to database tuples was
      used.  Fix this by treating strings separately as before, before
      checking for the other types.
      
      The reason why it's important to support string to database tuple
      conversion is that trigger functions on tables with composite columns
      get the composite row passed in as a string (from record_out).
      Without supporting converting this back using record_in, this makes it
      impossible to implement pass-through behavior for these columns, as
      PL/Python no longer accepts strings for composite values.
      
      A better solution would be to fix the code that transforms composite
      inputs into Python objects to produce dictionaries that would then be
      correctly interpreted by the Python->PostgreSQL counterpart code.  But
      that would be too invasive to backpatch to 9.1, and it is too late in
      the 9.2 cycle to attempt it.  It should be revisited in the future,
      though.
      
      Reported as bug #6559 by Kirill Simonov.
      
      Jan Urbański
      ba3e4157
    • P
      psql: Tab completion updates · cc71ceab
      Peter Eisentraut 提交于
      Add/complete support for:
      
      - ALTER DOMAIN / VALIDATE CONSTRAINT
      - ALTER DOMAIN / RENAME
      - ALTER DOMAIN / RENAME CONSTRAINT
      - ALTER TABLE / RENAME CONSTRAINT
      cc71ceab
  8. 26 4月, 2012 4 次提交
    • T
      Modify create_index regression test to avoid intermittent failures. · d6d5f67b
      Tom Lane 提交于
      We have been seeing intermittent buildfarm failures due to a query
      sometimes not using an index-only scan plan, because a background
      auto-ANALYZE prevented the table's all-visible bits from being set
      immediately, thereby causing the estimated cost of an index-only scan
      to go up considerably.  Adjust the test case so that a bitmap index scan is
      preferred instead, which serves equally well for the purpose the test case
      is actually meant for.  (Of course, it would be better to eliminate the
      interference from auto-ANALYZE, but I see no low-risk way to do that,
      so any such fix will have to be left for 9.3 or later.)
      d6d5f67b
    • T
      Fix planner's handling of RETURNING lists in writable CTEs. · 9fa82c98
      Tom Lane 提交于
      setrefs.c failed to do "rtoffset" adjustment of Vars in RETURNING lists,
      which meant they were left with the wrong varnos when the RETURNING list
      was in a subquery.  That was never possible before writable CTEs, of
      course, but now it's broken.  The executor fails to notice any problem
      because ExecEvalVar just references the ecxt_scantuple for any normal
      varno; but EXPLAIN breaks when the varno is wrong, as illustrated in a
      recent complaint from Bartosz Dmytrak.
      
      Since the eventual rtoffset of the subquery is not known at the time
      we are preparing its plan node, the previous scheme of executing
      set_returning_clause_references() at that time cannot handle this
      adjustment.  Fortunately, it turns out that we don't really need to do it
      that way, because all the needed information is available during normal
      setrefs.c execution; we just have to dig it out of the ModifyTable node.
      So, do that, and get rid of the kluge of early setrefs processing of
      RETURNING lists.  (This is a little bit of a cheat in the case of inherited
      UPDATE/DELETE, because we are not passing a "root" struct that corresponds
      exactly to what the subplan was built with.  But that doesn't matter, and
      anyway this is less ugly than early setrefs processing was.)
      
      Back-patch to 9.1, where the problem became possible to hit.
      9fa82c98
    • T
      Fix edge-case behavior of pg_next_dst_boundary(). · c62b8eaa
      Tom Lane 提交于
      Due to rather sloppy thinking (on my part, I'm afraid) about the
      appropriate behavior for boundary conditions, pg_next_dst_boundary() gave
      undefined, platform-dependent results when the input time is exactly the
      last recorded DST transition time for the specified time zone, as a result
      of fetching values one past the end of its data arrays.
      
      Change its specification to be that it always finds the next DST boundary
      *after* the input time, and adjust code to match that.  The sole existing
      caller, DetermineTimeZoneOffset, doesn't actually care about this
      distinction, since it always uses a probe time earlier than the instant
      that it does care about.  So it seemed best to me to change the API to make
      the result=1 and result=0 cases more consistent, specifically to ensure
      that the "before" outputs always describe the state at the given time,
      rather than hacking the code to obey the previous API comment exactly.
      
      Per bug #6605 from Sergey Burladyan.  Back-patch to all supported versions.
      c62b8eaa
    • R
      Remove prototype for nonexistent function. · ca1e1a8d
      Robert Haas 提交于
      ca1e1a8d