Commit Graph

12583 Commits

Author SHA1 Message Date
Bruce Momjian 60a068b389 Move non-blocking code into its own /port file, for code clarity. 2004-03-10 21:12:49 +00:00
Peter Eisentraut 3ab5aa02f8 Build scanner output when making a distribution. 2004-03-09 19:47:05 +00:00
Bruce Momjian 8567bb2d06 Corrects a typo, introduces missing variables, and rearranges the
initialization of stats process under EXEC_BACKEND.

[A cleaner, rationalized approach to stat/backend/SSDataBase child
processes under EXEC_BACKEND is on my TODO list. However this patch
takes care of immediate concerns (ie. stats test now passes under
win32)]

Claudio Natoli
2004-03-09 05:11:53 +00:00
Bruce Momjian eeec31774a Determines the PKGLIBDIR equivalent under win32. Requires pgsql lib and
bin directories to be packaged under the same root directory (eg. <some
path>/pgsql/bin and <some path>/pgsql/lib) for the win32 port, which
does not appear to be an onerous restriction.

Claudio Natoli
2004-03-09 05:06:45 +00:00
Bruce Momjian 943eae92fb Add ALSO keyword to CREATE RULE.
Fabien COELHO
2004-03-09 05:05:41 +00:00
Bruce Momjian 53cd7cd8a9 Make a separate win32 debug DLL along with the non-debug version:
Currently, src/interfaces/libpq/win32.mak builds a statically-linked
library "libpq.lib", a debug dll "libpq.dll", import library for the
debug dll "libpqdll.lib", a release dll "libpq.dll", import library for
the release dll "libpqdll.lib".  To avoid naming clashes, I would make
the debug dll and import libraries "libpqd.dll" and "libpqddll.lib".

Basically, the debug build uses the cl flags: "/MDd /D _DEBUG", and the
release build uses the cl flags "/MD /D NDEBUG".  Usually the debug
build has a "D" suffix on the file name, so for example:

libpqd.dll     libpq, debug build
libpqd.lib     libpq, debug build, import library
libpq.dll      libpq, release build
libpq.lib      libpq, release build, import library

David Turner
2004-03-09 04:53:37 +00:00
Bruce Momjian f0f4e82f45 The win32 port backend will require the functionality provided by
canonicalize_path. Patch moves it from initdb.c to port/path.c.

Claudio Natoli
2004-03-09 04:49:02 +00:00
Bruce Momjian 2d3fe86bc4 Add:
#log_line_prefix = ''         # e.g. '<%u%%%d> '
                              # %u=user name %d=database name
                              # %r=remote host and port
                              # %p=PID %t=timestamp %i=command tag
                              # %c=session id %l=session line number
                              # %s=session start timestamp
                              # %x=stop here in non-session processes
                              # %%='%'

Andrew Dunstan
2004-03-09 04:43:07 +00:00
Bruce Momjian 4679e875c0 Add comment about why ON COMMENT in non-current database throws just an
warning.
2004-03-08 21:35:59 +00:00
Tom Lane 7998e8ca6a Test for whether a previous IN join restricts the current join was too
strict, per discussion with Dennis Haney.
Also, rearrange the preceding tests to avoid redundancy.
2004-03-08 17:20:17 +00:00
Tom Lane bc19d6641a When testing usability of a partial index, recognize that an index
predicate of the form 'foo IS NOT NULL' is implied by a WHERE clause
that uses 'foo' in any strict operator or function.  Per suggestion
and preliminary implementation by John Siracusa; some further hacking
by moi.
2004-03-07 05:43:53 +00:00
Bruce Momjian 1973971821 Per a brief conversation with Tom, I've created a patch for adding
support for 'week' within the date_trunc function.

Within the patch I added a couple of test cases and associated target
output, and changed the documentation to add 'week' appropriately.

Robert Creager
2004-03-05 02:41:14 +00:00
Tom Lane 44611f6e6d libpq's query to get the OIDs of large-object support functions was not
schema-safe.  Make it so, and improve the internal support for knowledge
of server version.
2004-03-05 01:53:59 +00:00
Bruce Momjian d91acf8401 Win32:
* Mostly, casting etc to remove compilation warnings in win32 only code.

* main.c: set _IONBF to stdout/stderr under win32 (under win32, _IOLBF
defaults to full buffering)

* pg_resetxlog/Makefile: ensures dirmod.o gets cleaned (got bitten by
this when, after "make clean"ing, switching compilation between Ming +
Cygwin)

Claudio Natoli
2004-03-05 01:11:04 +00:00
Bruce Momjian 65a0db19f4 Add new SPI functions for use by PL/Java:
+extern Oid SPI_getargtypeid(void *plan, int argIndex);
	+extern int SPI_getargcount(void *plan);
	+extern bool SPI_is_cursor_plan(void *plan);

Thomas Hallgren
2004-03-05 00:47:01 +00:00
Bruce Momjian 202cbdca03 Fix log_executor_stats for non-multi queries. Backpatch to 7.4.X. 2004-03-05 00:21:41 +00:00
Neil Conway 2146bfc869 Emit a warning when an empty string is input to the oid, float4, and
float8 types. This begins the deprecation of this feature: in 7.6,
this input will be rejected.

