Commit Graph

7668 Commits

Author SHA1 Message Date
Bruce Momjian
fd866b4580 Remove protcol option buttons. 2001-02-10 16:25:10 +00:00
Bruce Momjian
a4b348f48f ODBC BSD/OS fix. 2001-02-10 15:59:16 +00:00
Bruce Momjian
8814d1b2e7 Allow -Bsymbolic on BSDI for ODBC. 2001-02-10 11:31:35 +00:00
Peter Eisentraut
3f4d68cc7b Fix on Linux 2001-02-10 10:27:28 +00:00
Bruce Momjian
5ad627479c More ODBC formatting cleanup. 2001-02-10 07:11:28 +00:00
Bruce Momjian
755a87332a Run pgindent over ODBC source. We couldn't do this years ago because we
weren't the master source.  We are now, and it really needs it.
2001-02-10 07:01:19 +00:00
Bruce Momjian
505a828a66 Remove protocol-dependent code. This should have been on previous commit. 2001-02-10 06:58:40 +00:00
Bruce Momjian
895a57bdd2 Cleanup 2001-02-10 06:57:53 +00:00
Bruce Momjian
d2331b4ebd More cleanup, again not sure it works. 2001-02-10 06:12:15 +00:00
Bruce Momjian
6996a77246 Clean up bad variable used in script. Still not sure it works under Linux. 2001-02-10 05:55:17 +00:00
Bruce Momjian
fd40942fd8 Properly exit ODBC with 'X', allow linking on BSD/OS. 2001-02-10 05:50:29 +00:00
Tom Lane
af0a15287d Fix byte-vs-word-width oversight in m68k TAS() code.
Man, this brings back some old memories ...
2001-02-10 04:07:25 +00:00
Tom Lane
5b6acff6e0 Ignore leading whitespace when trying to determine statement type,
so that ODBC driver doesn't go belly up by failing to recognize a
SELECT as such.
2001-02-10 03:12:16 +00:00
Tom Lane
d08741eab5 Restructure the key include files per recent pghackers discussion: there
are now separate files "postgres.h" and "postgres_fe.h", which are meant
to be the primary include files for backend .c files and frontend .c files
respectively.  By default, only include files meant for frontend use are
installed into the installation include directory.  There is a new make
target 'make install-all-headers' that adds the whole content of the
src/include tree to the installed fileset, for use by people who want to
develop server-side code without keeping the complete source tree on hand.
Cleaned up a whole lot of crufty and inconsistent header inclusions.
2001-02-10 02:31:31 +00:00
Bruce Momjian
5c8055e41f Remove last code that assumed xinv/xinx are large object files. 2001-02-09 22:23:47 +00:00
Tom Lane
b1e4cfa5f6 This hasn't been used for anything for a long time... 2001-02-09 19:26:45 +00:00
Tom Lane
7fdca53711 When updating a tuple containing compressed-in-line fields, do not
decompress the existing fields unnecessarily.
2001-02-09 17:30:03 +00:00
Bruce Momjian
b483ad84f8 Add -g as synonmym for --globals-only in pg_dumpall. Add info about
-c,--clean option to manual page.
2001-02-09 17:16:57 +00:00
Bruce Momjian
cf516c3bb1 I have deleted the include of termios.h in include/port/qnx4.h.
Then I recompiled pgsql and I have compiled a program with ecpg.

I have removed the termios.h, and the ECHO hack.

Thanks
Maurizio
2001-02-09 15:13:49 +00:00
Hiroshi Inoue
5a03b0c393 Change SELECT to not trigger "BEGIN" in not autocommit mode. 2001-02-09 06:03:14 +00:00
Tom Lane
dfbd5d6532 plpgsql's private copy of xlateSqlType was out of sync. Again. This
is clearly not maintainable, so dike it out in favor of calling the real
version in the backend's gram.y.
2001-02-09 03:26:28 +00:00
Tom Lane
b8cbb8c7e3 Remove no-longer-needed mklang script; now superseded by createlang. 2001-02-09 01:05:42 +00:00
Tom Lane
8a2cdd77ad EXECUTE of a SELECT ... INTO now draws a 'not implemented' error,
rather than executing the INTO clause with non-plpgsql semantics
as it was doing for the last few weeks/months.  This keeps our options
open for making it do the right plpgsql-ish thing in future without
creating a backwards compatibility problem.  There is no loss of
functionality since people can get the same behavior with CREATE TABLE AS.
2001-02-09 00:14:26 +00:00
Peter Eisentraut
088c0b9546 Make -w the default for shut down, add -W option to specify no wait.
Add -l option to name log file.  Set umask to 077.
Proper file descriptor redirection to allow postmaster to detach from
shell's process group.
Add -s option to turn off informational messages.
2001-02-08 19:39:24 +00:00
Hiroshi Inoue
27ed8ac260 Fix a misuse of 'char *' declaration. 2001-02-08 01:54:29 +00:00
Tom Lane
897a895d32 When launching a child backend, take care to close file descriptors for
any other client connections that may exist (which would only happen if
another client is currently in the authentication cycle).  This avoids
wastage of open descriptors in a child.  It might also explain peculiar
behaviors like not closing connections when expected, since the kernel
will probably not signal EOF as long as some other backend is randomly
holding open a reference to the connection, even if the client went away
long since ...
2001-02-08 00:35:10 +00:00
Vadim B. Mikheev
608ddb7503 FixBTree flag still exists and may be used to turn
runtime recovery OFF.
2001-02-07 23:36:22 +00:00
Vadim B. Mikheev
c19dadbf08 Runtime btree recovery is now ON by default. 2001-02-07 23:35:33 +00:00
Vadim B. Mikheev
66decbfb08 Macro for btree runtime fix. 2001-02-07 23:34:18 +00:00
Tom Lane
6b52dc7491 Repair postmaster memory leakage during password authentication. 2001-02-07 23:31:38 +00:00
Tom Lane
6aa0821bcd Redo pgaccess' queries about views so that they will work in both 7.1
and prior releases --- rely on pg_views view instead of direct access
to pg_class and pg_rewrite.
2001-02-07 21:30:12 +00:00
Tom Lane
62a029b5c6 Not sure why this work script was in the repository ... but it doesn't
belong ...
2001-02-07 21:25:55 +00:00
Tom Lane
a7e24eda58 Use explicit path to libpgtcl.so, instead of relying on LD_LIBRARY_PATH
or local equivalent.  Also, honor --with-pgport configure option for
default port number, and allow PGPORT environment variable to override
this.
2001-02-07 20:30:20 +00:00
Tom Lane
a8b9cbfa0e Make DEF_PGPORT available to Makefiles, so it can be substituted into
scripts like pgaccess.
2001-02-07 20:13:27 +00:00
Tom Lane
5add3e8e51 Actually, it looks like DEF_PGPORT belongs over in config.h.win32 for
the Windows build...
2001-02-07 20:00:08 +00:00
Tom Lane
b6ffc70dcc Remove broken (and unnecessary) definition of DEF_PGPORT. 2001-02-07 19:30:22 +00:00
Peter Eisentraut
d79ab787b8 Only pass the -L* portions of LDFLAGS to the Python build environment.
Other flags can have unpredictable effects when Python uses different
commands to build than we do.
2001-02-07 18:22:10 +00:00
Tom Lane
080af3db80 Need to specify DYNAMIC_PATH flag to shl_load, else HPUX's dld will not
honor library search path that we so carefully installed into the
executable ...
2001-02-07 17:59:58 +00:00
Peter Mount
ca5d71cd07 Some updates prior to retrieving a fresh cvs copy:
Tue Feb 06 19:00:00 GMT 2001 peter@retep.org.uk
        - Completed first two TestCase's for the test suite. JUnit is now
          recognised by ant.
