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

execUtils.c

Blame
    • Tom Lane's avatar
      a77eaa6a
      As noted by Andrew Gierth, there's really no need any more to force a junk · a77eaa6a
      Tom Lane authored
      filter to be used when INSERT or SELECT INTO has a plan that returns raw
      disk tuples.  The virtual-tuple-slot optimizations that were put in place
      awhile ago mean that ExecInsert has to do ExecMaterializeSlot, and that
      already copies the tuple if it's raw (and does so more efficiently than
      a junk filter, too).  So get rid of that logic.  This in turn means that
      we can throw away ExecMayReturnRawTuples, which wasn't used for any other
      purpose, and was always a kluge anyway.
      
      In passing, move a couple of SELECT-INTO-specific fields out of EState
      and into the private state of the SELECT INTO DestReceiver, as was foreseen
      in an old comment there.  Also make intorel_receive use ExecMaterializeSlot
      not ExecCopySlotTuple, for consistency with ExecInsert and to possibly save
      a tuple copy step in some cases.
      a77eaa6a
      History
      As noted by Andrew Gierth, there's really no need any more to force a junk
      Tom Lane authored
      filter to be used when INSERT or SELECT INTO has a plan that returns raw
      disk tuples.  The virtual-tuple-slot optimizations that were put in place
      awhile ago mean that ExecInsert has to do ExecMaterializeSlot, and that
      already copies the tuple if it's raw (and does so more efficiently than
      a junk filter, too).  So get rid of that logic.  This in turn means that
      we can throw away ExecMayReturnRawTuples, which wasn't used for any other
      purpose, and was always a kluge anyway.
      
      In passing, move a couple of SELECT-INTO-specific fields out of EState
      and into the private state of the SELECT INTO DestReceiver, as was foreseen
      in an old comment there.  Also make intorel_receive use ExecMaterializeSlot
      not ExecCopySlotTuple, for consistency with ExecInsert and to possibly save
      a tuple copy step in some cases.