Esempio n. 1
0
wxString pgOperator::GetSql(ctlTree *browser)
{
    if (sql.IsNull())
    {
        sql = wxT("-- Operator: ") + GetFullIdentifier() + wxT("(") + GetOperands() + wxT(")\n\n")
            + wxT("-- DROP OPERATOR ") + GetFullIdentifier()
	    + wxT("(") + GetOperands() + wxT(");\n\n")
              wxT("CREATE OPERATOR ") + GetFullIdentifier()
            + wxT("(\n  PROCEDURE = ") + qtIdent(GetOperatorFunction());
        AppendIfFilled(sql, wxT(",\n  LEFTARG = "), qtTypeIdent(GetLeftType()));
        AppendIfFilled(sql, wxT(",\n  RIGHTARG = "), qtTypeIdent(GetRightType()));
        AppendIfFilled(sql, wxT(",\n  COMMUTATOR = "), GetCommutator());
        AppendIfFilled(sql, wxT(",\n  RESTRICT = "), qtIdent(GetRestrictFunction()));
        AppendIfFilled(sql, wxT(",\n  JOIN = "), qtIdent(GetJoinFunction()));
        if (GetHashJoins()) sql += wxT(",\n  HASHES");
        if (GetMergeJoins()) sql += wxT(",\n  MERGES");

		if (!GetDatabase()->BackendMinimumVersion(8, 3))
		{
			AppendIfFilled(sql, wxT(",\n  SORT1 = "), GetLeftSortOperator());
			AppendIfFilled(sql, wxT(",\n  SORT2 = "), GetRightSortOperator());
			AppendIfFilled(sql, wxT(",\n  LTCMP = "), GetLessOperator());
			AppendIfFilled(sql, wxT(",\n  GTCMP = "), GetGreaterOperator());
		}

        sql += wxT(");\n");

	if (!GetComment().IsNull())
	    sql += wxT("COMMENT ON OPERATOR ") + GetFullIdentifier()
	    + wxT("(") + GetOperands() + wxT(") IS ")
		+ qtDbString(GetComment()) + wxT(";\n");
    }

    return sql;
}
Esempio n. 2
0
wxString pgExtension::GetTranslatedMessage(int kindOfMessage) const
{
	wxString message = wxEmptyString;

	switch (kindOfMessage)
	{
		case RETRIEVINGDETAILS:
			message = _("Retrieving details on extension");
			message += wxT(" ") + GetName();
			break;
		case REFRESHINGDETAILS:
			message = _("Refreshing extension");
			message += wxT(" ") + GetName();
			break;
		case DROPINCLUDINGDEPS:
			message = wxString::Format(_("Are you sure you wish to drop extension \"%s\" including all objects that depend on it?"),
			                           GetFullIdentifier().c_str());
			break;
		case DROPEXCLUDINGDEPS:
			message = wxString::Format(_("Are you sure you wish to drop extension \"%s\"?"),
			                           GetFullIdentifier().c_str());
			break;
		case DROPCASCADETITLE:
			message = _("Drop extension cascaded?");
			break;
		case DROPTITLE:
			message = _("Drop extension?");
			break;
		case PROPERTIESREPORT:
			message = _("Extension properties report");
			message += wxT(" - ") + GetName();
			break;
		case PROPERTIES:
			message = _("Extension properties");
			break;
		case DDLREPORT:
			message = _("Extension DDL report");
			message += wxT(" - ") + GetName();
			break;
		case DDL:
			message = _("Extension DDL");
			break;
		case DEPENDENCIESREPORT:
			message = _("Extension dependencies report");
			message += wxT(" - ") + GetName();
			break;
		case DEPENDENCIES:
			message = _("Extension dependencies");
			break;
		case DEPENDENTSREPORT:
			message = _("Extension dependents report");
			message += wxT(" - ") + GetName();
			break;
		case DEPENDENTS:
			message = _("Extension dependents");
			break;
	}

	return message;
}
Esempio n. 3
0
wxString pgUser::GetTranslatedMessage(int kindOfMessage) const
{
    wxString message = wxEmptyString;

    switch (kindOfMessage)
    {
    case RETRIEVINGDETAILS:
        message = _("Retrieving details on user");
        message += wxT(" ") + GetName();
        break;
    case REFRESHINGDETAILS:
        message = _("Refreshing user");
        message += wxT(" ") + GetName();
        break;
    case GRANTWIZARDTITLE:
        message = _("Privileges for user");
        message += wxT(" ") + GetName();
        break;
    case DROPINCLUDINGDEPS:
        message = wxString::Format(_("Are you sure you wish to drop user \"%s\" including all objects that depend on it?"),
                                   GetFullIdentifier().c_str());
        break;
    case DROPEXCLUDINGDEPS:
        message = wxString::Format(_("Are you sure you wish to drop user \"%s\"?"),
                                   GetFullIdentifier().c_str());
        break;
    case DROPCASCADETITLE:
        message = _("Drop user cascaded?");
        break;
    case DROPTITLE:
        message = _("Drop user?");
        break;
    case PROPERTIES:
        message = _("User properties");
        break;
    case DDL:
        message = _("User DDL");
        break;
    case DEPENDENCIES:
        message = _("User dependencies");
        break;
    case DEPENDENTS:
        message = _("User dependents");
        break;
    }

    return message;
}
Esempio n. 4
0
wxString pgaJob::GetTranslatedMessage(int kindOfMessage) const
{
	wxString message = wxEmptyString;

	switch (kindOfMessage)
	{
		case RETRIEVINGDETAILS:
			message = _("Retrieving details on pgAgent job");
			break;
		case REFRESHINGDETAILS:
			message = _("Refreshing pgAgent job");
			break;
		case PROPERTIES:
			message = _("pgAgent job properties");
			break;
		case DEPENDENCIES:
			message = _("pgAgent job dependencies");
			break;
		case DEPENDENTS:
			message = _("pgAgent job dependents");
			break;
		case DROPEXCLUDINGDEPS:
			message = wxString::Format(_("Are you sure you wish to drop job \"%s\"?"),
			                           GetFullIdentifier().c_str());
			break;
		case DROPTITLE:
			message = _("Drop job?");
			break;
	}

	if (!message.IsEmpty() && !(kindOfMessage == DROPEXCLUDINGDEPS || kindOfMessage == DROPTITLE))
		message += wxT(" ") + GetName();

	return message;
}
Esempio n. 5
0
wxString pgForeignTable::GetTranslatedMessage(int kindOfMessage) const
{
	wxString message = wxEmptyString;

	switch (kindOfMessage)
	{
		case RETRIEVINGDETAILS:
			message = _("Retrieving details on foreign table");
			message += wxT(" ") + GetName();
			break;
		case REFRESHINGDETAILS:
			message = _("Refreshing foreign table");
			message += wxT(" ") + GetName();
			break;
		case DROPINCLUDINGDEPS:
			message = wxString::Format(_("Are you sure you wish to drop foreign table \"%s\" including all objects that depend on it?"),
			                           GetFullIdentifier().c_str());
			break;
		case DROPEXCLUDINGDEPS:
			message = wxString::Format(_("Are you sure you wish to drop foreign table \"%s\"?"),
			                           GetFullIdentifier().c_str());
			break;
		case DROPCASCADETITLE:
			message = _("Drop foreign table cascaded?");
			break;
		case DROPTITLE:
			message = _("Drop foreign table?");
			break;
		case PROPERTIES:
			message = _("Foreign table properties");
			break;
		case DDL:
			message = _("Foreign table DDL");
			break;
		case DEPENDENCIES:
			message = _("Foreign table dependencies");
			break;
		case DEPENDENTS:
			message = _("Foreign table dependents");
			break;
	}

	return message;
}
Esempio n. 6
0
wxString pgTextSearchDictionary::GetSql(ctlTree *browser)
{
	if (sql.IsNull())
	{
		sql = wxT("-- Text Search Dictionary: ") + GetFullIdentifier() + wxT("\n\n")
		      + wxT("-- DROP TEXT SEARCH DICTIONARY ") + GetFullIdentifier() + wxT("\n\n")
		      + wxT("CREATE TEXT SEARCH DICTIONARY ") + GetFullIdentifier() + wxT(" (")
		      + wxT("\n   TEMPLATE = ") + qtTypeIdent(GetTemplate());

		if (options.Length() > 0)
			sql += wxT(",\n   ") + options;

		sql += wxT("\n);\n");

		if (!GetComment().IsNull())
			sql += wxT("COMMENT ON TEXT SEARCH DICTIONARY ") + GetFullIdentifier()
			       + wxT(" IS ") + qtDbString(GetComment()) + wxT(";\n");
	}

	return sql;
}
Esempio n. 7
0
wxString pgTextSearchParser::GetSql(ctlTree *browser)
{
	if (sql.IsNull())
	{
		sql = wxT("-- Text Search Parser: ") + GetFullIdentifier() + wxT("\n\n")
		      + wxT("-- DROP TEXT SEARCH PARSER ") + GetFullIdentifier() + wxT("\n\n")
		      + wxT("CREATE TEXT SEARCH PARSER ") + GetFullIdentifier() + wxT(" (")
		      + wxT("\n  START = ") + qtTypeIdent(GetStart())
		      + wxT(",\n  GETTOKEN = ") + qtTypeIdent(GetGettoken())
		      + wxT(",\n  END = ") + qtTypeIdent(GetEnd())
		      + wxT(",\n  LEXTYPES = ") + qtTypeIdent(GetLextypes());

		AppendIfFilled(sql, wxT(",\n  HEADLINE = "), GetHeadline());

		sql += wxT("\n);\n");

		if (!GetComment().IsNull())
			sql += wxT("COMMENT ON TEXT SEARCH PARSER ") + GetFullIdentifier()
			       + wxT(" IS ") + qtDbString(GetComment()) + wxT(";\n");
	}

	return sql;
}
wxString pgTextSearchConfiguration::GetSql(ctlTree *browser)
{
	if (sql.IsNull())
	{
		sql = wxT("-- Text Search Configuration: ") + GetFullIdentifier() + wxT("\n\n")
		      + wxT("-- DROP TEXT SEARCH CONFIGURATION ") + GetFullIdentifier() + wxT("\n\n")
		      + wxT("CREATE TEXT SEARCH CONFIGURATION ") + GetFullIdentifier() + wxT(" (")
		      + wxT("\n  PARSER = ") + qtTypeIdent(GetParser())
		      + wxT("\n);\n");

		for (size_t i = 0 ; i < tokens.GetCount() ; i++)
			sql += wxT("ALTER TEXT SEARCH CONFIGURATION ") + GetQuotedFullIdentifier()
			       +  wxT(" ADD MAPPING FOR ") + tokens.Item(i).BeforeFirst('/')
			       +  wxT(" WITH ") + tokens.Item(i).AfterFirst('/')
			       +  wxT(";\n");

		if (!GetComment().IsNull())
			sql += wxT("COMMENT ON TEXT SEARCH CONFIGURATION ") + GetFullIdentifier()
			       + wxT(" IS ") + qtDbString(GetComment()) + wxT(";\n");
	}

	return sql;
}
Esempio n. 9
0
wxString edbPrivateSynonym::GetTranslatedMessage(int kindOfMessage) const
{
	wxString message = wxEmptyString;

	switch (kindOfMessage)
	{
		case DROPEXCLUDINGDEPS:
			message = wxString::Format(_("Are you sure you wish to drop synonym \"%s\"?"),
			                           GetFullIdentifier().c_str());
			break;
		case DROPTITLE:
			message = _("Drop synonym?");
			break;
	}

	return message;
}
Esempio n. 10
0
void pgDatabase::ShowHint(frmMain *form, bool force)
{
	wxArrayString hints;
	int rc = -1;

	if (encoding == wxT("SQL_ASCII"))
		hints.Add(HINT_ENCODING_ASCII);
	else if (encoding == wxT("UNICODE"))
	{
		wxString ver = GetServer()->GetVersionString();
		if (ver.Find(wxT("mingw32")) > 0 && ver.Find(wxT("SQL 8.0.")) > 0)
			hints.Add(HINT_ENCODING_UNICODE);
	}

	if (GetServer()->GetConnection() == GetConnection() &&
	        GetConnection()->BackendMinimumVersion(8, 0) &&
	        !GetConnection()->HasFeature(FEATURE_FILEREAD))
	{
		// if the server release is 9.1 or more and the server has no adminpack
		if (GetConnection()->BackendMinimumVersion(9, 1))
		{
			// Search the adminpack extension
			pgSet *set = GetConnection()->ExecuteSet(wxT("SELECT 1 FROM pg_available_extensions WHERE name='adminpack'"));
			if (set->NumRows() == 1)
				hints.Add(HINT_INSTRUMENTATION_91_WITH);
			else
				hints.Add(HINT_INSTRUMENTATION_91_WITHOUT);
			delete set;
		}
		else
			hints.Add(HINT_INSTRUMENTATION);
	}

	if (force || !hintShown)
	{
		rc = frmHint::ShowHint(form, hints, GetFullIdentifier(), force);
		if (rc == HINT_RC_FIX)
			GetConnection()->ExecuteVoid(wxT("CREATE EXTENSION adminpack"), true);
	}
	hintShown = true;
}
Esempio n. 11
0
wxString pgForeignServer::GetTranslatedMessage(int kindOfMessage) const
{
	wxString message = wxEmptyString;

	switch (kindOfMessage)
	{
		case RETRIEVINGDETAILS:
			message = _("Retrieving details on foreign server");
			message += wxT(" ") + GetName();
			break;
		case REFRESHINGDETAILS:
			message = _("Refreshing foreign server");
			message += wxT(" ") + GetName();
			break;
		case DROPINCLUDINGDEPS:
			message = wxString::Format(_("Are you sure you wish to drop foreign server \"%s\" including all objects that depend on it?"),
			                           GetFullIdentifier().c_str());
			break;
		case DROPEXCLUDINGDEPS:
			message = wxString::Format(_("Are you sure you wish to drop foreign server \"%s\"?"),
			                           GetFullIdentifier().c_str());
			break;
		case DROPCASCADETITLE:
			message = _("Drop foreign server cascaded?");
			break;
		case DROPTITLE:
			message = _("Drop foreign server?");
			break;
		case PROPERTIESREPORT:
			message = _("Foreign server properties report");
			message += wxT(" - ") + GetName();
			break;
		case PROPERTIES:
			message = _("Foreign server properties");
			break;
		case DDLREPORT:
			message = _("Foreign server DDL report");
			message += wxT(" - ") + GetName();
			break;
		case DDL:
			message = _("Foreign server DDL");
			break;
		case STATISTICSREPORT:
			message = _("Foreign server statistics report");
			message += wxT(" - ") + GetName();
			break;
		case OBJSTATISTICS:
			message = _("Foreign server statistics");
			break;
		case DEPENDENCIESREPORT:
			message = _("Foreign server dependencies report");
			message += wxT(" - ") + GetName();
			break;
		case DEPENDENCIES:
			message = _("Foreign server dependencies");
			break;
		case DEPENDENTSREPORT:
			message = _("Foreign server dependents report");
			message += wxT(" - ") + GetName();
			break;
		case DEPENDENTS:
			message = _("Foreign server dependents");
			break;
	}

	return message;
}
Esempio n. 12
0
void pgView::ShowHint(frmMain *form, bool force)
{
	wxArrayString hints;
	hints.Add(HINT_OBJECT_EDITING);
	frmHint::ShowHint((wxWindow *)form, hints, GetFullIdentifier(), force);
}
Esempio n. 13
0
void pgaJob::ShowStatistics(frmMain *form, ctlListView *statistics)
{
	wxString sql =
	    wxT("SELECT jlgid")
	    wxT(", jlgstatus")
	    wxT(", jlgstart")
	    wxT(", jlgduration")
	    wxT(", (jlgstart + jlgduration) AS endtime")
	    wxT("  FROM pgagent.pga_joblog\n")
	    wxT(" WHERE jlgjobid = ") + NumToStr(GetRecId()) +
	    wxT(" ORDER BY jlgstart DESC") +
	    wxT(" LIMIT ") + NumToStr(settings->GetMaxRows());

	if (statistics)
	{
		wxLogInfo(wxT("Displaying statistics for job %s"), GetFullIdentifier().c_str());

		// Add the statistics view columns
		statistics->ClearAll();
		statistics->AddColumn(_("Run"), 50);
		statistics->AddColumn(_("Status"), 60);
		statistics->AddColumn(_("Start time"), 95);
		statistics->AddColumn(_("End time"), 95);
		statistics->AddColumn(_("Duration"), 70);

		pgSet *stats = GetConnection()->ExecuteSet(sql);
		wxString status;
		wxDateTime startTime;
		wxDateTime endTime;

		if (stats)
		{
			while (!stats->Eof())
			{
				if (stats->GetVal(1) == wxT("r"))
					status = _("Running");
				else if (stats->GetVal(1) == wxT("s"))
					status = _("Successful");
				else if (stats->GetVal(1) == wxT("f"))
					status = _("Failed");
				else if (stats->GetVal(1) == wxT("d"))
					status = _("Aborted");
				else if (stats->GetVal(1) == wxT("i"))
					status = _("No steps");
				else
					status = _("Unknown");

				startTime.ParseDateTime(stats->GetVal(2));
				endTime.ParseDateTime(stats->GetVal(4));

				long pos = statistics->AppendItem(stats->GetVal(0), status, startTime.Format());
				if (stats->GetVal(4).Length() > 0)
					statistics->SetItem(pos, 3, endTime.Format());
				statistics->SetItem(pos, 4, stats->GetVal(3));

				stats->MoveNext();
			}
			delete stats;
		}
	}
}