2001-02-07 09:13:20 +00:00
Peter Eisentraut
c86c379787 If the first argument is --version or --help, skip the root check. 2001-02-06 17:00:01 +00:00
Vadim B. Mikheev
21d08bc1f6 PageAddItem in overwrite mode: must *NOT* check itemid' flag if
OffsetNumber == MaxOffsetNumber + 1 - there may be garbage there!
2001-02-06 06:24:00 +00:00
Hiroshi Inoue
5d08521fcd Improved version handling introduced by Dave Page.
The driver version is 07.01.0002 now.
1) initialized pg_version by DSN's protocol info
   so that we could always use pg_version info
   once a connection is established (pg_version()
   didn't exist before 6.4). PROTOCOL_XX() macros
   are removed(except from connection.[ch]).
2) provided a few macros to encapsulate connection's
   version info and replaced existent comparison
   stuff by those macros.
3) change SQLTables() so that 7.1 servers could show
   views.


In addtion, the following patch from Dave Page is applied.

  This patch fixes a bug in SQLGetInfo for SQL_DBMS_VER which corrupted the
  driver version string. The driver version number has also been incremented
  to 07.01.0002.

  Regards, Dave. <<odbc.diff>>
2001-02-06 02:21:12 +00:00
Tom Lane
300e28888f Now that I look at it, PQoidValue() ain't quite right either. 2001-02-06 02:02:27 +00:00
Tom Lane
8558054aa4 Repair PQoidStatus() bug reported by darcy@druid.net. 2001-02-06 02:00:09 +00:00
Tom Lane
85c17dbff8 Out-of-bounds memory allocation request sizes should be treated as just
elog(ERROR) not an Assert trap, since we've downgraded out-of-memory to
elog(ERROR) not a fatal error.  Also, change the hard boundary from 256Mb
to 1Gb, just so that anyone who's actually got that much memory to spare
can play with TOAST objects approaching a gigabyte.
2001-02-06 01:53:53 +00:00
Peter Eisentraut
0d3c767bb5 Dump/display 'timestamp' as 'timestamp with time zone', to make room for a
future 'timestamp without time zone', which SQL claims is equivalent to
plain 'timestamp'.
2001-02-05 17:35:04 +00:00
Peter Eisentraut
b1f528f86c Check for -lresolv. 2001-02-04 14:09:33 +00:00
Peter Eisentraut
8791d12d9e Pass LDFLAGS along with LIBS to the Python build stuff, especially to pick
up -L options.
2001-02-04 13:21:46 +00:00
Tom Lane
503f042cd7 Fix inappropriate attempt to push down qual clauses into a view that
has UNION/INTERSECT/EXCEPT operations.  Per bug report from Ferrier.
2001-02-03 21:17:52 +00:00
Peter Eisentraut
67849c84d6 Use elog() instead of exit() for fatal scanner errors. 2001-02-03 20:13:05 +00:00
Vadim B. Mikheev
b18c09ee3a Runtime tree recovery is implemented, just testing is left -:) 2001-02-02 19:49:15 +00:00
Bruce Momjian
b60c57da2d Apply patches for QNX from Maurizio 2001-02-02 18:21:59 +00:00
Michael Meskes
c9ecf3d1f1 Applied two bug fixes by Christof Petig. 2001-01-31 16:12:34 +00:00
Peter Mount
234599e943 Wed Jan 31 08:46:00 GMT 2001 peter@retep.org.uk
- Some minor additions to Statement to make our own extensions more
          portable.
        - Statement.close() will now call ResultSet.close() rather than just
          dissasociating with it.
2001-01-31 09:23:45 +00:00
Peter Mount
8439a83d84 Tue Jan 30 22:24:00 GMT 2001 peter@retep.org.uk
- Fixed bug where Statement.setMaxRows() was a global setting. Now
          limited to just itself.
        - Changed LargeObject.read(byte[],int,int) to return the actual number
          of bytes read (used to be void).
        - LargeObject now supports InputStream's!
        - PreparedStatement.setBinaryStream() now works!
        - ResultSet.getBinaryStream() now returns an InputStream that doesn't
          copy the blob into memory first!
        - Connection.isClosed() now tests to see if the connection is still alive
          rather than if it thinks it's alive.
2001-01-31 08:26:02 +00:00
Vadim B. Mikheev
dca0762efc Couple additional functions to fix tree at runtime.
Need in one more function to handle "my bits moved..."
case. FixBTree is still FALSE.
2001-01-31 01:08:36 +00:00
Vadim B. Mikheev
598a12722a Call _bt_fixroot() from _bt_insertonpg. 2001-01-29 07:28:17 +00:00
Tom Lane
0d54d6ac44 Clean up handling of tuple descriptors so that result-tuple descriptors
allocated by plan nodes are not leaked at end of query.  This doesn't
really matter for normal queries, but it sure does for queries invoked
repetitively inside SQL functions.  Clean up some other grotty code
associated with tupdescs, and fix a few other memory leaks exposed by
tests with simple SQL functions.
2001-01-29 00:39:20 +00:00
Bruce Momjian
51cd037746 The following patch is required for successful compilation on Irix.
Robert E. Bruccole
2001-01-29 00:11:41 +00:00
Philip Warner
3e896ebe4a Used LEFT OUTER JOIN for various queries 2001-01-28 03:47:49 +00:00
Philip Warner
2f9bdffc37 Applied (slightly modified) patches from Tatsuo:
Ok. I have made patches for fixing some of pg_dump problems(see
attached patches). The patches address the problem with user defined
functions, operators and aggregates.
2001-01-28 02:57:06 +00:00
Bruce Momjian
d7f0b7ef6e Here is an update on the Win32 patch. Modified files are 'config.h.win32'
and two 'win32.mak'. Addresses the following:

