Commit Graph

330 Commits

Author SHA1 Message Date
Bruce Momjian 8bac4ca87b Rename libpq to use more normal field names. 1998-07-13 02:41:59 +00:00
Bruce Momjian 6ce9c76b0a Fix libpq because it was reading from the backend as a short. 1998-07-13 00:01:45 +00:00
Bruce Momjian cfef73b4c0 Update linux_i386 fix. 1998-07-12 18:48:08 +00:00
Marc G. Fournier bd029bcb4a From: Tom Lane <tgl@sss.pgh.pa.us>
The attached patches respond to discussion that was on pgsql-hackers
around the beginning of June (see thread "libpgtcl bug (and symptomatic
treatment)").  The changes are:

1. Remove code in connectDB that throws away the password after making
a connection.  This doesn't really add much security IMHO --- a bad guy
with access to your client's address space can likely extract the
password anyway, to say nothing of what he might do directly.  And
there's the serious shortcoming that it prevents PQreset() from working
if the database requires a password.

2. Fix coredump problem: fe_sendauth did not guard against being handed
a NULL password pointer.  (This is the proximate cause of the coredump-
during-PQreset problem that Magosanyi Arpad complained of last month.)

3. Remove highly questionable "error recovery" logic in libpgtcl's
pg_exec statement.

I believe the consensus of the discussion last month was in favor of
#1 and #3, but I'm just now getting around to making the change.
I realized that #2 was a bug in process of looking at the change.
1998-07-09 03:32:10 +00:00
Marc G. Fournier a0659e3e2c From: Tom Lane <tgl@sss.pgh.pa.us>
Making PQrequestCancel safe to call in a signal handler turned out to be
much easier than I feared.  So here are the diffs.

Some notes:
  * I modified the postmaster's packet "iodone" callback interface to allow
    the callback routine to return a continue-or-drop-connection return
    code; this was necessary to allow the connection to be closed after
    receiving a Cancel, rather than proceeding to launch a new backend...
    Being a neatnik, I also made the iodone proc have a typechecked
    parameter list.
  * I deleted all code I could find that had to do with OOB.
  * I made some edits to ensure that all signals mentioned in the code
    are referred to symbolically not by numbers ("SIGUSR2" not "2").
    I think Bruce may have already done at least some of the same edits;
    I hope that merging these patches is not too painful.
1998-07-09 03:29:11 +00:00
Marc G. Fournier b27af0d94a From: "Dr. Michael Meskes" <meskes@online-club.de>
My first try at libpq. This one enables the two styles we agreed upon for
database descriptors.
1998-07-07 18:00:09 +00:00
Bruce Momjian 9f9644d01d win32 cleanup 1998-07-03 04:29:04 +00:00
Bruce Momjian c765b4b052 Hello!
Through some minor changes, I have been able to compile the libpq
client libraries on the Win32 platform. Since the libpq communications
part has been rewritten, this has become much easier. Enclosed is
a patch that will allow at least Microsoft Visual C++ to compile
libpq into both a static and a dynamic library.  I will take a look
at porting the psql frontend as well, but I figured it was a good
idea to send in these patches first - so no major changes are done
to the files before it gets applied (if it does).

Regards,
  Magnus Hagander
1998-07-03 04:24:16 +00:00
Bruce Momjian 8bad4e23a8 Remove un-needed include files. 1998-06-21 16:39:11 +00:00
Bruce Momjian e0ca37bdf6 More mb patches. 1998-06-16 07:38:20 +00:00
Bruce Momjian cb7cbc16fa Hi, here are the patches to enhance existing MB handling. This time
I have implemented a framework of encoding translation between the
backend and the frontend. Also I have added a new variable setting
command:

SET CLIENT_ENCODING TO 'encoding';

Other features include:
	Latin1 support more 8 bit cleaness

See doc/README.mb for more details. Note that the pacthes are
against May 30 snapshot.

Tatsuo Ishii
1998-06-16 07:29:54 +00:00
Bruce Momjian d6e0ee6bcb Added missing file. 1998-06-16 06:57:27 +00:00
Bruce Momjian 26d5a31dbf Add bsdi shared library support. 1998-06-16 03:17:47 +00:00
Bruce Momjian a0f95aceb4 Fix portname defines in Makefiles. 1998-06-15 21:01:54 +00:00
Bruce Momjian 6bd323c6b3 Remove un-needed braces around single statements. 1998-06-15 19:30:31 +00:00
Bruce Momjian 6f1a50746c Clean up template names and remove LINUX_ELF hack. No longer
needed.
1998-06-12 18:36:42 +00:00
Bruce Momjian 683333644d Pass atttypmod to the frontend. 1998-05-14 17:18:14 +00:00
Bruce Momjian 58fffea03c Cleanups for large objects, so file is trucated on open, fix for
solaris/spare shared libararies, new error message for postmaster
startup, and makefile cleanups.
1998-05-12 21:44:08 +00:00
Bruce Momjian c312583767 Add sys/time.h to fe-misc.c, prevent pgtclsh from using old libaries,
and allow CUSTOM_COPT to appear in compile AND LINK commands.
1998-05-12 15:42:09 +00:00
Bruce Momjian 6ef58461ff Add missing includes. 1998-05-07 16:17:18 +00:00
Bruce Momjian 9527ce3efe Add missing file from Tom Lane. 1998-05-07 14:52:52 +00:00
Bruce Momjian 1c2d9cb637 It seems the regression tests don't cover copy in/out at all, so
code that I had assumed was working had not been tested.  Naturally,
it was broken ...

Tom Lane
1998-05-06 23:53:48 +00:00
Bruce Momjian edbd51395c What I've done:
1. Rewritten libpq to allow asynchronous clients.

2. Implemented client side of cancel protocol in library,
   and patched psql.c to send a cancel request upon SIGINT.  The
   backend doesn't notice it yet :-(

3. Implemented 'Z' protocol message addition and renaming of
   copy in/out start messages.  These are implemented conditionally,
   ie, the client protocol version is checked; so the code should
   still work with 1.0 clients.

4. Revised protocol and libpq sgml documents (don't have an SGML
   compiler, though, so there may be some markup glitches here).


What remains to be done:

