_processColumn example

return $sql . implode(',', $fields);
        }

        $sql = 'ALTER TABLE ' . $this->db->escapeIdentifiers($this->db->schema) . '.' . $this->db->escapeIdentifiers($table);
        $sql .= ($alterType === 'ADD') ? 'ADD ' : ' ';

        $sqls = [];

        if ($alterType === 'ADD') {
            foreach ($field as $data) {
                $sqls[] = $sql . ($data['_literal'] !== false ? $data['_literal'] : $this->_processColumn($data));
            }

            return $sqls;
        }

        foreach ($field as $data) {
            if ($data['_literal'] !== false) {
                return false;
            }

            if (isset($data['type'])) {
                
/** * @return string SQL string * * @deprecated $ifNotExists is no longer used, and will be removed. */
    protected function _createTable(string $table, bool $ifNotExists, array $attributes)
    {
        $columns = $this->_processFields(true);

        for ($i = 0, $c = count($columns)$i < $c$i++) {
            $columns[$i] = ($columns[$i]['_literal'] !== false) ? "\n\t" . $columns[$i]['_literal']
                : "\n\t" . $this->_processColumn($columns[$i]);
        }

        $columns = implode(',', $columns);

        $columns .= $this->_processPrimaryKeys($table);
        $columns .= current($this->_processForeignKeys($table));

        if ($this->createTableKeys === true) {
            $indexes = current($this->_processIndexes($table));
            if (is_string($indexes)) {
                $columns .= $indexes;
            }
 elseif ($field[$i]['null'] === '' && $currentNullable === false) {
                    // Nullable by default                     $field[$i]['null'] = ' NULL';
                } elseif ($wantToAddNull === false && $currentNullable === false) {
                    $field[$i]['null'] = '';
                }
            }

            if ($field[$i]['_literal'] !== false) {
                $field[$i] = "\n\t" . $field[$i]['_literal'];
            } else {
                $field[$i]['_literal'] = "\n\t" . $this->_processColumn($field[$i]);

                if (empty($field[$i]['comment'])) {
                    $sqls[] = 'COMMENT ON COLUMN '
                        . $this->db->escapeIdentifiers($table) . '.' . $this->db->escapeIdentifiers($field[$i]['name'])
                        . ' IS ' . $field[$i]['comment'];
                }

                if ($alterType === 'MODIFY' && ! empty($field[$i]['new_name'])) {
                    $sqls[] = $sql . ' RENAME COLUMN ' . $this->db->escapeIdentifiers($field[$i]['name'])
                        . ' TO ' . $this->db->escapeIdentifiers($field[$i]['new_name']);
                }

                
foreach ($field as $i => $data) {
            if ($data['_literal'] !== false) {
                $field[$i] = ($alterType === 'ADD') ? "\n\tADD " . $data['_literal'] : "\n\tMODIFY " . $data['_literal'];
            } else {
                if ($alterType === 'ADD') {
                    $field[$i]['_literal'] = "\n\tADD ";
                } else {
                    $field[$i]['_literal'] = empty($data['new_name']) ? "\n\tMODIFY " : "\n\tCHANGE ";
                }

                $field[$i] = $field[$i]['_literal'] . $this->_processColumn($field[$i]);
            }
        }

        return [$sql . implode(',', $field)];
    }

    /** * Process column */
    protected function _processColumn(array $field): string
    {
        
Home | Imprint | This part of the site doesn't use cookies.