A method and apparatus for efficiently transmitting a result set. A data
server receives a data request from a client or another server. The data
server determines whether a threshold portion of the contents of each
requested row or record is being retrieved (e.g., X% of the number of
columns in a table or X% of the total amount of data in a table row). The
requested rows are retrieved in the same format in which they are stored
(e.g., within a disk block), and streamed to the client, one row at a
time. The client is then responsible for disassembling a row into its
columns, reordering them if necessary, and performing any necessary
post-processing (e.g., datatype conversion, data formatting) before
consuming the data.