Skip to content

Commit

Permalink
Fix parsing column comments on SQLite
Browse files Browse the repository at this point in the history
  • Loading branch information
morozov committed Apr 10, 2020
1 parent 86e563a commit a5a09a1
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/Doctrine/DBAL/Schema/SqliteSchemaManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ private function parseTableCommentFromSQL(string $table, string $sql) : ?string
private function parseColumnCommentFromSQL(string $column, string $sql) : ?string
{
$pattern = '{[\s(,](?:\W' . preg_quote($this->_platform->quoteSingleIdentifier($column)) . '\W|\W' . preg_quote($column)
. '\W)(?:\(.*?\)|[^,(])*?,?((?:(?!\n))(?:\s*--[^\n]*\n?)+)}i';
. '\W)(?:\([^)]*?\)|[^,(])*?,?((?:(?!\n))(?:\s*--[^\n]*\n?)+)}i';

if (preg_match($pattern, $sql, $match) !== 1) {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,4 +278,19 @@ public function testPrimaryKeyNoAutoIncrement() : void
// with an empty table, non autoincrement rowid is always 1
$this->assertEquals(1, $lastUsedIdAfterDelete);
}

public function testOnlyOwnCommentIsParsed() : void
{
$table = new Table('own_column_comment');
$table->addColumn('col1', 'string', ['length' => 16]);
$table->addColumn('col2', 'string', ['length' => 16, 'comment' => 'Column #2']);
$table->addColumn('col3', 'string', ['length' => 16]);

$sm = $this->connection->getSchemaManager();
$sm->createTable($table);

$this->assertNull($sm->listTableDetails('own_column_comment')
->getColumn('col1')
->getComment());
}
}

0 comments on commit a5a09a1

Please sign in to comment.