1. 01 Sep, 2007 1 commit
    • Tom Lane's avatar
      Since sort_bounded_heap makes state changes that should be made · d2825e1c
      Tom Lane authored
      regardless of the number of tuples involved, it's incorrect to skip it
      when memtupcount = 1; the number of cycles saved is minuscule anyway.
      An alternative solution would be to pull the state changes out to the
      call site in tuplesort_performsort, but keeping them near the corresponding
      changes in make_bounded_heap seems marginally cleaner.  Noticed by
      Greg Stark.
      d2825e1c
  2. 31 Aug, 2007 12 commits
  3. 30 Aug, 2007 3 commits
  4. 29 Aug, 2007 7 commits
  5. 28 Aug, 2007 12 commits
  6. 27 Aug, 2007 5 commits
    • Magnus Hagander's avatar
      Exclude tsearch2 contrib tests in regression tests, · 69e86a5d
      Magnus Hagander authored
      pending decision on exactly what will happen with
      contrib/tsearch2 now that it's in core.
      69e86a5d
    • Magnus Hagander's avatar
      Install stopword files · 90d9fc0a
      Magnus Hagander authored
      90d9fc0a
    • Magnus Hagander's avatar
      3b1e04c3
    • Tom Lane's avatar
      Fix a couple of misbehaviors rooted in the fact that the default creation · 862861ee
      Tom Lane authored
      namespace isn't necessarily first in the search path (there could be implicit
      schemas ahead of it).  Examples are
      
      test=# set search_path TO s1;
      
      test=# create view pg_timezone_names as select * from pg_timezone_names();
      ERROR:  "pg_timezone_names" is already a view
      
      test=# create table pg_class (f1 int primary key);
      ERROR:  permission denied: "pg_class" is a system catalog
      
      You'd expect these commands to create the requested objects in s1, since
      names beginning with pg_ aren't supposed to be reserved anymore.  What is
      happening is that we create the requested base table and then execute
      additional commands (here, CREATE RULE or CREATE INDEX), and that code is
      passed the same RangeVar that was in the original command.  Since that
      RangeVar has schemaname = NULL, the secondary commands think they should do a
      path search, and that means they find system catalogs that are implicitly in
      front of s1 in the search path.
      
      This is perilously close to being a security hole: if the secondary command
      failed to apply a permission check then it'd be possible for unprivileged
      users to make schema modifications to system catalogs.  But as far as I can
      find, there is no code path in which a check doesn't occur.  Which makes it
      just a weird corner-case bug for people who are silly enough to want to
      name their tables the same as a system catalog.
      
      The relevant code has changed quite a bit since 8.2, which means this patch
      wouldn't work as-is in the back branches.  Since it's a corner case no one
      has reported from the field, I'm not going to bother trying to back-patch.
      862861ee
    • Tom Lane's avatar
      Remove the 'not in' operator (!!=). This was a hangover from Berkeley · 6c96188c
      Tom Lane authored
      days that was obsolete the moment we had IN (SELECT ...) capability.
      It's arguably a security hole since it applied no permissions check to
      the table it searched, and since it was never documented anywhere,
      removing it seems more appropriate than fixing it.
      6c96188c