1) Oops. Spelled fcntl.h wrong in the last one. D'uh.
2) PG_VERSION changed to be defined with " around it. psql/command.c failed
to compile without that.
3) Changed makefiles to use "/MD" and link both psql and libpq.dll against
MSVCRT.DLL instead of a static library. This takes care of the
crash-upon-free in psql.

I *think* this is what is on the "Open 7.1 Items" list as "Magnus Hagander
ODBC Issues?". It has nothing to do with ODBC, but it's the only issue I've
been involved with...

Magnus Hagander
2001-01-27 21:49:59 +00:00
Bruce Momjian
2679a38a1f Add missing pgaccess files. 2001-01-27 18:36:24 +00:00
Bruce Momjian
2a7ab4d916 Update to pgaccess 0.98.7. 2001-01-27 18:34:38 +00:00
Philip Warner
7fcd675dc3 When dropping the schema, reconnect as owner of each object. 2001-01-27 12:35:29 +00:00
Peter Eisentraut
dc7a0009f0 Add permission check for CHECKPOINT. 2001-01-27 10:19:52 +00:00
Tom Lane
80caa741ab Fix failure to create sequences for more than one SERIAL column in a
table.
2001-01-27 07:23:48 +00:00
Tom Lane
a6f0adbe38 Looks like I broke cases involving combinations of deferred update/delete
triggers ... oops ... but the regress tests should have covered this ...
2001-01-27 05:16:58 +00:00
Tom Lane
f44639e1bf Don't crash if subquery appears multiple times in jointree. This should
not happen anyway, but let's try not to get completely confused if it does
(due to rewriter bugs or whatever).
2001-01-27 04:42:32 +00:00
Tom Lane
352871ac93 Repair bug reported by Huxton, 1/24/01. We need to include a rule's
original table ('OLD' table) in its join tree if OLD is referenced by
either the rule action, the rule qual, or the original query qual that
will be added to the rule action.  However, we only want one instance
of the original table to be included; so beware of the possibility that
the rule action already has a jointree entry for OLD.
2001-01-27 04:40:59 +00:00
Bruce Momjian
d67328f72a Just a quick patch to make the geometry test on Sparc/Linux
regression tests for Pgsql 7.1beta3 pass. This is very similr to the one I
submitted back in July for Linux/Alpha. Apparently non-x86 Linux machines
like to compute nth place float point digits like Sun/Solaris does?
        Otherwise, 7.1beta3 runs without problems (i.e. all other
regression tests pass) on my Sparc 20 running Debian GNU/Linux 2.2.

Ryan Kirkpatrick
2001-01-27 04:26:37 +00:00
Tom Lane
c9c8d53d80 Refuse to try to attach a condition to a NOTIFY or other utility statement,
rather than coredumping (as prior 7.1 code did) or silently dropping the
condition (as 7.0 did).  This is annoying but there doesn't seem to be
any good way to fix it, short of a major querytree restructuring.
2001-01-27 01:44:20 +00:00
Tom Lane
c1a63c944d Suppress coredump when EXPLAINing query that is rewritten to include
a NOTIFY.
2001-01-27 01:41:19 +00:00
Tom Lane
1dc3051088 Re-read Unix-socket lock file every so often (every CheckPoint interval,
actually) to ensure that its file access time doesn't get old enough to
tempt a /tmp directory cleaner to remove it.  Still another reason we
should never have put the sockets in /tmp in the first place ...
2001-01-27 00:05:31 +00:00
Tom Lane
b78d1bed07 Change float8-to-int8 conversion to round to nearest, rather than
truncating to integer.  Remove regress test that checks whether
4567890123456789 can be converted to float without loss; since that's
52 bits, it's on the hairy edge of failing with IEEE float8s, and indeed
rint seems to give platform-dependent results for it.
2001-01-26 22:50:26 +00:00
Bruce Momjian
5a832218fd odbc1.diff changes the text on the Protocol Radio buttons on the driver
dialogue from '6.4/6.5' to '6.5+' and removes some C++ comments from
resource.h (which VC++ insists on putting there).

odbc2.diff adds code to query the PostgreSQL version upon connection. This
is then used to determine what values to return for from SQLGetInfo for
SQL_DBMS_VER, SQL_MAX_ROW_SIZE, SQL_MAX_STATEMENT_LEN, SQL_OJ_CAPABILITIES
and SQL_OUTER_JOINS. The version string as returned by SELECT vERSION() (as
a char array) and the major.minor version number (as a flost) have been
added to the ConnectionClass structure.

Dave Page
2001-01-26 22:41:59 +00:00
Tom Lane
7edafafd73 gcc complains about improperly terminated comment. 2001-01-26 22:25:36 +00:00
Tom Lane
f433d0d3cd Special case in ProcSleep() wasn't sufficiently general: must check to
see if we shouldn't block whenever we insert ourselves anywhere before
the end of the queue, not only at the front.
2001-01-26 18:23:12 +00:00
Vadim B. Mikheev
c6e6d292bc First step in attempt to fix tree at runtime: create upper levels
and new root page if old root one was splitted but new root page
wasn't created.
New code is protected by FixBTree bool flag setted to FALSE, so
nothing should be affected by this untested approach.
2001-01-26 01:24:31 +00:00
Michael Meskes
19c4197bd2 Synced gram.y and preproc.y. 2001-01-25 20:35:19 +00:00
Peter Eisentraut
7e44f8f9e5 For missing owner of database, default to superuser. 2001-01-25 17:28:15 +00:00
Peter Eisentraut
e01e14ed66 Avoid bogus failures due to 'ps x | grep postmaster' detecting 'grep
postmaster' process.
2001-01-25 16:32:25 +00:00
Peter Mount
f118c36a78 Added an alternative constructor to PGSQLException so that debugging
some more osteric bugs is easier. If only 1 arg is supplied and it's
          of type Exception, then that Exception's stacktrace is now included.

This was done as there's been a report of an unusual bug during connection.
This will make this sort of bug hunting easier from now on.
2001-01-25 09:16:36 +00:00
Tom Lane
211f5afd40 Whoops, forgot to do ProcLockWakeup() after deadlock checker
rearranges wait queues.
2001-01-25 03:45:50 +00:00
Tom Lane
a05eae029a Re-implement deadlock detection and resolution, per design notes posted
to pghackers on 18-Jan-01.
2001-01-25 03:31:16 +00:00
Bruce Momjian
40203e4f3e Further to the previous ODBC patches I posted today, I found a couple of
problems with char array sizes having set a couple of constants to 0 for
unlimited query length and row length. This additional patch cleans those
problems up by defining a new constant (STD_STATEMENT_LEN) to 65536 and
using that in place of MAX_STATEMENT_LEN.

