From 7c4689eb5179d68c79bf22381b475c191f77f31c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Mon, 6 Nov 2017 13:03:06 +0100 Subject: [PATCH] Update changelog --- CHANGELOG.md | 120 +++++++++++++++++++++++++++++++++++++++++++++++++ CHANGELOG.txt | 111 --------------------------------------------- CMakeLists.txt | 22 ++++----- TODO.txt | 4 +- 4 files changed, 133 insertions(+), 124 deletions(-) create mode 100644 CHANGELOG.md delete mode 100644 CHANGELOG.txt diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..073ffb6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,120 @@ +Mar 30 2012 +- Start of a new thin C++ SQLite wrapper + +Apr 2 2012 +- The wrapper is functionnal +- Added documentation and examples +- Publication on GitHub + +Version 0.1.0 - Apr 4 2012 +- Added a Database::exec() methode to execute simple SQL statement +- Added a version number like in sqlite3.h, starting with 0.1.0 + +Version 0.2.0 - Apr 11 2012 +- Added getLastInsertId() and setBusyTimout() +- Added bind() by name methods + +Version 0.3.0 - Apr 16 2012 +- Added an easy wrapper Database::execAngGet() + +Version 0.4.0 - Apr 23 2012 +- Added a Database::tableExists() easy to use function + +Dec 10 2012 +- Added a Statement::exec() method to execute a one-step query with no expected result + +Version 0.5.0 - March 9 2013 +- Added assert() on errors on destructors +- Added getBytes() +- Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull +- Added bind() for binary blob data + +Version 0.5.1 - April 7 2013 +- Added Column::getName() + +Version 0.6.0 - November 22 2013 +- Renamed Column::getName() to Column::getOriginName() +- Added Column::getName() + +Version 0.7.0 - January 9 2014 +- Added Database::createFunction() +- Added std::string version of existing APIs +- Improved CMake with more build options and Doxygen auto-detection + +Version 0.8.0 - February 26 2014 +- Database constructor support opening a database with a custom VFS (default to NULL) +- Changed Column::getText() to return empty string "" by default instead of NULL pointer (to handle std::string conversion) + +Version 1.0.0 - May 3 2015 +- Public headers file moved to include/ dir +- Added support to biicode in CMakeLists.txt +- Added Unit Tests +- Added aBusyTimeoutMs parameter to Database() constructors +- Added Database::getTotalChanges() +- Added Database::getErrorCode() +- Added Statement::clearBindings() +- Added Statement::getColumn(aName) +- Added Statement::getErrorCode() +- Added Statement::getColumnName(aIndex) +- Added Statement::getColumnOriginName(aIndex) + +Version 1.1.0 - May 18 2015 +- Fixed valgrind error on Database destructor +- Added Database::loadExtension + +Version 1.2.0 - September 9 2015 +- Fixed build with GCC 5.1.0 +- Fixed MSVC release build warning +- Fixed CppDepends warnings +- Updated documentation on installation +- Added Database::getHandle() + +Version 1.3.0 - November 1 2015 +- Fixed build with Visual Studio 2015 +- Further improvements to README +- Added Backup class + +Version 1.3.1 - February 10 2016 +- Swith Linux/Mac build to the provided SQLite3 C library +- Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20) +- Remove warnings +- Remove biicode support (defunct service, servers will shutdown the 16th of February 2016) + +Version 2.0.0 - July 25 2016 +- Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18) +- Move #include from headers to .cpp files only using forward declarations +- Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code +- Add getLibVersion() and getLibVersionNumber() to get runtime version of the library +- Better exception messages when Statements fail PR #84 +- Variadic templates for bind() (C++14) PR #85 +- Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86 +- Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86 +- Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason +- Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount() +- Remove Column::errmsg() method : use Database or Statement equivalents +- More unit tests, with code coverage status on the GitHub page +- Do not force MSVC to use static runtime if unit-tests are not build + +Version 2.1.0 - July 18 2017 +- Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08) +- Fixed Incompatibility in 3.19.0 (to use older SQLite version set the CMake variable SQLITE_USE_LEGACY_STRUCT) #125 +- Fixed link error (inline in cpp) and compiler warnings (unused variable...) #96 +- Added ability to open encrypted databases #107 +- Added convenience functions for constructing objects from a row #114 +- Added CMake install step #118 +- Fix warnings #119 +- Make cpplint.py Python-3 compatible #120 +- Link libssp when targeted #100 +- Removed redundant const #102 + +Version 2.2.0 - Sept 19 2017 +- Update SQLite3 from 3.19.3 to latest 3.20.1 (2017-08-24) #143 +- Added tryExecuteStep and tryReset #142 +- Removed virtual kewords from destructors #140 +- Removed misplaced noexcept keyword #139 +- Improved Exception class C++ conformance #138 +- Fix warnings #134 +- Deprecated Statement::IsOk() to Statement::HasRow() + +Version ? +- Add Statement binding for long int values #147 \ No newline at end of file diff --git a/CHANGELOG.txt b/CHANGELOG.txt deleted file mode 100644 index 866064b..0000000 --- a/CHANGELOG.txt +++ /dev/null @@ -1,111 +0,0 @@ -Mar 30 2012 - Start of a new thin C++ SQLite wrapper - -Apr 2 2012 - The wrapper is functionnal - Added documentation and examples - Publication on GitHub - -Version 0.1.0 - Apr 4 2012 - Added a Database::exec() methode to execute simple SQL statement - Added a version number like in sqlite3.h, starting with 0.1.0 - -Version 0.2.0 - Apr 11 2012 - Added getLastInsertId() and setBusyTimout() - Added bind() by name methods - -Version 0.3.0 - Apr 16 2012 - Added an easy wrapper Database::execAngGet() - -Version 0.4.0 - Apr 23 2012 - Added a Database::tableExists() easy to use function - -Dec 10 2012 - Added a Statement::exec() method to execute a one-step query with no expected result - -Version 0.5.0 - March 9 2013 - Added assert() on errors on destructors - Added getBytes() - Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull - Added bind() for binary blob data - -Version 0.5.1 - April 7 2013 - Added Column::getName() - -Version 0.6.0 - November 22 2013 - Renamed Column::getName() to Column::getOriginName() - Added Column::getName() - -Version 0.7.0 - January 9 2014 - Added Database::createFunction() - Added std::string version of existing APIs - Improved CMake with more build options and Doxygen auto-detection - -Version 0.8.0 - February 26 2014 - Database constructor support opening a database with a custom VFS (default to NULL) - Changed Column::getText() to return empty string "" by default instead of NULL pointer (to handle std::string conversion) - -Version 1.0.0 - May 3 2015 - Public headers file moved to include/ dir - Added support to biicode in CMakeLists.txt - Added Unit Tests - Added aBusyTimeoutMs parameter to Database() constructors - Added Database::getTotalChanges() - Added Database::getErrorCode() - Added Statement::clearBindings() - Added Statement::getColumn(aName) - Added Statement::getErrorCode() - Added Statement::getColumnName(aIndex) - Added Statement::getColumnOriginName(aIndex) - -Version 1.1.0 - May 18 2015 - Fixed valgrind error on Database destructor - Added Database::loadExtension - -Version 1.2.0 - September 9 2015 - Fixed build with GCC 5.1.0 - Fixed MSVC release build warning - Fixed CppDepends warnings - Updated documentation on installation - Added Database::getHandle() - -Version 1.3.0 - November 1 2015 - Fixed build with Visual Studio 2015 - Further improvements to README - Added Backup class - -Version 1.3.1 - February 10 2016 - Swith Linux/Mac build to the provided SQLite3 C library - Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20) - Remove warnings - Remove biicode support (defunct service, servers will shutdown the 16th of February 2016) - -Version 2.0.0 - July 25 2016 - Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18) - Move #include from headers to .cpp files only using forward declarations - Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code - Add getLibVersion() and getLibVersionNumber() to get runtime version of the library - Better exception messages when Statements fail PR #84 - Variadic templates for bind() (C++14) PR #85 - Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86 - Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86 - Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason - Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount() - Remove Column::errmsg() method : use Database or Statement equivalents - More unit tests, with code coverage status on the GitHub page - Do not force MSVC to use static runtime if unit-tests are not build - -Version 2.1.0 - July 18 2017 - Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08) - Fixed link error (inline in cpp) and compiler warnings (unused variable...) - Added ability to open encrypted databases. - Added convenience functions for constructing objects from a row - Added CMake install step - Make cpplint.py Python-3 compatible - -Version 2.2.0 - Sept 19 2017 - Update SQLite3 from 3.19.3 to latest 3.20.1 (2017-08-24) - Removed virtual kewords from destructors - Removed misplaced noexcept keyword - Improved Exception class C++ conformance - Deprecated Statement::IsOk() to Statement::HasRow() diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a3e492..b61d153 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ # Copyright (c) 2012-2016 Sebastien Rombauts (sebastien.rombauts@gmail.com) # # Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt -# or copy at http://opensource.org/licenses/MIT) +# or copy at http://opensource.org/licenses/MIT) cmake_minimum_required(VERSION 2.8.12) # first version with add_compile_options() project(SQLiteCpp) @@ -33,7 +33,7 @@ if (MSVC) else (MSVC) set(CPPLINT_ARG_OUTPUT "--output=eclipse") set(CPPCHECK_ARG_TEMPLATE "--template=gcc") - # Useful compile flags and extra warnings + # Useful compile flags and extra warnings add_compile_options(-fstack-protector -Wall -Wextra -Wpedantic -Wno-long-long -Wswitch-enum -Wshadow -Winline) if (CMAKE_COMPILER_IS_GNUCXX) # GCC flags @@ -77,20 +77,20 @@ endif () # Options relative to SQLite and SQLiteC++ functions option(SQLITE_ENABLE_COLUMN_METADATA "Enable Column::getColumnOriginName(). Require support from sqlite3 library." ON) -if (SQLITE_ENABLE_COLUMN_METADATA) +if (SQLITE_ENABLE_COLUMN_METADATA) # Enable the use of SQLite column metadata and Column::getColumnOriginName() method, # Require that the sqlite3 library is also compiled with this flag (default under Debian/Ubuntu, but not on Mac OS X). add_definitions(-DSQLITE_ENABLE_COLUMN_METADATA) endif (SQLITE_ENABLE_COLUMN_METADATA) option(SQLITE_ENABLE_ASSERT_HANDLER "Enable the user defintion of a assertion_failed() handler." OFF) -if (SQLITE_ENABLE_ASSERT_HANDLER) +if (SQLITE_ENABLE_ASSERT_HANDLER) # Enable the user defintion of a assertion_failed() handler (default to false, easier to handler for begginers). add_definitions(-DSQLITECPP_ENABLE_ASSERT_HANDLER) endif (SQLITE_ENABLE_ASSERT_HANDLER) option(SQLITE_USE_LEGACY_STRUCT "Fallback to forward declaration of legacy struct sqlite3_value (pre SQLite 3.19)" OFF) -if (SQLITE_USE_LEGACY_STRUCT) +if (SQLITE_USE_LEGACY_STRUCT) # Force forward declaration of legacy struct sqlite3_value (pre SQLite 3.19) add_definitions(-DSQLITE_USE_LEGACY_STRUCT) endif (SQLITE_USE_LEGACY_STRUCT) @@ -148,7 +148,7 @@ source_group(example1 FILES ${SQLITECPP_EXAMPLES}) set(SQLITECPP_DOC README.md LICENSE.txt - CHANGELOG.txt + CHANGELOG.md TODO.txt ) source_group(doc FILES ${SQLITECPP_DOC}) @@ -165,7 +165,7 @@ set(SQLITECPP_SCRIPT ) source_group(scripts FILES ${SQLITECPP_SCRIPT}) -# All includes are relative to the "include" directory +# All includes are relative to the "include" directory include_directories("${PROJECT_SOURCE_DIR}/include") # add sources of the wrapper as a "SQLiteCpp" static library @@ -184,7 +184,7 @@ install(TARGETS SQLiteCpp LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) -target_include_directories(SQLiteCpp PUBLIC +target_include_directories(SQLiteCpp PUBLIC $ $) install(DIRECTORY include/ DESTINATION include COMPONENT headers FILES_MATCHING REGEX ".*\\.(hpp|h)$") @@ -269,7 +269,7 @@ if (SQLITECPP_BUILD_EXAMPLES) endif () elseif (MSYS OR MINGW) target_link_libraries(SQLiteCpp_example1 ssp) - endif () + endif () else (SQLITECPP_BUILD_EXAMPLES) message(STATUS "SQLITECPP_BUILD_EXAMPLES OFF") endif (SQLITECPP_BUILD_EXAMPLES) @@ -287,7 +287,7 @@ if (SQLITECPP_BUILD_TESTS) if (NOT EXISTS "${PROJECT_SOURCE_DIR}/googletest/CMakeLists.txt") message(FATAL_ERROR "Missing 'googletest' submodule! Either use 'git init submodule' and 'git update submodule' to get googletest according to the README, or deactivate unit tests with -DSQLITECPP_BUILD_TESTS=OFF") endif () - add_subdirectory(googletest) + add_subdirectory(googletest) include_directories("${PROJECT_SOURCE_DIR}/googletest/googletest/include") # add the unit test executable @@ -296,7 +296,7 @@ if (SQLITECPP_BUILD_TESTS) # Link target with dl for linux if (UNIX AND NOT APPLE) target_link_libraries(SQLiteCpp_tests dl) - endif () + endif () # add a "test" target: enable_testing() diff --git a/TODO.txt b/TODO.txt index 7a74609..736868c 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,4 +1,4 @@ -Switch to C++11 for v2.0.0 with removal of include in headers +Switch to C++11 for v3.0.0 Add a Tutorial for SQLite newbies Add a real example in the form of a small interactive console application @@ -20,7 +20,7 @@ Missing unit tests in v2.0.0: Advanced missing features: - #39: SAVEPOINT https://www.sqlite.org/lang_savepoint.html -- Add optional usage of experimental sqlite3_trace() function to enable statistics +- Add optional usage of experimental sqlite3_trace() function to enable statistics - Agregate ? - support for different transaction mode ? NO: too specific