Skip to content

Commit 87cc0bf

Browse files
JaBistDuNarrischJaBistDuNarrisch
authored andcommitted
Parse ''0'::bigint' in postgre
1 parent 2ef7e23 commit 87cc0bf

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ public void GetColumns_DefaultValues_Succeeds()
7070
const string int32ColumnName1 = "int32column1";
7171
const string int64ColumnName1 = "int64column1";
7272
const string int64ColumnName2 = "int64column2";
73+
const string int64ColumnName3 = "int64column3";
7374
const string stringColumnName1 = "stringcolumn1";
7475
const string binaryColumnName1 = "binarycolumn1";
7576
const string doubleColumnName1 = "doublecolumn1";
@@ -88,6 +89,8 @@ public void GetColumns_DefaultValues_Succeeds()
8889
new Column(int32ColumnName1, DbType.Int32, defaultValue: 43),
8990
new Column(int64ColumnName1, DbType.Int64, defaultValue: 88),
9091
new Column(int64ColumnName2, DbType.Int64, defaultValue: 0),
92+
// converted in postgre to ''0'::bigint'
93+
new Column(int64ColumnName3, DbType.Int64, defaultValue: "0"),
9194
new Column(stringColumnName1, DbType.String, defaultValue: "Hello"),
9295
new Column(binaryColumnName1, DbType.Binary, defaultValue: new byte[] { 12, 32, 34 }),
9396
new Column(doubleColumnName1, DbType.Double, defaultValue: 84.874596567) { Precision = 19, Scale = 10 }

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -607,14 +607,29 @@ public override Column[] GetColumns(string table)
607607
{
608608
if (column.MigratorDbType == MigratorDbType.Int16 || column.MigratorDbType == MigratorDbType.Int32 || column.MigratorDbType == MigratorDbType.Int64)
609609
{
610+
var match = stripSingleQuoteRegEx.Match(columnInfo.ColumnDefault);
611+
if (match.Success)
612+
{
613+
columnInfo.ColumnDefault = match.Value;
614+
}
610615
column.DefaultValue = long.Parse(columnInfo.ColumnDefault.ToString());
611616
}
612617
else if (column.MigratorDbType == MigratorDbType.UInt16 || column.MigratorDbType == MigratorDbType.UInt32 || column.MigratorDbType == MigratorDbType.UInt64)
613618
{
619+
var match = stripSingleQuoteRegEx.Match(columnInfo.ColumnDefault);
620+
if (match.Success)
621+
{
622+
columnInfo.ColumnDefault = match.Value;
623+
}
614624
column.DefaultValue = ulong.Parse(columnInfo.ColumnDefault.ToString());
615625
}
616626
else if (column.MigratorDbType == MigratorDbType.Double || column.MigratorDbType == MigratorDbType.Single)
617627
{
628+
var match = stripSingleQuoteRegEx.Match(columnInfo.ColumnDefault);
629+
if (match.Success)
630+
{
631+
columnInfo.ColumnDefault = match.Value;
632+
}
618633
column.DefaultValue = double.Parse(columnInfo.ColumnDefault.ToString(), CultureInfo.InvariantCulture);
619634
}
620635
else if (column.MigratorDbType == MigratorDbType.Interval)
@@ -711,6 +726,11 @@ public override Column[] GetColumns(string table)
711726
}
712727
else if (column.MigratorDbType == MigratorDbType.Decimal)
713728
{
729+
var match = stripSingleQuoteRegEx.Match(columnInfo.ColumnDefault);
730+
if (match.Success)
731+
{
732+
columnInfo.ColumnDefault = match.Value;
733+
}
714734
column.DefaultValue = decimal.Parse(columnInfo.ColumnDefault, CultureInfo.InvariantCulture);
715735
}
716736
else if (column.MigratorDbType == MigratorDbType.String)

0 commit comments

Comments
 (0)