Another constant (MAX_MESSAGE_LEN) was defined as 2*BLCKSZ, but is now
65536. This is used to define the length of the message buffer in a number
of places and as I understand it (probably not that well!) therefore also
places a limit on the query length. Fixing this properly is beyond my
capabilities but 65536 should hopefully be large enough for most people.

Apologies for being over-enthusiastic and posting 3 patches in one day
rather than 1 better tested one!

Regards,

Dave Page
2001-01-25 03:28:27 +00:00
Bruce Momjian
0e968ee705 > From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
> Sent: 24 January 2001 16:51
> To: Dave Page
> Subject: Re: [PATCHES] ODBC Patch for OJs/Large Querys & Rows
>
>
> > SQL_OJ_LEFT = Left outer joins are supported.
>
> Yes.
<snip>

In addition to my earlier patch, this one adds support for SQLGetInfo
SQL_OJ_CAPABILITIES to the ODBC driver.

Dave Page
2001-01-25 03:27:47 +00:00
Bruce Momjian
be1276846e I decided to give this a go after all :-) The attached patch does the
following but it does *not* check whether the user is connected to
PostgreSQL 7.0.x or 7.1 first (as would be required for some of the
features) - the driver doesn't do this at all afaik and it's beyond my
capabilities to implement such checking in code that doesn't look like it
was written by my 1 year old daughter!

1) The driver now reports no maximum query length (SQL_MAX_QUERY_SIZE).
2) The driver now reports no maximum row length (SQL_MAX_ROW_SIZE).
3) The driver now reports that Outer Joins are supported (SQL_OUTER_JOINS),
but still does not report oj capabilities (SQL_OJ_CAPABILITIES).
4) The version number has been incremented to 7.1.0000 in psqlodbc.h *and*
psqlodbc.rc


Regards,

Dave Page
2001-01-25 03:27:05 +00:00
Bruce Momjian
4e45005ffb This patch fixes an arrayindexoutofbounds exception that was just
introduced into the code.  The fix is a fix to
org.postgresql.core.ByteArrayDim1.java.

Barry Lind
2001-01-25 00:02:58 +00:00
Bruce Momjian
ba6fda5191 Add ./include/config.h.win32 to RELEASE update list. 2001-01-25 00:01:17 +00:00
Bruce Momjian
26e566446f Attached is a revised patch that removes the static SimpleDateFormat
objects that Thomas pointed out might be a problem.

PPS.  I have included and updated the comments from the original patch
request to reflect the changes made in this revised patch.

> 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.
>
>
> 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#3) 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-24 23:41:04 +00:00
Bruce Momjian
623bf843d2 Change Copyright from PostgreSQL, Inc to PostgreSQL Global Development Group. 2001-01-24 19:43:33 +00:00
Peter Eisentraut
718fc7e0d1 Fix bogus pattern for STRING. 2001-01-24 19:01:31 +00:00
Bruce Momjian
7df3bb50f0 Add all possible config file options. 2001-01-24 18:37:31 +00:00
Bruce Momjian
3347fbad79 Put back old config contents until I am finished. 2001-01-24 15:57:49 +00:00
Bruce Momjian
0843ec088c Add "idle in transaction" status message 2001-01-24 15:53:59 +00:00
Bruce Momjian
ab37224426 Fix formatting of db crash. 2001-01-24 14:32:32 +00:00
Peter Mount
b869f45d1e Removed the 8k row limit reported by DatabaseMetaData 2001-01-24 09:22:01 +00:00
Bruce Momjian
3f0f30d1a1 Add comment for getpwid() safety. 2001-01-24 05:24:43 +00:00
Bruce Momjian
843657b066 attached is take-2 of a patch which fixes a bug related
to the use of getpwuid when running in standalone mode.
this patch allocates some persistent storage (using
strdup) to store the username obtained with getpwuid
in src/backend/main/main.c.  this is necessary because
later on, getpwuid is called again (in ValidateBinary).

the man pages for getpwuid on SCO OpenServer, FreeBSD,
and Darwin all have words to this effect (this is from
the SCO OpenServer man page):

  Note
  ====
  All information is contained in a static area, so it must
  be copied if it is to be saved. Otherwise, it may be
  overwritten on subsequent calls to these routines.

in particular, on my platform, the storage used to hold
the pw_name from the first call is overwritten such that
it looks like an empty username.  this causes a problem
later on in SetSessionUserIdFromUserName.

i'd assume this isn't a problem on most platforms because
getpwuid is called with the same UID both times, and the
same thing ends up happening to that static storage each
time.  however, that's not guaranteed, and is _not_ what
happens on my platform (at least :).

this is for the version of 7.1 available via anon cvs as
of Tue Jan 23 15:14:00 2001 PST:
  .../src/backend/main/main.c,v 1.37 2000/12/31 18:04:35 tgl Exp

-michael thornburgh, zenomt@armory.com
2001-01-24 03:50:06 +00:00
Bruce Momjian
bd0a767eab Here is a patch to make the current snapshot compile on Win32 (native, libpq
and psql) again. Changes are:
1) psql requires the includes of "io.h" and "fcntl.h" in command.c in order
to make a call to open() work (io.h for _open(), fcntl.h for the O_xxx)
2) PG_VERSION is no longer defined in version.h[.in], but in configure.in.
Since we don't do configure on native win32, we need to put it in
config.h.win32 :-(
3) Added define of SYSCONFDIR to config.h.win32 - libpq won't compile
without it. This functionality is *NOT* tested - it's just defined as "" for
now. May work, may not.
4) DEF_PGPORT renamed to DEF_PGPORT_STR

I have done the "basic tests" on it - it connects to a database, and I can
run queries. Haven't tested any of the fancier functions (yet).

However, I stepped on a much bigger problem when fixing psql to work. It no
longer works when linked against the .DLL version of libpq (which the
Makefile does for it). I have left it linked against this version anyway,
pending the comments I get on this mail :-)
The problem is that there are strings being allocated from libpq.dll using
PQExpBuffers (for example, initPQExpBuffer() on line 92 of input.c). These
are being allocated using the malloc function used by libpq.dll. This
function *may* be different from the malloc function used by psql.exe - only
the resulting pointer must be valid. And with the default linking methods,
it *WILL* be different. Later, psql.exe tries to free() this string, at
which point it crashes because the free() function can't find the allocated
block (it's on the allocated blocks list used by the runtime lib of
libpq.dll).

