pgadmin-org / pgadmin4

pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
https://www.pgadmin.org
Other
2.45k stars 640 forks source link

Is it possible to provide built-in procedural language linter for PL/pgSQL or EDB-SPL in pgAdmin4? (RM #6941) #4713

Open dpage opened 2 years ago

dpage commented 2 years ago

Issue migrated from Redmine: https://redmine.postgresql.org/issues/6941 Originally created by Shaikh Nazer at 2021-10-20 09:14:02 UTC.

Dear Team,

As far as I know, currently procedural language codes encounter runtime error due to permission/dependency issues.

And currently there are some server-side procedural language linter extensions avaialble, https://github.com/okbob/plpgsql_lint https://github.com/okbob/plpgsql_check

Recently some developers of our customers suggest that it would be great if pgADmin4 can provide client-side PL/pgSQL or EDB-SPL linter without any server-side extension.

I find that there are some such client-side linters available for Oracle PL/SQL code development. https://atom.io/packages/plsql-linter https://github.com/github/super-linter/issues/682 http://stevenfeuersteinonplsql.blogspot.com/2015/04/lint-checkers-for-plsql.html https://marketplace.visualstudio.com/items?itemName=xyz.plsql-language https://marketplace.visualstudio.com/items?itemName=Oracle.oracledevtools

Checking object dependency is a demanding feature because writing stored function/procedure is prone to runtime error.

If pgAdmin4 can provide such feature, it will make users to develop procedural language codes more easily, and it can also reduce the use of third-party extensions in enterprise environment.

Can you consider to bring such feature in the future pgAdmin4 release?

Best Regards.

dpage commented 2 years ago

Comment migrated from Redmine: https://redmine.postgresql.org/issues/6941#note-1 Originally created by Yogesh Mahajan at 2021-10-22 11:06:51 UTC.

Redmine ticket header update:

Name Old Value New Value
Sprint changed Ready