PARQUET-2344: Bump to Thrift 0.19.0 (#214)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 76767e7..e0deddb 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -40,8 +40,8 @@
           sudo apt-get update -qq
           sudo apt-get install -qq protobuf-compiler
           sudo apt-get install -qq libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev
-          wget -qO- https://archive.apache.org/dist/thrift/0.16.0/thrift-0.16.0.tar.gz | tar zxf -
-          cd thrift-0.16.0/
+          wget -qO- https://archive.apache.org/dist/thrift/0.19.0/thrift-0.19.0.tar.gz | tar zxf -
+          cd thrift-0.19.0/
           chmod +x ./configure
           ./configure --disable-libs
           sudo make install
diff --git a/pom.xml b/pom.xml
index d9e3d5c..dd695a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,7 +87,7 @@
     <maven.compiler.target>1.8</maven.compiler.target>
     <shade.prefix>shaded.parquet</shade.prefix>
     <thrift.executable>thrift</thrift.executable>
-    <thrift.version>0.16.0</thrift.version>
+    <thrift.version>0.19.0</thrift.version>
     <thrift-maven-plugin.version>0.10.0</thrift-maven-plugin.version>
   </properties>
 
diff --git a/src/main/java/org/apache/parquet/format/InterningProtocol.java b/src/main/java/org/apache/parquet/format/InterningProtocol.java
index 90a1170..b6cbef4 100644
--- a/src/main/java/org/apache/parquet/format/InterningProtocol.java
+++ b/src/main/java/org/apache/parquet/format/InterningProtocol.java
@@ -20,6 +20,7 @@
 package org.apache.parquet.format;
 
 import java.nio.ByteBuffer;
+import java.util.UUID;
 
 import org.apache.thrift.TException;
 import org.apache.thrift.protocol.TField;
@@ -47,179 +48,233 @@
     this.delegate = delegate;
   }
 
+  @Override
   public TTransport getTransport() {
     return delegate.getTransport();
   }
 
+  @Override
   public void writeMessageBegin(TMessage message) throws TException {
     delegate.writeMessageBegin(message);
   }
 
+  @Override
   public void writeMessageEnd() throws TException {
     delegate.writeMessageEnd();
   }
 
+  @Override
   public int hashCode() {
     return delegate.hashCode();
   }
 
+  @Override
   public void writeStructBegin(TStruct struct) throws TException {
     delegate.writeStructBegin(struct);
   }
 
+  @Override
   public void writeStructEnd() throws TException {
     delegate.writeStructEnd();
   }
 
+  @Override
   public void writeFieldBegin(TField field) throws TException {
     delegate.writeFieldBegin(field);
   }
 
+  @Override
   public void writeFieldEnd() throws TException {
     delegate.writeFieldEnd();
   }
 
+  @Override
   public void writeFieldStop() throws TException {
     delegate.writeFieldStop();
   }
 
+  @Override
   public void writeMapBegin(TMap map) throws TException {
     delegate.writeMapBegin(map);
   }
 
+  @Override
   public void writeMapEnd() throws TException {
     delegate.writeMapEnd();
   }
 
+  @Override
   public void writeListBegin(TList list) throws TException {
     delegate.writeListBegin(list);
   }
 
+  @Override
   public void writeListEnd() throws TException {
     delegate.writeListEnd();
   }
 
+  @Override
   public void writeSetBegin(TSet set) throws TException {
     delegate.writeSetBegin(set);
   }
 
+  @Override
   public void writeSetEnd() throws TException {
     delegate.writeSetEnd();
   }
 
+  @Override
   public void writeBool(boolean b) throws TException {
     delegate.writeBool(b);
   }
 
+  @Override
   public void writeByte(byte b) throws TException {
     delegate.writeByte(b);
   }
 
+  @Override
   public void writeI16(short i16) throws TException {
     delegate.writeI16(i16);
   }
 
+  @Override
   public void writeI32(int i32) throws TException {
     delegate.writeI32(i32);
   }
 
+  @Override
   public void writeI64(long i64) throws TException {
     delegate.writeI64(i64);
   }
 
+  @Override
+  public void writeUuid(UUID uuid) throws TException {
+    delegate.writeUuid(uuid);
+  }
+
+  @Override
   public void writeDouble(double dub) throws TException {
     delegate.writeDouble(dub);
   }
 
+  @Override
   public void writeString(String str) throws TException {
     delegate.writeString(str);
   }
 
+  @Override
   public void writeBinary(ByteBuffer buf) throws TException {
     delegate.writeBinary(buf);
   }
 
+  @Override
   public TMessage readMessageBegin() throws TException {
     return delegate.readMessageBegin();
   }
 
+  @Override
   public void readMessageEnd() throws TException {
     delegate.readMessageEnd();
   }
 
+  @Override
   public TStruct readStructBegin() throws TException {
     return delegate.readStructBegin();
   }
 
+  @Override
   public void readStructEnd() throws TException {
     delegate.readStructEnd();
   }
 
+  @Override
   public TField readFieldBegin() throws TException {
     return delegate.readFieldBegin();
   }
 
+  @Override
   public void readFieldEnd() throws TException {
     delegate.readFieldEnd();
   }
 
+  @Override
   public TMap readMapBegin() throws TException {
     return delegate.readMapBegin();
   }
 
+  @Override
   public void readMapEnd() throws TException {
     delegate.readMapEnd();
   }
 
+  @Override
   public TList readListBegin() throws TException {
     return delegate.readListBegin();
   }
 
+  @Override
   public void readListEnd() throws TException {
     delegate.readListEnd();
   }
 
+  @Override
   public TSet readSetBegin() throws TException {
     return delegate.readSetBegin();
   }
 
+  @Override
   public void readSetEnd() throws TException {
     delegate.readSetEnd();
   }
 
+  @Override
   public boolean equals(Object obj) {
     return delegate.equals(obj);
   }
 
+  @Override
   public boolean readBool() throws TException {
     return delegate.readBool();
   }
 
+  @Override
   public byte readByte() throws TException {
     return delegate.readByte();
   }
 
+  @Override
   public short readI16() throws TException {
     return delegate.readI16();
   }
 
+  @Override
   public int readI32() throws TException {
     return delegate.readI32();
   }
 
+  @Override
   public long readI64() throws TException {
     return delegate.readI64();
   }
 
+  @Override
+  public UUID readUuid() throws TException {
+    return delegate.readUuid();
+  }
+
+  @Override
   public double readDouble() throws TException {
     return delegate.readDouble();
   }
 
+  @Override
   public String readString() throws TException {
     // this is where we intern the strings
     return delegate.readString().intern();
   }
 
+  @Override
   public ByteBuffer readBinary() throws TException {
     return delegate.readBinary();
   }
@@ -229,10 +284,12 @@
     return delegate.getMinSerializedSize(b);
   }
 
+  @Override
   public void reset() {
     delegate.reset();
   }
 
+  @Override
   public String toString() {
     return delegate.toString();
   }