Shouldn't the right thing to do be to have psql call termPQExpBuffer() on
the data instead? As it is now, gets_fromFile() will just return the pointer
received from the PQExpBuffer.data (this may well be present at several
places - this is the one I was bitten by so far). Isn't that kind of
"accessing the internals of the PQExpBuffer structure" wrong? Instead,
perhaps it shuold make a copy of the string, adn then termPQExpBuffer() it?
In that case, the string will have been allocated from within the same
library as the free() is called.

I can get it to work just fine by doing this - changing from (around line
100 of input.c):
and the same a bit further down in the same function.

But, as I said above, this may be at more places in the code? Perhaps
someone more familiar to it could comment on that?


What do you think shuld be done about this? Personally, I go by the "If you
allocate a piece of memory using an interface, use the same interface to
free it", but the question is how to make it work :-)


Also, AFAIK this only affects psql.exe, so the changes made to the libpq
this patch are required no matter how the other issue is handled.

Regards,
 Magnus
2001-01-24 03:42:38 +00:00
Hiroshi Inoue
a8b275e76d Removed a dangerours DropRelationBuffers() call. 2001-01-24 00:36:17 +00:00
Tom Lane
997ee51631 Make functional index copy attstorage from the column data type, rather
than forcing 'plain'.  This probably does not matter right now, but I
think it needs to be consistent with the regular (not-functional) index
case, where attstorage is copied from the underlying table.  Clean up
some other dead and infelicitous code too.
2001-01-24 00:06:07 +00:00
Tom Lane
c654c69c05 Narrow scope of critical section, per discussion 1/19/01. 2001-01-23 23:32:45 +00:00
Tom Lane
4e27b308e2 Do _bt_wrtbuf() outside critical section, per discussion with Vadim 1/19. 2001-01-23 23:29:22 +00:00
Peter Eisentraut
d7157d32cb The -R option didn't accept an argument, which made it kind of useless. 2001-01-23 22:46:14 +00:00
Tom Lane
f69ff0c4bd Give 'a_expr ::= a_expr Op' production a slightly lower precedence than
Op, so that the sequence 'a_expr Op Op a_expr' will be parsed as
a_expr Op (Op a_expr) not (a_expr Op) Op a_expr as formerly.  In other
words, prefer treating user-defined operators as prefix operators to
treating them as postfix operators, when there is an ambiguity.
Also clean up a couple of other infelicities in production priority
assignment --- for example, BETWEEN wasn't being given the intended
priority, but that of AND.
2001-01-23 22:39:08 +00:00
Bruce Momjian
edfca4b98b Subject: Bug in SQLForeignKeys()
Query used for checking foreign key triggers
returns too many results when there're more than one foreign
key in a table. It happens because only table's oid is used to
link between pg_trigger with INSERT check and pg_trigger with
UPDATE/DELETE check.

I think there should be enough to add following conditions
into WHERE clause of that query:
        AND     pt.tgconstrname = pg_trigger.tgconstrname
        AND     pt.tgconstrname = pg_trigger_1.tgconstrname

