From 55c49fdc154f84cd314972c4cc6fd7c272627a83 Mon Sep 17 00:00:00 2001 From: Pratham Desai Date: Sat, 11 Mar 2023 20:51:00 -0500 Subject: [PATCH] Avoid deserialization when no columns are needed This improves performance for count(const) or count(*) queris on formats that use GenericHiveRecordCursor. --- .../io/trino/plugin/hive/GenericHiveRecordCursor.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/GenericHiveRecordCursor.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/GenericHiveRecordCursor.java index 8ac0b6a7cb22..e67c25cd8136 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/GenericHiveRecordCursor.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/GenericHiveRecordCursor.java @@ -217,11 +217,14 @@ public boolean advanceNextPosition() return false; } - // reset loaded flags - Arrays.fill(loaded, false); + // Only deserialize the value if atleast one column is required + if (types.length > 0) { + // reset loaded flags + Arrays.fill(loaded, false); - // decode value - rowData = deserializer.deserialize(value); + // decode value + rowData = deserializer.deserialize(value); + } return true; }