�
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid;
MARGIN-RIGHT: 0px">
<FONT
face=Tahoma size=2>-----Original Message-----From: Mark A. Taff
[mailto:[EMAIL PROTECTED]] Sent: 14 February 2002
17:28To: pgadmin-hackersSubject: [pgadmin-hackers]
Introduction
<FONT face=Arial color=black
size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Howdy!
<FONT face=Arial color=black
size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">�
<FONT face=Arial color=black
size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">I am
interested in helping to develop pgAdmin.
<FONT face=Arial color=black
size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">�
<FONT face=Arial color=black
size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">By way
of e-introduction, my name is Mark Taff.�
I am a web and database developer living near Seattle, Washington,
USA.
<FONT face=Arial color=black
size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">
<SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><SPAN
class=925133519-14022002><FONT
color=#0000ff>�
<SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><SPAN
class=925133519-14022002>Hi, I'm Dave!! :-) (guess you already know that
though...).
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid;
MARGIN-RIGHT: 0px">
<SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><SPAN
class=925133519-14022002>�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. <SPAN
style="mso-spacerun: yes">�I don't want to be working at
cross-purposes with the other developers.<SPAN
style="mso-spacerun: yes">� So, in no particular
order...
<FONT face=Arial color=black
size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">�
<FONT face=Arial color=black
size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">�
<LI class=MsoNormal
style="COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in"><SPAN
class=EmailStyle15><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">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.�<SPAN
class=925133519-14022002><FONT face=Arial color=#0000ff
size=2>�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.�
<LI class=MsoNormal
style="COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in"><SPAN
class=EmailStyle15><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">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. <SPAN
style="mso-spacerun: yes">�This would open up the possibility of
easily `copying` objects from one server to
another.�<SPAN
class=925133519-14022002><FONT face=Arial color=#0000ff
size=2>�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.
<LI class=MsoNormal
style="COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in"><SPAN
class=EmailStyle15><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">The
re-engineered SQL code is nice, but it has limited usefulness.<SPAN
style="mso-spacerun: yes">� 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.<SPAN
style="mso-spacerun: yes">� 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.<SPAN
style="mso-spacerun: yes">� This modular approach allows me to
pick and choose objects to quickly build a new database.<SPAN
style="mso-spacerun: yes">� 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.<SPAN
style="mso-spacerun: yes">� I am keenly interested in making
this a reality.�<SPAN
class=925133519-14022002><FONT face=Arial color=#0000ff
size=2>�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.��
<LI class=MsoNormal
style="COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in"><SPAN
class=EmailStyle15><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">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.<SPAN
style="mso-spacerun: yes">� Probably the only way to make that
happen is with a full-size form in addition to the main
form.�<SPAN
class=925133519-14022002><FONT face=Arial color=#0000ff
size=2>�Sounds good.�
<LI class=MsoNormal
style="COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in"><SPAN
class=EmailStyle15><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size:
12.0pt">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.<SPAN
style="mso-spacerun: yes">� I realize that PostgreSQL doesn't
track such dependencies, but that doesn't mean we can't.<SPAN
style="mso-spacerun: yes">� 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.<SPAN
style="mso-spacerun: yes">� 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).<SPAN
style="mso-spacerun: yes">� 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.�<SPAN
class=925133519-14022002><FONT face=Arial color=#0000ff
size=2>�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.
<LI class=MsoNormal
style="COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in"><SPAN
class=EmailStyle15><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">The
log window needs to have a close button to allow it to be closed. <SPAN
style="mso-spacerun: yes">�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.�<SPAN
class=925133519-14022002><FONT face=Arial color=#0000ff
size=2>�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.
<FONT face=Arial color=black
size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">�
<SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">�<SPAN
class=925133519-14022002>Happy
hacking!
<SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><SPAN
class=925133519-14022002>�
<SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><SPAN
class=925133519-14022002>Regards, Dave.