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])

Reply via email to