Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Poco::Data fixes and improvements #4230

Closed
15 of 16 tasks
aleks-f opened this issue Oct 27, 2023 · 0 comments
Closed
15 of 16 tasks

Poco::Data fixes and improvements #4230

aleks-f opened this issue Oct 27, 2023 · 0 comments
Assignees

Comments

@aleks-f
Copy link
Member

aleks-f commented Oct 27, 2023

  • transactions are not handled properly in Poco::Data (bug)

    • when autoCommit is 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() or rollback() is executed on Session

    Note: this is a breaking change that modifies the transaction semantics; eg. a statement in a non-autocommit Data::Session will implicitly start a transaction (and lock rows) until commit or rollback is executed from outside.

  • 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)

    void open(const std::string& connect = "");

  • make bool Poco::Data::Session::isTransaction() return Poco::Optional
    Currently, in non-autocommit mode without explicit Session::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 our Session will not know it. To alleviate this situation, SQLParser will be added - not a 100% bulletproof solution, but better than nothing. In order to further minimize unpredictability, bool Session::isTransaction() should return Poco::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.

  • SQLite FTS5 (full text search) #4367 (moved to separate issue)

  • remove SQLChannel::close() parameter (hides virtual from parent)

  • move SQLExecutor to a library in Poco::Data testsuite, so it can be used by all back ends to achieve as much common behavior as possible/reasonable

  • 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

  • Poco:Data::ODBC - MSSQL (n)varchar(max) length issue #4324

@aleks-f aleks-f added this to the Release 1.13.0 milestone Oct 27, 2023
@aleks-f aleks-f self-assigned this Oct 27, 2023
@aleks-f aleks-f changed the title Poco:::Data fixes and improvements Poco::Data fixes and improvements Oct 27, 2023
aleks-f added a commit that referenced this issue Oct 27, 2023
aleks-f added a commit that referenced this issue Oct 31, 2023
* make bool Session::isTransaction() return Poco::Optional
* move parsing to Statement
* SQLParser make build
* other fixes and improvemets #4230
aleks-f added a commit that referenced this issue Nov 1, 2023
aleks-f added a commit that referenced this issue Nov 2, 2023
pavledragisic pushed a commit that referenced this issue Nov 7, 2023
aleks-f added a commit that referenced this issue Nov 10, 2023
#4230  SQLParser, transaction and other data fixes/improvements
* fix(Data::SQLChannel): remove SQLChannel::close() parameter (hides virtual from parent)
* feat(Data::ODBC) add MARS support #4230
* fix(Data): transactions are not handled properly #4230
* fix(LinearHashTable): fix std::iterator deprecated warnings; test war… 
* feat(SQLParser): add POCO::Data::SQLParser #4230
* fix(Data): 
  * make bool Session::isTransaction() return Poco::Optional
  * move parsing to Statement
  * SQLParser make build
  * other fixes and improvements #4230
* fix(dev): prevent set environment vars accumulation over multiple runs
* enh(poco): std::string literals #4216
* feat(Data/testsuite): move SQLExecutor to a library in Poco::Data testsuite #4230
* fix(ODBC): mac build and run #4230
* fix(build): CppUnit depends on Foundation, swap build order
* enh(ProGen): consolidate/unify pdb names (not consistent) #4207
* fix(build): align Foundation and CppUnit #4207
* feat(ProGen): default to c++17
* chore(build): add missing platform to buildwin #4230
* fix(build): bad value #4230
* feat: add progen ps script #4248
aleks-f added a commit that referenced this issue Nov 23, 2023
aleks-f added a commit that referenced this issue Nov 23, 2023
* make bool Session::isTransaction() return Poco::Optional
* move parsing to Statement
* SQLParser make build
* other fixes and improvemets #4230
aleks-f added a commit that referenced this issue Nov 23, 2023
aleks-f added a commit that referenced this issue Nov 23, 2023
aleks-f pushed a commit that referenced this issue Nov 23, 2023
aleks-f added a commit that referenced this issue Nov 27, 2023
aleks-f added a commit that referenced this issue Nov 27, 2023
* make bool Session::isTransaction() return Poco::Optional
* move parsing to Statement
* SQLParser make build
* other fixes and improvemets #4230
aleks-f added a commit that referenced this issue Nov 27, 2023
aleks-f added a commit that referenced this issue Nov 27, 2023
aleks-f pushed a commit that referenced this issue Nov 27, 2023
@aleks-f aleks-f added the fixed label Dec 21, 2023
@aleks-f aleks-f closed this as completed Dec 22, 2023
@aleks-f aleks-f added this to 1.14 Jan 31, 2024
@aleks-f aleks-f removed the fixed label Jan 31, 2024
@aleks-f aleks-f reopened this Jan 31, 2024
@aleks-f aleks-f removed this from 1.14 Jan 31, 2024
@aleks-f aleks-f closed this as completed Jan 31, 2024
@aleks-f aleks-f removed bug breaking A breaking change labels Apr 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant