1. 13 8月, 2000 1 次提交
    • T
      Clean up handling of variable-free qual clauses. System now does the · 37168b8d
      Tom Lane 提交于
      right thing with variable-free clauses that contain noncachable functions,
      such as 'WHERE random() < 0.5' --- these are evaluated once per
      potential output tuple.  Expressions that contain only Params are
      now candidates to be indexscan quals --- for example, 'var = ($1 + 1)'
      can now be indexed.  Cope with RelabelType nodes atop potential indexscan
      variables --- this oversight prevents 7.0.* from recognizing some
      potentially indexscanable situations.
      37168b8d
  2. 12 8月, 2000 6 次提交
  3. 10 8月, 2000 1 次提交
  4. 09 8月, 2000 1 次提交
  5. 08 8月, 2000 4 次提交
  6. 07 8月, 2000 10 次提交
    • P
      - version # change in header · a222f3af
      Philip Warner 提交于
      CVs: ----------------------------------------------------------------------
      a222f3af
    • P
      - Support for iscachable when dumping functions · 74e33110
      Philip Warner 提交于
      74e33110
    • T
      Allow LIKE and ILIKE as TokenId (and hence ColId) to make sure that they · 7f6e021c
      Thomas G. Lockhart 提交于
       are allowed in the func_name production. Otherwise, we can't define
       more like() and ilike() functions for new data types.
      7f6e021c
    • T
      Clean up code to remove the explicit backslash cruft. · 12e1c9ef
      Thomas G. Lockhart 提交于
      If the backslash default is still wanted, just pass a backslash
       to MatchText() for the two-parameter callable routines.
      12e1c9ef
    • T
      Include the case-insensitive LIKE prototypes. · 371a485d
      Thomas G. Lockhart 提交于
      371a485d
    • T
      Forgot to update the regression test output. · 701de35a
      Thomas G. Lockhart 提交于
      701de35a
    • T
      Clean up bogosities in use of random(3) and srandom(3) --- do not assume · 94260470
      Tom Lane 提交于
      that RAND_MAX applies to them, since it doesn't.  Instead add a
      config.h parameter MAX_RANDOM_VALUE.  This is currently set at 2^31-1
      but could be auto-configured if that ever proves necessary.  Also fix
      some outright bugs like calling srand() where srandom() is appropriate.
      94260470
    • T
      Implement LIKE/ESCAPE. Change parser to use like()/notlike() · 259489ba
      Thomas G. Lockhart 提交于
       rather than the "~~" operator; this made it easy to add ESCAPE features.
      Implement ILIKE, NOT ILIKE, and the ESCAPE clause for them.
       afaict this is not MultiByte clean, but lots of other stuff isn't either.
      Fix up underlying support code for LIKE/NOT LIKE.
       Things should be faster and does not require internal string copying.
      Update regression test to add explicit checks for
       LIKE/NOT LIKE/ILIKE/NOT ILIKE.
      Remove colon and semi-colon operators as threatened in 7.0.
      Implement SQL99 COMMIT/AND NO CHAIN.
       Throw elog(ERROR) on COMMIT/AND CHAIN per spec
       since we don't yet support it.
      Implement SQL99 CREATE/DROP SCHEMA as equivalent to CREATE DATABASE.
       This is only a stopgap or demo since schemas will have another
       implementation soon.
      Remove a few unused production rules to get rid of warnings
       which crept in on the last commit.
      Fix up tabbing in some places by removing embedded spaces.
      259489ba
    • T
      Implement LIKE/ESCAPE. Change parser to use like()/notlike() · 30ab107d
      Thomas G. Lockhart 提交于
       rather than the "~~" operator; this made it easy to add ESCAPE features.
      Implement ILIKE, NOT ILIKE, and the ESCAPE clause for them.
       afaict this is not MultiByte clean, but lots of other stuff isn't either.
      Fix up underlying support code for LIKE/NOT LIKE.
       Things should be faster and does not require internal string copying.
      Update regression test to add explicit checks for
       LIKE/NOT LIKE/ILIKE/NOT ILIKE.
      Remove colon and semi-colon operators as threatened in 7.0.
      Implement SQL99 COMMIT/AND NO CHAIN.
       Throw elog(ERROR) on COMMIT/AND CHAIN per spec
       since we don't yet support it.
      Implement SQL99 CREATE/DROP SCHEMA as equivalent to CREATE DATABASE.
       This is only a stopgap or demo since schemas will have another
       implementation soon.
      Remove a few unused production rules to get rid of warnings
       which crept in on the last commit.
      Fix up tabbing in some places by removing embedded spaces.
      30ab107d
    • T
      Support SQL99 embedded double-quote syntax for quoted identifiers. · df402346
      Thomas G. Lockhart 提交于
      Allow this in the parser and in pg_dump, but it is probably not enough
       for a complete solution.
      Better to have the feature started then never here.
      df402346
  7. 06 8月, 2000 4 次提交
    • T
      Toast all the system-table columns that seem to need it. It turns out · c3e2a951
      Tom Lane 提交于
      that giving pg_proc a toast table required solving the same problems
      we'd have to solve for pg_class --- pg_proc is one of the relations
      that gets bootstrapped in relcache.c.  Solution is to go back at the
      end of initialization and read in the *real* pg_class row to replace
      the phony entry created by formrdesc().  This should work as long as
      there's no need to touch any toasted values during initialization,
      which seems a reasonable assumption.
      Although I did not add a toast-table for every single system table
      with a varlena attribute, I believe that it would work to just do
      ALTER TABLE pg_class CREATE TOAST TABLE.  So anyone who's really
      intent on having several thousand ACL entries for a rel could do it.
      NOTE: I didn't force initdb, but you must do one to see the effects
      of this patch.
      c3e2a951
    • T
      Clean up inefficiency in ExecRelCheck, and cause it to do the right · 8ae23135
      Tom Lane 提交于
      thing when there are multiple result relations.  Formerly, during
      something like 'UPDATE foo*', foo's constraints and *only* foo's
      constraints would be applied to all foo's children.  Wrong-o ...
      8ae23135
    • T
      Ensure that catcache 'busy' flags are reset at transaction abort. · 925418d2
      Tom Lane 提交于
      Without this, an elog during cache-entry load leaves that catcache
      unusable.  elog in that segment of code is pretty unusual but it can
      happen.
      925418d2
    • T
      Copy sub-Query nodes to avoid trouble when same sub-Query is linked to · 465a3b0a
      Tom Lane 提交于
      multiple times in the parsetree (can happen in COALESCE or BETWEEN
      contexts, for example).  This is a pretty grotty solution --- it will
      do for now, but perhaps we can do better when we redesign querytrees.
      What we need is a consistent policy about whether querytrees should be
      considered read-only structures or not ...
      465a3b0a
  8. 05 8月, 2000 5 次提交
  9. 04 8月, 2000 6 次提交
    • B
      to_ascii( text ) · 317ff59c
      Bruce Momjian 提交于
              - encode 'text' from database encoding to ASCII
      
              to_ascii('\256\341k')
      
      
       to_ascii( text, int4 )
      
              - encode 'text' from 'int4' encoding to ASCII
      
                to_ascii('\256\341k', 8)
      
      
       to_ascii( text, name )
      
              - encode 'text' from 'name' encoding to ASCII
      
                to_ascii('\256\341k', 'LATIN2')
      
      
        Now is supported LATIN1, LATIN2, WIN1250. For other character sets I
      haven't good resources. Add new encoding is easy...
      
       If encoding is not supported returns ERROR.
      
       Note --- not exists total corect conversion to ASCII, this function try
              convert chars those is _probably_ interpret-able in ASCII for
              others use ' '. But for example for all Czech characters it is
              sufficient ... hmm Chinese / JAP and other complicated langs
      have
              bad luck here :-(
      
                                                      Karel
      317ff59c
    • H
      a1464e97
    • T
      Fix tuptoaster bugs induced by making bytea toastable. Durn thing was · dd8ad641
      Tom Lane 提交于
      trying to toast tuples inserted into toast tables!  Fix is two-pronged:
      first, ensure all columns of a toast table are marked attstorage='p',
      and second, alter the target chunk size so that it's less than the
      threshold for trying to toast a tuple.  (Code tried to do that but the
      expression was wrong.)  A few cosmetic cleanups in tuptoaster too.
      NOTE: initdb forced due to change in toaster chunk-size.
      dd8ad641
    • T
      Convert inet-related functions to new fmgr style. I have also taken it · ed9ca687
      Tom Lane 提交于
      on myself to do something about the non-self-consistency of the inet
      comparison functions.  The results are probably still semantically wrong
      (inet and cidr should have different comparison semantics, I think)
      but at least the boolean operators now agree with each other and with
      the sort order of indexes on inet/cidr.
      ed9ca687
    • T
      Modify heap_open()/heap_openr() API per pghackers discussion of 11 July. · 61aca818
      Tom Lane 提交于
      These two routines will now ALWAYS elog() on failure, whether you ask for
      a lock or not.  If you really want to get a NULL return on failure, call
      the new routines heap_open_nofail()/heap_openr_nofail().  By my count there
      are only about three places that actually want that behavior.  There were
      rather more than three places that were missing the check they needed to
      make under the old convention :-(.
      61aca818
    • T
      More functions updated to new fmgr style --- money, name, tid datatypes. · c298d74d
      Tom Lane 提交于
      We're reaching the mopup stage here (good thing too, this is getting
      tedious).
      c298d74d
  10. 03 8月, 2000 1 次提交
    • T
      Repair bug noted by Paul Caskey: neqsel() has been generating a bogus · 1bd3a8f5
      Tom Lane 提交于
      result, in fact nearly the opposite of what it should, because it
      was passing the not-equal operator to eqsel() which would use it to
      compare the value against the most common value in the column, and
      of course obtain the wrong result therefrom.  Must pass the equality
      operator to eqsel() instead.  Fortunately that's easy to get from
      the oprnegate link.
      1bd3a8f5
  11. 02 8月, 2000 1 次提交