Currently ORC Zlib is slow because several compression strategies ZLib uses is already done by ORC in itself (dictionary, RLE, bit-packing).
We need to pick between Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED and Z_DEFAULT_STRATEGY according to column stream type.
For instance an RLE_V2 stream could a use Z_FILTERED compression without invoking the rest of the strategies.
The string streams can use Z_FIXED compression strategies and so on.
The core limitation to stick to retain compatibility with the default decompressor, so that these are automatically backward compatible.