1. 12 2月, 2019 2 次提交
  2. 09 2月, 2019 1 次提交
  3. 05 2月, 2019 1 次提交
    • F
      Remove gphdfs from source code · ad6b920f
      Francisco Guerrero 提交于
      gphdfs is being deprecated for GPDB 6. This commit removes the
      following:
      - Remove gphdfs from pipelines
      - Remove gphdfs from gpcontrib
      - Remove gphdfs from Makefile
      - Remove tests using gphdfs
      - Remove GUCs, code, and comments used for gphdfs
      - Remove gphdfs from GPDB docs
      - Remove avro and parquet formats
      ad6b920f
  4. 31 1月, 2019 1 次提交
  5. 24 1月, 2019 1 次提交
    • J
      Prevent int128 from requiring more than MAXALIGN alignment. · d74dd56a
      Jesse Zhang 提交于
      We backported 128-bit integer support to speed up aggregates (commits
      8122e143 and 959277a4) from upstream 9.6 into Greenplum (in
      commits 9b164486 and 325e6fcd). However, we forgot to also port a
      follow-up fix postgres/postgres@7518049980b, mostly because it's nuanced
      and hard to reproduce.
      
      There are two ways to tell the brokenness:
      
      1. On a lucky day, tests would fail on my workstation, but not my laptop (or
         vice versa).
      
      1. If you stare at the generated code for `int8_avg_combine` (and friends),
         you'll notice the compiler uses "aligned" instructions like `movaps` and
         `movdqa` (on AMD64).
      
      Today's my lucky day.
      
      Original commit message from postgres/postgres@7518049980b (by Tom Lane):
      
      > Our initial work with int128 neglected alignment considerations, an
      > oversight that came back to bite us in bug #14897 from Vincent Lachenal.
      > It is unsurprising that int128 might have a 16-byte alignment requirement;
      > what's slightly more surprising is that even notoriously lax Intel chips
      > sometimes enforce that.
      
      > Raising MAXALIGN seems out of the question: the costs in wasted disk and
      > memory space would be significant, and there would also be an on-disk
      > compatibility break.  Nor does it seem very practical to try to allow some
      > data structures to have more-than-MAXALIGN alignment requirement, as we'd
      > have to push knowledge of that throughout various code that copies data
      > structures around.
      
      > The only way out of the box is to make type int128 conform to the system's
      > alignment assumptions.  Fortunately, gcc supports that via its
      > __attribute__(aligned()) pragma; and since we don't currently support
      > int128 on non-gcc-workalike compilers, we shouldn't be losing any platform
      > support this way.
      
      > Although we could have just done pg_attribute_aligned(MAXIMUM_ALIGNOF) and
      > called it a day, I did a little bit of extra work to make the code more
      > portable than that: it will also support int128 on compilers without
      > __attribute__(aligned()), if the native alignment of their 128-bit-int
      > type is no more than that of int64.
      
      > Add a regression test case that exercises the one known instance of the
      > problem, in parallel aggregation over a bigint column.
      
      > This will need to be back-patched, along with the preparatory commit
      > 91aec93e.  But let's see what the buildfarm makes of it first.
      
      > Discussion: https://postgr.es/m/20171110185747.31519.28038@wrigleys.postgresql.org
      
      (cherry picked from commit 75180499)
      d74dd56a
  6. 19 1月, 2019 2 次提交
  7. 18 1月, 2019 1 次提交
  8. 15 1月, 2019 2 次提交
  9. 12 1月, 2019 1 次提交
  10. 11 1月, 2019 1 次提交
  11. 27 12月, 2018 1 次提交
  12. 18 12月, 2018 1 次提交
  13. 15 12月, 2018 1 次提交
  14. 14 12月, 2018 1 次提交
  15. 11 12月, 2018 1 次提交
  16. 07 12月, 2018 2 次提交
  17. 06 12月, 2018 1 次提交
  18. 05 12月, 2018 1 次提交
  19. 29 11月, 2018 1 次提交
  20. 28 11月, 2018 1 次提交
  21. 27 11月, 2018 1 次提交
    • I
      Fix ZSTD compression error "dst buffer too small" · f8afec06
      Ivan Leskin 提交于
      When ZSTD compression is used for AO CO tables, insertion of data may cause an
      error "Destination buffer is too small". This happens when compressed data is
      larger than uncompressed input data.
      
      This commit adds handling of this situation: do not change output buffer and
      return size used equal to source size. The caller (e.g.,
      'cdbappendonlystoragewrite.c') is able to handle such output; in this case, it
      copies data from input to output itself.
      f8afec06
  22. 06 11月, 2018 1 次提交
  23. 03 11月, 2018 2 次提交
    • B
      Bump ORCA v3.9.0 and update test cases · 148893a6
      Bhuvnesh Chaudhary 提交于
      Co-authored-by: NSambitesh Dash <sdash@pivotal.io>
      148893a6
    • T
      Yet further rethinking of build changes for macOS Mojave. · 1b5e8b40
      Tom Lane 提交于
      The solution arrived at in commit e74dd00f presumes that the compiler
      has a suitable default -isysroot setting ... but further experience
      shows that in many combinations of macOS version, XCode version, Xcode
      command line tools version, and phase of the moon, Apple's compiler
      will *not* supply a default -isysroot value.
      
      We could potentially go back to the approach used in commit 68fc227d,
      but I don't have a lot of faith in the reliability or life expectancy of
      that either.  Let's just revert to the approach already shipped in 11.0,
      namely specifying an -isysroot switch globally.  As a partial response to
      the concerns raised by Jakob Egger, adjust the contents of Makefile.global
      to look like
      
      CPPFLAGS = -isysroot $(PG_SYSROOT) ...
      PG_SYSROOT = /path/to/sysroot
      
      This allows overriding the sysroot path at build time in a relatively
      painless way.
      
      Add documentation to installation.sgml about how to use the PG_SYSROOT
      option.  I also took the opportunity to document how to work around
      macOS's "System Integrity Protection" feature.
      
      As before, back-patch to all supported versions.
      
      Discussion: https://postgr.es/m/20840.1537850987@sss.pgh.pa.us
      1b5e8b40
  24. 30 10月, 2018 3 次提交
  25. 27 10月, 2018 1 次提交
  26. 25 10月, 2018 2 次提交
    • R
      Bump ORCA version to 3.6.0 · a7d941b7
      Rahul Iyer 提交于
      a7d941b7
    • B
      Bump Orca to v3.5.0 and Remove fix-me · 19f36828
      Bhuvnesh Chaudhary 提交于
      Update the tests and bump orca version corresponding to the below fix in
      ORCA.
      
      If the Scalar Agg node has child which has volatile function and has
      universal distribution for relational child, instead of deriving the
      spec as that of the child i.e Universal Spec, we should derive the
      distribution spec as singleton.
      
      Deriving singleton distribution spec will ensure that the tree is
      executed on one node and the results will be distributed to the
      remaining segments.
      
      Consider the below setup:
      
      create table f (a text);
      explain insert into f select sum(random()) from (select 1);
      
      Physical plan:
      +--CPhysicalDML (Insert, "foo"), Source Columns: ["f1" (2)], Action: ("ColRef_0004" (4))   rows:1   width:1  rebinds:1   cost:0.016658   origin: [Grp:12, GrpExpr:2]
         +--CPhysicalComputeScalar   rows:1   width:1  rebinds:1   cost:0.001033   origin: [Grp:23, GrpExpr:3]
            |--CPhysicalMotionHashDistribute HASHED: [ +--CScalarIdent "f1" (2)
       , nulls colocated, duplicate sensitive ]   rows:1   width:1  rebinds:1   cost:0.001029   origin: [Grp:11, GrpExpr:2]
            |  +--CPhysicalComputeScalar   rows:1   width:1  rebinds:1   cost:0.001008   origin: [Grp:11, GrpExpr:1]
            |     |--CPhysicalScalarAgg( Global ) Grp Cols: [], Minimal Grp Cols:[], Generates Duplicates :[ 0 ]    rows:1   width:8  rebinds:1   cost:0.001000   origin: [Grp:6, GrpExpr:3]
            |     |  |--CPhysicalTVF   rows:1000   width:1  rebinds:1   cost:0.001000   origin: [Grp:1, GrpExpr:1]
            |     |  |  |--CScalarConst (1)   origin: [Grp:0, GrpExpr:0]
            |     |  |  +--CScalarConst (1)   origin: [Grp:0, GrpExpr:0]
            |     |  +--CScalarProjectList   origin: [Grp:5, GrpExpr:0]
            |     |     +--CScalarProjectElement "sum" (1)   origin: [Grp:4, GrpExpr:0]
            |     |        +--CScalarAggFunc (sum , Distinct: false , Aggregate Stage: Global)   origin: [Grp:3, GrpExpr:0]
            |     |           +--CScalarFunc (random)   origin: [Grp:2, GrpExpr:0]
            |     +--CScalarProjectList   origin: [Grp:10, GrpExpr:0]
            |        +--CScalarProjectElement "f1" (2)   origin: [Grp:9, GrpExpr:0]
            |           +--CScalarCoerceViaIO   origin: [Grp:8, GrpExpr:0]
            |              +--CScalarIdent "sum" (1)   origin: [Grp:7, GrpExpr:0]
            +--CScalarProjectList   origin: [Grp:22, GrpExpr:0]
               +--CScalarProjectElement "ColRef_0004" (4)   origin: [Grp:21, GrpExpr:0]
                  +--CScalarConst (1)   origin: [Grp:0, GrpExpr:0]
      ",
                                                   QUERY PLAN
      ----------------------------------------------------------------------------------------------------
       Insert  (cost=0.00..0.02 rows=1 width=8)
         ->  Result  (cost=0.00..0.00 rows=1 width=12)
               ->  Result  (cost=0.00..0.00 rows=1 width=8)
                     ->  Result  (cost=0.00..0.00 rows=1 width=8)
                           ->  Aggregate  (cost=0.00..0.00 rows=1 width=8)
                                 ->  Function Scan on generate_series  (cost=0.00..0.00 rows=334 width=1)
      
      Above CPhysicalMotionHashDistribute has a universal child (i.e
      CPhysicalTVF), and translator will convert it to a Result Node with Hash
      Filter. The hash filter is build on the projected column in this query
      i.e sum(random()).. Random being a volatile function, will cause the
      resulting sum to be non-deterministic i.e volatile in this case. So the
      hash filter may not appropriately filter out the segment and the insert
      may result in inserting non-deterministic number of rows in the table
      (with the maximum being equal to the number of segments).  So, we should
      derive singleton distribution if the relation child of the scalar agg
      node delivers universal spec and the project list has volatile
      functions.
      
      Resulting plan will be:
      
      pivotal=# explain insert into foo select sum(random()) from (select 1) f;
                                         QUERY PLAN
      ---------------------------------------------------------------------------------
       Insert  (cost=0.00..0.02 rows=1 width=8)
         ->  Result  (cost=0.00..0.00 rows=1 width=12)
               ->  Redistribute Motion 1:3  (slice1)  (cost=0.00..0.00 rows=1 width=8)
                     Hash Key: (((sum(random())))::text)
                     ->  Result  (cost=0.00..0.00 rows=1 width=8)
                           ->  Aggregate  (cost=0.00..0.00 rows=1 width=8)
                                 ->  Result  (cost=0.00..0.00 rows=1 width=1)
      19f36828
  27. 19 10月, 2018 1 次提交
    • T
      Still further rethinking of build changes for macOS Mojave. · 0749acca
      Tom Lane 提交于
      To avoid the sorts of problems complained of by Jakob Egger, it'd be
      best if configure didn't emit any references to the sysroot path at all.
      In the case of PL/Tcl, we can do that just by keeping our hands off the
      TCL_INCLUDE_SPEC string altogether.  In the case of PL/Perl, we need to
      substitute -iwithsysroot for -I in the compile commands, which is easily
      handled if we change to using a configure output variable that includes
      the switch not only the directory name.  Since PL/Tcl and PL/Python
      already do it like that, this seems like good consistency cleanup anyway.
      
      Hence, this replaces the advice given to Perl-related extensions in commit
      5e221713; instead of writing "-I$(perl_archlibexp)/CORE", they should
      just write "$(perl_includespec)".  (The old way continues to work, but not
      on recent macOS.)
      
      It's still the case that configure needs to be aware of the sysroot
      path internally, but that's cleaner than what we had before.
      
      As before, back-patch to all supported versions.
      
      Discussion: https://postgr.es/m/20840.1537850987@sss.pgh.pa.us
      0749acca
  28. 18 10月, 2018 1 次提交
  29. 17 10月, 2018 1 次提交
    • T
      Back off using -isysroot on Darwin. · 486e6f8d
      Tom Lane 提交于
      Rethink the solution applied in commit 5e221713 to get PL/Tcl to
      build on macOS Mojave.  I feared that adding -isysroot globally might
      have undesirable consequences, and sure enough Jakob Egger reported
      one: it complicates building extensions with a different Xcode version
      than was used for the core server.  (I find that a risky proposition
      in general, but apparently it works most of the time, so we shouldn't
      break it if we don't have to.)
      
      We'd already adopted the solution for PL/Perl of inserting the sysroot
      path directly into the -I switches used to find Perl's headers, and we
      can do the same thing for PL/Tcl by changing the -iwithsysroot switch
      that Apple's tclConfig.sh reports.  This restricts the risks to PL/Perl
      and PL/Tcl themselves and directly-dependent extensions, which is a lot
      more pleasing in general than a global -isysroot switch.
      
      Along the way, tighten the test to see if we need to inject the sysroot
      path into $perl_includedir, as I'd speculated about upthread but not
      gotten round to doing.
      
      As before, back-patch to all supported versions.
      
      Discussion: https://postgr.es/m/20840.1537850987@sss.pgh.pa.us
      486e6f8d
  30. 16 10月, 2018 1 次提交
  31. 11 10月, 2018 1 次提交
  32. 05 10月, 2018 1 次提交