mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-25 04:06:01 +00:00
fix: pssql triggers - map tgtype to timing / event type correctly
This commit is contained in:
@@ -10,18 +10,17 @@ SELECT
|
|||||||
WHEN t.tgtype & 1 = 1 THEN 'ROW'
|
WHEN t.tgtype & 1 = 1 THEN 'ROW'
|
||||||
ELSE 'STATEMENT'
|
ELSE 'STATEMENT'
|
||||||
END AS trigger_level,
|
END AS trigger_level,
|
||||||
CASE
|
COALESCE(
|
||||||
WHEN tgtype & 2 = 2 THEN 'AFTER'
|
CASE WHEN (tgtype::int::bit(7) & b'0000010')::int = 0 THEN NULL ELSE 'BEFORE' END,
|
||||||
WHEN tgtype & 1 = 1 THEN 'BEFORE'
|
CASE WHEN (tgtype::int::bit(7) & b'0000010')::int = 0 THEN 'AFTER' ELSE NULL END,
|
||||||
ELSE NULL
|
CASE WHEN (tgtype::int::bit(7) & b'1000000')::int = 0 THEN NULL ELSE 'INSTEAD' END,
|
||||||
END AS trigger_timing,
|
''
|
||||||
CASE
|
)::text as trigger_timing,
|
||||||
WHEN tgtype & 32 = 32 THEN 'TRUNCATE'
|
(CASE WHEN (tgtype::int::bit(7) & b'0000100')::int = 0 THEN '' ELSE 'INSERT' END) ||
|
||||||
WHEN tgtype & 16 = 16 THEN 'UPDATE'
|
(CASE WHEN (tgtype::int::bit(7) & b'0001000')::int = 0 THEN '' ELSE 'DELETE' END) ||
|
||||||
WHEN tgtype & 8 = 8 THEN 'DELETE'
|
(CASE WHEN (tgtype::int::bit(7) & b'0010000')::int = 0 THEN '' ELSE 'UPDATE' END) ||
|
||||||
WHEN tgtype & 4 = 4 THEN 'INSERT'
|
(CASE WHEN (tgtype::int::bit(7) & b'0100000')::int = 0 THEN '' ELSE 'TRUNCATE' END)
|
||||||
ELSE NULL
|
as event_type,
|
||||||
END AS event_type,
|
|
||||||
pg_get_triggerdef(t.oid) AS definition
|
pg_get_triggerdef(t.oid) AS definition
|
||||||
FROM
|
FROM
|
||||||
pg_trigger t
|
pg_trigger t
|
||||||
|
|||||||
Reference in New Issue
Block a user