pgadmin3/include/schema/pgOperator.h
2020-07-07 22:19:12 +05:00

218 lines
4.1 KiB
C++

//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// pgOperator.h PostgreSQL Operator
//
//////////////////////////////////////////////////////////////////////////
#ifndef PG_OPERATOR_H
#define PG_OPERATOR_H
#include "pgSchema.h"
class pgOperatorFactory : public pgSchemaObjFactory
{
public:
pgOperatorFactory();
virtual dlgProperty *CreateDialog(frmMain *frame, pgObject *node, pgObject *parent);
virtual pgObject *CreateObjects(pgCollection *obj, ctlTree *browser, const wxString &restr = wxEmptyString);
virtual pgCollection *CreateCollection(pgObject *obj);
};
extern pgOperatorFactory operatorFactory;
class pgOperator : public pgSchemaObject
{
public:
pgOperator(pgSchema *newSchema, const wxString &newName = wxT(""));
~pgOperator();
wxString GetTranslatedMessage(int kindOfMessage) const;
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
virtual wxString GetQuotedIdentifier() const
{
return GetName();
}
bool CanDropCascaded()
{
return GetSchema()->GetMetaType() != PGM_CATALOG;
}
wxString GetFullName();
wxString GetOperands() const;
wxString GetLeftType() const
{
return leftType;
}
void iSetLeftType(const wxString &s)
{
leftType = s;
}
wxString GetRightType() const
{
return rightType;
}
void iSetRightType(const wxString &s)
{
rightType = s;
}
OID GetLeftTypeOid() const
{
return leftTypeOid;
}
void iSetLeftTypeOid(const OID o)
{
leftTypeOid = o;
}
OID GetRightTypeOid() const
{
return rightTypeOid;
}
void iSetRightTypeOid(const OID o)
{
rightTypeOid = o;
}
wxString GetResultType()
{
return resultType;
}
void iSetResultType(const wxString &s)
{
resultType = s;
}
wxString GetOperatorFunction() const
{
return operatorFunction;
}
void iSetOperatorFunction(const wxString &s)
{
operatorFunction = s;
}
wxString GetJoinFunction() const
{
return joinFunction;
}
void iSetJoinFunction(const wxString &s)
{
joinFunction = s;
}
wxString GetRestrictFunction() const
{
return restrictFunction;
}
void iSetRestrictFunction(const wxString &s)
{
restrictFunction = s;
}
wxString GetCommutator() const
{
return commutator;
}
void iSetCommutator(const wxString &s)
{
commutator = s;
}
wxString GetNegator() const
{
return negator;
}
void iSetNegator(const wxString &s)
{
negator = s;
}
wxString GetKind() const
{
return kind;
}
void iSetKind(const wxString &s)
{
kind = s;
}
wxString GetLeftSortOperator() const
{
return leftSortOperator;
}
void iSetLeftSortOperator(const wxString &s)
{
leftSortOperator = s;
}
wxString GetRightSortOperator() const
{
return rightSortOperator;
}
void iSetRightSortOperator(const wxString &s)
{
rightSortOperator = s;
}
wxString GetLessOperator() const
{
return lessOperator;
}
void iSetLessOperator(const wxString &s)
{
lessOperator = s;
}
wxString GetGreaterOperator() const
{
return greaterOperator;
}
void iSetGreaterOperator(const wxString &s)
{
greaterOperator = s;
}
bool GetHashJoins() const
{
return hashJoins;
}
void iSetHashJoins(bool b)
{
hashJoins = b;
}
bool GetMergeJoins() const
{
return mergeJoins;
}
void iSetMergeJoins(bool b)
{
mergeJoins = b;
}
bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded);
wxString GetSql(ctlTree *browser);
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
bool HasStats()
{
return false;
}
bool HasDepends()
{
return true;
}
bool HasReferences()
{
return true;
}
private:
wxString leftType, rightType, resultType,
operatorFunction, joinFunction, restrictFunction,
commutator, negator, kind,
leftSortOperator, rightSortOperator, lessOperator, greaterOperator;
OID leftTypeOid, rightTypeOid;
bool hashJoins, mergeJoins;
};
class pgOperatorCollection : public pgSchemaObjCollection
{
public:
pgOperatorCollection(pgaFactory *factory, pgSchema *sch);
wxString GetTranslatedMessage(int kindOfMessage) const;
};
#endif