SVN Commit by andreas: r4286 - in trunk/pgadmin3: . src/ctl src/dlg src/frm src/include src/include/ctl src/schema src/ui

From: svn(at)pgadmin(dot)org
To: pgadmin-hackers(at)postgresql(dot)org
Subject: SVN Commit by andreas: r4286 - in trunk/pgadmin3: . src/ctl src/dlg src/frm src/include src/include/ctl src/schema src/ui
Date: 2005-06-07 18:29:53
Message-ID: 200506071829.j57ITrhV023904@developer.pgadmin.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Author: andreas
Date: 2005-06-07 19:29:52 +0100 (Tue, 07 Jun 2005)
New Revision: 4286

Modified:
trunk/pgadmin3/CHANGELOG.txt
trunk/pgadmin3/src/ctl/ctlComboBox.cpp
trunk/pgadmin3/src/dlg/dlgAggregate.cpp
trunk/pgadmin3/src/frm/frmStatus.cpp
trunk/pgadmin3/src/include/ctl/ctlComboBox.h
trunk/pgadmin3/src/include/dlgAggregate.h
trunk/pgadmin3/src/include/pgAggregate.h
trunk/pgadmin3/src/schema/pgAggregate.cpp
trunk/pgadmin3/src/ui/dlgAggregate.xrc
Log:
Support for pgsql 8.1 aggregate sortop

Modified: trunk/pgadmin3/CHANGELOG.txt
===================================================================
--- trunk/pgadmin3/CHANGELOG.txt 2005-06-07 18:23:49 UTC (rev 4285)
+++ trunk/pgadmin3/CHANGELOG.txt 2005-06-07 18:29:52 UTC (rev 4286)
@@ -17,9 +17,10 @@
</ul>
<br>
<ul>
+ <li>2005-06-03 AP Support for pgsql 8.1 aggregate sortop
<li>2005-06-03 AP Support for pgsql 8.1 pg_stat_activity
<li>2005-06-03 AP Support for pgsql 8.1 instrumentation
- <li>2005-06-01 AP Support for Procedures aka functions with out parameters
+ <li>2005-06-01 AP Support for Procedures aka functions "with out-parameters"
<li>2005-06-01 AP Support for EDB8.0
<li>2005-05-31 DP 1.2.3 Fix domain RE SQL, per Ivan
<li>2005-05-31 DP 1.2.3 Add missing ; to RE SQL, per Ivan

Modified: trunk/pgadmin3/src/ctl/ctlComboBox.cpp
===================================================================
--- trunk/pgadmin3/src/ctl/ctlComboBox.cpp 2005-06-07 18:23:49 UTC (rev 4285)
+++ trunk/pgadmin3/src/ctl/ctlComboBox.cpp 2005-06-07 18:29:52 UTC (rev 4286)
@@ -25,6 +25,26 @@
};


+
+
+int wxComboBoxFix::Append(const wxString& item, const wxString &str)
+{
+ return wxComboBox::Append(item, new StringClientData(str));
+}
+
+
+int wxComboBoxFix::Append(const wxString& item, long l)
+{
+ return wxComboBox::Append(item, (void*)l);
+}
+
+
+int wxComboBoxFix::Append(const wxString& item, OID oid)
+{
+ return wxComboBox::Append(item, (void*)oid);
+}
+
+
int wxComboBoxFix::FillLongKey(pgConnBase *conn, const wxChar *qry)
{
int cnt=0;
@@ -33,7 +53,7 @@
{
long l=set.GetLong(0);
wxString txt=set.GetVal(1);
- Append(txt, (void*)l);
+ Append(txt, l);
cnt++;
}
return cnt;
@@ -48,7 +68,7 @@
{
OID oid=set.GetOid(0);
wxString txt=set.GetVal(1);
- Append(txt, (void*)oid);
+ Append(txt, oid);
cnt++;
}
return cnt;
@@ -63,23 +83,30 @@
{
wxString str=set.GetVal(0);
wxString txt=set.GetVal(1);
- Append(txt, new StringClientData(txt));
+ Append(txt, str);
cnt++;
}
return cnt;
}
+
long wxComboBoxFix::GetLongKey(int sel)
{
+ if (sel < 0)
+ sel = GetSelection();
return (long)GetClientData(sel);
}

