@@ -133,7 +133,7 @@ typedef struct CopyStateData
133133
134134/* these are just for error messages, see CopyFromErrorCallback */
135135const char * cur_relname ;/* table name for error messages */
136- int cur_lineno ;/* line number for error messages */
136+ uint64 cur_lineno ;/* line number for error messages */
137137const char * cur_attname ;/* current att for error messages */
138138const char * cur_attval ;/* current att value for error messages */
139139
@@ -298,7 +298,7 @@ static void CopyFromInsertBatch(CopyState cstate, EState *estate,
298298ResultRelInfo * resultRelInfo ,TupleTableSlot * myslot ,
299299BulkInsertState bistate ,
300300int nBufferedTuples ,HeapTuple * bufferedTuples ,
301- int firstBufferedLineNo );
301+ uint64 firstBufferedLineNo );
302302static bool CopyReadLine (CopyState cstate );
303303static bool CopyReadLineText (CopyState cstate );
304304static int CopyReadAttributesText (CopyState cstate );
@@ -2146,17 +2146,21 @@ void
21462146CopyFromErrorCallback (void * arg )
21472147{
21482148CopyState cstate = (CopyState )arg ;
2149+ char curlineno_str [32 ];
2150+
2151+ snprintf (curlineno_str ,sizeof (curlineno_str ),UINT64_FORMAT ,
2152+ cstate -> cur_lineno );
21492153
21502154if (cstate -> binary )
21512155{
21522156/* can't usefully display the data */
21532157if (cstate -> cur_attname )
2154- errcontext ("COPY %s, line %d , column %s" ,
2155- cstate -> cur_relname ,cstate -> cur_lineno ,
2158+ errcontext ("COPY %s, line %s , column %s" ,
2159+ cstate -> cur_relname ,curlineno_str ,
21562160cstate -> cur_attname );
21572161else
2158- errcontext ("COPY %s, line %d " ,
2159- cstate -> cur_relname ,cstate -> cur_lineno );
2162+ errcontext ("COPY %s, line %s " ,
2163+ cstate -> cur_relname ,curlineno_str );
21602164}
21612165else
21622166{
@@ -2166,16 +2170,16 @@ CopyFromErrorCallback(void *arg)
21662170char * attval ;
21672171
21682172attval = limit_printout_length (cstate -> cur_attval );
2169- errcontext ("COPY %s, line %d , column %s: \"%s\"" ,
2170- cstate -> cur_relname ,cstate -> cur_lineno ,
2173+ errcontext ("COPY %s, line %s , column %s: \"%s\"" ,
2174+ cstate -> cur_relname ,curlineno_str ,
21712175cstate -> cur_attname ,attval );
21722176pfree (attval );
21732177}
21742178else if (cstate -> cur_attname )
21752179{
21762180/* error is relevant to a particular column, value is NULL */
2177- errcontext ("COPY %s, line %d , column %s: null input" ,
2178- cstate -> cur_relname ,cstate -> cur_lineno ,
2181+ errcontext ("COPY %s, line %s , column %s: null input" ,
2182+ cstate -> cur_relname ,curlineno_str ,
21792183cstate -> cur_attname );
21802184}
21812185else
@@ -2196,14 +2200,14 @@ CopyFromErrorCallback(void *arg)
21962200char * lineval ;
21972201
21982202lineval = limit_printout_length (cstate -> line_buf .data );
2199- errcontext ("COPY %s, line %d : \"%s\"" ,
2200- cstate -> cur_relname ,cstate -> cur_lineno ,lineval );
2203+ errcontext ("COPY %s, line %s : \"%s\"" ,
2204+ cstate -> cur_relname ,curlineno_str ,lineval );
22012205pfree (lineval );
22022206}
22032207else
22042208{
2205- errcontext ("COPY %s, line %d " ,
2206- cstate -> cur_relname ,cstate -> cur_lineno );
2209+ errcontext ("COPY %s, line %s " ,
2210+ cstate -> cur_relname ,curlineno_str );
22072211}
22082212}
22092213}
@@ -2271,7 +2275,7 @@ CopyFrom(CopyState cstate)
22712275#define MAX_BUFFERED_TUPLES 1000
22722276HeapTuple * bufferedTuples = NULL ;/* initialize to silence warning */
22732277Size bufferedTuplesSize = 0 ;
2274- int firstBufferedLineNo = 0 ;
2278+ uint64 firstBufferedLineNo = 0 ;
22752279
22762280Assert (cstate -> rel );
22772281
@@ -2627,11 +2631,11 @@ CopyFromInsertBatch(CopyState cstate, EState *estate, CommandId mycid,
26272631int hi_options ,ResultRelInfo * resultRelInfo ,
26282632TupleTableSlot * myslot ,BulkInsertState bistate ,
26292633int nBufferedTuples ,HeapTuple * bufferedTuples ,
2630- int firstBufferedLineNo )
2634+ uint64 firstBufferedLineNo )
26312635{
26322636MemoryContext oldcontext ;
26332637int i ;
2634- int save_cur_lineno ;
2638+ uint64 save_cur_lineno ;
26352639
26362640/*
26372641 * Print error context information correctly, if one of the operations