wxString edbPackageFunction::GetArgListWithNames() { wxString args; for (unsigned int i = 0; i < argTypesArray.Count(); i++) { if (i > 0) args += wxT(", "); wxString arg; if (GetIsProcedure()) { if (!argNamesArray.Item(i).IsEmpty()) arg += qtIdent(argNamesArray.Item(i)); if (!argModesArray.Item(i).IsEmpty()) { if (arg.IsEmpty()) arg += argModesArray.Item(i); else arg += wxT(" ") + argModesArray.Item(i); } } else { if (!argModesArray.Item(i).IsEmpty()) arg += argModesArray.Item(i); if (!argNamesArray.Item(i).IsEmpty()) { if (arg.IsEmpty()) arg += qtIdent(argNamesArray.Item(i)); else arg += wxT(" ") + qtIdent(argNamesArray.Item(i)); } } if (!arg.IsEmpty()) arg += wxT(" ") + argTypesArray.Item(i); else arg += argTypesArray.Item(i); // Parameter default value if (GetConnection()->HasFeature(FEATURE_FUNCTION_DEFAULTS) && !argDefsArray.IsEmpty()) { if ((argModesArray.Item(i).IsEmpty() || argModesArray.Item(i) == wxT("IN") || argModesArray.Item(i) == wxT("VARIADIC")) && !argDefsArray.Item(i).IsEmpty() && i < argDefsArray.Count()) arg += wxT(" DEFAULT ") + argDefsArray.Item(i); } args += arg; } return args; }
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())); } }
wxString pgFunction::GetArgListWithNames() { wxString args; for (unsigned int i = 0; i < argTypesArray.Count(); i++) { /* * All Table arguments lies at the end of the list * Do not include them as the part of the argument list */ if (argModesArray.Item(i) == wxT("TABLE")) break; if (args.Length() > 0) args += wxT(", "); wxString arg; if (GetIsProcedure()) { if (!argModesArray.Item(i).IsEmpty()) { arg += qtIdent(argNamesArray.Item(i)); } else { if (!argNamesArray.Item(i).IsEmpty()) arg += qtIdent(argNamesArray.Item(i)); arg += wxT(" ") + argModesArray.Item(i); } if (!argModesArray.Item(i).IsEmpty()) { if (arg.IsEmpty()) arg += argModesArray.Item(i); else arg += wxT(" ") + argModesArray.Item(i); } } else { if (!argModesArray.Item(i).IsEmpty()) arg += argModesArray.Item(i); if (!argNamesArray.Item(i).IsEmpty()) { if (arg.IsEmpty()) arg += qtIdent(argNamesArray.Item(i)); else arg += wxT(" ") + qtIdent(argNamesArray.Item(i)); } } if (!arg.IsEmpty()) arg += wxT(" ") + argTypesArray.Item(i); else arg += argTypesArray.Item(i); // Parameter default value if (GetConnection()->HasFeature(FEATURE_FUNCTION_DEFAULTS) && !argDefsArray.IsEmpty()) { if ((argModesArray.Item(i).IsEmpty() || argModesArray.Item(i) == wxT("IN") || // 'edbspl' does not support default value with // INOUT parameter (argModesArray.Item(i) == wxT("INOUT") && GetLanguage() != wxT("edbspl")) || argModesArray.Item(i) == wxT("VARIADIC")) && !argDefsArray.Item(i).IsEmpty() && i < argDefsArray.Count()) { arg += wxT(" DEFAULT ") + argDefsArray.Item(i); } } args += arg; } return args; }
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)); } } } } }