Hello, I was looking at putting the code for this in copy.c CopyReadLineFunction.
If I do a printf at point A it compiles, installs, runs, doesn't display any data after running initdb and returns a result when a COPY FROM is executed in psql. If I do a printf at point B it compiles, installs, and then crashes when executing initdb. loading pg_description ... initdb: child process exited with exit code 139 initdb: failed Thoughts on why A is ok but B is not? I don't really want to send any results to the screen if it is called when first creating a database. I have looked for something like CMD_SELECT to identify when Initdb is executed. Is their an existing variable I can check that I have not found?
Index: copy.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/commands/copy.c,v
retrieving revision 1.218
diff -b -B -r1.218 copy.c
107c108
<
---
> int co_rows_inserted = 0;
1448a1451,1452
> /*my code*/
> co_rows_inserted = 0;
1782a1787
> /*this is being called during database creation!!*/
1786a1792,1818
> co_rows_inserted = copy_lineno;
> char *buf = " ";
>
> gcvt(co_rows_inserted, 10, buf);
> printf("%i %s\n",co_rows_inserted, buf);/*ok here point A*/
>
> if (co_rows_inserted > 0)
> {
> printf("%i %s\n",co_rows_inserted, buf);/*not ok here point B*/
> /*
> StringInfoData msgbuf;
> pq_beginmessage(&msgbuf, ' ');
> pq_sendstring(&msgbuf, gettext(buf) );
> pq_endmessage(&msgbuf);
> */
> }
> else if (co_rows_inserted == 0)
> {
> ereport(WARNING,(errcode(ERRCODE_BAD_COPY_FILE_FORMAT),
> errmsg ("File used to import data is empty."),
> errhint("Double check file name used")));
> }else if (co_rows_inserted < 0)
> {
> ereport(ERROR,
> (errcode(ERRCODE_BAD_COPY_FILE_FORMAT), errmsg("Rows copied were less than zero. Copy function has been broken"),
> errhint("File a bug please")));
> }
signature.asc
Description: This is a digitally signed message part