1. Implement addition of atttypmod field to RowDescriptor messages.
   The client-side code is there but ifdef'd out.  I have no idea
   what to change on the backend side.  The field should be sent
   only if protocol >= 2.0, of course.

2. Implement backend response to cancel requests received as OOB
   messages.  (This prolly need not be conditional on protocol
   version; just do it if you get SIGURG.)

3. Update libpq.3.  (I'm hoping this can be generated mechanically
   from libpq.sgml... if not, will do it by hand.)  Is there any
   other doco to fix?

4. Update non-libpq interfaces as necessary.  I patched libpgtcl
   so that it would compile, but haven't tested it.  Dunno what
   needs to be done with the other interfaces.

Have at it!

Tom Lane
1998-05-06 23:51:16 +00:00
Marc G. Fournier a9ed49d5b5 From: Oliver Elphick <olly@lfix.co.uk>
If PQfn() receives NOTICEs from the backend, it fails because there is no
provision to deal with them.

This patch (supplied by Anders Hammarquist <iko@netg.se> to me as Debian
maintainer of postgresql) cures the problem:
1998-04-29 02:04:01 +00:00
Marc G. Fournier 6d817475b2 From: Tom Lane <tgl@sss.pgh.pa.us>
HP-UX (all versions) requires shared libraries to have execute
permission, and really needs them to be exactly mode 555 for
performance reasons.  The standard configure/install procedure
installs libpq.sl as mode 644, which DOES NOT WORK.

The attached patch modifies the makefiles to distinguish
INSTL_LIB_OPTS (install mode for ordinary libraries) from
INSTL_SHLIB_OPTS (mode for shared libs), and adds a test
to configure to set INSTL_SHLIB_OPTS="-m 555" when on HP-UX.
1998-04-27 14:55:46 +00:00
Marc G. Fournier 5e6b0a574b Try for a LINUX_ELF fix (bandage?) 1998-04-21 12:38:46 +00:00
Marc G. Fournier 5bdda53f12 From: Bryan Henderson <bryanh@giraffe-data.com>
Here's a fix for a tiny memory leak in PQsetdb/PQfinish.

(Analysis of a running program indicates there are several others, but
this is the only obvious one I saw in the code).
1998-04-21 04:00:06 +00:00
Bruce Momjian 471dbbc223 DESTDIR removed, again. 1998-04-06 16:53:15 +00:00
Bruce Momjian 066ee9a2e9 Make DESTDIR consistent, and verious Linux cleanups. 1998-04-06 01:36:41 +00:00
Bruce Momjian 5523beb949 Re-introduce $DISTDIR. 1998-04-06 01:16:55 +00:00
Bruce Momjian 1e801a8f16 Hi,
Attached you'll find a (big) patch that fixes make dep and make
depend in all Makefiles where I found it to be appropriate.

It also removes the dependency in Makefile.global for NAMEDATALEN
and OIDNAMELEN by making backend/catalog/genbki.sh and bin/initdb/initdb.sh
a little smarter.

This no longer requires initdb.sh that is turned into initdb with
a sed script when installing Postgres, hence initdb.sh should be
renamed to initdb (after the patch has been applied :-) )

This patch is against the 6.3 sources, as it took a while to
complete.

Please review and apply,

Cheers,

Jeroen van Vianen
1998-04-06 00:32:26 +00:00
Bruce Momjian 2dfee93457 Remove DISTDIR. 1998-04-05 22:02:56 +00:00
Bruce Momjian f07c7bf4e7 I have been troubled by a segmentation fault when reloading from
a dumpall.  This has been happening when a second \connect is
encountered.

The faulty code was in fe-connect.c, where the memory for the user
password was freed, but the pointer itself was not set to NULL.
Later, the memory was reused and the password appeared not to be
empty, so that an attempt was made to reference it.

Oliver Elphick
1998-03-26 23:46:14 +00:00
Marc G. Fournier 8d53465ed5 Moved sys/types.h to before netdb.h
From: Vince Vielhaber <vev@michvhf.com>
1998-03-22 04:18:17 +00:00
Bruce Momjian 76e6d26011 HPUX build does not build shared lib versions of libpq and libpq++
--------------------------------------------------------------------------

Test Case:  ----------


--------------------------------------------------------------------------

Solution:  --------- Add this to the libpq and libpq++ Makefiles
to build shared libs:

Mike Ferrara
1998-03-20 04:07:11 +00:00
Bruce Momjian e98df1ab29 In libpq-fe.h: #if defined(sun) && defined(sparc) && !defined(__svr4)
extern char *sys_errlist[]; #define strerror(A) (sys_errlist[(A)])
#endif                                                  /* sunos4
*/

is picked up by Solaris when the above is intended only for SunOS.

Fix Solaris.  Albert Chin-A-Young
1998-03-20 04:02:57 +00:00
Marc G. Fournier e4135ad17e From: Randy Kunkee <kunkee@pluto.ops.NeoSoft.com>
The following patch is to src/interfaces/libpq of postgresql-6.3.
The purpose of the patch is to make the initialization of
const char *pgresStatus[] match the ExecStatusType enum.
1998-03-15 08:11:11 +00:00
Marc G. Fournier 296a942b56 From: Darren King <darrenk@insightdist.com>
This patch will...

1. Remove the "-Wall" option from the ecpg/lib and ecpg/preproc Makefile.

2. Remove the addition of $(SRCDIR)/include and-or $(SRCDIR)/backend from
   ecpg/lib, ecpg/preproc, libpq and utils Makefiles. Already in CFLAGS...

3. Set MK_NO_LORDER and RANLIB in Makefile.aix to avoid a couple of extra
   steps taken care of by the 'ld' command anyways.
1998-02-27 02:41:21 +00:00
Bruce Momjian a32450a585 pgindent run before 6.3 release, with Thomas' requested changes. 1998-02-26 04:46:47 +00:00
Marc G. Fournier 96316211c3 From: t-ishii@sra.co.jp
Ok. I have decided to use:

#if defined(sun) && if defined(sparc) && !defined(__svr4)

instead of defined(sunos4).  interfaces/libpq/libpq-fe.h and
include/c.h have been modified(see included patches).

Another porblems I have found are:

