Commit Graph

184 Commits (master)

Author SHA1 Message Date
Rohit Bhati 770a0f27af
Ensure that keyboard shortcuts are displayed in tooltips, context menus, and the main menu. #1923 2025-07-16 17:51:26 +05:30
Rohit Bhati 7bae1eb663
Added support for creating Directory nodes in EPAS. #8034 2025-03-03 18:45:21 +05:30
Michal Charemza 83ade5dcc2
Update the query that fetches roles to be faster with many roles.
This changes the query that fetches roles from using the
pg_catalog.shobj_description function to using an explicit join on
pg_catalog.pg_shdescription. In my specific case, in a production system with
over 20k roles, this reduces the query time down from 8 minutes(!) down to
~40ms. Just in case it was a locking issue, I did use pg_activity to
investigate locks, and nothing was being blocked during the 8 minutes.

This fixes a problem that exists only for certain users, and specifically in my
case where the user that runs the query is themselves a member (directly and
indirectly) of a high number of roles. Running the existing query as a user
that has a low number of roles (and specifically, the master user in an AWS RDS
database), the existing query is fairly performant.

My best explanation as to the performance difference comes from the definition
of shobj_description
2a8a00674e/src/backend/catalog/system_functions.sql (L303-L312).
Each time it's called it runs a query against pg_shdescription and pg_class,
and so in my case runs 20k times, compared to the equivalent of once when doing
the explicit join on pg_shdescription. It should also be noted that in my case
pg_class is quite big - currently about 500k rows (although it has grown to ~5
million in the past, but that was borderline a mistake).

See https://github.com/pgadmin-org/pgadmin4/pull/8457#issue-2853052114 for
EXPLAIN ANALYZE results of the existing query and the updated query.
2025-02-17 17:20:28 +05:30
Akshay Joshi 964d211260 Copyright updated for 2025 2025-01-01 11:26:42 +05:30
Pravesh Sharma fa64e8b38f
Fixed an issue where role properties were not loading. #7837 2024-09-24 11:59:05 +05:30
Ashesh Vashi 441cc57bb8
Don't show 'Types of objects' for the 'Cluster' operation. Fixes #7884 2024-09-18 07:48:09 +05:30
Pravesh Sharma 445e89576b
Fixed an issue where users could not use pgAdmin if they did not have access to the management database. #7571 2024-08-30 12:13:47 +05:30
Anil Sahoo 30051f3257
Fixed an issue where Reassign/Drop Owned dialog not opening for Role. #7663 2024-07-16 17:42:16 +05:30
Aditya Toshniwal dcfef154ce
- Set the browser target to ES6 and reduce the JS bundle size considerably
- Upgrade ESLint to v9.x and migrate the .eslintrc.js file to make it work
2024-07-04 18:25:47 +05:30
Ahmad 5c30695d66
Fixed Typos 2024-05-23 12:52:41 +05:30
Pravesh Sharma 7c6fdcb12e
Disabled auto-fill on password fields. #2410 2024-04-29 11:44:17 +05:30
Akshay Joshi edec9adbfb
Fixed SonarQube code smell 'Unnecessary use of boolean literals in conditional expression'. 2024-04-08 17:19:51 +05:30
Akshay Joshi 097b630738
Added support for EDB Job Scheduler. #7098 2024-03-18 11:53:59 +05:30
Pravesh Sharma 701085adaf
Fixed an issue where group membership information was displayed incorrectly. #7085 2024-01-12 16:48:49 +05:30
Akshay Joshi 5240e8ccf8 Added BYPASSRLS|NOBYPASSRLS option while creating a Role. #6392 2024-01-11 19:14:01 +05:30
Akshay Joshi 740ce15bd7 Update copyright notices for 2024 2024-01-01 14:13:48 +05:30
Aditya Toshniwal c9db4a0d16 Add DROP SQL for foreign keys in SQL generated by ERD when using WITH DROP option. #5770 2023-11-16 16:55:26 +05:30
Aditya Toshniwal 862f101772
Significant changes to use ReactJS extensively.
1. Replace the current layout library wcDocker with ReactJS based rc-dock. #6479
2. Have close buttons on individual panel tabs instead of common. #2821
3. Changes in the context menu on panel tabs - Add close, close all and close others menu items. #5394
4. Allow closing all the tabs, including SQL and Properties. #4733
5. Changes in docking behaviour of different tabs based on user requests and remove lock layout menu.
6. Fix an issue where the scroll position of panels was not remembered on Firefox. #2986
7. Reset layout now will not require page refresh and is done spontaneously.
8. Use the zustand store for storing preferences instead of plain JS objects. This will help reflecting preferences immediately.
9. The above fix incorrect format (no indent) of SQL stored functions/procedures. #6720
10. New version check is moved to an async request now instead of app start to improve startup performance.
11. Remove jQuery and Bootstrap completely.
12. Replace jasmine and karma test runner with jest. Migrate all the JS test cases to jest. This will save time in writing and debugging JS tests.
13. Other important code improvements and cleanup.
2023-10-23 17:43:17 +05:30
Aditya Toshniwal 1e7517dc98
Show object breadcrumbs path along with its comment on object hover. #2078 2023-04-26 11:18:16 +05:30
Aditya Toshniwal ed941b5b95
Fix a SQL error occurring on roles dependents SQL. #6128 2023-04-20 10:18:00 +05:30
Aditya Toshniwal 15914fe5e3
Fix the dependents SQL of Roles which is throwing a type casting error on PostgreSQL 15. #6093 2023-04-10 12:25:12 +05:30
Akshay Joshi 3eac4ba59e Fixed an issue where MSQL is not loading while creating a new login role. 2023-04-03 14:50:45 +05:30
Khushboo Vashi 5e0daccf76 Added support for psycopg3 along with psycopg2. #5011 2023-02-15 11:31:29 +05:30
Matěj Cepl 7a4951f211
Remove dependency on simplejson package. 2023-02-15 11:10:12 +05:30
Akshay Joshi 98184e5835 Update copyright notices for 2023 2023-01-02 11:53:55 +05:30
Nikhil Mohite 2480d08e0f
Added native menu support in desktop mode. #5503 2022-12-06 18:16:36 +05:30
Mark Mayo 41508f7f67
python 3 updates
- Fix super() calls for python 3
- No need to inherit objects.
- No need for u at the start of strings
- Tidied up some brackets and f-strings too
2022-11-19 10:13:41 +05:30
Pravesh Sharma 16e28bb998
Fixed an issue where parameters for roles were not visible. #5429 2022-11-02 11:23:26 +05:30
Pravesh Sharma ad871694cc
Fixed an issue where the dependents tab wasn't working for PG 15. #5455
changes after review
2022-10-31 17:45:53 +05:30
Yogesh Mahajan cbf5886430 Fixed the following code smells:
1. Use concise character class syntax
2. Add a "break" statement or remove this "else" clause.
3. Replace this generic exception class with a more specific one.
4. Use a regular expression literal instead of the 'RegExp' constructor.
5. Use the opposite operator ("not in") instead.
2022-09-10 13:48:14 +05:30
Akshay Joshi 7086719640 Fixed SonarQube issues. 2022-09-08 18:08:58 +05:30
Akshay Joshi 18b77f15dd Remove Alertify from pgAdmin completely. Fixes #7619 2022-09-08 15:16:48 +05:30
Pradip Parkale 8c24d28740 Remove the SQL files for the unsupported versions of the database server. Fixes #7462
Fixed API test cases for Postgres 14.4. Fixes #7527
2022-08-09 13:24:52 +05:30
Yogesh Mahajan fa6b77b42c Port Role Reassign dialog to React. Fixes #7344 2022-08-05 16:04:15 +05:30
Akshay Joshi b36004b702 The following are the initial fixes for PG15:
1) From PG 15 onward, the datlastsysoid has been removed from the table pg_database.
    We have added the constant _DATABASE_LAST_SYSTEM_OID = 16383, all the objects below
    this value are considered to be system objects. Modified the pgAdmin logic accordingly.

 2) Concatenation operator '||' needs a specific typecast to be applied to query variables. Modified SQL's accordingly.

