Index: dlgType.cpp =================================================================== RCS file: /projects/pgadmin3/src/ui/dlgType.cpp,v retrieving revision 1.23 retrieving revision 1.24 diff -Lsrc/ui/dlgType.cpp -Lsrc/ui/dlgType.cpp -u -w -r1.23 -r1.24 --- src/ui/dlgType.cpp +++ src/ui/dlgType.cpp @@ -137,12 +137,10 @@ btnAdd->Disable(); btnRemove->Disable(); - wxStringTokenizer members(type->GetTypesList(), wxT(",")); - while (members.HasMoreTokens()) - { - wxString str=members.GetNextToken().Strip(wxString::both); - lstMembers->AppendItem(0, str.BeforeFirst(' '), str.AfterFirst(' ')); - } + wxArrayString elements=type->GetTypesArray(); + size_t i; + for (i=0 ; i < elements.GetCount() ; i+=2) + lstMembers->AppendItem(0, elements.Item(i), elements.Item(i+1)); cbDatatype->Disable(); txtLength->Disable(); Index: pgType.cpp =================================================================== RCS file: /projects/pgadmin3/src/schema/pgType.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -Lsrc/schema/pgType.cpp -Lsrc/schema/pgType.cpp -u -w -r1.22 -r1.23 --- src/schema/pgType.cpp +++ src/schema/pgType.cpp @@ -91,12 +91,14 @@ int anzvar=0; while (!set->Eof()) { + wxString element; if (anzvar++) { typesList += wxT(", "); quotedTypesList += wxT(",\n "); } typesList += set->GetVal(wxT("attname")) + wxT(" "); + typesArray.Add(set->GetVal(wxT("attname"))); quotedTypesList += qtIdent(set->GetVal(wxT("attname"))) + wxT(" "); pgDatatype dt(set->GetVal(wxT("nspname")), set->GetVal(wxT("typname")), @@ -105,6 +107,7 @@ wxString nspname=set->GetVal(wxT("nspname")); typesList += dt.GetSchemaPrefix(GetDatabase()) + dt.FullName(); + typesArray.Add(dt.GetSchemaPrefix(GetDatabase()) + dt.FullName()); quotedTypesList += dt.GetQuotedSchemaPrefix(GetDatabase()) + dt.QuotedFullName(); set->MoveNext(); Index: pgType.h =================================================================== RCS file: /projects/pgadmin3/src/include/pgType.h,v retrieving revision 1.17 retrieving revision 1.18 diff -Lsrc/include/pgType.h -Lsrc/include/pgType.h -u -w -r1.17 -r1.18 --- src/include/pgType.h +++ src/include/pgType.h @@ -60,6 +60,7 @@ bool GetIsRecordType() const { return isRecordType; } void iSetIsRecordType(const bool b) { isRecordType=b; } void iSetRelOid(const OID d) { relOid=d; } + const wxArrayString &GetTypesArray() { return typesArray; } wxString GetTypesList() const { return typesList; } wxString GetQuotedTypesList() const {return quotedTypesList; } bool GetSystemObject() const { return pgSchemaObject::GetSystemObject() || isRecordType; } @@ -71,6 +72,7 @@ private: wxString inputFunction, outputFunction, defaultVal, element, delimiter, alignment, storage, typesList, quotedTypesList, sendFunction, receiveFunction; + wxArrayString typesArray; long internalLength; bool passedByValue, isComposite, isRecordType; OID relOid;