Patent ID: 8538969

Claim:
A method, comprising: performing, by an electronic device: receiving a data set comprising a plurality of rows of data, each row of the plurality of rows comprising: one or more fields, each comprising a respective value, and a respective row identifier; identifying, for each field of the one or more fields, one or more unique values corresponding to the field; and for each given field of the one or more fields, and for each given identified value of the one or more unique values: generating a list of row identifiers, wherein each row identifier in the list of row identifiers corresponds to a row in the data set comprising the given identified value within the given field; identifying a contiguous range of rows within the list of row identifiers containing the unique value; identifying a start row number comprising a row number of a first row of the contiguous range of rows containing the unique value; identifying an end row number comprising a row number of a last row of the contiguous range of rows containing the unique value; generating a range value identifying the contiguous range of rows containing the unique value, wherein the range value comprises the start row number and the end row number and does not comprises row numbers of rows between the first row and the last row of the contiguous range of rows; generating one or more compressed lists, wherein for at least one of the contiguous range of rows identified, the one or more compressed lists comprise a single row representative of the contiguous range of rows, wherein the single row comprises: the unique value contained in the contiguous range of rows, and the range value identifying the contiguous range of rows, and wherein at least one compressed list of the one or more compressed lists comprises at least one individual row that is representative of two or more rows of the listing of the plurality of rows of data of the data set; and converting at least one of the start and end row numbers to an offset, wherein said converting comprises: converting at least one end row number to an offset based on a corresponding start row number; and generating a compressed representation of the data set, wherein the compressed representation comprises: for each field, an indication of each unique value of that field in the data set, and for said each unique value, an indication of the list of row identifiers having the unique value.