summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2007-08-06Fix pg_restore to guard against unexpected EOF while reading an archive file.Tom Lane
Per report and partial patch from Chad Wagner.
2007-08-05Apparently icc doesn't always define __ICC, and it's more correct toTom Lane
check for __INTEL_COMPILER. Per report from Dirk Tilger. Not back-patched since I don't fully trust it yet ...
2007-08-04Fix up bad layout of some comments (probably pg_indent's fault), andTom Lane
improve grammar a tad. Per Greg Stark.
2007-08-04Tweak for initdb: if more command-line arguments were specified thanNeil Conway
expected, exit with an error, rather than complaining about the error on stderr but continuing onward.
2007-08-04Fix crash caused by log_timezone patch if we attempt to emit any elog messagesTom Lane
between the setting of log_line_prefix and the setting of log_timezone. We can't realistically set log_timezone any earlier than we do now, so the best behavior seems to be to use GMT zone if any timestamps are to be logged during early startup. Create a dummy zone variable with a minimal definition of GMT (in particular it will never know about leap seconds), so that we can set it up without reference to any external files.
2007-08-04Fix a problem in my recent patch to initialize cancel_key for autovac workersTom Lane
as well as regular backends: if no regular backend launches before the autovac launcher tries to start an autovac worker, the postmaster would get an Assert fault due to calling PostmasterRandom before random_seed was initialized. Cleanest solution seems to be to take the initialization of random_seed out of ServerLoop and let PostmasterRandom do it for itself.
2007-08-04Switch over to using the src/timezone functions for formatting timestampsTom Lane
displayed in the postmaster log. This avoids Windows-specific problems with localized time zone names that are in the wrong encoding, and generally seems like a good idea to forestall other potential platform-dependent issues. To preserve the existing behavior that all backends will log in the same time zone, create a new GUC variable log_timezone that can only be changed on a system-wide basis, and reference log-related calculations to that zone instead of the TimeZone variable. This fixes the issue reported by Hiroshi Saito that timestamps printed by xlog.c startup could be improperly localized on Windows. We still need a simpler patch for that problem in the back branches, however.
2007-08-03Fix some sloppiness in the recent multiple-autovacuum-worker patch. It wasTom Lane
not bothering to initialize is_autovacuum for regular backends, meaning there was a significant chance of the postmaster prematurely sending them SIGTERM during database shutdown. Also, leaving the cancel key unset for an autovac worker meant that any client could send it SIGINT, which doesn't sound especially good either.
2007-08-03Update supported standalone VC++ version to 7.1+ only, and fixMagnus Hagander
some bad data leftover in win32.mak. Per request from Hiroshi Saito.
2007-08-02Move session_start out of MyProcPort stucture and make it a global called ↵Andrew Dunstan
MyStartTime, so that we will be able to create a cookie for all processes for CSVlogs. It is set wherever MyProcPid is set. Take the opportunity to remove the now unnecessary session-only restriction on the %s and %c escapes in log_line_prefix.
2007-08-02Make sure syslogPipe runs in binary mode on Windows to avoid corrupting the ↵Andrew Dunstan
pipe chunking protocol. Backport to 8.0
2007-08-02Fix a memory leak in tuplestore_end(). Unlikely to be significant duringNeil Conway
normal operation, but tuplestore_end() ought to do what it claims to do.
2007-08-01Support an optional asynchronous commit mode, in which we don't flush WALTom Lane
before reporting a transaction committed. Data consistency is still guaranteed (unlike setting fsync = off), but a crash may lose the effects of the last few transactions. Patch by Simon, some editorialization by Tom.
2007-08-01Fix strange quoting.Bruce Momjian
2007-08-01Fix script quoting problem.Bruce Momjian
2007-07-31Fix a bug in the original implementation of redundant-join-clause removal:Tom Lane
clauses in which one side or the other references both sides of the join cannot be removed as redundant, because that expression won't have been constrained below the join. Per report from Sergey Burladyan. CVS HEAD does not contain this bug due to EquivalenceClass rewrite, but it seems wise to include the regression test for it anyway.
2007-07-31If we're gonna use ExecRelationIsTargetRelation here, might as wellTom Lane
simplify a bit further.
2007-07-31Fix security definer functions with polymorphic arguments. This case hasTom Lane
never worked because fmgr_security_definer() neglected to pass the fn_expr information through. Per report from Viatcheslav Kalinin.
2007-07-27Slight refactor for ExecOpenScanRelation(): we can useNeil Conway
ExecRelationIsTargetRelation() to check if the relation is a target rel, rather than scanning through the result relation array ourselves.
2007-07-26Remove FileUnlink(), which wasn't being used anywhere and interacted poorlyTom Lane
with the recent patch to log temp file sizes at removal time. Doesn't seem worth fixing since it's unused. In passing, make a few elog messages conform to the message style guide.
2007-07-25Arrange to put TOAST tables belonging to temporary tables into special schemasTom Lane
named pg_toast_temp_nnn, alongside the pg_temp_nnn schemas used for the temp tables themselves. This allows low-level code such as the relcache to recognize that these tables are indeed temporary, which enables various optimizations such as not WAL-logging changes and using local rather than shared buffers for access. Aside from obvious performance benefits, this provides a solution to bug #3483, in which other backends unexpectedly held open file references to temporary tables. The scheme preserves the property that TOAST tables are not in any schema that's normally in the search path, so they don't conflict with user table names. initdb forced because of changes in system view definitions.
2007-07-25Suppress warning when compiling with -DPROFILE_PID_DIR: sys/stat.h isTom Lane
supposed to be included when using mkdir().
2007-07-25Adjust horology test to avoid join-plan-dependent result ordering inTom Lane
a few queries. Should fix buildfarm failures arising from new, more aggressive autovac settings.
2007-07-25Synced parserMichael Meskes
2007-07-25Rename DLLIMPORT macro to PGDLLIMPORT to avoid conflict withMagnus Hagander
third party includes (like tcl) that define DLLIMPORT.
2007-07-25Fix standalone win32 makefile (MSVC6) for SSPI and GSSAPI.Magnus Hagander
Hiroshi Saito
2007-07-25Disable warning 4090 = different const qualifiers on msvc since itMagnus Hagander
warns about things that aren't wrong.
2007-07-25Silence compiler warnings on mingwMagnus Hagander
2007-07-25Implement RETURN QUERY for PL/PgSQL. This provides some convenient syntaxNeil Conway
sugar for PL/PgSQL set-returning functions that want to return the result of evaluating a query; it should also be more efficient than repeated RETURN NEXT statements. Based on an earlier patch from Pavel Stehule.
2007-07-24Fix predicate-proving logic to cope with binary-compatibility cases whenTom Lane
checking whether an IS NULL/IS NOT NULL clause is implied or refuted by a strict function. Per example from Dawid Kuroczko. Backpatch to 8.2 since this is arguably a performance bug.
2007-07-24Silence compiler warning on mingwMagnus Hagander
2007-07-24Make it possible, and default, for MingW to build with SSPI supportMagnus Hagander
by dynamically loading the function that's missing from the MingW headers and library.
2007-07-24Create a new dedicated Postgres process, "wal writer", which exists to writeTom Lane
and fsync WAL at convenient intervals. For the moment it just tries to offload this work from backends, but soon it will be responsible for guaranteeing a maximum delay before asynchronously-committed transactions will be flushed to disk. This is a portion of Simon Riggs' async-commit patch, committed to CVS separately because a background WAL writer seems like it might be a good idea independently of the async-commit feature. I rebased walwriter.c on bgwriter.c because it seemed like a more appropriate way of handling signals; while the startup/shutdown logic in postmaster.c is more like autovac because we want walwriter to quit before we start the shutdown checkpoint.
2007-07-24Set a default autovacuum vacuum_cost_delay value of 20ms, to avoid excessiveAlvaro Herrera
I/O utilization, per discussion. While at it, lower the autovacuum vacuum and analyze threshold values to 50 tuples. It is a bit higher (i.e. more conservative) than what I originally proposed but much better than the old values for small tables.
2007-07-23Just noticed that libpq thinks the maximum command tag length is 40,Tom Lane
whereas in the backend it's been 64 for some time. Hasn't mattered because no actual tags exceed 40 bytes, but for consistency they should be alike.
2007-07-23Use PQExpBuffer for error message in fe-auth.c.Magnus Hagander
In passing, change functions that passedin both PGconn and parts of it to just pass in the PGconn.
2007-07-23Stupid typo.Magnus Hagander
2007-07-23SSPI authentication on Windows. GSSAPI compatible client when doing KerberosMagnus Hagander
against a Unix server, and Windows-specific server-side authentication using SSPI "negotiate" method (Kerberos or NTLM). Only builds properly with MSVC for now.
2007-07-21Fix elog.c to avoid infinite recursion (leading to backend crash) whenTom Lane
log_min_error_statement is active and there is some problem in logging the current query string; for example, that it's too long to include in the log message without running out of memory. This problem has existed since the log_min_error_statement feature was introduced. No doubt the reason it wasn't detected long ago is that 8.2 is the first release that defaults log_min_error_statement to less than PANIC level. Per report from Bill Moran.
2007-07-20Fix regression tests for PL/pgSQL error message changesPeter Eisentraut
2007-07-20Fix WAL replay of truncate operations to cope with the possibility that theTom Lane
truncated relation was deleted later in the WAL sequence. Since replay normally auto-creates a relation upon its first reference by a WAL log entry, failure is seen only if the truncate entry happens to be the first reference after the checkpoint we're restarting from; which is a pretty unusual case but of course not impossible. Fix by making truncate entries auto-create like the other ones do. Per report and test case from Dharmendra Goyal.
2007-07-20Capitalize language key words in error messagesPeter Eisentraut
2007-07-19On second thought, the tests for what to do with stderr output are aTom Lane
lot more sensible if we check the chunk-output case first. Not back-patched since it's just a cosmetic improvement.
2007-07-19Make replace(), split_part(), and string_to_array() behave somewhat sanelyTom Lane
when handed an invalidly-encoded pattern. The previous coding could get into an infinite loop if pg_mb2wchar_with_len() returned a zero-length string after we'd tested for nonempty pattern; which is exactly what it will do if the string consists only of an incomplete multibyte character. This led to either an out-of-memory error or a backend crash depending on platform. Per report from Wiktor Wodecki.
2007-07-19Only use the pipe chunking protocol if we know the syslogger shouldAndrew Dunstan
be catching stderr output, and we are not ourselves the syslogger. Otherwise, go directly to stderr. Bug noticed by Tom Lane. Backpatch as far as 8.0.
2007-07-18Fix an old thinko in SS_make_initplan_from_plan, which is used when optimizingTom Lane
a MIN or MAX aggregate call into an indexscan: the initplan is being made at the current query nesting level and so we shouldn't increment query_level. Though usually harmless, this mistake could lead to bogus "plan should not reference subplan's variable" failures on complex queries. Per bug report from David Sanchez i Gregori.
2007-07-18Cast NULL to a pointer type in the execl() call, to avoid a compiler warning onAlvaro Herrera
some platforms and possibly a bug. Per report from Stefan and subsequent discussion.
2007-07-18Properly adjust age() seconds to match the sign of the larger units.Bruce Momjian
Patch from Tom.
2007-07-17Fix incorrect optimization of foreign-key checks. When an UPDATE on theTom Lane
referencing table does not change the tuple's FK column(s), we don't bother to check the PK table since the constraint was presumably already valid. However, the check is still necessary if the tuple was inserted by our own transaction, since in that case the INSERT trigger will conclude it need not make the check (since its version of the tuple has been deleted). We got this right for simple cases, but not when the insert and update are in different subtransactions of the current top-level transaction; in such cases the FK check would never be made at all. (Hence, problem dates back to 8.0 when subtransactions were added --- it's actually the subtransaction version of a bug fixed in 7.3.5.) Fix, and add regression test cases. Report and fix by Affan Salman.
2007-07-17Implement CREATE TABLE LIKE ... INCLUDING INDEXES. Patch from NikhilS,Neil Conway
based in part on an earlier patch from Trevor Hardcastle, and reviewed by myself.