1. 15 1月, 2000 1 次提交
  2. 14 1月, 2000 1 次提交
    • T
      Clean up some problems in new asynchronous-connection logic · 2af360ed
      Tom Lane 提交于
      in libpq --- mostly, poor response to error conditions.  You now actually
      get to see the postmaster's 'The Data Base System is starting up' message,
      which you didn't before.  I suspect the SSL code is still broken though.
      2af360ed
  3. 02 12月, 1999 1 次提交
  4. 30 11月, 1999 1 次提交
    • B
      This patch (against the current CVS sources) adds to libpq the functions · 3ab5b1f1
      Bruce Momjian 提交于
      PQconnectStart
      PQconnectPoll
      PQresetStart
      PQresetPoll
      PQsetenvStart
      PQsetenvPoll
      PQsetenvAbort
      
      and brings into the published interface
      
      PQsetenv.
      
      The first four are asynchronous analogues of PQconnectdb and PQreset -
      they allow an application to connect to the DB without blocking on
      remote I/O.
      
      The PQsetenv functions perform an environment negotiation with the
      server.
      
      Internal to libpq, pqReadReady and pqWriteReady have been made available
      across the library (they were previously static functions inside
      fe-misc.c).  A lot of internal rearrangement has been necessary to
      support these changes.
      
      The API documentation has been updated also.
      
      Caveats:
      
        o  The Windows code does not default to using non-blocking sockets,
      since I have no documentation: Define WIN32_NON_BLOCKING_CONNECTIONS to
      do that.
      
        o  The SSL code still blocks.
      
      
      Ewan Mellor.
      3ab5b1f1
  5. 11 11月, 1999 1 次提交
    • B
      In the spirit of TODO item · 2a24ec6f
      Bruce Momjian 提交于
      * Add use of 'const' for varibles in source tree
      (which is misspelled, btw.)
      I went through the front-end libpq code and did so. This affects in
      particular the various accessor functions (such as PQdb() and
      PQgetvalue()) as well as, by necessity, the internal helpers they use.
      
      I have been really thorough in that regard, perhaps some people will find
      it annoying that things like
      char * foo = PQgetvalue(res, 0, 0)
      will generate a warning. On the other hand it _should_ generate one. This
      is no real compatibility break, although a few clients will have to be
      fixed to suppress warnings. (Which again would be in the spirit of the
      above TODO.)
      
      In addition I replaced some int's by size_t's and removed some warnings
      (and generated some new ones -- grmpf!). Also I rewrote PQoidStatus (so it
      actually honors the const!) and supplied a new function PQoidValue that
      returns a proper Oid type. This is only front-end stuff, none of the
      communicaton stuff was touched.
      
      
      The psql patch also adds some new consts to honor the new libpq situation,
      as well as fixes a fatal condition that resulted when using the -V
      (--version) option and there is no database listening.
      
      
      So, to summarize, the psql you should definitely put in (with or without
      the libpq). If you think I went too far with the const-mania in libpq, let
      me know and I'll make adjustments. If you approve it, I will also update
      the docs.
      
              -Peter
      
      --
      Peter Eisentraut                  Sernanders vaeg 10:115
      2a24ec6f
  6. 05 11月, 1999 1 次提交
  7. 26 10月, 1999 1 次提交
    • B
      These are two minor corrections to libpq's PQsetNoticeProcessor function. · 724bf746
      Bruce Momjian 提交于
      One, it now returns the previous hook. That way people don't have to dig
      around in libpq-int.h for that information anymore. It previously
      returned void, so there should be no incompatibilities.
      
      Second, you cannot set the callback to NULL anymore. (Of course you can
      still call it with NULL just to get the current hook.) The way libpq uses
      the callback pointer, having a NULL there wasn't very healthy.
      
      Peter Eisentraut
      724bf746
  8. 27 9月, 1999 1 次提交
    • B
      Lots of patches coming in from me today :-) · e0e7daef
      Bruce Momjian 提交于
      When drawing up a very simple "text-drawing" of how the negotiation is done,
      I realised I had done this last part (fallback) in a very stupid way. Patch
      #4 fixes this, and does it in a much better way.
      
      Included is also the simple text-drawing of how the negotiation is done.
      
      //Magnus
      e0e7daef
  9. 31 8月, 1999 1 次提交
    • T
      Update frontend libpq to remove limits on query lengths, · ab5cafa5
      Tom Lane 提交于
      error/notice message lengths, and number of fields per tuple.  Add
      pqexpbuffer.c/.h, a frontend version of backend's stringinfo module.
      This is first step in applying Mike Ansley's long-query patches,
      even though he didn't do any of these particular changes...
      ab5cafa5
  10. 19 7月, 1999 2 次提交
  11. 18 7月, 1999 1 次提交
  12. 17 6月, 1999 1 次提交
  13. 26 5月, 1999 1 次提交
  14. 04 5月, 1999 1 次提交
    • B
      here are some patches for 6.5.0 which I already submitted but have never · 210055ad
      Bruce Momjian 提交于
      been applied. The patches are in the .tar.gz attachment at the end:
      
      varchar-array.patch     this patch adds support for arrays of bpchar() and
                              varchar(), which where always missing from postgres.
      
                              These datatypes can be used to replace the _char4,
                              _char8, etc., which were dropped some time ago.
      
      block-size.patch        this patch fixes many errors in the parser and other
                              program which happen with very large query statements
                              (> 8K) when using a page size larger than 8192.
      
                              This patch is needed if you want to submit queries
                              larger than 8K. Postgres supports tuples up to 32K
                              but you can't insert them because you can't submit
                              queries larger than 8K. My patch fixes this problem.
      
                              The patch also replaces all the occurrences of `8192'
                              and `1<<13' in the sources with the proper constants
                              defined in include files. You should now never find
                              8192 hardwired in C code, just to make code clearer.
      
      
      --
      Massimo Dal Zotto
      210055ad
  15. 29 3月, 1999 1 次提交
  16. 21 2月, 1999 1 次提交
    • M
      · 8c3e8a8a
      Marc G. Fournier 提交于
      From: Tatsuo Ishii <t-ishii@sra.co.jp>
      
      Ok. I made patches replacing all of "#if FALSE" or "#if 0" to "#ifdef
      NOT_USED" for current. I have tested these patches in that the
      postgres binaries are identical.
      8c3e8a8a
  17. 18 2月, 1999 1 次提交
  18. 14 2月, 1999 1 次提交
  19. 05 2月, 1999 1 次提交
  20. 04 2月, 1999 1 次提交
  21. 27 1月, 1999 1 次提交
    • M
      · 2ae5d516
      Marc G. Fournier 提交于
      From: Tatsuo Ishii <t-ishii@sra.co.jp>
      
      Included patches fix a portability problem of unsetenv() used in
      6.4.2 multi-byte support. unsetenv() is only avaliable on FreeBSD and
      Linux so I decided to replace with putenv().
      2ae5d516
  22. 17 1月, 1999 2 次提交
  23. 14 10月, 1998 2 次提交
  24. 01 10月, 1998 1 次提交
  25. 20 9月, 1998 1 次提交
  26. 19 9月, 1998 1 次提交
  27. 03 9月, 1998 1 次提交
    • B
      Attached is a patch to remove the definitions of libpq's internal · f71d0cf6
      Bruce Momjian 提交于
      structs from libpq-fe.h, as we previously discussed.
      
      There turned out to be sloppy coding practices in more places than
      I had realized :-(, but all in all I think it was a well-worth-while
      exercise.
      
      I ended up adding several routines to libpq's API in order to respond
      to application requirements that were exposed by this work.  I owe the
      docs crew updates for libpq.sgml to describe these changes.  I'm way too
      tired to work on the docs tonight, however.
      
      This is the last major change I intend to submit for 6.4.  I do want
      to see if I can make libpgtcl work with Tcl 8.0 before we go final,
      but hopefully that will be a minor bug fix.
      f71d0cf6
  28. 01 9月, 1998 1 次提交
  29. 17 8月, 1998 1 次提交
    • M
      · 93120330
      Marc G. Fournier 提交于
      Date: Sun, 16 Aug 1998 14:56:48 -0400
      From: Tom Lane <tgl@sss.pgh.pa.us>
      Attached is a patch for this weekend's work on libpq.  I've dealt
      with several issues:
      
              <for details: see message, in pgsql-patches archive for above data>
      93120330
  30. 09 8月, 1998 1 次提交
    • B
      · e6311b4a
      Bruce Momjian 提交于
      The attached patch implements some changes that were discussed a
      couple weeks ago on the hackers and interfaces lists:
      
      1. When the backend sends a NOTICE message and closes the connection
         (typically, because it was told to by the postmaster after
         another backend coredumped), libpq will now print the notice
         and close the connection cleanly.  Formerly, the frontend app
         would usually terminate ungracefully due to a SIGPIPE.  (I am
         not sure if 6.3.2 behaved that way, but the current cvs sources
         do...)
      
      2. libpq's various printouts to stderr are now fed through a single
         "notice processor" routine, which can be overridden by the
         application to direct notices someplace else.  This should ease
         porting libpq to Windows.
      
      I also noticed and fixed a problem in PQprint: when sending output
      to a pager subprocess, it would disable SIGPIPE in case the pager
      terminates early (this is good) --- but afterwards it reset SIGPIPE
      to SIG_DFL, rather than restoring the application's prior setting
      (bad).
      
      			regards, tom lane
      e6311b4a
  31. 26 7月, 1998 1 次提交
    • M
      · 5979d738
      Marc G. Fournier 提交于
      From: t-ishii@sra.co.jp
      
      As Bruce mentioned, this is due to the conflict among changes we made.
      Included patches should fix the problem(I changed all MB to
      MULTIBYTE). Please let me know if you have further problem.
      
      P.S. I did not include pathces to configure and gram.c to save the
      file size(configure.in and gram.y modified).
      5979d738
  32. 24 7月, 1998 1 次提交
    • M
      · bf00bbb0
      Marc G. Fournier 提交于
      I really hope that I haven't missed anything in this one...
      
      From: t-ishii@sra.co.jp
      
      Attached are patches to enhance the multi-byte support.  (patches are
      against 7/18 snapshot)
      
      * determine encoding at initdb/createdb rather than compile time
      
      Now initdb/createdb has an option to specify the encoding. Also, I
      modified the syntax of CREATE DATABASE to accept encoding option. See
      README.mb for more details.
      
      For this purpose I have added new column "encoding" to pg_database.
      Also pg_attribute and pg_class are changed to catch up the
      modification to pg_database.  Actually I haved added pg_database_mb.h,
      pg_attribute_mb.h and pg_class_mb.h. These are used only when MB is
      enabled. The reason having separate files is I couldn't find a way to
      use ifdef or whatever in those files. I have to admit it looks
      ugly. No way.
      
      * support for PGCLIENTENCODING when issuing COPY command
      
      commands/copy.c modified.
      
      * support for SQL92 syntax "SET NAMES"
      
      See gram.y.
      
      * support for LATIN2-5
      * add UNICODE regression test case
      * new test suite for MB
      
      New directory test/mb added.
      
      * clean up source files
      
      Basic idea is to have MB's own subdirectory for easier maintenance.
      These are include/mb and backend/utils/mb.
      bf00bbb0
  33. 19 7月, 1998 1 次提交
  34. 09 7月, 1998 2 次提交
    • M
      · bd029bcb
      Marc G. Fournier 提交于
      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.
      bd029bcb
    • M
      · a0659e3e
      Marc G. Fournier 提交于
      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.
      a0659e3e
  35. 08 7月, 1998 1 次提交
    • M
      · b27af0d9
      Marc G. Fournier 提交于
      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.
      b27af0d9
  36. 03 7月, 1998 1 次提交