--- a/src/Connection.h Mon May 25 21:11:17 2020 +0200
+++ b/src/Connection.h Sun May 31 16:56:07 2020 +0200
@@ -16,6 +16,11 @@
*/
#pragma once
+#include <codecvt>
+#include <locale>
+
+#include <relpipe/reader/typedefs.h>
+
#include "SqlException.h"
#include "PreparedStatement.h"
@@ -25,16 +30,37 @@
class Connection {
private:
- void* db;
- void begin();
+ void* connection;
+ std::wstring_convert<std::codecvt_utf8<wchar_t>> convertor; // TODO: support also other encodings
public:
- Connection(const char* filename); // TODO: add DriverManager class + support connecting using a DSN or a connectString
+ Connection(void* connection);
virtual ~Connection();
- PreparedStatement* prepareStatement(const char* sql);
+ PreparedStatement* prepareStatement(relpipe::reader::string_t sql);
bool getAutoCommit();
void setAutoCommit(bool autoCommit);
void commit();
void rollback();
+
+ class TableMetaData {
+ public:
+ relpipe::reader::string_t catalog;
+ relpipe::reader::string_t schema;
+ relpipe::reader::string_t name;
+ relpipe::reader::string_t type;
+ };
+ std::vector<TableMetaData> getTables();
+
+ class TablePrivilege : public TableMetaData {
+ public:
+ relpipe::reader::string_t grantor;
+ relpipe::reader::string_t grantee;
+ relpipe::reader::string_t privilege;
+ relpipe::reader::boolean_t isGrantable;
+
+ };
+ std::vector<TablePrivilege> getTablePrivileges();
+
+ relpipe::reader::string_t getUserName();
};
}