Re: SQL/MED - file_fdw

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Itagaki Takahiro <itagaki.takahiro@gmail.com>
Cc: Shigeru HANADA <hanada@metrosystems.co.jp>, pgsql-hackers@postgresql.org
Date: 2010-12-13T15:59:27Z
Lists: pgsql-hackers

On 12/13/2010 01:31 AM, Itagaki Takahiro wrote:
> On Sat, Dec 11, 2010 at 05:30, Andrew Dunstan<andrew@dunslane.net>  wrote:
>> On 12/04/2010 11:11 PM, Itagaki Takahiro wrote:
>>> One exports the copy functions from the core, and another
>>> implements file_fdw using the infrastructure.
>> Who is actually going to do this split?
> I'm working for it :-)  I extract those functions from copy.c:
>
> - CopyState BeginCopyFrom(Relation rel, const char *filename,
>                            List *attnamelist, List *options);
> - void EndCopyFrom(CopyState cstate);
> - bool NextCopyFrom(CopyState cstate,
>                      Datum *values, bool *nulls, Oid *oid);
>
> There was Reset() in file_fdw, but it is not contained in the
> patch. It will be added again if required, but I wonder we might
> need not only reset but also mark/restore a position in a file.
>

Hmm. I don't think that's going to expose enough for what I want to be 
able to do. I actually had in mind exposing lower level routines like 
CopyReadAttibutesCSV/CopyReadAttributesText and allowing the Foreign 
Data Wrapper to manipulate the raw values read (for example from an 
irregularly shaped CSV file).

cheers

andrew