Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
При вызове хранимой процедуры (любой, созданной пользователем) происходит дисконнект с базой... В чем может быть дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 11:17 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
в шаманский танец с бубном по существу вопроса не помогает ? странно. Детальнее нельзя ли описать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 19:50 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Смущает меня словосочетание "созданной пользователем" :) Проверь, не залазит ли процедура в чужую память или что-либо такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 20:00 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
поробую объяснить ситуацию подробнее: Вот как происходит дисконнект: registr=# select aaa(2); server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Failed. функция следующая: СREATE OR REPLACE FUNCTION "public"."aaa" (integer) RETURNS SETOF integer AS' /* New function body */ declare p_p alias for $1 begin return p_p; end; 'LANGUAGE 'plpsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; Где грабли, подскажите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 10:55 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Однако очепяток у вас много. :-( CREATE OR REPLACE FUNCTION "public"."aaa" (integer) RETURNS integer AS' /* New function body */ declare p_p alias for $1; begin return p_p; end; 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; Или вам нужна SETOF функция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:32 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Для начала.... Не 'plpsql' а 'plpgsql' IMHO если удается обвалить сессию при обращении к любой функции на PL/pgsql - значит просто незодорово собран его обработчик.... Еще не повредит заглянуть в лог постгреса - мож там он написал тебе пару матюков которые застеснялсяв stderr вывалить... Кстати пользовательские функции на sql работают? И неплохо б уточнить весию слоника и что у тебя за ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:37 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat опечаток здесь нет, кроме CREATE, все прекрасно создается и проходит без ошибок Shweik 'plpgsql' дает тот же результат, что и 'plpsql' PostgreSQL 7.4.1. крутиться это все на Red Hat Linux release 7.2 (Enigma) Kernel 2.4.7-10 on an i686 запросы типа: 'select current_user' работают нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 12:14 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
delphin1опечаток здесь нет, кроме CREATE, все прекрасно создается и проходит без ошибок У меня - вовсе не "прекрасно". :-( dump=# CREATE OR REPLACE FUNCTION "public"."aaa" (integer) RETURNS integer AS' dump'# /* New function body */ dump'# declare dump'# p_p alias for $1; dump'# begin dump'# return p_p; dump'# end; dump'# 'LANGUAGE 'plpsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; ERROR: language "plpsql" does not exist dump=# CREATE OR REPLACE FUNCTION "public"."aaa" (integer) RETURNS SETOF integer AS' dump'# /* New function body */ dump'# declare dump'# p_p alias for $1; dump'# begin dump'# return p_p; dump'# end; dump'# 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; CREATE FUNCTION dump=# select aaa(1); WARNING: Error occurred while executing PL/pgSQL function aaa WARNING: while casting return value to function's return type ERROR: Set-valued function called in context that cannot accept a set dump=# select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 7.3.3 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 12:30 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat Если без SETOF у меня вылазит ошибка:ERROR: cannot change return type of existing function :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 12:45 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
сначала drop function сделай. чтобы не ругалось на изменение возвращаемого типа. ИМХО, если plpgsql = plplsql то дело полный швах :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:11 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
delphin1Если без SETOF у меня вылазит ошибка:ERROR: cannot change return type of existing function :("Use DROP FUNCTION first." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:27 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat c DROP все понятно, но это проблему не решает... создание процедуры у меня проходит нормально, а вот при вызове( что-то типа: select aaa(1);) происходит полнейший дисконнект по прежнему :( Он хоть бы ругнулся как родной по-человечески..., а тут вываливается сразу... может настроики хитрые есть самого сервера? а может здесь что-то не так?: CREATE OR REPLACE FUNCTION "public"."plpgsql_call_handler" () RETURNS "pg_catalog"."language_handler" AS' plpgsql_call_handler 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; CREATE TRUSTED PROCEDURAL LANGUAGE "plpgsql" HANDLER "public"."plpgsql_call_handler"; CREATE PROCEDURAL LANGUAGE "plpsql" HANDLER "public"."plpgsql_call_handler"; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:41 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
delphin1создание процедуры у меня проходит нормально, а вот при вызове( что-то типа: select aaa(1);) происходит полнейший дисконнект по прежнему :(Вы SETOF убрали? Приведите точный текст выполняемых вами команд "create function" и "select". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:59 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat вот CREATE: drop function "public"."aaa"(integer); CREATE OR REPLACE FUNCTION "public"."aaa" (integer) RETURNS integer AS' declare p_p alias for $1; begin return p_p; end; 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; а вот SELECT: select aaa(1); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 14:05 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
У меня ваш код работает нормально. dump=# drop function "public"."aaa"(integer); DROP FUNCTION dump=# CREATE OR REPLACE FUNCTION "public"."aaa" (integer) RETURNS integer AS' dump'# declare dump'# p_p alias for $1; dump'# begin dump'# return p_p; dump'# end; dump'# 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; CREATE FUNCTION dump=# select aaa(1); aaa ----- 1 (1 row) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 14:07 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat тогда похоже дело в самом серваке... Может быть от того, что компильнули или сконфигурировали его неправильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 14:15 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Ну я понимаю - влом пользоваться стандартной (с в 7.0.1) прогой по добавлению языков в базу - createlang. Так хоть доку почитать неплохо бы 8)) Тогда бы и бреда меньше плодили бы. Я про вот ето: CREATE OR REPLACE FUNCTION "public"."plpgsql_call_handler" () RETURNS "pg_catalog"."language_handler" AS' plpgsql_call_handler 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; CREATE TRUSTED PROCEDURAL LANGUAGE "plpgsql" HANDLER "public"."plpgsql_call_handler"; CREATE PROCEDURAL LANGUAGE "plpsql" HANDLER "public"."plpgsql_call_handler"; Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. и если сомневаешься что прописано у тебя в $libdir - пиши просто путь к каталогу с plpgsql.so (Да кстати а есть ли вообще у Вас на диске файл plpgsql.so ??? 8_)) Вот и вся басня - причем вся эта кухня неизменна с v6.3.x А если кто мне не верит - спросите у знатоков, а еще лучше скиньте дамп с любой базы постгреса в которой работают PL языки и изучите его. Нет этож надо додуматься - написать обработчик интерпертируемого языка на нем самом..... 8-))) Думаю примеров таких подвигов не так-то много ;-\) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 19:43 |
|
||
|
Вызов хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Shweik не судите строго, с PostgreSQL работаю всего 2 недели, еще только разбираюсь.... перемудрил, бывает:D Теперь ВСЁ работает, спасибо:) Но все равно осталось не понятным почему происходил дисконнект.... можно было же ругнуться по-человечески.... и все бы стало ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2004, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=351&tid=2007630]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 354ms |

| 0 / 0 |
