void pgRule::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); wxString def = GetFormattedDefinition(); if (!def.IsEmpty()) { int doPos = def.Find(wxT(" DO INSTEAD ")); if (doPos > 0) def = def.Mid(doPos + 12).Strip(wxString::both); else { doPos = def.Find(wxT(" DO ")); if (doPos > 0) def = def.Mid(doPos + 4).Strip(wxString::both); } } properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Event"), GetEvent()); properties->AppendItem(_("Condition"), GetCondition()); properties->AppendYesNoItem(_("Do instead?"), GetDoInstead()); properties->AppendItem(_("Definition"), firstLineOnly(def)); if (this->GetDatabase()->connection()->BackendMinimumVersion(8, 3)) properties->AppendYesNoItem(_("Enabled?"), GetEnabled()); properties->AppendYesNoItem(_("System rule?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void edbPackage::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids=true; browser->RemoveDummyChild(this); // Log wxLogInfo(wxT("Adding child object to package %s"), GetIdentifier().c_str()); browser->AppendCollection(this, packageFunctionFactory); browser->AppendCollection(this, packageProcedureFactory); browser->AppendCollection(this, packageVariableFactory); } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("Header"), firstLineOnly(GetHeader())); properties->AppendItem(_("Body"), firstLineOnly(GetBody())); properties->AppendItem(_("ACL"), GetAcl()); properties->AppendItem(_("System package?"), GetSystemObject()); if (GetConnection()->EdbMinimumVersion(8, 2)) properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgSequence::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { UpdateValues(); if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("ACL"), GetAcl()); properties->AppendItem(_("Current value"), GetLastValue()); properties->AppendItem(_("Next value"), GetNextValue()); properties->AppendItem(_("Minimum"), GetMinValue()); properties->AppendItem(_("Maximum"), GetMaxValue()); properties->AppendItem(_("Increment"), GetIncrement()); properties->AppendItem(_("Cache"), GetCacheValue()); properties->AppendYesNoItem(_("Cycled?"), GetCycled()); properties->AppendYesNoItem(_("Called?"), GetCalled()); properties->AppendYesNoItem(_("System sequence?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); if (!GetLabels().IsEmpty()) { wxArrayString seclabels = GetProviderLabelArray(); if (seclabels.GetCount() > 0) { for (unsigned int index = 0 ; index < seclabels.GetCount() - 1 ; index += 2) { properties->AppendItem(seclabels.Item(index), seclabels.Item(index + 1)); } } } } }
void pgOperator::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("Kind"), GetKind()); if (!leftType.IsNull()) properties->AppendItem(_("Left type"), GetLeftType()); if (!rightType.IsNull()) properties->AppendItem(_("Right type"), GetRightType()); properties->AppendItem(_("Result type"), GetResultType()); properties->AppendItem(_("Operator function"), GetOperatorFunction()); properties->AppendItem(_("Commutator"), GetCommutator()); properties->AppendItem(_("Negator"), GetNegator()); properties->AppendItem(_("Join function"), GetJoinFunction()); properties->AppendItem(_("Restrict function"), GetRestrictFunction()); if (!GetDatabase()->BackendMinimumVersion(8, 3)) { properties->AppendItem(_("Left Sort operator"), GetLeftSortOperator()); properties->AppendItem(_("Right Sort operator"), GetRightSortOperator()); properties->AppendItem(_("Less Than operator"), GetLessOperator()); properties->AppendItem(_("Greater than operator"), GetGreaterOperator()); } properties->AppendYesNoItem(_("Supports hash?"), GetHashJoins()); properties->AppendYesNoItem(_("Supports merge?"), GetMergeJoins()); properties->AppendYesNoItem(_("System operator?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgLanguage::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); if (GetConnection()->BackendMinimumVersion(8, 3)) properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("ACL"), GetAcl()); properties->AppendYesNoItem(_("Trusted?"), GetTrusted()); properties->AppendItem(_("Handler function"), GetHandlerProc()); if (GetConnection()->BackendMinimumVersion(9, 0)) properties->AppendItem(_("Inline function"), GetInlineProc()); properties->AppendItem(_("Validator function"), GetValidatorProc()); properties->AppendYesNoItem(_("System language?"), GetSystemObject()); if (GetConnection()->BackendMinimumVersion(7, 5)) properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); if (!GetLabels().IsEmpty()) { wxArrayString seclabels = GetProviderLabelArray(); if (seclabels.GetCount() > 0) { for (unsigned int index = 0 ; index < seclabels.GetCount() - 1 ; index += 2) { properties->AppendItem(seclabels.Item(index), seclabels.Item(index + 1)); } } } } }
void pgCollection::ShowList(const wxString &name, ctlTree *browser, ctlListView *properties) { if (properties) { // Display the properties. wxCookieType cookie; pgObject *data; // Setup listview CreateList3Columns(properties, wxGetTranslation(name), _("Owner"), _("Comment")); wxTreeItemId item = browser->GetFirstChild(GetId(), cookie); long pos = 0; while (item) { data = browser->GetObject(item); if (IsCollectionFor(data)) { properties->InsertItem(pos, data->GetFullName(), data->GetIconId()); properties->SetItem(pos, 1, data->GetOwner()); properties->SetItem(pos, 2, firstLineOnly(data->GetComment())); pos++; } // Get the next item item = browser->GetNextChild(GetId(), cookie); } } }
void pgaStep::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids = true; } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("ID"), GetRecId()); properties->AppendYesNoItem(_("Enabled"), GetEnabled()); properties->AppendItem(_("Kind"), GetKind()); if (GetConnStr().IsEmpty()) properties->AppendItem(_("Database"), GetDbname()); else properties->AppendItem(_("Connection String"), GetConnStr()); properties->AppendItem(_("Code"), GetCode()); properties->AppendItem(_("On error"), GetOnError()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgaSchedule::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids = true; } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("ID"), GetRecId()); properties->AppendYesNoItem(_("Enabled"), GetEnabled()); properties->AppendItem(_("Start date"), GetStart()); properties->AppendItem(_("End date"), GetEnd()); properties->AppendItem(_("Minutes"), GetMinutesString()); properties->AppendItem(_("Hours"), GetHoursString()); properties->AppendItem(_("Weekdays"), GetWeekdaysString()); properties->AppendItem(_("Monthdays"), GetMonthdaysString()); properties->AppendItem(_("Months"), GetMonthsString()); properties->AppendItem(_("Exceptions"), GetExceptionsString()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgView::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids = true; browser->RemoveDummyChild(this); browser->AppendCollection(this, columnFactory); pgCollection *collection = browser->AppendCollection(this, ruleFactory); collection->iSetOid(GetOid()); collection->ShowTreeDetail(browser); treeObjectIterator colIt(browser, collection); pgRule *rule; while (!hasInsertRule && !hasUpdateRule && !hasDeleteRule && (rule = (pgRule *)colIt.GetNextObject()) != 0) { if (rule->GetEvent().Find(wxT("INSERT")) >= 0) hasInsertRule = true; if (rule->GetEvent().Find(wxT("UPDATE")) >= 0) hasUpdateRule = true; if (rule->GetEvent().Find(wxT("DELETE")) >= 0) hasDeleteRule = true; } if (GetConnection()->BackendMinimumVersion(9, 1)) browser->AppendCollection(this, triggerFactory); } if (properties) { CreateListColumns(properties); wxString def = GetDefinition().Left(250); def.Replace(wxT("\n"), wxT(" ")); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("ACL"), GetAcl()); properties->AppendItem(_("Definition"), def); properties->AppendYesNoItem(_("System view?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); if (GetConnection()->BackendMinimumVersion(9, 2) && GetSecurityBarrier().Length() > 0) properties->AppendItem(_("Security barrier?"), GetSecurityBarrier()); if (!GetLabels().IsEmpty()) { wxArrayString seclabels = GetProviderLabelArray(); if (seclabels.GetCount() > 0) { for (unsigned int index = 0 ; index < seclabels.GetCount() - 1 ; index += 2) { properties->AppendItem(seclabels.Item(index), seclabels.Item(index + 1)); } } } } }
void pgTextSearchConfiguration::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("Parser"), GetParser()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgOperatorFamily::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("Access method"), GetAccessMethod()); properties->AppendItem(_("System operator family?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void gpResQueue::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids = true; wxString queuesquery; queuesquery = wxT("SELECT rolname,\n") wxT(" pg_catalog.shobj_description(r.oid, 'pg_authid') AS description\n"); queuesquery += wxT(" FROM pg_roles r\n") wxT(" JOIN pg_resqueue q ON rolresqueue=q.oid\n") wxT(" WHERE rolresqueue=") + GetOidStr() + wxT("\n") wxT(" ORDER BY rolname"); pgSetIterator queues(GetConnection(), queuesquery); while (queues.RowsLeft()) { wxString queue = queues.GetVal(wxT("rolname")); queuesIn.Add(queue); } } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Active threshold"), GetCountLimit()); properties->AppendItem(_("Cost threshold"), GetCostLimit()); properties->AppendItem(_("Ignore threshold"), GetIgnoreCostLimit()); properties->AppendItem(_("Over commit?"), BoolToYesNo(GetOvercommit())); wxString roleList; size_t index; for (index = 0 ; index < queuesIn.GetCount() ; index++) { if (!roleList.IsEmpty()) roleList += wxT(", "); roleList += queuesIn.Item(index); } properties->AppendItem(_("Roles using this"), roleList); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgExtension::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("Schema"), GetSchemaStr()); properties->AppendYesNoItem(_("Relocatable?"), GetIsRelocatable()); properties->AppendItem(_("Version"), GetVersion()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgTextSearchParser::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Start"), GetStart()); properties->AppendItem(_("Gettoken"), GetGettoken()); properties->AppendItem(_("End"), GetEnd()); properties->AppendItem(_("Lextypes"), GetLextypes()); properties->AppendItem(_("Headline"), GetHeadline()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgTrigger::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids && GetLanguage() != wxT("edbspl")) { ReadColumnDetails(); if (browser) { // if no browser present, function will not be appended to tree expandedKids = true; } if (triggerFunction) delete triggerFunction; // append function here triggerFunction = functionFactory.AppendFunctions(this, GetSchema(), browser, wxT( "WHERE pr.oid=") + NumToStr(functionOid) + wxT("::oid\n")); if (triggerFunction) { iSetFunction(triggerFunction->GetQuotedFullIdentifier()); } } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); if (GetConnection()->BackendMinimumVersion(8, 2)) properties->AppendYesNoItem(_("Constraint?"), GetIsConstraint()); properties->AppendItem(_("Fires"), GetFireWhen()); properties->AppendItem(_("Event"), GetEvent()); if (!GetQuotedColumns().IsEmpty()) { properties->AppendItem(_("Columns"), GetColumns()); } properties->AppendItem(_("For each"), GetForEach()); if (GetLanguage() != wxT("edbspl")) properties->AppendItem(_("Function"), GetFunction() + wxT("(") + GetArguments() + wxT(")")); if (GetConnection()->BackendMinimumVersion(8, 5)) properties->AppendItem(_("When?"), GetWhen()); properties->AppendYesNoItem(_("Enabled?"), GetEnabled()); properties->AppendYesNoItem(_("System trigger?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void edbPackageFunction::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Argument count"), GetArgCount()); properties->AppendItem(_("Arguments"), GetArgListWithNames()); properties->AppendItem(_("Signature arguments"), GetArgSigList()); if (!GetIsProcedure()) properties->AppendItem(_("Return type"), GetReturnType()); properties->AppendItem(_("Visibility"), GetVisibility()); properties->AppendItem(_("Source"), firstLineOnly(GetSource())); } }
void pgConversion::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("From"), GetForEncoding()); properties->AppendItem(_("To"), GetToEncoding()); properties->AppendItem(_("Function"), GetSchemaPrefix(GetProcNamespace()) + GetProc()); properties->AppendItem(_("Default?"), GetDefaultConversion()); properties->AppendItem(_("System conversion?"), GetSystemObject()); if (GetConnection()->BackendMinimumVersion(7, 5)) properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgDomain::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids = true; browser->RemoveDummyChild(this); // Log wxLogInfo(wxT("Adding child object to domain %s"), GetIdentifier().c_str()); if (GetConnection()->BackendMinimumVersion(7, 4)) browser->AppendCollection(this, constraintFactory); } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("Base type"), GetBasetype()); if (GetDimensions()) properties->AppendItem(_("Dimensions"), GetDimensions()); if (GetCollationOid() > 0) properties->AppendItem(_("Collation"), GetQuotedCollation()); properties->AppendItem(_("Default"), GetDefault()); properties->AppendYesNoItem(_("Not NULL?"), GetNotNull()); properties->AppendYesNoItem(_("System domain?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); if (!GetLabels().IsEmpty()) { wxArrayString seclabels = GetProviderLabelArray(); if (seclabels.GetCount() > 0) { for (unsigned int index = 0 ; index < seclabels.GetCount() - 1 ; index += 2) { properties->AppendItem(seclabels.Item(index), seclabels.Item(index + 1)); } } } } }
void pgView::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids = true; browser->RemoveDummyChild(this); browser->AppendCollection(this, columnFactory); pgCollection *collection = browser->AppendCollection(this, ruleFactory); collection->iSetOid(GetOid()); collection->ShowTreeDetail(browser); treeObjectIterator colIt(browser, collection); pgRule *rule; while (!hasInsertRule && !hasUpdateRule && !hasDeleteRule && (rule = (pgRule *)colIt.GetNextObject()) != 0) { if (rule->GetEvent().Find(wxT("INSERT")) >= 0) hasInsertRule = true; if (rule->GetEvent().Find(wxT("UPDATE")) >= 0) hasUpdateRule = true; if (rule->GetEvent().Find(wxT("DELETE")) >= 0) hasDeleteRule = true; } if (GetConnection()->BackendMinimumVersion(9, 1)) browser->AppendCollection(this, triggerFactory); } if (properties) { CreateListColumns(properties); wxString def = GetDefinition().Left(250); def.Replace(wxT("\n"), wxT(" ")); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("ACL"), GetAcl()); properties->AppendItem(_("Definition"), def); properties->AppendYesNoItem(_("System view?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgCheck::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Definition"), GetDefinition()); if (GetDatabase()->BackendMinimumVersion(9, 2)) { properties->AppendItem(_("No Inherit?"), BoolToYesNo(GetNoInherit())); properties->AppendItem(_("Valid?"), BoolToYesNo(GetValid())); } // Check constraints on a domain don't have comments if (objectKind.Upper() == wxT("TABLE")) properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgCast::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Source type"), GetSourceType()); properties->AppendItem(_("Target type"), GetTargetType()); if (GetCastFunction().IsNull()) properties->AppendItem(_("Function"), _("(binary compatible)")); else properties->AppendItem(_("Function"), GetCastFunction() + wxT("(") + GetSourceType() + wxT(")")); properties->AppendItem(_("Context"), GetCastContext()); properties->AppendYesNoItem(_("System cast?"), GetSystemObject()); if (GetConnection()->BackendMinimumVersion(7, 5)) properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void gpExtTable::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids = true; browser->RemoveDummyChild(this); browser->AppendCollection(this, columnFactory); } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("ACL"), GetAcl()); properties->AppendYesNoItem(_("System Table?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgSequence::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { UpdateValues(); if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("ACL"), GetAcl()); properties->AppendItem(_("Current value"), GetLastValue()); properties->AppendItem(_("Minimum"), GetMinValue()); properties->AppendItem(_("Maximum"), GetMaxValue()); properties->AppendItem(_("Increment"), GetIncrement()); properties->AppendItem(_("Cache"), GetCacheValue()); properties->AppendItem(_("Cycled?"), GetCycled()); properties->AppendItem(_("Called?"), GetCalled()); properties->AppendItem(_("System sequence?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgTablespace::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids = true; } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("Location"), GetLocation()); size_t i; for (i = 0 ; i < variables.GetCount() ; i++) { wxString item = variables.Item(i); properties->AppendItem(item.BeforeFirst('='), item.AfterFirst('=')); } properties->AppendItem(_("ACL"), GetAcl()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); if (!GetLabels().IsEmpty()) { wxArrayString seclabels = GetProviderLabelArray(); if (seclabels.GetCount() > 0) { for (unsigned int index = 0 ; index < seclabels.GetCount() - 1 ; index += 2) { properties->AppendItem(seclabels.Item(index), seclabels.Item(index + 1)); } } } } }
void pgaJob::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids = true; browser->RemoveDummyChild(this); // Log wxLogInfo(wxT("Adding child objects to Job.")); browser->AppendCollection(this, scheduleFactory); browser->AppendCollection(this, stepFactory); } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("ID"), GetRecId()); properties->AppendYesNoItem(_("Enabled"), GetEnabled()); properties->AppendItem(_("Host agent"), GetHostAgent()); properties->AppendItem(_("Job class"), GetJobclass()); properties->AppendItem(_("Created"), GetCreated()); properties->AppendItem(_("Changed"), GetChanged()); properties->AppendItem(_("Next run"), GetNextrun()); properties->AppendItem(_("Last run"), GetLastrun()); properties->AppendItem(_("Last result"), GetLastresult()); if (!GetCurrentAgent().IsEmpty()) properties->AppendItem(_("Running at"), GetCurrentAgent()); else properties->AppendItem(_("Running at"), _("Not currently running")); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgRole::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids=true; wxString rolesquery; if (GetConnection()->BackendMinimumVersion(8, 2)) rolesquery = wxT("SELECT rolname, admin_option,\n") wxT(" pg_catalog.shobj_description(r.oid, 'pg_authid') AS description\n"); else rolesquery = wxT("SELECT rolname, admin_option\n"); rolesquery += wxT(" FROM pg_roles r\n") wxT(" JOIN pg_auth_members ON r.oid=roleid\n") wxT(" WHERE member=") + GetOidStr() + wxT("\n") wxT(" ORDER BY rolname"); pgSetIterator roles(GetConnection(), rolesquery); while (roles.RowsLeft()) { wxString role=roles.GetVal(wxT("rolname")); if (roles.GetBool(wxT("admin_option"))) role += PGROLE_ADMINOPTION; rolesIn.Add(role); } } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Account expires"), DateToAnsiStr(GetAccountExpires())); properties->AppendItem(_("Can login?"), BoolToYesNo(GetCanLogin())); properties->AppendItem(_("Superuser?"), BoolToYesNo(GetSuperuser())); properties->AppendItem(_("Create databases?"), BoolToYesNo(GetCreateDatabase())); properties->AppendItem(_("Create roles?"), BoolToYesNo(GetCreateRole())); properties->AppendItem(_("Update catalogs?"), BoolToYesNo(GetUpdateCatalog())); properties->AppendItem(_("Inherits?"), BoolToYesNo(GetInherits())); if (server->GetConnection()->BackendMinimumVersion(9, 1)) { properties->AppendItem(_("Replication?"), BoolToYesNo(GetReplication())); } wxString strConnLimit; strConnLimit.Printf(wxT("%ld"), GetConnectionLimit()); properties->AppendItem(_("Connection Limit"), strConnLimit); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); wxString roleList; size_t index; for (index=0 ; index < rolesIn.GetCount() ; index++) { if (!roleList.IsEmpty()) roleList += wxT(", "); roleList += rolesIn.Item(index); } properties->AppendItem(_("Member of"), roleList); for (index=0; index < configList.GetCount() ; index++) { wxString item=configList.Item(index); properties->AppendItem(item.BeforeFirst('='), item.AfterFirst('=')); } } }
void pgType::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { wxString query; wxString collation; if (!expandedKids) { expandedKids = true; if (GetTypeClass() == TYPE_COMPOSITE) { query = wxT("SELECT attname, format_type(t.oid,NULL) AS typname, attndims, atttypmod, nsp.nspname,\n") wxT(" (SELECT COUNT(1) from pg_type t2 WHERE t2.typname=t.typname) > 1 AS isdup"); if (GetConnection()->BackendMinimumVersion(9, 1)) query += wxT(",\n collname, nspc.nspname as collnspname"); query += wxT("\n FROM pg_attribute att\n") wxT(" JOIN pg_type t ON t.oid=atttypid\n") wxT(" JOIN pg_namespace nsp ON t.typnamespace=nsp.oid\n") wxT(" LEFT OUTER JOIN pg_type b ON t.typelem=b.oid\n"); if (GetConnection()->BackendMinimumVersion(9, 1)) query += wxT(" LEFT OUTER JOIN pg_collation c ON att.attcollation=c.oid\n") wxT(" LEFT OUTER JOIN pg_namespace nspc ON c.collnamespace=nspc.oid\n"); query += wxT(" WHERE att.attrelid=") + NumToStr(relOid) + wxT("\n") wxT(" ORDER by attnum"); pgSet *set = ExecuteSet(query); if (set) { 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")), set->GetBool(wxT("isdup")), set->GetLong(wxT("attndims")) > 0, set->GetLong(wxT("atttypmod"))); 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(); if (GetConnection()->BackendMinimumVersion(9, 1)) { if (set->GetVal(wxT("collname")).IsEmpty() || (set->GetVal(wxT("collname")) == wxT("default") && set->GetVal(wxT("collnspname")) == wxT("pg_catalog"))) collation = wxEmptyString; else { collation = qtIdent(set->GetVal(wxT("collnspname"))) + wxT(".") + qtIdent(set->GetVal(wxT("collname"))); quotedTypesList += wxT(" COLLATE ") + collation; } collationsArray.Add(collation); } typesArray.Add(collation); set->MoveNext(); } delete set; } } else if (GetTypeClass() == TYPE_ENUM) { query = wxT("SELECT enumlabel\n") wxT(" FROM pg_enum\n") wxT(" WHERE enumtypid=") + GetOidStr() + wxT("\n"); if (GetConnection()->BackendMinimumVersion(9, 1)) query += wxT(" ORDER by enumsortorder"); else query += wxT(" ORDER by oid"); pgSet *set = ExecuteSet(query); if (set) { int anzvar = 0; while (!set->Eof()) { wxString element; if (anzvar++) { labelList += wxT(", "); quotedLabelList += wxT(",\n "); } labelList += set->GetVal(wxT("enumlabel")); labelArray.Add(set->GetVal(wxT("enumlabel"))); quotedLabelList += GetDatabase()->connection()->qtDbString(set->GetVal(wxT("enumlabel"))); set->MoveNext(); } delete set; } } } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("Alias"), GetAlias()); if (GetTypeClass() == TYPE_COMPOSITE) { properties->AppendItem(_("Members"), GetTypesList()); } if (GetTypeClass() == TYPE_ENUM) { properties->AppendItem(_("Labels"), GetLabelList()); } else { properties->AppendItem(_("Alignment"), GetAlignment()); properties->AppendItem(_("Internal length"), GetInternalLength()); properties->AppendItem(_("Default"), GetDefault()); properties->AppendItem(_("Passed by Value?"), BoolToYesNo(GetPassedByValue())); if (!GetElement().IsEmpty()) { properties->AppendItem(_("Element"), GetElement()); properties->AppendItem(_("Delimiter"), GetDelimiter()); } properties->AppendItem(_("Input function"), GetInputFunction()); properties->AppendItem(_("Output function"), GetOutputFunction()); if (GetConnection()->BackendMinimumVersion(7, 4)) { properties->AppendItem(_("Receive function"), GetReceiveFunction()); properties->AppendItem(_("Send function"), GetSendFunction()); } if (GetConnection()->BackendMinimumVersion(8, 3)) { if (GetTypmodinFunction().Length() > 0) properties->AppendItem(_("Typmod in function"), GetTypmodinFunction()); if (GetTypmodoutFunction().Length() > 0) properties->AppendItem(_("Typmod out function"), GetTypmodoutFunction()); } properties->AppendItem(_("Storage"), GetStorage()); if (GetConnection()->BackendMinimumVersion(9, 1)) properties->AppendItem(_("Collatable?"), BoolToYesNo(GetCollatable())); } properties->AppendYesNoItem(_("System type?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); if (!GetLabels().IsEmpty()) { wxArrayString seclabels = GetProviderLabelArray(); if (seclabels.GetCount() > 0) { for (unsigned int index = 0 ; index < seclabels.GetCount() - 1 ; index += 2) { properties->AppendItem(seclabels.Item(index), seclabels.Item(index + 1)); } } } } }
void pgView::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (!expandedKids) { expandedKids = true; browser->RemoveDummyChild(this); browser->AppendCollection(this, columnFactory); pgCollection *collection = browser->AppendCollection(this, ruleFactory); collection->iSetOid(GetOid()); collection->ShowTreeDetail(browser); treeObjectIterator colIt(browser, collection); pgRule *rule; while (!hasInsertRule && !hasUpdateRule && !hasDeleteRule && (rule = (pgRule *)colIt.GetNextObject()) != 0) { if (rule->GetEvent().Find(wxT("INSERT")) >= 0) hasInsertRule = true; if (rule->GetEvent().Find(wxT("UPDATE")) >= 0) hasUpdateRule = true; if (rule->GetEvent().Find(wxT("DELETE")) >= 0) hasDeleteRule = true; } if (GetConnection()->BackendMinimumVersion(9, 1)) browser->AppendCollection(this, triggerFactory); } if (properties) { CreateListColumns(properties); wxString def = GetDefinition().Left(250); def.Replace(wxT("\n"), wxT(" ")); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("ACL"), GetAcl()); properties->AppendItem(_("Definition"), def); properties->AppendYesNoItem(_("System view?"), GetSystemObject()); if (GetConnection()->BackendMinimumVersion(9, 2) && GetSecurityBarrier().Length() > 0) properties->AppendItem(_("Security barrier?"), GetSecurityBarrier()); if (GetConnection()->BackendMinimumVersion(9, 3)) properties->AppendYesNoItem(_("Materialized view?"), GetMaterializedView()); /* Custom AutoVacuum Settings */ if (GetConnection()->BackendMinimumVersion(9, 3) && GetMaterializedView()) { if (!GetFillFactor().IsEmpty()) properties->AppendItem(_("Fill factor"), GetFillFactor()); if (GetCustomAutoVacuumEnabled()) { if (GetAutoVacuumEnabled() != 2) { properties->AppendItem(_("Table auto-vacuum enabled?"), GetAutoVacuumEnabled() == 1 ? _("Yes") : _("No")); } if (!GetAutoVacuumVacuumThreshold().IsEmpty()) properties->AppendItem(_("Table auto-vacuum VACUUM base threshold"), GetAutoVacuumVacuumThreshold()); if (!GetAutoVacuumVacuumScaleFactor().IsEmpty()) properties->AppendItem(_("Table auto-vacuum VACUUM scale factor"), GetAutoVacuumVacuumScaleFactor()); if (!GetAutoVacuumAnalyzeThreshold().IsEmpty()) properties->AppendItem(_("Table auto-vacuum ANALYZE base threshold"), GetAutoVacuumAnalyzeThreshold()); if (!GetAutoVacuumAnalyzeScaleFactor().IsEmpty()) properties->AppendItem(_("Table auto-vacuum ANALYZE scale factor"), GetAutoVacuumAnalyzeScaleFactor()); if (!GetAutoVacuumVacuumCostDelay().IsEmpty()) properties->AppendItem(_("Table auto-vacuum VACUUM cost delay"), GetAutoVacuumVacuumCostDelay()); if (!GetAutoVacuumVacuumCostLimit().IsEmpty()) properties->AppendItem(_("Table auto-vacuum VACUUM cost limit"), GetAutoVacuumVacuumCostLimit()); if (!GetAutoVacuumFreezeMinAge().IsEmpty()) properties->AppendItem(_("Table auto-vacuum FREEZE minimum age"), GetAutoVacuumFreezeMinAge()); if (!GetAutoVacuumFreezeMaxAge().IsEmpty()) properties->AppendItem(_("Table auto-vacuum FREEZE maximum age"), GetAutoVacuumFreezeMaxAge()); if (!GetAutoVacuumFreezeTableAge().IsEmpty()) properties->AppendItem(_("Table auto-vacuum FREEZE table age"), GetAutoVacuumFreezeTableAge()); } if (GetHasToastTable() && GetToastCustomAutoVacuumEnabled()) { if (GetToastAutoVacuumEnabled() != 2) { properties->AppendItem(_("Toast auto-vacuum enabled?"), GetToastAutoVacuumEnabled() == 1 ? _("Yes") : _("No")); } if (!GetToastAutoVacuumVacuumThreshold().IsEmpty()) properties->AppendItem(_("Toast auto-vacuum VACUUM base threshold"), GetToastAutoVacuumVacuumThreshold()); if (!GetToastAutoVacuumVacuumScaleFactor().IsEmpty()) properties->AppendItem(_("Toast auto-vacuum VACUUM scale factor"), GetToastAutoVacuumVacuumScaleFactor()); if (!GetToastAutoVacuumVacuumCostDelay().IsEmpty()) properties->AppendItem(_("Toast auto-vacuum VACUUM cost delay"), GetToastAutoVacuumVacuumCostDelay()); if (!GetToastAutoVacuumVacuumCostLimit().IsEmpty()) properties->AppendItem(_("Toast auto-vacuum VACUUM cost limit"), GetToastAutoVacuumVacuumCostLimit()); if (!GetToastAutoVacuumFreezeMinAge().IsEmpty()) properties->AppendItem(_("Toast auto-vacuum FREEZE minimum age"), GetToastAutoVacuumFreezeMinAge()); if (!GetToastAutoVacuumFreezeMaxAge().IsEmpty()) properties->AppendItem(_("Toast auto-vacuum FREEZE maximum age"), GetToastAutoVacuumFreezeMaxAge()); if (!GetToastAutoVacuumFreezeTableAge().IsEmpty()) properties->AppendItem(_("Toast auto-vacuum FREEZE table age"), GetToastAutoVacuumFreezeTableAge()); } properties->AppendItem(_("Tablespace"), tablespace); if (GetIsPopulated().Cmp(wxT("t")) == 0) properties->AppendItem(_("With data?"), _("Yes")); else properties->AppendItem(_("With data?"), _("No")); } if (GetConnection()->BackendMinimumVersion(9, 4)) properties->AppendItem(_("Check Option"), GetCheckOption()); if (!GetLabels().IsEmpty()) { wxArrayString seclabels = GetProviderLabelArray(); if (seclabels.GetCount() > 0) { for (unsigned int index = 0 ; index < seclabels.GetCount() - 1 ; index += 2) { properties->AppendItem(seclabels.Item(index), seclabels.Item(index + 1)); } } } properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); } }
void pgFunction::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("OID"), GetOid()); properties->AppendItem(_("Owner"), GetOwner()); properties->AppendItem(_("Argument count"), GetArgCount()); properties->AppendItem(_("Arguments"), GetArgListWithNames()); properties->AppendItem(_("Signature arguments"), GetArgSigList()); if (!GetIsProcedure()) properties->AppendItem(_("Return type"), GetReturnType()); properties->AppendItem(_("Language"), GetLanguage()); properties->AppendYesNoItem(_("Returns a set?"), GetReturnAsSet()); if (GetLanguage().IsSameAs(wxT("C"), false)) { properties->AppendItem(_("Object file"), GetBin()); properties->AppendItem(_("Link symbol"), GetSource()); } else properties->AppendItem(_("Source"), firstLineOnly(GetSource())); if (GetConnection()->BackendMinimumVersion(8, 3)) { properties->AppendItem(_("Estimated cost"), GetCost()); if (GetReturnAsSet()) properties->AppendItem(_("Estimated rows"), GetRows()); } properties->AppendItem(_("Volatility"), GetVolatility()); if (GetConnection()->BackendMinimumVersion(9, 2)) properties->AppendYesNoItem(_("Leak proof?"), GetIsLeakProof()); properties->AppendYesNoItem(_("Security of definer?"), GetSecureDefiner()); properties->AppendYesNoItem(_("Strict?"), GetIsStrict()); if (GetConnection()->BackendMinimumVersion(8, 4)) properties->AppendYesNoItem(_("Window?"), GetIsWindow()); size_t i; for (i = 0 ; i < configList.GetCount() ; i++) { wxString item = configList.Item(i); properties->AppendItem(item.BeforeFirst('='), item.AfterFirst('=')); } properties->AppendItem(_("ACL"), GetAcl()); properties->AppendYesNoItem(_("System function?"), GetSystemObject()); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); if (!GetLabels().IsEmpty()) { wxArrayString seclabels = GetProviderLabelArray(); if (seclabels.GetCount() > 0) { for (unsigned int index = 0 ; index < seclabels.GetCount() - 1 ; index += 2) { properties->AppendItem(seclabels.Item(index), seclabels.Item(index + 1)); } } } } }
void slNode::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane) { wxString pidcol = wxEmptyString; pgConn *conn = GetCluster()->GetNodeConn(form, GetSlId(), pid < 0); if (!expandedKids) { expandedKids = true; browser->RemoveDummyChild(this); // Log wxLogInfo(wxT("Adding child object to node %s"), GetIdentifier().c_str()); browser->AppendCollection(this, pathFactory); browser->AppendCollection(this, listenFactory); } if (properties) { CreateListColumns(properties); properties->AppendItem(_("Name"), GetName()); properties->AppendItem(_("ID"), GetSlId()); if (GetCluster()->GetLocalNodeID() == GetSlId()) properties->AppendYesNoItem(_("Local node"), true); properties->AppendYesNoItem(_("Active"), GetActive()); if (GetCluster()->ClusterMinimumVersion(1, 1)) properties->AppendYesNoItem(_("Log spooler"), GetSpool()); properties->AppendYesNoItem(_("Connected"), conn != NULL); properties->AppendItem(_("Comment"), firstLineOnly(GetComment())); if (conn && pid < 0) { if (conn->BackendMinimumVersion(9, 0)) { if (conn->BackendMinimumVersion(9, 2)) pidcol = wxT("pid"); else pidcol = wxT("procpid"); pid = StrToLong(conn->ExecuteScalar( wxT("SELECT nl_backendpid FROM ") + qtIdent(wxT("_") + GetCluster()->GetName()) + wxT(".sl_nodelock nl, ") wxT("pg_stat_activity sa WHERE nl.nl_backendpid = sa.") + pidcol + wxT(" AND nl_nodeid = ") + NumToStr(GetCluster()->GetLocalNodeID()))); } else { pid = StrToLong(conn->ExecuteScalar( wxT("SELECT listenerpid FROM pg_listener WHERE relname=") + qtDbString(wxT("_") + GetCluster()->GetName() + wxT("_Restart")))); } } if (conn) { if (GetPid()) properties->AppendItem(_("Running PID"), GetPid()); else properties->AppendItem(_("Running PID"), _("not running")); } else { if (GetSlId() != GetCluster()->GetAdminNodeID()) properties->AppendItem(_("Running PID"), _("administrative node")); } } }