"foreign_keys" does not work (SQLite)
Spixmaster opened this issue · 18 comments
When opening a database with foreign keys enabled via the connection string, actually the feature is not enabled.
soci::session sql(soci::sqlite3, "db=/home/matheus/.local/share/argo/argo.db foreign_keys=true");
std::int32_t a = -1;
sql << "PRAGMA foreign_keys", soci::into(a);
std::cout << a << std::endl;
The output is 0
.
When executing the query sql << "PRAGMA foreign_keys=true
manually, the output is 1
.
I already check the source code and the test and do not know why it does not work.
You must be using either a SOCI version without foreign keys support or SQLite < 3.6.19, i.e. without support for them, I can't explain this otherwise.
@vadz I am on Arch Linux. The SQLite version is 3.43.2 and it supports foreign keys because executing the statement PRAGMA foreign_keys;
returns.
How could the soci library not support foreign keys if when executing the pragma manually, it works?
If it matters, I use the build script from the AUR.
There must be some mismatch somewhere, e.g. either SOCI is using another version of SQLite or you're not using the version of SOCI you think you use, but some older one, without foreign_keys
support (this actually seems most likely).
Sorry, but problems like this are almost impossible to debug remotely.
Try with std::string a;
Try with
std::string a;
That did not work. The result was "0"
instead.
put a space at the end of the connection string :
soci/src/backends/sqlite3/session.cpp
Line 124 in 2e4b44b
Edit: forget it, getline should still put the value upon reaching EOL.
@Sildra Nevertheless, thanks for some suggestions.
The dbname isn't removed from the parsing of options, resulting in the 1st option being ' <1st option>'.
The matching isn't then properly performed. To bypass the issue, you could do ' = <1st option>=<1st val>'
May I also suggest adding a 'pragma' key like pragma="foreign_keys=true"
so that all past and future pragma are handled ?
The dbname isn't removed from the parsing of options, resulting in the 1st option being ' <1st option>'.
The matching isn't then properly performed. To bypass the issue, you could do ' = <1st option>=<1st val>'
May I also suggest adding a 'pragma' key like
pragma="foreign_keys=true"
so that all past and future pragma are handled ?
@Sildra Could you give an example connection string? I want to make sure to test out exactly what you mean.
soci::session sql;
sql.set_log_stream(&std::cout);
sql.open("sqlite3://:memory: = synchronous=false");
@Spixmaster Do you have a SSCCE?
I've written and run the following:
#include <soci/soci.h>
#include <iostream>
int main() {
try {
soci::session s;
s.set_log_stream(&std::cout);
s.open("sqlite3://db=:memory: foreign_keys=true");
std::string fk;
s << "pragma foreign_keys", soci::into(fk);
std::cout << "FK = \"" << fk << "\"\n";
return 0;
} catch ( std::exception& e ) {
std::cerr << "Exception: " << e.what() << "\n";
} catch ( ... ) {
std::cerr << "Unknown exception.\n";
}
return 127;
}
and it outputs
pragma foreign_keys
FK = "1"
as expected here.
@Sildra These are the tests that I have. Your solution does not work. What my next attempt would be, is to look wheter the CMakeLists.txt
is misconfigured.
TEST(database, normal)
{
{
soci::session sql(soci::sqlite3, "db=/home/matheus/.local/share/argo/argo.db foreign_keys=true shared_cache=true synchronous=extra timeout=10");
std::int32_t busy_timeout = -1;
sql << "PRAGMA busy_timeout", soci::into(busy_timeout);
EXPECT_EQ(busy_timeout, 10000); //passes
std::int32_t foreign_keys = -1;
sql << "PRAGMA foreign_keys", soci::into(foreign_keys);
EXPECT_EQ(foreign_keys, 1); //fails, 0 != 1
std::int32_t synchronous = -1;
sql << "PRAGMA synchronous", soci::into(synchronous);
EXPECT_EQ(synchronous, 3); //passes
}
{
soci::session sql;
sql.set_log_stream(&std::cout);
sql.open("sqlite3://:memory: = foreign_keys=true");
std::int32_t foreign_keys = -1;
sql << "PRAGMA foreign_keys", soci::into(foreign_keys);
EXPECT_EQ(foreign_keys, 1); //fails, 0 != 1
}
}
Your second test is exactly the same thing as I do above and I've tried adding =
to the connection string and it didn't change anything (which is arguably a bug, it should have resulted in an exception...), so I still can't reproduce it and have no idea what could be going on here.
oh, I missed the db= in the cnx string, my bad
@Spixmaster Do you have a SSCCE?
I've written and run the following:
#include <soci/soci.h> #include <iostream> int main() { try { soci::session s; s.set_log_stream(&std::cout); s.open("sqlite3://db=:memory: foreign_keys=true"); std::string fk; s << "pragma foreign_keys", soci::into(fk); std::cout << "FK = \"" << fk << "\"\n"; return 0; } catch ( std::exception& e ) { std::cerr << "Exception: " << e.what() << "\n"; } catch ( ... ) { std::cerr << "Unknown exception.\n"; } return 127; }and it outputs
pragma foreign_keys FK = "1"
as expected here.
For me, the output is:
pragma foreign_keys
FK = "0"
So it is probably an issue with the package that I use.
Here is the output of the installation.
~
❯ paru -S --rebuild soci
:: Resolving dependencies...
:: Calculating conflicts...
:: Calculating inner conflicts...
Aur (1) soci-4.0.3-1
:: Proceed to review? [Y/n]: Y
:: Downloading PKGBUILDs...
PKGBUILDs up to date
nothing new to review
fetching devel info...
==> Making package: soci 4.0.3-1 (Tue Oct 17 15:33:38 2023)
==> Retrieving sources...
-> Found soci-4.0.3.zip
==> Validating source files with sha1sums...
soci-4.0.3.zip ... Passed
==> Making package: soci 4.0.3-1 (Tue Oct 17 15:33:38 2023)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found soci-4.0.3.zip
==> Validating source files with sha1sums...
soci-4.0.3.zip ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
-> Extracting soci-4.0.3.zip with bsdtar
==> Sources are ready.
soci-4.0.3-1: parsing pkg list...
==> Making package: soci 4.0.3-1 (Tue Oct 17 15:33:40 2023)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting build()...
CMake Deprecation Warning at CMakeLists.txt:13 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test SOCI_HAVE_VISIBILITY_SUPPORT
-- Performing Test SOCI_HAVE_VISIBILITY_SUPPORT - Success
-- gcc / clang visibility enabled
-- Looking for __i386__
-- Looking for __i386__ - not found
-- Looking for __x86_64__
-- Looking for __x86_64__ - found
-- Looking for __arm__
-- Looking for __arm__ - not found
-- Configuring SOCI:
-- SOCI_VERSION = 4.0.3
-- SOCI_ABI_VERSION = 4.0
-- SOCI_SHARED = ON
-- SOCI_STATIC = ON
-- SOCI_TESTS = OFF
-- SOCI_ASAN = OFF
-- SOCI_CXX11 = ON
-- LIB_SUFFIX = 64
-- Looking for SOCI dependencies:
-- Threads:
-- CMAKE_THREAD_LIBS_INIT =
-- Boost:
-- BOOST_RELEASE_VERSION =
-- BOOST_INCLUDE_DIR =
-- BOOST_LIBRARIES =
-- MySQL:
-- Performing Test HAVE_MYSQL_OPT_EMBEDDED_CONNECTION
-- Performing Test HAVE_MYSQL_OPT_EMBEDDED_CONNECTION - Success
-- Found MySQL: /usr/include/mysql, /usr/lib/libmysqlclient.so
-- Found MySQL Embedded: /usr/include/mysql, /usr/lib/libmysqld.so
-- MYSQL_INCLUDE_DIR = /usr/include/mysql
-- MYSQL_LIBRARIES = /usr/lib/libmysqlclient.so
-- ODBC:
-- ODBC_INCLUDE_DIR = /usr/include
-- ODBC_LIBRARIES = /usr/lib/libodbc.so
-- Oracle:
-- ORACLE_HOME=
CMake Warning (dev) at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to `find_package_handle_standard_args` (ORACLE)
does not match the name of the calling package (Oracle). This can lead to
problems in calling code that expects `find_package` result variables
(e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
cmake/modules/FindOracle.cmake:84 (find_package_handle_standard_args)
cmake/dependencies/Oracle.cmake:3 (find_package)
cmake/SociDependencies.cmake:79 (include)
CMakeLists.txt:129 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
-- None of the supported Oracle versions (21;20;19;18;12;11;10) could be found, consider updating ORACLE_VERSIONS if the version you use is not among them.
-- WARNING: Oracle libraries not found, some features will be disabled.
-- PostgreSQL:
-- POSTGRESQL_INCLUDE_DIRS = /usr/include
-- POSTGRESQL_LIBRARIES = /usr/lib/libpq.so
-- POSTGRESQL_VERSION = 15.4
-- SQLite3:
CMake Warning (dev) at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to `find_package_handle_standard_args` (SQLITE3)
does not match the name of the calling package (SQLite3). This can lead to
problems in calling code that expects `find_package` result variables
(e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
cmake/modules/FindSQLite3.cmake:57 (find_package_handle_standard_args)
cmake/dependencies/SQLite3.cmake:3 (find_package)
cmake/SociDependencies.cmake:79 (include)
CMakeLists.txt:129 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
-- SQLITE3_INCLUDE_DIR = /usr/include
-- SQLITE3_LIBRARIES = /usr/lib/libsqlite3.so
-- Firebird:
-- SOCI_FIREBIRD_EMBEDDED = OFF
-- WARNING: Firebird libraries not found, some features will be disabled.
-- DB2:
-- WARNING: DB2 libraries not found, some features will be disabled.
-- Configuring SOCI core library:
-- SOCI_CORE_TARGET = soci_core
-- SOCI_CORE_TARGET_OUTPUT_NAME = soci_core
-- SOCI_CORE_DEPS_LIBS = /usr/lib/libdl.a Boost::date_time
-- SOCI_CORE_INCLUDE_DIRS = /usr/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build/src/core
-- WITH_BOOST = ON
-- COMPILE_DEFINITIONS = SOCI_ABI_VERSION="4.0" HAVE_DL=1 BOOST_ALL_NO_LIB SOCI_LIB_PREFIX="libsoci_" SOCI_LIB_SUFFIX=".so" SOCI_DEBUG_POSTFIX=""
--
-- Configuring SOCI backend libraries:
-- Found MySQL: /usr/include/mysql, /usr/lib/libmysqlclient.so
-- Found MySQL Embedded: /usr/include/mysql, /usr/lib/libmysqld.so
-- ORACLE_HOME=
CMake Warning (dev) at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to `find_package_handle_standard_args` (ORACLE)
does not match the name of the calling package (Oracle). This can lead to
problems in calling code that expects `find_package` result variables
(e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
cmake/modules/FindOracle.cmake:84 (find_package_handle_standard_args)
src/backends/CMakeLists.txt:17 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
-- None of the supported Oracle versions (21;20;19;18;12;11;10) could be found, consider updating ORACLE_VERSIONS if the version you use is not among them.
CMake Warning (dev) at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to `find_package_handle_standard_args` (SQLITE3)
does not match the name of the calling package (SQLite3). This can lead to
problems in calling code that expects `find_package` result variables
(e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
cmake/modules/FindSQLite3.cmake:57 (find_package_handle_standard_args)
src/backends/CMakeLists.txt:17 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Empty - SOCI backend skeleton for new backends development
-- SOCI_EMPTY = ON
-- SOCI_EMPTY_TARGET = soci_empty
-- SOCI_EMPTY_OUTPUT_NAME = soci_empty
-- SOCI_EMPTY_COMPILE_DEFINITIONS = SOCI_ABI_VERSION="4.0" HAVE_DL=1 BOOST_ALL_NO_LIB
-- SOCI_EMPTY_INCLUDE_DIRECTORIES = /usr/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private
-- MySQL - SOCI backend for MySQL
-- SOCI_MYSQL = ON
-- SOCI_MYSQL_TARGET = soci_mysql
-- SOCI_MYSQL_OUTPUT_NAME = soci_mysql
-- SOCI_MYSQL_COMPILE_DEFINITIONS = SOCI_ABI_VERSION="4.0" HAVE_DL=1 BOOST_ALL_NO_LIB
-- SOCI_MYSQL_INCLUDE_DIRECTORIES = /usr/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private /usr/include/mysql
-- ODBC - SOCI backend for ODBC
-- SOCI_ODBC = ON
-- SOCI_ODBC_TARGET = soci_odbc
-- SOCI_ODBC_OUTPUT_NAME = soci_odbc
-- SOCI_ODBC_COMPILE_DEFINITIONS = SOCI_ABI_VERSION="4.0" HAVE_DL=1 BOOST_ALL_NO_LIB
-- SOCI_ODBC_INCLUDE_DIRECTORIES = /usr/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private /usr/include /usr/include
-- PostgreSQL - SOCI backend for PostgreSQL
-- SOCI_POSTGRESQL = ON
-- SOCI_POSTGRESQL_TARGET = soci_postgresql
-- SOCI_POSTGRESQL_OUTPUT_NAME = soci_postgresql
-- SOCI_POSTGRESQL_COMPILE_DEFINITIONS = SOCI_ABI_VERSION="4.0" HAVE_DL=1 BOOST_ALL_NO_LIB
-- SOCI_POSTGRESQL_INCLUDE_DIRECTORIES = /usr/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private /usr/include /usr/include
-- SOCI_POSTGRESQL_NOSINLGEROWMODE =
-- SQLite3 - SOCI backend for SQLite 3
-- SOCI_SQLITE3 = ON
-- SOCI_SQLITE3_TARGET = soci_sqlite3
-- SOCI_SQLITE3_OUTPUT_NAME = soci_sqlite3
-- SOCI_SQLITE3_COMPILE_DEFINITIONS = SOCI_ABI_VERSION="4.0" HAVE_DL=1 BOOST_ALL_NO_LIB
-- SOCI_SQLITE3_INCLUDE_DIRECTORIES = /usr/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build/include /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3/include/private /usr/include
--
--
-- Configuring done (1.4s)
-- Generating done (0.0s)
-- Build files have been written to: /home/matheus/.cache/paru/clone/soci/src/soci-4.0.3-build
[ 0%] Building CXX object src/core/CMakeFiles/soci_core.dir/backend-loader.cpp.o
[ 1%] Building CXX object src/core/CMakeFiles/soci_core.dir/blob.cpp.o
[ 2%] Building CXX object src/core/CMakeFiles/soci_core.dir/common.cpp.o
[ 2%] Building CXX object src/core/CMakeFiles/soci_core.dir/connection-parameters.cpp.o
[ 3%] Building CXX object src/core/CMakeFiles/soci_core.dir/connection-pool.cpp.o
[ 4%] Building CXX object src/core/CMakeFiles/soci_core.dir/error.cpp.o
[ 4%] Building CXX object src/core/CMakeFiles/soci_core.dir/into-type.cpp.o
[ 5%] Building CXX object src/core/CMakeFiles/soci_core.dir/logger.cpp.o
[ 6%] Building CXX object src/core/CMakeFiles/soci_core.dir/once-temp-type.cpp.o
[ 6%] Building CXX object src/core/CMakeFiles/soci_core.dir/prepare-temp-type.cpp.o
[ 7%] Building CXX object src/core/CMakeFiles/soci_core.dir/procedure.cpp.o
[ 8%] Building CXX object src/core/CMakeFiles/soci_core.dir/ref-counted-prepare-info.cpp.o
[ 8%] Building CXX object src/core/CMakeFiles/soci_core.dir/ref-counted-statement.cpp.o
[ 9%] Building CXX object src/core/CMakeFiles/soci_core.dir/row.cpp.o
[ 10%] Building CXX object src/core/CMakeFiles/soci_core.dir/rowid.cpp.o
[ 10%] Building CXX object src/core/CMakeFiles/soci_core.dir/session.cpp.o
[ 11%] Building CXX object src/core/CMakeFiles/soci_core.dir/soci-simple.cpp.o
[ 12%] Building CXX object src/core/CMakeFiles/soci_core.dir/statement.cpp.o
[ 12%] Building CXX object src/core/CMakeFiles/soci_core.dir/transaction.cpp.o
[ 13%] Building CXX object src/core/CMakeFiles/soci_core.dir/use-type.cpp.o
[ 14%] Building CXX object src/core/CMakeFiles/soci_core.dir/values.cpp.o
[ 14%] Linking CXX shared library ../../lib/libsoci_core.so
[ 14%] Built target soci_core
[ 15%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/backend-loader.cpp.o
[ 16%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/blob.cpp.o
[ 16%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/common.cpp.o
[ 17%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/connection-parameters.cpp.o
[ 18%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/connection-pool.cpp.o
[ 18%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/error.cpp.o
[ 19%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/into-type.cpp.o
[ 20%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/logger.cpp.o
[ 20%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/once-temp-type.cpp.o
[ 21%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/prepare-temp-type.cpp.o
[ 22%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/procedure.cpp.o
[ 22%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/ref-counted-prepare-info.cpp.o
[ 23%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/ref-counted-statement.cpp.o
[ 24%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/row.cpp.o
[ 24%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/rowid.cpp.o
[ 25%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/session.cpp.o
[ 26%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/soci-simple.cpp.o
[ 26%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/statement.cpp.o
[ 27%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/transaction.cpp.o
[ 28%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/use-type.cpp.o
[ 28%] Building CXX object src/core/CMakeFiles/soci_core_static.dir/values.cpp.o
[ 29%] Linking CXX static library ../../lib/libsoci_core.a
[ 29%] Built target soci_core_static
[ 30%] Building CXX object src/backends/empty/CMakeFiles/soci_empty.dir/blob.cpp.o
[ 30%] Building CXX object src/backends/empty/CMakeFiles/soci_empty.dir/factory.cpp.o
[ 31%] Building CXX object src/backends/empty/CMakeFiles/soci_empty.dir/row-id.cpp.o
[ 32%] Building CXX object src/backends/empty/CMakeFiles/soci_empty.dir/session.cpp.o
[ 32%] Building CXX object src/backends/empty/CMakeFiles/soci_empty.dir/standard-into-type.cpp.o
[ 33%] Building CXX object src/backends/empty/CMakeFiles/soci_empty.dir/standard-use-type.cpp.o
[ 34%] Building CXX object src/backends/empty/CMakeFiles/soci_empty.dir/statement.cpp.o
[ 34%] Building CXX object src/backends/empty/CMakeFiles/soci_empty.dir/vector-into-type.cpp.o
[ 35%] Building CXX object src/backends/empty/CMakeFiles/soci_empty.dir/vector-use-type.cpp.o
[ 36%] Linking CXX shared library ../../../lib/libsoci_empty.so
[ 36%] Built target soci_empty
[ 36%] Building CXX object src/backends/empty/CMakeFiles/soci_empty_static.dir/blob.cpp.o
[ 37%] Building CXX object src/backends/empty/CMakeFiles/soci_empty_static.dir/factory.cpp.o
[ 38%] Building CXX object src/backends/empty/CMakeFiles/soci_empty_static.dir/row-id.cpp.o
[ 38%] Building CXX object src/backends/empty/CMakeFiles/soci_empty_static.dir/session.cpp.o
[ 39%] Building CXX object src/backends/empty/CMakeFiles/soci_empty_static.dir/standard-into-type.cpp.o
[ 40%] Building CXX object src/backends/empty/CMakeFiles/soci_empty_static.dir/standard-use-type.cpp.o
[ 40%] Building CXX object src/backends/empty/CMakeFiles/soci_empty_static.dir/statement.cpp.o
[ 41%] Building CXX object src/backends/empty/CMakeFiles/soci_empty_static.dir/vector-into-type.cpp.o
[ 42%] Building CXX object src/backends/empty/CMakeFiles/soci_empty_static.dir/vector-use-type.cpp.o
[ 42%] Linking CXX static library ../../../lib/libsoci_empty.a
[ 42%] Built target soci_empty_static
[ 43%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql.dir/blob.cpp.o
[ 44%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql.dir/common.cpp.o
[ 44%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql.dir/factory.cpp.o
[ 45%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql.dir/row-id.cpp.o
[ 46%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql.dir/session.cpp.o
[ 46%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql.dir/standard-into-type.cpp.o
[ 47%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql.dir/standard-use-type.cpp.o
[ 48%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql.dir/statement.cpp.o
[ 48%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql.dir/vector-into-type.cpp.o
[ 49%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql.dir/vector-use-type.cpp.o
[ 50%] Linking CXX shared library ../../../lib/libsoci_mysql.so
[ 50%] Built target soci_mysql
[ 50%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql_static.dir/blob.cpp.o
[ 51%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql_static.dir/common.cpp.o
[ 52%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql_static.dir/factory.cpp.o
[ 52%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql_static.dir/row-id.cpp.o
[ 53%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql_static.dir/session.cpp.o
[ 54%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql_static.dir/standard-into-type.cpp.o
[ 54%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql_static.dir/standard-use-type.cpp.o
[ 55%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql_static.dir/statement.cpp.o
[ 56%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql_static.dir/vector-into-type.cpp.o
[ 56%] Building CXX object src/backends/mysql/CMakeFiles/soci_mysql_static.dir/vector-use-type.cpp.o
[ 57%] Linking CXX static library ../../../lib/libsoci_mysql.a
[ 57%] Built target soci_mysql_static
[ 58%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc.dir/blob.cpp.o
[ 58%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc.dir/factory.cpp.o
[ 59%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc.dir/row-id.cpp.o
[ 60%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc.dir/session.cpp.o
[ 60%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc.dir/standard-into-type.cpp.o
[ 61%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc.dir/standard-use-type.cpp.o
[ 62%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc.dir/statement.cpp.o
[ 62%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc.dir/vector-into-type.cpp.o
[ 63%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc.dir/vector-use-type.cpp.o
[ 64%] Linking CXX shared library ../../../lib/libsoci_odbc.so
[ 64%] Built target soci_odbc
[ 64%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc_static.dir/blob.cpp.o
[ 65%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc_static.dir/factory.cpp.o
[ 66%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc_static.dir/row-id.cpp.o
[ 66%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc_static.dir/session.cpp.o
[ 67%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc_static.dir/standard-into-type.cpp.o
[ 68%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc_static.dir/standard-use-type.cpp.o
[ 68%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc_static.dir/statement.cpp.o
[ 69%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc_static.dir/vector-into-type.cpp.o
[ 70%] Building CXX object src/backends/odbc/CMakeFiles/soci_odbc_static.dir/vector-use-type.cpp.o
[ 70%] Linking CXX static library ../../../lib/libsoci_odbc.a
[ 70%] Built target soci_odbc_static
[ 71%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql.dir/blob.cpp.o
[ 72%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql.dir/error.cpp.o
[ 72%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql.dir/factory.cpp.o
[ 73%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql.dir/row-id.cpp.o
[ 74%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql.dir/session.cpp.o
[ 74%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql.dir/standard-into-type.cpp.o
[ 75%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql.dir/standard-use-type.cpp.o
[ 76%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql.dir/statement.cpp.o
[ 76%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql.dir/vector-into-type.cpp.o
[ 77%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql.dir/vector-use-type.cpp.o
[ 78%] Linking CXX shared library ../../../lib/libsoci_postgresql.so
[ 78%] Built target soci_postgresql
[ 78%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql_static.dir/blob.cpp.o
[ 79%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql_static.dir/error.cpp.o
[ 80%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql_static.dir/factory.cpp.o
[ 80%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql_static.dir/row-id.cpp.o
[ 81%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql_static.dir/session.cpp.o
[ 82%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql_static.dir/standard-into-type.cpp.o
[ 82%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql_static.dir/standard-use-type.cpp.o
[ 83%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql_static.dir/statement.cpp.o
[ 84%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql_static.dir/vector-into-type.cpp.o
[ 84%] Building CXX object src/backends/postgresql/CMakeFiles/soci_postgresql_static.dir/vector-use-type.cpp.o
[ 85%] Linking CXX static library ../../../lib/libsoci_postgresql.a
[ 85%] Built target soci_postgresql_static
[ 86%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3.dir/blob.cpp.o
[ 86%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3.dir/error.cpp.o
[ 87%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3.dir/factory.cpp.o
[ 88%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3.dir/row-id.cpp.o
[ 88%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3.dir/session.cpp.o
[ 89%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3.dir/standard-into-type.cpp.o
[ 90%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3.dir/standard-use-type.cpp.o
[ 90%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3.dir/statement.cpp.o
[ 91%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3.dir/vector-into-type.cpp.o
[ 92%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3.dir/vector-use-type.cpp.o
[ 92%] Linking CXX shared library ../../../lib/libsoci_sqlite3.so
[ 92%] Built target soci_sqlite3
[ 93%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3_static.dir/blob.cpp.o
[ 94%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3_static.dir/error.cpp.o
[ 94%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3_static.dir/factory.cpp.o
[ 95%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3_static.dir/row-id.cpp.o
[ 96%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3_static.dir/session.cpp.o
[ 96%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3_static.dir/standard-into-type.cpp.o
[ 97%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3_static.dir/standard-use-type.cpp.o
[ 98%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3_static.dir/statement.cpp.o
[ 98%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3_static.dir/vector-into-type.cpp.o
[ 99%] Building CXX object src/backends/sqlite3/CMakeFiles/soci_sqlite3_static.dir/vector-use-type.cpp.o
[100%] Linking CXX static library ../../../lib/libsoci_sqlite3.a
[100%] Built target soci_sqlite3_static
==> Entering fakeroot environment...
==> Starting package()...
[ 14%] Built target soci_core
[ 29%] Built target soci_core_static
[ 36%] Built target soci_empty
[ 42%] Built target soci_empty_static
[ 50%] Built target soci_mysql
[ 57%] Built target soci_mysql_static
[ 64%] Built target soci_odbc
[ 70%] Built target soci_odbc_static
[ 78%] Built target soci_postgresql
[ 85%] Built target soci_postgresql_static
[ 92%] Built target soci_sqlite3
[100%] Built target soci_sqlite3_static
Install the project...
-- Install configuration: ""
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/soci-config.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/backend-loader.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/bind-values.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/blob-exchange.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/blob.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/boost-fusion.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/boost-gregorian-date.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/boost-optional.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/boost-tuple.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/callbacks.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/column-info.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/connection-parameters.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/connection-pool.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/error.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/exchange-traits.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/into-type.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/into.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/logger.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/noreturn.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/once-temp-type.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/prepare-temp-type.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/procedure.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/query_transformation.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/ref-counted-prepare-info.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/ref-counted-statement.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/row-exchange.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/row.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/rowid-exchange.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/rowid.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/rowset.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/session.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/soci-backend.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/soci-platform.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/soci-simple.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/soci.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/statement.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/transaction.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/type-conversion-traits.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/type-conversion.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/type-holder.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/type-ptr.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/type-wrappers.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/unsigned-types.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/use-type.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/use.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/values-exchange.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/values.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/version.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_core.so.4.0.3
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_core.so.4.0
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_core.so
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_core.a
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/cmake/SOCI/SOCITargets.cmake
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/cmake/SOCI/SOCITargets-noconfig.cmake
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/cmake/SOCI/SOCIConfig.cmake
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/cmake/SOCI/SOCIConfigVersion.cmake
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/empty/soci-empty.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_empty.so.4.0.3
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_empty.so.4.0
-- Set runtime path of "/home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_empty.so.4.0.3" to ""
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_empty.so
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_empty.a
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/mysql/soci-mysql.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_mysql.so.4.0.3
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_mysql.so.4.0
-- Set runtime path of "/home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_mysql.so.4.0.3" to ""
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_mysql.so
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_mysql.a
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/odbc/soci-odbc.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_odbc.so.4.0.3
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_odbc.so.4.0
-- Set runtime path of "/home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_odbc.so.4.0.3" to ""
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_odbc.so
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_odbc.a
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/postgresql/soci-postgresql.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_postgresql.so.4.0.3
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_postgresql.so.4.0
-- Set runtime path of "/home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_postgresql.so.4.0.3" to ""
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_postgresql.so
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_postgresql.a
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/include/soci/sqlite3/soci-sqlite3.h
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_sqlite3.so.4.0.3
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_sqlite3.so.4.0
-- Set runtime path of "/home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_sqlite3.so.4.0.3" to ""
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_sqlite3.so
-- Installing: /home/matheus/.cache/paru/clone/soci/pkg/soci/usr/lib/libsoci_sqlite3.a
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "soci"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: soci 4.0.3-1 (Tue Oct 17 15:35:24 2023)
==> Cleaning up...
[sudo] password for matheus:
loading packages...
warning: soci-4.0.3-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...
Packages (1) soci-4.0.3-1
Total Installed Size: 3.19 MiB
Net Upgrade Size: 0.00 MiB
:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [########################################################################################] 100%
(1/1) checking package integrity [########################################################################################] 100%
(1/1) loading package files [########################################################################################] 100%
(1/1) checking for file conflicts [########################################################################################] 100%
(1/1) checking available disk space [########################################################################################] 100%
:: Processing package changes...
(1/1) reinstalling soci [########################################################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
4.0.3 doesn't have foreign_keys, it is only on master