Also added a new error code for warnings about deprecated features,
and updated the regression tests.
2004-03-04 21:47:18 +00:00
Michael Meskes f3c6d592d2 - Fixed segfault due to missing check for variable declaration.
- Added check for multidimensional array usage.
2004-03-04 07:32:02 +00:00
Tom Lane 9e733eab69 Modify pg_dump so that the preferred dump order is by name within
object types, rather than by OID.  This should help ensure consistent
dump output from databases that are logically the same but have different
histories, per recent discussion about 'diffing' databases.  The patch
is bulky because of renaming of fields, but not very complicated.
Also, do some tweaking to cause BLOB restoration to be done in a better
order, and clean up pg_restore's textual output to exactly match pg_dump.
2004-03-03 21:28:55 +00:00
Bruce Momjian 119e968305 Adds the -W flag to the pwd call under Win32. This allows directories,
which are munged by sed, such as:
/e/cygwin/opt/diff9c/pgsql/src/test/regress/data/agg.data to be
correctly passed as:
e:/cygwin/opt/diff9c/pgsql/src/test/regress/data/agg.data

FWIW, "fixes" a large (> 20) tests under Win32.

Claudio Natoli
2004-03-03 04:22:47 +00:00
Tom Lane 0ee2603455 Remove useless rebuilding of subPlan list during ExecInitNode. Wouldn't
have been there to start with, except for overly enthusiastic copy-and-
paste ...
2004-03-02 22:17:34 +00:00
Tom Lane 13f466167d Update obsolete comment. 2004-03-02 22:05:24 +00:00
Tom Lane 0c6e97db47 Always schema-qualify the name of a function referenced in CREATE CAST.
The former coding failed if the cast function was not in the pg_catalog
schema.  How'd this escape detection?
2004-03-02 21:14:44 +00:00
Tom Lane 7bbd9d93cc Junkfilter logic to force a projection step during SELECT INTO was too
simplistic; it recognized SELECT * FROM but not SELECT * FROM LIMIT.
Per bug report from Jeff Bohmer.
2004-03-02 18:56:15 +00:00
Bruce Momjian b95c05c9c1 Fix sizeof(Oid) in PGSTAT_NUM_TABPURGE. (Actually done in previous commit.) 2004-03-02 18:37:52 +00:00
Bruce Momjian 24262be5f9 Add missing checks for Borland C compiler.
L J Bayuk
2004-03-02 18:35:59 +00:00
Tom Lane 03e2a47e0b Teach is_distinct_query to recognize that GROUP BY forces a subquery's
output to be distinct, if all the GROUP BY columns appear in the output.
Per suggestion from Dennis Haney.
2004-03-02 16:42:20 +00:00
Bruce Momjian b57cbb4ef0 Add missing sprompt.obj psql usage for Borland compiler, per private
report from krizsan.

Backpatch to 7.4.X.
2004-03-02 15:17:16 +00:00
Michael Meskes fd104c5764 Added partly missing VOLATILE keyword. 2004-03-02 06:45:05 +00:00
Tom Lane 64917ccb56 make_sort_from_pathkeys()'s method for choosing which of several
equivalent sort expressions to use was broken: you can't just look
at the relation membership, you have to actually grovel over the
individual Vars in each expression.  I think this did work when it
was written, but it was broken by subsequent optimizations that made
join relations not propagate every single input variable upward.
Must find the Var that got propagated, not choose one at random.
Per bug report from Daniel O'Neill.
2004-02-29 17:36:05 +00:00
Bruce Momjian 31ce2fddfa "Corrects" the int8/float4/float8 tests under win32.
Claudio Natoli
2004-02-29 02:41:45 +00:00
Tom Lane 9be7ea088c Remove unneeded indxqual field in IndexScanState, and the useless work
spent initializing it during indexscan startup.
2004-02-28 19:46:06 +00:00
Dennis Bjorklund 303f4649a2 Translation updates 2004-02-28 17:17:48 +00:00
Dennis Bjorklund b8d518c17d Translation update 2004-02-28 11:05:12 +00:00
Dennis Bjorklund 90aac56562 Translation updates 2004-02-28 11:00:06 +00:00
Dennis Bjorklund ef6e54d78b Translation updates 2004-02-28 10:52:06 +00:00
Tom Lane 6161766daf Adjust remove_redundant_join_clauses() so that when it has a choice
of which redundant clause to remove, it removes the more expensive one.
In simple scenarios the clauses will be like 'var = var' and there's
no difference, but we are now capable of considering cases where there
are sub-selects in the clauses, and it makes a BIG difference.
2004-02-27 21:48:04 +00:00
Tom Lane df79b847fe genericcostestimate() neglected to include qual startup cost in
indexTotalCost.  I think this may not make any real difference in 7.4,
but it definitely is a problem with CVS tip's new equation.
2004-02-27 21:44:34 +00:00
Tom Lane f5d8f0bb19 process_implied_equality must copy the substructure of the clauses it
is generating, to avoid problems when subselects are involved.  Per
report from Damon Hart.
2004-02-27 21:42:00 +00:00
Neil Conway f46a80c362 Fix a few omissions in the initcap() documentation & source code
comments, make some unrelated improvements to the functions
documentation, and perform some minor consistency cleanup
elsewhere. Original initcap() change from Dennis B., additional
changes by Neil C.
2004-02-27 03:59:23 +00:00
Bruce Momjian 8878f4aee7 For immediate application to HEAD.
Corrects bit-rot of recently applied patch. win32/cygwin only.

