@@ -136,7 +136,7 @@ typedef struct CopyStateData
136136
137137/* these are just for error messages, see CopyFromErrorCallback */
138138const char * cur_relname ;/* table name for error messages */
139- int cur_lineno ;/* line number for error messages */
139+ uint64 cur_lineno ;/* line number for error messages */
140140const char * cur_attname ;/* current att for error messages */
141141const char * cur_attval ;/* current att value for error messages */
142142
@@ -309,7 +309,7 @@ static void CopyFromInsertBatch(CopyState cstate, EState *estate,
309309ResultRelInfo * resultRelInfo ,TupleTableSlot * myslot ,
310310BulkInsertState bistate ,
311311int nBufferedTuples ,HeapTuple * bufferedTuples ,
312- int firstBufferedLineNo );
312+ uint64 firstBufferedLineNo );
313313static bool CopyReadLine (CopyState cstate );
314314static bool CopyReadLineText (CopyState cstate );
315315static int CopyReadAttributesText (CopyState cstate );
@@ -2174,17 +2174,21 @@ void
21742174CopyFromErrorCallback (void * arg )
21752175{
21762176CopyState cstate = (CopyState )arg ;
2177+ char curlineno_str [32 ];
2178+
2179+ snprintf (curlineno_str ,sizeof (curlineno_str ),UINT64_FORMAT ,
2180+ cstate -> cur_lineno );
21772181
21782182if (cstate -> binary )
21792183{
21802184/* can't usefully display the data */
21812185if (cstate -> cur_attname )
2182- errcontext ("COPY %s, line %d , column %s" ,
2183- cstate -> cur_relname ,cstate -> cur_lineno ,
2186+ errcontext ("COPY %s, line %s , column %s" ,
2187+ cstate -> cur_relname ,curlineno_str ,
21842188cstate -> cur_attname );
21852189else
2186- errcontext ("COPY %s, line %d " ,
2187- cstate -> cur_relname ,cstate -> cur_lineno );
2190+ errcontext ("COPY %s, line %s " ,
2191+ cstate -> cur_relname ,curlineno_str );
21882192}
21892193else
21902194{
@@ -2194,16 +2198,16 @@ CopyFromErrorCallback(void *arg)
21942198char * attval ;
21952199
21962200attval = limit_printout_length (cstate -> cur_attval );
2197- errcontext ("COPY %s, line %d , column %s: \"%s\"" ,
2198- cstate -> cur_relname ,cstate -> cur_lineno ,
2201+ errcontext ("COPY %s, line %s , column %s: \"%s\"" ,
2202+ cstate -> cur_relname ,curlineno_str ,
21992203cstate -> cur_attname ,attval );
22002204pfree (attval );
22012205}
22022206else if (cstate -> cur_attname )
22032207{
22042208/* error is relevant to a particular column, value is NULL */
2205- errcontext ("COPY %s, line %d , column %s: null input" ,
2206- cstate -> cur_relname ,cstate -> cur_lineno ,
2209+ errcontext ("COPY %s, line %s , column %s: null input" ,
2210+ cstate -> cur_relname ,curlineno_str ,
22072211cstate -> cur_attname );
22082212}
22092213else
@@ -2224,14 +2228,14 @@ CopyFromErrorCallback(void *arg)
22242228char * lineval ;
22252229
22262230lineval = limit_printout_length (cstate -> line_buf .data );
2227- errcontext ("COPY %s, line %d : \"%s\"" ,
2228- cstate -> cur_relname ,cstate -> cur_lineno ,lineval );
2231+ errcontext ("COPY %s, line %s : \"%s\"" ,
2232+ cstate -> cur_relname ,curlineno_str ,lineval );
22292233pfree (lineval );
22302234}
22312235else
22322236{
2233- errcontext ("COPY %s, line %d " ,
2234- cstate -> cur_relname ,cstate -> cur_lineno );
2237+ errcontext ("COPY %s, line %s " ,
2238+ cstate -> cur_relname ,curlineno_str );
22352239}
22362240}
22372241}
@@ -2301,7 +2305,7 @@ CopyFrom(CopyState cstate)
23012305#define MAX_BUFFERED_TUPLES 1000
23022306HeapTuple * bufferedTuples = NULL ;/* initialize to silence warning */
23032307Size bufferedTuplesSize = 0 ;
2304- int firstBufferedLineNo = 0 ;
2308+ uint64 firstBufferedLineNo = 0 ;
23052309
23062310Assert (cstate -> rel );
23072311
@@ -2902,11 +2906,11 @@ CopyFromInsertBatch(CopyState cstate, EState *estate, CommandId mycid,
29022906int hi_options ,ResultRelInfo * resultRelInfo ,
29032907TupleTableSlot * myslot ,BulkInsertState bistate ,
29042908int nBufferedTuples ,HeapTuple * bufferedTuples ,
2905- int firstBufferedLineNo )
2909+ uint64 firstBufferedLineNo )
29062910{
29072911MemoryContext oldcontext ;
29082912int i ;
2909- int save_cur_lineno ;
2913+ uint64 save_cur_lineno ;
29102914
29112915/*
29122916 * Print error context information correctly, if one of the operations