Re: psql blows up on BOM character sequence

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: psql blows up on BOM character sequence
Дата
Msg-id 533080A6.3000408@dunslane.net
обсуждение исходный текст
Ответ на Re: psql blows up on BOM character sequence  (Jim Nasby <jim@nasby.net>)
Ответы Re: psql blows up on BOM character sequence  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: psql blows up on BOM character sequence  (Jim Nasby <jim@nasby.net>)
Список pgsql-hackers
On 03/24/2014 02:50 PM, Jim Nasby wrote:
> On 3/22/14, 11:26 AM, Jim Nasby wrote:
>> On 3/21/14, 4:54 PM, Tom Lane wrote:
>>> Merlin Moncure <mmoncure@gmail.com> writes:
>>>> There is no way for psql to handle that case though unless you'd strip
>>>> *all* BOMs encountered.  Compounding this problem is that there's no
>>>> practical way AFAIK to send multiple file to psql via single command
>>>> line invocation.  If you pass multiple -f arguments all but one is
>>>> ignored.
>>>
>>> Well, that seems like a solvable but rather independent problem.
>>> I guess one issue is how you'd define the meaning of --single ...
>>> one transaction per run, or one per file?
>>
>> Well, if you're catting multiple files into psql -1, you'd get all 
>> the files in one transaction, right? So I'd say that's what should 
>> happen.
>
> It occurs to me that we're going about this the wrong way...
>
> The error here isn't being generated by psql; it's generated by the 
> backend. In the context of a statement (and not, say, a COPY command).
>
> So instead of trying to handle this on the psql side[1], I think we 
> need to handle it in the backend; specifically in the parser. Is there 
> an easy way to get the parser to ignore the BOM character in the 
> context of commands (but not in strings)?
>
> [1]: Obviously, BOM could still screw up a psql command like \d. We'd 
> want to address that as well; but I suspect backends are the more 
> common scenario.


But what about COPY files? I don't see why there is less of a case for 
eating a leading BOM for a COPY file (or COPY stdin for that matter, 
given that it can come from \copy) than for an SQL file.

I suspect suspect trying to do this in the parser will be quite messy. 
This needs to happen before the input is converted to the server 
encoding, I think.

cheers

andrew




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jim Nasby
Дата:
Сообщение: Re: psql blows up on BOM character sequence
Следующее
От: Tom Lane
Дата:
Сообщение: Re: psql blows up on BOM character sequence