Re: Can't quote_literal with COPY FROM PROGRAM

From: Mark Mikulec <mark(at)mikutech(dot)com>
To: Rob Sargent <robjsargent(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Can't quote_literal with COPY FROM PROGRAM
Date: 2018-12-31 20:50:11
Message-ID: CA+aX0ec8ZkPhm4cnV7mCVJqkUGRLGfZLbB5+snveD-33GOgnLg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thanks Rob,

Since I'm on Windows and Windows batch sucks I just ended up doing the JSON
parsing with node.js

To be honest this whole affair with COPY FROM program seems like a bug to
me though.

On Mon, Dec 31, 2018 at 1:59 PM Rob Sargent <robjsargent(at)gmail(dot)com> wrote:

>
>
> On Dec 31, 2018, at 10:36 AM, Mark Mikulec <mark(at)mikutech(dot)com> wrote:
>
> Hi,
>
> This command, which generates a JSON object as output, has some escaped
> data with backslashes: (see line 91 here: https://pastebin.com/D4it8ybS)
>
> C:\\Portable\\curl\\curl.exe -k "
> https://maps.googleapis.com/maps/api/directions/json?etcVariablesDeleted
> "'
>
> I use the COPY command to pull it into a temp table like so:
>
> COPY temp_maps_api from program 'C:\\Portable\\curl\\curl.exe -k "
> https://maps.googleapis.com/maps/api/directions/json?etcVariablesDeleted
> "';
>
> However copy eats those backslashes. I need to use quote_literal() but
> that's a syntax error. For some reason the COPY command doesn't allow for
> ESCAPE to work with programs, only CSV.
>
> I tried using WITH BINARY but I get the error message: "COPY file
> signature not recognized"
>
> Does anyone know how to make COPY FROM PROGRAM take the output literally?
>
> Thanks,
> Mark
> ᐧ
>
> Can you pipe the curl output through sed s,\\,\\\\,g
>
> ᐧ

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2018-12-31 20:52:29 Re: Can't quote_literal with COPY FROM PROGRAM
Previous Message Rob Sargent 2018-12-31 18:59:03 Re: Can't quote_literal with COPY FROM PROGRAM