o SunOS lacks strtoul(). to fix this I stole strtoul.c from FreeBSD
and place it under backend/port. necessary modifications have been
also made to backend/port/Makefile.in, include/config.h.in and
configure.in (see included patches).
1998-02-24 06:04:55 +00:00
Marc G. Fournier 9fdb501293 Install spi.h and trigger.in 1998-02-24 03:09:47 +00:00
Marc G. Fournier 64e7adb07b From: Tom I Helbekkmo <tih@Hamartun.Priv.NO>
Apart from this Makefile hack, all I've done is to make dynamically
loaded code modules fail properly (as was already done for __mips__,
although I think this is too loose: I believe NetBSD for the pmax can
do dynamic linking), and to add test-and-set lock handling.  As Bruce
suggested, this is done in a maximally efficient inlined way: I was
not aware that this code was so important, speed-wise.
1998-02-13 05:10:06 +00:00
Marc G. Fournier 7a33578436 From: Phil Thompson <phil@river-bank.demon.co.uk>
I haven't had final confirmation from Peter yet, but the attached patch
needs to be applied for the Beta otherwise password and crypt
authentication just won't work.

It puts back the loop in libpq and also fixes a couple of problems with
maintaining compatability with pre-6.3 drivers.
1998-01-31 21:27:28 +00:00
Marc G. Fournier 8e789e8ef1 From: Phil Thompson <phil@river-bank.demon.co.uk>
Attached is the patch to fix the warning messages from my code.  I also
fixed one which wasn't my code.  Apart from the usual warnings about the
bison/yacc generated code I only have one other warning message.  This
is in gramm.y around line 2234.  I wasn't sure of the fix.

I've also replaced all the calls to free() in gramm.y to calls to
pfree().  Without these I was getting backend crashes with GRANT.  This
might already have been fixed.
1998-01-29 03:24:36 +00:00
Marc G. Fournier 8a02b22e89 From: Peter T Mount <patches@maidast.demon.co.uk>
This has a problem when using any authentication other than trust or
ident.

Anything using libpq will hang, because the client will go into a loop
while connecting. The following patch simply comments out two lines (a do
and a while), removing the loop. Going through the new scheme, I can't see
why this do..while loop is in there.
1998-01-28 03:42:27 +00:00
Marc G. Fournier d5bbe2aca5 From: Phil Thompson <phil@river-bank.demon.co.uk>
I've completed the patch to fix the protocol and authentication issues I
was discussing a couple of weeks ago.  The particular changes are:

- the protocol has a version number
- network byte order is used throughout
- the pg_hba.conf file is used to specify what method is used to
  authenticate a frontend (either password, ident, trust, reject, krb4
  or krb5)
- support for multiplexed backends is removed
- appropriate changes to man pages
- the -a switch to many programs to specify an authentication service
  no longer has any effect
- the libpq.so version number has changed to 1.1

The new backend still supports the old protocol so old interfaces won't
break.
1998-01-26 01:42:53 +00:00
Marc G. Fournier c487962dd7 Fixes a free() problem under FreeBSD
Fixed pointed out by: jwieck@debis.com (Jan Wieck)
1998-01-23 02:31:18 +00:00
Marc G. Fournier 8169769ee5 From: "Michael J. Maravillo" <mmj@philonline.com>
This patch makes it possible to do a "real" make distclean (back to its
fresh state) on the distribution after compilation, regression testing,
etc.
1998-01-17 23:39:35 +00:00
Marc G. Fournier 36c1c94bca From: "Billy G. Allie" <Bill.Allie@mug.org>
The attached patches will allow postgreSQL to compile successfully on SCO
UNIXWARE 2.1.x.  The patches fix the following problems:

1.  Configure did not properly recognize the UNIXWARE system as needing the
    univel port.  It used the sys4 port.

2.  Configure did not properly process the CC flag in the template file.

3.  There was no working test and set locking implementation for the native
    UNIXWARE compiler.

4.  The test and set locking used for Intel X86 that was selected by defining
    NEED_I386_TAS_ASM could fail in a multi-processor environment.

5.  The makefiles for libpq and libpgtcl did not make a shared library for
    the univel port.
1998-01-17 23:33:58 +00:00
Marc G. Fournier 98c7cb11de From: Jan Wilhelm <Jan_Wilhelm@Physik.TU-Muenchen.DE>
a) psql dumps core when using -a password and PGUSER is set but PGPASSWORD
   not set.
1998-01-17 23:17:46 +00:00
Bruce Momjian cb3ce64f2e Cleanup of prototypes. FIx for PQtrace start/stop several times. 1998-01-14 15:48:51 +00:00
Vadim B. Mikheev 1fd402be54 Remove unused "option" from PQconnectdb(). 1998-01-13 14:57:25 +00:00
Marc G. Fournier 602b0d0c1c From: Goran Thyni <goran@bildbasen.se>
OK, here comes a patch, DBD::Pg (and possibly other 3rd party clients)
can connect to unix sockets.
Patch is against current source tree.

Background:
libpq set some policy for client, which it should not
IMHO. It prevent some 3rd party clients to connect with
unix domain sockets etc.
1998-01-13 04:24:10 +00:00
Marc G. Fournier 80159ee2bc One more src/interfaces/libpq/Makefile problem: there's an explicit
reference to the name of the shared library, instead of dereferencing
the definition from the top of the file.

