* sample(DBLogger): New sample to demonstrate DB logging to a file. (#4750)
* sample(DBLogger): Create messages via SQL logger in a thread (#4750)
* sample(DBLogger): Save messages from SQL files to an SQL database (works with SQLite) (#4750)
* chore(Makefile): Data samples depend on PocoUtil (#4750)
* sample(DBLogger): Refactored DBLogger with std::filesystem::directory_iterator and std::thread.
* sample(DBLogger): Add missing include <condition_variable>
* sample(DBLogger): Extracted log scanning and inserting functionality to class SQLLogInserter.
* sample(DBLogger): Create new logging table only when using demo messages option.
* feat(DBLogger): VS projects
* sample(DBLogger): Acquire options from configuration file.
* feat(DBLogger): regenerate VS projects (progen file change)
* sample(DBLogger): Add example DBLogger.properties file.
* sample(DBLogger): Process as much as possible when stopping processing.
* sample(DBLogger): Meaningful defaults in properties file.
* sample(DBLogger): Verify validity of database session on startup.
* sample(DBLogger): Configure demo SQL channel in properties file.
* chore(DBLogger): style and warnings
---------
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
* feat(PocoDoc): search support
* feat(PocoDoc): enable FTS5 for search support
* feat(PocoDoc): enable FTS5
* chore(pocodoc): edit comment
* fix(StreamCopier): add argument to seekg
* enable searchIndex through the command line
* Add minor updates for search support
* Update of vs90 and regeneration of vs160 and vs170 projects
* Enhance configure script:FTS5 support for SQLite in --sqlite-fts flag
* Add tests for FTS3 and FTS5
* regeneration of vs160 and vs170 projects
* added missing lib data in CMake
* Update vs90 project and regenerate vs160 and vs170 projects with added Data include paths
* Revrting ProGen_vs170.vcxproj
* Revert ProGen in vs170 and regenerate PocoDoc vs160/vs170 projects to include updated Data path
* added missing includes
---------
Co-authored-by: Lara <lara@debian-gnu-linux-12.localdomain>
* fix(Data::ODBC): use connection and login timeouts in ODBC session implementation (#4366)
* fix(Data::ODBC): use only connection timeout in ODBC session implementation (#4366)
* fix(ODBC): consolidate login timeout; create temp directory if it doesn't exist #4366
---------
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
* fix#4536
I've add transaction isolation support for SQLite
Warning! SQLite transactions are [serializable by design](https://
www.sqlite.org/isolation.html) but my implementation retuns false in
function hasTransactionIsolation and throw an exception in
setTransactionIsolation
* disable shared cache in TearDown()
* chore(doc): reword documentation
* we should waitresult of select before rollback (#4718)
---------
Co-authored-by: Alexander B <ale.bychuk@gmail.com>
* chore(Trace): add dev env settings
* add(Trace): init add Poco::trace and libbacktrace files
* feat(Exception): generate stack trace if enabled at compile time
* chore(DNSSD): remove binaries from git
* fix(Trace): build
* chore(ci): exclude exception text tests for trace build; add debug test script params
* chore(build): mac (dl)
* chore(cmake): Changes to build Trace with CMake.
* chore(cmake): Changes to build Trace on Windows
* chore(cmake): Improvements to include trace sample.
* chore(cmake): Fixes to properly build/link Trace on Linux
* chore(cmake): add_definitions --> add_compile_definitions
* chore(cmake): Build Trace as static and don't export it.
* chore(make): Link Trace with built-in libbacktrace on Linux
* chore(Trace): remove unnecessary sources for libbacktrace.
* chore(github): enable trace on a few github checks
* chore(cmake): Build Trace with clang++ on Linux.
* chore(cmake): Properly set POCO_ENABLE_TRACE globally when needed.
* fix(cmake): Trace: corrected include for clang on Linux
---------
Co-authored-by: Matej Kenda <matejken@gmail.com>
On today's `gcc-15` poco fails to build as:
In file included from /build/source/Data/include/Poco/Data/Statement.h:27,
from /build/source/Data/include/Poco/Data/Session.h:23,
from /build/source/Data/include/Poco/Data/ArchiveStrategy.h:22,
from /build/source/Data/src/ArchiveStrategy.cpp:15:
/build/source/Data/include/Poco/Data/SimpleRowFormatter.h:114:21: error: declaration of 'std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_construc
tible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) noexcept [with _Tp = Poco::Data::SimpleRowFormatter; _Require<__not_<__is_tuple_like<_Tp> >, is_move_constructible<_Tp>, is_move_assignable<_Tp> > = void]' has a different exception specifier
114 | inline void swap<Poco::Data::SimpleRowFormatter>(Poco::Data::SimpleRowFormatter& s1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /nix/store/...-gcc-15.0.0/include/c++/15.0.0/bits/new_allocator.h:36,
from /nix/store/...-gcc-15.0.0/include/c++/15.0.0/x86_64-unknown-linux-gnu/bits/c++allocator.h:33,
from /nix/store/...-gcc-15.0.0/include/c++/15.0.0/bits/allocator.h:46,
from /nix/store/...-gcc-15.0.0/include/c++/15.0.0/string:43,
from /build/source/Foundation/include/Poco/Foundation.h:94,
from /build/source/Data/include/Poco/Data/Data.h:23,
from /build/source/Data/include/Poco/Data/ArchiveStrategy.h:21:
/nix/store/...-gcc-15.0.0/include/c++/15.0.0/bits/move.h:214:5: note: from previous declaration 'std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) noexcept (false) [with _Tp = Poco::Data::SimpleRowFormatter; _Require<__not_<__is_tuple_like<_Tp> >, is_move_constructible<_Tp>, is_move_assignable<_Tp> > = void]'
214 | swap(_Tp& __a, _Tp& __b)
| ^~~~
Possibly because `SimpleRowFormatter` does not have constructors and
assignment operators that involve rvalue references?
Updated `noexcept` condition. Fixes the build on` gcc-15`. Still
compiles on `gcc-13`.
* enh(poco): Replace deprecated comments with C++ deprecated attribute.
* enh(Poco): Replace some deprecated functionality in Poco sources. (#4426)
* enh(Poco): Replace more deprecated functionality in Poco sources. (#4426)
* fix(CMake): Variable BUILD_SHARED_LIBS must be defined properly to create valid binaries.
* enh: Code improvements done while resolving deprecated functionality (#4426)
* Un-deprecate LocalDateTme (#4426)
* enh(Poco): Replace usage of deprecated functionality with other functions/classes (#4426)
* chore(SSL): temporarily un-deprecate SSL-related functionality (#4426)
* chore(SSL): temporarily un-deprecate old MongoDB protocol functionality (#4426)
* enh(Poco): Minor Hash improvements (#4426)
* enh(Foundation): Compile deprecated hash tests only when POCO_TEST_DEPRECATED is enabled (#4426)
* enh(Net): Compile deprecated Socket::select functionality only when POCO_TEST_DEPRECATED is enabled (#4426)
* enh(Bonjour): Replace deprecated Socket::select with PollSet (#4426)
* enh(Poco): Introduce POCO_DEPRECATED macro to have the ability to disable deprecation warnings in applications (#4426)
* test(ODBC): add few asserts to testStoredProcedureDynamicVar
* fix(ODBC): rename DynamicAny -> DynamicVar in tests
* fix(ODBC): make Dignostics static members inline to prevent explicit instantiation warnings on windows
---------
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
* enh(ThreadTest): add join test
* enh(SQLLogger): #4529 (wip)
* enh(SQLChannel): just few C++17 modernisations.
* enh(SQLiteTest): extend unit test to destroy SQL channel while it has pending messages. (#4529)
* enh(ODBC): improve exception descriptions and add string/batch size tests
* feat(SQLChannel): add store-and-forward mode
* fix(DataTest): SQLChannel *nix build and test run #4529
* fix(DataTest): CodeQL warning #4529
* chore(ODBCTest): lower the number of max statements in big batch
* feat(SQLChannel): add flush property #4529
* enh(SQLChannel): use event for interruptible sleep; reduce code duplication with lambda; update comments #4529
* fix(SQLChannel): flush time determination #4529
---------
Co-authored-by: Matej Kenda <matejken@gmail.com>
* feat(format): Add string_view format type spec #4409
* chore(Types): add demangle
* fix(Data): Oracle failing ODBC tests #4368
* fix some CQL and fuzz warnings; add Var::typeName()
* fix(build): -std=c++17 and c11
* fix windows build
* fix(Foundation): test apps vs projects c++17
* chore(build): remove uneeded compiler flag
* fix(VarHolder): number of digits range check for int->float conversion (reported by CIFuzz)
* fix(test): CIFuzz
* fix(CIFuzz): another attempt
* fix(progen): add LanguageStandard (stdcpp17, stdc11); regenerate vs170 projects
* fix(CiFuzz): add int->float precision loss barrier; fix erroneous number of digits logic
* enh(Var): silent loss of precision on int->float conversion #4423
* enh(Var): silent loss of precision on int->float conversion #4423
* chore(build): remove old build files
* chore: fix missing parens warning
* enh(Thread_POSIX): prevent double-joining; add error description to exceptions
* fix(Data): unresolved Column<long> linkage in test
* fix(demangle): determine type name from template parameter; add eror diagnostic for demangling failures
* chore(buildwin): remove old vs versions from build and progen scripts; update documentation
* chore(buildwin): remove leftover closing curly
* fix(ActiveRecord): missing ActiveRecordLib_API definitions for clang/gcc.
* fix(FPEnvironment): export FPEnvironmentImpl classes (#4393, #3331)
* fix(Crypto): export *Impl classes used from inlines (#4393, #3331)
* fix(Dynamic): explicitly instantiate and export Dynamic::Struct for string and int (-fvisibility=hidden) (#4393, #3331)
* fix(JSON): explicitly instantiate and export SharedPtr for JSON::Array and JSON::Object (-fvisibility=hidden) (#4393, #3331)
* enh(CMake): Set symbol visibility to hidden (#4393, #3331)
* enh(configure): user c++17 standard for iphone, Darwin and ARM-Linux.
* fix(UTF): explicitly instantiate and export 16 and 32-bit strings (-fvisibility=hidden) (#4393, #3331)
* fix(RecordSet): make Extraction.h internal and instantiate RecordsSet::column template functions only for supported types. (-fvisibility=hidden) (#4393, #3331)
* fix(UTF): fix explicitly instantiation on Windows (-fvisibility=hidden) (#4393, #3331)
* enh(CMake): Add github jobs for macOS with visibility set to hidden (#4393, #3331)
* fix(CppParser): Add missing declarations for CppParser_API (#4393, #3331)
* enh(CMake): Enable more options in github jobs for macOS with visibility set to hidden (#4393, #3331)
* fix(MongoDB): Add missing MongoDB_API (#4393, #3331)