Commit Graph

8766 Commits

Author SHA1 Message Date
Tom Lane a3cac3a03b Need to do BufferSync at end of DROP DATABASE as well as CREATE DATABASE.
Otherwise, newly connecting backends will still think the deleted DB is
valid, and will generate unexpected error messages.
2001-01-14 22:14:10 +00:00
Tom Lane c0f069944f Make aclcontains() do something that's at least vaguely reasonable:
it now returns true if the aclitem argument exactly matches any one of
the elements of the aclitem[] argument.  Per complaint from Wolff 1/10/01.
2001-01-14 19:23:27 +00:00
Tom Lane 36839c1927 Restructure backend SIGINT/SIGTERM handling so that 'die' interrupts
are treated more like 'cancel' interrupts: the signal handler sets a
flag that is examined at well-defined spots, rather than trying to cope
with an interrupt that might happen anywhere.  See pghackers discussion
of 1/12/01.
2001-01-14 05:08:17 +00:00
Peter Eisentraut 027f144e39 Terminology cleanup: class -> table, instance -> row, attribute -> column,
etc.
2001-01-13 23:58:55 +00:00
Bruce Momjian 0651a5799d Backed out:
---------------------------------------------------------------------------

Attached is a set of patches for a couple of bugs dealing with
timestamps in JDBC.

Bug#1) Incorrect timestamp stored in DB if client timezone different
than DB.
2001-01-13 18:52:42 +00:00
Peter Eisentraut 526427f6d3 Add information about bit types. Adjust some other things to promote
SQL type names over internal type names.
2001-01-13 18:34:51 +00:00
Bruce Momjian 475c1452b1 Attached is a set of patches for a couple of bugs dealing with
timestamps in JDBC.

Bug#1) Incorrect timestamp stored in DB if client timezone different
than DB.

The buggy implementation of setTimestamp() in PreparedStatement simply
used the toString() method of the java.sql.Timestamp object to convert
to a string to send to the database.  The format of this is yyyy-MM-dd
hh:mm:ss.SSS which doesn't include any timezone information.  Therefore
the DB assumes its timezone since none is specified.  That is OK if the
timezone of the client and server are the same, however if they are
different the wrong timestamp is received by the server.  For example if
the client is running in timezone GMT and wants to send the timestamp
for noon to a server running in PST (GMT-8 hours), then the server will
receive 2000-01-12 12:00:00.0 and interprete it as 2000-01-12
12:00:00-08 which is 2000-01-12 04:00:00 in GMT.  The fix is to send a
format to the server that includes the timezone offset.  For simplicity
sake the fix uses a SimpleDateFormat object with its timezone set to GMT
so that '+00' can be used as the timezone for postgresql.  This is done
as SimpleDateFormat doesn't support formating timezones in the way
postgresql expects.

Bug#2) Incorrect handling of partial seconds in getting timestamps from
the DB

When the SimpleDateFormat object parses a string with a format like
yyyy-MM-dd hh:mm:ss.SS it expects the fractional seconds to be three
decimal places (time precision in java is miliseconds = three decimal
places).  This seems like a bug in java to me, but it is unlikely to be
fixed anytime soon, so the postgresql code needed modification to
support the java behaviour.  So for example a string of '2000-01-12
12:00:00.12-08' coming from the database was being converted to a
timestamp object with a value of 2000-01-12 12:00:00.012GMT-08:00.  The
fix was to check for a '.' in the string and if one is found append on
an extra zero to the fractional seconds part.

Bug#3) Performance problems

In fixing the above two bugs, I noticed some things that could be
improved.  In PreparedStatement.setTimestamp(),
PreparedStatement.setDate(), ResultSet.getTimestamp(), and
ResultSet.getDate() these methods were creating a new SimpleDateFormat
object everytime they were called.  To avoid this unnecessary object
creation overhead, I changed the code to use static variables for
keeping a single instance of the needed formating objects.
Also the code used the + operator for string concatenation.  As everyone
should know this is very inefficient and the use of StringBuffers is
prefered.