OID wxComboBoxFix::GetOIDKey(int sel)
{
+ if (sel < 0)
+ sel = GetSelection();
return (OID)GetClientData(sel);
}

wxString wxComboBoxFix::GetStringKey(int sel)
{
+ if (sel < 0)
+ sel = GetSelection();
StringClientData *scd=(StringClientData*)GetClientObject(sel);
if (scd)
return scd->str;

Modified: trunk/pgadmin3/src/dlg/dlgAggregate.cpp
===================================================================
--- trunk/pgadmin3/src/dlg/dlgAggregate.cpp 2005-06-07 18:23:49 UTC (rev 4285)
+++ trunk/pgadmin3/src/dlg/dlgAggregate.cpp 2005-06-07 18:29:52 UTC (rev 4286)
@@ -31,16 +31,18 @@
#define cbStateType CTRL_COMBOBOX2("cbStateType")
#define cbStateFunc CTRL_COMBOBOX("cbStateFunc")
#define cbFinalFunc CTRL_COMBOBOX("cbFinalFunc")
+#define cbSortOp CTRL_COMBOBOX("cbSortOp")
#define txtInitial CTRL_TEXT("txtInitial")



BEGIN_EVENT_TABLE(dlgAggregate, dlgTypeProperty)
EVT_TEXT(XRCID("cbBaseType"), dlgAggregate::OnChangeTypeBase)
- EVT_COMBOBOX(XRCID("cbBaseType"), dlgProperty::OnChange)
+ EVT_COMBOBOX(XRCID("cbBaseType"), dlgAggregate::OnChangeType)
EVT_TEXT(XRCID("cbStateType"), dlgAggregate::OnChangeTypeState)
- EVT_COMBOBOX(XRCID("cbStateType"), dlgProperty::OnChange)
+ EVT_COMBOBOX(XRCID("cbStateType"), dlgAggregate::OnChangeType)
EVT_COMBOBOX(XRCID("cbStateFunc"), dlgProperty::OnChange)
+ EVT_COMBOBOX(XRCID("cbSortOp"), dlgProperty::OnChange)
EVT_TEXT(XRCID("cbStateFunc"), dlgProperty::OnChange)
END_EVENT_TABLE();

@@ -65,6 +67,9 @@
if (!connection->BackendMinimumVersion(7, 5))
cbOwner->Disable();

+ if (!connection->BackendMinimumVersion(8, 1))
+ cbSortOp->Disable();
+
if (aggregate)
{
// edit mode
@@ -79,14 +84,17 @@
cbFinalFunc->Append(aggregate->GetFinalFunction());
cbFinalFunc->SetSelection(0);

+ cbSortOp->Append(aggregate->GetSortOp());
+ cbSortOp->SetSelection(0);
+
txtInitial->SetValue(aggregate->GetInitialCondition());

if (!connection->BackendMinimumVersion(7, 4))
txtName->Disable();
cbBaseType->Disable();
cbStateType->Disable();
- cbStateFunc->Disable();
cbFinalFunc->Disable();
+ cbSortOp->Disable();
txtInitial->Disable();
}
else
@@ -136,20 +144,20 @@
void dlgAggregate::OnChangeTypeBase(wxCommandEvent &ev)
{
cbBaseType->GuessSelection(ev);
- CheckChange();
+ OnChangeType(ev);
}

void dlgAggregate::OnChangeTypeState(wxCommandEvent &ev)
{
cbStateType->GuessSelection(ev);
- CheckChange();
+ OnChangeType(ev);
}

void dlgAggregate::OnChangeType(wxCommandEvent &ev)
{
- procedures.Clear();
cbStateFunc->Clear();
cbFinalFunc->Clear();
+ cbSortOp->Clear();

if (cbBaseType->GetGuessedSelection() >= 0 && cbStateType->GetGuessedSelection() >= 0)
{
@@ -158,21 +166,21 @@
wxT(" FROM pg_proc p\n")
wxT(" JOIN pg_type t ON t.oid=p.prorettype\n")
wxT(" JOIN pg_namespace n ON n.oid=pronamespace\n")
- wxT(" WHERE proargtypes[2] = 0");
+ wxT(" WHERE COALESCE(proargtypes[2],0) = 0");


pgSet *set=connection->ExecuteSet(qry +
wxT("\n AND prorettype = ") + GetTypeOid(cbStateType->GetGuessedSelection()+1) +
wxT("\n AND proargtypes[0] = ") + GetTypeOid(cbStateType->GetGuessedSelection()+1) +
- wxT("\n AND (proargtypes[1]= 0 OR proargtypes[1]= ")
+ wxT("\n AND (COALESCE(proargtypes[1],0) = 0 OR proargtypes[1]= ")
+ GetTypeOid(cbBaseType->GetGuessedSelection()) + wxT(")"));

if (set)
{
while (!set->Eof())
{
- procedures.Add(database->GetQuotedSchemaPrefix(set->GetVal(wxT("nspname"))) + qtIdent(set->GetVal(wxT("proname"))));
- cbStateFunc->Append(database->GetSchemaPrefix(set->GetVal(wxT("nspname"))) + set->GetVal(wxT("proname")));
+ cbStateFunc->Append(database->GetSchemaPrefix(set->GetVal(wxT("nspname"))) + set->GetVal(wxT("proname")),
+ database->GetQuotedSchemaPrefix(set->GetVal(wxT("nspname"))) + qtIdent(set->GetVal(wxT("proname"))));

set->MoveNext();
}
@@ -180,25 +188,46 @@
}


- procedures.Add(wxEmptyString);
cbFinalFunc->Append(wxT(" "));

set=connection->ExecuteSet(qry +
wxT("\n AND proargtypes[0] = ") + GetTypeOid(cbStateType->GetGuessedSelection()+1) +
- wxT("\n AND proargtypes[1]= 0"));
+ wxT("\n AND COALESCE(proargtypes[1],0)= 0"));

if (set)
{
while (!set->Eof())
{
- procedures.Add(database->GetQuotedSchemaPrefix(set->GetVal(wxT("nspname"))) + qtIdent(set->GetVal(wxT("proname"))));
- cbFinalFunc->Append(database->GetSchemaPrefix(set->GetVal(wxT("nspname"))) + set->GetVal(wxT("proname")));
+ cbFinalFunc->Append(database->GetSchemaPrefix(set->GetVal(wxT("nspname"))) + set->GetVal(wxT("proname")),
+ database->GetQuotedSchemaPrefix(set->GetVal(wxT("nspname"))) + qtIdent(set->GetVal(wxT("proname"))));

set->MoveNext();
}
delete set;
}
+
+ cbSortOp->Append(wxT(" "), wxEmptyString);
+
+ set=connection->ExecuteSet(
+ wxT("SELECT oprname, nspname\n")
+ wxT(" FROM pg_operator op\n")
+ wxT(" JOIN pg_namespace nsp on nsp.oid=oprnamespace\n")
+ wxT(" WHERE oprleft = ") + GetTypeOid(cbBaseType->GetGuessedSelection()) + wxT("\n")
+ wxT(" AND oprright = ") + GetTypeOid(cbBaseType->GetGuessedSelection()) + wxT("\n"));
+
+ if (set)
+ {
+ while (!set->Eof())
+ {
+ wxString key = database->GetQuotedSchemaPrefix(set->GetVal(wxT("nspname"))) + qtIdent(set->GetVal(wxT("oprname")));
+ wxString txt = database->GetSchemaPrefix(set->GetVal(wxT("nspname"))) + set->GetVal(wxT("oprname"));
+ cbSortOp->Append(txt, key);
+ set->MoveNext();
+ }
+ delete set;
+ }
}
+
CheckChange();
}

