Started with classes for keeping track of the database schema.
Class to represent the contents of pg_type catalog table.
This commit is contained in:
parent
202e6e431a
commit
424cbc9e2e
6 changed files with 192 additions and 0 deletions
37
pgtypecontainer.h
Normal file
37
pgtypecontainer.h
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#ifndef PGTYPECONTAINER_H
|
||||
#define PGTYPECONTAINER_H
|
||||
|
||||
#include <vector>
|
||||
#include "pgtype.h"
|
||||
|
||||
namespace Pgsql {
|
||||
|
||||
class Result;
|
||||
|
||||
}
|
||||
|
||||
class PgTypeContainer {
|
||||
public:
|
||||
using t_Types = std::vector<PgType>; ///< Do not assume it will stay a vector only expect bidirectional access
|
||||
|
||||
PgTypeContainer();
|
||||
|
||||
t_Types::const_iterator begin() const { return m_types.begin(); }
|
||||
t_Types::const_iterator end() const { return m_types.end(); }
|
||||
|
||||
void clear();
|
||||
std::string getLoadQuery();
|
||||
void load(const Pgsql::Result &res);
|
||||
|
||||
/** Searches for the type matching the specified oid.
|
||||
*
|
||||
* \return Returns the matching type or if it is not found a default constructed PgType (oid == InvalidOid).
|
||||
*/
|
||||
const PgType& getTypeByOid(Oid oid) const;
|
||||
const PgType& getTypeByName(const QString &name) const;
|
||||
private:
|
||||
PgType m_invalidType; ///< default constructed object for when a non existent type is being retrieved.
|
||||
t_Types m_types; // Keep sorted by Oid
|
||||
};
|
||||
|
||||
#endif // PGTYPECONTAINER_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue