1. A method for compressing results of a join query, the method comprising: determining a join order of a result set from the join query, the result set comprising a plurality of tuples; maintaining a nested hierarchy of dictionaries based on the join order; using, by a processor, the nested hierarchy of dictionaries to encode each of the tuples of the result set so as to produce an encode tuple; and transmitting each of the encoded tuples to a client system.