* Document the connector API method is_transaction_active()
* Move mysql::connection_base::is_transaction_active() to the other transaction-handling methods.
* Add more tests for mysql::connection::is_transaction_active()
* Add postgresql::connection_base::is_transaction_active()
* Add tests for postgresql::connection_base::is_transaction_active()
* Change the type of the SQLite3 transaction status from transaction_status_type to a boolean flag.
* Add sqlite3::connection_base::is_transaction_active()
* Add tests for sqlite3::connection_base::is_transaction_active()
* When closing a transaction do it in the following order: report (if any), execute SQL command, set transaction active flag to false.
MySQL 8.0.34 deprecates `MYSQL_OPT_RECONNECT`. As discussed in #530,
this commit is removing library support for (auto-)reconnect.
It is of course still possible to reconnect directly using the native
handle.
_head used to represent the position of the next push_back()
and _tail used to represent the position of front().
This CL renames them to avoid confusion.
* Replace connection handle method check_connection() with is_connected() and ping_server()
* When a connections is fetched from a pool perform a validity check which can be one of none, passive or ping.
* Add the methods is_connected() and ping_server() to the connection template class.
* Remove unused #include and add mising #include.
* Add tests for the connection methods is_connected() and ping_server().
* Add sqlpp::compat::make_unique which calls std::make_unique in C++14 or newer and falls back to a custom implementation in C++11 mode.
* Add tests for sqlpp::compat::make_unique
* Move the method definitions of sqlpp::normal_connection inside the class.
* Move the method definitions of sqlpp::pooled_connection inside the class.
* clang-format include/sqlpp11/connection.h
* clang-format include/sqlpp11/connection_pool.h
* Move the PostgreSQL date/time parsing code to common functions in sqlpp::detail
* Use the common date/time-parsing functions to parse the MySQL date/time results.
* Use regular expressions to parse date/time strings in the SQLite3 connector
* Move the code for sqlpp::sqlite3::detail::prepared_statement_handle_t to include/sqlpp11/sqlite3/detail/prepared_statement_handle.h
* Whitespace
* Move the code for sqlpp::sqlite3::detail::connection_handle to include/sqlpp11/sqlite3/detail/connection_handle.h
* Rename sqlpp::sqlite3::serializer_t -> sqlpp::sqlite3::context_t
* Add const qualifiers to sqlpp::mysql::context_t::escape() and its parameter.
* Change method argument types "const std::string" -> "const std::string&"
* Remove a superfluous function that forwards the call to sqlite3_close().
* Move initialization of sqlpp::sqlite3::detail::prepared_statement_handle_t data members from the constructor into the member initialization list.
* Rename method parameter from CamelCase to snake_case.
* Move the method definitions for sqlpp::postgresql::detail::statement_handle_t inside the class.
* Move the method definitions for sqlpp::postgresql::detail::prepared_statement_handle_t inside the class.
* Move the method definitions for sqlpp::postgresql::prepared_statement_t inside the class.
* Move the method definitions for sqlpp::postgresql::::Result inside the class.
* Remove superfluous inline specifier from the in-class method definitions of sqlpp::postgresql::Result.
* Remove unused method declaration sqlpp::postgresql::Result::hasError()
* Move the method definitions for sqlpp::postgresql::bind_result_t inside the class.
* Move the method definitions for sqlpp::postgresql::connection_base inside the class.
* Add a comment explaining why sqlpp::postgresql::context_t::escape() is defined out-of-class.
* Remove incorrect comment about forward declaration
* Remove a superfluous function that forwards the call to PQFinish().
* Replace "std::string" parameters with "const std::string&".
* Remove superfluous detail:: namespace qualification.
* Rename class/struct types, variables and functions from CamelCase to snake_case.
* Move the code for sqlpp::mysql::detail::connection_handle_t to include/sqlpp11/mysql/detail/connection_handle.h
* Move the code for sqlpp::mysql::detail::prepared_statement_handle_t to include/sqlpp11/mysql/detail/prepared_statement_handle.h
* Move the code for sqlpp::mysql::detail::result_handle to include/sqlpp11/mysql/detail/result_handle.h
* Rename sqlpp::mysql::detail::connection_handle_t -> sqlpp::mysql::detail::connection_handle
* Rename sqlpp::mysql::serializer_t -> sqlpp::mysql::context_t
* Add const qualifiers to sqlpp::mysql::context_t::escape() and its parameter.
* Rename class/struct types, variables and functions from CamelCase to snake_case.
* Remove a superfluous function that forwards the call to mysql_close().
* Use a non-UTC timezone when testing the PostgreSQL timezone support.
* Fix serialization of time of day values for PostgreSQL
* Fix serialization of PostgreSQL values for "timestamp with time zone" and "time with time zone" fields.
Add support for connection pooling
* Add support for connection pooling to the core code.
* Add support for PostgreSQL connection pooling with tests.
* Add support for SQLite3 connection pooling with tests.
* Add support for MySQL connection pooling with tests.
* ddl2cpp command line argument for custom types
- Updated the ddl2cpp script to allow custom/extended types through external csv file
- Had to re-order the script to allow the command line to be parsed before setting up the parser
- Updated README
* Test for the command line argument
- Script test only for now
* Test the custom type argument
- Firs a negative test
- Last a positive test and compile test against the generated output
* Expand the test
- Ensure built in types still work
- Check capitilisation
- Ensure more than one custom works
- Check type with spaces
---------
Co-authored-by: Carel Combrink <carel.combrink@vastech.co.za>
- The postgres connection does not change the connection_config thus passing it as const.
- Implies 'thread safety' when using the same config for multiple connections
Co-authored-by: Carel Combrink <carel.combrink@vastech.co.za>
* When inserting values into "timestamp with time zone" fields treat the value as being in the UTC time zone.
* Simplify parsing of PostgreSQL date/time responses by using regular expressions. Always convert response times with time zone to UTC.
* Add tests which check if timestamp and date fields are treated as having a UTC time zone.
* Clarify the test comments.