@@ -221,18 +250,22 @@
name=GetName();
sql = wxT("CREATE AGGREGATE ") + schema->GetQuotedPrefix() + qtIdent(name)
+ wxT("(\n BASETYPE=") + GetQuotedTypename(cbBaseType->GetGuessedSelection())
- + wxT(",\n SFUNC=") + procedures.Item(cbStateFunc->GetSelection())
+ + wxT(",\n SFUNC=") + cbStateFunc->GetStringKey()
+ wxT(", STYPE=") + GetQuotedTypename(cbStateType->GetGuessedSelection() +1); // skip "any" type

if (cbFinalFunc->GetSelection() > 0)
{
sql += wxT(",\n FINALFUNC=")
- + procedures.Item(cbFinalFunc->GetSelection() + cbStateFunc->GetCount());
+ + cbFinalFunc->GetStringKey();
}
wxString initial=txtInitial->GetValue().Strip(wxString::both);
if (!initial.IsEmpty())
sql += wxT(",\n INITCOND=") + qtString(initial);
-
+
+ wxString opr=cbSortOp->GetStringKey();
+ if (!opr.IsEmpty())
+ sql += wxT(",\n SORTOP=") + opr;
+
sql += wxT(");\n");

AppendOwnerNew(sql, wxT("AGGREGATE ") + schema->GetQuotedPrefix() + qtIdent(name)+

Modified: trunk/pgadmin3/src/frm/frmStatus.cpp
===================================================================
--- trunk/pgadmin3/src/frm/frmStatus.cpp 2005-06-07 18:23:49 UTC (rev 4285)
+++ trunk/pgadmin3/src/frm/frmStatus.cpp 2005-06-07 18:29:52 UTC (rev 4286)
@@ -712,7 +712,7 @@
wxString fn= set->GetVal(wxT("filename"));
wxDateTime ts=set->GetDateTime(wxT("filetime"));

- cbLogfiles->Append(DateToAnsiStr(ts), new wxDateTime(ts));
+ cbLogfiles->Append(DateToAnsiStr(ts), (void*)new wxDateTime(ts));

set->MoveNext();
}

