class Mysql::Field
@!visibility public Field class
Constants
- AUTO_INCREMENT_FLAG
- BINARY_FLAG
- BINCMP_FLAG
- BLOB_FLAG
- ENUM_FLAG
- EXPLICIT_NULL_FLAG
- FIELD_FLAGS_COLUMN_FORMAT_MASK
- FIELD_FLAGS_STORAGE_MEDIA_MASK
- FIELD_IN_ADD_INDEX
- FIELD_IN_PART_FUNC_FLAG
- FIELD_IS_DROPPED
- FIELD_IS_MARKED
- FIELD_IS_RENAMED
- GET_FIXED_FIELDS_FLAG
- GROUP_FLAG
- MULTIPLE_KEY_FLAG
- NOT_NULL_FLAG
-
Flag
- NOT_SECONDARY_FLAG
- NO_DEFAULT_VALUE_FLAG
- NUM_FLAG
- ON_UPDATE_NOW_FLAG
- PART_KEY_FLAG
- PRI_KEY_FLAG
- SET_FLAG
- TIMESTAMP_FLAG
- TYPE_BIT
- TYPE_BLOB
- TYPE_BOOL
- TYPE_CHAR
- TYPE_DATE
- TYPE_DATETIME
- TYPE_DATETIME2
- TYPE_DECIMAL
-
Fieldtype - TYPE_DOUBLE
- TYPE_ENUM
- TYPE_FLOAT
- TYPE_GEOMETRY
- TYPE_INT24
- TYPE_INTERVAL
- TYPE_INVALID
- TYPE_JSON
- TYPE_LONG
- TYPE_LONGLONG
- TYPE_LONG_BLOB
- TYPE_MEDIUM_BLOB
- TYPE_NEWDATE
- TYPE_NEWDECIMAL
- TYPE_NULL
- TYPE_SET
- TYPE_SHORT
- TYPE_STRING
- TYPE_TIME
- TYPE_TIME2
- TYPE_TIMESTAMP
- TYPE_TIMESTAMP2
- TYPE_TINY
- TYPE_TINY_BLOB
- TYPE_TYPED_ARRAY
- TYPE_VARCHAR
- TYPE_VAR_STRING
- TYPE_YEAR
- UNIQUE_FLAG
- UNIQUE_KEY_FLAG
- UNSIGNED_FLAG
- ZEROFILL_FLAG
Attributes
@return [Integer] charset id number
@return [String] database name
@return [Integer] number of decimals
@return [String] defualt value
@return [String] defualt value
@return [Integer] flag
@return [Integer] field length
@return [String] field name
@return [String] original field name
@return [String] original table name
@private
@return [String] table name
@return [Integer] field type
Public Class Methods
Source
# File lib/mysql/field.rb, line 33 def initialize(packet) @db, @table, @org_table, @name, @org_name, @charsetnr, @length, @type, @flags, @decimals, @default = packet.db, packet.table, packet.org_table, packet.name, packet.org_name, packet.charsetnr, packet.length, packet.type, packet.flags, packet.decimals, packet.default @db.force_encoding('utf-8') @table.force_encoding('utf-8') @org_table.force_encoding('utf-8') @name.force_encoding('utf-8') @org_name.force_encoding('utf-8') @flags |= NUM_FLAG if is_num_type? @max_length = nil end
@attr [Protocol::FieldPacket] packet
Public Instance Methods
Source
# File lib/mysql/field.rb, line 60 def inspect "#<Mysql::Field:#{@name}>" end
@private
Source
# File lib/mysql/field.rb, line 70 def is_not_null? @flags & NOT_NULL_FLAG != 0 end
@return [Boolean] true if not null field.
Source
# File lib/mysql/field.rb, line 65 def is_num? @flags & NUM_FLAG != 0 end
@return [Boolean] true if numeric field.
Source
# File lib/mysql/field.rb, line 75 def is_pri_key? @flags & PRI_KEY_FLAG != 0 end
@return [Boolean] true if primary key field.
Source
# File lib/mysql/field.rb, line 80 def max_length return @max_length if @max_length @max_length = 0 @result&.calculate_field_max_length @max_length end
@return [Integer] maximum width of the field for the result set
Source
# File lib/mysql/field.rb, line 46 def to_hash { "name" => @name, "table" => @table, "def" => @default, "type" => @type, "length" => @length, "max_length" => max_length, "flags" => @flags, "decimals" => @decimals, } end
@return [Hash] field information