diff --git a/pgadmin/dlg/dlgColumn.cpp b/pgadmin/dlg/dlgColumn.cpp
index 7df7930..848ba02 100644
--- a/pgadmin/dlg/dlgColumn.cpp
+++ b/pgadmin/dlg/dlgColumn.cpp
@@ -657,6 +657,28 @@ void dlgColumn::ApplyChangesToDlg()
 	}
 }
 
+wxArrayString dlgColumn::getVariableList()
+{
+	wxArrayString variableList;
+	wxString name;
+	wxString value;
+	for(int pos = 0; pos < lstVariables->GetItemCount(); pos++)
+	{
+		name = lstVariables->GetText(pos);
+		value = lstVariables->GetText(pos, 1);
+		variableList.Add(name + wxT("=") + value);
+	}
+	return variableList;
+}
+
+wxString dlgColumn::GetseclabelColumnSql(const wxString& tableName)
+{
+	if (seclabelPage && connection->BackendMinimumVersion(9, 1))
+			return seclabelPage->GetSqlForSecLabels(wxT("COLUMN"), tableName
+			+ wxT(".") + qtIdent(GetName()));
+
+	return wxEmptyString;
+}
 
 wxString dlgColumn::GetDefinition()
 {
diff --git a/pgadmin/dlg/dlgTable.cpp b/pgadmin/dlg/dlgTable.cpp
index 9f7a565..37dc417 100644
--- a/pgadmin/dlg/dlgTable.cpp
+++ b/pgadmin/dlg/dlgTable.cpp
@@ -200,6 +200,8 @@ dlgTable::dlgTable(pgaFactory *f, frmMain *frame, pgTable *node, pgSchema *sch)
 	lstColumns->AddColumn(_("Column type oid"), 0);
 	// ... pgColumn* handle (used for changed columns)
 	lstColumns->AddColumn(_("Changed column"), 0);
+	// ... pgColumn* handle (used for variable list)
+	lstColumns->AddColumn(_("Variable List"), 0);
 
 	lstConstraints->CreateColumns(0, _("Constraint name"), _("Definition"), 90);
 }
@@ -1416,6 +1418,22 @@ wxString dlgTable::GetSql()
 		AppendOwnerNew(sql, wxT("TABLE ") + tabname);
 
 		// Extra column info
+		//variables
+		for (pos = 0; pos < lstColumns->GetItemCount(); pos++)
+		{
+			wxStringTokenizer varToken(lstColumns->GetText(pos,COL_VARIABLE_LIST),wxT(","));
+			while (varToken.HasMoreTokens())
+			{
+				sql += wxT("ALTER TABLE ") + tabname
+					+ wxT("\n  ALTER COLUMN ")
+					+ qtIdent(lstColumns->GetText(pos, COL_NAME))
+					+ wxT(" \nSET (");
+				sql += varToken.GetNextToken() + wxT(");\n");
+			}
+		}
+
+		//security labels
+		sql += seclabelColumnSql;
 
 		// Statistics
 		for (pos = 0 ; pos < lstColumns->GetItemCount() ; pos++)
@@ -1847,6 +1865,25 @@ void dlgTable::OnAddCol(wxCommandEvent &ev)
 		lstColumns->SetItem(pos, COL_STATISTICS, col.GetStatistics());
 		lstColumns->SetItem(pos, COL_COMMENTS, col.GetComment());
 		lstColumns->SetItem(pos, COL_TYPEOID, col.GetTypeOid());
+
+		wxString perColumnListString = wxEmptyString;
+
+		//getting the variable list for each column
+		wxArrayString perColumnList = col.getVariableList();
+		for(size_t index = 0; index < perColumnList.GetCount(); index++)
+		{
+			if (index == 0)
+				perColumnListString	= perColumnList.Item(index);
+			else
+				perColumnListString += wxT(",") + perColumnList.Item(index); 
+		}
+		lstColumns->SetItem(pos, COL_VARIABLE_LIST, perColumnListString);
+
+		//getting the security labels list for each column
+		if(connection->BackendMinimumVersion(9, 1))
+		{
+			seclabelColumnSql = col.GetseclabelColumnSql(GetName());
+		}
 	}
 
 	CheckChange();
diff --git a/pgadmin/include/dlg/dlgColumn.h b/pgadmin/include/dlg/dlgColumn.h
index 6b5bfd8..c303903 100644
--- a/pgadmin/include/dlg/dlgColumn.h
+++ b/pgadmin/include/dlg/dlgColumn.h
@@ -32,6 +32,8 @@ public:
 	pgObject *CreateObject(pgCollection *collection);
 	pgObject *GetObject();
 	wxString GetDefinition();
+	wxArrayString getVariableList();
+	wxString GetseclabelColumnSql(const wxString& tableName);
 	wxString GetPreviousDefinition()
 	{
 		return previousDefinition;
diff --git a/pgadmin/include/dlg/dlgTable.h b/pgadmin/include/dlg/dlgTable.h
index f436fda..7a6a0f5 100644
--- a/pgadmin/include/dlg/dlgTable.h
+++ b/pgadmin/include/dlg/dlgTable.h
@@ -26,7 +26,8 @@ enum
     COL_STATISTICS,
     COL_PGCOLUMN,
     COL_TYPEOID,
-    COL_CHANGEDCOL
+    COL_CHANGEDCOL,
+    COL_VARIABLE_LIST
 };
 
 enum
@@ -121,7 +122,7 @@ private:
 	         toastTableFreezeMinAge, toastTableFreezeMaxAge,
 	         toastTableFreezeTableAge;
 	wxString toastTableVacFactor;
-
+	wxString seclabelColumnSql;
 	DECLARE_EVENT_TABLE()
 };
 
