Hi,

Patch attached. It's really a simple one.

It add a UI to change the storage option. The combobox is enabled at
modification time.

Comments?


-- 
Guillaume.
 http://www.postgresqlfr.org
 http://dalibo.com
diff --git a/pgadmin/dlg/dlgColumn.cpp b/pgadmin/dlg/dlgColumn.cpp
index f62bf87..fc09324 100644
--- a/pgadmin/dlg/dlgColumn.cpp
+++ b/pgadmin/dlg/dlgColumn.cpp
@@ -36,6 +36,7 @@
 #define txtValue            CTRL_TEXT("txtValue")
 #define btnAdd              CTRL_BUTTON("wxID_ADD")
 #define btnRemove           CTRL_BUTTON("wxID_REMOVE")
+#define cbStorage           CTRL_COMBOBOX1("cbStorage")
 
 
 BEGIN_EVENT_TABLE(dlgColumn, dlgTypeProperty)
@@ -53,6 +54,8 @@ BEGIN_EVENT_TABLE(dlgColumn, dlgTypeProperty)
     EVT_BUTTON(wxID_REMOVE,                         dlgColumn::OnVarRemove)
     EVT_TEXT(XRCID("cbVarname"),                    dlgColumn::OnVarnameSelChange)
     EVT_COMBOBOX(XRCID("cbVarname"),                dlgColumn::OnVarnameSelChange)
+    EVT_TEXT(XRCID("cbStorage"),                    dlgProperty::OnChange)
+    EVT_COMBOBOX(XRCID("cbStorage"),                dlgProperty::OnChange)
 
 #ifdef __WXMAC__
     EVT_SIZE(                                       dlgColumn::OnChangeSize)
@@ -224,6 +227,8 @@ int dlgColumn::Go(bool modal)
         txtValue->Enable(false);
     }
 
+    cbStorage->Enable(true);
+
     if (column)
     {
         // edit mode
@@ -281,6 +286,7 @@ int dlgColumn::Go(bool modal)
             txtLength->Disable();
             cbDatatype->Disable();
             txtAttstattarget->Disable();
+            cbStorage->Disable();
         }
         else if (column->GetTable()->GetMetaType() == PGM_VIEW) // Disable controls not valid for view columns
         {
@@ -289,6 +295,7 @@ int dlgColumn::Go(bool modal)
             txtLength->Disable();
             cbDatatype->Disable();
             txtAttstattarget->Disable();
+            cbStorage->Disable();
         }
          else if (column->GetTable()->GetMetaType() == GP_EXTTABLE) // Disable controls not valid for external table columns
         {
@@ -298,6 +305,7 @@ int dlgColumn::Go(bool modal)
             cbDatatype->Disable();
             txtAttstattarget->Disable();
             txtDefault->Disable();
+            cbStorage->Disable();
         }
         else if (table->GetOfTypeOid() > 0)
         {
@@ -307,8 +315,11 @@ int dlgColumn::Go(bool modal)
             cbDatatype->Disable();
             txtAttstattarget->Enable();
             txtDefault->Enable();
+            cbStorage->Enable();
         }
 
+        cbStorage->SetValue(column->GetStorage());
+
         size_t i;
         for (i=0 ; i < column->GetVariables().GetCount() ; i++)
         {
@@ -333,6 +344,7 @@ int dlgColumn::Go(bool modal)
         }
 
         txtAttstattarget->Disable();
+        cbStorage->Disable();
         txtComment->Disable();
     }
     return dlgTypeProperty::Go(modal);
@@ -508,6 +520,14 @@ wxString dlgColumn::GetSql()
             }
         }
 
+        if (cbStorage->GetValue() != column->GetStorage())
+        {
+            sql += wxT("ALTER TABLE ") + table->GetQuotedFullIdentifier()
+                +  wxT("\n   ALTER COLUMN ") + qtIdent(name)
+                +  wxT(" SET STORAGE ") + cbStorage->GetValue()
+                +  wxT(";\n");
+        }
+
         AppendComment(sql, wxT("COLUMN ") + table->GetQuotedFullIdentifier() 
                 + wxT(".") + qtIdent(name), column);
 
diff --git a/pgadmin/ui/dlgColumn.xrc b/pgadmin/ui/dlgColumn.xrc
index f20a336..e660b53 100644
--- a/pgadmin/ui/dlgColumn.xrc
+++ b/pgadmin/ui/dlgColumn.xrc
@@ -17,10 +17,10 @@
             <object class="wxPanel" name="pnlProperties">
               <object class="wxFlexGridSizer">
                 <cols>2</cols>
-                <rows>9</rows>
+                <rows>10</rows>
                 <vgap>5</vgap>
                 <hgap>5</hgap>
-                <growablerows>7</growablerows>
+                <growablerows>8</growablerows>
                 <growablecols>1</growablecols>
                 <object class="sizeritem">
                   <object class="wxStaticText" name="stName">
@@ -117,6 +117,26 @@
                   <border>4</border>
                 </object>
                 <object class="sizeritem">
+                  <object class="wxStaticText" name="stStorage">
+                    <label>Storage</label>
+                  </object>
+                  <flag>wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
+                  <border>4</border>
+                </object>
+                <object class="sizeritem">
+                  <object class="wxComboBox" name="cbStorage">
+                    <content>
+                      <item>PLAIN</item>
+                      <item>MAIN</item>
+                      <item>EXTERNAL</item>
+                      <item>EXTENDED</item>
+                    </content>
+                    <style>wxCB_DROPDOWN | wxCB_READONLY</style>
+                  </object>
+                  <flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
+                  <border>4</border>
+                </object>
+                <object class="sizeritem">
                   <object class="wxStaticText" name="stComment">
                     <label>Comment</label>
                   </object>
-- 
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to