1. 19 7月, 2002 4 次提交
  2. 18 7月, 2002 4 次提交
    • B
      Unique and primary key constraints are both dumped using ALTER TABLE · a9f6c5b5
      Bruce Momjian 提交于
      statements.  Unique indexes with CREATE INDEX.
      
      Basically, pg_constraint left outer'd to pg_index.
      
      Rod Taylor
      a9f6c5b5
    • B
      The attached patch fixes a tiny memory leak in psql, when using · 8c26bc53
      Bruce Momjian 提交于
      the 'expanded' output mode (\x).
      
      Neil Conway
      8c26bc53
    • B
      The attached patch (against HEAD) implements · a90db34b
      Bruce Momjian 提交于
        COPY x (a,d,c,b) from stdin;
        COPY x (a,c) to stdout;
      
      as well as the corresponding changes to pg_dump to use the new
      functionality.  This functionality is not available when using
      the BINARY option.  If a column is not specified in the COPY FROM
      statement, its default values will be used.
      
      In addition to this functionality, I tweaked a couple of the
      error messages emitted by the new COPY <options> checks.
      
      Brent Verner
      a90db34b
    • T
      I have committed many support files for CREATE CONVERSION. Default · eb335a03
      Tatsuo Ishii 提交于
      conversion procs and conversions are added in initdb. Currently
      supported conversions are:
      
      UTF-8(UNICODE) <--> SQL_ASCII, ISO-8859-1 to 16, EUC_JP, EUC_KR,
      		    EUC_CN, EUC_TW, SJIS, BIG5, GBK, GB18030, UHC,
      		    JOHAB, TCVN
      
      EUC_JP <--> SJIS
      EUC_TW <--> BIG5
      MULE_INTERNAL <--> EUC_JP, SJIS, EUC_TW, BIG5
      
      Note that initial contents of pg_conversion system catalog are created
      in the initdb process. So doing initdb required is ideal, it's
      possible to add them to your databases by hand, however. To accomplish
      this:
      
      psql -f your_postgresql_install_path/share/conversion_create.sql your_database
      
      So I did not bump up the version in cataversion.h.
      
      TODO:
      Add more conversion procs
      Add [CASCADE|RESTRICT] to DROP CONVERSION
      Add tuples to pg_depend
      Add regression tests
      Write docs
      Add SQL99 CONVERT command?
      --
      Tatsuo Ishii
      eb335a03
  3. 17 7月, 2002 1 次提交
  4. 16 7月, 2002 2 次提交
  5. 15 7月, 2002 1 次提交
  6. 13 7月, 2002 2 次提交
    • B
      Add SET statement_timeout capability. Timeout is in ms. A value of · 4db8718e
      Bruce Momjian 提交于
      zero turns off the timer.
      4db8718e
    • T
      Second phase of committing Rod Taylor's pg_depend/pg_constraint patch. · 7c6df91d
      Tom Lane 提交于
      pg_relcheck is gone; CHECK, UNIQUE, PRIMARY KEY, and FOREIGN KEY
      constraints all have real live entries in pg_constraint.  pg_depend
      exists, and RESTRICT/CASCADE options work on most kinds of DROP;
      however, pg_depend is not yet very well populated with dependencies.
      (Most of the ones that are present at this point just replace formerly
      hardwired associations, such as the implicit drop of a relation's pg_type
      entry when the relation is dropped.)  Need to add more logic to create
      dependency entries, improve pg_dump to dump constraints in place of
      indexes and triggers, and add some regression tests.
      7c6df91d
  7. 11 7月, 2002 2 次提交
  8. 07 7月, 2002 2 次提交
  9. 04 7月, 2002 4 次提交
  10. 02 7月, 2002 3 次提交
  11. 21 6月, 2002 2 次提交
  12. 16 6月, 2002 3 次提交
  13. 14 6月, 2002 3 次提交
    • B
      Back out SSL changes. Newer patch available. · eb43af32
      Bruce Momjian 提交于
      eb43af32
    • B
      Attached are a revised set of SSL patches. Many of these patches · a9bd1761
      Bruce Momjian 提交于
      are motivated by security concerns, it's not just bug fixes.  The key
      differences (from stock 7.2.1) are:
      
      *) almost all code that directly uses the OpenSSL library is in two
         new files,
      
           src/interfaces/libpq/fe-ssl.c
           src/backend/postmaster/be-ssl.c
      
         in the long run, it would be nice to merge these two files.
      
      *) the legacy code to read and write network data have been
         encapsulated into read_SSL() and write_SSL().  These functions
         should probably be renamed - they handle both SSL and non-SSL
         cases.
      
         the remaining code should eliminate the problems identified
         earlier, albeit not very cleanly.
      
      *) both front- and back-ends will send a SSL shutdown via the
         new close_SSL() function.  This is necessary for sessions to
         work properly.
      
         (Sessions are not yet fully supported, but by cleanly closing
         the SSL connection instead of just sending a TCP FIN packet
         other SSL tools will be much happier.)
      
      *) The client certificate and key are now expected in a subdirectory
         of the user's home directory.  Specifically,
      
      	- the directory .postgresql must be owned by the user, and
      	  allow no access by 'group' or 'other.'
      
      	- the file .postgresql/postgresql.crt must be a regular file
      	  owned by the user.
      
      	- the file .postgresql/postgresql.key must be a regular file
      	  owned by the user, and allow no access by 'group' or 'other'.
      
         At the current time encrypted private keys are not supported.
         There should also be a way to support multiple client certs/keys.
      
      *) the front-end performs minimal validation of the back-end cert.
         Self-signed certs are permitted, but the common name *must*
         match the hostname used by the front-end.  (The cert itself
         should always use a fully qualified domain name (FDQN) in its
         common name field.)
      
         This means that
      
      	  psql -h eris db
      
         will fail, but
      
      	  psql -h eris.example.com db
      
         will succeed.  At the current time this must be an exact match;
         future patches may support any FQDN that resolves to the address
         returned by getpeername(2).
      
         Another common "problem" is expiring certs.  For now, it may be
         a good idea to use a very-long-lived self-signed cert.
      
         As a compile-time option, the front-end can specify a file
         containing valid root certificates, but it is not yet required.
      
      *) the back-end performs minimal validation of the client cert.
         It allows self-signed certs.  It checks for expiration.  It
         supports a compile-time option specifying a file containing
         valid root certificates.
      
      *) both front- and back-ends default to TLSv1, not SSLv3/SSLv2.
      
      *) both front- and back-ends support DSA keys.  DSA keys are
         moderately more expensive on startup, but many people consider
         them preferable than RSA keys.  (E.g., SSH2 prefers DSA keys.)
      
      *) if /dev/urandom exists, both client and server will read 16k
         of randomization data from it.
      
      *) the server can read empheral DH parameters from the files
      
           $DataDir/dh512.pem
           $DataDir/dh1024.pem
           $DataDir/dh2048.pem
           $DataDir/dh4096.pem
      
         if none are provided, the server will default to hardcoded
         parameter files provided by the OpenSSL project.
      
      Remaining tasks:
      
      *) the select() clauses need to be revisited - the SSL abstraction
         layer may need to absorb more of the current code to avoid rare
         deadlock conditions.  This also touches on a true solution to
         the pg_eof() problem.
      
      *) the SIGPIPE signal handler may need to be revisited.
      
      *) support encrypted private keys.
      
      *) sessions are not yet fully supported.  (SSL sessions can span
         multiple "connections," and allow the client and server to avoid
         costly renegotiations.)
      
      *) makecert - a script that creates back-end certs.
      
      *) pgkeygen - a tool that creates front-end certs.
      
      *) the whole protocol issue, SASL, etc.
      
       *) certs are fully validated - valid root certs must be available.
          This is a hassle, but it means that you *can* trust the identity
          of the server.
      
       *) the client library can handle hardcoded root certificates, to
          avoid the need to copy these files.
      
       *) host name of server cert must resolve to IP address, or be a
          recognized alias.  This is more liberal than the previous
          iteration.
      
       *) the number of bytes transferred is tracked, and the session
          key is periodically renegotiated.
      
       *) basic cert generation scripts (mkcert.sh, pgkeygen.sh).  The
          configuration files have reasonable defaults for each type
          of use.
      
      Bear Giles
      a9bd1761
    • T
      Suppress 'owner of datatype appears to be invalid' warning message for · b1313e34
      Tom Lane 提交于
      undefined (shell) types.
      b1313e34
  14. 12 6月, 2002 1 次提交
  15. 29 5月, 2002 3 次提交
  16. 25 5月, 2002 1 次提交
  17. 23 5月, 2002 1 次提交
    • P
      Add optional "validator" function to languages that can validate the · d60f10b0
      Peter Eisentraut 提交于
      function body (and other properties) as a function in the language
      is created.  This generalizes ad hoc code that already existed for
      the built-in languages.
      
      The validation now happens after the pg_proc tuple of the new function
      is created, so it is possible to define recursive SQL functions.
      
      Add some regression test cases that cover bogus function definition
      attempts.
      d60f10b0
  18. 22 5月, 2002 1 次提交