Tom Lane [Fri, 14 Jan 2005 17:47:49 +0000 (17:47 +0000)]
Add missing gettext() calls in find_my_exec(). It's probably too late
to get these strings translated, but we may as well have them be
translatable as not.
Tom Lane [Thu, 13 Jan 2005 23:07:34 +0000 (23:07 +0000)]
Change exec_eval_simple_expr's param list allocation call from
MemoryContextAllocZero back to MemoryContextAlloc, same as it was in 7.4.
The zeroing is unnecessary since all the meaningful fields are filled in
just below. I had made it do that out of neatnik-ism, but some testing
with an example provided by Pavel Stehule showed that the zeroing was
accounting for about 5% of the runtime in a compute-intensive plpgsql
function. That seems a bit high of a price for neatnik-ism...
Tom Lane [Thu, 13 Jan 2005 17:19:10 +0000 (17:19 +0000)]
get_names_for_var didn't do recursion for unnamed JOIN vars quite right;
got it wrong when the JOIN was in an outer query level. Per example from
Laurie Burrow. Also fix same issue in markTargetListOrigin. I think the
latter is only a latent bug since we currently don't apply markTargetListOrigin
except at the outer level ... but should do it right anyway.
Tom Lane [Thu, 13 Jan 2005 01:40:13 +0000 (01:40 +0000)]
Remove unportable assumption that it's okay to use the target buffer
of an sprintf() as a source string. Demonstrably does not work with
recent gcc and/or glibc on some platforms.
Tom Lane [Wed, 12 Jan 2005 17:32:36 +0000 (17:32 +0000)]
Re-allow an untyped literal as the test expression of a CASE, ie
CASE 'a' WHEN 'a' THEN 1 ELSE 2 END. This worked in 7.4 and before
but had been broken due to premature freezing of the type of the test
expression. Per gripe from GÄbor SzÃcs.
Tom Lane [Wed, 12 Jan 2005 16:38:17 +0000 (16:38 +0000)]
Increase MAXLISTEN to a more generous value, and add an error message
telling when it has been exceeded. Per trouble report from
Jean-GÅrard Pailloncy.
Tom Lane [Wed, 12 Jan 2005 16:19:51 +0000 (16:19 +0000)]
Ensure that the test postmaster started by 'make check' listens to as
few 'listen_addresses' as possible --- on most systems, none at all,
just the Unix socket. This avoids spurious check failures due to bogus
DNS setups, and is probably a good idea from a security standpoint anyway.
Per trouble report from Jean-GÅrard Pailloncy.
Teodor Sigaev [Tue, 11 Jan 2005 16:07:55 +0000 (16:07 +0000)]
Fixes:
1 Report error message instead of do nothing in case of error in regex
2 Malloced storage for mask, find and repl part of Affix. This parts may be
large enough in real life (for example in czech, thanks to moje <moje@kalhotky.net>)
Tom Lane [Mon, 10 Jan 2005 21:57:19 +0000 (21:57 +0000)]
Separate the functions of relcache entry flush and smgr cache entry flush
so that we can get the size of a shared inval message back down to what it
was in 7.4 (and simplify the logic too). Phase 2 of fixing the
'SMgrRelation hashtable corrupted' problem.
Tom Lane [Mon, 10 Jan 2005 20:02:24 +0000 (20:02 +0000)]
Phase 1 of fix for 'SMgrRelation hashtable corrupted' problem. This
is the minimum required fix. I want to look next at taking advantage of
it by simplifying the message semantics in the shared inval message queue,
but that part can be held over for 8.1 if it turns out too ugly.
Tom Lane [Mon, 10 Jan 2005 00:04:43 +0000 (00:04 +0000)]
Add some real documentation about TOAST (finally). Combine this with
the old 'page' chapter and the recently added 'filelayout' chapter to
make a coherent chapter about PostgreSQL's physical storage layout.
Tom Lane [Sun, 9 Jan 2005 21:03:19 +0000 (21:03 +0000)]
Undo an unadvertised change in the API of pg_atoi. In all previous
releases, a nonzero 'c' argument meant that the input string could be
terminated by either that character or \0. Recent refactoring broke
that, causing the thing to scan for 'c' only. This went undetected
because no part of the main code actually passes nonzero 'c'. However
it broke tsearch2 and possibly other user-written code that assumed
the old definition. Per report from Tom Hebbron.
Tom Lane [Fri, 7 Jan 2005 23:08:44 +0000 (23:08 +0000)]
Add a tip showing how functions on composite types can be used to
emulate computed fields. I suppose this is why the Berkeley boys made
it work that way in the first place, but the docs never said so anyplace.
Tom Lane [Thu, 6 Jan 2005 20:56:50 +0000 (20:56 +0000)]
Revert -Wl, change to Makefile.osf, as the allegedly more standard
syntax apparently does not work for all toolchains on that platform.
Per Honda Shigehiro.
Tom Lane [Thu, 6 Jan 2005 20:06:58 +0000 (20:06 +0000)]
Instead of a bare recv() to read the server's response to an SSL
request packet, use pqReadData(). This has the same effect since
conn->ssl isn't set yet and we aren't expecting more than one byte.
The advantage is that we will correctly detect loss-of-connection
instead of going into an infinite loop. Per report from Hannu Krosing.
Tom Lane [Thu, 6 Jan 2005 18:29:11 +0000 (18:29 +0000)]
Adjust lookup of client-side profile files (.pgpass and so on) as per
discussion on pgsql-hackers-win32 list. Documentation still needs to
be tweaked --- I'm not sure how to refer to the APPDATA folder in
user documentation.
Tom Lane [Thu, 6 Jan 2005 01:00:12 +0000 (01:00 +0000)]
Make the various places that determine the user's "home directory"
consistent. On Unix we now always consult getpwuid(); $HOME isn't used
at all. On Windows the code currently consults $USERPROFILE, or $HOME
if that's not defined, but I expect this will change as soon as the win32
hackers come to a consensus. Nothing done yet about changing the file
names used underneath $USERPROFILE.
Tom Lane [Tue, 4 Jan 2005 23:18:25 +0000 (23:18 +0000)]
Clean up code in libpq that obtains user's home directory: make a single
subroutine that can hide platform dependencies. The WIN32 path is still
a stub, but I await a fix from one of the win32 hackers.
Also clean up unnecessary #ifdef WIN32 ugliness in a couple of places.
Bruce Momjian [Tue, 4 Jan 2005 05:35:45 +0000 (05:35 +0000)]
Update wording:
< * Allow building with directories containing spaces
> * Allow building in directories containing spaces
< There are two capabilities here, first the ability to build from a
< source directory that contains spaces, and second the ability to install
< into a directory that contains spaces. The first is probably not
< possible because 'gmake' and other compiler tools do not fully support
< spaces in path names. The second is possible with proper quoting in
< the makefiles. Because PostgreSQL supports relocatable installs, it
< is possible to install into a directory that doesn't contain spaces and
< then copy the install to a directory with spaces.
> This is probably not possible because 'gmake' and other compiler tools
> do not fully support quoting of paths with spaces.
>
> * Allow installing to directories containing spaces
>
> This is possible if proper quoting is added to the makefiles for the
> install targets. Because PostgreSQL supports relocatable installs, it
> is already possible to install into a directory that doesn't contain
> spaces and then copy the install to a directory with spaces.
Bruce Momjian [Tue, 4 Jan 2005 05:13:39 +0000 (05:13 +0000)]
Update item for install with spaces:
> There are two capabilities here, first the ability to build from a
> source directory that contains spaces, and second the ability to install
> into a directory that contains spaces. The first is probably not
> possible because 'gmake' and other compiler tools do not fully support
> spaces in path names. The second is possible with proper quoting in
> the makefiles. Because PostgreSQL supports relocatable installs, it
> is possible to install into a directory that doesn't contain spaces and
> then copy the install to a directory with spaces.
Tom Lane [Mon, 3 Jan 2005 18:49:41 +0000 (18:49 +0000)]
Repair bufmgr deadlock problem reported by Michael Wildpaner. Must take
share lock on a buffer being written out before releasing BufMgrLock in
the BufferAlloc code path; if we do it later we might block on someone
who's re-pinned the buffer. I believe this is only an issue for BufferAlloc
and not the other places that call FlushBuffer. BufferSync must continue
to do it the old way since it may well be trying to write buffers that
other backends have pinned; but it should not be holding any conflicting
locks. FlushRelationBuffers is okay since it's got exclusive lock at the
relation level.