column description More...

Public Member Functions | |
| this () | |
| char[] | get_type_str (bool show_null=false) |
| void | init (in MYSQL_FIELD *field) |
Public Attributes | |
| char[] | _table_name |
| char[] | _name |
| MYSQL_FIELD_TYPES | _data_type |
| int | _width |
| int | _decimals |
| int | _flags |
column description
Definition at line 571 of file mysqlpl.d.
| mysqlpl::ColumnType::this | ( | ) | [inline] |
| char [] mysqlpl::ColumnType::get_type_str | ( | bool | show_null = false ) |
[inline] |
Definition at line 588 of file mysqlpl.d.
Referenced by mysqlpl::SqlRecord::print_columns().
{
char[] str;
switch(_data_type) {
case MYSQL_FIELD_TYPES.MYSQL_TYPE_STRING:
str = format("char(%d)", _width);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_VAR_STRING:
str = format("varchar(%d)", _width);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_DECIMAL:
if (_width == 0)
str = "decimal";
else
str = format("decimal(%d,%d)", _width-1, _decimals);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_NEWDECIMAL: // MYSQL_VERSION_ID>=50000
if (_width == 0)
str = "newdecimal";
else
str = format("newdecimal(%d,%d)", _width-1, _decimals);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_TINY:
str = format("tinyint(%d)", _width);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_SHORT:
str = format("shortint(%d)", _width);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_LONG:
str = format("int(%d)", _width);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_LONGLONG:
str = format("bigint(%d)", _width);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_ENUM:
str = "enum";
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_FLOAT:
if (_width == 12)
str = "float";
else
str = format("float(%d,%d)", _width, _decimals);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_DOUBLE:
if (_width == 22)
str = "double";
else
str = format("double(%d,%d)", _width, _decimals);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_DATE:
str = "date";
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_NEWDATE: // MYSQL_VERSION_ID>=50000
str = "newdate";
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_DATETIME:
str = "datetime";
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_TIME:
str = "time";
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_YEAR:
str = format("year(%d)", _width);
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_TINY_BLOB:
if (_flags & MYSQL_BINARY_FLAG)
str = "tinyblob";
else
str = "tinytext";
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_MEDIUM_BLOB:
if (_flags & MYSQL_BINARY_FLAG)
str = "mediumblob";
else
str = "mediumtext";
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_LONG_BLOB:
if (_flags & MYSQL_BINARY_FLAG)
str = "longblob";
else
str = "longtext";
break;
case MYSQL_FIELD_TYPES.MYSQL_TYPE_BLOB:
if (_flags & MYSQL_BINARY_FLAG)
str = "blob";
else
str = "text";
break;
default:
str = "unknown";
}
if (show_null)
if (IS_NOT_NULL(_flags))
str ~= " not null";
else
str ~= " null";
return str;
}

| void mysqlpl::ColumnType::init | ( | in MYSQL_FIELD * | field ) | [inline] |
Definition at line 702 of file mysqlpl.d.
{
char* table = mysqlpl_field_get_table(field);
char* name = mysqlpl_field_get_name(field);
// get column name
_table_name = table[0 .. strlen(table)];
_name = name[0 .. strlen(name)];
// get column data type
_data_type = mysqlpl_field_get_type(field);
_width = mysqlpl_field_get_length(field);
_decimals = mysqlpl_field_get_decimals(field);
// get null-ability, binary, ... flags
_flags = mysqlpl_field_get_flags(field);
}
| MYSQL_FIELD_TYPES mysqlpl::ColumnType::_data_type |
| char [] mysqlpl::ColumnType::_name |
Definition at line 574 of file mysqlpl.d.
Referenced by mysqlpl::SqlRecord::print_columns(), and mysqlpl::SqlRecord::print_values().
| char [] mysqlpl::ColumnType::_table_name |
Definition at line 573 of file mysqlpl.d.
Referenced by mysqlpl::SqlRecord::print_columns().
1.7.2