7289 Commits

Author SHA1 Message Date
Tom Lane
6162432de9 Add more critical-section calls: all code sections that hold spinlocks
are now critical sections, so as to ensure die() won't interrupt us while
we are munging shared-memory data structures.  Avoid insecure intermediate
states in some code that proc_exit will call, like palloc/pfree.  Rename
START/END_CRIT_CODE to START/END_CRIT_SECTION, since that seems to be
what people tend to call them anyway, and make them be called with () like
a function call, in hopes of not confusing pg_indent.
I doubt that this is sufficient to make SIGTERM safe anywhere; there's
just too much code that could get invoked during proc_exit().
2001-01-12 21:54:01 +00:00
Philip Warner
d63e41e9b2 Fixed handling of renamed columns in PK constraints 2001-01-12 15:41:29 +00:00
Philip Warner
06ef1ef2ec - Check ntuples == 1 for various SELECT statements.
- Fix handling of --tables=* (multiple tables never worked properly, AFAICT)
- strdup() the current user in DB routines
- Check results of IO routines more carefully.
- Check results of PQ routines more carefully.

Have not fixed index output yet.
2001-01-12 04:32:07 +00:00
Tom Lane
565639cde0 Preserve constraints and column defaults during CLUSTER.
Wish they were all this easy ...
2001-01-12 01:22:21 +00:00
Marc G. Fournier
0ad7db4be4 New feature:
1. Support of variable size keys - new algorithm of insertion to tree
      (GLI - gist layrered insertion). Previous algorithm was implemented
      as described in paper by Joseph M. Hellerstein et.al
      "Generalized Search Trees for Database Systems".  This (old)
      algorithm was not suitable for variable size keys and could be
      not effective ( walking up-down ) in case of multiple levels split
Bug fixed:
   1. fixed bug in gistPageAddItem - key values were written to disk
      uncompressed. This caused failure if decompression function
      does real job.
   2. NULLs handling - we keep NULLs in tree. Right way is to remove them,
      but we don't know how to inform vacuum about index statistics. This is
      just cosmetic warning message (like in case with R-Tree),
      but I'm not sure how to recognize real problem if we remove NULLs
      and suppress this warning as Tom suggested.
   3. various memory leaks

This work was done by Teodor Sigaev (teodor@stack.net) and
Oleg Bartunov (oleg@sai.msu.su).
2001-01-12 00:12:58 +00:00
Peter Eisentraut
7cd971183c #ifdef out entire file for newer Cygwin versions. 2001-01-11 23:32:03 +00:00
Peter Eisentraut
9b19224666 Add DLLIMPORT to TransactionCommandContext. 2001-01-11 23:28:34 +00:00
Peter Eisentraut
c340c21865 Remove useless DLLIMPORT (only needed in header files). 2001-01-11 23:27:05 +00:00
Hiroshi Inoue
09a160d579 Removed a no longer needed SetWaitingForLock() call in
DeadLockCheck().
2001-01-10 01:24:19 +00:00
Tom Lane
412cb388b3 Do The Right Thing (tm) if asked to cluster a temp table. Previous
code would cluster, but table would magically lose its tempness.
2001-01-10 01:12:28 +00:00
Michael Meskes
353f71a331 Synced preproc.y with gram.y. 2001-01-09 19:46:05 +00:00
Peter Eisentraut
8eed998a65 Remove -L$(libdir) from DLLLIBS to prevent linking with an old version
(i.e., 7.0.3) of libpostgres.a.  From Jason Tishler <jt@dothill.com>.
2001-01-09 18:45:41 +00:00
Peter Eisentraut
c3f9371956 Add configure check for sys_nerr, to end all discussions. 2001-01-09 18:40:15 +00:00
Bruce Momjian
e586026d10 The KAME files md5.* and sha1.* have the following changelog
entry:

----------------------------
revision 1.2
date: 2000/12/04 01:20:38;  author: tgl;  state: Exp;  lines:
+18 -18
Eliminate some of the more blatant platform-dependencies ... it
builds here now, anyway ...
----------------------------

Which basically changes u_int*_t -> uint*_t, so now it does not
compile neither under Debian 2.2 nor under NetBSD 1.5 which
is platform independent<B8> all right.  Also it replaces $KAME$
with $Id$ which is Bad Thing. PostgreSQL Id should be added as a
separate line so the file history could be seen.

