From 6e726340e23a97480b17065a633c36a9ba53cf14 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Thu, 3 Jun 2021 00:17:28 +0100 Subject: Determine parameter mode at point of call by DB type property It's still constexpr, so that's all good. --- test/test-mysql.cpp | 7 ++++--- test/test-postgresql.cpp | 18 +++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) (limited to 'test') diff --git a/test/test-mysql.cpp b/test/test-mysql.cpp index f5281a9..493ec02 100644 --- a/test/test-mysql.cpp +++ b/test/test-mysql.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -42,13 +43,13 @@ BOOST_AUTO_TEST_CASE(simple) using SomeSelect = MyGrate::DbStmt<"SELECT * FROM foo">; using SomeShow = MyGrate::DbStmt<"SHOW MASTER STATUS">; -using SomeUpdate = MyGrate::DbStmt<"UPDATE foo SET blah = ? WHERE bar = ?", MyGrate::ParamMode::QMark>; +using SomeUpdate = MyGrate::DbStmt<"UPDATE foo SET blah = ? WHERE bar = ?">; static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); -static_assert(SomeShow::paramCount == 0); -static_assert(SomeUpdate::paramCount == 2); +static_assert(SomeShow::paramCount(MyGrate::ParamMode::QMark) == 0); +static_assert(SomeUpdate::paramCount(MyGrate::ParamMode::QMark) == 2); BOOST_AUTO_TEST_CASE(stmt) { diff --git a/test/test-postgresql.cpp b/test/test-postgresql.cpp index a24acb8..3a12f43 100644 --- a/test/test-postgresql.cpp +++ b/test/test-postgresql.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -38,18 +39,17 @@ BOOST_AUTO_TEST_CASE(simple) c.query("DROP TABLE test"); } -using SomeUpdate = MyGrate::DbStmt<"UPDATE foo SET blah = $2 WHERE bar = $1", MyGrate::ParamMode::DollarNum>; -using SomeUpdateRtn - = MyGrate::DbStmt<"UPDATE foo SET blah = $2 WHERE bar = $1 RETURNING x", MyGrate::ParamMode::DollarNum>; -using SomeShow = MyGrate::DbStmt<"SHOW all", MyGrate::ParamMode::DollarNum>; -using SomeIns = MyGrate::DbStmt<"INSERT INTO foo VALUES(..., $87)", MyGrate::ParamMode::DollarNum>; +using SomeUpdate = MyGrate::DbStmt<"UPDATE foo SET blah = $2 WHERE bar = $1">; +using SomeUpdateRtn = MyGrate::DbStmt<"UPDATE foo SET blah = $2 WHERE bar = $1 RETURNING x">; +using SomeShow = MyGrate::DbStmt<"SHOW all">; +using SomeIns = MyGrate::DbStmt<"INSERT INTO foo VALUES(..., $87)">; -static_assert(SomeUpdate::paramCount == 2); +static_assert(SomeUpdate::paramCount(MyGrate::ParamMode::DollarNum) == 2); static_assert(std::is_same_v); -static_assert(SomeUpdateRtn::paramCount == 2); +static_assert(SomeUpdateRtn::paramCount(MyGrate::ParamMode::DollarNum) == 2); static_assert(std::is_same_v); -static_assert(SomeShow::paramCount == 0); -static_assert(SomeIns::paramCount == 87); +static_assert(SomeShow::paramCount(MyGrate::ParamMode::DollarNum) == 0); +static_assert(SomeIns::paramCount(MyGrate::ParamMode::DollarNum) == 87); static_assert(std::is_same_v); BOOST_AUTO_TEST_CASE(stmt) -- cgit v1.2.3