Hi Drill dev!
I was using drill to analyze data in some parquet files, and ran into
trouble with columns containing unsigned integers. Doing a "select
distinct" or a "group by" or even a cast was failing with an unsupported
operation error.
Adding casts for unsigned integers allowed me to cast the columns and then
group by them. I don't know if this is the ideal solution, but here is a
patch that worked for me. After this change, I was able to work with those
columns.
diff --git a/exec/java-exec/src/main/codegen/data/Casts.tdd
b/exec/java-exec/src/main/codegen/data/Casts.tdd
index f9ccbf817..29ff4dabb 100644
--- a/exec/java-exec/src/main/codegen/data/Casts.tdd
+++ b/exec/java-exec/src/main/codegen/data/Casts.tdd
@@ -19,11 +19,26 @@
{
types: [
{from: "Int", to: "BigInt", major: "Fixed"},
+ {from: "UInt1", to: "BigInt", explicit: "long", major: "Fixed"},
+ {from: "UInt2", to: "BigInt", explicit: "long", major: "Fixed"},
+ {from: "UInt4", to: "BigInt", explicit: "long", major: "Fixed"},
+ {from: "UInt8", to: "BigInt", explicit: "long", major: "Fixed"},
+
{from: "Float4", to: "Float8", major: "Fixed" },
{from: "Int", to: "Float4", major: "Fixed" },
{from: "BigInt", to: "Float4", major: "Fixed" },
+ {from: "UInt1", to: "Float4", major: "Fixed"},
+ {from: "UInt2", to: "Float4", major: "Fixed"},
+ {from: "UInt4", to: "Float4", major: "Fixed"},
+ {from: "UInt8", to: "Float4", major: "Fixed"},
+
{from: "Int", to: "Float8", major: "Fixed" },
{from: "BigInt", to: "Float8", major: "Fixed" },
+ {from: "UInt1", to: "Float8", major: "Fixed"},
+ {from: "UInt2", to: "Float8", major: "Fixed"},
+ {from: "UInt4", to: "Float8", major: "Fixed"},
+ {from: "UInt8", to: "Float8", major: "Fixed"},
+
{to: "Int", from: "BigInt", explicit: "int", major: "Fixed"},
{to: "Float4", from: "Float8" , explicit: "float", major: "Fixed"},
{to: "Int", from: "Float4" , explicit: "int", native: "float", major:
"Fixed"},
(END)