code/libraries/joomlatools/library/database/adapter/mysqli.php
protected function _parseColumnInfo($info)
    {
        list($type, $length, $scope) = $this->_parseColumnType($info->Type);

        $column           = new KDatabaseSchemaColumn();
        $column->name     = $info->Field;
        $column->type     = $type;
        $column->length   = $length ? $length : null;
        $column->scope    = $scope ? (int) $scope : null;
        $column->default  = $info->Default;
        $column->required = $info->Null != 'YES';
        $column->primary  = $info->Key == 'PRI';
        $column->unique   = ($info->Key == 'UNI' || $info->Key == 'PRI');
        $column->autoinc  = strpos($info->Extra, 'auto_increment') !== false;
        $column->filter   = $this->_type_map[$type];

        // Don't keep "size" for integers.
        if(substr($type, -3) == 'int') {
            $column->length = null;
        }

        // Get the related fields if the column is primary key or part of a unique multi column index.
        if($indexes = $this->_table_schema[$info->Table]->indexes)
        {
            foreach($indexes as $index)
            {
                // We only deal with composite-unique indexes.
                if(count($index) > 1 && !$index[1]->Non_unique)
                {
                    $fields = array();
                    foreach($index as $field) {
                        $fields[$field->Column_name] = $field->Column_name;
                    }

                    if(array_key_exists($column->name, $fields))
                    {
                        unset($fields[$column->name]);
                        $column->related = array_values($fields);
                        $column->unique = true;
                        break;
                    }
                }
            }
        }

        return $column;
    }
protected function _parseColumnInfo($info)
    {
        list($type, $length, $scope) = $this->_parseColumnType($info->Type);

        $column           = new KDatabaseSchemaColumn();
        $column->name     = $info->Field;
        $column->type     = $type;
        $column->length   = $length ? $length : null;
        $column->scope    = $scope ? (int) $scope : null;
        $column->default  = $info->Default;
        $column->required = $info->Null != 'YES';
        $column->primary  = $info->Key == 'PRI';
        $column->unique   = ($info->Key == 'UNI' || $info->Key == 'PRI');
        $column->autoinc  = strpos($info->Extra, 'auto_increment') !== false;
        $column->filter   = $this->_type_map[$type];

        // Don't keep "size" for integers.
        if(substr($type, -3) == 'int') {
            $column->length = null;
        }

        // Get the related fields if the column is primary key or part of a unique multi column index.
        if($indexes = $this->_table_schema[$info->Table]->indexes)
        {
            foreach($indexes as $index)
            {
                // We only deal with composite-unique indexes.
                if(count($index) > 1 && !$index[1]->Non_unique)
                {
                    $fields = array();
                    foreach($index as $field) {
                        $fields[$field->Column_name] = $field->Column_name;
                    }

                    if(array_key_exists($column->name, $fields))
                    {
                        unset($fields[$column->name]);
                        $column->related = array_values($fields);
                        $column->unique = true;
                        break;
                    }
                }
            }
        }

        return $column;
    }
protected function _parseColumnInfo ( $ info ) { list ( $ type , $ length , $ scope ) = $ this -> _parseColumnType ( $ info -> Type ) ; $ column = new KDatabaseSchemaColumn ( ) ; $ column -> name = $ info -> Field ; $ column -> type = $ type ; $ column -> length = $ length ? $ length : null ; $ column -> scope = $ scope ? ( int ) $ scope : null ; $ column -> default = $ info -> Default ; $ column -> required = $ info -> Null != 'YES' ; $ column -> primary = $ info -> Key == 'PRI' ; $ column -> unique = ( $ info -> Key == 'UNI' || $ info -> Key == 'PRI' ) ; $ column -> autoinc = strpos ( $ info -> Extra , 'auto_increment' ) !== false ; $ column -> filter = $ this -> _type_map [ $ type ] ; // Don't keep "size" for integers. if ( substr ( $ type , - 3 ) == 'int' ) { $ column -> length = null ; } // Get the related fields if the column is primary key or part of a unique multi column index. if ( $ indexes = $ this -> _table_schema [ $ info -> Table ] -> indexes ) { foreach ( $ indexes as $ index ) { // We only deal with composite-unique indexes. if ( count ( $ index ) > 1 && ! $ index [ 1 ] -> Non_unique ) { $ fields = array ( ) ; foreach ( $ index as $ field ) { $ fields [ $ field -> Column_name ] = $ field -> Column_name ; } if ( array_key_exists ( $ column -> name , $ fields ) ) { unset ( $ fields [ $ column -> name ] ) ; $ column -> related = array_values ( $ fields ) ; $ column -> unique = true ; break ; } } } } return $ column ; }
Parse the raw column schema information

@param   object  $info The raw column schema information
@return  KDatabaseSchemaColumn
Parse the raw column schema information