Wt
4.10.4
|
A PostgreSQL connection. More...
#include <Wt/Dbo/backend/Postgres.h>
Public Member Functions | |
Postgres () | |
Creates new PostgreSQL backend connection. | |
Postgres (const std::string &db) | |
Opens a new PostgreSQL backend connection. | |
Postgres (const Postgres &other) | |
Copies a PostgreSQL connection. | |
~Postgres () | |
Destructor. | |
virtual std::unique_ptr< SqlConnection > | clone () const override |
Clones the connection. | |
bool | connect (const std::string &db) |
Tries to connect. | |
void | disconnect () |
Disconnects. | |
bool | reconnect () |
Reconnect. | |
PGconn * | connection () |
Returns the underlying connection. | |
void | setTimeout (std::chrono::microseconds timeout) |
Sets a timeout. | |
std::chrono::microseconds | timeout () const |
Returns the timeout. | |
void | setMaximumLifetime (std::chrono::seconds seconds) |
Sets the maximum lifetime for the underlying connection. | |
virtual void | executeSql (const std::string &sql) override |
Executes an SQL statement. | |
virtual void | startTransaction () override |
Starts a transaction. | |
virtual void | commitTransaction () override |
Commits a transaction. | |
virtual void | rollbackTransaction () override |
Rolls back a transaction. | |
virtual std::unique_ptr< SqlStatement > | prepareStatement (const std::string &sql) override |
Prepares a statement. | |
Methods that return dialect information | |
virtual std::string | autoincrementSql () const override |
Returns the 'autoincrement' SQL type modifier. | |
virtual std::vector< std::string > | autoincrementCreateSequenceSql (const std::string &table, const std::string &id) const override |
Returns the SQL statement(s) required to create an id sequence. | |
virtual std::vector< std::string > | autoincrementDropSequenceSql (const std::string &table, const std::string &id) const override |
Returns the SQL statement(s) required to drop an id sequence. | |
virtual std::string | autoincrementType () const override |
Returns the 'autoincrement' SQL type. | |
virtual std::string | autoincrementInsertSuffix (const std::string &id) const override |
Returns the suffix for an 'autoincrement' insert statement. | |
virtual const char * | dateTimeType (SqlDateTimeType type) const override |
Returns the date/time type. | |
virtual const char * | blobType () const override |
Returns the blob type. | |
virtual bool | supportAlterTable () const override |
Returns true if the backend support Alter Table. | |
virtual bool | supportDeferrableFKConstraint () const override |
Returns true if the backend supports "deferrable initially
deferred" foreign key constraints. | |
virtual bool | requireSubqueryAlias () const override |
Returns the true if the database require subquery alias. | |
![]() | |
virtual | ~SqlConnection () |
Destructor. | |
virtual void | executeSqlStateful (const std::string &sql) |
Executes a connection-stateful SQL statement. | |
virtual SqlStatement * | getStatement (const std::string &id) const |
Returns the statement with the given id. | |
virtual void | saveStatement (const std::string &id, std::unique_ptr< SqlStatement > statement) |
Saves a statement with the given id. | |
void | setProperty (const std::string &name, const std::string &value) |
Sets a property. | |
std::string | property (const std::string &name) const |
Returns a property. | |
virtual std::string | autoincrementInsertInfix (const std::string &id) const |
Returns the infix for an 'autoincrement' insert statement. | |
virtual void | prepareForDropTables () |
Execute code before dropping the tables. | |
virtual std::string | textType (int size) const |
Returns the text type. | |
virtual std::string | longLongType () const |
Returns the 64-bit integer type. | |
virtual const char * | booleanType () const |
Returns the boolean type. | |
virtual bool | supportUpdateCascade () const |
Returns true if the database supports Update Cascade. | |
virtual bool | usesRowsFromTo () const |
Returns whether the SQL dialect uses 'ROWS ? TO ?', limit or rownum for partial select results. | |
virtual const char * | alterTableConstraintString () const |
Returns the command used in alter table .. drop constraint .. | |
A PostgreSQL connection.
This class provides the backend implementation for PostgreSQL databases.
When applicable, exceptions from the backend will return the five-character SQLSTATE error codes, as in http://www.postgresql.org/docs/8.1/static/errcodes-appendix.html, in Exception::code().
Wt::Dbo::backend::Postgres::Postgres | ( | ) |
Creates new PostgreSQL backend connection.
The connection is not yet open, and requires a connect() before it can be used.
Wt::Dbo::backend::Postgres::Postgres | ( | const std::string & | db | ) |
Opens a new PostgreSQL backend connection.
The db
may be any of the values supported by PQconnectdb().
Copies a PostgreSQL connection.
This creates a new connection with the same settings as another connection.
Wt::Dbo::backend::Postgres::~Postgres | ( | ) |
Destructor.
Closes the connection.
|
overridevirtual |
Returns the SQL statement(s) required to create an id sequence.
This is used by Session::createTables() to create the id sequence for a table. The table's name and primary key are passed as arguments to this function and can be used to construct an SQL sequence that is unique for the table.
Implements Wt::Dbo::SqlConnection.
|
overridevirtual |
Returns the SQL statement(s) required to drop an id sequence.
This is used by Session::dropTables() to drop the id sequence for a table. The table's name and primary key are passed as arguments to this function and can be used to construct an SQL sequence that is unique for the table.
Implements Wt::Dbo::SqlConnection.
|
overridevirtual |
Returns the suffix for an 'autoincrement' insert statement.
This is appended to the insert
statement, since some back-ends need to be indicated that they should return the autoincrement id.
Implements Wt::Dbo::SqlConnection.
|
overridevirtual |
Returns the 'autoincrement' SQL type modifier.
This is used by Session::createTables() to create the id column.
Implements Wt::Dbo::SqlConnection.
|
overridevirtual |
Returns the 'autoincrement' SQL type.
This is used by Session::createTables() to create the id column.
Implements Wt::Dbo::SqlConnection.
Returns the blob type.
Implements Wt::Dbo::SqlConnection.
|
overridevirtual |
Clones the connection.
Returns a new connection object that is configured like this object. This is used by connection pool implementations to create its connections.
Implements Wt::Dbo::SqlConnection.
Tries to connect.
Throws an exception if there was a problem, otherwise true. An example connecion string could be: "host=127.0.0.1 user=test password=test port=5432 dbname=test"
|
overridevirtual |
Returns the date/time type.
Implements Wt::Dbo::SqlConnection.
void Wt::Dbo::backend::Postgres::disconnect | ( | ) |
Disconnects.
This disconnects from the server. Any subsequent action on the connection will result in an automatic reconnect.
Executes an SQL statement.
This is a convenience method for preparing a statement, executing it, and deleting it.
Reimplemented from Wt::Dbo::SqlConnection.
|
overridevirtual |
bool Wt::Dbo::backend::Postgres::reconnect | ( | ) |
Reconnect.
This will try to reconnect a previously disconnected connection. If the connection is still open, it will first disconnect.
Returns the true if the database require subquery alias.
This method will return false by default.
Reimplemented from Wt::Dbo::SqlConnection.
Rolls back a transaction.
This function rolls back a transaction.
Implements Wt::Dbo::SqlConnection.
void Wt::Dbo::backend::Postgres::setMaximumLifetime | ( | std::chrono::seconds | seconds | ) |
Sets the maximum lifetime for the underlying connection.
The maximum lifetime is specified in seconds. If set to a value > 0, then the underlying connection object will be closed and reopened when the connection has been open longer than this lifetime.
The default value is -1 (unlimited lifetime).
void Wt::Dbo::backend::Postgres::setTimeout | ( | std::chrono::microseconds | timeout | ) |
Sets a timeout.
Sets a timeout for queries. When the query exceeds this timeout, the connection is closed using disconnect() and an exception is thrown.
In practice, as a result, the connection (and statements) can still be used again when a successful reconnect() is performed.
A value of 0 disables the timeout handling, allowing operations to take as much time is they require.
The default value is 0.
Returns true if the backend support Alter Table.
This method will return false by default.
Reimplemented from Wt::Dbo::SqlConnection.
Returns true if the backend supports "deferrable initially deferred" foreign key constraints.
This method will return false by default.
Reimplemented from Wt::Dbo::SqlConnection.
std::chrono::microseconds Wt::Dbo::backend::Postgres::timeout | ( | ) | const |
Returns the timeout.