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

tablecmds.c

Blame
    • Tom Lane's avatar
      d4a363cd
      Modify find_inheritance_children() and find_all_inheritors() to add the · d4a363cd
      Tom Lane authored
      ability to lock relations as they scan pg_inherits, and to ignore any
      relations that have disappeared by the time we get lock on them.  This
      makes uses of these functions safe against concurrent DROP operations
      on child tables: we will effectively ignore any just-dropped child,
      rather than possibly throwing an error as in recent bug report from
      Thomas Johansson (and similar past complaints).  The behavior should
      not change otherwise, since the code was acquiring those same locks
      anyway, just a little bit later.
      
      An exception is LockTableCommand(), which is still behaving unsafely;
      but that seems to require some more discussion before we change it.
      d4a363cd
      History
      Modify find_inheritance_children() and find_all_inheritors() to add the
      Tom Lane authored
      ability to lock relations as they scan pg_inherits, and to ignore any
      relations that have disappeared by the time we get lock on them.  This
      makes uses of these functions safe against concurrent DROP operations
      on child tables: we will effectively ignore any just-dropped child,
      rather than possibly throwing an error as in recent bug report from
      Thomas Johansson (and similar past complaints).  The behavior should
      not change otherwise, since the code was acquiring those same locks
      anyway, just a little bit later.
      
      An exception is LockTableCommand(), which is still behaving unsafely;
      but that seems to require some more discussion before we change it.