コード例 #1
0
        public async Task PgLsn()
        {
            var expected1 = new NpgsqlLogSequenceNumber(42949672971ul);

            Assert.AreEqual(expected1, NpgsqlLogSequenceNumber.Parse("A/B"));
            await using var conn = await OpenConnectionAsync();

            using var cmd   = conn.CreateCommand();
            cmd.CommandText = "SELECT 'A/B'::pg_lsn, @p::pg_lsn";
            cmd.Parameters.AddWithValue("p", NpgsqlDbType.PgLsn, expected1);
            await using var reader = await cmd.ExecuteReaderAsync();

            reader.Read();
            var result1 = reader.GetFieldValue <NpgsqlLogSequenceNumber>(0);
            var result2 = reader.GetFieldValue <NpgsqlLogSequenceNumber>(1);

            Assert.AreEqual(expected1, result1);
            Assert.AreEqual(42949672971ul, (ulong)result1);
            Assert.AreEqual("A/B", result1.ToString());
            Assert.AreEqual(expected1, result2);
            Assert.AreEqual(42949672971ul, (ulong)result2);
            Assert.AreEqual("A/B", result2.ToString());
        }