Вводная в FSPG

Стандартно Falcon Space работает на СУБД SQL Server. 

В июле 2025 года было найдено решение, как можно воплотить подход  Falcon Space к хранимым процедурам в Postgre. 

Главная сложность - в Postgre нет множественных выходных SELECT в хранимых процедурах. Это проблема была решена за счет использования 1 выходной переменной с телом в виде JSON, где каждое поле  - это один из выходных select, которые ожидает платформа от sp. Пример: 

{
"sel1": [{},{}, {}],
"sel2": [{},{}, {}],
"sel3": [{},{}, {}],
"sel4": [{},{}, {}]
}

Платформа обрабатывает такой JSON и по сути получает на входе те же множественные JSON. 

В процедурах Postgre мы используем такой паттерн, чтобы на выходе дать нужный JSON: 

CREATE OR REPLACE PROCEDURE public.crud_pages_getitems(OUT res text, IN filters text, IN sort text, IN direction text, IN page integer, IN pagesize integer, IN username text)
 LANGUAGE plpgsql
AS $procedure$
BEGIN
      CREATE TEMP TABLE sel1 ON COMMIT DROP AS                        
      select 1 msg, '' result
	
	CREATE TEMP TABLE sel2 ON COMMIT DROP AS                        
	select 'h3' headerTag, (select count(*) from ids) total;

	
       select to_jsonb(t1.*) from (
                select                
                (select json_agg(e.*) from sel1 e) sel1 ,
				(select json_agg(e.*) from sel2 e) sel2				
     ) t1 
     into res;                 
END;
$procedure$

Используется выходная переменная res в которой мы формируем JSON из таблиц sel1, sel2 и т.д. 

Это главное отличие процедур Falcon Space PG (FSPG) от процедур Falcon Space (на SQL Server). 

Custom типы (CrudDictionaryParameter, ExtendedDictionaryparameter и т.д.) мы не используем в Postgre - вместо этого используем JSON массимы из полей (key,value,value2). 

В остальном в FSPG используется практически те же интерфейсы работы компонентов (названия параметров и выходные SELECT). Это значит, что можно в целом ориентироваться в описания компонентов из основной документации Falcon Space

Насколько полезной была статья?

Что еще посмотреть по PostgreSQL & Falcon Space

Ищем партнеров-разработчиков на T-SQL и PL/pgSQL

Прямая работа с заказчиками как ИП или самозанятый. Нужно знать только SQL и HTML

Falcon Space - платформа для создания сайтов с личными кабинетами

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Запрос расчета стоимости веб-проекта на базе Falcon Space
Если видео Youtube плохо грузится, то попробуйте найти видео в ВК видео на канале Falcon Space
Сайт использует Cookie, Яндекс Метрику. Используя сайт, вы соглашаетесь с правилами сайта. См. Правила конфиденциальности и Правила использования сайта OK