@@ -341,6 +341,7 @@ PathmanDoCopy(const CopyStmt *stmt, const char *queryString, uint64 *processed)
341
341
{
342
342
bool is_old_protocol = PG_PROTOCOL_MAJOR (FrontendProtocol ) < 3 &&
343
343
stmt -> filename == NULL ;
344
+ ParseState * pstate ;
344
345
345
346
/* There should be relation */
346
347
if (!rel ) elog (FATAL , "No relation for PATHMAN COPY FROM" );
@@ -350,15 +351,19 @@ PathmanDoCopy(const CopyStmt *stmt, const char *queryString, uint64 *processed)
350
351
PreventCommandIfReadOnly ("PATHMAN COPY FROM" );
351
352
PreventCommandIfParallelMode ("PATHMAN COPY FROM" );
352
353
353
- cstate = BeginCopyFrom (NULL ,rel , stmt -> filename , stmt -> is_program ,
354
+ pstate = make_parsestate (NULL );
355
+ pstate -> p_sourcetext = queryString ;
356
+ cstate = BeginCopyFrom (pstate ,rel , stmt -> filename , stmt -> is_program ,
354
357
stmt -> attlist , stmt -> options );
355
358
* processed = PathmanCopyFrom (cstate , rel , range_table , is_old_protocol );
356
359
EndCopyFrom (cstate );
360
+ free_parsestate (pstate );
357
361
}
358
362
/* COPY ... TO ... */
359
363
else
360
364
{
361
365
CopyStmt modified_copy_stmt ;
366
+ ParseState * pstate ;
362
367
363
368
/* We should've created a query */
364
369
Assert (query );
@@ -367,9 +372,13 @@ PathmanDoCopy(const CopyStmt *stmt, const char *queryString, uint64 *processed)
367
372
modified_copy_stmt = * stmt ;
368
373
modified_copy_stmt .relation = NULL ;
369
374
modified_copy_stmt .query = query ;
375
+ pstate = make_parsestate (NULL );
376
+ pstate -> p_sourcetext = queryString ;
377
+
370
378
371
379
/* Call standard DoCopy using a new CopyStmt */
372
- DoCopy (NULL ,& modified_copy_stmt , processed );
380
+ DoCopy (pstate ,& modified_copy_stmt , processed );
381
+ free_parsestate (pstate );
373
382
}
374
383
375
384
/*
0 commit comments