private static function get_add_column_string(moojon_base_column $column) { switch (get_class($column)) { case 'moojon_binary_column': return '`' . $column->get_name() . '` BINARY(' . $column->get_limit() . ') ' . moojon_db_driver::get_null_string($column) . ' ' . self::get_default_string($column); break; case 'moojon_boolean_column': return '`' . $column->get_name() . '` TINYINT(1) ' . self::get_null_string($column) . ' ' . self::get_default_string($column); break; case 'moojon_date_column': return '`' . $column->get_name() . '` DATE ' . self::get_null_string($column) . ' ' . self::get_default_string($column); break; case 'moojon_datetime_column': return '`' . $column->get_name() . '` DATETIME ' . self::get_null_string($column) . ' ' . self::get_default_string($column); break; case 'moojon_decimal_column': return '`' . $column->get_name() . '` DECIMAL(' . $column->get_limit() . ', ' . $column->get_decimals() . ') ' . self::get_null_string($column) . ' ' . self::get_default_string($column); break; case 'moojon_float_column': return '`' . $column->get_name() . '` FLOAT(' . $column->get_limit() . ', ' . $column->get_decimals() . ') ' . self::get_null_string($column) . ' ' . self::get_default_string($column); break; case 'moojon_integer_column': return '`' . $column->get_name() . '` INTEGER(' . $column->get_limit() . ') ' . self::get_null_string($column) . ' ' . self::get_default_string($column); break; case 'moojon_primary_key': return '`' . $column->get_name() . '` INTEGER(' . $column->get_limit() . ') ' . self::get_null_string($column) . ' ' . self::get_default_string($column) . ' ' . $column->get_options(); break; case 'moojon_string_column': return '`' . $column->get_name() . '` VARCHAR(' . $column->get_limit() . ') ' . self::get_null_string($column) . ' ' . self::get_default_string($column); break; case 'moojon_text_column': $binary_string = !$column->get_binary() ? '' : 'BINARY '; return '`' . $column->get_name() . "` TEXT {$binary_string}" . self::get_null_string($column); break; case 'moojon_time_column': return '`' . $column->get_name() . '` TIME ' . self::get_null_string($column) . ' ' . self::get_default_string($column); break; case 'moojon_timestamp_column': return '`' . $column->get_name() . '` TIMESTAMP ' . self::get_null_string($column) . ' ' . self::get_default_string($column); break; default: throw new moojon_exception('create_table can only accept columns of moojon_base_column (' . get_class($column) . ' found).'); break; } }