/Constantin
2001-01-23 20:36:30 +00:00
Peter Eisentraut
3de8407ea7 Remove useless leftover global variable Ps_status_buffer. 2001-01-23 20:33:29 +00:00
Michael Meskes
d09fc12044 Moved database name handling to libecpg. 2001-01-23 08:15:50 +00:00
Tom Lane
786f1a59cd Fix all the places that called heap_update() and heap_delete() without
bothering to check the return value --- which meant that in case the
update or delete failed because of a concurrent update, you'd not find
out about it, except by observing later that the transaction produced
the wrong outcome.  There are now subroutines simple_heap_update and
simple_heap_delete that should be used anyplace that you're not prepared
to do the full nine yards of coping with concurrent updates.  In
practice, that seems to mean absolutely everywhere but the executor,
because *noplace* else was checking.
2001-01-23 04:32:23 +00:00
Bruce Momjian
56970c1bc0 Fix some int4->int32. 2001-01-23 03:10:25 +00:00
Tom Lane
b686fb5bf1 Remove no-longer-needed restriction against referencing system
attributes in a FieldSelect node --- all the places that manipulate
these work just fine with system attribute numbers.  OK, it's a new
feature, so shoot me ...
2001-01-23 02:32:26 +00:00
Bruce Momjian
7e533da492 Rename int4 to int32 in a few places. 2001-01-23 01:48:17 +00:00
Tom Lane
728b0aa290 Improve realloc() per idea from Karel Zak --- if chunk to be enlarged is
at end of its block, maybe we can enlarge it in-place.
2001-01-23 01:01:36 +00:00
Tom Lane
e9c936ff38 Remove rangechecks on errno; just call strerror unconditionally. This
eliminates a raft of portability issues, including whether sys_nerr
exists, whether the platform has any valid negative errnos, etc.  The
downside is minimal: errno shouldn't ever contain an invalid value anyway,
and if it does, reasonably modern versions of strerror will not choke.
This rangecheck idea seemed good at the time, but it's clearly a net loss,
and I apologize to all concerned for having ever put it in.
2001-01-22 23:28:52 +00:00
Tom Lane
e84c429062 Clean up lockmanager data structures some more, in preparation for planned
rewrite of deadlock checking.  Lock holder objects are now reachable from
the associated LOCK as well as from the owning PROC.  This makes it
practical to find all the processes holding a lock, as well as all those
waiting on the lock.  Also, clean up some of the grottier aspects of the
SHMQueue API, and cause the waitProcs list to be stored in the intuitive
direction instead of the nonintuitive one.  (Bet you didn't know that
the code followed the 'prev' link to get to the next waiting process,
instead of the 'next' link.  It doesn't do that anymore.)
2001-01-22 22:30:06 +00:00
Michael Meskes
88ce6a2ba0 Synced preproc.y with gram.y and added missing include file to pgc.l. 2001-01-22 17:05:50 +00:00
Tom Lane
c9fe128316 Clean up per-tuple memory leaks in trigger firing and plpgsql
expression evaluation.
2001-01-22 00:50:07 +00:00
Tom Lane
59a3a40149 All the global memory contexts should be DLLIMPORT, if any are. 2001-01-22 00:18:13 +00:00
Bruce Momjian
d7d51bc138 Put quotes around environment variables. 2001-01-21 05:16:45 +00:00
Bruce Momjian
b8f23aff82 Back out patch for BLOB operations until approval. 2001-01-21 03:50:25 +00:00
Bruce Momjian
c655935217 Hello,
here is the patch attached which do check in each BLOB operation, if we are
in transaction, and raise an error otherwise. This will prevent such mistakes.

--
Sincerely Yours,
Denis Perchine
2001-01-21 03:49:14 +00:00
Tom Lane
023a48b811 Deal with C++ incompatibility of sys_nerr declaration by taking it out
of c.h altogether, and putting it into the only places that use it
(elog.c and exc.c), instead.  Modify these routines to check for a
NULL or empty-string return from strerror, too, since some platforms
define strerror to return empty string for unknown errors (what a useless
definition that is ...).  Clean up some cruft in ExcPrint while at it.
2001-01-21 00:59:26 +00:00
Tom Lane
37fd198456 Get rid of sunos4-only strerror() macro, and arrange to use the
implementation in backend/port/strerror.c if configure finds no strerror
in libc, same as we do for snprintf and inet_aton.
2001-01-20 23:07:27 +00:00
Tom Lane
531cd44fd1 Remove no-longer-used STRERROR2 config symbol. 2001-01-20 22:56:33 +00:00
Tom Lane
a2405d5554 Get rid of initdb -t bugs by the simple expedient of getting rid of
initdb -t.  This option is obsoleted by 7.1's ability to drop and
recreate template1 during normal operation.
2001-01-20 22:09:24 +00:00
Tom Lane
1a02edae60 Give a good error message for what's likely to be a common syntax error,
namely omitting the alias clause for a sub-SELECT in FROM.
2001-01-20 17:37:52 +00:00
Peter Eisentraut
19cba0cc1b Add missing piece of BitString support to node output functions. Expand
and remove IsA_Value macro.
2001-01-20 00:15:59 +00:00
Tom Lane
a7ea9f46e1 Still further tweaking of s_lock assembler: do not assume that leading
whitespace is unimportant in assembly code.  Also, move VAX definition
of typedef slock_t to port header files to be like all the other ports.
Note that netbsd.h and openbsd.h are now identical, and I rather think
that freebsd.h is broken in the places where it doesn't agree --- but
I'll leave it to the freebsders to look at that.
2001-01-20 00:03:55 +00:00
Peter Eisentraut
58f4028518 From Jason Tishler <jt@dothill.com>
* doc/FAQ_MSWIN: Update to be consistent with software -- mainly change
comment from lack of Cygwin UNIX domain socket support and to list of
current Cygwin UNIX domain socket issues.
* src/include/config.h.in: Enable UNIX domain sockets for Cygwin.
* src/include/port/win.h: Disable UNIX domain sockets for Cygwin b20.1.
* src/test/regress/pg_regress.sh: Use UNIX domain sockets for Cygwin
instead of TCP/IP.
2001-01-19 23:43:36 +00:00
Tom Lane
6ce0ed2813 Make critical sections (elog->crash) and interrupt holdoff sections
into distinct concepts, per recent discussion on pghackers.
2001-01-19 22:08:47 +00:00
Bruce Momjian
75815c3100 cleanup. 2001-01-19 21:09:57 +00:00
Bruce Momjian
27aaf9df7e Remove ; and add \n to ASM code. 2001-01-19 20:39:16 +00:00
Peter Eisentraut
e4e64e7fef Update to reality. 2001-01-19 19:43:27 +00:00
Tom Lane
6bb6209bee Make pqexpbuffer a little more robust, per bug report from Heinz Ekker. 2001-01-19 19:39:23 +00:00
Peter Eisentraut
e8990eba31 Repair circular dependencies and broken clean commands. 2001-01-19 19:15:33 +00:00
Peter Eisentraut
d62d4c3300 Change
#! /usr/local/bin/perl -w
to
#! /usr/bin/perl

The path is probably more portable, and the -w was kind of silly for a six
line script that produces two warnings as it stands.
2001-01-19 19:06:48 +00:00
Peter Eisentraut
b7001d0f6a Change
#! /usr/local/bin/python
to
#! /usr/bin/env python
which is the recommended way.
2001-01-19 18:35:40 +00:00
Bruce Momjian
de266c6d73 > > I have attached a simple change to src/pl/plperl/plperl.c to
> > enable the :bash_math opcodes.  Currently plperl.c only
> > enables the :default opcodes.  This leave out about five of six
> > math functions including sqrt().

Travis Bauer
2001-01-19 16:14:36 +00:00
Peter Mount
be281916f9 Fri Jan 19 08:47:00 GMT 2001 peter@retep.org.uk
- Applied patch submitted by John Schutz <schutz@austin.rr.com> that
          fixed a bug with ANT's SQL functions (not needed for building but nice
          to have fixed).
2001-01-19 08:49:06 +00:00
Bruce Momjian
8fe8fc9db0 Fix alignment 2001-01-19 07:03:53 +00:00
Bruce Momjian
246b5398b4 Fix univel asm alignment 2001-01-19 06:59:59 +00:00
Tom Lane
86a2c2595b Suppress compiler warning in MULTIBYTE code. 2001-01-19 06:57:25 +00:00
Tom Lane
bdb72d8765 Suppress compiler warning in MULTIBYTE case. 2001-01-19 06:54:57 +00:00
Tom Lane
c78e19544e Suppress unused-variable warning in non-Assert compilations. 2001-01-19 06:50:23 +00:00
Bruce Momjian
cef28fd943 Add __volatile__ to all __asm__ and make consistent indenting 2001-01-19 03:58:35 +00:00
Bruce Momjian
d7810023c5 New ASM format:
/*
 * Standard __asm__ format:
 *
 *  __asm__(
 *          "command;"
 *          "command;"
 *          "command;"
 *      :   "=r"(_res)          return value, in register
 *      :   "r"(lock)           argument, 'lock pointer', in register
 *      :   "r0");              inline code uses this register
 */
2001-01-19 02:58:59 +00:00
Bruce Momjian
c0a0f34618 Fix VAX ASM '1 f' -> '1f'. 2001-01-18 23:40:26 +00:00
Bruce Momjian
77b347d24f Oops. Remove extra semicolon in comment. 2001-01-18 19:12:36 +00:00
Vadim B. Mikheev
0a12767004 Comment out xlrec in xact_redo - no support for file unlinking on
commit yet.
2001-01-18 18:33:45 +00:00
Peter Mount
af8630f26a Forgot to cvs add UpdateableResultSet.java ;-) 2001-01-18 17:38:50 +00:00
Peter Mount
8bc9f0016b Thu Jan 18 17:37:00 GMT 2001 peter@retep.org.uk
- Added new error message into errors.properties "postgresql.notsensitive"
          This is used by jdbc2.ResultSet when a method is called that should
          fetch the current value of a row from the database refreshRow() for
          example.
        - These methods no longer throw the not implemented but the new noupdate
          error. This is in preparation for the Updateable ResultSet support
          which will overide these methods by extending the existing class to
          implement that functionality, but needed to show something other than
          notimplemented:
            moveToCurrentRow()
            moveToInsertRow()
            rowDeleted()
            rowInserted()
            all update*() methods, except those that took the column as a String
            as they were already implemented to convert the String to an int.
        - getFetchDirection() and setFetchDirection() now throws
          "postgresql.notimp" as we only support one direction.
          The CursorResultSet will overide this when its implemented.
        - Created a new class under jdbc2 UpdateableResultSet which extends
          ResultSet and overides the relevent update methods.
          This allows us to implement them easily at a later date.
        - In jdbc2.Connection, the following methods are now implemented:
            createStatement(type,concurrency);
            getTypeMap();
            setTypeMap(Map);
        - The JDBC2 type mapping scheme almost complete, just needs SQLInput &
          SQLOutput to be implemented.
        - Removed some Statement methods that somehow appeared in Connection.
        - In jdbc2.Statement()
            getResultSetConcurrency()
            getResultSetType()
            setResultSetConcurrency()
            setResultSetType()
        - Finally removed the old 6.5.x driver.
