1. 20 Jan, 2010 1 commit
    • Robert Haas's avatar
      Reformat documentation of libpq escaping functions. · 5b13d1ff
      Robert Haas authored
      Modify the "Escaping Strings for Inclusion in SQL Commands" section
      to use a <variablelist> as the preceding and following sections do,
      and merge the "Escaping Binary Strings for Inclusion in SQL Commands"
      section into it.
      
      This changes only the formatting of these sections, not the content.
      It is intended to lay the groundwork for a follow-on patch to add
      some new escaping functions, but it makes sense to commit this first,
      for clarity.
      5b13d1ff
  2. 19 Jan, 2010 5 commits
  3. 18 Jan, 2010 5 commits
  4. 17 Jan, 2010 4 commits
    • Tom Lane's avatar
      Improve the handling of SET CONSTRAINTS commands by having them search · 9a915e59
      Tom Lane authored
      pg_constraint before searching pg_trigger.  This allows saner handling of
      corner cases; in particular we now say "constraint is not deferrable"
      rather than "constraint does not exist" when the command is applied to
      a constraint that's inherently non-deferrable.  Per a gripe several months
      ago from hubert depesz lubaczewski.
      
      To make this work without breaking user-defined constraint triggers,
      we have to add entries for them to pg_constraint.  However, in return
      we can remove the pgconstrname column from pg_constraint, which represents
      a fairly sizable space savings.  I also replaced the tgisconstraint column
      with tgisinternal; the old meaning of tgisconstraint can now be had by
      testing for nonzero tgconstraint, while there is no other way to get
      the old meaning of nonzero tgconstraint, namely that the trigger was
      internally generated rather than being user-created.
      
      In passing, fix an old misstatement in the docs and comments, namely that
      pg_trigger.tgdeferrable is exactly redundant with pg_constraint.condeferrable.
      Actually, we mark RI action triggers as nondeferrable even when they belong to
      a nominally deferrable FK constraint.  The SET CONSTRAINTS code now relies on
      that instead of hard-coding a list of exception OIDs.
      9a915e59
    • Magnus Hagander's avatar
    • Magnus Hagander's avatar
    • Tom Lane's avatar
  5. 16 Jan, 2010 12 commits
  6. 15 Jan, 2010 10 commits
  7. 14 Jan, 2010 3 commits
    • Teodor Sigaev's avatar
      Add point_ops opclass for GiST. · 4cbe4739
      Teodor Sigaev authored
      4cbe4739
    • Simon Riggs's avatar
      First part of refactoring of code for ResolveRecoveryConflict. Purposes · e99767bc
      Simon Riggs authored
      of this are to centralise the conflict code to allow further change,
      as well as to allow passing through the full reason for the conflict
      through to the conflicting backends. Backend state alters how we
      can handle different types of conflict so this is now required.
      As originally suggested by Heikki, no longer optional.
      e99767bc
    • Tom Lane's avatar
      Simplify validate_exec() by using access(2) to check file permissions, · 0fba3bef
      Tom Lane authored
      rather than trying to implement the equivalent logic by hand.  The motivation
      for the original coding appears to have been to check with the effective uid's
      permissions not the real uid's; but there is no longer any difference, because
      we don't run the postmaster setuid (indeed, main.c enforces that they're the
      same).  Using access() means we will get it right in situations the original
      coding failed to handle, such as ACL-based permissions.  Besides it's a lot
      shorter, cleaner, and more thread-safe.  Per bug #5275 from James Bellinger.
      0fba3bef