1. 13 4月, 2000 1 次提交
  2. 12 4月, 2000 2 次提交
  3. 11 4月, 2000 1 次提交
  4. 09 4月, 2000 1 次提交
    • T
      Buffer manager modifications to keep a local buffer-dirtied bit as well · 1f6d8b90
      Tom Lane 提交于
      as a shared dirtybit for each shared buffer.  The shared dirtybit still
      controls writing the buffer, but the local bit controls whether we need
      to fsync the buffer's file.  This arrangement fixes a bug that allowed
      some required fsyncs to be missed, and should improve performance as well.
      For more info see my post of same date on pghackers.
      1f6d8b90
  5. 08 4月, 2000 1 次提交
  6. 07 4月, 2000 1 次提交
    • T
      Add transcendental math functions (sine, cosine, etc) · a349733b
      Thomas G. Lockhart 提交于
      Add a random number generator and seed setter (random(), SET SEED)
      Fix up the interval*float8 math to carry partial months
       into the time field.
      Add float8*interval so we have symmetry in the available math.
      Fix the parser and define.c to accept SQL92 types as field arguments.
      Fix the parser to accept SQL92 types for CREATE TYPE, etc. This is
       necessary to allow...
      Bit/varbit support in contrib/bit cleaned up to compile and load
       cleanly. Still needs some work before final release.
      Implement the "SOME" keyword as a synonym for "ANY" per SQL92.
      Implement ascii(text), ichar(int4), repeat(text,int4) to help
       support the ODBC driver.
      Enable the TRUNCATE() function mapping in the ODBC driver.
      a349733b
  7. 05 4月, 2000 1 次提交
    • T
      Fix bug noted by Bruce: FETCH in an already-aborted transaction block · 708f82f1
      Tom Lane 提交于
      would crash, due to premature invocation of SetQuerySnapshot().  Clean
      up problems with handling of multiple queries by splitting
      pg_parse_and_plan into two routines.  The old code would not, for
      example, do the right thing with END; SELECT... submitted in one query
      string when it had been in transaction abort state, because it'd decide
      to skip planning the SELECT before it had executed the END.  New
      arrangement is simpler and doesn't force caller to plan if only
      parse+rewrite is needed.
      708f82f1
  8. 04 4月, 2000 1 次提交
    • T
      Fix extremely nasty little bug observed when a sub-SELECT appears in · 1c72a8a3
      Tom Lane 提交于
      WHERE in a place where it can be part of a nestloop inner indexqual.
      As the code stood, it put the same physical sub-Plan node into both
      indxqual and indxqualorig of the IndexScan plan node.  That confused
      later processing in the optimizer (which expected that tracing the
      subPlan list would visit each subplan node exactly once), and would
      probably have blown up in the executor if the planner hadn't choked first.
      Fix by making the 'fixed' indexqual be a complete deep copy of the
      original indexqual, rather than trying to share nodes below the topmost
      operator node.  This had further ramifications though, because we were
      making the aforesaid list of sub-Plan nodes during SS_process_sublinks
      which is run before construction of the 'fixed' indexqual, meaning that
      the copy of the sub-Plan didn't show up in that list.  Fix by rearranging
      logic so that the sub-Plan list is built by the final set_plan_references
      pass, not in SS_process_sublinks.  This may sound like a mess, but it's
      actually a good deal cleaner now than it was before, because we are no
      longer dependent on the assumption that planning will never make a copy
      of a sub-Plan node.
      1c72a8a3
  9. 31 3月, 2000 1 次提交
    • T
      Get rid of SetBufferWriteMode(), which was an accident waiting to happen. · ca05ba2a
      Tom Lane 提交于
      In the event of an elog() while the mode was set to immediate write,
      there was no way for it to be set back to the normal delayed write.
      The mechanism was a waste of space and cycles anyway, since the only user
      was varsup.c, which could perfectly well call FlushBuffer directly.
      Now it does just that, and the notion of a write mode is gone.
      ca05ba2a
  10. 30 3月, 2000 1 次提交
  11. 28 3月, 2000 1 次提交
  12. 25 3月, 2000 1 次提交
  13. 24 3月, 2000 2 次提交
  14. 23 3月, 2000 1 次提交
    • T
      Repair logic flaw in cost estimator: cost_nestloop() was estimating CPU · 1d5e7a6f
      Tom Lane 提交于
      costs using the inner path's parent->rows count as the number of tuples
      processed per inner scan iteration.  This is wrong when we are using an
      inner indexscan with indexquals based on join clauses, because the rows
      count in a Relation node reflects the selectivity of the restriction
      clauses for that rel only.  Upshot was that if join clause was very
      selective, we'd drastically overestimate the true cost of the join.
      Fix is to calculate correct output-rows estimate for an inner indexscan
      when the IndexPath node is created and save it in the path node.
      Change of path node doesn't require initdb, since path nodes don't
      appear in saved rules.
      1d5e7a6f
  15. 21 3月, 2000 1 次提交
    • T
      Restructure planning code so that preprocessing of targetlist and quals · 3ee8f7e2
      Tom Lane 提交于
      to simplify constant expressions and expand SubLink nodes into SubPlans
      is done in a separate routine subquery_planner() that calls union_planner().
      We formerly did most of this work in query_planner(), but that's the
      wrong place because it may never see the real targetlist.  Splitting
      union_planner into two routines also allows us to avoid redundant work
      when union_planner is invoked recursively for UNION and inheritance
      cases.  Upshot is that it is now possible to do something like
      select float8(count(*)) / (select count(*) from int4_tbl)  from int4_tbl
      group by f1;
      which has never worked before.
      3ee8f7e2
  16. 20 3月, 2000 3 次提交
  17. 19 3月, 2000 3 次提交
  18. 17 3月, 2000 2 次提交
  19. 16 3月, 2000 2 次提交
  20. 15 3月, 2000 2 次提交
    • T
      Cache fmgr lookup data for index's getnext() function in IndexScanDesc, · 34235a29
      Tom Lane 提交于
      so that the fmgr lookup only has to happen once per index scan and not
      once per tuple.  Seems to save 5% or so of CPU time for an indexscan.
      34235a29
    • T
      Implement column aliases on views "CREATE VIEW name (collist)". · 64568100
      Thomas G. Lockhart 提交于
      Implement TIME WITH TIME ZONE type (timetz internal type).
      Remap length() for character strings to CHAR_LENGTH() for SQL92
       and to remove the ambiguity with geometric length() functions.
      Keep length() for character strings for backward compatibility.
      Shrink stored views by removing internal column name list from visible rte.
      Implement min(), max() for time and timetz data types.
      Implement conversion of TIME to INTERVAL.
      Implement abs(), mod(), fac() for the int8 data type.
      Rename some math functions to generic names:
       round(), sqrt(), cbrt(), pow(), etc.
      Rename NUMERIC power() function to pow().
      Fix int2 factorial to calculate result in int4.
      Enhance the Oracle compatibility function translate() to work with string
       arguments (from Edwin Ramirez).
      Modify pg_proc system table to remove OID holes.
      64568100
  21. 09 3月, 2000 1 次提交
  22. 08 3月, 2000 1 次提交
    • B
      I've made a diff against the 7.0beta1 tree that accomplishes several things: · f43ec05d
      Bruce Momjian 提交于
              1) adds NetBSD shared lib support on both ELF and a.out platforms
      
              2) replaces "-L$(LIBPQDIR) -lpq" with "$(LIBPQ)" defined in
                 Makefile.global.  This makes it much easier to build stuff in
                 the source tree after you've already installed the libraries.
      
              3) adds TEMPLATEDIR in Makefile.global that indicates where the
                 database templates are stored.  This separates the template files
                 from real libraries that are installed in $(LIBDIR).
              4) changes include order of <readline/readline.h> and <readline.h>.
                 The latest GNU readline installs its headers under a readline
                 subdirectory.
      
      In addition to applying the patch below the following files need to be copied:
      
              backend/port/dynloader:
                      bsd.h -> netbsd.h
                      bsd.c -> netbsd.c
              include/port:
                      bsd.h -> netbsd.h
              makefiles:
                      Makefile.bsd -> Makefile.netbsd
      
      It would be great to see this incorporated into the source tree before
      the 7.0 release is cut.
      
              Thanks!
      
           -- Johnny C. Lam <lamj@stat.cmu.edu>
      f43ec05d
  23. 05 3月, 2000 1 次提交
  24. 01 3月, 2000 1 次提交
  25. 28 2月, 2000 1 次提交
  26. 27 2月, 2000 3 次提交
  27. 26 2月, 2000 1 次提交
  28. 25 2月, 2000 1 次提交
  29. 24 2月, 2000 1 次提交
    • T
      Add numeric <-> int8 and numeric <-> int2 conversion functions, as well · 9110b33f
      Tom Lane 提交于
      as a unary minus operator for numeric.  Now that long numeric constants
      will get converted to NUMERIC in early parsing, it's essential to have
      numeric->int8 conversion to avoid 'can't convert' errors on undecorated
      int8 constants.  Threw in the rest for completeness while I was in the
      area.
      I did not force an initdb for this, since the system will still run
      without the new pg_proc/pg_operator entries.  Possibly I should've.
      9110b33f