- 31 Aug, 2007 9 commits
-
-
Tom Lane authored
generating the tuples has resjunk output columns. This is not possible for simple table scans but can happen when evaluating a whole-row Var for a view. Per example from Patryk Kordylewski. The problem exists back to 8.0 but I'm not going to risk back-patching further than 8.2 because of the many changes in this area.
-
Bruce Momjian authored
tool chains).
-
Bruce Momjian authored
"index" entries for GIN/GiST.
-
Bruce Momjian authored
-
Bruce Momjian authored
entire section, per Peter.
-
Bruce Momjian authored
entries in textsearch.sgml.
-
Tom Lane authored
processing routines. Per Heikki.
-
Bruce Momjian authored
older SGML toolchains.
-
Tom Lane authored
sets for outer joins, in the light of bug #3588 and additional thought and experimentation. The original methodology was fatally flawed for nests of more than two outer joins: it got the relationships between adjacent joins right, but didn't always come to the right conclusions about whether a join could be interchanged with one two or more levels below it. This was largely caused by a mistaken idea that we should use the min_lefthand + min_righthand sets of a sub-join as the minimum left or right input set of an upper join when we conclude that the sub-join can't commute with the upper one. If there's a still-lower join that the sub-join *can* commute with, this method led us to think that that one could commute with the topmost join; which it can't. Another problem (not directly connected to bug #3588) was that make_outerjoininfo's processing-order-dependent method for enforcing outer join identity #3 didn't work right: if we decided that join A could safely commute with lower join B, we dropped all information about sub-joins under B that join A could perhaps not safely commute with, because we removed B's entire min_righthand from A's. To fix, make an explicit computation of all inner join combinations that occur below an outer join, and add to that the full syntactic relsets of any lower outer joins that we determine it can't commute with. This method gives much more direct enforcement of the outer join rearrangement identities, and it turns out not to cost a lot of additional bookkeeping. Thanks to Richard Harris for the bug report and test case.
-
- 30 Aug, 2007 3 commits
-
-
Bruce Momjian authored
-
Tom Lane authored
case, per Florian Pflug. Not back-patched since it's unclear that anyone but me still cares ...
-
Tatsuo Ishii authored
-
- 29 Aug, 2007 7 commits
-
-
Bruce Momjian authored
-
Bruce Momjian authored
to be more logical.
-
Bruce Momjian authored
the main documentation, out of its own text search chapter.
-
Tom Lane authored
checks for individual-table-size functions, since anyone in the database could get approximate values from pg_class.relpages anyway. Allow database-size to users with CONNECT privilege for the target database (note that this is granted by default). Allow tablespace-size if the user has CREATE privilege on the tablespace (which is *not* granted by default), or if the tablespace is the default tablespace for the current database (since we treat that as implicitly allowing use of the tablespace).
-
Tom Lane authored
read from the temp file didn't match the file length reported by ftello(), the wrong variable's value was printed, and so the message made no sense. Clean up a couple other coding infelicities while at it.
-
Michael Meskes authored
-
Bruce Momjian authored
-
- 28 Aug, 2007 12 commits
-
-
Tom Lane authored
restart point. Per suggestion from Simon Riggs.
-
Tom Lane authored
SELECT on the target table. Per discussion.
-
Tom Lane authored
even if the "deadlock detected" ERROR message is suppressed by an exception catcher. Be clearer about the event sequence when a soft deadlock is fixed: the fixing process might or might not still have to wait, so log that separately. Fix race condition when someone releases us from the lock partway through printing all this junk --- we'd not get confused about our state, but the log message sequence could have been misleading, ie, a "still waiting" message with no subsequent "acquired" message. Greg Stark and Tom Lane.
-
Bruce Momjian authored
section makes a little more sense.
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
corrections. Not sure why these were not in CVS. Researching.
-
Bruce Momjian authored
fixes. Not sure how these weren't comitted before.
-
- 27 Aug, 2007 9 commits
-
-
Magnus Hagander authored
pending decision on exactly what will happen with contrib/tsearch2 now that it's in core.
-
Magnus Hagander authored
-
Magnus Hagander authored
-
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.
-
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.
-
Tom Lane authored
not all that exciting when the system catalogs are readable by all, but some people try to lock them down, and would not like this sort of end run ...
-
Tom Lane authored
and pg_tablespace_size to superusers. Perhaps we could weaken the first case to just require SELECT privilege, but that doesn't work for the other cases, so use ownership as the common concept.
-
Tom Lane authored
While it's not clear that TID linkage info is of any great use to a nefarious user, it's certainly unexpected that these functions wouldn't insist on read privileges.
-
Tom Lane authored
but no permissions check at all is certainly no good.) Clean up usage of some deprecated APIs.
-