1. 30 Dec, 2010 2 commits
  2. 29 Dec, 2010 7 commits
    • Bruce Momjian's avatar
      Doc wording improvement: taken -> accepted · 0be88f87
      Bruce Momjian authored
           with time zone</type>.)  <type>timestamptz</type> is accepted as an
      0be88f87
    • Tom Lane's avatar
      Improve pg_upgrade's checks for required executables. · 88c80345
      Tom Lane authored
      Don't insist on pg_dumpall and psql being present in the old cluster,
      since they are not needed.  Do insist on pg_resetxlog being present
      (in both old and new), since we need it.  Also check for pg_config,
      but only in the new cluster.  Remove the useless attempt to call
      pg_config in the old cluster; we don't need to know the old value of
      --pkglibdir.  (In the case of a stripped-down migration installation
      there might be nothing there to look at anyway, so any future change
      that might reintroduce that need would have to be considered carefully.)
      
      Per my attempts to build a minimal previous-version installation to support
      pg_upgrade.
      88c80345
    • Robert Haas's avatar
      Bump XLOG_PAGE_MAGIC. · d2bc1c99
      Robert Haas authored
      The unlogged tables patch (commit 53dbc27c,
      2010-12-29) should have done this, since it changes the format of an
      XLOG_SMGR_CREATE record.
      d2bc1c99
    • Robert Haas's avatar
      Support unlogged tables. · 53dbc27c
      Robert Haas authored
      The contents of an unlogged table are WAL-logged; thus, they are not
      available on standby servers and are truncated whenever the database
      system enters recovery.  Indexes on unlogged tables are also unlogged.
      Unlogged GiST indexes are not currently supported.
      53dbc27c
    • Magnus Hagander's avatar
      Add REPLICATION privilege for ROLEs · 9b8aff8c
      Magnus Hagander authored
      This privilege is required to do Streaming Replication, instead of
      superuser, making it possible to set up a SR slave that doesn't
      have write permissions on the master.
      
      Superuser privileges do NOT override this check, so in order to
      use the default superuser account for replication it must be
      explicitly granted the REPLICATION permissions. This is backwards
      incompatible change, in the interest of higher default security.
      9b8aff8c
    • Tom Lane's avatar
      Avoid unexpected conversion overflow in planner for distant date values. · f2ba1e99
      Tom Lane authored
      The "date" type supports a wider range of dates than int64 timestamps do.
      However, there is pre-int64-timestamp code in the planner that assumes that
      all date values can be converted to timestamp with impunity.  Fortunately,
      what we really need out of the conversion is always a double (float8)
      value; so even when the date is out of timestamp's range it's possible to
      produce a sane answer.  All we need is a code path that doesn't try to
      force the result into int64.  Per trouble report from David Rericha.
      
      Back-patch to all supported versions.  Although this is surely a corner
      case, there's not much point in advertising a date range wider than
      timestamp's if we will choke on such values in unexpected places.
      f2ba1e99
    • Tom Lane's avatar
      Reclassify DEFAULT as a column_constraint item in the CREATE TABLE syntax. · 31d2efae
      Tom Lane authored
      This is how it was documented originally, but several years ago somebody
      decided that DEFAULT isn't a type of constraint.  Well, the grammar thinks
      it is.  The documentation was wrong in two ways: it alleged that DEFAULT
      had to appear before any other kind of constraint, and it alleged that you
      can't prefix a DEFAULT clause with a "CONSTRAINT name" clause, when in fact
      you can.  (The latter behavior probably isn't SQL-standard, but our grammar
      has always allowed it.)
      
      This patch responds to Fujii Masao's observation that the ALTER TABLE
      documentation mistakenly implied that you couldn't include DEFAULT in
      ALTER TABLE ADD COLUMN; though this isn't the way he proposed fixing it.
      31d2efae
  3. 28 Dec, 2010 5 commits
  4. 27 Dec, 2010 10 commits
  5. 26 Dec, 2010 1 commit
  6. 25 Dec, 2010 2 commits
  7. 24 Dec, 2010 7 commits
  8. 23 Dec, 2010 3 commits
    • Michael Meskes's avatar
      Added rule to ecpg lexer to accept "Unicode surrogate pair in extended quoted · 727a5a16
      Michael Meskes authored
      string". This is not really needed because the string gets copied to the output
      untranslated anyway, but by adding this rule the lexer stays in sync with the
      backend lexer.
      727a5a16
    • Heikki Linnakangas's avatar
      Rewrite the GiST insertion logic so that we don't need the post-recovery · 9de3aa65
      Heikki Linnakangas authored
      cleanup stage to finish incomplete inserts or splits anymore. There was two
      reasons for the cleanup step:
      
      1. When a new tuple was inserted to a leaf page, the downlink in the parent
      needed to be updated to contain (ie. to be consistent with) the new key.
      Updating the parent in turn might require recursively updating the parent of
      the parent. We now handle that by updating the parent while traversing down
      the tree, so that when we insert the leaf tuple, all the parents are already
      consistent with the new key, and the tree is consistent at every step.
      
      2. When a page is split, we need to insert the downlink for the new right
      page(s), and update the downlink for the original page to not include keys
      that moved to the right page(s). We now handle that by setting a new flag,
      F_FOLLOW_RIGHT, on the non-rightmost pages in the split. When that flag is
      set, scans always follow the rightlink, regardless of the NSN mechanism used
      to detect concurrent page splits. That way the tree is consistent right after
      split, even though the downlink is still missing. This is very similar to the
      way B-tree splits are handled. When the downlink is inserted in the parent,
      the flag is cleared. To keep the insertion algorithm simple, when an
      insertion sees an incomplete split, indicated by the F_FOLLOW_RIGHT flag, it
      finishes the split before doing anything else.
      
      These changes allow removing the whole "invalid tuple" mechanism, but I
      retained the scan code to still follow invalid tuples correctly. While we
      don't create any such tuples anymore, we want to handle them gracefully in
      case you pg_upgrade a GiST index that has them. If we encounter any on an
      insert, though, we just throw an error saying that you need to REINDEX.
      
      The issue that got me into doing this is that if you did a checkpoint while
      an insert or split was in progress, and the checkpoint finishes quickly so
      that there is no WAL record related to the insert between RedoRecPtr and the
      checkpoint record, recovery from that checkpoint would not know to finish
      the incomplete insert. IOW, we have the same issue we solved with the
      rm_safe_restartpoint mechanism during normal operation too. It's highly
      unlikely to happen in practice, and this fix is far too large to backpatch,
      so we're just going to live with in previous versions, but this refactoring
      fixes it going forward.
      
      With this patch, you don't get the annoying
      'index "FOO" needs VACUUM or REINDEX to finish crash recovery' notices
      anymore if you crash at an unfortunate moment.
      9de3aa65
    • Bruce Momjian's avatar
      Document that BBU's do not allow partial page writes to be safely turned · 7a1ca897
      Bruce Momjian authored
      off unless they guarantee that all writes to the BBU arrive in 8kB chunks.
      
      Per discussion with Greg Smith
      7a1ca897
  9. 22 Dec, 2010 3 commits