Skip to content

Commit 0ae4cd5

Browse files
committed
Fix all dem problems
1 parent e69f41e commit 0ae4cd5

4 files changed

Lines changed: 22 additions & 17 deletions

File tree

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
url = https://github.com/MariaDB/mariadb-connector-c
77
[submodule "mariadbpp"]
88
path = mariadbpp
9-
url = https://github.com/viaduck/mariadbpp
9+
url = https://github.com/dedmen/mariadbpp
1010
[submodule "wolfssl"]
1111
path = wolfssl
1212
url = https://github.com/wolfSSL/wolfssl

src/connection.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ class GameDataDBConnection : public game_data {
1818
float get_as_number() const override { return 0.f; }
1919
const r_string& get_as_string() const override { static r_string nm("stuff"sv); return nm; }
2020
game_data* copy() const override { return new GameDataDBConnection(*this); } //#TODO make sure this works
21-
r_string to_string() const override { return r_string("stuff"sv); }
21+
r_string to_string() const override {
22+
if (!session) return r_string("<no session>"sv);
23+
if (!session->connected()) return r_string("<not connected>"sv);
24+
return "<connected to database: " + session->schema() + ">";
25+
}
2226
//virtual bool equals(const game_data*) const override; //#TODO isEqualTo on hashMaps would be quite nice I guess?
2327
const char* type_as_string() const override { return "databaseConnection"; }
2428
bool is_nil() const override { return false; }
@@ -92,7 +96,7 @@ game_value Connection::cmd_query(uintptr_t, game_value_parameter con, game_value
9296
auto res = statement->query();
9397

9498
auto gd_res = new GameDataDBResult();
95-
gd_res->res = std::move(res);
99+
gd_res->res = res;
96100

97101
return gd_res;
98102
}

src/res.cpp

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ game_value Result::cmd_lastInsertId(uintptr_t, game_value_parameter right) {
2626

2727
game_value Result::cmd_toArray(uintptr_t, game_value_parameter right) {
2828
auto& res = right.get_as<GameDataDBResult>()->res;
29+
if (!res) return auto_array<game_value>();
2930
auto_array<game_value> result;
3031

3132
while (res->next()) {
@@ -35,29 +36,29 @@ game_value Result::cmd_toArray(uintptr_t, game_value_parameter right) {
3536

3637
switch (res->column_type(i)) {
3738
case mariadb::value::null: row.emplace_back(game_value{}); break;
38-
case mariadb::value::date: row.emplace_back(res->get_string(i)); break;
39-
case mariadb::value::date_time: row.emplace_back(res->get_string(i)); break;
40-
case mariadb::value::time: row.emplace_back(res->get_string(i)); break;
39+
case mariadb::value::date: row.emplace_back(res->get_date(i).str()); break;
40+
case mariadb::value::date_time: row.emplace_back(res->get_date_time(i).str()); break;
41+
case mariadb::value::time: row.emplace_back(res->get_time(i).str_time()); break;
4142
case mariadb::value::string: row.emplace_back(res->get_string(i)); break;
4243
case mariadb::value::boolean: row.emplace_back(res->get_boolean(i)); break;
4344
case mariadb::value::decimal: row.emplace_back(res->get_decimal(i).float32()); break;
44-
case mariadb::value::unsigned8: row.emplace_back(res->get_float(i)); break;
45-
case mariadb::value::signed8: row.emplace_back(res->get_float(i)); break;
46-
case mariadb::value::unsigned16: row.emplace_back(res->get_float(i)); break;
47-
case mariadb::value::signed16: row.emplace_back(res->get_float(i)); break;
48-
case mariadb::value::unsigned32: row.emplace_back(res->get_float(i)); break;
49-
case mariadb::value::signed32: row.emplace_back(res->get_float(i)); break;
50-
case mariadb::value::unsigned64: row.emplace_back(res->get_float(i)); break;
51-
case mariadb::value::signed64: row.emplace_back(res->get_float(i)); break;
45+
case mariadb::value::unsigned8: row.emplace_back(static_cast<float>(res->get_unsigned8(i))); break;
46+
case mariadb::value::signed8: row.emplace_back(static_cast<float>(res->get_signed8(i))); break;
47+
case mariadb::value::unsigned16: row.emplace_back(static_cast<float>(res->get_unsigned16(i))); break;
48+
case mariadb::value::signed16: row.emplace_back(static_cast<float>(res->get_signed16(i))); break;
49+
case mariadb::value::unsigned32: row.emplace_back(static_cast<float>(res->get_unsigned32(i))); break;
50+
case mariadb::value::signed32: row.emplace_back(static_cast<float>(res->get_signed32(i))); break;
51+
case mariadb::value::unsigned64: row.emplace_back(static_cast<float>(res->get_unsigned64(i))); break;
52+
case mariadb::value::signed64: row.emplace_back(static_cast<float>(res->get_signed64(i))); break;
5253
case mariadb::value::float32: row.emplace_back(res->get_float(i)); break;
53-
case mariadb::value::double64: row.emplace_back(res->get_float(i)); break;
54+
case mariadb::value::double64: row.emplace_back(static_cast<float>(res->get_double(i))); break;
5455
case mariadb::value::enumeration: row.emplace_back(res->get_string(i)); break;
5556
default: ;
5657
}
5758
}
5859
result.emplace_back(std::move(row));
5960
}
60-
return game_value(result);
61+
return result;
6162
}
6263

6364
void ::Result::initCommands() {

src/res.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class GameDataDBResult : public game_data {
3636
bool get_as_bool() const override { return true; }
3737
float get_as_number() const override { return 0.f; }
3838
const r_string& get_as_string() const override { static r_string nm("TODO"sv); return nm; }
39-
game_data* copy() const override { return new GameDataDBResult(); } //#TODO can't do that dave
39+
game_data* copy() const override { return new GameDataDBResult(*this); } //#TODO can't do that dave
4040
r_string to_string() const override { return r_string("TODO"sv); }
4141
//virtual bool equals(const game_data*) const override; //#TODO isEqualTo on hashMaps would be quite nice I guess?
4242
const char* type_as_string() const override { return "databaseQuery"; }

0 commit comments

Comments
 (0)