1. 20 10月, 2010 1 次提交
    • T
      Fix incorrect generation of whole-row variables in planner. · 6e74a91b
      Tom Lane 提交于
      A couple of places in the planner need to generate whole-row Vars, and were
      cutting corners by setting vartype = RECORDOID in the Vars, even in cases
      where there's an identifiable named composite type for the RTE being
      referenced.  While we mostly got away with this, it failed when there was
      also a parser-generated whole-row reference to the same RTE, because the
      two Vars weren't equal() due to the difference in vartype.  Fix by
      providing a subroutine the planner can call to generate whole-row Vars
      the same way the parser does.
      
      Per bug #5716 from Andrew Tipton.  Back-patch to 9.0 where one of the bogus
      calls was introduced (the other one is new in HEAD).
      6e74a91b
  2. 19 10月, 2010 9 次提交
  3. 18 10月, 2010 2 次提交
    • T
      Fix a passel of inappropriately-named global functions in GIN. · 419d2374
      Tom Lane 提交于
      The GIN code has absolutely no business exporting GIN-specific functions
      with names as generic as compareItemPointers() or newScanKey(); that's
      just trouble waiting to happen.  I got annoyed about this again just now
      and decided to fix it.  This commit ensures that all global symbols
      defined in access/gin/ have names including "gin" or "Gin".  There were a
      couple of cases, like names involving "PostingItem", where arguably the
      names were already sufficiently nongeneric; but I figured as long as I was
      risking creating merge problems for unapplied GIN patches I might as well
      impose a uniform policy.
      
      I didn't touch any static symbol names.  There might be some places
      where it'd be appropriate to rename some static functions to match
      siblings that are exported, but I'll leave that for another time.
      419d2374
    • T
      Improve GIN indexscan cost estimation. · 48c7d9f6
      Tom Lane 提交于
      The better estimate requires more statistics than we previously stored:
      in particular, counts of "entry" versus "data" pages within the index,
      as well as knowledge of the number of distinct key values.  We collect
      this information during initial index build and update it during VACUUM,
      storing the info in new fields on the index metapage.  No initdb is
      required because these fields will read as zeroes in a pre-existing
      index, and the new gincostestimate code is coded to behave (reasonably)
      sanely if they are zeroes.
      
      Teodor Sigaev, reviewed by Jan Urbanski, Tom Lane, and Itagaki Takahiro.
      48c7d9f6
  4. 17 10月, 2010 1 次提交
    • M
      Fix msvc build for localized versions of Visual C++ · cd0e8253
      Magnus Hagander 提交于
      Look only at the non-localized part of the output from "vcbuild /?",
      which is used to determine the version of Visual Studio in use. Different
      languages seem to localize different amounts of the string, but we assume
      the part "Microsoft Visual C++" won't be modified.
      cd0e8253
  5. 16 10月, 2010 7 次提交
  6. 15 10月, 2010 12 次提交
  7. 14 10月, 2010 6 次提交
  8. 13 10月, 2010 2 次提交
    • I
      Accept 'public' as a pseudo-role name in has_table_privilege() and friends · d0f876ca
      Itagaki Takahiro 提交于
      to see if a particular privilege has been granted to PUBLIC.
      
      The issue was reported by Jim Nasby.
      Patch by Alvaro Herrera, and reviewed by KaiGai Kohei.
      d0f876ca
    • T
      Remove some unnecessary tests of pgstat_track_counts. · f4d242ef
      Tom Lane 提交于
      We may as well make pgstat_count_heap_scan() and related macros just count
      whenever rel->pgstat_info isn't null.  Testing pgstat_track_counts buys
      nothing at all in the normal case where that flag is ON; and when it's OFF,
      the pgstat_info link will be null, so it's still a useless test.
      
      This change is unlikely to buy any noticeable performance improvement,
      but a cycle shaved is a cycle earned; and my investigations earlier today
      convinced me that we're down to the point where individual instructions in
      the inner execution loops are starting to matter.
      f4d242ef