/// <summary>
 /// Gets flags of a specified field.
 /// </summary>
 /// <param name="fieldIndex">An index of the field.</param>
 /// <returns>The field length or 0.</returns>
 public ColumnFlags GetFieldFlags(int fieldIndex)
 {
     if (!CheckFieldIndex(fieldIndex))
     {
         return(0);
     }
     return(MySqlDataReaderHelper.colFlags(MySqlDataReaderHelper.fields_index(MySqlDataReaderHelper.ResultSet((MySqlDataReader)Reader), fieldIndex)));  // ((MySqlDataReader)Reader).GetFieldFlags(fieldIndex);
 }
        /// <summary>
        /// field RealTableName
        /// </summary>
        /// <param name="fieldIndex"></param>
        /// <returns></returns>
        public string GetRealTableName(int fieldIndex)
        {
            if (!CheckFieldIndex(fieldIndex))
            {
                return(null);
            }

            return(MySqlDataReaderHelper.RealTableName(MySqlDataReaderHelper.fields_index(MySqlDataReaderHelper.ResultSet((MySqlDataReader)Reader), fieldIndex)));  //((MySqlDataReader)Reader).GetRealTableName(fieldIndex);
        }
        /// <summary>
        /// Collect additional information about current row of Reader.
        /// </summary>
        /// <returns>An array of <see cref="FieldCustomData"/>.</returns>
        protected override object GetCustomData()
        {
            MySqlDataReader my_reader = (MySqlDataReader)Reader;

            var data = new FieldCustomData[my_reader.FieldCount];

            var resultset = MySqlDataReaderHelper.ResultSet(my_reader);

            for (int i = 0; i < my_reader.FieldCount; i++)
            {
                var field = MySqlDataReaderHelper.fields_index(resultset, i);

                data[i] = new FieldCustomData()
                {
                    Flags         = MySqlDataReaderHelper.colFlags(field),      //my_reader.GetFieldFlags(i),
                    RealTableName = MySqlDataReaderHelper.RealTableName(field), //my_reader.GetRealTableName(i),
                    ColumnSize    = MySqlDataReaderHelper.GetColumnSize(field)  //my_reader.GetColumnSize(i)
                };
            }

            return(data);
        }