So here is patch:

* changes uint*_t -> uint*.  I guess that was the original
  intention
* adds uint64 type to include/c.h because its needed
  [somebody should check if I did it right]
* adds back KAME Id, because KAME is the master repository
* removes stupid c++ comments in pgcrypto.c
* removes <sys/types.h> from the code, its not needed

--
marko

Marko Kreen
2001-01-09 16:07:14 +00:00
Hiroshi Inoue
7edff1618e Disable query cancel during HandleDeadLock(). 2001-01-09 09:38:57 +00:00
Vadim B. Mikheev
4b59366e57 1. Checkpoint.undo may be after checkpoint itself:
- no more elog(STOP) in StartupXLOG();
   - both checkpoint' undo & redo are used to define
     oldest on-line log file.
2. Ability to pre-allocate a few log files at checkpoint time
   (wal_files option). Off by default.
2001-01-09 06:24:33 +00:00
Tom Lane
07c741e61c Fix oversight in planning of GROUP queries: when an expression is used
as both a GROUP BY item and an output expression, the top-level Group
node should just copy up the evaluated expression value from its input,
rather than re-evaluating the expression.  Aside from any performance
benefit this might offer, this avoids a crash when there is a sub-SELECT
in said expression.
2001-01-09 03:48:51 +00:00
Tom Lane
4cb0950cfe Fix small but critical typo ... 2001-01-09 02:15:16 +00:00
Tom Lane
f19238e027 Prevent vacuumdb from trying to vacuum template0. 2001-01-08 23:02:36 +00:00
Bruce Momjian
745f0c21e5 Remove compiler warning about uninitialized warnings. 2001-01-08 20:54:24 +00:00
Tom Lane
bf74477b05 check for failure after vacuuming each DB, not only the last one. 2001-01-08 20:32:27 +00:00
Tom Lane
b95f81a54a Add some debugging support code (ifdef'd out in normal use). 2001-01-08 18:34:44 +00:00
Tom Lane
e2586c3c62 LockBuffer should not elog while holding buffer's cntx_lock. 2001-01-08 18:31:49 +00:00
Hiroshi Inoue
6adc255f8a Keep relations open until they are no longer needed. 2001-01-08 03:14:58 +00:00
Tom Lane
1112a2a084 Make outfuncs/readfuncs treat OIDs properly as unsigned values. Clean up
inconsistent coding practices for handling Index values and booleans,
too.
2001-01-08 00:31:43 +00:00
Tom Lane
a4ddbbd1a4 Correct nasty error in heap_update: it was releasing the buffer refcount
before calling RelationInvalidateHeapTuple(), which is bad because the
latter needs to look at the tuple data, which is in the shared disk
buffer.  If another backend manages to recycle the buffer while this
is going on, we will compute the wrong hashindex for the tuple or
maybe even crash outright.  Must hold buffer refcount until afterwards.
(This bug is not in 7.0.*; seems to be have introduced during WAL changes.)
2001-01-07 22:14:31 +00:00
Tom Lane
542b7c6445 Clear QueryCancel and ProcDiePending at start of proc_exit, to ensure
that leftover cancel/die requests cannot interfere with exit activities.
2001-01-07 04:30:41 +00:00
Tom Lane
cb7ce7d0e3 Fix recent breakage of query-cancel logic, see my pghackers message
of 6 Jan 2001 21:55.
2001-01-07 04:17:29 +00:00
Tom Lane
4ced15ece4 Resultmap updates for OpenBSD, per report from bpalmer@crimelabs.net. 2001-01-07 01:14:35 +00:00
Tom Lane
4057b64f32 Modify readfuncs so that recursive use of stringToNode will not crash
and burn.  Just for added luck, change reading of CONST nodes so that
we do not need to consult pg_type rows while reading them; this means
that no database access occurs during stringToNode.  This requires
changing the order in which const-node fields are written, which means
an initdb is forced.
2001-01-07 01:08:48 +00:00
Tom Lane
1402201463 Clean up checking of relkind for ALTER TABLE and LOCK TABLE commands.
Disallow cases like adding constraints to sequences :-(, and eliminate
now-unnecessary search of pg_rewrite to decide if a relation is a view.
2001-01-07 00:05:22 +00:00
Tom Lane
deb21f0f80 Log memory context stats to stderr when reporting a 'Memory exhausted'
error, so as to provide a starting point for debugging.
2001-01-06 21:59:39 +00:00
Tom Lane
e69b8d4655 Fix memory leak in relcache handling of rules: allocate rule parsetrees
in per-entry sub-memory-context, where they were supposed to go, rather
than in CacheMemoryContext where the code was putting them.  Must've
suffered a severe brain fade when I wrote this :-(
2001-01-06 21:53:18 +00:00
Peter Eisentraut
41fde54603 Polish help output. Allow --help to work with BSD getopts. 2001-01-06 20:57:26 +00:00
Tom Lane
24a4aff68e No need for screen_size to be static. 2001-01-06 17:43:01 +00:00
Peter Eisentraut
3ff76734f6 Simplify the rules that explicitly allowed TYPE as a type name (which is
no longer the case).  Add AND and TRAILING to ColLabel.  All key words
except AS are now at least ColLabel's.
2001-01-06 10:50:02 +00:00
Tatsuo Ishii
a6944611e2 Fix copy to make it more robust against unexpected character
sequences. This is done by disabling multi-byte awareness when it's
not necessary. This is kind of a workaround, not a perfect solution.
However, there is no ideal way to parse broken multi-byte character
sequences. So I guess this is the best way what we could do right
now...
2001-01-06 03:33:17 +00:00
Hiroshi Inoue
4451ed3dfe init_irels() is changed to be called in RelationCacheInitializePhase2()
so that transactional control could guarantee the consistency.
2001-01-06 01:48:59 +00:00
Tom Lane
682b128993 Fix NOT NULL option for plpgsql variables (doesn't look like it
could ever have worked...)
2001-01-06 01:43:01 +00:00
Tom Lane
0ad5e43772 Fix misplaced strdup(), which could lead to error messages referencing
deallocated memory later on.
2001-01-06 01:39:01 +00:00
Tom Lane
81d08fcffe Rename and document some invalidation routines to make it clearer that
they don't themselves flush any cache entries, only add to to-do lists
that will be processed later.
2001-01-05 22:54:37 +00:00
Tom Lane
2fb6cc9045 Remove not-really-standard implementation of CREATE TABLE's UNDER clause,
and revert documentation to describe the existing INHERITS clause
instead, per recent discussion in pghackers.  Also fix implementation
of SQL_inheritance SET variable: it is not cool to look at this var
during the initial parsing phase, only during parse_analyze().  See
recent bug report concerning misinterpretation of date constants just
after a SET TIMEZONE command.  gram.y really has to be an invariant
transformation of the query string to a raw parsetree; anything that
can vary with time must be done during parse analysis.
2001-01-05 06:34:23 +00:00
Tom Lane
e62c38d0fc Disallow creation of a child table by a user who does not own the parent
table, per pghackers discussion around 22-Dec-00.
2001-01-05 02:58:16 +00:00
Peter Eisentraut
257e17bc60 Correct path where to check for password file existance. 2001-01-04 17:25:09 +00:00
Tom Lane
afeb8c4819 Clean up some unnecessary fragility in EXECUTE command. 2001-01-04 02:38:02 +00:00
Tom Lane
f9d6ffc5c4 Repair guaranteed core dump in SPI_exec(). Guess this routine wasn't
used before ...
2001-01-04 02:36:52 +00:00
Hiroshi Inoue
3052a421d5 I neglected to remove a debug message,sorry. 2001-01-04 02:24:22 +00:00
Tom Lane
ea608bfd3b pg_dump failed to handle backslashes embedded in function definitions
(and most other places where it needed to output a string literal, too,
except for data INSERT statements).  Per bug report from Easter, 12/1/00.
2001-01-04 01:23:47 +00:00
Tom Lane
60500d58bc Fix breakage of rules using NOTIFY actions, per bug report and patch
from sergiop@sinectis.com.ar.
2001-01-03 22:01:05 +00:00
Tom Lane
676cf18c5b New file format for COPY BINARY, in accordance with pghackers discussions
of early December 2000.  COPY BINARY is now TOAST-safe.
2001-01-03 20:04:10 +00:00