This is an automated email from the ASF dual-hosted git repository.

FrankChen021 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new e61e8202121 build: detect unused parameters and local variables 
(#19821)
e61e8202121 is described below

commit e61e8202121cc15770afa5a843823d1823bcee4a
Author: Frank Chen <[email protected]>
AuthorDate: Tue Aug 4 10:20:02 2026 +0800

    build: detect unused parameters and local variables (#19821)
    
    * Add PMD checks for unused code
    
    * Fix Rabbit seek buffer filtering
---
 codestyle/pmd-ruleset.xml                          |  2 +
 .../opentelemetry/OpenTelemetryEmitter.java        |  2 +-
 .../rabbitstream/RabbitStreamRecordSupplier.java   |  7 +++-
 .../RabbitStreamRecordSupplierTest.java            | 46 ++++++++++++++++++++++
 .../druid/storage/google/GoogleTaskLogs.java       |  8 ++--
 .../overlord/sampler/InputSourceSampler.java       |  2 +-
 .../supervisor/SeekableStreamSupervisor.java       |  3 --
 .../shuffle/LocalIntermediaryDataManager.java      |  2 +-
 .../org/apache/druid/common/utils/SocketUtil.java  |  2 +-
 .../druid/frame/processor/FrameProcessors.java     |  4 +-
 .../apache/druid/java/util/common/FileUtils.java   |  2 +-
 .../java/util/common/guava/ConcatSequence.java     |  2 +-
 .../realtime/appenderator/StreamAppenderator.java  |  6 +--
 .../loading/StrategicSegmentAssigner.java          |  7 ++--
 .../druid/sql/avatica/DruidAvaticaJsonHandler.java |  2 +-
 .../sql/avatica/DruidAvaticaProtobufHandler.java   |  2 +-
 .../rule/logical/UnnestInputCleanupRule.java       |  4 +-
 .../sql/calcite/schema/InformationSchema.java      |  9 ++---
 18 files changed, 78 insertions(+), 34 deletions(-)

diff --git a/codestyle/pmd-ruleset.xml b/codestyle/pmd-ruleset.xml
index 7d7285d0a51..ef1858bf2d8 100644
--- a/codestyle/pmd-ruleset.xml
+++ b/codestyle/pmd-ruleset.xml
@@ -29,4 +29,6 @@ This ruleset defines the PMD rules for the Apache Druid 
project.
 
   <rule ref="category/java/codestyle.xml/UnnecessaryImport" />
   <rule ref="category/java/codestyle.xml/TooManyStaticImports" />
+  <rule ref="category/java/bestpractices.xml/UnusedFormalParameter" />
+  <rule ref="category/java/bestpractices.xml/UnusedLocalVariable" />
 </ruleset>
diff --git 
a/extensions-contrib/opentelemetry-emitter/src/main/java/org/apache/druid/emitter/opentelemetry/OpenTelemetryEmitter.java
 
b/extensions-contrib/opentelemetry-emitter/src/main/java/org/apache/druid/emitter/opentelemetry/OpenTelemetryEmitter.java
index 2c2691e64f0..4fbb9a02f46 100644
--- 
a/extensions-contrib/opentelemetry-emitter/src/main/java/org/apache/druid/emitter/opentelemetry/OpenTelemetryEmitter.java
+++ 
b/extensions-contrib/opentelemetry-emitter/src/main/java/org/apache/druid/emitter/opentelemetry/OpenTelemetryEmitter.java
@@ -82,7 +82,7 @@ public class OpenTelemetryEmitter implements Emitter
   {
     Context opentelemetryContext = propagator.extract(Context.current(), 
event, DRUID_CONTEXT_TEXT_MAP_GETTER);
 
-    try (Scope scope = opentelemetryContext.makeCurrent()) {
+    try (Scope ignoredScope = opentelemetryContext.makeCurrent()) {
       DateTime endTime = event.getCreatedTime();
       DateTime startTime = endTime.minusMillis(event.getValue().intValue());
 
diff --git 
a/extensions-contrib/rabbit-stream-indexing-service/src/main/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplier.java
 
b/extensions-contrib/rabbit-stream-indexing-service/src/main/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplier.java
index b2a2432fc9c..a23dd60a1d0 100644
--- 
a/extensions-contrib/rabbit-stream-indexing-service/src/main/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplier.java
+++ 
b/extensions-contrib/rabbit-stream-indexing-service/src/main/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplier.java
@@ -275,11 +275,14 @@ public class RabbitStreamRecordSupplier implements 
RecordSupplier<String, Long,
   {
     this.stopBackgroundFetch();
     // filter records in buffer and only retain ones whose partition was not 
seeked
-    BlockingQueue<OrderedPartitionableRecord<String, Long, ByteEntity>> newQ = 
new LinkedBlockingQueue<>(
+    final Set<String> partitionIds = partitions.stream()
+                                               
.map(StreamPartition::getPartitionId)
+                                               .collect(Collectors.toSet());
+    final BlockingQueue<OrderedPartitionableRecord<String, Long, ByteEntity>> 
newQ = new LinkedBlockingQueue<>(
         recordBufferSize);
 
     queue.stream()
-        .filter(x -> !streamBuilders.containsKey(x.getPartitionId()))
+        .filter(x -> !partitionIds.contains(x.getPartitionId()))
         .forEachOrdered(newQ::offer);
 
     queue = newQ;
diff --git 
a/extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplierTest.java
 
b/extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplierTest.java
index 7c6beda72cb..70501b941ef 100644
--- 
a/extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplierTest.java
+++ 
b/extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplierTest.java
@@ -27,6 +27,7 @@ import com.rabbitmq.stream.Consumer;
 import com.rabbitmq.stream.ConsumerBuilder;
 import com.rabbitmq.stream.Environment;
 import com.rabbitmq.stream.EnvironmentBuilder;
+import com.rabbitmq.stream.Message;
 import com.rabbitmq.stream.MessageHandler;
 import com.rabbitmq.stream.OffsetSpecification;
 import com.rabbitmq.stream.codec.WrapperMessageBuilder;
@@ -386,6 +387,51 @@ public class RabbitStreamRecordSupplierTest extends 
EasyMockSupport
   }
 
 
+  @Test
+  public void testSeekRetainsBufferedRecordsForOtherPartitions()
+  {
+    final StreamPartition<String> partition0 = StreamPartition.of(STREAM, 
PARTITION_ID0);
+    final StreamPartition<String> partition1 = StreamPartition.of(STREAM, 
PARTITION_ID1);
+    final Set<StreamPartition<String>> partitions = 
ImmutableSet.of(partition0, partition1);
+    final RabbitStreamRecordSupplier recordSupplier = 
makeRecordSupplierWithMockedEnvironment(uri, null);
+
+    
EasyMock.expect(environmentBuilder.uri("rabbitmq-stream://localhost:5552")).andReturn(environmentBuilder).once();
+    EasyMock.expect(environmentBuilder.build()).andStubReturn(environment);
+
+    final ConsumerBuilder consumerBuilder0 = createMock(ConsumerBuilder.class);
+    
EasyMock.expect(environment.consumerBuilder()).andReturn(consumerBuilder0).once();
+    
EasyMock.expect(consumerBuilder0.noTrackingStrategy()).andReturn(consumerBuilder0).once();
+    
EasyMock.expect(consumerBuilder0.stream(PARTITION_ID0)).andReturn(consumerBuilder0).once();
+    
EasyMock.expect(consumerBuilder0.messageHandler(recordSupplier)).andReturn(consumerBuilder0).once();
+
+    final ConsumerBuilder consumerBuilder1 = createMock(ConsumerBuilder.class);
+    
EasyMock.expect(environment.consumerBuilder()).andReturn(consumerBuilder1).once();
+    
EasyMock.expect(consumerBuilder1.noTrackingStrategy()).andReturn(consumerBuilder1).once();
+    
EasyMock.expect(consumerBuilder1.stream(PARTITION_ID1)).andReturn(consumerBuilder1).once();
+    
EasyMock.expect(consumerBuilder1.messageHandler(recordSupplier)).andReturn(consumerBuilder1).once();
+
+    replayAll();
+    recordSupplier.assign(partitions);
+
+    final WrapperMessageBuilder messageBuilder = new WrapperMessageBuilder();
+    messageBuilder.addData("record".getBytes(StandardCharsets.UTF_8));
+    final Message rabbitMessage = messageBuilder.build();
+    for (int i = 0; i < 50; i++) {
+      recordSupplier.handle(new MessageHandlerContext(i, 0, 0, PARTITION_ID0), 
rabbitMessage);
+      recordSupplier.handle(new MessageHandlerContext(i, 0, 0, PARTITION_ID1), 
rabbitMessage);
+    }
+
+    recordSupplier.seek(partition0, 10L);
+
+    final List<OrderedPartitionableRecord<String, Long, ByteEntity>> messages 
= recordSupplier.poll(0);
+    Assert.assertEquals(50, messages.size());
+    Assert.assertTrue(messages.stream().allMatch(message -> 
PARTITION_ID1.equals(message.getPartitionId())));
+
+    recordSupplier.close();
+    verifyAll();
+  }
+
+
 
   @Test
   public void testPollBothPartitions()
diff --git 
a/extensions-core/google-extensions/src/main/java/org/apache/druid/storage/google/GoogleTaskLogs.java
 
b/extensions-core/google-extensions/src/main/java/org/apache/druid/storage/google/GoogleTaskLogs.java
index 2825f403335..f162fcb62b0 100644
--- 
a/extensions-core/google-extensions/src/main/java/org/apache/druid/storage/google/GoogleTaskLogs.java
+++ 
b/extensions-core/google-extensions/src/main/java/org/apache/druid/storage/google/GoogleTaskLogs.java
@@ -119,24 +119,24 @@ public class GoogleTaskLogs implements TaskLogs
   public Optional<InputStream> streamTaskLog(final String taskid, final long 
offset) throws IOException
   {
     final String taskKey = getTaskLogKey(taskid);
-    return streamTaskFile(taskid, offset, taskKey);
+    return streamTaskFile(offset, taskKey);
   }
 
   @Override
   public Optional<InputStream> streamTaskReports(String taskid) throws 
IOException
   {
     final String taskKey = getTaskReportKey(taskid);
-    return streamTaskFile(taskid, 0, taskKey);
+    return streamTaskFile(0, taskKey);
   }
 
   @Override
   public Optional<InputStream> streamTaskStatus(String taskid) throws 
IOException
   {
     final String taskKey = getTaskStatusKey(taskid);
-    return streamTaskFile(taskid, 0, taskKey);
+    return streamTaskFile(0, taskKey);
   }
 
-  private Optional<InputStream> streamTaskFile(final String taskid, final long 
offset, String taskKey)
+  private Optional<InputStream> streamTaskFile(final long offset, String 
taskKey)
       throws IOException
   {
     try {
diff --git 
a/indexing-service/src/main/java/org/apache/druid/indexing/overlord/sampler/InputSourceSampler.java
 
b/indexing-service/src/main/java/org/apache/druid/indexing/overlord/sampler/InputSourceSampler.java
index 38a79684dcb..71afe07da87 100644
--- 
a/indexing-service/src/main/java/org/apache/druid/indexing/overlord/sampler/InputSourceSampler.java
+++ 
b/indexing-service/src/main/java/org/apache/druid/indexing/overlord/sampler/InputSourceSampler.java
@@ -127,7 +127,7 @@ public class InputSourceSampler
       );
       try (final CloseableIterator<InputRowListPlusRawValues> iterator = 
reader.sample();
            final IncrementalIndex index = 
buildIncrementalIndex(nonNullSamplerConfig, nonNullDataSchema);
-           final Closer closer1 = closer) {
+           final Closer ignoredCloser = closer) {
         List<SamplerResponseRow> responseRows = new 
ArrayList<>(nonNullSamplerConfig.getNumRows());
         int numRowsIndexed = 0;
 
diff --git 
a/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/SeekableStreamSupervisor.java
 
b/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/SeekableStreamSupervisor.java
index e2a5a4b1ccd..58f92ddaab7 100644
--- 
a/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/SeekableStreamSupervisor.java
+++ 
b/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/SeekableStreamSupervisor.java
@@ -1924,9 +1924,6 @@ public abstract class 
SeekableStreamSupervisor<PartitionIdType, SequenceOffsetTy
       }
     }
 
-    SeekableStreamIndexTaskTuningConfig ss = 
spec.getSpec().getTuningConfig().convertToTaskTuningConfig();
-    SeekableStreamSupervisorIOConfig oo = spec.getSpec().getIOConfig();
-
     // store a limited number of parse exceptions, keeping the most recent ones
     int parseErrorLimit = 
spec.getSpec().getTuningConfig().convertToTaskTuningConfig().getMaxSavedParseExceptions()
 *
                           spec.getSpec().getIOConfig().getTaskCount();
diff --git 
a/indexing-service/src/main/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManager.java
 
b/indexing-service/src/main/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManager.java
index 1974b096be2..f45e442a4bb 100644
--- 
a/indexing-service/src/main/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManager.java
+++ 
b/indexing-service/src/main/java/org/apache/druid/indexing/worker/shuffle/LocalIntermediaryDataManager.java
@@ -301,7 +301,7 @@ public class LocalIntermediaryDataManager implements 
IntermediaryDataManager
     final BucketNumberedShardSpec<?> bucketNumberedShardSpec = 
(BucketNumberedShardSpec<?>) segment.getShardSpec();
 
     //noinspection unused
-    try (final Closer resourceCloser = closer) {
+    try (final Closer ignoredCloser = closer) {
       FileUtils.mkdirp(taskTempDir);
 
       // Temporary compressed file. Will be removed when taskTempDir is 
deleted.
diff --git 
a/processing/src/main/java/org/apache/druid/common/utils/SocketUtil.java 
b/processing/src/main/java/org/apache/druid/common/utils/SocketUtil.java
index 8eb38776e9e..0eac24c83ff 100644
--- a/processing/src/main/java/org/apache/druid/common/utils/SocketUtil.java
+++ b/processing/src/main/java/org/apache/druid/common/utils/SocketUtil.java
@@ -41,7 +41,7 @@ public class SocketUtil
     int currPort = startPort;
 
     while (currPort < 0xffff) {
-      try (ServerSocket socket = new ServerSocket(currPort)) {
+      try (ServerSocket ignoredSocket = new ServerSocket(currPort)) {
         return currPort;
       }
       catch (IOException e) {
diff --git 
a/processing/src/main/java/org/apache/druid/frame/processor/FrameProcessors.java
 
b/processing/src/main/java/org/apache/druid/frame/processor/FrameProcessors.java
index 4e659b67cff..09331d9c207 100644
--- 
a/processing/src/main/java/org/apache/druid/frame/processor/FrameProcessors.java
+++ 
b/processing/src/main/java/org/apache/druid/frame/processor/FrameProcessors.java
@@ -77,8 +77,8 @@ public class FrameProcessors
       {
         if (cleanedUp.compareAndSet(false, true)) {
           //noinspection EmptyTryBlock
-          try (Closeable ignore1 = baggage;
-               Closeable ignore2 = processor::cleanup) {
+          try (Closeable ignoredBaggage = baggage;
+               Closeable ignoredCleanup = processor::cleanup) {
             // piggy-back try-with-resources semantics
           }
         }
diff --git 
a/processing/src/main/java/org/apache/druid/java/util/common/FileUtils.java 
b/processing/src/main/java/org/apache/druid/java/util/common/FileUtils.java
index f852786cc8b..7a302a5f4d2 100644
--- a/processing/src/main/java/org/apache/druid/java/util/common/FileUtils.java
+++ b/processing/src/main/java/org/apache/druid/java/util/common/FileUtils.java
@@ -264,7 +264,7 @@ public class FileUtils
     final File tmpFile = new File(tmpDir, StringUtils.format(".%s.%s", 
file.getName(), UUID.randomUUID()));
 
     //noinspection unused
-    try (final Closeable deleter = () -> 
Files.deleteIfExists(tmpFile.toPath())) {
+    try (final Closeable ignoredDeleter = () -> 
Files.deleteIfExists(tmpFile.toPath())) {
       final T retVal;
 
       try (
diff --git 
a/processing/src/main/java/org/apache/druid/java/util/common/guava/ConcatSequence.java
 
b/processing/src/main/java/org/apache/druid/java/util/common/guava/ConcatSequence.java
index 3a02d84471f..70980931b82 100644
--- 
a/processing/src/main/java/org/apache/druid/java/util/common/guava/ConcatSequence.java
+++ 
b/processing/src/main/java/org/apache/druid/java/util/common/guava/ConcatSequence.java
@@ -142,7 +142,7 @@ public class ConcatSequence<T> implements Sequence<T>
       @Override
       public void close() throws IOException
       {
-        try (Closeable toClose = yielderYielder) {
+        try (Closeable ignoredYielder = yielderYielder) {
           yielder.close();
         }
       }
diff --git 
a/server/src/main/java/org/apache/druid/segment/realtime/appenderator/StreamAppenderator.java
 
b/server/src/main/java/org/apache/druid/segment/realtime/appenderator/StreamAppenderator.java
index 4b1d2facc40..d8290aaa9b0 100644
--- 
a/server/src/main/java/org/apache/druid/segment/realtime/appenderator/StreamAppenderator.java
+++ 
b/server/src/main/java/org/apache/druid/segment/realtime/appenderator/StreamAppenderator.java
@@ -521,7 +521,7 @@ public class StreamAppenderator implements Appenderator
           tuningConfig.getIndexSpec(),
           Collections.emptyList()
       );
-      bytesCurrentlyInMemory.addAndGet(calculateSinkMemoryInUsed(retVal));
+      bytesCurrentlyInMemory.addAndGet(calculateSinkMemoryInUsed());
 
       // Add sink prior to announcing it, to ensure it is immediately 
queryable.
       addSink(identifier, retVal);
@@ -1526,7 +1526,7 @@ public class StreamAppenderator implements Appenderator
       // i.e. those that haven't been persisted for *InMemory counters, or 
pushed to deep storage for the total counter.
       rowsCurrentlyInMemory.addAndGet(-sink.getNumRowsInMemory());
       bytesCurrentlyInMemory.addAndGet(-sink.getBytesInMemory());
-      bytesCurrentlyInMemory.addAndGet(-calculateSinkMemoryInUsed(sink));
+      bytesCurrentlyInMemory.addAndGet(-calculateSinkMemoryInUsed());
       for (FireHydrant hydrant : sink) {
         // Decrement memory used by all Memory Mapped Hydrant
         if (!hydrant.equals(sink.getCurrHydrant())) {
@@ -1801,7 +1801,7 @@ public class StreamAppenderator implements Appenderator
     return total;
   }
 
-  private int calculateSinkMemoryInUsed(Sink sink)
+  private int calculateSinkMemoryInUsed()
   {
     if (skipBytesInMemoryOverheadCheck) {
       return 0;
diff --git 
a/server/src/main/java/org/apache/druid/server/coordinator/loading/StrategicSegmentAssigner.java
 
b/server/src/main/java/org/apache/druid/server/coordinator/loading/StrategicSegmentAssigner.java
index f65ed4c46f4..3fde88fdea6 100644
--- 
a/server/src/main/java/org/apache/druid/server/coordinator/loading/StrategicSegmentAssigner.java
+++ 
b/server/src/main/java/org/apache/druid/server/coordinator/loading/StrategicSegmentAssigner.java
@@ -807,7 +807,7 @@ public class StrategicSegmentAssigner implements 
SegmentActionHandler
     // Drop as many replicas as possible from decommissioning servers
     int remainingNumToDrop = numToDrop;
     int numDropsQueued =
-        dropReplicasFromServers(remainingNumToDrop, segment, 
eligibleDyingServers.iterator(), tier);
+        dropReplicasFromServers(remainingNumToDrop, segment, 
eligibleDyingServers.iterator());
 
     // Drop replicas from active servers if required
     if (numToDrop > numDropsQueued) {
@@ -816,7 +816,7 @@ public class StrategicSegmentAssigner implements 
SegmentActionHandler
           (useRoundRobinAssignment || eligibleLiveServers.size() <= 
remainingNumToDrop)
           ? eligibleLiveServers.iterator()
           : strategy.findServersToDropSegment(segment, new 
ArrayList<>(eligibleLiveServers));
-      numDropsQueued += dropReplicasFromServers(remainingNumToDrop, segment, 
serverIterator, tier);
+      numDropsQueued += dropReplicasFromServers(remainingNumToDrop, segment, 
serverIterator);
     }
 
     return numDropsQueued;
@@ -829,8 +829,7 @@ public class StrategicSegmentAssigner implements 
SegmentActionHandler
   private int dropReplicasFromServers(
       int numToDrop,
       DataSegment segment,
-      Iterator<ServerHolder> serverIterator,
-      String tier
+      Iterator<ServerHolder> serverIterator
   )
   {
     int numDropsQueued = 0;
diff --git 
a/sql/src/main/java/org/apache/druid/sql/avatica/DruidAvaticaJsonHandler.java 
b/sql/src/main/java/org/apache/druid/sql/avatica/DruidAvaticaJsonHandler.java
index 2e80bfff4e7..3f20195de39 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/avatica/DruidAvaticaJsonHandler.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/avatica/DruidAvaticaJsonHandler.java
@@ -69,7 +69,7 @@ public class DruidAvaticaJsonHandler extends 
DruidAvaticaHandler
     String remoteAddr = Request.getRemoteAddr(request);
     DruidMeta.setThreadLocalRemoteAddress(remoteAddr);
 
-    try (Timer.Context ctx = this.requestTimer.start()) {
+    try (Timer.Context ignoredContext = this.requestTimer.start()) {
       if 
(AVATICA_PATH_NO_TRAILING_SLASH.equals(StringUtils.maybeRemoveTrailingSlash(requestURI)))
 {
         response.getHeaders().put("Content-Type", 
"application/json;charset=utf-8");
 
diff --git 
a/sql/src/main/java/org/apache/druid/sql/avatica/DruidAvaticaProtobufHandler.java
 
b/sql/src/main/java/org/apache/druid/sql/avatica/DruidAvaticaProtobufHandler.java
index 1aee0db7729..be646c10cf5 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/avatica/DruidAvaticaProtobufHandler.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/avatica/DruidAvaticaProtobufHandler.java
@@ -73,7 +73,7 @@ public class DruidAvaticaProtobufHandler extends 
DruidAvaticaHandler
 
     try {
       if 
(AVATICA_PATH_NO_TRAILING_SLASH.equals(StringUtils.maybeRemoveTrailingSlash(requestURI)))
 {
-        try (Timer.Context ctx = this.requestTimer.start()) {
+        try (Timer.Context ignoredContext = this.requestTimer.start()) {
           if (!"POST".equals(request.getMethod())) {
             response.setStatus(405);
             response.write(
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/rule/logical/UnnestInputCleanupRule.java
 
b/sql/src/main/java/org/apache/druid/sql/calcite/rule/logical/UnnestInputCleanupRule.java
index 6b3e7aac5ac..97c2b6981c8 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/rule/logical/UnnestInputCleanupRule.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/rule/logical/UnnestInputCleanupRule.java
@@ -83,7 +83,7 @@ public class UnnestInputCleanupRule extends RelOptRule 
implements SubstitutionRu
 
     newProjects.set(inputIndex, null);
 
-    RexNode newUnnestExpr = unnestInput.accept(new 
ExpressionPullerRexShuttle(newProjects, inputIndex));
+    RexNode newUnnestExpr = unnestInput.accept(new 
ExpressionPullerRexShuttle(newProjects));
 
     if (newUnnestExpr instanceof RexInputRef) {
       // this won't make it simpler
@@ -142,7 +142,7 @@ public class UnnestInputCleanupRule extends RelOptRule 
implements SubstitutionRu
   {
     private final List<RexNode> projects;
 
-    private ExpressionPullerRexShuttle(List<RexNode> projects, int 
replaceableIndex)
+    private ExpressionPullerRexShuttle(List<RexNode> projects)
     {
       this.projects = projects;
     }
diff --git 
a/sql/src/main/java/org/apache/druid/sql/calcite/schema/InformationSchema.java 
b/sql/src/main/java/org/apache/druid/sql/calcite/schema/InformationSchema.java
index a9e3d2e31d2..94e11de1c72 100644
--- 
a/sql/src/main/java/org/apache/druid/sql/calcite/schema/InformationSchema.java
+++ 
b/sql/src/main/java/org/apache/druid/sql/calcite/schema/InformationSchema.java
@@ -377,8 +377,7 @@ public class InformationSchema extends AbstractSchema
                                       return generateColumnMetadata(
                                           schemaName,
                                           tableName,
-                                           table.getRowType(typeFactory),
-                                          typeFactory
+                                          table.getRowType(typeFactory)
                                       );
                                     }
                                   }
@@ -395,8 +394,7 @@ public class InformationSchema extends AbstractSchema
                                           return generateColumnMetadata(
                                               schemaName,
                                               functionName,
-                                              
viewMacro.apply(Collections.emptyList()).getRowType(typeFactory),
-                                              typeFactory
+                                              
viewMacro.apply(Collections.emptyList()).getRowType(typeFactory)
                                           );
                                         }
                                         catch (Exception e) {
@@ -442,8 +440,7 @@ public class InformationSchema extends AbstractSchema
     private Iterable<Object[]> generateColumnMetadata(
         final String schemaName,
         final String tableName,
-        final RelDataType tableSchema,
-        final RelDataTypeFactory typeFactory
+        final RelDataType tableSchema
     )
     {
       return FluentIterable


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

Reply via email to