Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 091ce97

Browse files
committed
Add support for DateTimeOffset + MaxStringColumnDefinition in pgsql
1 parent 350b24b commit 091ce97

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/ServiceStack.OrmLite.PostgreSQL/PostgreSQLDialectProvider.cs

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ private PostgreSQLDialectProvider()
1919
base.BoolColumnDefinition = "boolean";
2020
base.TimeColumnDefinition = "time";
2121
base.DateTimeColumnDefinition = "timestamp";
22+
base.DateTimeOffsetColumnDefinition = "timestamp";
2223
base.DecimalColumnDefinition = "numeric(38,6)";
2324
base.GuidColumnDefinition = "uuid";
2425
base.ParamString = ":";
@@ -33,9 +34,16 @@ private PostgreSQLDialectProvider()
3334
base.SelectIdentitySql = "SELECT LASTVAL()";
3435
this.NamingStrategy = new PostgreSqlNamingStrategy();
3536
this.StringSerializer = new JsonStringSerializer();
37+
}
38+
39+
public override void OnAfterInitColumnTypeMap()
40+
{
41+
DbTypeMap.Set<TimeSpan>(DbType.Time, "interval");
42+
DbTypeMap.Set<TimeSpan?>(DbType.Time, "interval");
43+
DbTypeMap.Set<DateTimeOffset>(DbType.DateTimeOffset, DateTimeOffsetColumnDefinition);
44+
DbTypeMap.Set<DateTimeOffset?>(DbType.DateTimeOffset, DateTimeOffsetColumnDefinition);
3645

37-
DbTypeMap.Set<TimeSpan>(DbType.Time, "Interval");
38-
DbTypeMap.Set<TimeSpan?>(DbType.Time, "Interval");
46+
base.OnAfterInitColumnTypeMap();
3947
}
4048

4149
public override string GetColumnDefinition(
@@ -56,14 +64,11 @@ public override string GetColumnDefinition(
5664
}
5765
else if (fieldType == typeof(string))
5866
{
59-
if (fieldLength != null)
60-
{
61-
fieldDefinition = string.Format(base.StringLengthColumnDefinitionFormat, fieldLength);
62-
}
63-
else
64-
{
65-
fieldDefinition = textColumnDefinition;
66-
}
67+
fieldDefinition = fieldLength == int.MaxValue
68+
? MaxStringColumnDefinition
69+
: fieldLength != null ?
70+
string.Format(StringLengthColumnDefinitionFormat, fieldLength) :
71+
textColumnDefinition;
6772
}
6873
else
6974
{

0 commit comments

Comments
 (0)