Skip to content

Commit 890929f

Browse files
committed
Added versions functions for full PostGIS and GEOS versions
1 parent fbb0a58 commit 890929f

File tree

3 files changed

+61
-1
lines changed

3 files changed

+61
-1
lines changed

LinqToDBPostGisNetTopologySuite.Tests/GeometryProcessingTests.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,10 @@ public void TestSTReducePrecision()
346346
{
347347
// TODO: ? Some helper version classes / attributes for methods?
348348
var version = new Version(db.Select(() => VersionFunctions.PostGISLibVersion()));
349-
if (version >= new Version("3.1.0")) // TODO: ? const
349+
var geos = db.Select(() => VersionFunctions.PostGISGEOSVersion());
350+
var geosVersion = geos != null ? new Version(geos.Substring(0, geos.IndexOf('-'))) : null;
351+
352+
if ((version >= new Version("3.1.0")) && (geosVersion != null) && (geosVersion >= new Version("3.9"))) // TODO: ? const
350353
{
351354
const string Wkt = "POINT(1.412 19.323)";
352355

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System;
2+
using System.Linq;
3+
4+
using LinqToDB;
5+
using NUnit.Framework;
6+
7+
namespace LinqToDBPostGisNetTopologySuite.Tests
8+
{
9+
[TestFixture]
10+
class VersionFunctionsTests : TestsBase
11+
{
12+
[Test]
13+
public void TestPostGISFullVersion()
14+
{
15+
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
16+
{
17+
var fullVersion = db.Select(() => VersionFunctions.PostGISFullVersion());
18+
Assert.IsNotNull(fullVersion);
19+
20+
// Just to see in test runner output
21+
Console.WriteLine(new String('-', 40));
22+
Console.WriteLine(fullVersion);
23+
Console.WriteLine(new String('-', 40));
24+
}
25+
}
26+
}
27+
}

LinqToDBPostGisNetTopologySuite/VersionFunctions.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,36 @@ namespace LinqToDBPostGisNetTopologySuite
1212
/// </remarks>
1313
public static class VersionFunctions
1414
{
15+
/// <summary>
16+
/// Returns full PostGIS version and build configuration information.
17+
/// </summary>
18+
/// <remarks>
19+
/// See https://postgis.net/docs/PostGIS_Full_Version.html
20+
/// </remarks>
21+
/// <returns>
22+
/// Full PostGIS version and build configuration information.
23+
/// </returns>
24+
[Sql.Function("PostGIS_Full_Version", ServerSideOnly = true)]
25+
public static string PostGISFullVersion()
26+
{
27+
throw new InvalidOperationException();
28+
}
29+
30+
/// <summary>
31+
/// Returns the version number of the GEOS library, or null if GEOS support is not enabled.
32+
/// </summary>
33+
/// <remarks>
34+
/// See https://postgis.net/docs/PostGIS_GEOS_Version.html
35+
/// </remarks>
36+
/// <returns>
37+
/// Version number of the GEOS library.
38+
/// </returns>
39+
[Sql.Function("PostGIS_GEOS_Version", ServerSideOnly = true)]
40+
public static string PostGISGEOSVersion()
41+
{
42+
throw new InvalidOperationException();
43+
}
44+
1545
/// <summary>
1646
/// Returns the version number of the PostGIS library.
1747
/// </summary>

0 commit comments

Comments
 (0)