この例では、開発バージョン3.1.0-alpha6でNpgsqlを使用します。NpgsqlでPostgisMultipolygonを選択したときのタイムアウト
PostgisGeometryオブジェクトをクエリ(NpgsqlDbType.Geometry) のパラメータとして指定し、オブジェクトを再度選択したいとします。
Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollectionなどのタイプのクエリは正しく返されます。ポリゴンが1つのみのPostgisMultiPolygonオブジェクトも正しく返されます。
しかし、複数のポリゴンを持つPostgisMultiPolygonでは動作しません。
PostgisMultiPolygon geom1 = new PostgisMultiPolygon(new[]
{
new PostgisPolygon(new[]
{
new[]
{
new Coordinate2D(40, 40),
new Coordinate2D(20, 45),
new Coordinate2D(45, 30),
new Coordinate2D(40, 40)
}
})
}) {SRID = 4326};
PostgisMultiPolygon geom2 = new PostgisMultiPolygon(new[]
{
new PostgisPolygon(new[]
{
new[]
{
new Coordinate2D(40, 40),
new Coordinate2D(20, 45),
new Coordinate2D(45, 30),
new Coordinate2D(40, 40)
}
}),
new PostgisPolygon(new[]
{
new[]
{
new Coordinate2D(20, 35),
new Coordinate2D(10, 30),
new Coordinate2D(10, 10),
new Coordinate2D(30, 5),
new Coordinate2D(45, 20),
new Coordinate2D(20, 35)
}
})
}) {SRID = 4326};
using (NpgsqlConnection connection = CreateConnection())
{
NpgsqlCommand command = connection.CreateCommand();
command.Parameters.AddWithValue("p1", NpgsqlDbType.Geometry, geom1);
command.CommandText = "Select :p1";
command.ExecuteScalar();
}
using (NpgsqlConnection connection = CreateConnection())
{
NpgsqlCommand command = connection.CreateCommand();
command.Parameters.AddWithValue("p1", NpgsqlDbType.Geometry, geom2);
command.CommandText = "Select :p1";
command.ExecuteScalar(); //timeout occurs...
}
CommandTimeoutを大きくすると、とにかくタイムアウトが発生します。 ありがとうございます!このバグの
私はこの出来事を見ることができ、あなたがhttp://github.com/npgsql/npgsqlで問題を開いてくださいすることができますか? –
問題:https://github.com/npgsql/npgsql/issues/1022 –