1. 13 1月, 2004 1 次提交
  2. 30 11月, 2003 1 次提交
    • P
      · 969685ad
      PostgreSQL Daemon 提交于
      $Header: -> $PostgreSQL Changes ...
      969685ad
  3. 26 11月, 2003 2 次提交
  4. 19 10月, 2003 1 次提交
  5. 09 8月, 2003 1 次提交
  6. 04 8月, 2003 2 次提交
  7. 25 7月, 2003 1 次提交
  8. 26 6月, 2003 1 次提交
  9. 25 6月, 2003 1 次提交
  10. 06 6月, 2003 1 次提交
    • T
      Implement outer-level aggregates to conform to the SQL spec, with · e649796f
      Tom Lane 提交于
      extensions to support our historical behavior.  An aggregate belongs
      to the closest query level of any of the variables in its argument,
      or the current query level if there are no variables (e.g., COUNT(*)).
      The implementation involves adding an agglevelsup field to Aggref,
      and treating outer aggregates like outer variables at planning time.
      e649796f
  11. 30 4月, 2003 1 次提交
    • T
      Infrastructure for deducing Param types from context, in the same way · aa282d44
      Tom Lane 提交于
      that the types of untyped string-literal constants are deduced (ie,
      when coerce_type is applied to 'em, that's what the type must be).
      Remove the ancient hack of storing the input Param-types array as a
      global variable, and put the info into ParseState instead.  This touches
      a lot of files because of adjustment of routine parameter lists, but
      it's really not a large patch.  Note: PREPARE statement still insists on
      exact specification of parameter types, but that could easily be relaxed
      now, if we wanted to do so.
      aa282d44
  12. 09 4月, 2003 1 次提交
  13. 10 3月, 2003 1 次提交
    • T
      Restructure parsetree representation of DECLARE CURSOR: now it's a · aa83bc04
      Tom Lane 提交于
      utility statement (DeclareCursorStmt) with a SELECT query dangling from
      it, rather than a SELECT query with a few unusual fields in it.  Add
      code to determine whether a planned query can safely be run backwards.
      If DECLARE CURSOR specifies SCROLL, ensure that the plan can be run
      backwards by adding a Materialize plan node if it can't.  Without SCROLL,
      you get an error if you try to fetch backwards from a cursor that can't
      handle it.  (There is still some discussion about what the exact
      behavior should be, but this is necessary infrastructure in any case.)
      Along the way, make EXPLAIN DECLARE CURSOR work.
      aa83bc04
  14. 09 2月, 2003 3 次提交
  15. 29 1月, 2003 1 次提交
  16. 21 1月, 2003 1 次提交
    • T
      IN clauses appearing at top level of WHERE can now be handled as joins. · bdfbfde1
      Tom Lane 提交于
      There are two implementation techniques: the executor understands a new
      JOIN_IN jointype, which emits at most one matching row per left-hand row,
      or the result of the IN's sub-select can be fed through a DISTINCT filter
      and then joined as an ordinary relation.
      Along the way, some minor code cleanup in the optimizer; notably, break
      out most of the jointree-rearrangement preprocessing in planner.c and
      put it in a new file prep/prepjointree.c.
      bdfbfde1
  17. 17 1月, 2003 1 次提交
  18. 14 1月, 2003 1 次提交
  19. 13 1月, 2003 1 次提交
    • T
      Cause planner to account for evaluation costs in targetlists and · 8ac6d952
      Tom Lane 提交于
      HAVING quals.  Normally this is an insignificant effect --- but it
      will not be insignificant when these clauses contain sub-selects.
      The added costs cannot affect the planning of the query containing
      them, but they might have an impact when the query is a sub-query
      of a larger one.
      8ac6d952
  20. 12 1月, 2003 1 次提交
  21. 11 1月, 2003 1 次提交
  22. 10 1月, 2003 1 次提交
    • T
      Adjust parser so that 'x NOT IN (subselect)' is converted to · 6bc61fc0
      Tom Lane 提交于
      'NOT (x IN (subselect))', that is 'NOT (x = ANY (subselect))',
      rather than 'x <> ALL (subselect)' as we formerly did.  This
      opens the door to optimizing NOT IN the same way as IN, whereas
      there's no hope of optimizing the expression using <>.  Also,
      convert 'x <> ALL (subselect)' to the NOT(IN) style, so that
      the optimization will be available when processing rules dumped
      by older Postgres versions.
      initdb forced due to small change in SubLink node representation.
      6bc61fc0
  23. 14 12月, 2002 1 次提交
    • T
      Clean up plantree representation of SubPlan-s --- SubLink does not appear · 2d8d6662
      Tom Lane 提交于
      in the planned representation of a subplan at all any more, only SubPlan.
      This means subselect.c doesn't scribble on its input anymore, which seems
      like a good thing; and there are no longer three different possible
      interpretations of a SubLink.  Simplify node naming and improve comments
      in primnodes.h.  No change to stored rules, though.
      2d8d6662
  24. 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
  25. 05 12月, 2002 1 次提交
    • T
      Phase 1 of read-only-plans project: cause executor state nodes to point · 1fd0c59e
      Tom Lane 提交于
      to plan nodes, not vice-versa.  All executor state nodes now inherit from
      struct PlanState.  Copying of plan trees has been simplified by not
      storing a list of SubPlans in Plan nodes (eliminating duplicate links).
      The executor still needs such a list, but it can build it during
      ExecutorStart since it has to scan the plan tree anyway.
      No initdb forced since no stored-on-disk structures changed, but you
      will need a full recompile because of node-numbering changes.
      1fd0c59e
  26. 30 11月, 2002 2 次提交
  27. 26 11月, 2002 1 次提交
  28. 05 9月, 2002 1 次提交
  29. 21 6月, 2002 1 次提交
  30. 19 5月, 2002 1 次提交
    • T
      Teach query_tree_walker, query_tree_mutator, and SS_finalize_plan to · a5b37094
      Tom Lane 提交于
      process function RTE expressions, which they were previously missing.
      This allows outer-Var references and subselects to work correctly in
      the arguments of a function RTE.  Install check to prevent function RTEs
      from cross-referencing Vars of sibling FROM-items, which doesn't make
      any sense (if you want to join, write a JOIN or WHERE clause).
      a5b37094
  31. 13 5月, 2002 1 次提交
  32. 17 4月, 2002 1 次提交
    • T
      Operators live in namespaces. CREATE/DROP/COMMENT ON OPERATOR take · 6cef5d25
      Tom Lane 提交于
      qualified operator names directly, for example CREATE OPERATOR myschema.+
      ( ... ).  To qualify an operator name in an expression you need to write
      OPERATOR(myschema.+) (thanks to Peter for suggesting an escape hatch).
      I also took advantage of having to reformat pg_operator to fix something
      that'd been bugging me for a while: mergejoinable operators should have
      explicit links to the associated cross-data-type comparison operators,
      rather than hardwiring an assumption that they are named < and >.
      6cef5d25
  33. 01 12月, 2001 1 次提交
  34. 22 3月, 2001 1 次提交
  35. 25 1月, 2001 1 次提交