1. 10 Sep, 1996 4 commits
    • Marc G. Fournier's avatar
    • Marc G. Fournier's avatar
      Fixes: · 796f7899
      Marc G. Fournier authored
      The problem is that the function arguments are not considered as possible key
      candidates for index scan and so only a sequential scan is possible inside
      the body of a function.  I have therefore made some patches to the optimizer
      so that indices are now used also by functions.  I have also moved the plan
      debug message from pg_eval to pg_plan so that it is printed also for plans
      genereated for function execution.  I had also to add an index rescan to the
      executor because it ignored the parameters set in the execution state, they
      were flagged as runtime variables in ExecInitIndexScan but then never used
      by the executor so that the scan were always done with any key=1. Very odd.
      This means that an index rescan is now done twice for each function execution
      which uses an index, the first time when the index scan is initialized and
      the second when the actual function arguments are finally available for the
      execution.  I don't know what is the cost of an double index scan but I
      suppose it is anyway less than the cost of a full sequential scan, at leat
      for large tables. This is my patch, you must also add -DINDEXSCAN_PATCH in
      Makefile.global to enable the changes.
      
      Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
      796f7899
    • Marc G. Fournier's avatar
      Fixes: · f2f53aee
      Marc G. Fournier authored
      The comparison routines for text and char data type give incorrect results
      if the input data contains characters greater than 127.  As these routines
      perform the comparison using signed char variables all character codes
      greater than 127 are interpreted as less than 0.  These codes are used to
      encode the iso8859 char sets.
      The other text-like data types seem to work as expected as they use unsigned
      chars in comparisons.
      
      
      Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
      f2f53aee
    • Marc G. Fournier's avatar
      Cleaned up a spurious '-' ... · 1ba34d91
      Marc G. Fournier authored
      Pointed out by: ernst.molitor@uni-bonn.de
      1ba34d91
  2. 28 Aug, 1996 9 commits
  3. 27 Aug, 1996 18 commits
  4. 26 Aug, 1996 7 commits
  5. 24 Aug, 1996 2 commits
    • Marc G. Fournier's avatar
      This patch for Versions 1 and 2 corrects the following bug: · 61eaefe9
      Marc G. Fournier authored
      In a catalog class that has a "name" type attribute, UPDATEing of an
      instance of that class may destroy all of the attributes of that
      instance that are stored as or after the "name" attribute.
      
      This is caused by the alignment value of the "name" type being set to
      "double" in Class pg_type, but "integer" in Class pg_attribute.
      Postgres constructs a tuple using double alignment, but interprets it
      using integer alignment.
      
      The fix is to change the alignment to integer in pg_type.
      
      Note that this corrects the problem for new Postgres systems.  Existing
      databases already contain the error and it can't easily be repaired because
      this very bug prevents updating the class that contains it.
      
      --
      Bryan Henderson                                    Phone 408-227-6803
      San Jose, California
      61eaefe9
    • Marc G. Fournier's avatar
      The patch does several things: · 208a30f2
      Marc G. Fournier authored
              It adds a WITH OIDS option to the copy command, which allows
      dumping and loading of oids.
      
              If a copy command tried to load in an oid that is greater than
      its current system max oid, the system max oid is incremented.  No
      checking is done to see if other backends are running and have cached
      oids.
      
              pg_dump as its first step when using the -o (oid) option, will
      copy in a dummy row to set the system max oid value so as rows are
      loaded in, they are certain to be lower than the system oid.
      
              pg_dump now creates indexes at the end to speed loading
      
      
      Submitted by:  Bruce Momjian <maillist@candle.pha.pa.us>
      208a30f2