- 28 Jan, 2006 1 commit
-
-
Neil Conway authored
memory in the executor's per-query memory context. It also inefficient: it invokes get_call_result_type() and TupleDescGetAttInMetadata() for every call to return_next, rather than invoking them once (per PL/Perl function call) and memoizing the result. This patch makes the following changes: - refactor the code to include all the "per PL/Perl function call" data inside a single struct, "current_call_data". This means we don't need to save and restore N pointers for every recursive call into PL/Perl, we can just save and restore one. - lookup the return type metadata needed by plperl_return_next() once, and then stash it in "current_call_data", so as to avoid doing the lookup for every call to return_next. - create a temporary memory context in which to evaluate the return type's input functions. This memory context is reset for each call to return_next. The patch appears to fix the memory leak, and substantially reduces the overhead imposed by return_next.
-
- 27 Jan, 2006 2 commits
-
-
Tom Lane authored
one 'creating subdirectories' message instead of one per subdirectory. The original decision to print something for each subdirectory was made when there were only one or two of 'em; we have way too many now. Per discussion.
-
Teodor Sigaev authored
singlebyte encodings, so we should have snowball for every encodings. I hope that finalize multibyte support work in tsearch2, but testing is needed...
-
- 26 Jan, 2006 5 commits
-
-
Tom Lane authored
-
Tom Lane authored
While we normally prefer the notation "foo.*" for a whole-row Var, that does not work at SELECT top level, because in that context the parser will assume that what is wanted is to expand the "*" into a list of separate target columns, yielding behavior different from a whole-row Var. We have to emit just "foo" instead in that context. Per report from Sokolov Yura.
-
Tom Lane authored
have a separate set of CIDR code here, either.
-
Bruce Momjian authored
< * %Prevent INET cast to CIDR if the unmasked bits are not zero, or < zero the bits < * %Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr > * -Zero umasked bits in conversion from INET cast to CIDR > * -Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
-
Tom Lane authored
and rely exclusively on the SQL type system to tell the difference between the types. Prevent creation of invalid CIDR values via casting from INET or set_masklen() --- both of these operations now silently zero any bits to the right of the netmask. Remove duplicate CIDR comparison operators, letting the type rely on the INET operators instead.
-
- 25 Jan, 2006 7 commits
-
-
Tom Lane authored
Same motivation as for BTItem.
-
Tom Lane authored
just refer to btree index entries as plain IndexTuples, which is what they have been for a very long time. This is mostly just an exercise in removing extraneous notation, but it does save a palloc/pfree cycle per index insertion.
-
Tom Lane authored
because pqSendSome will absorb input data anytime it'd be forced to block. Avoiding a kernel call per PQputCopyData call helps COPY speed materially. Alon Goldshuv
-
Tom Lane authored
This completes the project to upgrade our handling of row comparisons.
-
Bruce Momjian authored
instead of "10^0".
-
Bruce Momjian authored
instead of 10^0.
-
Bruce Momjian authored
-
- 24 Jan, 2006 2 commits
-
-
Tom Lane authored
provided by configure, instead. Per bug #2205.
-
Michael Meskes authored
- Added another test case.
-
- 23 Jan, 2006 6 commits
-
-
Tom Lane authored
and non-required keys in a btree index scan, mark the required scankeys with private flag bits SK_BT_REQFWD and/or SK_BT_REQBKWD. This seems at least marginally clearer to me, and it eliminates a wired-into-the- data-structure assumption that required keys are consecutive. Even though that assumption will remain true for the foreseeable future, having it in there makes the code seem more complex than necessary.
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Tom Lane authored
suggestion a couple days ago. Fix some cases in which the documentation neglected to mention any restriction on when a parameter can be set. Try to be consistent about calling parameters parameters; use the term option only for command-line switches.
-
Teodor Sigaev authored
-
Bruce Momjian authored
< o Allow an alias to be provided for the target table in < UPDATE/DELETE < < This is not SQL-spec but many DBMSs allow it. < > o -Allow an alias to be provided for the target table in > UPDATE/DELETE (Neil)
-
- 22 Jan, 2006 4 commits
-
-
Tom Lane authored
It's not related to whether an alias is used or not.
-
Tom Lane authored
be any ColId other than 'SET', rather than only IDENT as originally. Per discussion.
-
Neil Conway authored
and DELETE. If specified, the alias must be used instead of the full table name. Also, the alias currently cannot be used in the SET clause of UPDATE. Patch from Atsushi Ogawa, various editorialization by Neil Conway. Along the way, make the rowtypes regression test pass if add_missing_from is enabled, and add a new (skeletal) regression test for DELETE.
-
Neil Conway authored
-
- 21 Jan, 2006 4 commits
-
-
Tom Lane authored
be consistent about whether it's called a daemon or a subprocess, and don't describe the autovacuum setting in exactly the same way as the stats_start_collector setting, because that leaves people thinking (if they aren't paying close attention) that autovacuum can't be changed on the fly.
-
Tom Lane authored
-
Tom Lane authored
to try to create a log segment file concurrently, but the code erroneously specified O_EXCL to open(), resulting in a needless failure. Before 7.4, it was even a PANIC condition :-(. Correct code is actually simpler than what we had, because we can just say O_CREAT to start with and not need a second open() call. I believe this accounts for several recent reports of hard-to-reproduce "could not create file ...: File exists" errors in both pg_clog and pg_subtrans.
-
Bruce Momjian authored
Continue to support GRANT ON [TABLE] for sequences for backward compatibility; issue warning for invalid sequence permissions. [Backward compatibility warning message.] Add USAGE permission for sequences that allows only currval() and nextval(), not setval(). Mention object name in grant/revoke warnings because of possible multi-object operations.
-
- 20 Jan, 2006 3 commits
-
-
Tom Lane authored
sizebitvec of tsearch2, as well as identical code in several other contrib modules. This provided about a 20X speedup in building a large tsearch2 index ... didn't try to measure its effects for other operations. Thanks to Stephan Vollmer for providing a test case.
-
Bruce Momjian authored
-
Tom Lane authored
temp table not only our own process' tables. It's not real important since vacuum.c will skip temp tables anyway, but might as well make the code do what it claims to do.
-
- 19 Jan, 2006 6 commits
-
-
Bruce Momjian authored
David Fetter
-
Bruce Momjian authored
can be optimized.
-
Tom Lane authored
mean stress ... system is orders of magnitude slower with this enabled).
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Tom Lane authored
index's support-function cache (in index_getprocinfo). Since none of that data can change for an index that's in active use, it seems sufficient to treat all open indexes the same way we were treating "nailed" system indexes --- that is, just re-read the pg_class row and leave the rest of the relcache entry strictly alone. The pg_class re-read might not be strictly necessary either, but since the reltablespace and relfilenode can change in normal operation it seems safest to do it. (We don't support changing any of the other info about an index at all, at the moment.) Back-patch as far as 8.0. It might be possible to adapt the patch to 7.4, but it would take more work than I care to expend for such a low-probability problem. 7.3 is out of luck for sure.
-