1. 30 3月, 2009 1 次提交
    • T
      Fix an oversight in the support for storing/retrieving "minimal tuples" in · edc7f96c
      Tom Lane 提交于
      TupleTableSlots.  We have functions for retrieving a minimal tuple from a slot
      after storing a regular tuple in it, or vice versa; but these were implemented
      by converting the internal storage from one format to the other.  The problem
      with that is it invalidates any pass-by-reference Datums that were already
      fetched from the slot, since they'll be pointing into the just-freed version
      of the tuple.  The known problem cases involve fetching both a whole-row
      variable and a pass-by-reference value from a slot that is fed from a
      tuplestore or tuplesort object.  The added regression tests illustrate some
      simple cases, but there may be other failure scenarios traceable to the same
      bug.  Note that the added tests probably only fail on unpatched code if it's
      built with --enable-cassert; otherwise the bug leads to fetching from freed
      memory, which will not have been overwritten without additional conditions.
      
      Fix by allowing a slot to contain both formats simultaneously; which turns out
      not to complicate the logic much at all, if anything it seems less contorted
      than before.
      
      Back-patch to 8.2, where minimal tuples were introduced.
      edc7f96c
  2. 02 4月, 2007 1 次提交
  3. 02 2月, 2007 1 次提交
    • B
      Wording cleanup for error messages. Also change can't -> cannot. · 8b4ff8b6
      Bruce Momjian 提交于
      Standard English uses "may", "can", and "might" in different ways:
      
              may - permission, "You may borrow my rake."
      
              can - ability, "I can lift that log."
      
              might - possibility, "It might rain today."
      
      Unfortunately, in conversational English, their use is often mixed, as
      in, "You may use this variable to do X", when in fact, "can" is a better
      choice.  Similarly, "It may crash" is better stated, "It might crash".
      8b4ff8b6
  4. 28 2月, 2006 1 次提交
  5. 07 10月, 2005 1 次提交
    • T
      When a function not returning RECORD has a single OUT parameter, use · 9ea14ef5
      Tom Lane 提交于
      the parameter's name (if any) as the default column name for SELECT FROM
      the function, rather than the function name as previously.  I still think
      this is a bad idea, but I lost the argument.  Force decompilation of
      function RTEs to specify full aliases always, to reduce the odds of this
      decision breaking dumped views.
      9ea14ef5
  6. 23 8月, 2005 1 次提交
  7. 24 7月, 2005 1 次提交
  8. 22 4月, 2005 1 次提交
  9. 01 4月, 2005 1 次提交
  10. 27 7月, 2003 1 次提交
    • B
      > Joe Conway <mail@joeconway.com> writes: · 38fb906f
      Bruce Momjian 提交于
      >>ISTM that "source" is worth knowing.
      >
      > Hm, possibly.  Any other opinions?
      
      This version has the seven fields I proposed, including "source". Here's
      an example that shows why I think it's valuable:
      
      regression=# \x
      Expanded display is on.
      regression=# select * from pg_settings where name = 'enable_seqscan';
      -[ RECORD 1 ]-----------
      name    | enable_seqscan
      setting | on
      context | user
      vartype | bool
      source  | default
      min_val |
      max_val |
      
      regression=# update pg_settings set setting = 'off' where name =
      'enable_seqscan';
      -[ RECORD 1 ]---
      set_config | off
      
      regression=# select * from pg_settings where name = 'enable_seqscan';
      -[ RECORD 1 ]-----------
      name    | enable_seqscan
      setting | off
      context | user
      vartype | bool
      source  | session
      min_val |
      max_val |
      
      regression=# alter user postgres set enable_seqscan to 'off';
      ALTER USER
      
      (log out and then back in again)
      
      regression=# \x
      Expanded display is on.
      regression=# select * from pg_settings where name = 'enable_seqscan';
      -[ RECORD 1 ]-----------
      name    | enable_seqscan
      setting | off
      context | user
      vartype | bool
      source  | user
      min_val |
      max_val |
      
      In the first case, enable_seqscan is set to its default value. After
      setting it to off, it is obvious that the value has been changed for the
      session only. In the third case, you can see that the value has been set
      specifically for the user.
      
      Joe Conway
      38fb906f
  11. 20 7月, 2003 1 次提交
  12. 14 2月, 2003 1 次提交
    • T
      Arrange to give error when a SetOp member statement refers to a variable · 18e8f06c
      Tom Lane 提交于
      of the containing query (which really can only happen in a rule context).
      Per example from Brandon Craig Rhodes.  Also, make the error message
      more specific for the similar case with sub-select in FROM.  The revised
      coding should be easier to adapt to SQL99's LATERAL(), when we get around
      to supporting that.
      18e8f06c
  13. 21 11月, 2002 1 次提交
  14. 31 8月, 2002 1 次提交
  15. 29 8月, 2002 1 次提交
  16. 06 8月, 2002 1 次提交
  17. 16 7月, 2002 1 次提交
    • T
      Add code to extract dependencies from an expression tree, and use it · 30ec3160
      Tom Lane 提交于
      to build dependencies for rules, constraint expressions, and default
      expressions.  Repair some problems in the original design of
      recursiveDeletion() exposed by more complex dependency sets.  Fix
      regression tests that were deleting things in illegal sequences.
      30ec3160
  18. 21 6月, 2002 1 次提交