NpgsqlCopySerializer blows up if no rows are saved

From: AK <alkuzo(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: NpgsqlCopySerializer blows up if no rows are saved
Date: 2013-12-02 21:28:50
Message-ID: 1386019730185-5781300.post@n5.nabble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I am not sure if this is the correct place to post my question to. If this is
a wrong list, can you tell me the right one.

I am bulk loading rows using the following code:

const string connString =
"myConnString";
using(var conn = new NpgsqlConnection(connString))
{
conn.Open();
var command = conn.CreateCommand();
var copyStr = string.Format("COPY staging.test(col1,col2) FROM STDIN");
command.CommandText = copyStr;
command.CommandType = CommandType.Text;
var serializer = new NpgsqlCopySerializer(conn);
var copyIn = new NpgsqlCopyIn(command, conn, serializer.ToStream);
copyIn.Start();
foreach (var row in incomingRows)
{
//feed the values here
}
copyIn.End();
serializer.Flush();
serializer.Close();
command.Dispose();
}
If incomingRows has one or more items, this works. However, if no rows are
saved, serializer.Close() blows up:

System.NullReferenceException : Object reference not set to an instance of
an object.
at Npgsql.NpgsqlCopySerializer.Close()

What am I doing wrong?

--
View this message in context: http://postgresql.1045698.n5.nabble.com/NpgsqlCopySerializer-blows-up-if-no-rows-are-saved-tp5781300.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Stephen Frost 2013-12-02 21:29:57 Re: Trust intermediate CA for client certificates
Previous Message Tom Lane 2013-12-02 21:26:10 Re: Trust intermediate CA for client certificates