Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular

SQLize.online is a free online SQL environment for quickly running, experimenting with and sharing code. You can run your SQL code on top of the most popular RDBMS including MySQL, MariaDB, SQLite, PostgreSQL, Oracle and Microsoft SQL Server.

Copy Format Clear
WITH exemplo as ( SELECT '{"allowlist":[{"collection":"allowed-queries","scope":{"global":true}}],"sources":[{"kind":"postgres","name":"UPADS","tables":[{"select_permissions":[{"role":"bla","permission":{"columns":["id","nome"],"filter":{}}},{"role":"master","permission":{"columns":["id","nome"],"filter":{}}}],"insert_permissions":[{"role":"bla","permission":{"backend_only":false,"check":{},"columns":["nome"]}},{"role":"master","permission":{"backend_only":false,"check":{},"columns":["nome"]}}],"table":{"schema":"rmcontact","name":"l001"},"update_permissions":[{"role":"bla","permission":{"check":null,"columns":["id","nome"],"filter":{}}},{"role":"master","permission":{"check":null,"columns":["nome"],"filter":{}}}],"delete_permissions":[{"role":"bla","permission":{"filter":{}}},{"role":"master","permission":{"filter":{}}}]},{"select_permissions":[{"role":"bla","permission":{"columns":["created_at","roles","updated_at","username"],"filter":{}}},{"role":"master","permission":{"columns":["created_at","roles","updated_at","username"],"filter":{}}}],"insert_permissions":[{"role":"master","permission":{"backend_only":false,"check":{},"columns":["created_at","roles","updated_at","username"]}},{"role":"teste2","permission":{"backend_only":false,"check":{},"columns":["created_at","roles","updated_at","username"]}}],"table":{"schema":"rmcontact","name":"users"},"update_permissions":[{"role":"master","permission":{"check":null,"columns":["created_at","roles","updated_at","username"],"filter":{}}}],"delete_permissions":[{"role":"master","permission":{"filter":{}}}]}],"configuration":{"connection_info":{"use_prepared_statements":false,"database_url":"postgres://upads:1@postgres:5432/upads","isolation_level":"read-committed"}}}],"version":3,"query_collections":[{"definition":{"queries":[]},"name":"allowed-queries"}]}'::jsonb as metadata ) SELECT upper(db.json #>> '{kind}') AS dsn, upper(db.json #>> '{name}') AS nome_banco, upper(tbl.json #>> '{table,schema}') AS schema, upper(tbl.json #>> '{table,name}') AS nome_tabela, perms.* FROM exemplo AS a CROSS JOIN LATERAL jsonb_path_query(a.metadata, '$.sources[*]') as db(json) CROSS JOIN LATERAL jsonb_path_query(db.json,'$.tables[*]') AS tbl(json) CROSS JOIN LATERAL ( SELECT t.role, bool_or(t.sel) AS sel, bool_or(t.ins) AS ins, bool_or(t.upd) AS upd, bool_or(t.del) AS del FROM ( SELECT upper(jsonb_array_elements(tbl.json -> 'select_permissions')->>'role') AS role, true AS sel, false AS ins, false AS upd, false AS del UNION ALL SELECT upper(jsonb_array_elements(tbl.json -> 'insert_permissions')->>'role'), false, true, false, false UNION ALL SELECT upper(jsonb_array_elements(tbl.json -> 'update_permissions')->>'role'), false, false, true, false UNION ALL SELECT upper(jsonb_array_elements(tbl.json -> 'delete_permissions')->>'role'), false, false, false, true ) AS t GROUP BY t.role ) AS perms ;

Stuck with a problem? Got Error? Ask ChatGPT!

Copy Clear