Skip to content

Commit c6d4d27

Browse files
JaBistDuNarrischJaBistDuNarrisch
authored andcommitted
Extended type test
1 parent 886c454 commit c6d4d27

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

src/Migrator.Tests/Providers/PostgreSQL/PostgreSQLTransformationProvider_GetColumnsDefaultValueTests.cs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,20 @@ public void GetColumns_DataTypeResolveSucceeds()
2121
const string guidColumnName1 = "guidcolumn1";
2222
const string booleanColumnName1 = "booleancolumn1";
2323
const string int32ColumnName1 = "int32column1";
24+
const string int64ColumnName1 = "int64column1";
25+
const string stringColumnName1 = "stringcolumn1";
26+
const string stringColumnName2 = "stringcolumn2";
2427

2528
Provider.AddTable(testTableName,
2629
new Column(dateTimeColumnName1, DbType.DateTime),
2730
new Column(dateTimeColumnName2, DbType.DateTime2),
2831
new Column(decimalColumnName1, DbType.Decimal),
2932
new Column(guidColumnName1, DbType.Guid),
3033
new Column(booleanColumnName1, DbType.Boolean),
31-
new Column(int32ColumnName1, DbType.Int32)
34+
new Column(int32ColumnName1, DbType.Int32),
35+
new Column(int64ColumnName1, DbType.Int64),
36+
new Column(stringColumnName1, DbType.String),
37+
new Column(stringColumnName2, DbType.String) { Size = 30 }
3238
);
3339

3440
// Act
@@ -40,22 +46,25 @@ public void GetColumns_DataTypeResolveSucceeds()
4046
var guidColumn1 = columns.Single(x => x.Name == guidColumnName1);
4147
var booleanColumn1 = columns.Single(x => x.Name == booleanColumnName1);
4248
var int32Column1 = columns.Single(x => x.Name == int32ColumnName1);
49+
var int64column1 = columns.Single(x => x.Name == int64ColumnName1);
50+
var stringColumn1 = columns.Single(x => x.Name == stringColumnName1);
51+
var stringColumn2 = columns.Single(x => x.Name == stringColumnName2);
52+
4353

4454
// Assert
4555
Assert.That(dateTimeColumn1.Type, Is.EqualTo(DbType.DateTime));
4656
Assert.That(dateTimeColumn1.Precision, Is.EqualTo(3));
47-
4857
Assert.That(dateTimeColumn2.Type, Is.EqualTo(DbType.DateTime2));
4958
Assert.That(dateTimeColumn2.Precision, Is.EqualTo(6));
50-
5159
Assert.That(decimalColumn1.Type, Is.EqualTo(DbType.Decimal));
5260
Assert.That(decimalColumn1.Precision, Is.EqualTo(19));
5361
Assert.That(decimalColumn1.Scale, Is.EqualTo(5));
54-
5562
Assert.That(guidColumn1.Type, Is.EqualTo(DbType.Guid));
56-
5763
Assert.That(booleanColumn1.Type, Is.EqualTo(DbType.Boolean));
58-
5964
Assert.That(int32Column1.Type, Is.EqualTo(DbType.Int32));
65+
Assert.That(int64column1.Type, Is.EqualTo(DbType.Int64));
66+
Assert.That(stringColumn1.Type, Is.EqualTo(DbType.String));
67+
Assert.That(stringColumn2.Type, Is.EqualTo(DbType.String));
68+
Assert.That(stringColumn2.Size, Is.EqualTo(30));
6069
}
6170
}

src/Migrator/Providers/Impl/PostgreSQL/PostgreSQLTransformationProvider.cs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
using System.Data;
1818
using System.Globalization;
1919
using System.Linq;
20-
using System.Reflection.Metadata.Ecma335;
2120
using System.Text;
2221
using Index = DotNetProjects.Migrator.Framework.Index;
2322

@@ -361,18 +360,14 @@ public override Column[] GetColumns(string table)
361360
{
362361
dbType = DbType.Boolean;
363362
}
364-
else if (dataTypeString == "text")
363+
else if (dataTypeString == "text" || dataTypeString == "character varying")
365364
{
366365
dbType = DbType.String;
367-
}
368-
else if (dataTypeString.StartsWith("character varying("))
369-
{
370-
dbType = DbType.StringFixedLength;
371366
size = characterMaximumLength;
372367
}
373368
else if (dataTypeString == "character" || dataTypeString.StartsWith("character("))
374369
{
375-
throw new NotSupportedException("Data type 'character' detected. We do not support 'character'. Use 'text' or 'character varying(n)' instead");
370+
throw new NotSupportedException("Data type 'character' detected. We do not support 'character'. Use 'text' or 'character varying' instead");
376371
}
377372
else
378373
{
@@ -382,7 +377,9 @@ public override Column[] GetColumns(string table)
382377
var column = new Column(columnName, dbType)
383378
{
384379
Precision = precision,
385-
Scale = scale
380+
Scale = scale,
381+
// Size should be nullable
382+
Size = size ?? 0
386383
};
387384

388385
column.ColumnProperty |= isNullable ? ColumnProperty.Null : ColumnProperty.NotNull;

0 commit comments

Comments
 (0)