Revert "Sqlite: Flatten calls inside functions"

This reverts commit 2a301d41c4.

Reason for revert: msvc uses a different syntax

Change-Id: Iec4ae2a65e6957c6e1368cc481a63fab0e55ce9e
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Tim Jenssen
2023-08-29 14:46:02 +00:00
parent 84e537f313
commit e2a8f1dc51
3 changed files with 24 additions and 28 deletions

View File

@@ -27,12 +27,6 @@
using std::int64_t; using std::int64_t;
#ifdef Q_CC_MSVC
#define FLATTEN [[msvc::flatten]]
#else
#define FLATTEN [[gnu::flatten]]
#endif
namespace Sqlite { namespace Sqlite {
class Database; class Database;
@@ -156,7 +150,7 @@ public:
using BaseStatement::BaseStatement; using BaseStatement::BaseStatement;
StatementImplementation(StatementImplementation &&) = default; StatementImplementation(StatementImplementation &&) = default;
FLATTEN void execute() void execute()
{ {
Resetter resetter{this}; Resetter resetter{this};
BaseStatement::next(); BaseStatement::next();
@@ -172,7 +166,7 @@ public:
} }
template<typename... ValueType> template<typename... ValueType>
FLATTEN void write(const ValueType &...values) void write(const ValueType&... values)
{ {
Resetter resetter{this}; Resetter resetter{this};
bindValues(values...); bindValues(values...);
@@ -196,7 +190,7 @@ public:
std::size_t capacity = 32, std::size_t capacity = 32,
typename = std::enable_if_t<is_container<Container>::value>, typename = std::enable_if_t<is_container<Container>::value>,
typename... QueryTypes> typename... QueryTypes>
FLATTEN auto values(const QueryTypes &...queryValues) auto values(const QueryTypes &...queryValues)
{ {
Resetter resetter{this}; Resetter resetter{this};
Container resultValues; Container resultValues;
@@ -217,7 +211,7 @@ public:
template<typename...> typename Container = std::vector, template<typename...> typename Container = std::vector,
typename = std::enable_if_t<!is_container<ResultType>::value>, typename = std::enable_if_t<!is_container<ResultType>::value>,
typename... QueryTypes> typename... QueryTypes>
FLATTEN auto values(const QueryTypes &...queryValues) auto values(const QueryTypes &...queryValues)
{ {
return values<Container<ResultType>, capacity>(queryValues...); return values<Container<ResultType>, capacity>(queryValues...);
} }
@@ -237,7 +231,7 @@ public:
} }
template<typename ResultType, typename... QueryTypes> template<typename ResultType, typename... QueryTypes>
FLATTEN auto optionalValue(const QueryTypes &...queryValues) auto optionalValue(const QueryTypes &...queryValues)
{ {
Resetter resetter{this}; Resetter resetter{this};
std::optional<ResultType> resultValue; std::optional<ResultType> resultValue;
@@ -251,7 +245,7 @@ public:
} }
template<typename Type> template<typename Type>
FLATTEN static auto toValue(Utils::SmallStringView sqlStatement, Database &database) static auto toValue(Utils::SmallStringView sqlStatement, Database &database)
{ {
StatementImplementation statement(sqlStatement, database); StatementImplementation statement(sqlStatement, database);
@@ -263,7 +257,7 @@ public:
} }
template<typename Callable, typename... QueryTypes> template<typename Callable, typename... QueryTypes>
FLATTEN void readCallback(Callable &&callable, const QueryTypes &...queryValues) void readCallback(Callable &&callable, const QueryTypes &...queryValues)
{ {
Resetter resetter{this}; Resetter resetter{this};
@@ -278,7 +272,7 @@ public:
} }
template<typename Container, typename... QueryTypes> template<typename Container, typename... QueryTypes>
FLATTEN void readTo(Container &container, const QueryTypes &...queryValues) void readTo(Container &container, const QueryTypes &...queryValues)
{ {
Resetter resetter{this}; Resetter resetter{this};
@@ -289,13 +283,13 @@ public:
} }
template<typename ResultType, typename... QueryTypes> template<typename ResultType, typename... QueryTypes>
FLATTEN auto range(const QueryTypes &...queryValues) auto range(const QueryTypes &...queryValues)
{ {
return SqliteResultRange<ResultType>{*this, queryValues...}; return SqliteResultRange<ResultType>{*this, queryValues...};
} }
template<typename ResultType, typename... QueryTypes> template<typename ResultType, typename... QueryTypes>
FLATTEN auto rangeWithTransaction(const QueryTypes &...queryValues) auto rangeWithTransaction(const QueryTypes &...queryValues)
{ {
return SqliteResultRangeWithTransaction<ResultType>{*this, queryValues...}; return SqliteResultRangeWithTransaction<ResultType>{*this, queryValues...};
} }

View File

@@ -32,7 +32,7 @@ public:
using Base::values; using Base::values;
template<typename ResultType, typename... QueryTypes> template<typename ResultType, typename... QueryTypes>
FLATTEN auto valueWithTransaction(const QueryTypes &...queryValues) auto valueWithTransaction(const QueryTypes &...queryValues)
{ {
return withDeferredTransaction(Base::database(), [&] { return withDeferredTransaction(Base::database(), [&] {
return Base::template value<ResultType>(queryValues...); return Base::template value<ResultType>(queryValues...);
@@ -40,7 +40,7 @@ public:
} }
template<typename ResultType, typename... QueryTypes> template<typename ResultType, typename... QueryTypes>
FLATTEN auto optionalValueWithTransaction(const QueryTypes &...queryValues) auto optionalValueWithTransaction(const QueryTypes &...queryValues)
{ {
return withDeferredTransaction(Base::database(), [&] { return withDeferredTransaction(Base::database(), [&] {
return Base::template optionalValue<ResultType>(queryValues...); return Base::template optionalValue<ResultType>(queryValues...);
@@ -48,7 +48,7 @@ public:
} }
template<typename ResultType, std::size_t capacity = 32, typename... QueryTypes> template<typename ResultType, std::size_t capacity = 32, typename... QueryTypes>
FLATTEN auto valuesWithTransaction(const QueryTypes &...queryValues) auto valuesWithTransaction(const QueryTypes &...queryValues)
{ {
return withDeferredTransaction(Base::database(), [&] { return withDeferredTransaction(Base::database(), [&] {
return Base::template values<ResultType, capacity>(queryValues...); return Base::template values<ResultType, capacity>(queryValues...);
@@ -56,7 +56,7 @@ public:
} }
template<typename Callable, typename... QueryTypes> template<typename Callable, typename... QueryTypes>
FLATTEN void readCallbackWithTransaction(Callable &&callable, const QueryTypes &...queryValues) void readCallbackWithTransaction(Callable &&callable, const QueryTypes &...queryValues)
{ {
withDeferredTransaction(Base::database(), [&] { withDeferredTransaction(Base::database(), [&] {
Base::readCallback(std::forward<Callable>(callable), queryValues...); Base::readCallback(std::forward<Callable>(callable), queryValues...);
@@ -64,7 +64,7 @@ public:
} }
template<typename Container, typename... QueryTypes> template<typename Container, typename... QueryTypes>
FLATTEN void readToWithTransaction(Container &container, const QueryTypes &...queryValues) void readToWithTransaction(Container &container, const QueryTypes &...queryValues)
{ {
withDeferredTransaction(Base::database(), [&] { Base::readTo(container, queryValues...); }); withDeferredTransaction(Base::database(), [&] { Base::readTo(container, queryValues...); });
} }

View File

@@ -32,7 +32,7 @@ public:
using Base::write; using Base::write;
template<typename ResultType, typename... QueryTypes> template<typename ResultType, typename... QueryTypes>
FLATTEN auto valueWithTransaction(const QueryTypes &...queryValues) auto valueWithTransaction(const QueryTypes &...queryValues)
{ {
return withImmediateTransaction(Base::database(), [&] { return withImmediateTransaction(Base::database(), [&] {
return Base::template value<ResultType>(queryValues...); return Base::template value<ResultType>(queryValues...);
@@ -40,15 +40,17 @@ public:
} }
template<typename ResultType, typename... QueryTypes> template<typename ResultType, typename... QueryTypes>
FLATTEN auto optionalValueWithTransaction(const QueryTypes &...queryValues) auto optionalValueWithTransaction(const QueryTypes &...queryValues)
{ {
return withImmediateTransaction(Base::database(), [&] { return withImmediateTransaction(Base::database(), [&] {
return Base::template optionalValue<ResultType>(queryValues...); return Base::template optionalValue<ResultType>(queryValues...);
}); });
} }
template<typename ResultType, std::size_t capacity = 32, typename... QueryTypes> template<typename ResultType,
FLATTEN auto valuesWithTransaction(const QueryTypes &...queryValues) std::size_t capacity = 32,
typename... QueryTypes>
auto valuesWithTransaction(const QueryTypes &...queryValues)
{ {
return withImmediateTransaction(Base::database(), [&] { return withImmediateTransaction(Base::database(), [&] {
return Base::template values<ResultType, capacity>(queryValues...); return Base::template values<ResultType, capacity>(queryValues...);
@@ -56,7 +58,7 @@ public:
} }
template<typename Callable, typename... QueryTypes> template<typename Callable, typename... QueryTypes>
FLATTEN void readCallbackWithTransaction(Callable &&callable, const QueryTypes &...queryValues) void readCallbackWithTransaction(Callable &&callable, const QueryTypes &...queryValues)
{ {
withImmediateTransaction(Base::database(), [&] { withImmediateTransaction(Base::database(), [&] {
Base::readCallback(std::forward<Callable>(callable), queryValues...); Base::readCallback(std::forward<Callable>(callable), queryValues...);
@@ -64,14 +66,14 @@ public:
} }
template<typename Container, typename... QueryTypes> template<typename Container, typename... QueryTypes>
FLATTEN void readToWithTransaction(Container &container, const QueryTypes &...queryValues) void readToWithTransaction(Container &container, const QueryTypes &...queryValues)
{ {
withImmediateTransaction(Base::database(), [&] { withImmediateTransaction(Base::database(), [&] {
Base::readTo(container, queryValues...); Base::readTo(container, queryValues...);
}); });
} }
FLATTEN void executeWithTransaction() void executeWithTransaction()
{ {
withImmediateTransaction(Base::database(), [&] { withImmediateTransaction(Base::database(), [&] {
Base::execute(); Base::execute();