3 namespace Wikimedia\Rdbms;
5 class MySQLField implements Field {
6 private $name, $tablename, $default, $max_length, $nullable,
7 $is_pk, $is_unique, $is_multiple, $is_key, $type, $binary,
8 $is_numeric, $is_blob, $is_unsigned, $is_zerofill;
10 function __construct( $info ) {
11 $this->name = $info->name;
12 $this->tablename = $info->table;
13 $this->default = $info->def;
14 $this->max_length = $info->max_length;
15 $this->nullable = !$info->not_null;
16 $this->is_pk = $info->primary_key;
17 $this->is_unique = $info->unique_key;
18 $this->is_multiple = $info->multiple_key;
19 $this->is_key = ( $this->is_pk || $this->is_unique || $this->is_multiple );
20 $this->type = $info->type;
21 $this->binary = isset( $info->binary ) ? $info->binary : false;
22 $this->is_numeric = isset( $info->numeric ) ? $info->numeric : false;
23 $this->is_blob = isset( $info->blob ) ? $info->blob : false;
24 $this->is_unsigned = isset( $info->unsigned ) ? $info->unsigned : false;
25 $this->is_zerofill = isset( $info->zerofill ) ? $info->zerofill : false;
38 function tableName() {
39 return $this->tablename;
52 function isNullable() {
53 return $this->nullable;
56 function defaultValue() {
57 return $this->default;
70 function isMultipleKey() {
71 return $this->is_multiple;
84 function isNumeric() {
85 return $this->is_numeric;
92 return $this->is_blob;
98 function isUnsigned() {
99 return $this->is_unsigned;
105 function isZerofill() {
106 return $this->is_zerofill;