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

deparse.c

Blame
    • Tom Lane's avatar
      5b68d816
      Fix contrib/postgres_fdw's remote-estimate representation of array Params. · 5b68d816
      Tom Lane authored
      We were emitting "(SELECT null::typename)", which is usually interpreted
      as a scalar subselect, but not so much in the context "x = ANY(...)".
      This led to remote-side parsing failures when remote_estimate is enabled.
      A quick and ugly fix is to stick in an extra cast step,
      "((SELECT null::typename)::typename)".  The cast will be thrown away as
      redundant by parse analysis, but not before it's done its job of making
      sure the grammar sees the ANY argument as an a_expr rather than a
      select_with_parens.  Per an example from Hannu Krosing.
      5b68d816
      History
      Fix contrib/postgres_fdw's remote-estimate representation of array Params.
      Tom Lane authored
      We were emitting "(SELECT null::typename)", which is usually interpreted
      as a scalar subselect, but not so much in the context "x = ANY(...)".
      This led to remote-side parsing failures when remote_estimate is enabled.
      A quick and ugly fix is to stick in an extra cast step,
      "((SELECT null::typename)::typename)".  The cast will be thrown away as
      redundant by parse analysis, but not before it's done its job of making
      sure the grammar sees the ANY argument as an a_expr rather than a
      select_with_parens.  Per an example from Hannu Krosing.