Re: Introduction - Mailing list pgadmin-hackers

From Dave Page
Subject Re: Introduction
Date
Msg-id FED2B709E3270E4B903EB0175A49BCB1047597@dogbert.vale-housing.co.uk
Whole thread Raw
In response to Introduction  ("Mark A. Taff" <mark@libertycreek.net>)
Responses Re: Introduction
List pgadmin-hackers
 
-----Original Message-----
From: Mark A. Taff [mailto:mark@libertycreek.net]
Sent: 14 February 2002 17:28
To: pgadmin-hackers
Subject: [pgadmin-hackers] Introduction

Howdy!

 

I am interested in helping to develop pgAdmin.

 

By way of e-introduction, my name is Mark Taff.  I am a web and database developer living near Seattle, Washington, USA.

 

Hi, I'm Dave!! :-) (guess you already know that though...).

 There are a number of features/improvements to pgAdmin I would like to see (and am willing to work on!), but I don't want to waste my time, so I thought it best to run them by you guys and get your feedback before I do anything.  I don't want to be working at cross-purposes with the other developers.  So, in no particular order...

 

 

  1. The treeview should automatically show newly created objects if other objects of the same type are currently displayed.  The user should never have to `refresh below selection` unless they are in a multi-author environment, and even then it may make sense to periodically (during low cpu use) check the server for objects we aren't aware of.  

    When an object is created or dropped through IDE, the treeview *is* updated, however, if you execute SQL manually, or another developer creates something it will not be. I'm not convinced that you will find a good way to solve this problem. Of course, with software like SQL Server, the management console is much more tightly integrated with the server. pgAdmin users are running ODBC connections, often over slow connections so this level of integration is not possible.
     
  2. I would like to see the treeview root item be `servers`, which would have sub nodes for different servers.  I work in a multi-server environment, and it would be nice to be able to work with objects on multiple servers at the same time.  This would open up the possibility of easily `copying` objects from one server to another.  

    Agreed. This will require significant reworking of the higher levels of pgSchema. I did look at it a month or so back and left it when I realised how much work was involved.
  3. The re-engineered SQL code is nice, but it has limited usefulness.  I do most of my work using the execute sql window because in good coding tradition, I like to leave lots of comments about just what the heck is going on.  This is most important for functions (and function-like objects).  I also like to save the SQL for each object as both an individual .sql file and as part of a global class and object-type class files.  This modular approach allows me to pick and choose objects to quickly build a new database.  To implement such a creature, I would suggest an SQL IDE so to speak, much like the VBA editor used in Office applications.  Part of this is also the desired ability to right-click an object in the tree and to be able to edit _my_ sql code (with comments) rather than re-engineered SQL code.  I am keenly interested in making this a reality.  

    The re-engineered SQL is essential to the Revision Control features. The downside with the approach you suggest is that it requires centralised storage of all the SQL - one of the things people often complained about with pgAdmin I was the tables it created in each database. The other side of this, is that most people probably use pgAdmin so they don't have to worry about authoring the SQL themselves, so such a feature would probably be of limited interest.
      
  4. I would like to see a query designer with features like the one in MS SQL Server 2000.  This requires the graphical relationship plugin to be finished first, as it would have to be an optional pane.  The actual interface isn't really important.  What I find important is having relationships, objects and their properties, an sql pane, and a results pane all in one place.  Probably the only way to make that happen is with a full-size form in addition to the main form.  

    Sounds good.
     
  5. Dependencies, dependencies, dependencies!  On of my favorite features of SQL Server is that it tells me when I am trying to delete an object that other objects depend on.  I realize that PostgreSQL doesn't track such dependencies, but that doesn't mean we can't.  We could create a series of PostgreSQL triggers/rules that would create/update a dependencies table on object creation/deletion.  We would then query this relation prior to dropping an object.  This is probably the cleanest approach.  This shouldn't be too hard to implement, as PostgreSQL is kind enough to store object information in selectable tables (hence triggerable, I think).  As this would be making some serious system changes to the server, we should get user permission before creating these rules and triggers on the server, IMO.  

    The last code we worked on for pgAdmin I tracked dependencies. It was very complex, and there were many issues we could not resolve satisfactorily. For example, it's very difficult to figure out what objects a PL function written in language X is dependant on.

    We are not currently re-implementing this code, for that reason, and because there has been talk of PostgreSQL having a pg_dependencies table soon anyway.
  6. The log window needs to have a close button to allow it to be closed.  If you are silly, as I am sometimes, you set the log window to always on top positioned in the center of the screen space.  The next time you open pgAdmin, you can't do anything because the tips form is modal and hidden beneath the log window.  I have to call myself silly, then use task manager to forcibly kill pgAdmin, then edit the registry to change the log window options.  

    The 'Show Log Window' option on the 'View' menu is your friend!! Feel free to add a close button, but please make sure it works with that menu option appropriately.

 

 Happy hacking!

 

Regards, Dave.

pgadmin-hackers by date:

Previous
From: "Mark A. Taff"
Date:
Subject: Introduction
Next
From: "Rod Taylor"
Date:
Subject: Re: Introduction