pentaho/pentaho-kettle — pull request #440 by prakapenka (2014-04-02 15:05:23+00:00)
Title: PDI-10250,6960,11530,9662,11597 cummulative fix

This may resolve a couple of null-realted bugs for GroupBy/MemroyGroupBy/Denormalizer step.
Introduced 2 new variables:
KETTLE_AGGREGATION_MIN_NULL_IS_VALUED - if set to true - null is always minimal, otherwise nulls is just skipped for group-related functionality
KETTLE_AGGREGATION_ALL_NULLS_ARE_ZERO - if set positive - we assume null results for any aggregation as a 0. Otherwise original 'null' is passed to next steps.
This also involve functionality to produce 0 according to value meta. If value meta is long - this should be 0L, 0D for double etc. See ValueDataUtil.java changes.
2 unit test introduced to check that aggregation calculations is performed according to proper value meta:
GroupByIntTest.java
MemoryGroupByIntTest.java

PDI-10250 - "Group by" step - Minimum aggregation doesn't work
PDI-6960 - Group by and Memory group by ignores NULL values ("sum" aggregation)
Introduces new system variables, changes to GroupBy step, junits for GroupBy.

PDI-11530 - "Memory Group by" step - Minimum aggregation doesn't work
Introduces similar changes to MemroyGroupBy step, junits are included.

PDI-9662 - Denormalizer step: Minimum aggregation doesn't work
PDI-11597 - Denormalizer step: 100 + null = null
Introduces changes to Denormalizer step. Junits included.