I also did some cleanup in ResultSet.getTimestamp().  This method has
had multiple patches applied some of which resulted in code that was no
longer needed.  For example the ISO timestamp format that postgresql
uses specifies the timezone as an offset like '-08'.  Code was added at
one point to convert the postgresql format to the java one which is
GMT-08:00, however the old code was left around which did nothing.  So
there was code that looked for yyyy-MM-dd hh:mm:sszzzzzzzzz and
yyyy-MM-dd hh:mm:sszzz.  This second format would never be encountered
because zzz (i.e. -08) would be converted into the former (also note
that the SimpleDateFormat object treats zzzzzzzzz and zzz the same, the
number of z's does not matter).


There was another problem/fix mentioned on the email lists today by
mcannon@internet.com which is also fixed by this patch:

Bug#4) Fractional seconds lost when getting timestamp from the DB
A patch by Jan Thomea handled the case of yyyy-MM-dd hh:mm:sszzzzzzzzz
but not the fractional seconds version yyyy-MM-dd hh:mm:ss.SSzzzzzzzzz.

The code is fixed to handle this case as well.

Barry Lind
2001-01-13 05:18:05 +00:00
Bruce Momjian 20dfd50c41 More cleanup. 2001-01-13 04:58:53 +00:00
Tom Lane 160675ecee Relax test on typmod matching between a table and its proposed ON SELECT
rule.  Needed to avoid failure when reloading a 7.0 pg_dump of a view
that has a NUMERIC column.
2001-01-13 03:58:28 +00:00
Peter Eisentraut f8bdef0780 Windows wants shared libraries in PATH. 2001-01-13 03:25:48 +00:00
Marc G. Fournier 25c0ffb9ec check one last time for any erros ... 2001-01-13 03:17:05 +00:00
Peter Eisentraut 2a6c08228f New shell for the to be written CHECKPOINT documentation, so the summary
shows up in psql now.
2001-01-13 03:11:12 +00:00
Marc G. Fournier 1fc331bbc2 ignore his too 2001-01-13 03:11:07 +00:00
Marc G. Fournier 3c085b1b35 and this time? 2001-01-13 03:09:43 +00:00
Marc G. Fournier d5e66044ad try this again ... 2001-01-13 03:08:02 +00:00
Peter Eisentraut 16cc90ccdb Clean up garbage. 2001-01-13 02:18:31 +00:00
Peter Eisentraut bc615509ac Surely one README file is enough. 2001-01-13 02:14:32 +00:00
Bruce Momjian 93cf749f40 Update pgcvslog to fix problem with duplicate narratives. 2001-01-13 01:49:35 +00:00
Marc G. Fournier 3f8ea17810 okay, this appears to work ...
onlly changes aer adding some white space ...
2001-01-13 00:57:06 +00:00
Peter Eisentraut daa78233d0 Surely we don't need a 7.0.3 makefile in 7.1. 2001-01-12 22:36:57 +00:00
Peter Eisentraut a32542a1c0 Update information about compiling extension modules. 2001-01-12 22:15:32 +00:00
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
Bruce Momjian be8477bc37 Update TODO list. 2001-01-12 17:57:57 +00:00
Bruce Momjian ab1c71d02b Update TODO list. 2001-01-12 17:48:18 +00:00
Philip Warner d63e41e9b2 Fixed handling of renamed columns in PK constraints 2001-01-12 15:41:29 +00:00
Bruce Momjian ed7f37b7b1 Add to DROP todo. 2001-01-12 05:37:37 +00:00
Bruce Momjian 3fbd4d4bb2 Update TODO list. 2001-01-12 05:32:38 +00:00
Bruce Momjian 1c7d752824 Update TODO list. 2001-01-12 05:23:10 +00:00
Tom Lane 359459a44d Bring CREATE TABLE syntax synopsis into line with reality; update a
bunch of old or poorly-worded documentation.
2001-01-12 05:06:40 +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 1db943b3ca commit Oleg and Teodor's RD-tree implementation ... this provides the
regression tests for the GiST changes ... this should be integrated into
the regular regression tests similar to Vadim's SPI contrib stuff ...
2001-01-12 00:16:26 +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
Bruce Momjian be64674a0d Update TODO list. 2001-01-11 21:07:07 +00:00
Marc G. Fournier 57d32518d1 reduce HISTORY changes from this list too 2001-01-11 04:13:30 +00:00
Marc G. Fournier 9b725151e9 remove all the TODO updates, which drops of 12k from the file ... 2001-01-11 04:12:32 +00:00
Marc G. Fournier 21ac86a230 using cvs2cl.pl, generate a list of changes from beta1->beta3 ... 2001-01-11 04:00:59 +00:00
Peter Eisentraut 5508ef30e2 Make checks for global variables (sys_nerr, timezone) safe against getting
optimized away completely.
2001-01-10 17:07:18 +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 af26d6a4a2 Update TODO list. 2001-01-09 18:06:07 +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
Bruce Momjian f906597e50 Apply proper sql.sgml change. 2001-01-09 16:05:21 +00:00
Bruce Momjian 777137b7a9 Attached is a doc patch for doc/src/sgml/sql.sgml.
It adds information about SQL JOIN that is implemented in 7.1.

--
-------- Robert B. Easter
2001-01-09 15:48:18 +00:00