From 05c0c0393d70afe06725510d722ebf09388ca11e Mon Sep 17 00:00:00 2001 From: Sascha Kuehl Date: Fri, 29 Mar 2024 11:40:02 +0100 Subject: [PATCH] added type check methods to column_definition --- include/matador/sql/column_definition.hpp | 9 +++++ src/sql/column_definition.cpp | 40 +++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/include/matador/sql/column_definition.hpp b/include/matador/sql/column_definition.hpp index af72bc8..d489f58 100644 --- a/include/matador/sql/column_definition.hpp +++ b/include/matador/sql/column_definition.hpp @@ -53,6 +53,15 @@ public: [[nodiscard]] const std::string& ref_table() const; [[nodiscard]] const std::string& ref_column() const; + [[nodiscard]] bool is_integer() const; + [[nodiscard]] bool is_floating_point() const; + [[nodiscard]] bool is_bool() const; + [[nodiscard]] bool is_string() const; + [[nodiscard]] bool is_varchar() const; + [[nodiscard]] bool is_blob() const; + [[nodiscard]] bool is_null() const; + [[nodiscard]] bool is_unknown() const; + void type(data_type_t type); template< typename Type > diff --git a/src/sql/column_definition.cpp b/src/sql/column_definition.cpp index 5e83272..4291d8f 100644 --- a/src/sql/column_definition.cpp +++ b/src/sql/column_definition.cpp @@ -63,6 +63,46 @@ const std::string &column_definition::ref_column() const return ref_column_; } +bool column_definition::is_integer() const +{ + return type_ >= data_type_t::type_char && type_ <= data_type_t::type_unsigned_long_long; +} + +bool column_definition::is_floating_point() const +{ + return type_ == data_type_t::type_float || type_ == data_type_t::type_double; +} + +bool column_definition::is_bool() const +{ + return type_ == data_type_t::type_bool; +} + +bool column_definition::is_string() const +{ + return type_ == data_type_t::type_text; +} + +bool column_definition::is_varchar() const +{ + return type_ == data_type_t::type_varchar; +} + +bool column_definition::is_blob() const +{ + return type_ == data_type_t::type_blob; +} + +bool column_definition::is_null() const +{ + return type_ == data_type_t::type_null; +} + +bool column_definition::is_unknown() const +{ + return type_ == data_type_t::type_unknown; +} + void column_definition::type(data_type_t type) { type_ = type;