From 6d5c0c3ffde5ef9da97856474884eddc3a1d908c Mon Sep 17 00:00:00 2001 From: Steven Murray <Steven.Murray@cern.ch> Date: Fri, 17 Feb 2017 16:41:48 +0100 Subject: [PATCH] Made rdbms::Stmt::m_paramNameToIdx private --- rdbms/OcciStmt.cpp | 4 ++-- rdbms/SqliteStmt.cpp | 4 ++-- rdbms/Stmt.cpp | 11 +++++++++-- rdbms/Stmt.hpp | 20 +++++++++++++++----- 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/rdbms/OcciStmt.cpp b/rdbms/OcciStmt.cpp index 602b0fc7fc..1306ceab62 100644 --- a/rdbms/OcciStmt.cpp +++ b/rdbms/OcciStmt.cpp @@ -113,7 +113,7 @@ void OcciStmt::bindUint64(const std::string ¶mName, const uint64_t paramValu //------------------------------------------------------------------------------ void OcciStmt::bindOptionalUint64(const std::string ¶mName, const optional<uint64_t> ¶mValue) { try { - const unsigned paramIdx = m_paramNameToIdx.getIdx(paramName); + const unsigned paramIdx = getParamIdx(paramName); if(paramValue) { // Bind integer as a string in order to support 64-bit integers m_stmt->setString(paramIdx, std::to_string(paramValue.value())); @@ -150,7 +150,7 @@ void OcciStmt::bindOptionalString(const std::string ¶mName, const optional<s " An optional string parameter should either have a non-empty string value or no value at all."); } - const unsigned paramIdx = m_paramNameToIdx.getIdx(paramName); + const unsigned paramIdx = getParamIdx(paramName); if(paramValue) { m_stmt->setString(paramIdx, paramValue.value()); } else { diff --git a/rdbms/SqliteStmt.cpp b/rdbms/SqliteStmt.cpp index 99f257d462..d270afe0d8 100644 --- a/rdbms/SqliteStmt.cpp +++ b/rdbms/SqliteStmt.cpp @@ -152,7 +152,7 @@ void SqliteStmt::bindUint64(const std::string ¶mName, const uint64_t paramVa //------------------------------------------------------------------------------ void SqliteStmt::bindOptionalUint64(const std::string ¶mName, const optional<uint64_t> ¶mValue) { try { - const unsigned int paramIdx = m_paramNameToIdx.getIdx(paramName); + const unsigned int paramIdx = getParamIdx(paramName); int bindRc = 0; if(paramValue) { bindRc = sqlite3_bind_int64(m_stmt, paramIdx, (sqlite3_int64) paramValue.value()); @@ -188,7 +188,7 @@ void SqliteStmt::bindOptionalString(const std::string ¶mName, const optional throw exception::Exception(std::string("Optional string parameter ") + paramName + " is an empty string. " " An optional string parameter should either have a non-empty string value or no value at all."); } - const unsigned int paramIdx = m_paramNameToIdx.getIdx(paramName); + const unsigned int paramIdx = getParamIdx(paramName); int bindRc = 0; if(paramValue) { bindRc = sqlite3_bind_text(m_stmt, paramIdx, paramValue.value().c_str(), -1, SQLITE_TRANSIENT); diff --git a/rdbms/Stmt.cpp b/rdbms/Stmt.cpp index 83ed0aeb7f..00a4e4f17b 100644 --- a/rdbms/Stmt.cpp +++ b/rdbms/Stmt.cpp @@ -26,8 +26,8 @@ namespace rdbms { //------------------------------------------------------------------------------ Stmt::Stmt(const std::string &sql, const AutocommitMode autocommitMode): m_sql(sql), - m_paramNameToIdx(sql), - m_autoCommitMode(autocommitMode) { + m_autoCommitMode(autocommitMode), + m_paramNameToIdx(sql) { } //------------------------------------------------------------------------------ @@ -43,6 +43,13 @@ const std::string &Stmt::getSql() const { return m_sql; } +//------------------------------------------------------------------------------ +// getParamIdx +//------------------------------------------------------------------------------ +uint32_t Stmt::getParamIdx(const std::string ¶mName) const { + return m_paramNameToIdx.getIdx(paramName); +} + //------------------------------------------------------------------------------ // getSqlForException //------------------------------------------------------------------------------ diff --git a/rdbms/Stmt.hpp b/rdbms/Stmt.hpp index 3bbb90256b..fb65179c92 100644 --- a/rdbms/Stmt.hpp +++ b/rdbms/Stmt.hpp @@ -95,6 +95,14 @@ public: */ const std::string &getSql() const; + /** + * Returns the index of the specified SQL parameter. + * + * @param paramName The name of the SQL parameter. + * @return The index of the SQL parameter. + */ + uint32_t getParamIdx(const std::string ¶mName) const; + /** * Binds an SQL parameter. * @@ -179,11 +187,6 @@ protected: */ std::string m_sql; - /** - * Map from SQL parameter name to parameter index. - */ - ParamNameToIdx m_paramNameToIdx; - /** * The autocommit mode of the statement. */ @@ -206,6 +209,13 @@ protected: */ std::string getSqlForException() const; +private: + + /** + * Map from SQL parameter name to parameter index. + */ + ParamNameToIdx m_paramNameToIdx; + }; // class Stmt } // namespace rdbms -- GitLab