7
7
*
8
8
*
9
9
* IDENTIFICATION
10
- * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.104 2000/04/12 17:14:58 momjian Exp $
10
+ * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.105 2000/04/16 04:27:52 tgl Exp $
11
11
*
12
12
*-------------------------------------------------------------------------
13
13
*/
@@ -118,7 +118,7 @@ CopySendData(void *databuf, int datasize, FILE *fp)
118
118
{
119
119
fwrite (databuf ,datasize ,1 ,fp );
120
120
if (ferror (fp ))
121
- elog (ERROR ,"CopySendData: %s" , strerror ( errno ) );
121
+ elog (ERROR ,"CopySendData: %m" );
122
122
}
123
123
}
124
124
@@ -350,18 +350,19 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe,
350
350
{
351
351
mode_t oumask ;/* Pre-existing umask value */
352
352
353
- oumask = umask ((mode_t )022 );
354
-
355
353
if (* filename != '/' )
356
354
elog (ERROR ,"Relative path not allowed for server side"
357
355
" COPY command." );
358
356
357
+ oumask = umask ((mode_t )022 );
358
+
359
359
#ifndef __CYGWIN32__
360
360
fp = AllocateFile (filename ,"w" );
361
361
#else
362
362
fp = AllocateFile (filename ,"wb" );
363
363
#endif
364
364
umask (oumask );
365
+
365
366
if (fp == NULL )
366
367
elog (ERROR ,"COPY command, running in backend with "
367
368
"effective uid %d, could not open file '%s' for "
@@ -626,7 +627,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim, char *null
626
627
int n_indices ;
627
628
InsertIndexResult indexRes ;
628
629
TupleDesc tupDesc ;
629
- Oid loaded_oid ;
630
+ Oid loaded_oid = InvalidOid ;
630
631
bool skip_tuple = false;
631
632
632
633
tupDesc = RelationGetDescr (rel );
@@ -775,11 +776,12 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim, char *null
775
776
CancelQuery ();
776
777
}
777
778
779
+ lineno ++ ;
780
+
778
781
if (!binary )
779
782
{
780
783
int newline = 0 ;
781
784
782
- lineno ++ ;
783
785
if (oids )
784
786
{
785
787
string = CopyReadAttribute (fp ,& isnull ,delim ,& newline ,null_print );
@@ -788,8 +790,8 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim, char *null
788
790
else
789
791
{
790
792
loaded_oid = oidin (string );
791
- if (loaded_oid < BootstrapObjectIdData )
792
- elog (ERROR ,"COPY TEXT: Invalid Oid. line: %d" , lineno );
793
+ if (loaded_oid == InvalidOid )
794
+ elog (ERROR ,"COPY TEXT: Invalid Oid" );
793
795
}
794
796
}
795
797
for (i = 0 ;i < attr_count && !done ;i ++ )
@@ -822,7 +824,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim, char *null
822
824
*/
823
825
if (!PointerIsValid (values [i ])&&
824
826
!(rel -> rd_att -> attrs [i ]-> attbyval ))
825
- elog (ERROR ,"copy from line %d : Bad file format" , lineno );
827
+ elog (ERROR ,"COPY : Bad file format" );
826
828
}
827
829
}
828
830
if (!done )
@@ -838,8 +840,8 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim, char *null
838
840
if (oids )
839
841
{
840
842
CopyGetData (& loaded_oid ,sizeof (int32 ),fp );
841
- if (loaded_oid < BootstrapObjectIdData )
842
- elog (ERROR ,"COPY BINARY: Invalid Oid line: %d" , lineno );
843
+ if (loaded_oid == InvalidOid )
844
+ elog (ERROR ,"COPY BINARY: Invalid Oid" );
843
845
}
844
846
CopyGetData (& null_ct ,sizeof (int32 ),fp );
845
847
if (null_ct > 0 )
@@ -878,7 +880,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim, char *null
878
880
ptr += sizeof (int32 );
879
881
break ;
880
882
default :
881
- elog (ERROR ,"COPY BINARY: impossible size! line: %d" , lineno );
883
+ elog (ERROR ,"COPY BINARY: impossible size" );
882
884
break ;
883
885
}
884
886
}
@@ -1044,7 +1046,7 @@ GetTypeElement(Oid type)
1044
1046
if (HeapTupleIsValid (typeTuple ))
1045
1047
return (int ) ((Form_pg_type )GETSTRUCT (typeTuple ))-> typelem ;
1046
1048
1047
- elog (ERROR ,"GetOutputFunction: Cache lookup of type %d failed" ,type );
1049
+ elog (ERROR ,"GetOutputFunction: Cache lookup of type %u failed" ,type );
1048
1050
return InvalidOid ;
1049
1051
}
1050
1052
@@ -1172,7 +1174,7 @@ CopyReadNewline(FILE *fp, int *newline)
1172
1174
{
1173
1175
if (!* newline )
1174
1176
{
1175
- elog (NOTICE ,"CopyReadNewline:line %d - extra fields ignored" , lineno );
1177
+ elog (NOTICE ,"CopyReadNewline: extra fields ignored" );
1176
1178
while (!CopyGetEof (fp )&& (CopyGetChar (fp )!= '\n' ));
1177
1179
}
1178
1180
* newline = 0 ;
@@ -1307,7 +1309,7 @@ CopyReadAttribute(FILE *fp, bool *isnull, char *delim, int *newline, char *null_
1307
1309
case '.' :
1308
1310
c = CopyGetChar (fp );
1309
1311
if (c != '\n' )
1310
- elog (ERROR ,"CopyReadAttribute - end of record marker corrupted. line: %d" , lineno );
1312
+ elog (ERROR ,"CopyReadAttribute: end of record marker corrupted" );
1311
1313
gotoendOfFile ;
1312
1314
}
1313
1315
}