From: Tom I Helbekkmo <tih@Hamartun.Priv.NO>
1998-01-13 04:20:51 +00:00
Marc G. Fournier 405ced26ba Various fixes resulting from removing the PORTNAME defines
From: Tom I Helbekkmo <tih@Hamartun.Priv.NO>
1998-01-13 04:18:22 +00:00
Thomas G. Lockhart 6b2e7e12be Add newline/tab to middle of long failure message to pretty it up a bit. 1997-12-23 20:00:06 +00:00
Bruce Momjian 5a5cb30096 Fix tolower loops to go in proper direction for cache. 1997-12-05 01:13:24 +00:00
Thomas G. Lockhart d7e0e61d84 Run through toupper() conversion in the forward direction.
Most processors should optimize this a bit better wrt cache prefetch.
1997-12-04 23:28:20 +00:00
Bruce Momjian 8d30b40843 Update description for PGHOST and unix domain sockets. Add warning for failed connections. 1997-12-04 20:32:35 +00:00
Bruce Momjian 7d2fafe636 Update description for PGHOST and unix domain sockets. Add warning for failed connections. 1997-12-04 20:26:37 +00:00
Marc G. Fournier 4c04f7724e From: todd brandys <brandys@eng3.hep.uiuc.edu>
An extension to the code to allow for a pg_password authentication database
that is *seperate* from the system password file
1997-12-04 00:28:15 +00:00
Bruce Momjian b05eddaaab Fix pg_dump, and libpq changes. 1997-12-01 22:02:49 +00:00
Bruce Momjian dfc1a6a848 Document pg_dump -z, clean up option list. Fix problem with libpq handling of field names uppercase code. 1997-12-01 21:01:24 +00:00
Thomas G. Lockhart 80c1e82232 Unscramble port selection logic to avoid compiler complaints about
uninitialized variables. I _think_ the logic is preserved...
1997-11-17 16:42:39 +00:00
Thomas G. Lockhart 3a73060ba5 Add other initialization environment variables:
PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
 (PGDATESTYLE, PGTZ already defined)
1997-11-14 15:38:31 +00:00
Thomas G. Lockhart 367089b0c1 Add PGTZ environment variable to initialization code.
Rename PG_DATESTYLE to PGDATESTYLE environment variable.
Move environment variable code to a different place so it now works!
Note that regression tests can now run with "setenv PGTZ PST8PDT"
 at the frontend rather than requiring the backend to have TZ set.
1997-11-10 15:41:58 +00:00
Bruce Momjian baeb8790ac Fix case issues with quotes. 1997-11-10 05:10:50 +00:00
Bruce Momjian c17fa36d3c Add Unix domain socket support, from Goran Thyni, goran@bildbasen.se 1997-11-07 20:52:15 +00:00
Bruce Momjian 475a8873b0 Add paging for \d, and fix \i. 1997-11-03 04:21:49 +00:00
Bruce Momjian 3f365ba0fc Inline memset() as MemSet(). 1997-09-18 20:22:58 +00:00
Bruce Momjian 59f6a57e59 Used modified version of indent that understands over 100 typedefs. 1997-09-08 21:56:23 +00:00
Bruce Momjian 319dbfa736 Another PGINDENT run that changes variable indenting and case label indenting. Also static variable indenting. 1997-09-08 02:41:22 +00:00
Bruce Momjian 1ccd423235 Massive commit to run PGINDENT on all *.c and *.h files. 1997-09-07 05:04:48 +00:00
Bruce Momjian 868d708188 Add // comments. 1997-09-05 00:09:47 +00:00
Vadim B. Mikheev 3751b49545 Number of tuples inserted/affected by INSERT/UPDATE/DELETE... 1997-08-27 09:05:24 +00:00
Marc G. Fournier 9093238c7e Fix up paths to $(SRCDIR) 1997-08-17 00:33:28 +00:00
Bruce Momjian edb58721b8 Fix pgproc names over 15 chars in output. Add strNcpy() function. remove some (void) casts that are unnecessary. 1997-08-12 20:16:25 +00:00
Bruce Momjian 8d25436d70 mkLinux patches from Tatsuo Ishii. 1997-07-29 14:09:11 +00:00
Bruce Momjian 0fca4afbf4 Change char to int as used in EOF compare, Gerhard 1997-07-12 20:31:47 +00:00
Marc G. Fournier 8d1f52ef24 From: Igor <igor@sba.miami.edu>
Subject: [PATCHES] More psql and libpq patches

Well..these would be the last patches until the release (I hope)...
I ran the regression tests while watching psql under purify, and it did
not leak even one byte.

In this patch:

* Plugged a major leak when PSQL reads files for input (either through
  \i options or through -f option)
* Fixed the one remaining leak in PSQL in not clearing PGresult *results
  everywhere it is supposed to. (Thanks Tymm)
* Fixed A small leak in PSQL not clearing all the PGsettings correctly.
* A not-so-obvious (but small) leak in Libpq when PQsetdb fails for any
  reason.
* Added \n to some Libpq error messages to make them easier to digest..
* Finally, added /* PURIFY */ comment to some of the code indicating
  the reason for why it was added/changed...for future developers.
1997-06-06 01:42:02 +00:00
Marc G. Fournier 9a5529f4d1 From: Igor <igor@sba.miami.edu>
Subject: [PATCHES] memory leak patches in libpq and psql

A couple of small memory leak patches (detected with Purify) primarily
in libpq.

* Fixed (NULL) border problem in psql (run psql, do \m, then select
  something from a table...row separators will be nulls)
* Fixed memory leak with the abovementioned border not being freed
  properly.
* Fixed memory leak in freePGconn() not freeing conn->port
* Fixed up PQclear() to free parts of PGresult only if these
  parts are not null.
* Fixed a decent memory leak that occured after executing every command
  in psql. PGresult *results was not freed most of the time.

There is still a leak being detected (2 bytes) in readline functions, but
I think this is old readline library. I will install new one and test it.
1997-06-01 15:39:08 +00:00
Bruce Momjian d95572767e Added \n to error message. 1997-06-01 04:59:25 +00:00
Bruce Momjian 35717aa24f Escape newline in select output, from A. Duursma. 1997-06-01 03:18:32 +00:00
Bruce Momjian a1157deb57 Added fcvt() prot for bsdi.
Made PQsetdb() and PQfnumber() case-insensitive.
Removed attempt to set table ownership via pg_dumpall.
1997-05-20 03:39:02 +00:00
Bruce Momjian b6b41172f6 fix for sizeof pointed out by Ed Buddington 1997-05-13 01:46:00 +00:00
Marc G. Fournier 498d2d1edc From: Edmund Mergl <E.Mergl@bawue.de>
Subject: [PATCHES] libpq patch

Hi,

here is a small patch which fixes two problems:

1. libpq/libpq-fe.h:

somehow disappeared the line

#define DefaultOption ""

now compilation stops with an error complainig an
unknown DefaultOption (970508).


