Skip to content

Commit de2d603

Browse files
committed
No support for PostgreSQL versions lower than 11
- merged functionality of previous drivers into 11, no inheritance needed
1 parent 757e0e3 commit de2d603

24 files changed

Lines changed: 4487 additions & 27 deletions

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/DriverFactory.cs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -120,19 +120,12 @@ private static SqlDriver CreateDriverInstance(
120120
DefaultTimeZone = defaultTimeZone
121121
};
122122

123-
if (version.Major < 8 || (version.Major == 8 && version.Minor < 3)) {
124-
throw new NotSupportedException(Strings.ExPostgreSqlBelow83IsNotSupported);
123+
if (version.Major < 11) {
124+
throw new NotSupportedException(Strings.ExPostgreSqlBelow11IsNotSupported);
125125
}
126126

127-
// We support 8.3, 8.4 and any 9.0+
128-
129127
return version.Major switch {
130-
8 when version.Minor == 3 => new v8_3.Driver(coreServerInfo, pgsqlServerInfo),
131-
8 when version.Minor > 3 => new v8_4.Driver(coreServerInfo, pgsqlServerInfo),
132-
9 when version.Minor == 0 => new v9_0.Driver(coreServerInfo, pgsqlServerInfo),
133-
9 when version.Minor > 0 => new v9_1.Driver(coreServerInfo, pgsqlServerInfo),
134-
10 => new v10_0.Driver(coreServerInfo, pgsqlServerInfo),
135-
11 => new v10_0.Driver(coreServerInfo, pgsqlServerInfo),
128+
11 => new v11_0.Driver(coreServerInfo, pgsqlServerInfo),
136129
_ => new v12_0.Driver(coreServerInfo, pgsqlServerInfo)
137130
};
138131
}

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/PostgreSqlTypeMapper.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,12 @@ protected PostgreSqlTypeMapper(string frameworkType, NpgsqlDbType npgsqlDbType,
5151
this.npgsqlDbType = npgsqlDbType;
5252
this.sqlType = sqlType;
5353
}
54+
55+
protected PostgreSqlTypeMapper(Type dotnetType, NpgsqlDbType npgsqlDbType, SqlType sqlType)
56+
{
57+
type = dotnetType;
58+
this.npgsqlDbType = npgsqlDbType;
59+
this.sqlType = sqlType;
60+
}
5461
}
5562
}

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/Resources/Strings.Designer.cs

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/Resources/Strings.resx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<root>
33
<!--
44
Microsoft ResX Schema
@@ -117,8 +117,8 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120-
<data name="ExPostgreSqlBelow83IsNotSupported" xml:space="preserve">
121-
<value>PostgreSQL below 8.3 is not supported.</value>
120+
<data name="ExPostgreSqlBelow11IsNotSupported" xml:space="preserve">
121+
<value>PostgreSQL below 11 is not supported.</value>
122122
</data>
123123
<data name="ExUrlContainsInvalidXSpecificationXHasToBeY" xml:space="preserve">
124124
<value>URL contains invalid {0} specification. {0} has to be {1}.</value>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright (C) 2014-2020 Xtensive LLC.
2+
// This code is distributed under MIT license terms.
3+
// See the License.txt file in the project root for more information.
4+
// Created by: Alena Mikshina
5+
// Created: 2014.04.10
6+
7+
using NpgsqlTypes;
8+
using Xtensive.Reflection.PostgreSql;
9+
10+
namespace Xtensive.Sql.Drivers.PostgreSql.v11_0
11+
{
12+
internal sealed class BoxMapper : PostgreSqlTypeMapper
13+
{
14+
// Constructors
15+
16+
public BoxMapper()
17+
: base(WellKnownTypes.NpgsqlBoxType, NpgsqlDbType.Box, CustomSqlType.Box)
18+
{
19+
}
20+
}
21+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright (C) 2014-2020 Xtensive LLC.
2+
// This code is distributed under MIT license terms.
3+
// See the License.txt file in the project root for more information.
4+
// Created by: Alena Mikshina
5+
// Created: 2014.04.10
6+
7+
using NpgsqlTypes;
8+
using Xtensive.Reflection.PostgreSql;
9+
10+
namespace Xtensive.Sql.Drivers.PostgreSql.v11_0
11+
{
12+
internal sealed class CircleMapper : PostgreSqlTypeMapper
13+
{
14+
// Constructors
15+
16+
public CircleMapper()
17+
: base(WellKnownTypes.NpgsqlCircleType, NpgsqlDbType.Circle, CustomSqlType.Circle)
18+
{
19+
}
20+
}
21+
}

0 commit comments

Comments
 (0)