'Given the database connection, the table name, and the cursor row
description, this routine will return the given field type name, as
well as any additional keyword parameters and notes for the field.'

def get_field_type(self, connection, table_name, row):

    field_params = {}
    field_notes = []
    try:
        field_type = connection.introspection.get_field_type(row[1], row)
    except KeyError:
        field_type = 'TextField'
        field_notes.append('This    field    type    is    a    guess.')
    if (type(field_type) is tuple):
        (field_type, new_params) = field_type
        field_params.update(new_params)
    if ((field_type == 'CharField') and row[3]):
        field_params['max_length'] = row[3]
    if (field_type == 'DecimalField'):
        field_params['max_digits'] = row[4]
        field_params['decimal_places'] = row[5]
    return (field_type, field_params, field_notes)
