Copilot commented on code in PR #18562:
URL: https://github.com/apache/pinot/pull/18562#discussion_r3285623110


##########
pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/PercentileSmartTDigestAggregationFunction.java:
##########
@@ -167,15 +167,15 @@ private void aggregateIntoValueList(int length, 
AggregationResultHolder aggregat
     if (blockValSet.isSingleValue()) {
       double[] doubleValues = blockValSet.getDoubleValuesSV();
       forEachNotNull(length, blockValSet, (from, toEx) ->
-        valueList.addElements(valueList.size(), doubleValues, from, toEx - 
from)
+          valueList.addElements(valueList.size(), doubleValues, from, toEx - 
from)
       );
     } else {
       double[][] doubleValues = blockValSet.getDoubleValuesMV();
       forEachNotNull(length, blockValSet, (from, toEx) -> {
-          for (int i = 0; i < length; i++) {
-            valueList.addElements(valueList.size(), doubleValues[i]);
-          }
+        for (int i = 0; i < length; i++) {
+          valueList.addElements(valueList.size(), doubleValues[i]);
         }
+      }
       );

Review Comment:
   In the multi-value branch of aggregateIntoValueList(), the inner loop 
iterates `i` from 0..length for every (from,toEx) range passed by 
forEachNotNull. This ignores the (from,toEx) bounds and will add values 
multiple times (and can skew results/perf dramatically). Iterate only over the 
current non-null range (from..toEx) like the other aggregation paths.



##########
pinot-core/src/test/java/org/apache/pinot/core/operator/docidsets/OrDocIdSetTest.java:
##########
@@ -38,100 +38,100 @@
 
 
 public class OrDocIdSetTest {
-    @Test
+  @Test
     public void 
iteratorReturnsBitmapDocIdIteratorWhenOnlyIndexBasedIteratorsExist() {
         // All the idsets are index-base BlockDocIdIterator 
(SortedDocIdIterator or BitmapBasedDocIdIterator)
-        SortedDocIdSet sortedDocIdSet = mock(SortedDocIdSet.class);
-        SortedDocIdIterator sortedIterator = mock(SortedDocIdIterator.class);
-        BitmapDocIdSet bitmapDocIdSet = mock(BitmapDocIdSet.class);
-        BitmapDocIdIterator bitmapIterator = mock(BitmapDocIdIterator.class);
-
-        when(sortedDocIdSet.iterator()).thenReturn(sortedIterator);
-        when(bitmapDocIdSet.iterator()).thenReturn(bitmapIterator);
-        
when(sortedIterator.getDocIdRanges()).thenReturn(Collections.singletonList(new 
Pairs.IntPair(1, 10)));
-        when(bitmapIterator.getDocIds()).thenReturn(new 
MutableRoaringBitmap());
-
-        List<BlockDocIdSet> docIdSets = Arrays.asList(sortedDocIdSet, 
bitmapDocIdSet);
-        OrDocIdSet orDocIdSet = new OrDocIdSet(docIdSets, 100);
-        BlockDocIdIterator iterator = orDocIdSet.iterator();
+    SortedDocIdSet sortedDocIdSet = mock(SortedDocIdSet.class);
+    SortedDocIdIterator sortedIterator = mock(SortedDocIdIterator.class);

Review Comment:
   This test file still has inconsistent indentation (e.g., method 
declarations/bodies are indented 4+ spaces under the class). With the new 
2-space Indentation check enabled, this will likely fail checkstyle. Please 
reformat the methods and their bodies to match the enforced 2-space indentation 
(annotation and method at +2, method body at +4, etc.).



##########
pinot-core/src/main/java/org/apache/pinot/core/api/ServiceAutoDiscoveryFeature.java:
##########
@@ -70,25 +70,25 @@
  * </code>
  */
 public class ServiceAutoDiscoveryFeature implements Feature {
-    private static final Logger LOGGER = 
LoggerFactory.getLogger(ServiceAutoDiscoveryFeature.class);
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(ServiceAutoDiscoveryFeature.class);
 
-    @Inject
+  @Inject
     ServiceLocator _serviceLocator;
 
-    @Override
+  @Override
     public boolean configure(FeatureContext context) {
-        DynamicConfigurationService dcs =
+    DynamicConfigurationService dcs =
                 _serviceLocator.getService(DynamicConfigurationService.class);
-        Populator populator = dcs.getPopulator();
-        try {
+    Populator populator = dcs.getPopulator();
+    try {

Review Comment:
   Indentation in this class is inconsistent (e.g., the injected field and 
configure() method are indented deeper than the class level, and the wrapped 
assignment/calls have excessive leading spaces). With the new Indentation check 
enabled, this is likely to fail checkstyle; please align members/methods to 
2-space indentation and wrap continuation lines using the configured 
lineWrappingIndentation.



##########
pinot-core/src/main/java/org/apache/pinot/core/common/ObjectSerDeUtils.java:
##########
@@ -733,21 +733,21 @@ public VarianceTuple deserialize(ByteBuffer byteBuffer) {
 
   public static final ObjectSerDe<PinotFourthMoment> 
PINOT_FOURTH_MOMENT_OBJECT_SER_DE
       = new ObjectSerDe<PinotFourthMoment>() {
-    @Override
+        @Override
     public byte[] serialize(PinotFourthMoment value) {
-      return value.serialize();
-    }
+          return value.serialize();
+        }
 
-    @Override
+        @Override
     public PinotFourthMoment deserialize(byte[] bytes) {

Review Comment:
   The anonymous ObjectSerDe implementation for 
PINOT_FOURTH_MOMENT_OBJECT_SER_DE has inconsistent indentation: the `@Override` 
annotations and method signatures are indented differently from the surrounding 
anonymous classes. With Indentation enforcement enabled, this block is likely 
to fail checkstyle; please align the indentation within the anonymous class 
consistently (annotations and methods at the same nesting level).



##########
pinot-common/src/main/java/org/apache/pinot/common/utils/config/QueryWorkloadConfigUtils.java:
##########
@@ -217,12 +217,12 @@ public static List<String> 
validateQueryWorkloadConfig(QueryWorkloadConfig confi
         } else {
           long enforcementCpu = enforcementProfile.getCpuCostNs();
           long enforcementMem = enforcementProfile.getMemoryCostBytes();
-           if (enforcementCpu <= 0) {
-             errors.add(prefix + ".enforcementProfile.cpuCostNs has to 
positive");
-           }
-           if (enforcementMem <= 0) {
-             errors.add(prefix + ".enforcementProfile.memoryCostBytes has to 
positive");
-           }
+          if (enforcementCpu <= 0) {
+            errors.add(prefix + ".enforcementProfile.cpuCostNs has to 
positive");
+          }
+          if (enforcementMem <= 0) {
+            errors.add(prefix + ".enforcementProfile.memoryCostBytes has to 
positive");

Review Comment:
   These validation error messages have grammatical issues: "has to positive" 
should be "has to be positive" (or similar). Since these strings are surfaced 
to users/operators when configs are invalid, please fix the wording for clarity.
   



##########
config/checkstyle.xml:
##########
@@ -46,6 +46,13 @@
     <module name="AnnotationUseStyle">
       <property name="elementStyle" value="ignore"/>
     </module>
+    <!-- Method annotations belong on their own line before modifiers -->
+    <module name="AnnotationLocation">
+      <property name="tokens" value="METHOD_DEF"/>
+      <property name="allowSamelineSingleParameterlessAnnotation" 
value="false"/>
+      <property name="allowSamelineParameterizedAnnotation" value="false"/>
+      <property name="allowSamelineMultipleAnnotations" value="false"/>
+    </module>

Review Comment:
   The PR description focuses on adding the Checkstyle Indentation rule, but 
this change also adds an AnnotationLocation rule for METHOD_DEF (disallowing 
same-line method annotations). If this is intended, please update the PR 
description to mention the additional enforcement so reviewers/users understand 
the scope change.



##########
pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/BaseBooleanAggregationFunction.java:
##########
@@ -120,12 +120,12 @@ public void aggregate(int length, AggregationResultHolder 
aggregationResultHolde
 
       Integer aggResult = foldNotNull(length, blockValSet, 
aggregationResultHolder.getResult(),
           (acum, from, to) -> {
-        int innerBool = acum == null ? _merger.getDefaultValue() : acum;
-        for (int i = from; i < to; i++) {
-          innerBool = _merger.merge(innerBool, bools[i]);
-        }
-        return innerBool;
-      });
+          int innerBool = acum == null ? _merger.getDefaultValue() : acum;
+          for (int i = from; i < to; i++) {
+            innerBool = _merger.merge(innerBool, bools[i]);
+          }
+          return innerBool;
+        });

Review Comment:
   The block lambda passed to foldNotNull() is not indented relative to the 
opening `{` (the statements inside the lambda align with the lambda line). With 
Indentation enforcement enabled (basicOffset=2), the statements inside the 
lambda block should be indented one level deeper than the line containing the 
`{` to avoid checkstyle violations.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to