csv_populate_recordset and csv_agg - Mailing list pgsql-hackers

From Steve Chavez
Subject csv_populate_recordset and csv_agg
Date
Msg-id CAGRrpzbL3RqRN3fTu7-BrOQAYCaxae9QoUvKZXZ0NKyG2z80BA@mail.gmail.com
Whole thread Raw
Responses Re: csv_populate_recordset and csv_agg  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Hello hackers,

The `json_populate_recordset` and `json_agg` functions allow systems to process/generate json directly on the database. This "cut outs the middle tier"[1] and notably reduces the complexity of web applications. 

CSV processing is also a common use case and PostgreSQL has the COPY .. FROM .. CSV form but COPY is not compatible with libpq pipeline mode and the interface is clunkier to use.

I propose to include two new functions:

- csv_populate_recordset ( base anyelement, from_csv text )
- csv_agg ( anyelement )

I would gladly implement these if it sounds like a good idea.

I see there's already some code that deals with CSV on

- src/backend/commands/copyfromparse.c(CopyReadAttributesCSV)
- src/fe_utils/print.c(csv_print_field) 
- src/backend/utils/error/csvlog(write_csvlog)

So perhaps a new csv module could benefit the codebase as well.  

Best regards,
Steve

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [PATCH] minor bug fix for pg_dump --clean
Next
From: Peter Smith
Date:
Subject: Re: [DOCS] Stats views and functions not in order?