1. 25 Jun, 2018 2 commits
    • Peter Eisentraut's avatar
      Translation updates · 299addd5
      Peter Eisentraut authored
      Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git
      Source-Git-Hash: 884f33d735870f94357820800840af3e93ff4628
      299addd5
    • Michael Paquier's avatar
      Address set of issues with errno handling · 6cb33724
      Michael Paquier authored
      System calls mixed up in error code paths are causing two issues which
      several code paths have not correctly handled:
      1) For write() calls, sometimes the system may return less bytes than
      what has been written without errno being set.  Some paths were careful
      enough to consider that case, and assumed that errno should be set to
      ENOSPC, other calls missed that.
      2) errno generated by a system call is overwritten by other system calls
      which may succeed once an error code path is taken, causing what is
      reported to the user to be incorrect.
      
      This patch uses the brute-force approach of correcting all those code
      paths.  Some refactoring could happen in the future, but this is let as
      future work, which is not targeted for back-branches anyway.
      
      Author: Michael Paquier
      Reviewed-by: Ashutosh Sharma
      Discussion: https://postgr.es/m/20180622061535.GD5215@paquier.xyz
      6cb33724
  2. 24 Jun, 2018 2 commits
  3. 23 Jun, 2018 3 commits
  4. 22 Jun, 2018 6 commits
  5. 21 Jun, 2018 6 commits
  6. 20 Jun, 2018 11 commits
  7. 19 Jun, 2018 5 commits
  8. 18 Jun, 2018 5 commits
    • Tom Lane's avatar
      Fix jsonb_plperl to convert Perl UV values correctly. · 93b6e03a
      Tom Lane authored
      Values greater than IV_MAX were incorrectly converted to SQL,
      for instance ~0 would become -1 rather than 18446744073709551615
      (on a 64-bit machine).
      
      Dagfinn Ilmari Mannsåker, adjusted a bit by me
      
      Discussion: https://postgr.es/m/d8jtvskjzzs.fsf@dalvik.ping.uio.no
      93b6e03a
    • Tom Lane's avatar
      Fix contrib/hstore_plperl to look through scalar refs. · e3b7f7cc
      Tom Lane authored
      Bring this transform function into sync with the policy established
      by commit 3a382983.
      
      Also, fix it to make sure that what it drills down to is indeed a
      hash, and not some other kind of Perl SV.  Previously, the test
      cases added here provoked crashes.
      
      Because of the crash hazard, back-patch to 9.5 where this module
      was introduced.
      
      Discussion: https://postgr.es/m/28336.1528393969@sss.pgh.pa.us
      e3b7f7cc
    • Tom Lane's avatar
      Allow plperl_sv_to_datum to look through scalar refs. · 3a382983
      Tom Lane authored
      There seems little reason for the policy of throwing error if we
      find a ref to something other than a hash or array.   Recursively
      look through the ref, instead.  This makes the behavior in non-transform
      cases comparable to what was already instantiated for jsonb_plperl.
      
      Note that because we invoke any available transform function before
      considering the ref case, it's up to each transform function whether
      it wants to play along with this behavior or do something different.
      
      Because the previous behavior was just to throw a useless error,
      this seems unlikely to create any compatibility issues.  Still, given
      the lack of field complaints so far, seems best not to back-patch.
      
      Discussion: https://postgr.es/m/28336.1528393969@sss.pgh.pa.us
      3a382983
    • Tom Lane's avatar
      Avoid platform-dependent output from Data::Dumper. · e4300a35
      Tom Lane authored
      Per buildfarm, the output from Data::Dumper for an IEEE infinity
      is platform-dependent (e.g. "inf" vs "Inf").  Just skip that one
      test case in the plperlu test; testing it on the plperl side is
      coverage enough.  Fixes issue in commit 1731e374.
      e4300a35
    • Tom Lane's avatar
      Fix excessive enreferencing in jsonb-to-plperl transform. · 1731e374
      Tom Lane authored
      We want, say, 2 to be transformed as 2, not \\2 which is what the
      original coding produced.  Perl's standard seems to be to add an RV
      wrapper only for hash and array SVs, so do it like that.
      
      This was missed originally because the test cases only checked what came
      out of a round trip back to SQL, and the strip-all-dereferences loop at
      the top of SV_to_JsonbValue hides the extra refs from view.  As a better
      test, print the Perl value with Data::Dumper, like the hstore_plperlu
      tests do.  While we can't do that in the plperl test, only plperlu,
      that should be good enough because this code is the same for both PLs.
      But also add a simplistic test for extra REFs, which we can do in both.
      
      That strip-all-dereferences behavior is now a bit dubious; it's unlike
      what happens for other Perl-to-SQL conversions.  However, the best
      thing to do seems to be to leave it alone and make the other conversions
      act similarly.  That will be done separately.
      
      Dagfinn Ilmari Mannsåker, adjusted a bit by me
      
      Discussion: https://postgr.es/m/d8jlgbq66t9.fsf@dalvik.ping.uio.no
      1731e374