Claudio Natoli
2004-02-26 02:59:26 +00:00
Bruce Momjian c672aa823b For application to HEAD, following community review.
* Changes incorrect CYGWIN defines to __CYGWIN__

* Some localtime returns NULL checks (when unchecked cause SEGVs under
Win32
regression tests)

* Rationalized CreateSharedMemoryAndSemaphores and
AttachSharedMemoryAndSemaphores (Bruce, I finally remembered to do it);
requires attention.

Claudio Natoli
2004-02-25 19:41:23 +00:00
Tom Lane 5ada9ef088 Teach plpgsql's lexer about dollar-quoted literals.
Andrew Dunstan, some help from Tom Lane.
2004-02-25 18:10:51 +00:00
Tom Lane fa7a3abe87 anyarray really needs to be declared with typalign = 'd', so that entries
in pg_statistic are correctly aligned if they contain values that require
double alignment.  Too bad we cannot force initdb for this in 7.4 branch.
2004-02-24 22:59:10 +00:00
Tom Lane fa96a5e15b Add %option nodefault to all our flex lexers. Fix a couple of rule gaps
exposed thereby.  AFAICT these would not lead to any worse problems than
junk emitted on the backend's stdout, but we should have the option to
catch possible worse errors in future.
2004-02-24 22:06:32 +00:00
Tom Lane 58e705320e Implement dollar-quoting in the backend lexer and psql. Documentation
is still lacking, as is support in plpgsql and other places, but this is
the basic feature.  Patch by Andrew Dunstan, some tweaking by Tom Lane.
Also, enable %option nodefault in these two lexers, and patch some gaps
revealed thereby.
2004-02-24 21:45:18 +00:00
Michael Meskes 1f87d79142 - Corrected error handling in PGTYPEStimestamp_from_asc.
- Set pgtypeslib version to 1.2.
2004-02-24 16:07:49 +00:00
Tom Lane 92bec9a0bc Cause pg_dump to emit a 'SET client_encoding' command at the start of
any restore operation, thereby ensuring that dumped data is interpreted
the same way it was dumped even if the target database has a different
encoding.  Per suggestions from Pavel Stehule and others.  Also,
simplify scheme for handling check_function_bodies ... we may as well
just set that at the head of the script.
2004-02-24 03:35:19 +00:00
Tom Lane 55fb172739 Don't crash when a rowtype argument to a plpgsql function is NULL.
Per report from Chris Campbell.
2004-02-24 01:44:33 +00:00
Tom Lane 3f2cf812af Fix obsolete comment. 2004-02-23 23:55:08 +00:00
Tom Lane 7a57a67278 Replace opendir/closedir calls throughout the backend with AllocateDir
and FreeDir routines modeled on the existing AllocateFile/FreeFile.
Like the latter, these routines will avoid failing on EMFILE/ENFILE
conditions whenever possible, and will prevent leakage of directory
descriptors if an elog() occurs while one is open.
Also, reduce PANIC to ERROR in MoveOfflineLogs() --- this is not
critical code and there is no reason to force a DB restart on failure.
All per recent trouble report from Olivier Hubaut.
2004-02-23 23:03:10 +00:00
Tom Lane 4f571319d3 NOFILE isn't used anywhere any more. 2004-02-23 20:48:03 +00:00
Tom Lane f83356c7f5 Do a direct probe during postmaster startup to determine the maximum
number of openable files and the number already opened.  This eliminates
depending on sysconf(_SC_OPEN_MAX), and allows much saner behavior on
platforms where open-file slots are used up by semaphores.
2004-02-23 20:45:59 +00:00
Michael Meskes b4c8dcb294 Fixed incorrect output of indicator structs using the name of the data struct. 2004-02-23 18:14:18 +00:00
Tom Lane 6b7763d1c1 Write #include <dl.h>, not #include "dl.h", to correctly reflect the
fact that dl.h is a system header and not one of ours.
2004-02-23 04:11:10 +00:00
Tom Lane 780cba9880 Move responsibility for copying argv[] array into ps_status.c, where it
logically belongs.  Arrange to update the _NSGetArgv() copy of the argv
pointer on Darwin.  (It seems likely that other NeXT-derived platforms
also have an _NSGetArgv() problem, but until we have some reports I'll
just make this #ifdef __darwin__.)
2004-02-22 21:26:55 +00:00
Tom Lane a81b9d679f Fix random build breakage from log_disconnections patch. 2004-02-21 06:29:58 +00:00
Tom Lane 59f9a0b9df Implement a solution to the 'Turkish locale downcases I incorrectly'
problem, per previous discussion.  Make some additional changes to
centralize the knowledge of just how identifier downcasing is done,
in hopes of simplifying any future tweaking in this area.
2004-02-21 00:34:53 +00:00
Tom Lane 4b39aa3a7c Re-implement psql's input scanning to use a flex-generated lexer, as per
recent discussion.  The lexer is used for both SQL command text and
backslash commands.  The purpose of this change is to make it easier to
track the behavior of the backend's SQL lexer --- essentially identical
flex rules are now used by psql.  Also, this cleans up a lot of very
squirrelly code in mainloop.c and command.c.  The flex code is somewhat
bulkier than the removed code, but should be lots easier to maintain.
2004-02-19 19:40:09 +00:00
Tom Lane 737f1cd44b Cosmetic changes (mostly whitespace) to make it easier to diff the
backend lexer against psql's.
2004-02-19 19:11:30 +00:00
Bruce Momjian af3b182a57 Here is a patch that implements setitimer() on win32. With this patch
applied, deadlock detection and statement_timeout now works.

The file timer.c goes into src/backend/port/win32/.

The patch also removes two lines of "printf debugging" accidentally left
in pqsignal.h, in the console control handler.

Magnus Hagander
2004-02-18 16:25:12 +00:00
Michael Meskes f8257734e4 Added missing rule for DOUBLE variables. 2004-02-18 08:42:02 +00:00
Neil Conway 4553e1d80f Improve the consistency of the error message emitted when rejecting
invalid input to the oid type. Also, remove some long-unused code
from adt/numutils.c
2004-02-18 00:01:34 +00:00
Bruce Momjian 530570c598 Rename function log_session_end to log_disconnections. 2004-02-17 04:09:26 +00:00
Bruce Momjian 96f134550c Fix prototype for on_proc_exit in log_disconnections patch. 2004-02-17 04:06:26 +00:00
Bruce Momjian c53611e3e7 This patch brings up to date what I did last year (now unfortunately
bitrotted) to allow the logging of the end of a session, enabled by
the config setting "log_disconnections".

Andrew Dunstan
2004-02-17 03:54:57 +00:00
Bruce Momjian 1f17316a3d Here is an updated version of the win32 readdir patch.
1) Now puts in exactly the same change as the current-cvs mingw code
does. (see
http://cvs.sourceforge.net/viewcvs.py/mingw/runtime/mingwex/dirent.c?r1=
1.3&r2=1.4, second part of the patch).

