diff --git a/views/dashboard_overview.sql b/views/dashboard_overview.sql index f433700..5d44df1 100644 --- a/views/dashboard_overview.sql +++ b/views/dashboard_overview.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW dashboard_overview AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_app_id() AS app_id - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), s AS ( SELECT diff --git a/views/events_chart.sql b/views/events_chart.sql index 6109154..e2ddd51 100644 --- a/views/events_chart.sql +++ b/views/events_chart.sql @@ -1,12 +1,11 @@ CREATE OR REPLACE VIEW events_chart AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_app_id() AS app_id, - app.get_item('$EVENT_ID') AS event_id, + app.get_number_item('$EVENT_ID') AS event_id, app.get_item('$USER_ID') AS user_id, TRUNC(app.get_date_item('G_TODAY')) AS today - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), z AS ( SELECT diff --git a/views/nav_badges.sql b/views/nav_badges.sql index ef52bb8..a73c190 100644 --- a/views/nav_badges.sql +++ b/views/nav_badges.sql @@ -1,10 +1,9 @@ CREATE OR REPLACE VIEW nav_badges AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_app_id() AS app_id, app.is_developer_y() AS is_developer - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ) SELECT -- today errors on dashboard 900 AS page_id, diff --git a/views/nav_overview.sql b/views/nav_overview.sql index 11871b6..a567e3d 100644 --- a/views/nav_overview.sql +++ b/views/nav_overview.sql @@ -1,11 +1,10 @@ CREATE OR REPLACE VIEW nav_overview AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_page_id() AS page_id, app.get_app_id() AS app_id, app.get_core_app_id() AS core_app_id - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), t AS ( SELECT diff --git a/views/nav_top.sql b/views/nav_top.sql index b5aeab6..9080a8b 100644 --- a/views/nav_top.sql +++ b/views/nav_top.sql @@ -1,6 +1,6 @@ CREATE OR REPLACE FORCE VIEW nav_top AS WITH curr AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_app_id() AS app_id, app.get_page_id() AS page_id, app.get_page_parent() AS parent_id, @@ -8,8 +8,7 @@ WITH curr AS ( app.get_page_group() AS page_group, app.get_user_id() AS user_id, app.get_user_name() AS user_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), j AS ( -- get javascript targets hidden in page item diff --git a/views/obj_columns.sql b/views/obj_columns.sql index 74e5171..65b5854 100644 --- a/views/obj_columns.sql +++ b/views/obj_columns.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW obj_columns AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), c AS ( SELECT diff --git a/views/obj_constraints.sql b/views/obj_constraints.sql index 3f3e83c..d0bc7c5 100644 --- a/views/obj_constraints.sql +++ b/views/obj_constraints.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW obj_constraints AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), n AS ( SELECT XMLTYPE(DBMS_XMLGEN.GETXML('SELECT c.constraint_name AS name, c.search_condition AS text diff --git a/views/obj_constraints_fix_dt1.sql b/views/obj_constraints_fix_dt1.sql index fc97503..f784a3b 100644 --- a/views/obj_constraints_fix_dt1.sql +++ b/views/obj_constraints_fix_dt1.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW obj_constraints_fix_dt1 AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), s AS ( SELECT diff --git a/views/obj_constraints_fix_dt2.sql b/views/obj_constraints_fix_dt2.sql index 101861b..dd627b8 100644 --- a/views/obj_constraints_fix_dt2.sql +++ b/views/obj_constraints_fix_dt2.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW obj_constraints_fix_dt2 AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), s AS ( SELECT diff --git a/views/obj_indexes.sql b/views/obj_indexes.sql index 73004f7..0a289d9 100644 --- a/views/obj_indexes.sql +++ b/views/obj_indexes.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW obj_indexes AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ) SELECT i.table_name, diff --git a/views/obj_indexes_missing.sql b/views/obj_indexes_missing.sql index 869ccf2..11f8ebb 100644 --- a/views/obj_indexes_missing.sql +++ b/views/obj_indexes_missing.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW obj_indexes_missing AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), f AS ( SELECT diff --git a/views/obj_modules.sql b/views/obj_modules.sql index 024390f..deacee9 100644 --- a/views/obj_modules.sql +++ b/views/obj_modules.sql @@ -1,10 +1,9 @@ CREATE OR REPLACE VIEW obj_modules AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$PACKAGE_NAME') AS package_name, app.get_item('$MODULE_TYPE') AS module_type - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), p AS ( SELECT diff --git a/views/obj_packages.sql b/views/obj_packages.sql index 781a07d..105d38e 100644 --- a/views/obj_packages.sql +++ b/views/obj_packages.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW obj_packages AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$PACKAGE_NAME') AS package_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), s AS ( SELECT diff --git a/views/obj_partitions.sql b/views/obj_partitions.sql index 9f47fe9..792dc16 100644 --- a/views/obj_partitions.sql +++ b/views/obj_partitions.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW obj_partitions AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), p AS ( SELECT diff --git a/views/obj_tables.sql b/views/obj_tables.sql index 18aac7d..5522c0d 100644 --- a/views/obj_tables.sql +++ b/views/obj_tables.sql @@ -1,13 +1,12 @@ CREATE OR REPLACE VIEW obj_tables AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), s AS ( -- columns count - SELECT /* materialize */ + SELECT /*+ MATERIALIZE */ c.table_name, COUNT(*) AS count_cols FROM user_tab_cols c @@ -17,7 +16,7 @@ s AS ( ), c AS ( -- constraints overview - SELECT /* materialize */ + SELECT /*+ MATERIALIZE */ c.table_name, NULLIF(SUM(CASE WHEN c.constraint_type = 'P' THEN 1 ELSE 0 END), 0) AS count_pk, NULLIF(SUM(CASE WHEN c.constraint_type = 'U' THEN 1 ELSE 0 END), 0) AS count_uq, @@ -30,7 +29,7 @@ c AS ( ), i AS ( -- indexes overview - SELECT /* materialize */ + SELECT /*+ MATERIALIZE */ i.table_name, COUNT(i.table_name) AS count_ix FROM user_indexes i @@ -44,7 +43,7 @@ i AS ( ), g AS ( -- triggers overview - SELECT /* materialize */ + SELECT /*+ MATERIALIZE */ g.table_name, COUNT(g.table_name) AS count_trg FROM user_triggers g @@ -54,7 +53,7 @@ g AS ( ), p AS ( -- partitions count - SELECT /* materialize */ + SELECT /*+ MATERIALIZE */ p.table_name, COUNT(*) AS partitions FROM user_tab_partitions p diff --git a/views/obj_tables_ref_down.sql b/views/obj_tables_ref_down.sql index f12e43d..32013c5 100644 --- a/views/obj_tables_ref_down.sql +++ b/views/obj_tables_ref_down.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW obj_tables_ref_down AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), t AS ( SELECT diff --git a/views/obj_tables_ref_objects.sql b/views/obj_tables_ref_objects.sql index edbae42..f020de6 100644 --- a/views/obj_tables_ref_objects.sql +++ b/views/obj_tables_ref_objects.sql @@ -1,10 +1,10 @@ CREATE OR REPLACE VIEW obj_tables_ref_objects AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_app_id() AS app_id, + app.get_owner() AS owner_, app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ) SELECT '' || d.name || '' AS ref_name, @@ -17,7 +17,8 @@ SELECT ELSE NULL END AS ref_link FROM user_dependencies d -WHERE d.referenced_owner = app.get_owner() - AND d.referenced_name = (SELECT x.table_name FROM x) +JOIN x + ON x.owner_ = d.referenced_owner + AND x.table_name = d.referenced_name GROUP BY d.name; diff --git a/views/obj_tables_ref_up.sql b/views/obj_tables_ref_up.sql index 63c1220..bb2876b 100644 --- a/views/obj_tables_ref_up.sql +++ b/views/obj_tables_ref_up.sql @@ -1,9 +1,8 @@ CREATE OR REPLACE VIEW obj_tables_ref_up AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_item('$TABLE_NAME') AS table_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), t AS ( SELECT diff --git a/views/obj_triggers.sql b/views/obj_triggers.sql index 30d6b2d..5eaf2b7 100644 --- a/views/obj_triggers.sql +++ b/views/obj_triggers.sql @@ -1,12 +1,11 @@ CREATE OR REPLACE VIEW obj_triggers AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_app_id() AS app_id, app.get_item('$TABLE_NAME') AS table_name, app.get_item('$TRIGGER_NAME') AS trigger_name, app.get_date_item('G_TODAY') AS today - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), r AS ( SELECT /* materialize */ diff --git a/views/obj_views.sql b/views/obj_views.sql index 032f846..57e0641 100644 --- a/views/obj_views.sql +++ b/views/obj_views.sql @@ -1,10 +1,9 @@ CREATE OR REPLACE VIEW obj_views AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_app_id() AS app_id, app.get_item('$VIEW_NAME') AS view_name - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), r AS ( SELECT diff --git a/views/roles_cards.sql b/views/roles_cards.sql index 5858085..018eb90 100644 --- a/views/roles_cards.sql +++ b/views/roles_cards.sql @@ -1,11 +1,10 @@ CREATE OR REPLACE VIEW roles_cards AS WITH x AS ( - SELECT - u.user_id, + SELECT /*+ MATERIALIZE */ app.get_app_id() AS app_id, + app.get_user_id() AS user_id, app.is_developer_y() AS is_developer - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ) SELECT r.role_id, diff --git a/views/scheduler_details.sql b/views/scheduler_details.sql index 86b035b..44e2404 100644 --- a/views/scheduler_details.sql +++ b/views/scheduler_details.sql @@ -1,12 +1,11 @@ CREATE OR REPLACE VIEW scheduler_details AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_app_id() AS app_id, app.get_date_item('G_TODAY') AS today, app.get_item('$JOB_NAME') AS job_name, app.get_item('$JOB_STATUS') AS job_status - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ) SELECT REGEXP_SUBSTR(d.job_name, '^([^#]+)#(\d+)$', 1, 1, NULL, 2) AS log_id, diff --git a/views/sessions_chart.sql b/views/sessions_chart.sql index 7c6aef9..85322d7 100644 --- a/views/sessions_chart.sql +++ b/views/sessions_chart.sql @@ -1,12 +1,11 @@ CREATE OR REPLACE VIEW sessions_chart AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ app.get_app_id() AS app_id, app.get_item('$USER_ID') AS user_id, app.get_date_item('G_TODAY') AS today, 10 AS buckets - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), z AS ( SELECT diff --git a/views/settings_overview.sql b/views/settings_overview.sql index 7cd6901..8f6a0c5 100644 --- a/views/settings_overview.sql +++ b/views/settings_overview.sql @@ -1,12 +1,11 @@ CREATE OR REPLACE VIEW settings_overview AS WITH x AS ( - SELECT + SELECT /*+ MATERIALIZE */ UPPER('SETT') AS package_name, -- app_actions spec UPPER('GET_') AS prefix, app.get_item('$SETTING_NAME') AS setting_name, app.get_app_id() AS app_id - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), p AS ( SELECT p.procedure_name, a.data_type diff --git a/views/users_overview.sql b/views/users_overview.sql index 57c7e46..bfbc992 100644 --- a/views/users_overview.sql +++ b/views/users_overview.sql @@ -1,13 +1,14 @@ CREATE OR REPLACE VIEW users_overview AS WITH x AS ( - SELECT - app.get_app_id() AS app_id, - app.get_user_id() AS user_id, + SELECT /*+ MATERIALIZE */ + app.get_app_id() AS app_id, + app.get_user_id() AS user_id, + app.get_item('$USER_ID') AS filter_user_id, + app.get_item('$ROLE_ID') AS filter_role_id, -- TRUNC(NVL(app.get_date_item('G_TODAY'), SYSDATE)) AS today, CAST(TRUNC(NVL(app.get_date_item('G_TODAY'), SYSDATE)) AS TIMESTAMP) AS today_ts - FROM users u - WHERE u.user_id = app.get_user_id() + FROM DUAL ), s AS ( SELECT @@ -75,18 +76,20 @@ SELECT u.updated_by, u.updated_at FROM users u +CROSS JOIN x LEFT JOIN s ON s.user_id = u.user_id LEFT JOIN l ON l.user_id = u.user_id LEFT JOIN r ON r.user_id = u.user_id LEFT JOIN b ON b.user_id = u.user_id -WHERE u.user_id = NVL(app.get_item('$USER_ID'), u.user_id) +-- +WHERE u.user_id = NVL(x.filter_user_id, u.user_id) AND ( u.user_id IN ( SELECT r.user_id FROM user_roles r - WHERE r.role_id = app.get_item('$ROLE_ID') + WHERE r.role_id = x.filter_role_id ) - OR app.get_item('$ROLE_ID') IS NULL + OR x.filter_role_id IS NULL ); -- COMMENT ON TABLE users_overview IS '[CORE - DASHBOARD] Users';