1. 14 Sep, 2014 2 commits
    • Tom Lane's avatar
      Invent PGC_SU_BACKEND and mark log_connections/log_disconnections that way. · fe550b2a
      Tom Lane authored
      This new GUC context option allows GUC parameters to have the combined
      properties of PGC_BACKEND and PGC_SUSET, ie, they don't change after
      session start and non-superusers can't change them.  This is a more
      appropriate choice for log_connections and log_disconnections than their
      previous context of PGC_BACKEND, because we don't want non-superusers
      to be able to affect whether their sessions get logged.
      
      Note: the behavior for log_connections is still a bit odd, in that when
      a superuser attempts to set it from PGOPTIONS, the setting takes effect
      but it's too late to enable or suppress connection startup logging.
      It's debatable whether that's worth fixing, and in any case there is
      a reasonable argument for PGC_SU_BACKEND to exist.
      
      In passing, re-pgindent the files touched by this commit.
      
      Fujii Masao, reviewed by Joe Conway and Amit Kapila
      fe550b2a
    • Peter Eisentraut's avatar
      Run missing documentation tools through "missing" · c2a01439
      Peter Eisentraut authored
      Instead of just erroring out when a tool is missing, wrap the call with
      the "missing" script that we are already using for bison, flex, and
      perl, so that the users get a useful error message.
      c2a01439
  2. 13 Sep, 2014 3 commits
  3. 12 Sep, 2014 10 commits
    • Robert Haas's avatar
      Change NTUP_PER_BUCKET to 1 to improve hash join lookup speed. · 8cce08f1
      Robert Haas authored
      Since this makes the bucket headers use ~10x as much memory, properly
      account for that memory when we figure out whether everything fits
      in work_mem.  This might result in some cases that previously used
      only a single batch getting split into multiple batches, but it's
      unclear as yet whether we need defenses against that case, and if so,
      what the shape of those defenses should be.
      
      It's worth noting that even in these edge cases, users should still be
      no worse off than they would have been last week, because commit
      45f6240a saved a big pile of memory
      on exactly the same workloads.
      
      Tomas Vondra, reviewed and somewhat revised by me.
      8cce08f1
    • Fujii Masao's avatar
      Add GUC to enable logging of replication commands. · 4ad2a548
      Fujii Masao authored
      Previously replication commands like IDENTIFY_COMMAND were not logged
      even when log_statements is set to all. Some users who want to audit
      all types of statements were not satisfied with this situation. To
      address the problem, this commit adds new GUC log_replication_commands.
      If it's enabled, all replication commands are logged in the server log.
      
      There are many ways to allow us to enable that logging. For example,
      we can extend log_statement so that replication commands are logged
      when it's set to all. But per discussion in the community, we reached
      the consensus to add separate GUC for that.
      
      Reviewed by Ian Barwick, Robert Haas and Heikki Linnakangas.
      4ad2a548
    • Stephen Frost's avatar
      Add unicode_{column|header|border}_style to psql · a2dabf0e
      Stephen Frost authored
      With the unicode linestyle, this adds support to control if the
      column, header, or border style should be single or double line
      unicode characters.  The default remains 'single'.
      
      In passing, clean up the border documentation and address some
      minor formatting/spelling issues.
      
      Pavel Stehule, with some additional changes by me.
      a2dabf0e
    • Stephen Frost's avatar
      Handle border = 3 in expanded mode · 82962838
      Stephen Frost authored
      In psql, expanded mode was not being displayed correctly when using
      the normal ascii or unicode linestyles and border set to '3'.  Now,
      per the documentation, border '3' is really only sensible for HTML
      and LaTeX formats, however, that's no excuse for ascii/unicode to
      break in that case, and provisions had been made for psql to cleanly
      handle this case (and it did, in non-expanded mode).
      
      This was broken when ascii/unicode was initially added a good five
      years ago because print_aligned_vertical_line wasn't passed in the
      border setting being used by print_aligned_vertical but instead was
      given the whole printTableContent.  There really isn't a good reason
      for vertical_line to have the entire printTableContent structure, so
      just pass in the printTextFormat and border setting (similar to how
      this is handled in horizontal_line).
      
      Pointed out by Pavel Stehule, fix by me.
      
      Back-patch to all currently-supported versions.
      82962838
    • Heikki Linnakangas's avatar
      Support Subject Alternative Names in SSL server certificates. · acd08d76
      Heikki Linnakangas authored
      This patch makes libpq check the server's hostname against DNS names listed
      in the X509 subjectAltName extension field in the server certificate. This
      allows the same certificate to be used for multiple domain names. If there
      are no SANs in the certificate, the Common Name field is used, like before
      this patch. If both are given, the Common Name is ignored. That is a bit
      surprising, but that's the behavior mandated by the relevant RFCs, and it's
      also what the common web browsers do.
      
      This also adds a libpq_ngettext helper macro to allow plural messages to be
      translated in libpq. Apparently this happened to be the first plural message
      in libpq, so it was not needed before.
      
      Alexey Klyukin, with some kibitzing by me.
      acd08d76
    • Heikki Linnakangas's avatar
      Fix GIN data page split ratio calculation. · 774a78ff
      Heikki Linnakangas authored
      The code that tried to split a page at 75/25 ratio, when appending to the
      end of an index, was buggy in two ways. First, there was a silly typo that
      caused it to just fill the left page as full as possible. But the logic as
      it was intended wasn't correct either, and would actually have given a ratio
      closer to 60/40 than 75/25.
      
      Gaetano Mendola spotted the typo. Backpatch to 9.4, where this code was added.
      774a78ff
    • Tom Lane's avatar
      Fix power_var_int() for large integer exponents. · 1d352325
      Tom Lane authored
      The code for raising a NUMERIC value to an integer power wasn't very
      careful about large powers.  It got an outright wrong answer for an
      exponent of INT_MIN, due to failure to consider overflow of the Abs(exp)
      operation; which is fixable by using an unsigned rather than signed
      exponent value after that point.  Also, even though the number of
      iterations of the power-computation loop is pretty limited, it's easy for
      the repeated squarings to result in ridiculously enormous intermediate
      values, which can take unreasonable amounts of time/memory to process,
      or even overflow the internal "weight" field and so produce a wrong answer.
      We can forestall misbehaviors of that sort by bailing out as soon as the
      weight value exceeds what will fit in int16, since then the final answer
      must overflow (if exp > 0) or underflow (if exp < 0) the packed numeric
      format.
      
      Per off-list report from Pavel Stehule.  Back-patch to all supported
      branches.
      1d352325
    • Tom Lane's avatar
      Fix JSON regression tests. · e3ec0728
      Tom Lane authored
      Commit 95d737ff neglected to update
      expected/json_1.out.  Per buildfarm.
      e3ec0728
    • Peter Eisentraut's avatar
      Fix vacuumdb --analyze-in-stages --all order · da24813c
      Peter Eisentraut authored
      When running vacuumdb --analyze-in-stages --all, it needs to run the
      first stage across all databases before the second one, instead of
      running all stages in a database before processing the next one.
      
      Also respect the --quiet option with --analyze-in-stages.
      da24813c
    • Stephen Frost's avatar
      Add 'ignore_nulls' option to row_to_json · 95d737ff
      Stephen Frost authored
      Provide an option to skip NULL values in a row when generating a JSON
      object from that row with row_to_json.  This can reduce the size of the
      JSON object in cases where columns are NULL without really reducing the
      information in the JSON object.
      
      This also makes row_to_json into a single function with default values,
      rather than having multiple functions.  In passing, change array_to_json
      to also be a single function with default values (we don't add an
      'ignore_nulls' option yet- it's not clear that there is a sensible
      use-case there, and it hasn't been asked for in any case).
      
      Pavel Stehule
      95d737ff
  4. 11 Sep, 2014 12 commits
  5. 10 Sep, 2014 7 commits
  6. 09 Sep, 2014 6 commits
    • Tom Lane's avatar
      Preserve AND/OR flatness while extracting restriction OR clauses. · 1b4cc493
      Tom Lane authored
      The code I added in commit f343a880 was
      careless about preserving AND/OR flatness: it could create a structure with
      an OR node directly underneath another one.  That breaks an assumption
      that's fairly important for planning efficiency, not to mention triggering
      various Asserts (as reported by Benjamin Smith).  Add a trifle more logic
      to handle the case properly.
      1b4cc493
    • Andres Freund's avatar
      Add new psql help topics, accessible to both --help and \?. · 07c8651d
      Andres Freund authored
      Add --help=<topic> for the commandline, and \? <topic> as a backslash
      command, to show more help than the invocations without parameters
      do. "commands", "variables" and "options" currently exist as help
      topics describing, respectively, backslash commands, psql variables,
      and commandline switches. Without parameters the help commands show
      their previous topic.
      
      Some further wordsmithing or extending of the added help content might
      be needed; but there seems little benefit delaying the overall feature
      further.
      
      Author: Pavel Stehule, editorialized by many
      
      Reviewed-By: Andres Freund, Petr Jelinek, Fujii Masao, MauMau, Abhijit
          Menon-Sen and Erik Rijkers.
      
      Discussion: CAFj8pRDVGuC-nXBfe2CK8vpyzd2Dsr9GVpbrATAnZO=2YQ0s2Q@mail.gmail.com,
          CAFj8pRA54AbTv2RXDTRxiAd8hy8wxmoVLqhJDRCwEnhdd7OUkw@mail.gmail.com
      07c8651d
    • Robert Haas's avatar
      Change the spinlock primitives to function as compiler barriers. · 0709b7ee
      Robert Haas authored
      Previously, they functioned as barriers against CPU reordering but not
      compiler reordering, an odd API that required extensive use of volatile
      everywhere that spinlocks are used.  That's error-prone and has negative
      implications for performance, so change it.
      
      In theory, this makes it safe to remove many of the uses of volatile
      that we currently have in our code base, but we may find that there are
      some bugs in this effort when we do.  In the long run, though, this
      should make for much more maintainable code.
      
      Patch by me.  Review by Andres Freund.
      0709b7ee
    • Tom Lane's avatar
      Add width_bucket(anyelement, anyarray). · e80252d4
      Tom Lane authored
      This provides a convenient method of classifying input values into buckets
      that are not necessarily equal-width.  It works on any sortable data type.
      
      The choice of function name is a bit debatable, perhaps, but showing that
      there's a relationship to the SQL standard's width_bucket() function seems
      more attractive than the other proposals.
      
      Petr Jelinek, reviewed by Pavel Stehule
      e80252d4
    • Peter Eisentraut's avatar
      doc: Reflect renaming of Mac OS X to OS X · 220bb39d
      Peter Eisentraut authored
      bug #10528
      220bb39d
    • Peter Eisentraut's avatar
      Allow empty content in xml type · 57b1085d
      Peter Eisentraut authored
      The xml type previously rejected "content" that is empty or consists
      only of spaces.  But the SQL/XML standard allows that, so change that.
      The accepted values for XML "documents" are not changed.
      Reviewed-by: default avatarAli Akbar <the.apaan@gmail.com>
      57b1085d