petermarshallio opened a new issue, #16709:
URL: https://github.com/apache/druid/issues/16709

   Running the following SQL-based ingestion, which includes systemFields, 
returns an exception `org.apache.druid.segment.transform.TransformedInputRow 
and org.apache.druid.data.input.ListBasedInputRow are in unnamed module of 
loader 'app'`
   
   Props to @317brian for originally finding this issue.
   
   ### Affected Version
   
   Druid 30.
   
   ### Description
   
   Run the following SQL in Druid 30:
   
   ```sql
   REPLACE INTO "example-taxitrips-systemfields" OVERWRITE ALL
   WITH "ext" AS (
     SELECT *
     FROM TABLE(EXTERN('{
               "type":"http",
               "systemFields":["__file_uri","__file_path"],
               "uris":
                   
["https://static.imply.io/example-data/trips/trips_xaa.csv.gz";,
                   
"https://static.imply.io/example-data/trips/trips_xac.csv.gz"]}', 
'{"type":"csv","findColumnsFromHeader":false,"columns":["trip_id","vendor_id","pickup_datetime","dropoff_datetime","store_and_fwd_flag","rate_code_id","pickup_longitude","pickup_latitude","dropoff_longitude","dropoff_latitude","passenger_count","trip_distance","fare_amount","extra","mta_tax","tip_amount","tolls_amount","ehail_fee","improvement_surcharge","total_amount","payment_type","trip_type","pickup","dropoff","cab_type","precipitation","snow_depth","snowfall","max_temperature","min_temperature","average_wind_speed","pickup_nyct2010_gid","pickup_ctlabel","pickup_borocode","pickup_boroname","pickup_ct2010","pickup_boroct2010","pickup_cdeligibil","pickup_ntacode","pickup_ntaname","pickup_puma","dropoff_nyct2010_gid","dropoff_ctlabel","dropoff_borocode","dropoff_boroname","dropoff_ct2010","dropoff_boroct2010","dropoff_cdeligibil","dropoff_ntacode","dropoff_ntaname","dropoff_puma"]}'))
 EXTEND ("__fil
 e_uri" VARCHAR, "__file_path" VARCHAR,
         "trip_id" BIGINT, "vendor_id" BIGINT, "pickup_datetime" VARCHAR, 
"dropoff_datetime" VARCHAR, "store_and_fwd_flag" VARCHAR, "rate_code_id" 
BIGINT, "pickup_longitude" DOUBLE, "pickup_latitude" DOUBLE, 
"dropoff_longitude" DOUBLE, "dropoff_latitude" DOUBLE, "passenger_count" 
BIGINT, "trip_distance" DOUBLE, "fare_amount" DOUBLE, "extra" DOUBLE, "mta_tax" 
DOUBLE, "tip_amount" DOUBLE, "tolls_amount" DOUBLE, "ehail_fee" VARCHAR, 
"improvement_surcharge" VARCHAR, "total_amount" DOUBLE, "payment_type" BIGINT, 
"trip_type" VARCHAR, "pickup" VARCHAR, "dropoff" VARCHAR, "cab_type" VARCHAR, 
"precipitation" DOUBLE, "snow_depth" BIGINT, "snowfall" DOUBLE, 
"max_temperature" BIGINT, "min_temperature" BIGINT, "average_wind_speed" 
DOUBLE, "pickup_nyct2010_gid" BIGINT, "pickup_ctlabel" BIGINT, 
"pickup_borocode" BIGINT, "pickup_boroname" VARCHAR, "pickup_ct2010" BIGINT, 
"pickup_boroct2010" BIGINT, "pickup_cdeligibil" VARCHAR, "pickup_ntacode" 
VARCHAR, "pickup_ntaname" VARCHAR, "pickup_puma" BIGINT,
  "dropoff_nyct2010_gid" BIGINT, "dropoff_ctlabel" BIGINT, "dropoff_borocode" 
BIGINT, "dropoff_boroname" VARCHAR, "dropoff_ct2010" BIGINT, 
"dropoff_boroct2010" BIGINT, "dropoff_cdeligibil" VARCHAR, "dropoff_ntacode" 
VARCHAR, "dropoff_ntaname" VARCHAR, "dropoff_puma" BIGINT)
   )
   SELECT
     TIME_PARSE(TRIM("pickup_datetime")) AS "__time",
     "__file_uri",
     "__file_path",
     "trip_id",
     "vendor_id",
     "dropoff_datetime",
     "rate_code_id",
     "passenger_count",
     "trip_distance",
     "fare_amount",
     "extra",
     "mta_tax",
     "tip_amount",
     "tolls_amount",
     "total_amount",
     "payment_type"
   FROM "ext"
   WHERE "passenger_count" = 5
   PARTITIONED BY DAY
   ```
   
   The following exception is thrown:
   
   ```
   java.lang.RuntimeException: java.lang.ClassCastException: class 
org.apache.druid.segment.transform.TransformedInputRow cannot be cast to class 
org.apache.druid.data.input.ListBasedInputRow 
(org.apache.druid.segment.transform.TransformedInputRow and 
org.apache.druid.data.input.ListBasedInputRow are in unnamed module of loader 
'app')
        at org.apache.druid.java.util.common.Either.valueOrThrow(Either.java:95)
        at 
org.apache.druid.frame.processor.FrameProcessorExecutor$1ExecutorRunnable.runProcessorNow(FrameProcessorExecutor.java:259)
        at 
org.apache.druid.frame.processor.FrameProcessorExecutor$1ExecutorRunnable.run(FrameProcessorExecutor.java:138)
        at org.apache.druid.msq.exec.WorkerImpl$1$2.run(WorkerImpl.java:836)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at 
org.apache.druid.query.PrioritizedListenableFutureTask.run(PrioritizedExecutorService.java:259)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:840)
   Caused by: java.lang.ClassCastException: class 
org.apache.druid.segment.transform.TransformedInputRow cannot be cast to class 
org.apache.druid.data.input.ListBasedInputRow 
(org.apache.druid.segment.transform.TransformedInputRow and 
org.apache.druid.data.input.ListBasedInputRow are in unnamed module of loader 
'app')
        at 
org.apache.druid.data.input.ListBasedInputRowAdapter.lambda$columnFunction$1(ListBasedInputRowAdapter.java:57)
        at 
org.apache.druid.segment.RowBasedColumnSelectorFactory$3.updateCurrentValue(RowBasedColumnSelectorFactory.java:515)
        at 
org.apache.druid.segment.RowBasedColumnSelectorFactory$3.updateCurrentValueAsNumber(RowBasedColumnSelectorFactory.java:530)
        at 
org.apache.druid.segment.RowBasedColumnSelectorFactory$3.isNull(RowBasedColumnSelectorFactory.java:463)
        at 
org.apache.druid.segment.filter.ValueMatchers$3.matches(ValueMatchers.java:244)
        at 
org.apache.druid.segment.RowBasedCursor.advanceToMatchingRow(RowBasedCursor.java:138)
        at 
org.apache.druid.segment.RowBasedCursor.<init>(RowBasedCursor.java:85)
        at 
org.apache.druid.segment.RowBasedStorageAdapter.lambda$makeCursors$0(RowBasedStorageAdapter.java:205)
        at com.google.common.collect.Iterators$6.transform(Iterators.java:828)
        at 
com.google.common.collect.TransformedIterator.next(TransformedIterator.java:52)
        at 
org.apache.druid.java.util.common.guava.BaseSequence.toYielder(BaseSequence.java:71)
        at 
org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
        at 
org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
        at 
org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
        at 
org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
        at 
org.apache.druid.java.util.common.guava.Yielders.each(Yielders.java:32)
        at 
org.apache.druid.msq.querykit.scan.ScanQueryFrameProcessor.runWithSegment(ScanQueryFrameProcessor.java:261)
        at 
org.apache.druid.msq.querykit.BaseLeafFrameProcessor.runIncrementally(BaseLeafFrameProcessor.java:88)
        at 
org.apache.druid.msq.querykit.scan.ScanQueryFrameProcessor.runIncrementally(ScanQueryFrameProcessor.java:163)
        at 
org.apache.druid.frame.processor.FrameProcessors$1FrameProcessorWithBaggage.runIncrementally(FrameProcessors.java:75)
        at 
org.apache.druid.frame.processor.FrameProcessorExecutor$1ExecutorRunnable.runProcessorNow(FrameProcessorExecutor.java:230)
        ... 8 more
   ```
   
   Druid 29 succeeds without error.
   
   Initial check by @clintropolis suggests it may relate to 
https://github.com/apache/druid/pull/15681.


-- 
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