2. Same patch as I sent already twice, but it never made it
  into the source tree:  there is no default value for
  AuthType and Password. This way any libpq-application
  (i.e. perl-scripts) which use the function PQconnectdb
  will break with PostgreSQL-6.1. The patch simply uses
  an empty string as default value.
1997-05-09 03:28:54 +00:00
Marc G. Fournier 8217202134 From: "Martin J. Laubach" <mjl@CSlab.tuwien.ac.at>
Subject: [PATCHES] libpq SET var TO patch

  One last, I hope. This one corrects a bogus format string, and
actually sends the contents of PG_DATESTYLE to the backend. That
means, you can do a setenv PG_DATESTYLE 'iso', and your libpq
will pick that up and tell the backend.
1997-05-07 03:13:50 +00:00
Thomas G. Lockhart ef2821d0d6 Change LOread() and LOwrite() to loread() and lowrite() to allow use
with case-insensitive SQL parser.
1997-05-06 07:19:04 +00:00
Marc G. Fournier cbaa98835c From: Raymond Toy <toy@rtp.ericsson.se>
Subject: [PATCHES] 970417:  some large object patches


Two patches here, made against 970417.  Both have to do with large
objects:

        1.  lobjfuncs was not initialized in PQconnectdb.  This causes
            failure later if large objects are used.  (Someone already
            caught this error in PQsetdb.)

        2.  Postgres functions lo_import and lo_export sometimes
            produce garbage for the file names because the filename
            strings aren't always terminated by \0.  (VARDATA isn't
            necessarily null terminated.)
1997-04-17 20:39:31 +00:00
Vadim B. Mikheev be0e8f7fb0 connectDB(): setsockopt (..., TCP_NODELAY, ...) added. 1997-04-16 06:29:19 +00:00
Marc G. Fournier cacaaed62b A couple of cleanups from Scott Harrison <Scott_Harrison@next.com> 1997-04-15 19:08:13 +00:00
Marc G. Fournier c7b40e6058 This commit represents a clean compile with the new templates under
FreeBSD

The Makefile(s) have all been cleaned up such that there is a single
LDFLAGS vs LD_ADD or LDADD or LDFLAGS or LDFLAGS_BE.  The Makefile(s)
should be alot more straightforward then they were before...and
consistent
1997-04-04 10:43:16 +00:00
Marc G. Fournier 82a27f230a Install os.h when we install the other headers...
Pointed out by: System Administrator <sysadmin@sba.miami.edu>
1997-04-04 02:53:14 +00:00
Marc G. Fournier 920c58df71 From: "Martin J. Laubach" <mjl@CSlab.tuwien.ac.at>
Subject: [HACKERS] libpq variable set patch

  Just a small change, so the automatic variable setting on
connection startup actually works...
1997-04-02 18:26:25 +00:00
Marc G. Fournier c2e73db87a Various patches for shared libraries under i386-solaris by:
Christoph Kaesling <ck@dog.pfalz.sub.de>
1997-03-25 09:21:59 +00:00
Marc G. Fournier 6304e2c273 Here's two more diffs...
The first fixes a warning from gcc about the assignment within the condition.
The extra set of parens should not make a difference, but with -Werror, they
are necessary.

The second fixes an "ln -s" invocation that assumes the current directory is
implicitly the target if not specified.  Not true in all cases, and again, it
should not make a difference except to those implementation that it does.

