1. 07 9月, 1999 7 次提交
    • T
      Performance improvements in cnfify(): get rid of exponential · 8759f175
      Tom Lane 提交于
      space consumption in pull_args, and avoid doing the full CNF transform on
      operands of operator clauses, where it's really not particularly helpful.
      This answers the TODO item about large numbers of OR clauses, at least
      partially.  I was able to do a ten-thousand-OR-clause query with about
      20Mb memory consumption ... it took an obscenely long time, but it worked...
      8759f175
    • T
      Mike Ansley's fixes for long queries. This change just · 85712da9
      Tom Lane 提交于
      corrects flex myinput() routine so that it doesn't assume there is only
      one bufferload of data.  We still have the issue of getting rid of
      YY_USES_REJECT so that the scanner can cope with tokens larger than its
      initial buffer size.
      85712da9
    • T
      Additional long-query fixes from Mike Ansley and yours truly. · f1de4f95
      Tom Lane 提交于
      psql.c seems clean of query length restrictions now.
      f1de4f95
    • T
      Mark bpchareq not hashjoinable, since it strips trailing blanks · d2f7d1f3
      Tom Lane 提交于
      before comparison; if fields being joined are different widths then hashing
      will yield wrong answer.  Also, remove hashjoinable mark from all uses of
      array_eq, because array structures may have padding bytes between elements
      and the pad bytes are of uncertain content.  This could be revisited if
      array code is cleaned up.
      Modify opr_sanity regress test to complain if array_eq operator is marked
      hashjoinable.
      d2f7d1f3
    • T
      I finally understood what sinvaladt.c is doing --- and it · 22fe3d4b
      Tom Lane 提交于
      offended my aesthestic sensibility that there was so much unreadable code
      doing so little.  Rewritten code is about half the size, faster, and
      (I hope) much more intelligible.
      22fe3d4b
    • T
      Fix relcache.c so that local relations (those created during · cc8b67a5
      Tom Lane 提交于
      current transaction) are not flushed by shared-cache-inval reset message.
      SI reset actually works now, for probably the first time in a long time.
      I was able to run initdb and regression tests with a 16-element SI message
      array, with a lot of NOTICE: cache state reset messages but no crashes.
      cc8b67a5
    • T
      RelationCacheInvalidate thought there were 7 nailed-in-cache · c5092847
      Tom Lane 提交于
      system tables, but actually there are only 6 --- see RelationInitialize.
      Kinda makes you wonder how long ago this code was last executed...
      c5092847
  2. 06 9月, 1999 4 次提交
  3. 05 9月, 1999 8 次提交
  4. 03 9月, 1999 3 次提交
  5. 02 9月, 1999 3 次提交
    • T
      Rule deparser didn't handle unary operators correctly. · 51f62ea4
      Tom Lane 提交于
      51f62ea4
    • T
      Repair a bunch of problems in md.c. This builds on Hiroshi's · 68c32348
      Tom Lane 提交于
      insight that RelationFlushRelation ought to invoke smgrclose, and that the
      way to make that work is to ensure that mdclose doesn't fail if the relation
      is already closed (or unlinked, if we are looking at a DROP TABLE).  While
      I was testing that, I was able to identify several problems that we had
      with multiple-segment relations.  The system is now able to do initdb and
      pass the regression tests with a very small segment size (I had it set to
      64Kb per segment for testing).  I don't believe that ever worked before.
      File descriptor leaks seem to be gone too.
      I have partially addressed the concerns we had about mdtruncate(), too.
      On a Win32 or NFS filesystem it is not possible to unlink a file that
      another backend is holding open, so what md.c now does is to truncate
      unwanted files to zero length before trying to unlink them.  The other
      backends will be forced to close their open files by relation cache
      invalidation --- but I think it would take considerable work to make
      that happen before vacuum truncates the relation rather than after.
      Leaving zero-length files lying around seems a usable compromise.
      68c32348
    • B
      Document -x properly for pg_dump. · 4478d299
      Bruce Momjian 提交于
      4478d299
  6. 01 9月, 1999 1 次提交
  7. 31 8月, 1999 3 次提交
  8. 30 8月, 1999 1 次提交
  9. 29 8月, 1999 1 次提交
    • T
      Correct broken entries for pg_proc OIDs 1364 (time(abstime)) · 1f14a9de
      Tom Lane 提交于
      and 1370 (timestamp(datetime)).  This does not force an initdb, exactly,
      but you won't see the effects of the bug fix until you do one.
      BTW, OID 1358 for timespan(time) is still broken:
      select timespan('21:11:26'::time);
      ERROR:  No such function 'time_timespan' with the specified attributes
      But I couldn't figure out what it ought to be defined as, so I left it be.
      1f14a9de
  10. 28 8月, 1999 2 次提交
  11. 26 8月, 1999 3 次提交
    • T
      Clean up some mistakes in handling of uplevel Vars in planner. · 37d20eb8
      Tom Lane 提交于
      Most parts of the planner should ignore, or indeed never even see, uplevel
      Vars because they will be or have been replaced by Params.  There were a
      couple of places that got it wrong though, probably my fault from recent
      changes...
      37d20eb8
    • T
      Clean up some bugs in oper_select_candidate(), notably the · 5adebf83
      Tom Lane 提交于
      last loop which would return the *first* surviving-to-that-point candidate
      regardless of which one actually passed the test.  This was producing
      such curious results as 'oid % 2' getting translated to 'int2(oid) % 2'.
      5adebf83
    • T
      Revise implementation of SubLinks so that there is a consistent, · 42af56e1
      Tom Lane 提交于
      documented intepretation of the lefthand and oper fields.  Fix a number of
      obscure problems while at it --- for example, the old code failed if the parser
      decided to insert a type-coercion function just below the operator of a
      SubLink.
      CAUTION: this will break stored rules that contain subplans.  You may
      need to initdb.
      42af56e1
  12. 25 8月, 1999 3 次提交
    • T
      Fix vacuum's memory consumption · edda70c0
      Tatsuo Ishii 提交于
      edda70c0
    • T
      Add new vpl_num_allocated_pages member to VPageListData. · 770d0786
      Tatsuo Ishii 提交于
      It will keep track the number of pages allocated so that
      vacuum could allocate twice of the previous allocation.
      This will greatly reduce the total memory consumption of
      vacuum.
      770d0786
    • T
      Alter AllocSet routines so that requests larger than · 2b67dc53
      Tom Lane 提交于
      ALLOC_BIGCHUNK_LIMIT are always allocated as separate malloc() blocks,
      and are free()d immediately upon pfree().  Also, if such a chunk is enlarged
      with repalloc(), translate the operation into a realloc() so as to
      minimize memory usage.  Of course, these large chunks still get freed
      automatically if the alloc set is reset.
      I have set ALLOC_BIGCHUNK_LIMIT at 64K for now, but perhaps another
      size would be better?
      2b67dc53
  13. 24 8月, 1999 1 次提交