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().