2001-01-18 17:37:15 +00:00
Peter Mount
45b5d792af Thu Jan 18 12:24:00 GMT 2001 peter@retep.org.uk
- These methods in org.postgresql.jdbc2.ResultSet are now implemented:
            getBigDecimal(int) ie: without a scale (why did this get missed?)
            getBlob(int)
            getCharacterStream(int)
            getConcurrency()
            getDate(int,Calendar)
            getFetchDirection()
            getFetchSize()
            getTime(int,Calendar)
            getTimestamp(int,Calendar)
            getType()
          NB: Where int represents the column name, the associated version
              taking a String were already implemented by calling the int
              version.
        - These methods no longer throw the not implemented but the new noupdate
          error. This is in preparation for the Updateable ResultSet support
          which will overide these methods by extending the existing class to
          implement that functionality, but needed to show something other than
          notimplemented:
            cancelRowUpdates()
            deleteRow()
        - Added new error message into errors.properties "postgresql.noupdate"
          This is used by jdbc2.ResultSet when an update method is called and
          the ResultSet is not updateable. A new method notUpdateable() has been
          added to that class to throw this exception, keeping the binary size
          down.
        - Added new error message into errors.properties "postgresql.psqlnotimp"
          This is used instead of unimplemented when it's a feature in the
          backend that is preventing this method from being implemented.
        - Removed getKeysetSize() as its not part of the ResultSet API

Thu Jan 18 09:46:00 GMT 2001 peter@retep.org.uk
        - Applied modified patch from Richard Bullington-McGuire
          <rbulling@microstate.com>. I had to modify it as some of the code
          patched now exists in different classes, and some of it actually
          patched obsolete code.

Wed Jan 17 10:19:00 GMT 2001 peter@retep.org.uk
        - Updated Implementation to include both ANT & JBuilder
        - Updated README to reflect the changes since 7.0
	- Created jdbc.jpr file which allows JBuilder to be used to edit the
          source. JBuilder _CAN_NOT_ be used to compile. You must use ANT for
          that. It's only to allow JBuilders syntax checking to improve the
          drivers source. Refer to Implementation for more details
2001-01-18 14:50:15 +00:00
Hiroshi Inoue
89ac643964 Fix some leaks(was my fault). 2001-01-18 07:29:04 +00:00
Thomas G. Lockhart
6acdebbd3a Fix up "Postgres-style" time interval representation when fields have
mixed-signs. Previous effort left way too many minus signs, and was at
 least as broken as the one before that :(
Clean up "ISO-style" time interval representation to omit zero fields if
 there is at least one non-zero field. Supress some leading plus signs
 when not necessary for clarity.
Replace every #ifdef __CYGWIN__ block with a cleaner TIMEZONE_GLOBAL macro
 defined in datetime.h.
2001-01-18 07:22:43 +00:00
Tom Lane
b06fbc7ad2 Fix performance issue with qualifications on VIEWs: outer query should
try to push restrictions on the view down into the view subquery,
so that they can become indexscan quals or what-have-you rather than
being applied at the top level of the subquery.  7.0 and before were
able to do this, though in a much klugier way, and I'd hate to have
anyone complaining that 7.1 is stupider than 7.0 ...
2001-01-18 07:12:37 +00:00
Hiroshi Inoue
53ebb2286d Change LockClassinfoForUpdate() to retry mark4update() in case
the tuple is already uodated. (If LockClassinfoForUpdate() is
thought to be useful).
2001-01-18 04:01:42 +00:00
Bruce Momjian
978c03f9cf attached is a patch that makes SysV semaphore emulation
using POSIX semaphores more robust on Darwin 1.2/Mac OS X
Public Beta.  this is for the version of 7.1 available
via anon cvs as of Jan 14 2001 14:00 PST.

since the semaphores and shared memory created by this
emulator are shared with the backends via fork(), their
persistent names are not necessary.  removing their
names with shm_unlink() and sem_unlink() after creation
obviates the need for any "ipcclean" function.  further,
without these changes, the shared memory (and, therefore,
the semaphores) will not be re-initialized/re-created after
the first execution of the postmaster, until reboot
or until some (non-existent) ipcclean function is executed.

this patch does the following:

   1) if the shared memory segment "SysV_Sem_Info" already
      existed, it is cleaned up.  it shouldn't be there anyways.

   2) the real indicator for whether the shared memory/semaphore
      emulator has been initialized is if "SemInfo" has been
      initialized.  the shared memory and semaphores must be
      initialized regardless of whether there was a garbage shared
      memory segment lying around.

   3) the shared memory segment "SysV_Sem_Info" is created with "O_EXCL"
      to catch the case where two postmasters might be starting
      simultaneously, so they don't both end up with the same shared
      memory (one will fail).  note that this can't be done with the
      semaphores because Darwin 1.2 has a bug where attempting to
      open an existing semaphore with "O_EXCL" set will ruin the
      semaphore until the next reboot.

   4) the shared memory segment "SysV_Sem_Info" is unlinked after
      it is created.  it will then exist without a name until the
      postmaster and all backend children exit.
   5) all semaphores are unlinked after they are created.  they'll
      then exist without names until the postmaster and all backend
      children exit.

-michael thornburgh, zenomt@armory.com
2001-01-17 22:11:19 +00:00
Bruce Momjian
5088f0748a Change lcons(x, NIL) to makeList(x) where appropriate. 2001-01-17 17:26:45 +00:00
Thomas G. Lockhart
8e9840383c Change comparisons of tm->tm_isdst from "nonzero" to "greater than zero".
Not sure why some were this way, and others were already correct, but it
 seems to have been like this for several years.
This caused problems on a few damaged platforms like AIX and IRIX which do
 not support DST calculations for years before 1970.
Thanks to Andreas Zeugswetter <ZeugswetterA@wien.spardat.at> for finding
 the problem.