Modified: trunk/pgadmin3/src/include/ctl/ctlComboBox.h
===================================================================
--- trunk/pgadmin3/src/include/ctl/ctlComboBox.h 2005-06-07 18:23:49 UTC (rev 4285)
+++ trunk/pgadmin3/src/include/ctl/ctlComboBox.h 2005-06-07 18:29:52 UTC (rev 4286)
@@ -17,6 +17,8 @@
#include <wx/wx.h>
#include "base/base.h"

+
+
class pgConnBase;
class wxComboBoxFix : public wxComboBox
{
@@ -25,13 +27,21 @@
int FillLongKey(pgConnBase *conn, const wxChar *qry);
int FillOidKey(pgConnBase *conn, const wxChar *qry);
int FillStringKey(pgConnBase *conn, const wxChar *qry);
- long GetLongKey(int sel);
- OID GetOIDKey(int sel);
- wxString GetStringKey(int sel);
+ long GetLongKey(int sel=-1);
+ OID GetOIDKey(int sel=-1);
+ wxString GetStringKey(int sel=-1);
bool SetKey(long val);
bool SetKey(OID val);
bool SetKey(const wxString &val);

+ int Append(const wxString& item) { return wxComboBox::Append(item); }
+ int Append(const wxString& item, void *data) { return wxComboBox::Append(item, data); }
+ int Append(const wxString& item, const wxString &str);
+ int Append(const wxString& item, long l);
+ int Append(const wxString& item, OID oid);
+
+
+
#ifdef __WXMSW__
wxString GetValue() const { return wxGetWindowText(GetHwnd()); }
#endif

Modified: trunk/pgadmin3/src/include/dlgAggregate.h
===================================================================
--- trunk/pgadmin3/src/include/dlgAggregate.h 2005-06-07 18:23:49 UTC (rev 4285)
+++ trunk/pgadmin3/src/include/dlgAggregate.h 2005-06-07 18:29:52 UTC (rev 4286)
@@ -36,8 +36,6 @@
void OnChangeType(wxCommandEvent &ev);
void OnChangeTypeBase(wxCommandEvent &ev);
void OnChangeTypeState(wxCommandEvent &ev);
-
- wxArrayString procedures;

DECLARE_EVENT_TABLE();
};

Modified: trunk/pgadmin3/src/include/pgAggregate.h
===================================================================
--- trunk/pgadmin3/src/include/pgAggregate.h 2005-06-07 18:23:49 UTC (rev 4285)
+++ trunk/pgadmin3/src/include/pgAggregate.h 2005-06-07 18:29:52 UTC (rev 4286)
@@ -48,14 +48,19 @@
void iSetFinalFunction(const wxString& s) { finalFunction=s; }
wxString GetInitialCondition() { return initialCondition; }
void iSetInitialCondition(const wxString& s) { initialCondition=s; }
+ wxString GetSortOp() { return sortOp; }
+ void iSetSortOp(const wxString &s) { sortOp=s; }
+ wxString GetQuotedSortOp() { return quotedSortOp; }
+ void iSetQuotedSortOp(const wxString &s) { quotedSortOp=s; }

+
bool DropObject(wxFrame *frame, wxTreeCtrl *browser, bool cascaded);
wxString GetSql(wxTreeCtrl *browser);
pgObject *Refresh(wxTreeCtrl *browser, const wxTreeItemId item);

private:
pgSchema *schema;
- wxString inputType, stateType, finalType,
+ wxString inputType, stateType, finalType, sortOp, quotedSortOp,
stateFunction, finalFunction, initialCondition;
};

