You best bet would be to start by knowing all the exisiting default attribute types in this file:
craft/app/enums/AttributeType.php
Then look in
craft/app/helpers/ModelHelper.php
and
craft/app/helpers/DbHelper.php
There you will find all sorts of properties for column types and their default configs options like maxLength. Here is all the ColumnTypes defaults:
public static $attributeTypeDefaults = array(
AttributeType::Mixed => array('model' => null, 'column' => ColumnType::Text),
AttributeType::Bool => array('maxLength' => 1, 'default' => false, 'required' => true, 'column' => ColumnType::TinyInt, 'unsigned' => true),
AttributeType::ClassName => array('maxLength' => 150, 'column' => ColumnType::Varchar),
AttributeType::DateTime => array('column' => ColumnType::DateTime),
AttributeType::Email => array('minLength' => 5, 'column' => ColumnType::Varchar),
AttributeType::Enum => array('values' => array(), 'column' => ColumnType::Enum),
AttributeType::Handle => array('maxLength' => 255, 'reservedWords' => 'id,dateCreated,dateUpdated,uid,title', 'column' => ColumnType::Varchar),
AttributeType::Locale => array('column' => ColumnType::Locale),
AttributeType::Name => array('maxLength' => 255, 'column' => ColumnType::Varchar),
AttributeType::Number => array('min' => null, 'max' => null, 'decimals' => 0),
AttributeType::SortOrder => array('column' => ColumnType::TinyInt),
AttributeType::Template => array('maxLength' => 500, 'column' => ColumnType::Varchar),
AttributeType::Url => array('maxLength' => 255, 'column' => ColumnType::Varchar),
);
You will also see in the DbHelper.php how the column types map into the mysql definition of the table like so:
case ColumnType::Decimal:
{
$def = 'DECIMAL('.$config['length'].','.$config['decimals'].')';
break;
}
Hope that helps. I would encourage you to look at all the defineAttributes() methods in the craft/app/records directory.
AttributeType::*constants (the above list fromModelHelper.phpdoesn't include all the possibilities): https://github.com/pixelandtonic/Craft-Release/blob/master/app/enums/AttributeType.php – Phil Gyford Sep 02 '15 at 18:07