/** * Gets the SqlServer Column Comment Defininition for a column object. * * @param Column $column Column * @param string $tableName Table name * * @return string */ protected function getColumnCommentSqlDefinition(Column $column, $tableName) { // passing 'null' is to remove column comment $currentComment = $this->getColumnComment($tableName, $column->getName()); $comment = strcasecmp($column->getComment(), 'NULL') !== 0 ? $this->getConnection()->quote($column->getComment()) : '\'\''; $command = $currentComment === false ? 'sp_addextendedproperty' : 'sp_updateextendedproperty'; return sprintf("EXECUTE %s N'MS_Description', N%s, N'SCHEMA', N'%s', N'TABLE', N'%s', N'COLUMN', N'%s';", $command, $comment, $this->schema, $tableName, $column->getName()); }
/** * Gets the PostgreSQL Column Comment Defininition for a column object. * * @param Column $column Column * @param string $tableName Table name * @return string */ protected function getColumnCommentSqlDefinition(Column $column, $tableName) { // passing 'null' is to remove column comment $comment = strcasecmp($column->getComment(), 'NULL') !== 0 ? $this->getConnection()->quote($column->getComment()) : 'NULL'; return sprintf('COMMENT ON COLUMN %s.%s IS %s;', $tableName, $column->getName(), $comment); }
/** * 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 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 comment Definition for a Column object. * * @param Column $column Column * @return string */ protected function getCommentDefinition(Column $column) { if ($column->getComment()) { return ' /* ' . $column->getComment() . ' */ '; } return ''; }
/** * Gets the column comment. * * @return string */ public function getComment() { return $this->column->getComment(); }