powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передать в качестве аргумента - указатель н а функцию plpgsql
7 сообщений из 7, страница 1 из 1
Передать в качестве аргумента - указатель н а функцию plpgsql
    #33789629
Opilki_Inside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли в качестве аргумента функции передать указатель на другую в функцию в Pl/Pgsql ?
...
Рейтинг: 0 / 0
Передать в качестве аргумента - указатель н а функцию plpgsql
    #33790105
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это можно представить как передачу в функцию имени другой функции через текстовый параметр с последующим собиранием текста запроса и его execut'ом.
А это зачем вообще?
...
Рейтинг: 0 / 0
Передать в качестве аргумента - указатель н а функцию plpgsql
    #33790686
Opilki_Inside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну мне нужно например в зависимости от переданных параметров часть строки приводить к нижнему регистру, к верхнему или первая буква заглавная... Причем этот перевод используется в нескольких местах в функции... можно конечно IF-ми обойтись, но красивее было бы использовать указатели... эх..
...
Рейтинг: 0 / 0
Передать в качестве аргумента - указатель н а функцию plpgsql
    #33791340
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может лучше case в запросах юзать?..
...
Рейтинг: 0 / 0
Передать в качестве аргумента - указатель н а функцию plpgsql
    #33791723
ZemA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Opilki_InsideНу мне нужно например в зависимости от переданных параметров часть строки приводить к нижнему регистру, к верхнему или первая буква заглавная... Причем этот перевод используется в нескольких местах в функции... можно конечно IF-ми обойтись, но красивее было бы использовать указатели... эх..

так что ли?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
create or replace function fupper(text)
  returns text as
'
  select upper($1::char) || lower(substring($1 from 2 for length($1)))
' language sql;

create or replace function super_mega_function(text, text)
  returns text as
'
declare
  f_name alias for $1;
  arg alias for $2;
  rec record;
begin
  for rec in execute
    ''select '' || f_name || ''('' || quote_literal(arg) || '') as value''
  loop
    return rec.value;
  end loop;
end;
' language plpgsql;

select 'fupper', super_mega_function('fupper', 'TeSt')
union
select 'lower', super_mega_function('lower', 'TeSt')
union
select 'upper', super_mega_function('upper', 'TeSt')
...
Рейтинг: 0 / 0
Передать в качестве аргумента - указатель н а функцию plpgsql
    #33792521
Opilki_Inside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну почти.. только мне эти функции нужны не в запросах, а просто
у меня есть переменая
str text;
str = upper($1);

Проблема в том, что функция очень критичная в части производительности... большие объемы текстов обрабатывает... не знаю как такая конструкция будет работать в части производительности
...
Рейтинг: 0 / 0
Передать в качестве аргумента - указатель н а функцию plpgsql
    #33792593
ZemA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Opilki_Inside
не знаю как такая конструкция будет работать в части производительности

смотря на каких запросах, функциях. думаю надо просто потестировать :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передать в качестве аргумента - указатель н а функцию plpgsql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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