Skip to content

NpgsqlBox: The Point values are mixed up #5113

@SoftStoneDevelop

Description

@SoftStoneDevelop

Steps to reproduce

            using (var connection = new NpgsqlConnection(root.GetConnectionString("SqlConnection")))
            {
                connection.Open();
                var cmd = connection.CreateCommand();
                cmd.CommandText = @"
CREATE TABLE IF NOT EXISTS public.boxTable
(
    id serial NOT NULL,
    value box NOT NULL,
    CONSTRAINT boxTable_pkey PRIMARY KEY (id)
);
";
                cmd.ExecuteNonQuery();

                cmd.CommandText = @"
INSERT INTO public.boxTable
(value)
VALUES
($1)
";
                var box = new NpgsqlBox(
                    upperRight: new NpgsqlPoint(0.1d, 0.5d), 
                    lowerLeft: new NpgsqlPoint(0.4d, 0.3d)
                    );
                var parametr = new NpgsqlParameter<NpgsqlBox>();
                parametr.TypedValue = box;
                cmd.Parameters.Add(parametr);
                cmd.ExecuteNonQuery();

                cmd.Parameters.Clear();
                cmd.CommandText = @"
SELECT
    value
FROM public.boxTable
";
                using var reader = cmd.ExecuteReader();
                while(reader.Read())
                {
                    var readedBox = reader.GetFieldValue<NpgsqlBox>(0);
                    var isSame = readedBox == box;//false
                    //box is {(0.1,0.5),(0.4,0.3)}
                    //readedBox is {(0.4,0.5),(0.1,0.3)}
                }
            }

The issue

The Point values are mixed up.
isSame must be true, I think.
Looks like a bug, but I'm not sure.

Further technical details

Npgsql version: 7.0.4
PostgreSQL version: PostgreSQL 15.2, compiled by Visual C++ build 1914, 64-bit
Operating system:
Edition Windows 10 Pro
Version 22H2
OS build 19045.3086

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions