|
Wt
4.10.0
|
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. | |
Public Member Functions inherited from Wt::Dbo::SqlConnection | |
| virtual | ~SqlConnection () |
| Destructor. | |
| virtual std::unique_ptr< SqlConnection > | clone () const =0 |
| Clones the connection. | |
| virtual void | executeSql (const std::string &sql) |
| Executes an SQL statement. | |
| virtual void | executeSqlStateful (const std::string &sql) |
| Executes a connection-stateful SQL statement. | |
| virtual void | startTransaction ()=0 |
| Starts a transaction. | |
| virtual void | commitTransaction ()=0 |
| Commits a transaction. | |
| virtual void | rollbackTransaction ()=0 |
| Rolls back a transaction. | |
| 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. | |
| virtual std::unique_ptr< SqlStatement > | prepareStatement (const std::string &sql)=0 |
| Prepares a statement. | |
| 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().
| Wt::Dbo::backend::Postgres::Postgres | ( | const Postgres & | other | ) |
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.
|
overridevirtual |
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.
|
overridevirtual |
| bool Wt::Dbo::backend::Postgres::connect | ( | const std::string & | db | ) |
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.
|
overridevirtual |
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.
|
overridevirtual |
Returns the true if the database require subquery alias.
This method will return false by default.
Reimplemented from Wt::Dbo::SqlConnection.
|
overridevirtual |
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.
|
overridevirtual |
|
overridevirtual |
Returns true if the backend support Alter Table.
This method will return false by default.
Reimplemented from Wt::Dbo::SqlConnection.
|
overridevirtual |
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.