Modified: trunk/pgadmin3/src/schema/pgAggregate.cpp
===================================================================
--- trunk/pgadmin3/src/schema/pgAggregate.cpp 2005-06-07 18:23:49 UTC (rev 4285)
+++ trunk/pgadmin3/src/schema/pgAggregate.cpp 2005-06-07 18:29:52 UTC (rev 4286)
@@ -50,6 +50,8 @@
AppendIfFilled(sql, wxT(",\n FINALFUNC="), qtIdent(GetFinalFunction()));
if (GetInitialCondition().length() > 0)
sql += wxT(",\n INITCOND=") + qtString(GetInitialCondition());
+ AppendIfFilled(sql, wxT(",\n SORTOP="), GetQuotedSortOp());
+
sql += wxT("\n);\n")
+ GetOwnerSql(8, 0, wxT("AGGREGATE ") + GetQuotedFullIdentifier()
+ wxT("(") + qtIdent(GetInputType())
@@ -88,6 +90,8 @@
properties->AppendItem(_("State function"), GetStateFunction());
properties->AppendItem(_("Final type"), GetFinalType());
properties->AppendItem(_("Final function"), GetFinalFunction());
+ if (GetConnection()->BackendMinimumVersion(8,1))
+ properties->AppendItem(_("Sort operator"), GetSortOp());
properties->AppendItem(_("Initial condition"), GetInitialCondition());
properties->AppendItem(_("System aggregate?"), GetSystemObject());
properties->AppendItem(_("Comment"), GetComment());
@@ -113,7 +117,7 @@
pgObject *pgAggregate::ReadObjects(pgCollection *collection, wxTreeCtrl *browser, const wxString &restriction)
{
pgAggregate *aggregate=0;
- pgSet *aggregates= collection->GetDatabase()->ExecuteSet(
+ wxString sql=
wxT("SELECT aggfnoid::oid, proname AS aggname, pg_get_userbyid(proowner) AS aggowner, aggtransfn,\n")
wxT( "aggfinalfn, proargtypes[0] AS aggbasetype, ")
wxT( "CASE WHEN (ti.typlen = -1 AND ti.typelem != 0) THEN (SELECT at.typname FROM pg_type at WHERE at.oid = ti.typelem) || '[]' ELSE ti.typname END as inputname, ")
@@ -121,8 +125,20 @@
wxT( "CASE WHEN (tt.typlen = -1 AND tt.typelem != 0) THEN (SELECT at.typname FROM pg_type at WHERE at.oid = tt.typelem) || '[]' ELSE tt.typname END as transname, ")
wxT( "prorettype AS aggfinaltype, ")
wxT( "CASE WHEN (tf.typlen = -1 AND tf.typelem != 0) THEN (SELECT at.typname FROM pg_type at WHERE at.oid = tf.typelem) || '[]' ELSE tf.typname END as finalname, ")
- wxT( "agginitval, description\n")
- wxT(" FROM pg_aggregate ag\n")
+ wxT( "agginitval, description");
+
+ if (collection->GetDatabase()->BackendMinimumVersion(8, 1))
+ {
+ sql += wxT(", oprname, opn.nspname as oprnsp\n")
+ wxT(" FROM pg_aggregate ag\n")
+ wxT(" LEFT OUTER JOIN pg_operator op ON op.oid=aggsortop\n")
+ wxT(" LEFT OUTER JOIN pg_namespace opn ON opn.oid=op.oprnamespace");
+ }
+ else
+ sql += wxT("\n FROM pg_aggregate ag\n");
+
+
+ pgSet *aggregates= collection->GetDatabase()->ExecuteSet(sql +
wxT(" JOIN pg_proc pr ON pr.oid = ag.aggfnoid\n")
wxT(" JOIN pg_type ti on ti.oid=proargtypes[0]\n")
wxT(" JOIN pg_type tt on tt.oid=aggtranstype\n")
@@ -143,15 +159,28 @@
if (aggregates->GetVal(wxT("inputname")) == wxT("any"))
aggregate->iSetInputType(wxT("\"any\""));
else
- aggregate->iSetInputType(aggregates->GetVal(wxT("inputname")));
+ aggregate->iSetInputType(aggregates->GetVal(wxT("inputname")));
aggregate->iSetStateType(aggregates->GetVal(wxT("transname")));
aggregate->iSetStateFunction(aggregates->GetVal(wxT("aggtransfn")));
aggregate->iSetFinalType(aggregates->GetVal(wxT("finalname")));
- aggregate->iSetFinalFunction(aggregates->GetVal(wxT("aggfinalfn")));
+
+ wxString final=aggregates->GetVal(wxT("aggfinalfn"));
+ if (final != wxT("-"))
+ aggregate->iSetFinalFunction(final);
aggregate->iSetInitialCondition(aggregates->GetVal(wxT("agginitval")));
aggregate->iSetComment(aggregates->GetVal(wxT("description")));
+ if (collection->GetDatabase()->BackendMinimumVersion(8, 1))
+ {
+ wxString oprname=aggregates->GetVal(wxT("oprname"));
+ if (!oprname.IsEmpty())
+ {
+ wxString oprnsp=aggregates->GetVal(wxT("oprnsp"));
+ aggregate->iSetSortOp(collection->GetDatabase()->GetSchemaPrefix(oprnsp) + oprname);
+ aggregate->iSetQuotedSortOp(collection->GetDatabase()->GetQuotedSchemaPrefix(oprnsp)
+ + qtIdent(oprname));
+ }
+ }

-
if (browser)
{
collection->AppendBrowserItem(browser, aggregate);

Modified: trunk/pgadmin3/src/ui/dlgAggregate.xrc
===================================================================
--- trunk/pgadmin3/src/ui/dlgAggregate.xrc 2005-06-07 18:23:49 UTC (rev 4285)
+++ trunk/pgadmin3/src/ui/dlgAggregate.xrc 2005-06-07 18:29:52 UTC (rev 4286)
@@ -1,4 +1,4 @@
-<?xml version="1.0" ?>
+<?xml version="1.0" encoding="ISO-8859-1"?>
<resource>
<object class="wxDialog" name="dlgAggregate">
<title></title>
@@ -7,105 +7,170 @@
<label>Properties</label>
<object class="wxPanel" name="pnlProperties">
<object class="wxStaticText" name="stName">
+
<label>Name</label>
+
<pos>5,7d</pos>
</object>
<object class="wxTextCtrl" name="txtName">
+
<pos>70,5d</pos>
+
<size>135,-1d</size>
</object>
<object class="wxStaticText" name="stOID">
+
<label>OID</label>
+
<pos>5,22d</pos>
</object>
<object class="wxTextCtrl" name="txtOID">
+
<pos>70,20d</pos>
+
<size>135,-1d</size>
</object>
<object class="wxStaticText" name="stOwner">
+
<label>Owner</label>
+
<pos>5,37d</pos>
</object>
<object class="ctlComboBox" name="cbOwner">
+
<pos>70,35d</pos>
+
<size>135,12d</size>
+
<content/>
+
<style>wxCB_DROPDOWN</style>
</object>
<object class="wxStaticText" name="stBaseType">
+
<label>Input type</label>
+
<pos>5,52d</pos>
</object>
<object class="ctlComboBox" name="cbBaseType">
+
<content/>
+
<pos>70,50d</pos>
+
<size>135,12d</size>
+
<style>wxCB_DROPDOWN</style>
</object>
<object class="wxStaticText" name="stStateType">
+
<label>State type</label>
+
<pos>5,67d</pos>
</object>
<object class="ctlComboBox" name="cbStateType">
+
<content/>
+
<pos>70,65d</pos>
+
<size>135,12d</size>
+
<style>wxCB_DROPDOWN</style>
</object>
<object class="wxStaticText" name="stStateFunc">
+
<label>State function</label>
+
<pos>5,82d</pos>
</object>
<object class="wxComboBox" name="cbStateFunc">
+
<content/>
+
<pos>70,80d</pos>
+
<size>135,12d</size>
+
<style>wxCB_READONLY|wxCB_DROPDOWN</style>
</object>
<object class="wxStaticText" name="stFinalFunc">
+
<label>Final function</label>
+
<pos>5,97d</pos>
</object>
<object class="wxComboBox" name="cbFinalFunc">
+
<content/>
+
<pos>70,95d</pos>
+
<size>135,12d</size>
+
<style>wxCB_READONLY|wxCB_DROPDOWN</style>
</object>
+ <object class="wxStaticText" name="stSortOp">
+ <label>Sort Operator</label>
+ <pos>5,112d</pos>
+ </object>
+ <object class="wxComboBox" name="cbSortOp">
+ <content/>
+ <pos>70,110d</pos>
+ <size>135,12d</size>
+ <style>wxCB_READONLY|wxCB_DROPDOWN</style>
+ </object>
<object class="wxStaticText" name="stInitial">
+
<label>Initial condition</label>
- <pos>5,112d</pos>
+
+ <pos>5,127d</pos>
</object>
<object class="wxTextCtrl" name="txtInitial">
- <pos>70,110d</pos>
+
+ <pos>70,125d</pos>
+
<size>135,-1d</size>
</object>
<object class="wxStaticText" name="stComment">
+
<label>Comment</label>
- <pos>5,127d</pos>
+
+ <pos>5,142d</pos>
</object>
<object class="wxTextCtrl" name="txtComment">
- <pos>70,125d</pos>
- <size>135,72d</size>
+
+ <pos>70,140d</pos>
+
+ <size>135,57d</size>
+
<style>wxTE_MULTILINE</style>
</object>
</object>
+
<selected>1</selected>
</object>
<pos>2,2d</pos>
<size>214,215d</size>
</object>
<object class="wxButton" name="wxID_HELP">
+
<label>Help</label>
+
<pos>3,221d</pos>
</object>
<object class="wxButton" name="wxID_OK">
+
<label>OK</label>
+
<default>1</default>
+
<pos>113,221d</pos>
</object>
<object class="wxButton" name="wxID_CANCEL">
+
<label>Cancel</label>
+
<pos>166,221d</pos>
</object>
<size>218,240d</size>

Browse pgadmin-hackers by date

  From Date Subject
Next Message Diego Gil 2005-06-07 19:51:40 start errors
Previous Message Andreas Pflug 2005-06-07 18:25:59 Re: sys column error