mysql
mysql copied to clipboard
Roadmap Godot Mysql C++ Connector.
Dependencies:
- All requirements to compile Godot to your targetplatform.
- A C++20 capable compiler as GCC, Visual C++ (Windows) or Apple Clang (Apple).
- Git
- Perl
Capabilities:
Connection:
- [x] Map of properties
- [x] Set/Get Properties
- [x] TCP connection.
- [x] SSL/TLS connections
- [x] Async connection.
- [x] Unix connection(sockets)
- [x] Multi-Querties
Simple text queries:
- [x] Query
- [x] Execute
- [x] Update
- [x] Transactions & Save Points
Prepared Statement for:
- [x] Query
- [x] Execute
- [x] Update
- [x] Transactions & Save Points
Extra Functions:
- [x] Transaction (Savepoint and rollback to savepoint)
- [x] Errors.
Support platforms:
- [x] X11
- [x] Windows
- [ ] MacOS
- [ ] Web
- [ ] I̶O̶S̶
- [ ] A̶n̶d̶r̶o̶i̶d̶
Supported Godot & SQL data types:
TYPE | GODOT | C++ | SQL |
---|---|---|---|
NULL | null | std::nullptr_t | NILL |
BOOL | bool | bool | TINYINT |
INT32 | integer 32 | signed char, short, int, long, long long | SIGNED TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT |
INT64 | integer 64 | unsigned char, unsigned short, unsigned, int, unsigned long, unsigned long long | UNSIGNED BIGINT, UNSIGNED TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, YEAR, BIT |
FLOAT | float | float | FLOAT |
DOUBLE | float | double | DOUBLE |
BINARY | PackedByteArray | std::basic_vector<unsigned char, Allocator> | BINARY, VARBINARY, BLOB (all sizes), GEOMETRY |
CHAR | String | std::basic_string<char, std::char_traits |
CHAR, VARCHAR, TEXT (all sizes), ENUM, JSON, DECIMAL, NUMERIC |
DATE | Dictionary | boost::mysql::date AKA std::chrono::time_point<std::chrono::system_clock, days> | DATE |
TIME | Dictionary | boost::mysql::time AKA std::chrono::microseconds | TIME |
DATETIME | Dictionary | boost::mysql::datetime AKA std::chrono::time_point<std::chrono::system_clock, std::chrono::duration<std::int64_t, std::micro>> | DATETIME, TIMESTAMP |
CHAR | PackedStringArray | std::basic_string<char, std::char_traits, Allocator> (including std::string), string_view, std::string_view, const char* | SET |
This third option, mysql, proved to be more promising. Not only is it easier to port to mobile platforms, but it's also easier to handle.
Beta!