Thread

Commits

  1. plpython: Add test for returning Python set from SETOF function

  1. Some comments on PL/Python documentation

    The Post Office <noreply@postgresql.org> — 2024-12-29T00:48:25Z

    The following documentation comment has been logged on the website:
    
    Page: https://www.postgresql.org/docs/17/plpython-data.html
    Description:
    
    Hello,
    In my opinion, some phrases on this page are not quite correct.
    
    44.2.4. Composite Types
    You say: '...Object (any object providing method __getattr__)...'
    Actually, the object class provides the __getattribute__() method but not
    the __getattr__() method. 
    See https://docs.python.org/3/reference/datamodel.html#object.__getattr__
    
    44.2.5. Set-Returning Functions
    1. You say: '...Sequence type (tuple, list, set)...'
    Being an unordered collection, sets do not record element position or order
    of insertion. Accordingly, sets do not support indexing, slicing, or other
    sequence-like behavior.
    See
    https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
    
    2. You say: '...Iterator (any object providing __iter__ and next
    methods)...'
    Actually, the iterator objects must support the __next__() method.
    See https://docs.python.org/3/glossary.html#term-iterator
    
    Regards,
    Bogdan Grigorenko
    
  2. Re: Some comments on PL/Python documentation

    Peter Eisentraut <peter@eisentraut.org> — 2025-01-08T08:45:19Z

    On 29.12.24 01:48, PG Doc comments form wrote:
    > Page: https://www.postgresql.org/docs/17/plpython-data.html
    > Description:
    > 
    > Hello,
    > In my opinion, some phrases on this page are not quite correct.
    > 
    > 44.2.4. Composite Types
    > You say: '...Object (any object providing method __getattr__)...'
    > Actually, the object class provides the __getattribute__() method but not
    > the __getattr__() method.
    > See https://docs.python.org/3/reference/datamodel.html#object.__getattr__
    
    Yes, this looks slightly inaccurate.  I'm not sure __getattribute__ is 
    fully correct either, because types can also implement other ways of 
    returning attributes, especially if they are implemented in C.  Is there 
    a neutral and accurate way to describe this?
    
    > 44.2.5. Set-Returning Functions
    > 1. You say: '...Sequence type (tuple, list, set)...'
    > Being an unordered collection, sets do not record element position or order
    > of insertion. Accordingly, sets do not support indexing, slicing, or other
    > sequence-like behavior.
    > See
    > https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
    
    I think this is correct as it is.  Python sets can be iterated over, so 
    this works.  Note that earlier in the page under composite types it says 
    "but not a set because it is not indexable", so this distinction was 
    taken into consideration.
    
    > 2. You say: '...Iterator (any object providing __iter__ and next
    > methods)...'
    > Actually, the iterator objects must support the __next__() method.
    > See https://docs.python.org/3/glossary.html#term-iterator
    
    Yes, this was recently fixed already and will appear in the next patch 
    release.
    
    
    
    
    
  3. Re: Some comments on PL/Python documentation

    Peter Eisentraut <peter@eisentraut.org> — 2025-04-03T09:11:07Z

    On 08.01.25 09:45, Peter Eisentraut wrote:
    >> 44.2.5. Set-Returning Functions
    >> 1. You say: '...Sequence type (tuple, list, set)...'
    >> Being an unordered collection, sets do not record element position or 
    >> order
    >> of insertion. Accordingly, sets do not support indexing, slicing, or 
    >> other
    >> sequence-like behavior.
    >> See
    >> https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
    > 
    > I think this is correct as it is.  Python sets can be iterated over, so 
    > this works.  Note that earlier in the page under composite types it says 
    > "but not a set because it is not indexable", so this distinction was 
    > taken into consideration.
    
    I have added a test for returning Python sets from SETOF functions.  It 
    makes sense to test this if the documentation claims it.