This packet is sent by the server as the first part of a result set. It describes the content of the DataRow packets that follow it.
It very common to use this information to guide your filter logic, but be very careful about changing anything in this packet, as that can easily cause protocol errors.
fields (List<FieldDescriptor>): the descriptions of the columns in the result set
getFieldByName(string name): returns a FieldDescriptor object for the specified field, or null if not found
Each column in the result set is described by one FieldDescriptor object.
fieldName (string): the name of the field
tableObjectID (long): the ID of the table, if the field comes from a table
schemaName (string): the name of the schema, if the field is a column in a table
tableName (string): the name of the table, if the field is a column in a table
attributeNumber (int): the index of the column in its table, if this field is a column, otherwise zero.
parentAttributeNumber (int): the attribute number of the parent field, if this is a complex type, otherwise zero.
dataTypeID (int): the ID of the data type
dataTypeSize (int): the size of the data type
nullable (boolean): true if the field is nullable
identity (boolean): true if the field is an identity column
typeModifier (int): the type modifier
formatCode (int): the format code
clone(): returns a copy of this FieldDescriptor