COPY and turning off autocommit
От | Maciek Sakrejda |
---|---|
Тема | COPY and turning off autocommit |
Дата | |
Msg-id | 895e58dd0911170940p4fefb12fi1fe0c5a8240ccb5@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: COPY and turning off autocommit
|
Список | pgsql-jdbc |
I've found that since COPY does not use the sendQueryPreamble method in QueryExecutorImpl, it fails to issue the necessary BEGIN if it's the first statement after autocommit is set to off. A workaround is to just issue a "SELECT 1" before the COPY, but this is pretty ugly. I'm not quite sure what the proper fix is: does COPY need to go through the full sendQueryPreamble code path (specifically, processDeadParsedQueries() and processDeadPortals())? Also, that code is tied into the ResultHandler interface, and COPY does not really fit well into that paradigm. I don't think we can we just call sendQueryPreamble(), sendSync(), processResults(), and *then* move to COPY code, since sendQueryPreamble() might do nothing if we're already in a transaction. I suppose we could pass in a null ResultHandler and see if the handler returned is null (in which case there is no BEGIN to process), but that seems egregiously ugly. Any thoughts? -- Maciek Sakrejda | Software Engineer | Truviso 1065 E. Hillsdale Blvd., Suite 230 Foster City, CA 94404 (650) 242-3500 Main (650) 242-3501 F www.truviso.com
В списке pgsql-jdbc по дате отправления: