1. 07 Mar, 2011 15 commits
  2. 06 Mar, 2011 10 commits
  3. 05 Mar, 2011 12 commits
  4. 04 Mar, 2011 3 commits
    • Robert Haas's avatar
      Refactor seclabel.c to use the new check_object_ownership function. · efa415da
      Robert Haas authored
      This avoids duplicate (and not-quite-matching) code, and makes the logic
      for SECURITY LABEL match COMMENT and ALTER EXTENSION ADD/DROP.
      efa415da
    • Peter Eisentraut's avatar
      Don't allow CREATE TABLE AS to create a column with invalid collation · b9cff97f
      Peter Eisentraut authored
      It is possible that an expression ends up with a collatable type but
      without a collation.  CREATE TABLE AS could then create a table based
      on that.  But such a column cannot be dumped with valid SQL syntax, so
      we disallow creating such a column.
      
      per test report from Noah Misch
      b9cff97f
    • Tom Lane's avatar
      Allow non-superusers to create (some) extensions. · 8d3b421f
      Tom Lane authored
      Remove the unconditional superuser permissions check in CREATE EXTENSION,
      and instead define a "superuser" extension property, which when false
      (not the default) skips the superuser permissions check.  In this case
      the calling user only needs enough permissions to execute the commands
      in the extension's installation script.  The superuser property is also
      enforced in the same way for ALTER EXTENSION UPDATE cases.
      
      In other ALTER EXTENSION cases and DROP EXTENSION, test ownership of
      the extension rather than superuserness.  ALTER EXTENSION ADD/DROP needs
      to insist on ownership of the target object as well; to do that without
      duplicating code, refactor comment.c's big switch for permissions checks
      into a separate function in objectaddress.c.
      
      I also removed the superuserness checks in pg_available_extensions and
      related functions; there's no strong reason why everybody shouldn't
      be able to see that info.
      
      Also invent an IF NOT EXISTS variant of CREATE EXTENSION, and use that
      in pg_dump, so that dumps won't fail for installed-by-default extensions.
      We don't have any of those yet, but we will soon.
      
      This is all per discussion of wrapping the standard procedural languages
      into extensions.  I'll make those changes in a separate commit; this is
      just putting the core infrastructure in place.
      8d3b421f