Log Message:
-----------
fix composite types with comma in element type
Modified Files:
--------------
pgadmin3/src/ui:
dlgType.cpp (r1.23 -> r1.24)
pgadmin3/src/schema:
pgType.cpp (r1.22 -> r1.23)
pgadmin3/src/include:
pgType.h (r1.17 -> r1.18)
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;
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])