diff --git a/pom.xml b/pom.xml
index 1611d23588f03..7763591279753 100644
--- a/pom.xml
+++ b/pom.xml
@@ -67,7 +67,7 @@
2.0.16
3.9.1
1.3.0
- 30.0.1
+ 35.0.1
2.3.1
4.0.6
0.14.0
diff --git a/presto-druid/pom.xml b/presto-druid/pom.xml
index aec5e2d885830..dde87dcd5b2dc 100644
--- a/presto-druid/pom.xml
+++ b/presto-druid/pom.xml
@@ -32,7 +32,7 @@
- org.hibernate
+ org.hibernate.validator
hibernate-validator
8.0.3.Final
@@ -41,6 +41,16 @@
jakarta.el
4.0.1
+
+ at.yawk.lz4
+ lz4-java
+ 1.10.2
+
+
+ org.mozilla
+ rhino
+ 1.8.1
+
diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/segment/PrestoQueryableIndex.java b/presto-druid/src/main/java/com/facebook/presto/druid/segment/PrestoQueryableIndex.java
new file mode 100644
index 0000000000000..24d4fa716b6fe
--- /dev/null
+++ b/presto-druid/src/main/java/com/facebook/presto/druid/segment/PrestoQueryableIndex.java
@@ -0,0 +1,170 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.facebook.presto.druid.segment;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Supplier;
+import com.google.common.base.Suppliers;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Maps;
+import org.apache.druid.collections.bitmap.BitmapFactory;
+import org.apache.druid.java.util.common.io.smoosh.SmooshedFileMapper;
+import org.apache.druid.query.OrderBy;
+import org.apache.druid.segment.DimensionHandler;
+import org.apache.druid.segment.Metadata;
+import org.apache.druid.segment.QueryableIndex;
+import org.apache.druid.segment.column.BaseColumnHolder;
+import org.apache.druid.segment.column.ColumnHolder;
+import org.apache.druid.segment.data.Indexed;
+import org.joda.time.Interval;
+
+import javax.annotation.Nullable;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+public class PrestoQueryableIndex
+ implements QueryableIndex
+{
+ private final Interval dataInterval;
+ private final List columnNames;
+ private final Indexed availableDimensions;
+ private final BitmapFactory bitmapFactory;
+ private final Map> columns;
+ private final SmooshedFileMapper fileMapper;
+ @Nullable
+ private final Metadata metadata;
+ private final Supplier