int is long, select column can be function, some fixes..

just to get it work.. needs improvement
This commit is contained in:
2021-07-19 19:44:46 +02:00
parent 9afbe6435e
commit dec99b823a
14 changed files with 8697 additions and 196 deletions

25
row.h
View File

@@ -11,11 +11,8 @@ namespace usql {
struct ColValue {
virtual bool isNull() { return false; };
virtual int integerValue() { throw Exception("Not supported"); };
virtual long integerValue() { throw Exception("Not supported"); };
virtual double floatValue() { throw Exception("Not supported"); };
virtual std::string stringValue() { throw Exception("Not supported"); };
};
@@ -23,7 +20,6 @@ namespace usql {
struct ColNullValue : ColValue {
virtual bool isNull() { return true; };
virtual std::string stringValue() { return "null"; };
};
@@ -31,13 +27,10 @@ namespace usql {
struct ColIntegerValue : ColValue {
ColIntegerValue(int value) : m_integer(value) {};
ColIntegerValue(const ColIntegerValue &other) : m_integer(other.m_integer) {};
virtual int integerValue() { return m_integer; };
virtual long integerValue() { return m_integer; };
virtual double floatValue() { return (double) m_integer; };
virtual std::string stringValue() { return std::to_string(m_integer); };
int m_integer;
@@ -47,13 +40,10 @@ namespace usql {
struct ColFloatValue : ColValue {
ColFloatValue(double value) : m_float(value) {};
ColFloatValue(const ColFloatValue &other) : m_float(other.m_float) {}
virtual int integerValue() { return (int) m_float; };
virtual long integerValue() { return (int) m_float; };
virtual double floatValue() { return m_float; };
virtual std::string stringValue() { return std::to_string(m_float); };
double m_float;
@@ -63,13 +53,10 @@ namespace usql {
struct ColStringValue : ColValue {
ColStringValue(const std::string value) : m_string(value) {};
ColStringValue(const ColStringValue &other) : m_string(other.m_string) {};
virtual int integerValue() { return std::stoi(m_string); };
virtual long integerValue() { return std::stoi(m_string); };
virtual double floatValue() { return std::stod(m_string); };
virtual std::string stringValue() { return m_string; };
std::string m_string;
@@ -85,7 +72,7 @@ namespace usql {
Row &operator=(Row other);
void setColumnNull(int col_index);
void setColumnValue(int col_index, int value);
void setColumnValue(int col_index, long value);
void setColumnValue(int col_index, double value);
void setColumnValue(int col_index, const std::string &value);
@@ -103,4 +90,4 @@ namespace usql {
std::vector<std::unique_ptr<ColValue>> m_columns;
};
}
} // namespace