Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите как сделать, php+postgresql+commit / 4 сообщений из 4, страница 1 из 1
23.10.2008, 19:57
    #35613106
ksm80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как сделать, php+postgresql+commit
Вот такая ошибка, не могу найти правильное решение
Код: plaintext
1.
2.
Warning: pg_query(): Query failed: ERROR:  SPI_execute_plan failed executing query "commit": SPI_ERROR_TRANSACTION
CONTEXT:  PL/pgSQL function "logreq" line  6  at SQL statement

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE OR REPLACE FUNCTION logreq(pstr varchar) RETURNS integer LANGUAGE plpgsql VOLATILE AS
$$
declare
  vret integer;
begin
  insert into logreq (str) values (pstr)
  returning id into vret;
  commit;
  return vret;
end;
$$

CREATE OR REPLACE FUNCTION test(preq varchar) RETURNS integer LANGUAGE plpgsql VOLATILE AS
$$
declare
  vret integer;
begin
  vret := logreq(preq);
  ..........
end;
$$

Код: plaintext
1.
2.
<?php
pg_query("select * from test('bla');");

Как мне залогировать строчку? можно ли "запихнуть" в автономную транзакцию или поменять вызов на пхп&
...
Рейтинг: 0 / 0
23.10.2008, 21:23
    #35613195
ss25
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как сделать, php+postgresql+commit
...
Рейтинг: 0 / 0
24.10.2008, 03:58
    #35613477
ЯЕХХ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как сделать, php+postgresql+commit
в функции нельзя использовать commit/rollback.

вариант раз: использовать dblink (замена автономной транзакции)

вариант два: записывать в файл функцией на untrusted-языке (пример: pg_file_write из adminpack)

вариант три: обернуть в BEGIN...EXCEPTION всё, что может упасть после записи в лог; транзакцию коммитить в любом случае (код ошибки придётся передавать из функции каким-нибудь другим способом)
...
Рейтинг: 0 / 0
24.10.2008, 10:08
    #35613739
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как сделать, php+postgresql+commit
четвертый вариант savepoint-ы?
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите как сделать, php+postgresql+commit / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]