2) Updates both xlog.c and slru.c in backend/access/transam/

3) Also updates pg_resetxlog, which also uses readdir() and checks the
errno value after the loop.

Magnus Hagander
2004-02-17 03:45:17 +00:00
Bruce Momjian ec6feaaed4 Under Win32, stat() returns an st_ino field, but it has no meaning (on
Win2K, and possibly all Win32 variants, it is always 0). This causes a
number of problems in the dfmgr.c logic, which basically all revolve
around the fact that *any* two files will appear to have the same inode.

Claudio Natoli
2004-02-17 03:35:57 +00:00
Tom Lane a536ed53bc Make use of statistics on index expressions. There are still some
corner cases that could stand improvement, but it does all the basic
stuff.  A byproduct is that the selectivity routines are no longer
constrained to working on simple Vars; we might in future be able to
improve the behavior for subexpressions that don't match indexes.
2004-02-17 00:52:53 +00:00
Bruce Momjian d372bba02d Change may -> might, and remove an extra tab. 2004-02-16 23:07:57 +00:00
Michael Meskes f464ad0bfd - Cleaned up parser a little bit. It does not make sense to allow a
typename to be typedef'ed that cannot be parsed as variable type.
- Allowed some SQL keywords to be used as C variable names.
2004-02-16 07:41:54 +00:00
Tom Lane f0c9397f80 First steps towards statistics on expressional (nee functional) indexes.
This commit teaches ANALYZE to store such stats in pg_statistic, but
nothing is done yet about teaching the planner to use 'em.
Also, repair longstanding oversight in separate ANALYZE command: it
updated the pg_class.relpages and reltuples counts for the table proper,
but not for indexes.
2004-02-15 21:01:39 +00:00
Peter Eisentraut 4b8f125973 New translation 2004-02-15 19:38:29 +00:00
Michael Meskes 2a545255cf - Allowed some C keywords to be used as SQL column names. 2004-02-15 15:38:20 +00:00
Michael Meskes a05977edd9 - Added missing braces to array parsing.
- Set ecpg version to 3.1.1.
	- Removed that old debugging output that I forgot the last time.
2004-02-15 13:48:54 +00:00
Tom Lane a9e08392dd Create crosstype comparison operators for date vs. timestamp and date
vs. timestamptz.  This allows use of indexes for expressions like
  datecol >= date 'today' - interval '1 month'
which were formerly not indexable without casting the righthand side
down from timestamp to date.
2004-02-14 20:16:18 +00:00
Tom Lane 2e5fe483a3 Repair optimization bug I introduced in a moment of brain fade back in
Nov 2002: when constant-expression simplification removes all the
aggregate function calls from a query, that doesn't mean we can act as
though there never were any aggregates.  Per bug report from Gabor Szucs.
2004-02-13 22:26:30 +00:00
Tom Lane 8787bc8ef3 After further thought about support for gathering stats on functional
indexes, it seems like we ought to put another layer of indirection
between the compute_stats functions and the actual data storage.  This
would allow us to compute the values on-the-fly, for example.
2004-02-13 06:39:49 +00:00
Tom Lane 96656f7dd7 Try to make 'cross-database references are not implemented' errors a
bit more helpful by identifying the specific qualified name being
complained of.
2004-02-13 01:08:20 +00:00
Tom Lane 69946411d3 Add hooks for type-specific calculation of ANALYZE statistics. Idea and
coding by Mark Cave-Ayland, some kibitzing by Tom Lane.  initdb forced
due to new column in pg_type.
2004-02-12 23:41:04 +00:00
Bruce Momjian 565606654a Add CVS ID tags to port/win32/files. 2004-02-12 20:37:34 +00:00
Tom Lane da99cce7cd Avoid delaying postmaster shutdown by up to 10 seconds on platforms
where signals do not terminate sleep() delays.
2004-02-12 20:07:26 +00:00
Bruce Momjian 4a1c29f87e Improve \? wording, remove 'internal'. 2004-02-12 19:58:16 +00:00
Peter Eisentraut c60128e54b Translation updates 2004-02-12 19:19:32 +00:00
Jan Wieck fc65a3e1fd Fixed bug where FlushRelationBuffers() did call StrategyInvalidateBuffer()
for already empty buffers because their buffer tag was not cleard out
when the buffers have been invalidated before.

Also removed the misnamed BM_FREE bufhdr flag and replaced the checks,
which effectively ask if the buffer is unpinned, with checks against the
refcount field.

Jan
2004-02-12 15:06:56 +00:00
Tom Lane 7bed6df184 Check only live tuples for OID validity, to avoid issues after ALTER
TABLE.  Per recent discussion.
2004-02-12 05:39:55 +00:00
Jan Wieck 1ecd035b31 Added hints about the reason, why the command string in
the view pg_stat_activity is missing, as per Bruces suggestion.

