Skip to content

Commit e764dfe

Browse files
authored
Merge pull request #141 from simon-mundy/issue-140
Nullable columns now output NULL DEFAULT NULL in DDL
2 parents 669f93f + f740b13 commit e764dfe

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/Sql/Ddl/Column/Column.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,17 @@ public function getExpressionData(): array
115115

116116
if ($this->isNullable === false) {
117117
$specParts[] = 'NOT NULL';
118+
} else {
119+
$specParts[] = 'NULL';
118120
}
119121

120122
if ($this->default !== null) {
121123
$specParts[] = 'DEFAULT %s';
122124
$values[] = $this->default instanceof ArgumentInterface
123125
? $this->default
124126
: new Value($this->default);
127+
} elseif ($this->isNullable) {
128+
$specParts[] = 'DEFAULT NULL';
125129
}
126130

127131
foreach ($this->constraints as $constraint) {

test/unit/Sql/Ddl/Column/ColumnTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ public function testGetExpressionData(): void
151151

152152
$expressionData = $column->getExpressionData();
153153

154-
self::assertEquals('%s %s', $expressionData['spec']);
154+
self::assertEquals('%s %s NULL DEFAULT NULL', $expressionData['spec']);
155155
self::assertEquals([
156156
Argument::identifier('foo'),
157157
Argument::literal('INTEGER'),
@@ -161,7 +161,7 @@ public function testGetExpressionData(): void
161161

162162
$expressionData = $column->getExpressionData();
163163

164-
self::assertEquals('%s %s DEFAULT %s', $expressionData['spec']);
164+
self::assertEquals('%s %s NULL DEFAULT %s', $expressionData['spec']);
165165
self::assertEquals([
166166
Argument::identifier('foo'),
167167
Argument::literal('INTEGER'),

0 commit comments

Comments
 (0)