1. 03 Feb, 2006 6 commits
  2. 02 Feb, 2006 1 commit
  3. 01 Feb, 2006 9 commits
  4. 31 Jan, 2006 3 commits
    • Tom Lane's avatar
    • Tom Lane's avatar
      Restructure planner's handling of inheritance. Rather than processing · 8a1468af
      Tom Lane authored
      inheritance trees on-the-fly, which pretty well constrained us to considering
      only one way of planning inheritance, expand inheritance sets during the
      planner prep phase, and build a side data structure that can be consulted
      later to find which RTEs are members of which inheritance sets.  As proof of
      concept, use the data structure to plan joins against inheritance sets more
      efficiently: we can now use indexes on the set members in inner-indexscan
      joins.  (The generated plans could be improved further, but it'll take some
      executor changes.)  This data structure will also support handling UNION ALL
      subqueries in the same way as inheritance sets, but that aspect of it isn't
      finished yet.
      8a1468af
    • Michael Meskes's avatar
      097df388
  5. 30 Jan, 2006 1 commit
  6. 29 Jan, 2006 3 commits
  7. 28 Jan, 2006 2 commits
    • Andrew Dunstan's avatar
      · 4400ca2b
      Andrew Dunstan authored
      Undo perl's nasty locale setting on Windows. Since we can't do that as
      elsewhere by setting the environment appropriately, we make perl do it
      right after interpreter startup by calling its POSIX::setlocale().
      4400ca2b
    • Neil Conway's avatar
      Per a bug report from Theo Schlossnagle, plperl_return_next() leaks · ebdefb93
      Neil Conway authored
      memory in the executor's per-query memory context. It also inefficient:
      it invokes get_call_result_type() and TupleDescGetAttInMetadata() for
      every call to return_next, rather than invoking them once (per PL/Perl
      function call) and memoizing the result.
      
      This patch makes the following changes:
      
      - refactor the code to include all the "per PL/Perl function call" data
      inside a single struct, "current_call_data". This means we don't need to
      save and restore N pointers for every recursive call into PL/Perl, we
      can just save and restore one.
      
      - lookup the return type metadata needed by plperl_return_next() once,
      and then stash it in "current_call_data", so as to avoid doing the
      lookup for every call to return_next.
      
      - create a temporary memory context in which to evaluate the return
      type's input functions. This memory context is reset for each call to
      return_next.
      
      The patch appears to fix the memory leak, and substantially reduces
      the overhead imposed by return_next.
      ebdefb93
  8. 27 Jan, 2006 2 commits
  9. 26 Jan, 2006 5 commits
    • Tom Lane's avatar
      Suppress signed-vs-unsigned-char warning. · 75c47471
      Tom Lane authored
      75c47471
    • Tom Lane's avatar
      Fix display of whole-row Var appearing at the top level of a SELECT list. · ec057a43
      Tom Lane authored
      While we normally prefer the notation "foo.*" for a whole-row Var, that does
      not work at SELECT top level, because in that context the parser will assume
      that what is wanted is to expand the "*" into a list of separate target
      columns, yielding behavior different from a whole-row Var.  We have to emit
      just "foo" instead in that context.  Per report from Sokolov Yura.
      ec057a43
    • Tom Lane's avatar
      Update btree_gist for CIDR/INET changes --- there's really no need to · 97ec9501
      Tom Lane authored
      have a separate set of CIDR code here, either.
      97ec9501
    • Bruce Momjian's avatar
      Done: · 31253219
      Bruce Momjian authored
      < * %Prevent INET cast to CIDR if the unmasked bits are not zero, or
      <   zero the bits
      < * %Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
      > * -Zero umasked bits in conversion from INET cast to CIDR
      > * -Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
      31253219
    • Tom Lane's avatar
      Clean up the INET-vs-CIDR situation. Get rid of the internal is_cidr flag · 8d8bf127
      Tom Lane authored
      and rely exclusively on the SQL type system to tell the difference between
      the types.  Prevent creation of invalid CIDR values via casting from INET
      or set_masklen() --- both of these operations now silently zero any bits
      to the right of the netmask.  Remove duplicate CIDR comparison operators,
      letting the type rely on the INET operators instead.
      8d8bf127
  10. 25 Jan, 2006 7 commits
  11. 24 Jan, 2006 1 commit