1. 26 2月, 2003 1 次提交
  2. 14 2月, 2003 1 次提交
  3. 17 1月, 2003 1 次提交
  4. 17 12月, 2002 1 次提交
  5. 12 12月, 2002 1 次提交
    • T
      Phase 2 of read-only-plans project: restructure expression-tree nodes · a0bf885f
      Tom Lane 提交于
      so that all executable expression nodes inherit from a common supertype
      Expr.  This is somewhat of an exercise in code purity rather than any
      real functional advance, but getting rid of the extra Oper or Func node
      formerly used in each operator or function call should provide at least
      a little space and speed improvement.
      initdb forced by changes in stored-rules representation.
      a0bf885f
  6. 20 10月, 2002 2 次提交
    • T
      Rule rewriter was doing the wrong thing with conditional INSTEAD rules · a044e2ab
      Tom Lane 提交于
      whose conditions might yield NULL.  The negated qual to attach to the
      original query is properly 'x IS NOT TRUE', not 'NOT x'.  This fix
      produces correct behavior, but we may be taking a performance hit because
      the planner is much stupider about IS NOT TRUE than it is about NOT
      clauses.  Future TODO: teach prepqual, other parts of planner how to
      cope with BooleanTest clauses more effectively.
      a044e2ab
    • T
      Fix rewrite code so that rules are in fact executed in order by name, · c1f91a38
      Tom Lane 提交于
      rather than being reordered according to INSTEAD attribute for
      implementation convenience.
      Also, increase compiled-in recursion depth limit from 10 to 100 rewrite
      cycles.  10 seems pretty marginal for situations where multiple rules
      exist for the same query.  There was a complaint about this recently,
      so I'm going to bump it up.  (Perhaps we should make the limit a GUC
      parameter, but that's too close to being a new feature to do in beta.)
      c1f91a38
  7. 15 10月, 2002 1 次提交
  8. 19 9月, 2002 1 次提交
    • T
      Extend pg_cast castimplicit column to a three-way value; this allows us · b26dfb95
      Tom Lane 提交于
      to be flexible about assignment casts without introducing ambiguity in
      operator/function resolution.  Introduce a well-defined promotion hierarchy
      for numeric datatypes (int2->int4->int8->numeric->float4->float8).
      Change make_const to initially label numeric literals as int4, int8, or
      numeric (never float8 anymore).
      Explicitly mark Func and RelabelType nodes to indicate whether they came
      from a function call, explicit cast, or implicit cast; use this to do
      reverse-listing more accurately and without so many heuristics.
      Explicit casts to char, varchar, bit, varbit will truncate or pad without
      raising an error (the pre-7.2 behavior), while assigning to a column without
      any explicit cast will still raise an error for wrong-length data like 7.3.
      This more nearly follows the SQL spec than 7.2 behavior (we should be
      reporting a 'completion condition' in the explicit-cast cases, but we have
      no mechanism for that, so just do silent truncation).
      Fix some problems with enforcement of typmod for array elements;
      it didn't work at all in 'UPDATE ... SET array[n] = foo', for example.
      Provide a generalized array_length_coerce() function to replace the
      specialized per-array-type functions that used to be needed (and were
      missing for NUMERIC as well as all the datetime types).
      Add missing conversions int8<->float4, text<->numeric, oid<->int8.
      initdb forced.
      b26dfb95
  9. 11 9月, 2002 1 次提交
    • T
      Tweak querytree-dependency-extraction code so that columns of tables · 6fdc44be
      Tom Lane 提交于
      that are explicitly JOINed are not considered dependencies unless they
      are actually used in the query: mere presence in the joinaliasvars
      list of a JOIN RTE doesn't count as being used.  The patch touches
      a number of files because I needed to generalize the API of
      query_tree_walker to support an additional flag bit, but the changes
      are otherwise quite small.
      6fdc44be
  10. 05 9月, 2002 1 次提交
  11. 29 8月, 2002 1 次提交
  12. 27 8月, 2002 1 次提交
    • T
      Modify array operations to include array's element type OID in the · 5cabcfcc
      Tom Lane 提交于
      array header, and to compute sizing and alignment of array elements
      the same way normal tuple access operations do --- viz, using the
      tupmacs.h macros att_addlength and att_align.  This makes the world
      safe for arrays of cstrings or intervals, and should make it much
      easier to write array-type-polymorphic functions; as examples see
      the cleanups of array_out and contrib/array_iterator.  By Joe Conway
      and Tom Lane.
      5cabcfcc
  13. 03 8月, 2002 1 次提交
    • T
      ALTER TABLE DROP COLUMN works. Patch by Christopher Kings-Lynne, · 38bb77a5
      Tom Lane 提交于
      code review by Tom Lane.  Remaining issues: functions that take or
      return tuple types are likely to break if one drops (or adds!)
      a column in the table defining the type.  Need to think about what
      to do here.
      
      Along the way: some code review for recent COPY changes; mark system
      columns attnotnull = true where appropriate, per discussion a month ago.
      38bb77a5
  14. 18 7月, 2002 1 次提交
    • B
      The attached patch (against HEAD) implements · a90db34b
      Bruce Momjian 提交于
        COPY x (a,d,c,b) from stdin;
        COPY x (a,c) to stdout;
      
      as well as the corresponding changes to pg_dump to use the new
      functionality.  This functionality is not available when using
      the BINARY option.  If a column is not specified in the COPY FROM
      statement, its default values will be used.
      
      In addition to this functionality, I tweaked a couple of the
      error messages emitted by the new COPY <options> checks.
      
      Brent Verner
      a90db34b
  15. 21 6月, 2002 1 次提交
  16. 12 4月, 2002 1 次提交
    • T
      Restructure representation of aggregate functions so that they have pg_proc · 902a6a0a
      Tom Lane 提交于
      entries, per pghackers discussion.  This fixes aggregates to live in
      namespaces, and also simplifies/speeds up lookup in parse_func.c.
      Also, add a 'proimplicit' flag to pg_proc that controls whether a type
      coercion function may be invoked implicitly, or only explicitly.  The
      current settings of these flags are more permissive than I would like,
      but we will need to debate and refine the behavior; for now, I avoided
      breaking regression tests as much as I could.
      902a6a0a
  17. 05 4月, 2002 1 次提交
    • T
      Undo not-so-hot decision to postpone insertion of default values into · b9ae55f2
      Tom Lane 提交于
      INSERT statements to the planner.  Taking it out of the parser was right
      (so that defaults don't get into stored rules), but it has to happen
      before rewrite rule expansion, else references to NEW.field behave
      incorrectly.  Accordingly, add a step to the rewriter to insert defaults
      just before rewrite-rule expansion.
      b9ae55f2
  18. 22 3月, 2002 1 次提交
    • T
      A little further progress on schemas: push down RangeVars into · 108a0ec8
      Tom Lane 提交于
      addRangeTableEntry calls.  Remove relname field from RTEs, since
      it will no longer be a useful unique identifier of relations;
      we want to encourage people to rely on the relation OID instead.
      Further work on dumping qual expressions in EXPLAIN, too.
      108a0ec8
  19. 12 3月, 2002 1 次提交
    • T
      Restructure representation of join alias variables. An explicit JOIN · 6eeb95f0
      Tom Lane 提交于
      now has an RTE of its own, and references to its outputs now are Vars
      referencing the JOIN RTE, rather than CASE-expressions.  This allows
      reverse-listing in ruleutils.c to use the correct alias easily, rather
      than painfully reverse-engineering the alias namespace as it used to do.
      Also, nested FULL JOINs work correctly, because the result of the inner
      joins are simple Vars that the planner can cope with.  This fixes a bug
      reported a couple times now, notably by Tatsuo on 18-Nov-01.  The alias
      Vars are expanded into COALESCE expressions where needed at the very end
      of planning, rather than during parsing.
      Also, beginnings of support for showing plan qualifier expressions in
      EXPLAIN.  There are probably still cases that need work.
      initdb forced due to change of stored-rule representation.
      6eeb95f0
  20. 25 10月, 2001 1 次提交
  21. 10 7月, 2001 1 次提交
  22. 06 7月, 2001 1 次提交
  23. 14 6月, 2001 1 次提交
  24. 13 6月, 2001 1 次提交
  25. 04 5月, 2001 1 次提交
  26. 17 4月, 2001 1 次提交
  27. 22 3月, 2001 2 次提交
  28. 27 1月, 2001 1 次提交
    • T
      Repair bug reported by Huxton, 1/24/01. We need to include a rule's · 352871ac
      Tom Lane 提交于
      original table ('OLD' table) in its join tree if OLD is referenced by
      either the rule action, the rule qual, or the original query qual that
      will be added to the rule action.  However, we only want one instance
      of the original table to be included; so beware of the possibility that
      the rule action already has a jointree entry for OLD.
      352871ac
  29. 25 1月, 2001 1 次提交
  30. 04 1月, 2001 1 次提交
  31. 07 12月, 2000 2 次提交
  32. 06 12月, 2000 1 次提交
    • T
      Repair breakage of rules containing INSERT ... SELECT actions, per bug · a51f004d
      Tom Lane 提交于
      report from Joel Burton.  Turns out that my simple idea of turning the
      SELECT into a subquery does not interact well *at all* with the way the
      rule rewriter works.  Really what we need to make INSERT ... SELECT work
      cleanly is to decouple targetlists from rangetables: an INSERT ... SELECT
      wants to have two levels of targetlist but only one rangetable.  No time
      for that for 7.1, however, so I've inserted some ugly hacks to make the
      rewriter know explicitly about the structure of INSERT ... SELECT queries.
      Ugh :-(
      a51f004d
  33. 09 11月, 2000 1 次提交
    • T
      Make DROP TABLE rollback-able: postpone physical file delete until commit. · 3908473c
      Tom Lane 提交于
      (WAL logging for this is not done yet, however.)  Clean up a number of really
      crufty things that are no longer needed now that DROP behaves nicely.  Make
      temp table mapper do the right things when drop or rename affecting a temp
      table is rolled back.  Also, remove "relation modified while in use" error
      check, in favor of locking tables at first reference and holding that lock
      throughout the statement.
      3908473c
  34. 06 10月, 2000 1 次提交
    • T
      Reimplementation of UNION/INTERSECT/EXCEPT. INTERSECT/EXCEPT now meet the · 05e3d0ee
      Tom Lane 提交于
      SQL92 semantics, including support for ALL option.  All three can be used
      in subqueries and views.  DISTINCT and ORDER BY work now in views, too.
      This rewrite fixes many problems with cross-datatype UNIONs and INSERT/SELECT
      where the SELECT yields different datatypes than the INSERT needs.  I did
      that by making UNION subqueries and SELECT in INSERT be treated like
      subselects-in-FROM, thereby allowing an extra level of targetlist where the
      datatype conversions can be inserted safely.
      INITDB NEEDED!
      05e3d0ee
  35. 30 9月, 2000 1 次提交
    • T
      Subselects in FROM clause, per ISO syntax: FROM (SELECT ...) [AS] alias. · 3a94e789
      Tom Lane 提交于
      (Don't forget that an alias is required.)  Views reimplemented as expanding
      to subselect-in-FROM.  Grouping, aggregates, DISTINCT in views actually
      work now (he says optimistically).  No UNION support in subselects/views
      yet, but I have some ideas about that.  Rule-related permissions checking
      moved out of rewriter and into executor.
      INITDB REQUIRED!
      3a94e789
  36. 13 9月, 2000 1 次提交
  37. 06 9月, 2000 1 次提交
    • P
      Code cleanup of user name and user id handling in the backend. The current · 6dc24961
      Peter Eisentraut 提交于
      user is now defined in terms of the user id, the user name is only computed
      upon request (for display purposes). This is kind of the opposite of the
      previous state, which would maintain the user name and compute the user id
      for permission checks.
      
      Besides perhaps saving a few cycles (integer vs string), this now creates a
      single point of attack for changing the user id during a connection, for
      purposes of "setuid" functions, etc.
      6dc24961