Fixes #7283
2022-05-17 20:32:17 +05:30
Pradip Parkale cb052f1988 1) Port Properties panel for collection node, Dashboard, and SQL panel in React. Fixes #7132
2) Added transaction start time to Server activity sessions view. Fixes #7215
2022-03-30 12:06:59 +05:30
Yogesh Mahajan 1141aeb524 1) Fixes the incorrect title shown for the error message in restore/backup.
2) Doc updates for webserver authentication.
3) Cleanup task for API tests.
2022-02-07 11:51:27 +05:30
Akshay Joshi 343c3ee49c Fixed following code smells reported by SonarQube:
1) Remove this redundant jump.
 2) Remove this commented out code.
 3) Variables should not be shadowed.
2022-01-21 18:54:23 +05:30
Akshay Joshi e38c38cd58 Fixed following SonarQube code smells:
1) Remove this useless assignment to a variable.
2) Remove the unused local variable.
2022-01-12 14:53:19 +05:30
Akshay Joshi 2786f7ac5a Update copyright notices for 2022 2022-01-04 13:54:25 +05:30
Akshay Joshi fd53e4f5f9 Replace Alertify alert and confirm with React-based model dialog. Fixes #7053 2021-12-07 18:52:40 +05:30
Akshay Joshi c6424e3897 Replaced alertifyjs notifiers with React-based notistack. Fixes #7004 2021-12-02 16:05:52 +05:30
Akshay Joshi d644b4f94e 1) Replace Flask-BabelEx with Flask-Babel. Fixes #6088
2) Upgrade Flask to version 2. Fixes #7010
2021-11-24 17:22:57 +05:30
Rahul Shirsat 8eb6f8061d Ensure that dialog should be opened when clicking on Reassign/Drop owned menu. Fixes #6949 2021-10-25 11:47:28 +05:30
Akshay Joshi d2a7f7fffe Fixed API test cases for PG 14 2021-10-20 18:39:42 +05:30
Akshay Joshi 1b6ab6b3bb 1) Fixed pgAgent related issues. Fixes #6827
2) Added helpMessageMode parameter to hide help messages from properties panel.
2021-09-29 19:48:43 +05:30
Aditya Toshniwal 332351efaf 1. Date time control not working on firefox.
2. Replace moment with date-fns in date time control as date-fns is more maintained.

Fixes #6816
2021-09-29 13:43:05 +05:30
Khushboo Vashi 483e2ca8d0 Port browser tree to React. Fixes #6129 2021-09-27 16:44:26 +05:30
Nikhil Mohite f192be3667 Added flag to check before adding 'IF NOT EXISTS' and 'OR REPLACE' clause to the SQL. While creating any object the respective clause should not be added. 2021-09-22 19:14:19 +05:30
Akshay Joshi 1b7a77f5cb Port pgAgent and it's child nodes to react. Fixes #6645 2021-09-09 13:03:54 +05:30