-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Description
-
transactions are not handled properly in
Poco::Data(bug)- when
autoCommitis off, currently the transaction behavior is not entirely correct; it should be as follows:- any statement (including
SELECT) in non-autocommit mode should implicitly start a transaction - one or more statements executed in non-autocommit mode are not in effect until
commit()orrollback()is executed onSession
- any statement (including
Note: this is a breaking change that modifies the transaction semantics; eg. a statement in a non-autocommit
Data::Sessionwill implicitly start a transaction (and lock rows) until commit or rollback is executed from outside. - when
-
add
POCO::Data::SQLParser(experimental, sql-parser wrapper) -
Poco::Data::Statement: unified '?' placeholder support #4365 (moved to separate issue) -
add MARS support
-
Session::open()has no timeout parameter #4366 (moved to separate issue)
poco/Data/include/Poco/Data/Session.h
Line 210 in 3da8ee6
void open(const std::string& connect = ""); -
make
bool Poco::Data::Session::isTransaction()returnPoco::Optional
Currently, in non-autocommit mode without explicitSession::begin(), we simply don't know whether we are in transaction or not and we have no control whether we effectively enter transaction or not - the DB will do it automatically in non-autocommit mode and ourSessionwill not know it. To alleviate this situation,SQLParserwill be added - not a 100% bulletproof solution, but better than nothing. In order to further minimize unpredictability,bool Session::isTransaction()should returnPoco::Optional, so we are explicit about what we know; the downside of doing this is that it will break the code, but a major release is as good opportunity as it gets. -
SQLiteFTS5(full text search) #4367 (moved to separate issue) -
remove
SQLChannel::close()parameter (hides virtual from parent) -
move
SQLExecutorto a library inPoco::Datatestsuite, so it can be used by all back ends to achieve as much common behavior as possible/reasonable- adjust
makebuildsystem - adjust
CMakebuildsystem - adjust
Visual Studio 2022and2019projects (SQLParserneeds C++17) cf. VS170 binary names mismatch on ARM #4207
- adjust
-
fix Oracle failing ODBC tests #4368 (moved to separate issue)
-
fix MySQL failing native and ODBC tests @frwilckens
-
fix My\PostgreSQL failing native and ODBC tests @frwilckens