better support for booleans

This commit is contained in:
2021-09-07 23:50:34 +02:00
parent 427a3a9f04
commit 0db976f471
8 changed files with 90 additions and 26 deletions

View File

@@ -141,7 +141,7 @@ namespace usql {
long getIntegerValue() override { return value; };
double getDoubleValue() override { return (double) value; };
std::string getStringValue() override { return std::to_string(value); }
std::string getStringValue() override { return Settings::int_to_string(value); }
long getDateValue() override { return value; };
bool getBooleanValue() override { return value != 0; };
};
@@ -153,7 +153,7 @@ namespace usql {
long getIntegerValue() override { return (long) value; };
double getDoubleValue() override { return value; };
std::string getStringValue() override { return std::to_string(value); }
std::string getStringValue() override { return Settings::double_to_string(value); }
long getDateValue() override { return (long) value; };
bool getBooleanValue() override { return value != 0.0; };
};
@@ -163,11 +163,11 @@ namespace usql {
explicit StringValueNode(const std::string &value) : ValueNode(NodeType::string_value), value(value) {}
long getIntegerValue() override { return std::stoi(value); };
double getDoubleValue() override { return std::stod(value); };
long getIntegerValue() override { return Settings::string_to_int(value); };
double getDoubleValue() override { return Settings::string_to_double(value); };
std::string getStringValue() override { return value; };
long getDateValue() override { return Settings::string_to_date(value); };
bool getBooleanValue() override { return value == "true"; };
bool getBooleanValue() override { return Settings::string_to_bool(value); };
};
struct BooleanValueNode : ValueNode {
@@ -177,7 +177,7 @@ namespace usql {
long getIntegerValue() override { return (long) value; };
double getDoubleValue() override { return (double) value; };
std::string getStringValue() override { return value ? "true" : "false"; }
std::string getStringValue() override { return Settings::bool_to_string(value); }
long getDateValue() override { return (long) value; };
bool getBooleanValue() override { return value; };
};