GitHub user vchekan opened a pull request:
https://github.com/apache/thrift/pull/1462
Add seek function to TCompactInputProtocol
When Thrift is used in encoding which combine manual and Thrift
serialization, such as Apache Parquet then it is required to be able to
position within a file manually.
https://github.com/apache/parquet-format
As TCompactInputProtocol owns value of transport, it is not possible to
access it outside of TCompactInputProtocol and perform seek operation.
This patch implements Seek trait for transports which support it.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/vchekan/thrift master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/thrift/pull/1462.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1462
----
commit 3be8277c5a1a81058bd9457d9de000f6d6fb6528
Author: Vadim Chekan <kot.begemot@...>
Date: 2018-01-06T04:12:47Z
Added "seek" implementation to transports
In complex applications, such as Apache Parquet, reading data consist of
mixture of manualy seeking offset and deserailizing object at given offset. As
protocol owns transport value, it is impossible to access transport to call
seek() function.
This patch adds io::Seek trait implementation to thrift's
TCompactInputProtocol protocols.
commit a5231584f1929b3a63a5ced71122d48dca5a4aaf
Author: Vadim Chekan <kot.begemot@...>
Date: 2018-01-06T04:23:44Z
Use techically more correct type.
----
---