summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2008-05-27Explicitly bind gettext() to the UTF8 locale when in use.Magnus Hagander
This is required on Windows due to the special locale handling for UTF8 that doesn't change the full environment. Fixes crash with translated error messages per bugs 4180 and 4196. Tom Lane
2008-05-27Alter the xxx_pattern_ops opclasses to use the regular equality operator ofTom Lane
the associated datatype as their equality member. This means that these opclasses can now support plain equality comparisons along with LIKE tests, thus avoiding the need for an extra index in some applications. This optimization was not possible when the pattern opclasses were first introduced, because we didn't insist that text equality meant bitwise equality; but we do now, so there is no semantic difference between regular and pattern equality operators. I removed the name_pattern_ops opclass altogether, since it's really useless: name's regular comparisons are just strcmp() and are unlikely to become something different. Instead teach indxpath.c that btree name_ops can be used for LIKE whether or not the locale is C. This might lead to a useful speedup in LIKE queries on the system catalogs in non-C locales. The ~=~ and ~<>~ operators are gone altogether. (It would have been nice to keep them for backward compatibility's sake, but since the pg_amop structure doesn't allow multiple equality operators per opclass, there's no way.) A not-immediately-obvious incompatibility is that the sort order within bpchar_pattern_ops indexes changes --- it had been identical to plain strcmp, but is now trailing-blank-insensitive. This will impact in-place upgrades, if those ever happen. Per discussions a couple months ago.
2008-05-26Fix an old corner-case bug in set_config_option: push_old_value has to beTom Lane
called before, not after, calling the assign_hook if any. This is because push_old_value might fail (due to palloc out-of-memory), and in that case there would be no stack entry to tell transaction abort to undo the GUC assignment. Of course the actual assignment to the GUC variable hasn't happened yet --- but the assign_hook might have altered subsidiary state. Without a stack entry we won't call it again to make it undo such actions. So this is necessary to make the world safe for assign_hooks with side effects. Per a discussion a couple weeks ago with Magnus. Back-patch to 8.0. 7.x did not have the problem because it did not have allocatable stacks of GUC values.
2008-05-25Adjust timestamp regression tests to prevent two low-probability failureTom Lane
cases. Recent buildfarm experience shows that it is sometimes possible to execute several SQL commands in less time than the granularity of Windows' not-very-high-resolution gettimeofday(), leading to a failure because the tests expect the value of now() to change and it doesn't. Also, it was recognized some time ago that the same area of the tests could fail if local midnight passes between the insertion and the checking of the values for 'yesterday', 'tomorrow', etc. Clean all this up per ideas from myself and Greg Stark. There remains a window for failure if the transaction block is entered exactly at local midnight (so that 'now' and 'today' have the same value), but that seems low-probability enough to live with. Since the point of this change is mostly to eliminate buildfarm noise, back-patch to all versions we are still actively testing.
2008-05-21Link in keywords file instead of copying it.Michael Meskes
Use #define/#ifdef instead of sed to fix include files, this should work on Windows too.
2008-05-21Add include directory required after the latest changes to the ecpg build.Magnus Hagander
Per red Windows buildfarm members.
2008-05-21Fix function headers not matching prototype in header file, perMagnus Hagander
compiler warnings on msvc.
2008-05-21Use CRITICAL_SECTION instead of Mutexes for thread-locking in libpq onMagnus Hagander
Windows, for better performance. Per suggestion from Andrew Chernow, but not his patch since the underlying code was changed to deal with return values.
2008-05-21ecpg_keywords.o also depends on preproc.hMichael Meskes
2008-05-20Synced parser.Michael Meskes
Made ecpg parser use backend provided keyword list. Changed whenever test so exit value is 0.
2008-05-20Simplify code in formatting.c now that to upper/lower/initcase do notBruce Momjian
modify the passed string.
2008-05-19Remove arbitrary 10MB limit on two-phase state file size. It's not that hardHeikki Linnakangas
to go beoynd 10MB, as demonstrated by Gavin Sharry's example of dropping a schema with ~25000 objects. The really bogus thing about the limit was that it was enforced when a state file file was read in, not when it was written, so you would end up with a prepared transaction that you can't commit or abort, and the only recourse was to shut down the server and remove the file by hand. Raise the limit to MaxAllocSize, and enforce it also when a state file is written. We could've removed the limit altogether, but reading in a file larger than MaxAllocSize would fail anyway because we read it into a palloc'd buffer. Backpatch down to 8.1, where 2PC and this issue was introduced.
2008-05-19Make to_char()'s localized month/day names depend on LC_TIME, not LC_MESSAGES.Tom Lane
Euler Taveira de Oliveira
2008-05-19Coercion sanity check in ri_HashCompareOp failed to allow for enums, as perTom Lane
example from Rod Taylor. On reflection the correct test here is for any polymorphic type, not specifically ANYARRAY as in the original coding.
2008-05-18Remove old kluge put in to allow Windows regression tests to succeed, and nowAndrew Dunstan
found to have been made necessary by our skipping tty detection on Windows. Now that we are doing tty detection on Windows the kluge is unnecessary and wrong.
2008-05-18okay, looks like ecpg/compatlib needs -lintl too.Tom Lane
Per buildfarm results.
2008-05-17Use isatty() test for pager on Win32; not sure why it was disabled forBruce Momjian
that platform.
2008-05-17In psql, test for output to stdout when forcing pager for wide output.Bruce Momjian
2008-05-17Another fix for compiles on an empty 'po' directory.Bruce Momjian
2008-05-17Don't call rm with empty file list.Peter Eisentraut
2008-05-17ecpglib needs to link with libintl if it's in use.Tom Lane
Per buildfarm results.
2008-05-17Improve pg_regress so that it reports the fact if any test processTom Lane
exits with nonzero status. The Windows part of this is untested ...
2008-05-17Fix utterly-bogus code for computing row heights. Per crashes onTom Lane
spoonbill, though one wonders why it didn't misbehave everywhere. In passing remove some unnecessary modulo calculations.
2008-05-17Fix a subtle bug exposed by recent wal_sync_method rearrangements.Tom Lane
Formerly, the default value of wal_sync_method was determined inside xlog.c, but now it is determined inside guc.c. guc.c was reading xlogdefs.h without having read <fcntl.h>, leading to wrong determination of DEFAULT_SYNC_METHOD. Obviously xlogdefs.h needs to include <fcntl.h> for itself to ensure stable results.
2008-05-17Remove DEFAULT_SYNC_FLAGBIT ... not used anymore.Tom Lane
2008-05-17fix ecpg regression tests broken by over-eager adding of $PostgreSQL$ markersAndrew Dunstan
2008-05-17Add $PostgreSQL$ markers to a lot of files that were missing them.Andrew Dunstan
This particular batch was just for *.c and *.h file. The changes were made with the following 2 commands: find . \( \( -name 'libstemmer' -o -name 'expected' -o -name 'ppport.h' \) -prune \) -o \( -name '*.[ch]' \) \( -exec grep -q '\$PostgreSQL' {} \; -o -print \) | while read file ; do head -n 1 < $file | grep -q '^/\*' && echo $file; done | xargs -l sed -i -e '1s/^\// /' -e '1i/*\n * $PostgreSQL:$ \n *' find . \( \( -name 'libstemmer' -o -name 'expected' -o -name 'ppport.h' \) -prune \) -o \( -name '*.[ch]' \) \( -exec grep -q '\$PostgreSQL' {} \; -o -print \) | xargs -l sed -i -e '1i/*\n * $PostgreSQL:$ \n */'
2008-05-17Allow ALTER SEQUENCE START WITH to change the recorded start_value of aTom Lane
sequence. This seems an obvious extension to the recent patch, and it makes the code noticeably cleaner and more orthogonal.
2008-05-16Fix declarations of pthread functions, missed in recent commit.Tom Lane
2008-05-16Add a RESTART (without parameter) option to ALTER SEQUENCE, allowing aTom Lane
sequence to be reset to its original starting value. This requires adding the original start value to the set of parameters (columns) of a sequence object, which is a user-visible change with potential compatibility implications; it also forces initdb. Also add hopefully-SQL-compatible RESTART/CONTINUE IDENTITY options to TRUNCATE TABLE. RESTART IDENTITY executes ALTER SEQUENCE RESTART for all sequences "owned by" any of the truncated relations. CONTINUE IDENTITY is a no-op option. Zoltan Boszormenyi
2008-05-16Reduce unnecessary PANIC to ERROR, improve a couple of comments.Tom Lane
2008-05-16Recent patch doesn't compile without <limits.h>Tom Lane
2008-05-16Suppress a possibly-uninitialized-variable warning. (I'm only seeing itTom Lane
on Apple's gcc and not my other machines, but still it seems worth getting rid of.)
2008-05-16Implement error checking for pthreads calls in thread-safe mode. They reallyMagnus Hagander
should always succeed, but in the likely event of a failure we would previously fall through *without locking* - the new code will exit(1). Printing the error message on stderr will not work for all applications, but it's better than nothing at all - and our API doesn't provide a way to return the error to the caller.
2008-05-16Update psql startup banner to be shorter, suggest "help" for help.Bruce Momjian
Add a few "help" entries. Move \g help entry into "General". Update psql version mismatch warning text. Joshua D. Drake
2008-05-16Add detection of psql pager to trigger on wide output. Also add pagerBruce Momjian
detection for wrapped lines or lines with newlines that need pager to display.
2008-05-16Extend GIN to support partial-match searches, and extend tsquery to supportTom Lane
prefix matching using this facility. Teodor Sigaev and Oleg Bartunov
2008-05-16Add localization support to ecpg.Peter Eisentraut
Author: Euler Taveira de Oliveira <euler@timbira.com>
2008-05-16Persuade GIN to react to control-C in a reasonable amount of timeTom Lane
while building a GIN index.
2008-05-15Support SQL/PSM-compatible CASE statement in plpgsql.Tom Lane
Pavel Stehule
2008-05-15Add code to eval_const_expressions() to support const-simplification ofTom Lane
CoerceViaIO nodes. This improves the ability of the planner to deal with cases where the node input is a constant. Per bug #4170.
2008-05-15Add support for tracking call counts and elapsed runtime for user-definedTom Lane
functions. Note that because this patch changes FmgrInfo, any external C functions you might be testing with 8.4 will need to be recompiled. Patch by Martin Pihlak, some editorialization by me (principally, removing tracking of getrusage() numbers)
2008-05-14Move the "instr_time" typedef and associated macros into a new headerTom Lane
file portability/instr_time.h, and add a couple more macros to eliminate some abstraction leakage we formerly had. Also update psql to use this header instead of its own copy of nearly the same code. This commit in itself is just code cleanup and shouldn't change anything. It lays some groundwork for the upcoming function-stats patch, though.
2008-05-14Reorgnize psql \? help output, to reduce the size of the "General"Bruce Momjian
heading at the top; broken into more sections now.
2008-05-14Fix a few warnings that have crept into CVS HEAD.Bruce Momjian
2008-05-14Remove the special variable for open_sync_bit used in O_SYNC and O_DSYNCMagnus Hagander
modes, replacing it with a call to a function that derives it from the sync_method variable, now that it has distinct values for these two cases. This means that assign_xlog_sync_method() no longer changes any settings, thus fixing the bug introduced in the change to use a guc enum for wal_sync_method.
2008-05-14Make the win32 implementation of getrusage() return EINVAL if beingMagnus Hagander
asked for anything other than RUSAGE_SELF, since it's not supported. This is never called anywhere in the code today, but might be in the future. Not backpatching, since it's not called anywhere today.
2008-05-13Improve plpgsql's RAISE command. It is now possible to attach DETAIL andTom Lane
HINT fields to a user-thrown error message, and to specify the SQLSTATE error code to use. The syntax has also been tweaked so that the Oracle-compatible case "RAISE exception_name" works (though you won't get a very nice error message if you just write that much). Lastly, support the Oracle-compatible syntax "RAISE" with no parameters to re-throw the current error from within an EXCEPTION block. In passing, allow the syntax SQLSTATE 'nnnnn' within EXCEPTION lists, so that there is a way to trap errors with custom SQLSTATE codes. Pavel Stehule and Tom Lane
2008-05-13Don't try to close negative file descriptors, since this can causeMagnus Hagander
crashes on certain platforms. In particular, the MSVC runtime is known to do this. Fixes bug #4162, reported and diagnosed by Javier Pimas
2008-05-13This is the patch replace offnum++ by OffsetNumberNext, to beBruce Momjian
consistent. OffsetNumberNext() has some casting that makes it useful. Fujii Masao