2001-01-17 16:46:56 +00:00
Bruce Momjian
26e0321191 Move structure comments from the top block down to the line entries for
this file to match all the other files, and to be clearer.
2001-01-17 06:41:31 +00:00
Tom Lane
4c4f305b15 Remove bogus backslashes in sed command. 2001-01-16 22:48:34 +00:00
Tom Lane
dae52bf3ec Oops, I had managed to break query-cancel-while-waiting-for-lock. 2001-01-16 20:59:34 +00:00
Tom Lane
64e6c60897 Rename fields of lock and lockholder structures to something a tad less
confusing, and clean up documentation.
2001-01-16 06:11:34 +00:00
Tom Lane
3db4056e22 Fix problems with parentheses around sub-SELECT --- for the last time,
I hope.  I finally realized that we were going at it backwards: when
there are excess parentheses, they need to be treated as part of the
sub-SELECT, not as part of the surrounding expression.  Although either
choice yields an unambiguous grammar, only this way produces a grammar
that is LALR(1).  With the old approach we were guaranteed to fail on
either 'SELECT (((SELECT 2)) + 3)' or
'SELECT (((SELECT 2)) UNION SELECT 2)' depending on which way we
resolve the initial shift/reduce conflict.  With the new way, the same
reduction track can be followed in both cases until we have advanced
far enough to know whether we are done with the sub-SELECT or not.
2001-01-15 20:36:36 +00:00
Tom Lane
efd6cade83 Tweak heap_update/delete so that we do not hold the buffer context lock
on the old tuple's page while we are doing TOAST pushups.
2001-01-15 05:29:19 +00:00
Tom Lane
0b5d194aaa Minor coding cleanups. 2001-01-14 22:21:54 +00:00
Tom Lane
a904181a46 Another go-round on making GetRawDatabaseInfo behave as well as it can,
given the fundamental restriction of not looking at transaction commit
data in pg_log.  Use code that is actually based on tqual.c rather than
ad-hoc tests.  Also write the tuple fetch loop using standard access
macros rather than ad-hoc code.
2001-01-14 22:21:05 +00:00
Tom Lane
8a0c9b17a5 pg_database's datpath column must not be marked toastable, because
GetRawDatabaseInfo() won't cope with a compressed path spec (much less
a moved-off one).  I'm not going to force an initdb for this change,
because it's noncritical --- we're not actually using datpath at all
right now.  But it seems a good idea to apply the fix while I'm thinking
about it.
2001-01-14 22:17:22 +00:00
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
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
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
Bruce Momjian
93cf749f40 Update pgcvslog to fix problem with duplicate narratives. 2001-01-13 01:49:35 +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
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
Tom Lane
8fd2e269f7 MakeRetrieveViewRuleName was scribbling on memory that didn't belong
to it.  Bad dog.
2001-01-03 18:43:09 +00:00
Thomas G. Lockhart
a8aa2f95b4 Repair always-broken date_part('quarter',timestamp).
Previous result did not have correct month boundaries so anything near edge
 cases was suspect (e.g. April was in Q1 and July, August were lumped into
 Q2).
Thanks to Denis Osadchy <osadchy@turbo.nsk.su> for the report.
2001-01-03 16:48:02 +00:00
Bruce Momjian
6b75942c72 I've found a memory leak in libecpg of PostgreSQL 7.0.3.
The leak is caused by the memory allocation in
src/interfaces/ecpg/lib/execute.c in line 669 which is never freed.
Adding a "free(array_query);" after PQexec in line 671 seems to fix the
leak.

Thorsten Knabe
2001-01-02 22:03:02 +00:00
Tom Lane
3bdadd0426 Document tuple ordering differences as a possible cause of
regression test 'failures'.
2001-01-02 05:56:02 +00:00
Tom Lane
1b8a219eef Clean up non-reentrant interface for hash_seq/HashTableWalk, so that
starting a new hashtable search no longer clobbers any other search
active anywhere in the system.  Fix RelationCacheInvalidate() so that
it will not crash or go into an infinite loop if invoked recursively,
as for example by a second SI Reset message arriving while we are still
processing a prior one.
2001-01-02 04:33:24 +00:00
Tom Lane
25d88e4c53 Tweak temporary-installation setup so that it doesn't break when the
configured install --prefix begins with /data/...
2001-01-02 02:13:48 +00:00
Tom Lane
144ec3c148 Update geometry-alpha-precision.out per reports from Brent Verner and
Adriaan Joubert.
2001-01-01 23:18:18 +00:00
Tom Lane
ad0169b1b7 CLUSTER forgot to create a TOAST table for the clustered relation. 2001-01-01 21:35:00 +00:00
Tom Lane
9315ff5549 Ensure attcacheoff is written out as -1 when writing pg_attribute
tuples for a relation.  Needed to prevent Assert failure in CLUSTER.
2001-01-01 21:33:31 +00:00
Tom Lane
473763e676 Update comment. 2001-01-01 21:22:54 +00:00
Tom Lane
19e68b5096 Mark geometric 'overlaps' operators (&&) as self-commutative. 2000-12-31 22:34:04 +00:00
Tom Lane
8972088dcb Fix typo in error message. 2000-12-31 22:24:14 +00:00
Tom Lane
52522850fe Don't say 'export PGHOST' or 'export PGPORT' unless we actually define
those variables.  Some shells will invent an empty-string definition in
this case, which is not what we want.
2000-12-31 18:38:44 +00:00
Tom Lane
e41b8a0fdd On further thought, we need a defense against empty PGPORT here too. 2000-12-31 18:23:21 +00:00
Tom Lane
45f92179d9 Ignore PGPORT environment variable if it is an empty string. 2000-12-31 18:15:58 +00:00
Tom Lane
ff6012e275 Reverse #if test to be defined(__osf__) rather than not-any-of-a-lot-
of-others.
2000-12-31 18:04:35 +00:00
Peter Eisentraut
3b2b7eb19e Remove incorrect use of rl_special_prefixes until further evaluation. 2000-12-31 11:57:58 +00:00
Tom Lane
fada8ee41f NetBSD/Alpha porting fixes from tom@minnesota.com. 2000-12-31 03:34:01 +00:00
Tom Lane
4723b2b99b Be more careful about the difference between signed and unsigned ints.
Bug is revealed by OID regress test on 64-bit platforms.
2000-12-30 19:17:47 +00:00
Peter Eisentraut
74e2bf95ec Remove C++ comment. 2000-12-30 16:48:49 +00:00
Vadim B. Mikheev
3e059b3802 1. WAL needs in zero-ed content of newly initialized page.
2. Log record for PageRepaireFragmentation now keeps array
   of !LP_USED offnums to redo cleanup properly.
2000-12-30 15:19:57 +00:00