1. 31 7月, 2003 8 次提交
    • B
      dbf2pg - Insert xBase-style .dbf-files into a PostgreSQL-table · 82bade79
      Bruce Momjian 提交于
        There is an option "-s oldname=newname", which changes the old field name of
        the dbf-file to the newname in PostgeSQL. If the length of the new name is 0,
        the field is skiped. If you want to skip the first field of the dbf-file,
        you get the wildest error-messages from the backend.
        dbf2pg load the dbf-file via "COPY tablename FROM STDIN". If you skip the
        first field, it is an \t to much in STDIN.
      
      A fix could be an counter j=0, which increments only, if a field is imported
      (IF (strlen(fields[h].db_name)> 0) j++. And only if j > 1 (if an other field is
      imported) the \t is printed.
      
      An other small bug in the README:
      -s start
                    Specify  the  first record-number in the xBase-file
                    we will insert.
      should be
      -e start
                    Specify  the  first record-number in the xBase-file
                    we will insert.
      
      Thomas Behr
      82bade79
    • T
      Add pretty-printing variants of pg_get_viewdef and related functions. · 52347b66
      Tom Lane 提交于
      Patch from Andreas Pflug.
      52347b66
    • B
      Add:; · 12911ea2
      Bruce Momjian 提交于
      > * Allow server log information to be output as INSERT statements
      12911ea2
    • T
      Fix numeric_smaller, numeric_larger, float4smaller, float4larger, · 4b1c6695
      Tom Lane 提交于
      float8smaller, float8larger (and thereby the MIN/MAX aggregates on these
      datatypes) to agree with the datatypes' comparison operations as
      regards NaN handling.  In all these datatypes, NaN is arbitrarily
      considered larger than any normal value ... but MIN/MAX had not gotten
      the word.  Per recent discussion on pgsql-sql.
      4b1c6695
    • B
      Modify: · 0159f7f2
      Bruce Momjian 提交于
      > * Allow log lines to include session-level information, like database and user
      0159f7f2
    • T
      Cause ARRAY[] construct to return a NULL array, rather than raising an · 9ca5c754
      Tom Lane 提交于
      error, if any input element is NULL.  This is not what we ultimately want,
      but until arrays can have NULL elements, it will have to do.  Patch from
      Joe Conway.
      9ca5c754
    • B
      Add: · 082df47b
      Bruce Momjian 提交于
      > * Add database name and user name to logging options
      082df47b
    • T
      When shutting down the regression test postmaster after 'make check', · 5c7d04d2
      Tom Lane 提交于
      wait for the postmaster to actually exit.  Otherwise running repeated
      'make check's tends to misbehave, because we try to remove and recreate
      the data directory while the old PM is still alive.
      5c7d04d2
  2. 30 7月, 2003 2 次提交
    • T
      Fix longstanding error in _bt_search(): should moveright at top of loop not · 892a51c3
      Tom Lane 提交于
      bottom.  Otherwise we fail to moveright when the root page was split while
      we were "in flight" to it.  This is not a significant problem when the root
      is above the leaf level, but if the root was also a leaf (ie, a single-page
      index just got split) we may return the wrong leaf page to the caller,
      resulting in failure to find a key that is in fact present.  Bug has existed
      at least since 7.1, probably forever.
      892a51c3
    • T
      Coerce unknown-literal-constant default values to the column type during · 5e3c09a1
      Tom Lane 提交于
      CREATE TABLE (or ALTER TABLE SET DEFAULT), rather than postponing it to
      the time that the default is inserted into an INSERT command by the
      rewriter.  This reverses an old decision that was intended to make the
      world safe for writing
      	f1 timestamp default 'now'
      but in fact merely made the failure modes subtle rather than obvious.
      Per recent trouble report and followup discussion.
      
      initdb forced since there is a chance that stored default expressions
      will change.
      5e3c09a1
  3. 29 7月, 2003 6 次提交
  4. 28 7月, 2003 13 次提交
  5. 27 7月, 2003 11 次提交
    • B
      Cleanup of timetravel compile warnings. · b29c557e
      Bruce Momjian 提交于
      b29c557e
    • T
      Error message editing in utils/adt. Again thanks to Joe Conway for doing · b6a1d25b
      Tom Lane 提交于
      the bulk of the heavy lifting ...
      b6a1d25b
    • B
      Here is 4 file in tgz: · 524cfad2
      Bruce Momjian 提交于
      the new timetravel.c,
      new timetravel.README (cut from spi/README and modified),
      modified timetravel.sql.in
      and modified timetravel.example.
      
      Features:
      - optionally 3 parameter for insert/update/delete user name
      
      - work with CREATE UNIQUE INDEX ixxx on table xxx
      (unique_field,time_off);
          (the  original version was work with unique index on 6.5.0-6.5.3,
      and not work on 7.3.2,7.3.3)
           (before 6.5.0 and between 6.5.3 and 7.3.2 I dont know)
      
      - get_timetravel(tablename) function for check timetravel-status.
      
      - timetravel trigger not change  oid of the active record. (it is not a
      good feature, because the  old version is automatice prevent the paralel
      update with "where oid=nnn")
      
      B?jthe Zolt?n
      524cfad2
    • B
      > Joe Conway <mail@joeconway.com> writes: · 38fb906f
      Bruce Momjian 提交于
      >>ISTM that "source" is worth knowing.
      >
      > Hm, possibly.  Any other opinions?
      
      This version has the seven fields I proposed, including "source". Here's
      an example that shows why I think it's valuable:
      
      regression=# \x
      Expanded display is on.
      regression=# select * from pg_settings where name = 'enable_seqscan';
      -[ RECORD 1 ]-----------
      name    | enable_seqscan
      setting | on
      context | user
      vartype | bool
      source  | default
      min_val |
      max_val |
      
      regression=# update pg_settings set setting = 'off' where name =
      'enable_seqscan';
      -[ RECORD 1 ]---
      set_config | off
      
      regression=# select * from pg_settings where name = 'enable_seqscan';
      -[ RECORD 1 ]-----------
      name    | enable_seqscan
      setting | off
      context | user
      vartype | bool
      source  | session
      min_val |
      max_val |
      
      regression=# alter user postgres set enable_seqscan to 'off';
      ALTER USER
      
      (log out and then back in again)
      
      regression=# \x
      Expanded display is on.
      regression=# select * from pg_settings where name = 'enable_seqscan';
      -[ RECORD 1 ]-----------
      name    | enable_seqscan
      setting | off
      context | user
      vartype | bool
      source  | user
      min_val |
      max_val |
      
      In the first case, enable_seqscan is set to its default value. After
      setting it to off, it is obvious that the value has been changed for the
      session only. In the third case, you can see that the value has been set
      specifically for the user.
      
      Joe Conway
      38fb906f
    • B
      > Am Son, 2003-06-22 um 02.09 schrieb Joe Conway: · a265b7f7
      Bruce Momjian 提交于
      >>Sounds like all that's needed for your case. But to be complete, in
      >>addition to changing tablefunc.c we'd have to:
      >>1) come up with a new function call signature that makes sense and does
      >>not cause backward compatibility problems for other people
      >>2) make needed changes to tablefunc.sql.in
      >>3) adjust the README.tablefunc appropriately
      >>4) adjust the regression test for new functionality
      >>5) be sure we don't break any of the old cases
      >>
      >>If you want to submit a complete patch, it would be gratefully accepted
      >>-- for review at least ;-)
      >
      > Here's the patch, at least for steps 1-3
      
      Nabil Sayegh
      Joe Conway
      a265b7f7
    • B
      This is a totally trivial patch for something that was a very minor nit that · 9ae69055
      Bruce Momjian 提交于
      annoyed me the other day while I was documenting my current project. It
      makes pg_dump use the same layout for types as for tables, by putting "\n\t"
      before the first field and "\n" before the final ");"
      
      Can't really justify this too much except to say I had an itch and I
      scratched it ;-)
      
      Andrew Dunstan
      9ae69055
    • B
      here are the patches for psql on Win32: · 9df48371
      Bruce Momjian 提交于
        psql4win32.patch  - changes in the psql source code
        psql-ref.patch    - changes in the documentation psql-ref.sgml
                            (for new builtin variable WIN32_CONSOLE)
      
      To apply them use "patch -p 1" in the root directory of the
      postgres source directory.
      
      These patches fix the following problems of psql on Win32
      (all changes only have effect #ifdef WIN32):
      
        a) Problem:  Static library libpq.a did not work
           Solution: Added WSAStartup() in fe-connect.c
      
        b) Problem:  Secret Password was echoed by psql
           Solution: Password echoing disabled in sprompt.c
      
        c) Problem:  8bit characters were displayed/interpreted wrong in psql
                     This is due to the fact that the Win32 "console" uses a
                     different encoding than the rest of the Windows system
           Solution: Introduced a new psql variable WIN32_CONSOLE
                     When set with "\set WIN32_console", the function OemToChar()
                     is applied after reading input and CharToOem() before
                     displaying Output
      
      Christoph Dalitz
      9df48371
    • B
      This makes the initcap function compatible with Oracle 9i, it has been · e7fe89d5
      Bruce Momjian 提交于
      tested on both redhat 8 and FreebSD.
      --
      Mike Nolan
      e7fe89d5
    • B
      The deferred trigger queue pushing to disk patch pointed out · 1e5a16cc
      Bruce Momjian 提交于
      that the regression tests for foreign keys didn't seem to test
      a deferred constraint that was not satisified by a later
      statement and was not made immediate by set constraints,
      so here's a simple added test with a single invalid insert and
      a commit.
      
      Stephan Szabo
      1e5a16cc
    • B
      >>You can alias $0, similar to the argument variables. And, I confirmed · 1be17f1f
      Bruce Momjian 提交于
      >>that you cannot change the value, similar to the argument variables:
      >
      > Perhaps you shouldn't mark it isconst; then it would actually have some
      > usefulness (you could use it directly as a temporary variable to hold
      > the intended result).  I can't see much value in aliasing it if it's
      > const, either.
      
      OK; the only change in this version is "isconst = false;". Now you can
      use $0 as a result placeholder if desired. E.g.:
      
      create or replace function tmp(anyelement, anyelement) returns anyarray as '
      declare
        v_ret alias for $0;
        v_el1 alias for $1;
        v_el2 alias for $2;
      begin
        v_ret := ARRAY[v_el1, v_el2];
        return v_ret;
      end;
      ' language 'plpgsql';
      
      create table f(f1 text, f2 text, f3 int, f4 int);
      insert into f values ('a','b',1,2);
      insert into f values ('z','x',3,4);
      
      select tmp(f1,f2) from f;
      select tmp(f3,f4) from f;
      
      
      Joe Conway
      1be17f1f
    • B
      Fix for Linux startup script. · 9df03060
      Bruce Momjian 提交于
      Slawomir Sudnik
      9df03060