Commit f947c04fd326b1fae6831666077545cc5fc672f8
Committed by
GitHub
Merge pull request #1458 from vparomskiy/master
skip JPA TsKVEntry initialization if no data found
Showing
1 changed file
with
52 additions
and
39 deletions
@@ -62,49 +62,53 @@ public final class TsKvEntity implements ToData<TsKvEntry> { | @@ -62,49 +62,53 @@ public final class TsKvEntity implements ToData<TsKvEntry> { | ||
62 | } | 62 | } |
63 | 63 | ||
64 | public TsKvEntity(Long longValue, Double doubleValue, Long longCountValue, Long doubleCountValue, String aggType) { | 64 | public TsKvEntity(Long longValue, Double doubleValue, Long longCountValue, Long doubleCountValue, String aggType) { |
65 | - switch (aggType) { | ||
66 | - case AVG: | ||
67 | - double sum = 0.0; | ||
68 | - if (longValue != null) { | ||
69 | - sum += longValue; | ||
70 | - } | ||
71 | - if (doubleValue != null) { | ||
72 | - sum += doubleValue; | ||
73 | - } | ||
74 | - long totalCount = longCountValue + doubleCountValue; | ||
75 | - if (totalCount > 0) { | ||
76 | - this.doubleValue = sum / (longCountValue + doubleCountValue); | ||
77 | - } else { | ||
78 | - this.doubleValue = 0.0; | ||
79 | - } | ||
80 | - break; | ||
81 | - case SUM: | ||
82 | - if (doubleCountValue > 0) { | ||
83 | - this.doubleValue = doubleValue + (longValue != null ? longValue.doubleValue() : 0.0); | ||
84 | - } else { | ||
85 | - this.longValue = longValue; | ||
86 | - } | ||
87 | - break; | ||
88 | - case MIN: | ||
89 | - case MAX: | ||
90 | - if (longCountValue > 0 && doubleCountValue > 0) { | ||
91 | - this.doubleValue = MAX.equals(aggType) ? Math.max(doubleValue, longValue.doubleValue()) : Math.min(doubleValue, longValue.doubleValue()); | ||
92 | - } else if (doubleCountValue > 0) { | ||
93 | - this.doubleValue = doubleValue; | ||
94 | - } else if (longCountValue > 0) { | ||
95 | - this.longValue = longValue; | ||
96 | - } | ||
97 | - break; | 65 | + if(!isAllNull(longValue, doubleValue, longCountValue, doubleCountValue)) { |
66 | + switch (aggType) { | ||
67 | + case AVG: | ||
68 | + double sum = 0.0; | ||
69 | + if (longValue != null) { | ||
70 | + sum += longValue; | ||
71 | + } | ||
72 | + if (doubleValue != null) { | ||
73 | + sum += doubleValue; | ||
74 | + } | ||
75 | + long totalCount = longCountValue + doubleCountValue; | ||
76 | + if (totalCount > 0) { | ||
77 | + this.doubleValue = sum / (longCountValue + doubleCountValue); | ||
78 | + } else { | ||
79 | + this.doubleValue = 0.0; | ||
80 | + } | ||
81 | + break; | ||
82 | + case SUM: | ||
83 | + if (doubleCountValue > 0) { | ||
84 | + this.doubleValue = doubleValue + (longValue != null ? longValue.doubleValue() : 0.0); | ||
85 | + } else { | ||
86 | + this.longValue = longValue; | ||
87 | + } | ||
88 | + break; | ||
89 | + case MIN: | ||
90 | + case MAX: | ||
91 | + if (longCountValue > 0 && doubleCountValue > 0) { | ||
92 | + this.doubleValue = MAX.equals(aggType) ? Math.max(doubleValue, longValue.doubleValue()) : Math.min(doubleValue, longValue.doubleValue()); | ||
93 | + } else if (doubleCountValue > 0) { | ||
94 | + this.doubleValue = doubleValue; | ||
95 | + } else if (longCountValue > 0) { | ||
96 | + this.longValue = longValue; | ||
97 | + } | ||
98 | + break; | ||
99 | + } | ||
98 | } | 100 | } |
99 | } | 101 | } |
100 | 102 | ||
101 | public TsKvEntity(Long booleanValueCount, Long strValueCount, Long longValueCount, Long doubleValueCount) { | 103 | public TsKvEntity(Long booleanValueCount, Long strValueCount, Long longValueCount, Long doubleValueCount) { |
102 | - if (booleanValueCount != 0) { | ||
103 | - this.longValue = booleanValueCount; | ||
104 | - } else if (strValueCount != 0) { | ||
105 | - this.longValue = strValueCount; | ||
106 | - } else { | ||
107 | - this.longValue = longValueCount + doubleValueCount; | 104 | + if(!isAllNull(booleanValueCount, strValueCount, longValueCount, doubleValueCount)) { |
105 | + if (booleanValueCount != 0) { | ||
106 | + this.longValue = booleanValueCount; | ||
107 | + } else if (strValueCount != 0) { | ||
108 | + this.longValue = strValueCount; | ||
109 | + } else { | ||
110 | + this.longValue = longValueCount + doubleValueCount; | ||
111 | + } | ||
108 | } | 112 | } |
109 | } | 113 | } |
110 | 114 | ||
@@ -155,4 +159,13 @@ public final class TsKvEntity implements ToData<TsKvEntry> { | @@ -155,4 +159,13 @@ public final class TsKvEntity implements ToData<TsKvEntry> { | ||
155 | public boolean isNotEmpty() { | 159 | public boolean isNotEmpty() { |
156 | return strValue != null || longValue != null || doubleValue != null || booleanValue != null; | 160 | return strValue != null || longValue != null || doubleValue != null || booleanValue != null; |
157 | } | 161 | } |
162 | + | ||
163 | + private static boolean isAllNull(Object... args) { | ||
164 | + for (Object arg : args) { | ||
165 | + if(arg != null) { | ||
166 | + return false; | ||
167 | + } | ||
168 | + } | ||
169 | + return true; | ||
170 | + } | ||
158 | } | 171 | } |