Jan
2004-02-12 01:44:22 +00:00
Tom Lane c3c09be34b Commit the reasonably uncontroversial parts of J.R. Nield's PITR patch, to
wit: Add a header record to each WAL segment file so that it can be reliably
identified.  Avoid splitting WAL records across segment files (this is not
strictly necessary, but makes it simpler to incorporate the header records).
Make WAL entries for file creation, deletion, and truncation (as foreseen but
never implemented by Vadim).  Also, add support for making XLOG_SEG_SIZE
configurable at compile time, similarly to BLCKSZ.  Fix a couple bugs I
introduced in WAL replay during recent smgr API changes.  initdb is forced
due to changes in pg_control contents.
2004-02-11 22:55:26 +00:00
Tom Lane 0cb117eb33 Repair some problems in bgwriter start/stop logic. In particular, don't
allow the bgwriter to start before the startup subprocess has finished
... it tends to crash otherwise.  (The same problem may have existed for
the checkpointer, I'm not entirely sure.)  Remove some code that was
redundant because the bgwriter is handled as a member of the backend list.
2004-02-11 22:25:02 +00:00
Bruce Momjian c6f0559371 Check and set thread-safe functions separately, rather than as a single
variable.

Remove thread locking for non-thread-safe functions, instead throw a
compile error.

Platforms will have to re-run tools/thread to record their thread
safety.
2004-02-11 21:44:06 +00:00
Bruce Momjian 15b330b648 Properly set NEED_REENTRANT_FUNCS for threaded libpq/ecpg.
Without this patch, no thread locking or *_r functions were being used.
2004-02-11 17:29:01 +00:00
Tom Lane 94a67cce7e No need to link libpq into these programs ... 2004-02-10 23:24:13 +00:00
Tom Lane 127ea18f48 Add configure support for determining UINT64_FORMAT, the appropriate
snprintf format for uint64 items.
2004-02-10 19:55:45 +00:00
Bruce Momjian feed7cf1c1 More clearly describe why PQinSend returns false for non-threaded libpq. 2004-02-10 15:21:24 +00:00
Tom Lane 0eb6951915 Repair missing inclusions of -lintl for shared libraries. 2004-02-10 07:26:25 +00:00
Tom Lane d1587f1f5b Looks like we need <unistd.h> for select() on Darwin. 2004-02-10 04:23:03 +00:00
Tom Lane 58f337a343 Centralize implementation of delay code by creating a pg_usleep()
subroutine in src/port/pgsleep.c.  Remove platform dependencies from
miscadmin.h and put them in port.h where they belong.  Extend recent
vacuum cost-based-delay patch to apply to VACUUM FULL, ANALYZE, and
non-btree index vacuuming.

By the way, where is the documentation for the cost-based-delay patch?
2004-02-10 03:42:45 +00:00
Tom Lane 87bd956385 Restructure smgr API as per recent proposal. smgr no longer depends on
the relcache, and so the notion of 'blind write' is gone.  This should
improve efficiency in bgwriter and background checkpoint processes.
Internal restructuring in md.c to remove the not-very-useful array of
MdfdVec objects --- might as well just use pointers.
Also remove the long-dead 'persistent main memory' storage manager (mm.c),
since it seems quite unlikely to ever get resurrected.
2004-02-10 01:55:27 +00:00
Neil Conway f06e79525a Win32 signals cleanup. Patch by Magnus Hagander, with input from Claudio
Natoli and Bruce Momjian (and some cosmetic fixes from Neil Conway).
Changes:

    - remove duplicate signal definitions from pqsignal.h

    - replace pqkill() with kill() and redefine kill() in Win32

    - use ereport() in place of fprintf() in some error handling in
      pqsignal.c

    - export pg_queue_signal() and make use of it where necessary

    - add a console control handler for Ctrl-C and similar handling
      on Win32

    - do WaitForSingleObjectEx() in CHECK_FOR_INTERRUPTS() on Win32;
      query cancelling should now work on Win32

    - various other fixes and cleanups
2004-02-08 22:28:57 +00:00
Tom Lane 2d330199c4 Add missing dependency, per Wade Klaver. 2004-02-07 07:20:12 +00:00
Jan Wieck f425b605f4 Cost based vacuum delay feature.
Jan
2004-02-06 19:36:18 +00:00
Jan Wieck 8d09e25693 Backing out the background writer sync() option.
Jan
2004-02-04 01:24:53 +00:00
Neil Conway e66fcce672 Use memmove() rather than memcpy() in set_var_from_var(). If this function
is asked to assign a variable to itself, it will result in doing a
memcpy() on an entirely-overlapping memory range, which results in
undefined behavior according to ANSI C. That said, it is unlikely to
actually do anything bad on any sane libc, but this keeps valgrind quiet.
2004-02-04 01:11:47 +00:00
Tom Lane d3917186b2 pwd 2004-02-03 17:52:55 +00:00
Tom Lane 391c3811a2 Rename SortMem and VacuumMem to work_mem and maintenance_work_mem.
Make btree index creation and initial validation of foreign-key constraints
use maintenance_work_mem rather than work_mem as their memory limit.
Add some code to guc.c to allow these variables to be referenced by their
old names in SHOW and SET commands, for backwards compatibility.
2004-02-03 17:34:04 +00:00
Joe Conway 12661642c8 Add function (actually an int4 and an int8 version) that generates
a series of numbers, optionally using an explicit step size other
than the default value (one). Use function in the information_schema
to replace hard-wired knowledge of INDEX_MAX_KEYS. initdb forced due
to pg_proc change. Documentation update still needed -- will be
committed separately.
2004-02-03 08:29:57 +00:00
Bruce Momjian 9dac52649d Win32 adjustments for dirmod and configure/configure.in. 2004-02-02 22:20:33 +00:00
Bruce Momjian 011ad7efec Set only LC_ALL for sort in tags creation. 2004-02-02 17:29:32 +00:00
Bruce Momjian bd2a8078d3 > src/backend/commands/user.c file has some parse error at repalloc(),
palloc()$

Fixed.  Thanks.

> src/backend/postmaster/pgstat.c miss
> #include "tcop/tcopprot.h" line.

Fixed.

> src/utils/dllinit.c wrong include header line at MinGW.
> #include <cygwin/version.h> must be not included

Fixed.

> by the way,
> I can't compile eccp because I used lower version bison.

> and bin/pg_resetxlog too. in this case I can't find what's wrong.

Fixed.
2004-02-02 17:21:08 +00:00
Neil Conway 9e218af7ed Fix a read of uninitialized memory in next_token() of hba.c, spotted via
valgrind: a buffer passed to strncmp() had to be NUL-terminated. Original
report and patch from Dennis Bjorkland, some cleanup by Andrew Dunstan,
and finally some editorializing from Neil Conway.
2004-02-02 16:58:30 +00:00
Bruce Momjian 4c29e21578 Adjustments for Win32-specific rename code, and add include file. 2004-02-02 16:37:46 +00:00
Tom Lane 9fe097577e Avoid generating invalid character encoding sequences in make_greater_string.
Not sure how this mistake evaded detection for so long.
2004-02-02 03:07:08 +00:00
Neil Conway b8362d465d Use Tcl_PutEnv() in place of putenv() in libpgtcl, as the latter can
apparently corrupt the Tcl runtime. Per suggestion from Michael
Brusser <michael@synchronicity.com>
2004-02-02 00:35:08 +00:00
Bruce Momjian d9d2ca8e8e Adjust rename on Win32 to only link to temp name while holding lock,
then release locks and loop over renaming to active file name.
2004-02-02 00:17:23 +00:00
Bruce Momjian e5e5a323ca Briefly,
* configure + Makefile changes
 * shared memory attaching in EXEC_BACKEND case (+ minor fix for apparent
cygwin bug under cygwin/EXEC_BACKEND case only)
 * PATH env var separator differences
 * missing win32 rand functions added
 * placeholder replacements for sync etc under port.h


To those who are really interested, and there are a few of you: the attached
patch + file will allow the source base to be compiled (and, for some
definition, "run") under MingW, with the following caveats (I wanted to
first properly fix all but the last of these, but y'all won't quit asking
for a patch :-):

        * child death: SIGCHLD not yet sent, so as a minimum, you'll need to
put in some sort of delay after StartupDatabase, and handle setting
StartupPID to 0 etc (ie. the stuff the reaper() signal function is supposed
to do)

        * dirmod.c: comment out the elog calls

        * dfmgr.c: some hackage required to substitute_libpath_macro

        * slru/xact.c: comment out the errno checking after the readdir
(fixed by next version of MingW)

Again, this is only if you *really* want to see postgres compile and start,
and is a nice leg-up for working on the other Win32 TODO list items. Just
don't expect too much else from it at this point...


Claudio Natoli
2004-02-02 00:11:31 +00:00
Bruce Momjian 10bb17e334 Set locale to C before doing sort in make_ctags. 2004-02-01 23:11:33 +00:00
Tom Lane f27976c85b Make length() disregard trailing spaces in char(n) values, per discussion
some time ago and recent patch from Gavin Sherry.  Update documentation
to point out that trailing spaces are insignificant in char(n).
2004-02-01 06:27:48 +00:00
Neil Conway 08b0e60563 Fix a probably-harmless read of uninitialized memory in mkdir_p(), to
silence a valgrind warning.
2004-01-31 22:10:00 +00:00
Neil Conway 25b8b69eec Remove a superfluous semi-colon. 2004-01-31 21:18:00 +00:00
Neil Conway 7b2cf1713d Micro-opt: replace calls like
appendStringInfo(buf, "%s", str);
with
    appendStringInfoString(buf, str);
as the latter form is slightly faster.
2004-01-31 05:09:41 +00:00
Tom Lane d4fd7d85f3 Fix text_position to not scan past end of source string in multibyte
case, per report from Korea PostgreSQL Users' Group.  Also do some
cosmetic cleanup in nearby code.
2004-01-31 00:45:21 +00:00
Tom Lane a3c969d522 Fix debug elog message to agree with name of its routine. 2004-01-30 22:44:21 +00:00
Bruce Momjian 5ee2ae2049 Remove sleep() and use single PG_SLEEP call for Win32 signal handling
and consistency.

Change PG_USLEEP to use SleepEx() for signal interuptability.
2004-01-30 15:57:04 +00:00
Neil Conway 940b87e722 Fix (debatable) spelling mistake in a comment: 'concatenate' is the usual
term, not 'catenate'.
2004-01-29 12:34:59 +00:00
Tom Lane 18f9d7c74e Make USING and WITH optional to bring the syntax of \copy into exact
agreement with what the backend grammar actually accepts (which is a
bit looser than what its documentation claims).  Per report from Bill
Moran, though I did not use his patch since it removed all the
undocumented flexibility that the code historically had and the backend
still has.
2004-01-28 22:14:04 +00:00
Tom Lane 2f0d43b251 Review uses of IsUnderPostmaster, change some tests to look at
whereToSendOutput instead because they are really inquiring about
the correct client communication protocol.  Update some comments.
This is pointing towards supporting regular FE/BE client protocol
in a standalone backend, per discussion a month or so back.
2004-01-28 21:02:40 +00:00
Tom Lane b3ead7c045 Fix typo. 2004-01-28 20:43:03 +00:00
Michael Meskes 6d9a81b66f Removed some debugging output. 2004-01-28 09:54:23 +00:00
Michael Meskes 6ccfc4f430 - Issue a warning if a cursor is declared but not opened.
- Fixed prototype for ECPGprepared_statement to not moan about "const char"
- Fixed parsing of nested structures.
- Added option to parse header files.
2004-01-28 09:52:14 +00:00
Tom Lane 31a0f1d33b Fix oversight in check_ungrouped_columns optimization that avoids
unnecessary checks for complex grouping expressions: we cannot check
whether the expressions are simple Vars until after we apply
flatten_join_alias_vars, because in the case of FULL JOIN that routine
can introduce non-Var expressions.  Per example from Joel Knight.
2004-01-28 07:46:44 +00:00
Tom Lane 4405b3e05e simplify_function() mustn't try to evaluate functions that return
composite types, because TupleTableSlots aren't Datums and can't be
stored in Const nodes.  We can remove this restriction if we ever
adopt a cleaner runtime representation for whole-tuple results, but
at the moment it's broken.  Per example from Thomas Hallgren.
2004-01-28 00:05:04 +00:00
Tom Lane 7e34b2d73f Run stats test separately, not as part of a parallel group, to avoid
possible failures due to stats collector not updating fast enough under
heavy load.  Per report from Jeremy Yoder.
2004-01-27 00:50:33 +00:00
Bruce Momjian 70d5811514 Pgindent win32 signal code. 2004-01-27 00:46:58 +00:00
Bruce Momjian 50491963cb Here's the latest win32 signals code, this time in the form of a patch
against the latest shapshot. It also includes the replacement of kill()
with pqkill() and sigsetmask() with pqsigsetmask().

Passes all tests fine on my linux machine once applied. Still doesn't
link completely on Win32 - there are a few things still required. But
much closer than before.

At Bruce's request, I'm goint to write up a README file about the method
of signals delivery chosen and why the others were rejected (basically a
summary of the mailinglist discussions). I'll finish that up once/if the
patch is accepted.


Magnus Hagander
2004-01-27 00:45:26 +00:00
Bruce Momjian eec08b95e7 [all] Removed call to getppid in SendPostmasterSignal, replacing with a
PostmasterPid variable, which gets set (early) in PostmasterMain
getppid would not be the postmaster?

[fork/exec] Implements processCancelRequest by keeping an array of

pid/cancel_key structs in shared mem

[fork/exec] Moves AttachSharedMemoryAndSemaphores call for backends into
SubPostmasterMain

[win32] Implements reaper/waitpid by keeping an arrays of children
pids,handles in postmaster local mem
      - this item is largely untested, for reasons which should be
obvious, but appears sound

[win32/all] Added extern for pgpipe in Win32 case, and changed the second
pipe call (which seems to have been missed earlier) to pgpipe

[win32] #define'd ftruncate to chsize in the Win32 case

[win32] PG_USLEEP for Win32 has a misplaced paren. Fixed.

[win32] DLLIMPORT handling for MingW case


Claudio Natoli
2004-01-26 22:59:54 +00:00
Bruce Momjian ede3b762a3 Back out win32 patch so we can apply it separately. 2004-01-26 22:54:58 +00:00
Bruce Momjian f4921e5ca3 Attached is a patch that fixes some trivial typos and alignment. Please
apply.

Alvaro Herrera
2004-01-26 22:51:56 +00:00
Tom Lane c77f363384 Ensure that close() and fclose() are checked for errors, at least in
cases involving writes.  Per recent discussion about the possibility
of close-time failures on some filesystems.  There is a TODO item for
this, too.
2004-01-26 22:35:32 +00:00
Tom Lane be11fa26e3 Repair incorrect order of operations in GetNewTransactionId(). We must
complete ExtendCLOG() before advancing nextXid, so that if that routine
fails, the next incoming transaction will try it again.  Per trouble
report from Christopher Kings-Lynne.
2004-01-26 19:15:59 +00:00
Neil Conway 11c7bdb4e4 Fix an obsolete file path mentioned in a comment. 2004-01-25 22:19:42 +00:00
Neil Conway e10bb0518a More fallout from the recent psql patch: rename xmalloc and friends to
pg_malloc, to avoid linker failures on same platforms.
2004-01-25 03:07:22 +00:00
Tom Lane 9d8888079d Support named parameters in information_schema.parameters,
per Dennis Bjorklund.  I did not force initdb for this, but
you'd need to do one to get the improved view.
2004-01-24 23:45:13 +00:00
Tom Lane c8bcd5ca92 Fix problems with dropped columns in pltcl triggers, per report from Patrick Samson. 2004-01-24 23:06:29 +00:00
Neil Conway 6f046b9d9f Revert the change to print.c, as this breaks src/bin/scripts. The proper
way to fix this is probably implementing safe memory handling functions
once in a static lib and then using that in the various client apps,
but for the moment I've just reverted the change to un-break the tree.
2004-01-24 20:43:26 +00:00
Jan Wieck d77b63b17c Added GUC variable bgwriter_flush_method controlling the action
done by the background writer between writing dirty blocks and
napping.

    none (default)   no action
	sync             bgwriter calls smgrsync() causing a sync(2)

A global sync() is only good on dedicated database servers, so
more flush methods should be added in the future.

Jan
2004-01-24 20:00:46 +00:00
Neil Conway 610d33c194 This patch makes some of the memory manipulation performed by psql a
little more sane. Some parts of the code was using a static function
xmalloc() that did safe memory allocation (where "safe" means "bail
out on OOM"), but most of it was just invoking calloc() or malloc()
directly. Now almost everything invokes xmalloc() or xcalloc().
2004-01-24 19:38:49 +00:00
Dennis Bjorklund cb3dc829f6 Translation updates 2004-01-24 07:30:40 +00:00
Tom Lane 5d66583678 Repair planner failure for cases involving Cartesian products inside
IN (sub-SELECT) constructs.  We must force a clauseless join of the
sub-select member relations, but it wasn't happening because the code
thought it would be able to use the join clause arising from the IN.
2004-01-24 00:37:28 +00:00
Tom Lane 3969f2924b Revise GEQO planner to make use of some heuristic knowledge about SQL, namely
that it's good to join where there are join clauses rather than where there
are not.  Also enable it to generate bushy plans at need, so that it doesn't
fail in the presence of multiple IN clauses containing sub-joins.  These
changes appear to improve the behavior enough that we can substantially reduce
the default pool size and generations count, thereby decreasing the runtime,
and yet get as good or better plans as we were getting in 7.4.  Consequently,
adjust the default GEQO parameters.  I also modified the way geqo_effort is
used so that it affects both population size and number of generations;
it's now useful as a single control to adjust the GEQO runtime-vs-plan-quality
tradeoff.  Bump geqo_threshold to 12, since even with these changes GEQO
seems to be slower than the regular planner at 11 relations.
2004-01-23 23:54:21 +00:00
Neil Conway 0bd3606d72 Fix a minor bug introduced by the recent CREATE TABLE AS / WITH OIDS
patch: a 3-value enum was mistakenly assigned directly to a 'bool'
in transformCreateStmt(). Along the way, change makeObjectName()
to be static, as it isn't used outside analyze.c
2004-01-23 02:13:12 +00:00