Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

postgres-lambda-diff

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Tom Lane authored
    When written, textanycat, anytextcat, quote_literal, and quote_nullable
    were marked volatile, because they could invoke arbitrary type-specific
    output functions as part of casting their anyelement arguments to text.
    Since then, we have defined a project policy that I/O functions must not
    be volatile, as per commit aab353a6.
    So these functions can safely be downgraded to stable.  Most of the time
    this makes no difference since they'll get inlined anyway, but as noted
    by Andrew Dunstan, there are cases where the volatile marking prevents
    optimizations that the planner does before function inlining.  (I think
    I might have overlooked these functions in the earlier commit on the
    grounds that inlining would make it moot, but not so --- tgl)
    
    This change results in a change in the expected output of the json
    regression tests, because the planner can now flatten a sub-select
    that it failed to before.  The old output is preferable, but getting
    that back will require some as-yet-unfinished work on RowExpr handling.
    
    Marti Raudsepp
    3db6524f
    History
    Name Last commit Last update