/
telnov.ob
/
postgresql-patterns-library
Обзор
Документация
Войти
/
telnov.ob
/
postgresql-patterns-library
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
functions/tables_diff.sql
31 строка
836 B
rin-nas
create [or replace] function
13 апр 2026, 18:09
13 апр 2026, 18:09
e444d01
Код
Авторство
О чём код?
CREATE OR REPLACE FUNCTION public.tables_diff(t1 regclass, t2 regclass) returns table( "+/-" text, line text ) language plpgsql AS $func$ BEGIN RETURN QUERY EXECUTE format($$ SELECT '+', d1.*::text FROM ( SELECT * FROM %s EXCEPT SELECT * FROM %s) AS d1 UNION ALL SELECT '-', d2.*::text FROM ( SELECT * FROM %s EXCEPT SELECT * FROM %s) AS d2 $$, t2, t1, t1, t2); END $func$; -- Source: https://github.com/dverite/postgresql-functions/blob/master/diff/diff-tables.sql comment on function public.tables_diff(t1 regclass, t2 regclass) $$ Takes two table names (through the regclass type), and returns a set of diff-like results with the rows that differ. It does not require a primary key on tables to compare. $$; -- TODO returns TABLE("+/-" text, line jsonb)