/** * Gets the SqlServer Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column, $create = true) { $buffer = array(); $sqlType = $this->getSqlType($column->getType()); $buffer[] = strtoupper($sqlType['name']); // integers cant have limits in SQlServer $noLimits = array('bigint', 'int', 'tinyint'); if (!in_array($sqlType['name'], $noLimits) && ($column->getLimit() || isset($sqlType['limit']))) { $buffer[] = sprintf('(%s)', $column->getLimit() ? $column->getLimit() : $sqlType['limit']); } if ($column->getPrecision() && $column->getScale()) { $buffer[] = '(' . $column->getPrecision() . ',' . $column->getScale() . ')'; } $properties = $column->getProperties(); $buffer[] = $column->getType() === 'filestream' ? 'FILESTREAM' : ''; $buffer[] = isset($properties['rowguidcol']) ? 'ROWGUIDCOL' : ''; $buffer[] = $column->isNull() ? 'NULL' : 'NOT NULL'; if ($create === true) { if ($column->getDefault() === null && $column->isNull()) { $buffer[] = ' DEFAULT NULL'; } else { $buffer[] = $this->getDefaultValueDefinition($column->getDefault()); } } if ($column->isIdentity()) { $buffer[] = 'IDENTITY(1, 1)'; } return implode(' ', $buffer); }
/** * Gets the MySQL Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column) { $sqlType = $this->getSqlType($column->getType(), $column->getLimit()); $def = ''; $def .= strtoupper($sqlType['name']); if ($column->getPrecision() && $column->getScale()) { $def .= '(' . $column->getPrecision() . ',' . $column->getScale() . ')'; } elseif (isset($sqlType['limit'])) { $def .= '(' . $sqlType['limit'] . ')'; } if (($values = $column->getValues()) && is_array($values)) { $def .= "('" . implode("', '", $values) . "')"; } $def .= !$column->isSigned() && isset($this->signedColumnTypes[$column->getType()]) ? ' unsigned' : ''; $def .= !$column->isZerofill() && isset($this->zerofillColumnTypes[$column->getType()]) ? ' zerofill' : ''; $def .= $column->isNull() == false ? ' NOT NULL' : ' NULL'; $def .= $column->isIdentity() ? ' AUTO_INCREMENT' : ''; $def .= $this->getDefaultValueDefinition($column->getDefault()); if ($column->getComment()) { $def .= ' COMMENT ' . $this->getConnection()->quote($column->getComment()); } if ($column->getUpdate()) { $def .= ' ON UPDATE ' . $column->getUpdate(); } return $def; }
/** * Gets the PostgreSQL Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column) { $buffer = array(); if ($column->isIdentity()) { $buffer[] = 'SERIAL'; } else { $sqlType = $this->getSqlType($column->getType(), $column->getLimit()); $buffer[] = strtoupper($sqlType['name']); // integers cant have limits in postgres if (static::PHINX_TYPE_DECIMAL === $sqlType['name'] && ($column->getPrecision() || $column->getScale())) { $buffer[] = sprintf('(%s, %s)', $column->getPrecision() ? $column->getPrecision() : $sqlType['precision'], $column->getScale() ? $column->getScale() : $sqlType['scale']); } elseif (!in_array($sqlType['name'], array('integer', 'smallint'))) { if ($column->getLimit() || isset($sqlType['limit'])) { $buffer[] = sprintf('(%s)', $column->getLimit() ? $column->getLimit() : $sqlType['limit']); } } $timeTypes = array('time', 'timestamp'); if (in_array($sqlType['name'], $timeTypes) && $column->isTimezone()) { $buffer[] = strtoupper('with time zone'); } } $buffer[] = $column->isNull() ? 'NULL' : 'NOT NULL'; if (!is_null($column->getDefault())) { $buffer[] = $this->getDefaultValueDefinition($column->getDefault()); } return implode(' ', $buffer); }
/** * Gets the PostgreSQL Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column) { $sqlType = $this->getSqlType($column->getType()); $def = strtoupper($sqlType['name']); // integers cant have limits in postgres if ('integer' !== $sqlType['name']) { $def .= $column->getLimit() || isset($sqlType['limit']) ? '(' . ($column->getLimit() ? $column->getLimit() : $sqlType['limit']) . ')' : ''; } $def .= $column->isNull() == false ? ' NOT NULL' : ' NULL'; $def .= $column->isIdentity() ? '' : ''; $default = $column->getDefault(); if (is_numeric($default)) { $def .= ' DEFAULT ' . $column->getDefault(); } else { $def .= is_null($column->getDefault()) ? '' : ' DEFAULT \'' . $column->getDefault() . '\''; } // TODO - add precision & scale for decimals return $def; }
/** * Gets the PostgreSQL Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column) { $buffer = array(); if ($column->isIdentity()) { $buffer[] = 'SERIAL'; } else { $sqlType = $this->getSqlType($column->getType()); $buffer[] = strtoupper($sqlType['name']); // integers cant have limits in postgres if ('integer' !== $sqlType['name'] && ($column->getLimit() || isset($sqlType['limit']))) { $buffer[] = sprintf('(%s)', $column->getLimit() ? $column->getLimit() : $sqlType['limit']); } $timeTypes = array('time', 'timestamp'); if (in_array($sqlType['name'], $timeTypes) && $column->isTimezone()) { $buffer[] = strtoupper('with time zone'); } } $buffer[] = $column->isNull() ? 'NULL' : 'NOT NULL'; if (!is_null($column->getDefault())) { $buffer[] = $this->getDefaultValueDefinition($column->getDefault()); } // TODO - add precision & scale for decimals return implode(' ', $buffer); }
/** * Gets the PostgreSQL Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column) { $buffer = array(); if ($column->isIdentity()) { $buffer[] = 'SERIAL'; } else { $sqlType = $this->getSqlType($column->getType()); $buffer[] = strtoupper($sqlType['name']); // integers cant have limits in postgres if ('integer' !== $sqlType['name'] && ($column->getLimit() || isset($sqlType['limit']))) { $buffer[] = sprintf('(%s)', $column->getLimit() ? $column->getLimit() : $sqlType['limit']); } } $buffer[] = $column->isNull() ? 'NULL' : 'NOT NULL'; $default = $column->getDefault(); if (is_numeric($default) || 'CURRENT_TIMESTAMP' === $default) { $buffer[] = 'DEFAULT'; $buffer[] = $default; } elseif ($default) { $buffer[] = "DEFAULT '{$default}'"; } // TODO - add precision & scale for decimals return implode(' ', $buffer); }
/** * Gets the MySQL Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column) { $sqlType = $this->getSqlType($column->getType()); $def = ''; $def .= strtoupper($sqlType['name']); if ($column->getPrecision() && $column->getScale()) { $def .= '(' . $column->getPrecision() . ',' . $column->getScale() . ')'; } $def .= $column->getLimit() || isset($sqlType['limit']) ? '(' . ($column->getLimit() ? $column->getLimit() : $sqlType['limit']) . ')' : ''; $def .= !$column->isSigned() && isset($this->signedColumnTypes[$column->getType()]) ? ' unsigned' : ''; $def .= $column->isNull() == false ? ' NOT NULL' : ' NULL'; $def .= $column->isIdentity() ? ' AUTO_INCREMENT' : ''; $default = $column->getDefault(); if (is_numeric($default) || $default == 'CURRENT_TIMESTAMP') { $def .= ' DEFAULT ' . $column->getDefault(); } else { $def .= is_null($column->getDefault()) ? '' : ' DEFAULT \'' . $column->getDefault() . '\''; } if ($column->getComment()) { $def .= ' COMMENT ' . $this->getConnection()->quote($column->getComment()); } if ($column->getUpdate()) { $def .= ' ON UPDATE ' . $column->getUpdate(); } return $def; }
/** * Gets the SQLite Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column) { $sqlType = $this->getSqlType($column->getType()); $def = ''; $def .= strtoupper($sqlType['name']); if ($column->getPrecision() && $column->getScale()) { $def .= '(' . $column->getPrecision() . ',' . $column->getScale() . ')'; } $limitable = in_array(strtoupper($sqlType['name']), $this->definitionsWithLimits); if (($column->getLimit() || isset($sqlType['limit'])) && $limitable) { $def .= '(' . ($column->getLimit() ? $column->getLimit() : $sqlType['limit']) . ')'; } $default = $column->getDefault(); $def .= $column->isNull() || is_null($default) ? ' NULL' : ' NOT NULL'; $def .= $this->getDefaultValueDefinition($default); $def .= $column->isIdentity() ? ' PRIMARY KEY AUTOINCREMENT' : ''; if ($column->getUpdate()) { $def .= ' ON UPDATE ' . $column->getUpdate(); } $def .= $this->getCommentDefinition($column); return $def; }
/** * Gets the SqlServer Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column, $create = true) { $buffer = array(); $sqlType = $this->getSqlType($column->getType()); $buffer[] = strtoupper($sqlType['name']); // integers cant have limits in SQlServer $noLimits = array('bigint', 'int', 'tinyint'); if (!in_array($sqlType['name'], $noLimits) && ($column->getLimit() || isset($sqlType['limit']))) { $buffer[] = sprintf('(%s)', $column->getLimit() ? $column->getLimit() : $sqlType['limit']); } $properties = $column->getProperties(); $buffer[] = $column->getType() == 'filestream' ? 'FILESTREAM' : ''; $buffer[] = isset($properties['rowguidcol']) ? 'ROWGUIDCOL' : ''; $buffer[] = $column->isNull() ? 'NULL' : 'NOT NULL'; $default = $column->getDefault(); if ($create) { if (is_numeric($default) || 'CURRENT_TIMESTAMP' === $default) { $buffer[] = 'DEFAULT'; $buffer[] = $default; } elseif ($default) { $buffer[] = "DEFAULT '{$default}'"; } } if ($column->isIdentity()) { $buffer[] = 'IDENTITY(1, 1)'; } // TODO - add precision & scale for decimals return implode(' ', $buffer); }
/** * Gets the MySQL Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column) { $sqlType = $this->getSqlType($column->getType()); $def = ''; $def = ''; $def .= strtoupper($sqlType['name']); $def .= $column->getLimit() || isset($sqlType['limit']) ? '(' . ($column->getLimit() ? $column->getLimit() : $sqlType['limit']) . ')' : ''; $def .= $column->isNull() == false ? ' NOT NULL' : ' NULL'; $def .= $column->isIdentity() ? ' AUTO_INCREMENT' : ''; $default = $column->getDefault(); if (is_numeric($default) || $default == 'CURRENT_TIMESTAMP') { $def .= ' DEFAULT ' . $column->getDefault(); } else { $def .= is_null($column->getDefault()) ? '' : ' DEFAULT \'' . $column->getDefault() . '\''; } if ($column->getUpdate()) { $def .= ' ON UPDATE ' . $column->getUpdate(); } // TODO - add precision & scale for decimals return $def; }
/** * Gets the SQLite Column Definition for a Column object. * * @param Column $column Column * @return string */ protected function getColumnSqlDefinition(Column $column) { $sqlType = $this->getSqlType($column->getType()); $def = ''; $def .= strtoupper($sqlType['name']); if ($column->getPrecision() && $column->getScale()) { $def .= '(' . $column->getPrecision() . ',' . $column->getScale() . ')'; } $limitable = in_array(strtoupper($sqlType['name']), $this->definitionsWithLimits); if (($column->getLimit() || isset($sqlType['limit'])) && $limitable) { $def .= '(' . ($column->getLimit() ? $column->getLimit() : $sqlType['limit']) . ')'; } $default = $column->getDefault(); $def .= $column->isNull() || is_null($default) ? ' NULL' : ' NOT NULL'; if (is_numeric($default) || $default == 'CURRENT_TIMESTAMP') { $def .= ' DEFAULT ' . $column->getDefault(); } else { if (!is_null($default)) { $def .= ' DEFAULT ' . $column->getDefault(); } } if ($column->getUpdate()) { $def .= ' ON UPDATE ' . $column->getUpdate(); } $def .= $this->getCommentDefinition($column); return $def; }
/** * Gets the column limit. * * @return integer */ public function getLimit() { return $this->column->getLimit(); }