From: "Michael P. Snyder" <msnyder@hawkeye.huntersmoon.com>
1997-03-25 09:08:06 +00:00
Marc G. Fournier ef56e51cd3 - Renamed the variable names to something shorter, and I hope
nicer. Also, I grabbed my copy of the Informix manual, and
    added a couple of variables that make sense (formats for
    money, time, a language setting, a timezone).

  - New functions SetPGVariable() and GetPGVariable() in tcop/*.
    These don't actually do anything for the moment, but should
    be enough to implement the SET var_name TO var_val in the
    parser?

    SetPGVariable() expects just two strings, the var_name and
    the var_value from above, and is expected to do the right thing.
    Returns TRUE if  everything okay.


From: "Martin J. Laubach" <mjl@wwx.vip.at>
1997-03-25 02:37:21 +00:00
Marc G. Fournier 812a6c2b54 - Move most of the I/O in both libpq and the backend to a set
of common routines in pqcomprim.c (pq communication primitives).
    Not all adapted to it yet, but it's a start.

  - Rewritten some of those routines, to write/read bigger chunks of
    data, precomputing stuff in buffers instead of sending out byte
    by byte.

  - As a consequence, I need to know the endianness of the machine.
    Currently I rely on getting it from machine/endian.h, but this
    may not be available everywhere? (Who the hell thought it was
    a good idea to pass integers to the backend the other way around
    than the normal network byte order? *argl*)

  - Libpq looks in the environment for magic variables, and upon
    establishing a connection to the backend, sends it queries
    of the form "SET var_name TO 'var_value'". This needs a change
    in the backend parser (Mr. Parser, are you there? :)

  - Currently it looks for two Env-Vars, namely PG_DATEFORMAT
    and PG_FLOATFORMAT. What else makes sense? PG_TIMEFORMAT?
    PG_TIMEZONE?

From: "Martin J. Laubach" <mjl@wwx.vip.at>
1997-03-18 20:15:39 +00:00
Marc G. Fournier 7d02575ad1 Fixes for libpgtcl from Massimo 1997-03-17 22:05:08 +00:00
Marc G. Fournier 5ea01d62ef Don't forget the fe-connect.h include file 1997-03-16 19:06:04 +00:00
Marc G. Fournier ea58f28ee8 om: "Martin J. Laubach" <mjl@CSlab.tuwien.ac.at>
Subject: [HACKERS] Patch for io routines

  I am currently trying to improve on the front-backend communication
routines; and noticed that lots of code are duplicated for libpq and
the backend. This is a first patch that tries to share code between
the two, more to follow.

        mjl
1997-03-16 18:51:29 +00:00
Marc G. Fournier 3031ec7c72 NetBSD Shared Library Patch from Martin J. Laubach 1997-03-15 19:17:03 +00:00
Marc G. Fournier 791c075852 Date/Time updates from Thomas... 1997-03-14 23:34:16 +00:00
Marc G. Fournier 3a7c93e7f3 From: Dan McGuirk <mcguirk@indirect.com>
Subject: [HACKERS] password authentication

This patch adds support for plaintext password authentication.  To use
it, you add a line like

host         all         0.0.0.0       0.0.0.0           password  pg_pwd.conf


to your pg_hba.conf, where 'pg_pwd.conf' is the name of a file containing
the usernames and password hashes in the format of the first two fields
of a Unix /etc/passwd file.  (Of course, you can use a specific database
name or IP instead.)

Then, to connect with a password through libpq, you use the PQconnectdb()
function, specifying the "password=" tag in the connect string and also
adding the tag "authtype=password".

I also added a command-line switch '-u' to psql that tells it to prompt
for a username and password and use password authentication.
1997-03-12 21:23:16 +00:00
Marc G. Fournier a5494a2d92 Various patches for nextstep by GregorHoffleit
Replaced NEED_STRDUP by !HAVE_STRDUP
1997-02-13 08:32:20 +00:00
Marc G. Fournier cfe18a8e3f Remove from include/config.h:
#if defined(aix)
#define TERMIOS_H_LOCATION <termios.h>
#else
#define TERMIOS_H_LOCATION <sys/termios.h>
#endif

libpq/fe-exec.c modified so that location of termios.h is determined
by whether HAVE_TERMIOS_H is defined or not, in preparation for switch
to configure
1997-01-24 17:47:39 +00:00
Bryan Henderson 52052f3a19 Use gcc to make Linux ELF shared library, instead of ld. 1997-01-20 00:51:38 +00:00
Bruce Momjian 63b22d8aa9 cleanup for LINUX_ELF 1997-01-10 18:55:24 +00:00
Vadim B. Mikheev 41857f3ca2 Additional fixes for shared library (BSD44_Derived port). 1997-01-10 04:01:09 +00:00
Marc G. Fournier 389e336ca9 From: wieck@sapserv.debis.de
Hi,

    counting the empty dummy queries in libpq isn't everything.
    If the backend sends an error, the I returns from the dummies
    still come. So we must eat them up in any case, not just
    returning on the occurence of an E reply.

Until later, Jan
1997-01-08 23:25:32 +00:00
Bryan Henderson 14800311d2 Fix mismatching prototype (const int vs int) 1997-01-06 10:11:11 +00:00
Marc G. Fournier 5b104c30e9 NeXT port specific changes by: Ovidiu Predescu <ovidiu@bx.logicnet.ro> 1997-01-06 00:24:24 +00:00
Marc G. Fournier 0865f587ea Shared library fixes for BSD44_Derived port
Submitted by: "Martin J. Laubach" <mjl@wwx.vip.at>

NOTE: The following patch I was uncertain of, but applied it...will end up
	testing the compile on my machine later tonight anyway, but if anyone
	knows why this *shouldn't* have been done, please change it. (CC -> LD)

***************
*** 61,68 ****
  ../backend/lib/dllist.o:
        $(MAKE) -C ../backend/lib dllist.o

! libpq.so.1: $(OBJS)
!       $(CC) $(LDFLAGS) -shared $(OBJS) -o libpq.so.1

  c.h: ../include/c.h
        rm -f c.h
--- 66,73 ----
  ../backend/lib/dllist.o:
        $(MAKE) -C ../backend/lib dllist.o

! $(shlib): $(OBJS)
!       $(LD) $(LDFLAGS) -shared $(OBJS) -o $(shlib)

  c.h: ../include/c.h
        rm -f c.h
1997-01-05 23:52:21 +00:00
Bryan Henderson 8fb0ac8898 Make error messages more explicit, PQtrace() output more readable. 1996-12-31 07:29:17 +00:00
Bruce Momjian cb6cb7745d Here's the final set of patches to 6.0 (sup'd on 27/12/96) that allow a full
gmake of the code without interruption.

There's also some tidy-up of the MAXPATHLEN stuff based on the assumption that
all supported platforms have MAXPATHLEN defined in <sys/param.h>.

(The only unknowns for the above are AIX and IRIX5.)
1996-12-28 02:13:05 +00:00
Bruce Momjian d4dbfdb4c0 Patch for copy from stdin. 1996-12-28 01:57:13 +00:00
Bryan Henderson af30fe7852 Remove use of "bool", which user program may not have defined. 1996-12-26 23:27:16 +00:00
Bruce Momjian e8f43854ac pq/signal() portability patch. Also psql copy prompt fix. 1996-12-26 22:08:34 +00:00
Bryan Henderson 9b55904647 Clarify error message about trying to PQgetvalue() nonexistent row. 1996-12-24 09:03:16 +00:00
Bruce Momjian 4540a8bd5c Fix multiple "C" from backend. 1996-12-20 20:34:38 +00:00
Bryan Henderson 9fc7250d3a Make compile on AIX, Alpha OSF. Thanks Darren King, Igor Notanzon. 1996-12-15 09:05:53 +00:00
Bryan Henderson 255363f859 Clean up. Get rid of tabs and overly long lines. 1996-12-13 09:25:08 +00:00
Bryan Henderson 7f36a2a718 Fix bug: libpq clients (which include libpq-fe.h) won't compile. 1996-12-10 07:05:12 +00:00
Bryan Henderson 9005a38bdb Change portname "sparc" to "sunos4" and change some portname dependencies to
feature dependencies.  Thanks Kurt J. Lidl.
1996-12-04 03:06:33 +00:00
Bryan Henderson f0e7004d29 Make strdup work for Ultrix. Thanks Erik Bertelsen 1996-11-28 03:32:18 +00:00
Bryan Henderson 93f722536f Whoops, redo Ultrix patch so the other ports still compile. 1996-11-26 07:39:11 +00:00
Bryan Henderson c118543186 Fix double-colon syntax error on fe-lobj.o. 1996-11-26 06:33:18 +00:00
Bryan Henderson 46d58fba33 Make it compile on Ultrix. Thanks Erik Bertelson. 1996-11-26 03:20:35 +00:00
Bryan Henderson 4da9c597af Include stdio.h to fix Craig Anderson's compile problem. 1996-11-22 04:39:53 +00:00
Bruce Momjian 8299e75577 following is a little fix for libpq.
PQexec  handles  the possibility of multiple results from one
    query by simply submitting an empty  query  after  the  first
    result and waiting for an 'I' message.

    Rules  can  generate  errors with transaction abort after the
    first 'C' message was recieved (e.g. if a C-language function
    used  in  a rule calls elog(WARN, ...)). Thus we have to look
    for.

Jan(wieck@sapserv.debis.de)
1996-11-20 22:35:19 +00:00
Bruce Momjian 99a4dc0598 Copy needed include files into standard directory. 1996-11-17 19:27:38 +00:00
Bruce Momjian 4024d43069 Added include file needed by memset(). 1996-11-16 05:18:58 +00:00
Bryan Henderson f64b840387 Remove most compile-time options, add a few runtime options to make up for it.
In particular, no more compiled-in default for PGDATA or LIBDIR.  Commands
that need them need either invocation options or environment variables.
PGPORT default is hardcoded as 5432, but overrideable with options or
environment variables.
1996-11-14 10:25:54 +00:00
Bryan Henderson d7dd9295b7 End of the make file simplifications. 1996-11-12 11:43:32 +00:00
Marc G. Fournier 41b8c2c849 As proposed,
following is the patch to libpq's large object interface that
    removes the requirement to  include  fmgr.h  into  fe-lobj.c.
    The  large object interface now ask's the backend to tell the
    OID's of all the required functions in pg_proc.

From: wieck@sapserv.debis.de (Jan Wieck)
1996-11-11 12:16:57 +00:00
Bruce Momjian aaeef4d17d All external function definitions now have prototypes that are checked. 1996-11-10 03:06:38 +00:00
Bryan Henderson 2e21b7e4bc Add #include <ctype.h> to quiet compiler about missing declaration of isspace(). 1996-11-10 01:46:14 +00:00
Marc G. Fournier 4aa1734f36 Added in PQconnectdb() function
Submitted by: wieck@sapserv.debis.de (Jan Wieck)
1996-11-09 10:39:54 +00:00
Bruce Momjian a0990e1884 Makefile cleanup after reorganization 1996-11-09 06:24:51 +00:00
Bruce Momjian 78078236ea Fix typo in file name found during install. 1996-11-08 21:40:11 +00:00
Bruce Momjian 4b2b8592a0 Compile and warning cleanup 1996-11-08 06:02:30 +00:00
Bryan Henderson 089dfb61f0 Add ability to deal with the fmgr.h dependency. 1996-11-04 06:32:59 +00:00
Bruce Momjian 7e42f4814d Removed PORTNAME_. Use OS version only. 1996-11-04 04:00:56 +00:00
Marc G. Fournier 4bdf308bdf shared build fails, but the rest compiles...formatting error in the
cc -shared, I believe...
1996-11-03 07:14:32 +00:00
Bryan Henderson b216c1eac6 Continuation of make file simplification; deal with header file shuffle. 1996-11-02 09:54:44 +00:00
Bruce Momjian d91cc297bb Changed include path. 1996-10-31 05:58:32 +00:00
Bryan Henderson aa71f918c3 Fix sigaction again to try for portability. 1996-10-29 21:53:48 +00:00
Bryan Henderson e18d49d82a Add CFLAGS+=-DPOSTPORT=... so we can take it out of the global CFLAGS. 1996-10-25 09:22:30 +00:00
Bryan Henderson 6cbaa93b82 Change treatment of sigaction structure again to include even more platforms.
Thanks D'Arcy.
1996-10-16 09:41:13 +00:00
Bryan Henderson ec610a7696 Remove 4th element of sigaction structure so it works on more platforms. 1996-10-15 07:16:41 +00:00
Bruce Momjian 86be8677a9 Added consistent include file handling for MAXHOSTNAMELEN.
If I have introduced any syntax errors with this, I will patch them in
the morning, and Marc will have a good laugh.
1996-10-13 04:50:27 +00:00
Bryan Henderson 329b38eebb Add PGUSER environment variable for client to specify Postgres username. 1996-10-10 08:20:11 +00:00
Bruce Momjian fd067981be Fix location of include files to match postgres.h includes. 1996-09-25 19:37:31 +00:00
Marc G. Fournier afcbce5c22 CFLAGS +- -I... got messed by one of Bryan's patches
Fix Submitted by: Bryan himself :)
1996-09-23 18:14:08 +00:00
Marc G. Fournier ff4d0d435e Here's a patch that I discussed recently on pg95-dev that changes the
way one creates a database system.  Parts that were in "make install"
are not either in "make all" or initdb.  Nothing goes in the PGDATA
directory besides user data.  Creating multiple database systems is
easier.

In addition to applying the patch, it is necessary to move the file
libpq/pg_hba to backend/libpq/pg_hba.sample.

Submitted by: Bryan Henderson <bryanh@giraffe.netgate.net>
1996-09-23 08:24:13 +00:00
Marc G. Fournier bbebcb125e Fixes:
Async notifies received while a backend is in the middle of a begin/end
transaction block are lost by libpq when the final end command is issued.

The bug is in the routine PQexec of libpq. The routine throws away any
message from the backend when a message of type 'C' is received. This
type of message is sent when the result of a portal query command with
no tuples is returned. Unfortunately this is the case of the end command.
As all async notification are sent only when the transaction is finished,
if they are received in the middle of a transaction they are lost in the
libpq library. I added some tracing code to PQexec and this is the output:

Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
1996-09-16 05:50:46 +00:00
Marc G. Fournier 28fad34c7b modifications required to reflect centralized include files 1996-08-28 23:02:43 +00:00
Marc G. Fournier 0e9f4ceae0 Here's a minor fix that fixes a casting problem:
-Kurt
1996-08-19 13:38:42 +00:00
Marc G. Fournier 77e01653bc Fixes:
When you connect to a database with PQsetdb, as with psql, depending on
how your uninitialized variables are set, you can get a failure with a
"There is no connection to the backend" message.

The fix is to move a call to PQexec() from inside connectDB() to
PQsetdb() after connectDB() returns to PQsetdb().  That way a connection
doesn't have to be already established in order to establish it!


From:  bryanh@giraffe.netgate.net (Bryan Henderson)
1996-08-19 13:25:40 +00:00
Marc G. Fournier bde34552a2 |
|Here is a fix for the psql alignment problem.  It turns out that libpq
|was trying to determine if the column contained only numeric values so
|it could right justify it.  The 'e' values were taked as exponient
|values and all columns were considered numeric.
|
|The patch excludes 'e' and 'E' as being valid first-column numeric
|values.
|

Submitted by: Bruce...
1996-08-14 16:44:51 +00:00
Marc G. Fournier 011ee13131 |
|We're all too familiar with psql's "no response from backend" message.
|Users can't tell what this means, and psql continues prompting for
|commands after it even though the backend is dead and no commands can
|succeed.  It eventually dies on a signal when the dead socket fills
|up.  I extended the message to offer a better explanation and made
|psql exit when it finds the backend is dead.
|
|I also added a short message and newline when the user does a ctl-D so
|it doesn't mess up the terminal display.
|
|

Submitted by: Bryan Henderson <bryanh@giraffe.netgate.net>
1996-08-14 04:56:55 +00:00
Marc G. Fournier 9305fc748c Fixes:
Attached is a patch to allow libpq to determine if a field is null.

This is needed because text fields will return a PQgetlength() of 0
whether it is '' or NULL.  There is even a comment in the source noting
the fact.

I have changed the value of the 'len' field for NULL result fields.  If
the field is null, the len is set to -1 (NULL_LEN).  I have changed
PQgetlength() to return a 0 length for both '' and NULL.  A new function
PQgetisnull() returns true or false for NULL.

The only risk is to applications that do not use the suggested
PQgetlength() call, but read the result 'len' field directly.

As this is not recommended, I think we are safe here.

A separate documentation patch will be sent.


Submitted by: Bruce Momjian <maillist@candle.pha.pa.us>
1996-08-13 01:34:29 +00:00
Marc G. Fournier 4db7f15b2a Updates to libpq to fix breakage in previous patch...
Submitted by: darcy@druid.druid.com (D'Arcy J.M. Cain)
1996-08-10 00:22:48 +00:00
Marc G. Fournier c4e53a1411 Fixes for:
Here are a few minor fixes to Postgres95.  Mostly I have added const
to some of the char pointers.  There was also a missing header file
and a place where it looks like "==" was used when "=" was meant.
I also changed some variables from Pfin and Pfout tp pfin and pfout
because the latter shadow global variables and that just seems like
an unsafe practice which I like to avoid.

Submitted by:  "D'Arcy J.M. Cain" <darcy@druid.druid.com>
1996-08-06 16:16:50 +00:00
Marc G. Fournier 4d837e370c Change the TEMPDIR to be obj instead of /tmp
Suggested by: Michael Babcock <michael@kanji.com>
1996-08-01 05:04:29 +00:00
Marc G. Fournier 4e82924eac Row count patch from Bruce 1996-07-31 18:40:12 +00:00
Marc G. Fournier dbf2a8c984 Everyone seems to suggestion this is something that should be there...
#include <sys/termios.h>

Submitted by: Dr. George
1996-07-31 06:05:46 +00:00
Marc G. Fournier 3881cbd2f6 Added <sys/termios.h> for i386_solaris port
Submitted by: Dr_George_D_Detlefsen <drgeorge@ilt.com>
1996-07-31 02:20:59 +00:00
Marc G. Fournier e0d48c317c Fixes: Floating point exception in psql
Submitted by: Dan McGuirk <mcguirk@indirect.com>
1996-07-31 02:06:00 +00:00
Marc G. Fournier c4ea55d2c9 clean up /tmp behind itself
submitted by: bruce
1996-07-29 20:52:24 +00:00
Marc G. Fournier b834d27bc9 small port fixes for sparc_solaris
submitted by: jason
1996-07-28 06:54:15 +00:00
Marc G. Fournier edb519b14c and now, the long awaited PAGER patches from Bruce...
Submitted by: Bruce Momjian <maillist@candle.pha.pa.us>
1996-07-27 02:55:23 +00:00
Marc G. Fournier c13ef1afed My patch to fe-connect.c introduced a new bug which is triggered only, if
Kerberos is being used (attempt to free static memory).
The error was caused by a confusing doublespeak of fe_getauthname():
Returns a pointer to static memory, if you authenticate via Kerberos,
a pointer to dynamic memory otherwise.

Submitted by: Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
1996-07-27 02:27:55 +00:00
Julian Assange 23c7ff0b3c PQprint() routines. The older code is still there for historical
compatibility. There isn't much difference here against my previous
PQprint() code, except that you can add optional arguments to the
<table args> in html.
1996-07-25 06:21:11 +00:00
Marc G. Fournier 2206b5819d Alot of "changes" from Dr. George's source tree...
Most of the changes in here look to b epurely cosmetic, and don't
affect anything...

...and some stuff is completely questionable...in that I may have reversed
some of the stuf fwe already had :(
1996-07-23 03:35:14 +00:00
Marc G. Fournier 3704b99522 - libpq calls "fe_getauthname()" two times in "fe-connect.c", but
doesn't free the buffer allocated by this function.

- submitted by: Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
1996-07-19 07:00:56 +00:00
Marc G. Fournier de82ece8bd Fix PAGER bug in createuser/etc scripts
submitted by: Bruce Momjian (root@candle.pha.pa.us)
1996-07-19 06:36:38 +00:00
Marc G. Fournier 72f76d38eb libpq and psql.c have been modified to do various things they didn't do
before (plus some optimisations/bug fixes et al).  I've included a small
demo transcript below. Note that all of of the display
functionality/intelligence you see here, can be had merely by calling
the new LIBPQ PQprint() routine with the appropriate arguments/options,
including the HTML3 output guff.


submitted by:  Julian Assange <proff@suburbia.net>
1996-07-18 05:48:57 +00:00
Marc G. Fournier e72ca17f77 fixes for several potential null pointer dereferences
submitted by: Paul "Shag" Walmsley <ccshag@cclabs.missouri.edu>
1996-07-12 04:53:59 +00:00
Marc G. Fournier d31084e9d1 Postgres95 1.01 Distribution - Virgin Sources 1996-07-09 06:22:35 +00:00