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

aggregatecmds.c

Blame
    • Tom Lane's avatar
      e1e60694
      Make CREATE AGGREGATE complain if the initcond is invalid for the datatype. · e1e60694
      Tom Lane authored
      The initial transition value is stored as a text string and not fed to the
      transition type's input function until runtime (so that values such as
      "now" don't get frozen at creation time).  Previously, CREATE AGGREGATE
      didn't do anything with it but that, which meant that even erroneous values
      would be accepted and not complained of until the aggregate is used.  This
      seems unhelpful, and it's confused at least one user, as in Rhys Stewart's
      recent report.  It seems worth taking a few more cycles to invoke the input
      function and verify that the value is acceptable.  We can't do this if the
      transition type is polymorphic, but in normal aggregates we know the actual
      transition type so we can call the right input function.
      e1e60694
      History
      Make CREATE AGGREGATE complain if the initcond is invalid for the datatype.
      Tom Lane authored
      The initial transition value is stored as a text string and not fed to the
      transition type's input function until runtime (so that values such as
      "now" don't get frozen at creation time).  Previously, CREATE AGGREGATE
      didn't do anything with it but that, which meant that even erroneous values
      would be accepted and not complained of until the aggregate is used.  This
      seems unhelpful, and it's confused at least one user, as in Rhys Stewart's
      recent report.  It seems worth taking a few more cycles to invoke the input
      function and verify that the value is acceptable.  We can't do this if the
      transition type is polymorphic, but in normal aggregates we know the actual
      transition type so we can call the right input function.