added alter table command to fluent query builder
This commit is contained in:
@@ -136,58 +136,57 @@ private:
|
||||
escape_identifier_t identifier_escape_type_ = escape_identifier_t::ESCAPE_BOTH_SAME;
|
||||
|
||||
std::string default_schema_name_;
|
||||
// std::unique_ptr<query_compiler> compiler_;
|
||||
|
||||
token_to_string_map tokens_ {
|
||||
{dialect_token::Create, "CREATE"},
|
||||
{dialect_token::Drop, "DROP"},
|
||||
{dialect_token::Remove, "DELETE"},
|
||||
{dialect_token::Insert, "INSERT"},
|
||||
{dialect_token::Alter, "ALTER"},
|
||||
{dialect_token::Table, "TABLE"},
|
||||
{dialect_token::Into, "INTO"},
|
||||
{dialect_token::Values, "VALUES"},
|
||||
{dialect_token::Update, "UPDATE"},
|
||||
{dialect_token::Select, "SELECT"},
|
||||
{dialect_token::Columns, "COLUMNS"},
|
||||
{dialect_token::Column, "COLUMN"},
|
||||
{dialect_token::From, "FROM"},
|
||||
{dialect_token::Join, "LEFT JOIN"},
|
||||
{dialect_token::On, "ON"},
|
||||
{dialect_token::Where, "WHERE"},
|
||||
{dialect_token::And, "AND"},
|
||||
{dialect_token::Or, "OR"},
|
||||
{dialect_token::Not, "NOT"},
|
||||
{dialect_token::Like, "LIKE"},
|
||||
{dialect_token::Between, "BETWEEN"},
|
||||
{dialect_token::In, "IN"},
|
||||
{dialect_token::OrderBy, "ORDER BY"},
|
||||
{dialect_token::GroupBy, "GROUP BY"},
|
||||
{dialect_token::Asc, "ASC"},
|
||||
{dialect_token::Desc, "DESC"},
|
||||
{dialect_token::Offset, "OFFSET"},
|
||||
{dialect_token::Limit, "LIMIT"},
|
||||
{dialect_token::As, "AS"},
|
||||
{dialect_token::Offset, "OFFSET"},
|
||||
{dialect_token::Distinct, "DISTINCT"},
|
||||
{dialect_token::Set, "SET"},
|
||||
{dialect_token::NotNull, "NOT NULL"},
|
||||
{dialect_token::PrimaryKey, "PRIMARY KEY"},
|
||||
{dialect_token::ForeignKey, "FOREIGN KEY"},
|
||||
{dialect_token::References, "REFERENCES"},
|
||||
{dialect_token::AddConstraint, "ADD CONSTRAINT"},
|
||||
{dialect_token::DropConstraint, "DROP CONSTRAINT"},
|
||||
{dialect_token::Alter, "ALTER"},
|
||||
{dialect_token::And, "AND"},
|
||||
{dialect_token::As, "AS"},
|
||||
{dialect_token::Asc, "ASC"},
|
||||
{dialect_token::Asterisk, "*"},
|
||||
{dialect_token::Begin, "BEGIN TRANSACTION"},
|
||||
{dialect_token::Commit, "COMMIT TRANSACTION"},
|
||||
{dialect_token::Rollback, "ROLLBACK TRANSACTION"},
|
||||
{dialect_token::StartQuote, "\""},
|
||||
{dialect_token::EndQuote, "\""},
|
||||
{dialect_token::StringQuote, "'"},
|
||||
{dialect_token::BeginBinaryData, "X'"},
|
||||
{dialect_token::EndBinaryData, "'"},
|
||||
{dialect_token::BeginStringData, "'"},
|
||||
{dialect_token::Between, "BETWEEN"},
|
||||
{dialect_token::Column, "COLUMN"},
|
||||
{dialect_token::Columns, "COLUMNS"},
|
||||
{dialect_token::Commit, "COMMIT TRANSACTION"},
|
||||
{dialect_token::Create, "CREATE"},
|
||||
{dialect_token::Desc, "DESC"},
|
||||
{dialect_token::Distinct, "DISTINCT"},
|
||||
{dialect_token::Drop, "DROP"},
|
||||
{dialect_token::DropConstraint, "DROP CONSTRAINT"},
|
||||
{dialect_token::EndBinaryData, "'"},
|
||||
{dialect_token::EndQuote, "\""},
|
||||
{dialect_token::EndStringData, "'"},
|
||||
{dialect_token::None, ""}
|
||||
{dialect_token::ForeignKey, "FOREIGN KEY"},
|
||||
{dialect_token::From, "FROM"},
|
||||
{dialect_token::GroupBy, "GROUP BY"},
|
||||
{dialect_token::In, "IN"},
|
||||
{dialect_token::Insert, "INSERT"},
|
||||
{dialect_token::Into, "INTO"},
|
||||
{dialect_token::Join, "LEFT JOIN"},
|
||||
{dialect_token::Like, "LIKE"},
|
||||
{dialect_token::Limit, "LIMIT"},
|
||||
{dialect_token::None, ""},
|
||||
{dialect_token::Not, "NOT"},
|
||||
{dialect_token::NotNull, "NOT NULL"},
|
||||
{dialect_token::Offset, "OFFSET"},
|
||||
{dialect_token::On, "ON"},
|
||||
{dialect_token::Or, "OR"},
|
||||
{dialect_token::OrderBy, "ORDER BY"},
|
||||
{dialect_token::PrimaryKey, "PRIMARY KEY"},
|
||||
{dialect_token::References, "REFERENCES"},
|
||||
{dialect_token::Remove, "DELETE"},
|
||||
{dialect_token::Rollback, "ROLLBACK TRANSACTION"},
|
||||
{dialect_token::Select, "SELECT"},
|
||||
{dialect_token::Set, "SET"},
|
||||
{dialect_token::StartQuote, "\""},
|
||||
{dialect_token::StringQuote, "'"},
|
||||
{dialect_token::Table, "TABLE"},
|
||||
{dialect_token::Update, "UPDATE"},
|
||||
{dialect_token::Values, "VALUES"},
|
||||
{dialect_token::Where, "WHERE"}
|
||||
};
|
||||
|
||||
data_type_to_string_map data_types_ {
|
||||
|
||||
@@ -6,59 +6,57 @@
|
||||
namespace matador::sql {
|
||||
|
||||
enum class dialect_token : uint8_t {
|
||||
Create = 0,
|
||||
Drop,
|
||||
Remove,
|
||||
Insert,
|
||||
Update,
|
||||
Select,
|
||||
AddConstraint = 0,
|
||||
Alter,
|
||||
ForeignKey,
|
||||
PrimaryKey,
|
||||
AddConstraint,
|
||||
DropConstraint,
|
||||
References,
|
||||
Schema,
|
||||
Database,
|
||||
Table,
|
||||
Values,
|
||||
InsertValues,
|
||||
Columns,
|
||||
Column,
|
||||
From,
|
||||
Join,
|
||||
On,
|
||||
Into,
|
||||
Where,
|
||||
WhereClause,
|
||||
And,
|
||||
Or,
|
||||
Not,
|
||||
Like,
|
||||
Between,
|
||||
In,
|
||||
OrderBy,
|
||||
GroupBy,
|
||||
Asc,
|
||||
Desc,
|
||||
Limit,
|
||||
As,
|
||||
Offset,
|
||||
Distinct,
|
||||
Set,
|
||||
UpdateValues,
|
||||
NotNull,
|
||||
Asc,
|
||||
Asterisk,
|
||||
Begin,
|
||||
Commit,
|
||||
Rollback,
|
||||
StartQuote,
|
||||
EndQuote,
|
||||
StringQuote,
|
||||
BeginBinaryData,
|
||||
EndBinaryData,
|
||||
BeginStringData,
|
||||
Between,
|
||||
Column,
|
||||
Columns,
|
||||
Commit,
|
||||
Create,
|
||||
Database,
|
||||
Desc,
|
||||
Distinct,
|
||||
Drop,
|
||||
DropConstraint,
|
||||
EndBinaryData,
|
||||
EndQuote,
|
||||
EndStringData,
|
||||
None
|
||||
ForeignKey,
|
||||
From,
|
||||
GroupBy,
|
||||
In,
|
||||
Insert,
|
||||
Into,
|
||||
Join,
|
||||
Like,
|
||||
Limit,
|
||||
None,
|
||||
Not,
|
||||
NotNull,
|
||||
Offset,
|
||||
On,
|
||||
Or,
|
||||
OrderBy,
|
||||
PrimaryKey,
|
||||
References,
|
||||
Remove,
|
||||
Rollback,
|
||||
Schema,
|
||||
Select,
|
||||
Set,
|
||||
StartQuote,
|
||||
StringQuote,
|
||||
Table,
|
||||
Update,
|
||||
Values,
|
||||
Where
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace matador::sql {
|
||||
|
||||
enum class sql_command {
|
||||
SQL_UNKNOWN,
|
||||
SQL_CREATE,
|
||||
SQL_CREATE_TABLE,
|
||||
SQL_CREATE_SCHEMA,
|
||||
SQL_CREATE_DATABASE,
|
||||
@@ -17,6 +18,7 @@ enum class sql_command {
|
||||
SQL_INSERT,
|
||||
SQL_DELETE,
|
||||
SQL_SELECT,
|
||||
SQL_DROP,
|
||||
SQL_DROP_TABLE,
|
||||
SQL_DROP_SCHEMA,
|
||||
SQL_DROP_DATABASE,
|
||||
|
||||
@@ -10,8 +10,7 @@ namespace matador::sql {
|
||||
|
||||
struct column;
|
||||
|
||||
class record
|
||||
{
|
||||
class record final {
|
||||
private:
|
||||
using field_ref = std::reference_wrapper<field>;
|
||||
using field_by_index = std::vector<field_ref>;
|
||||
@@ -45,13 +44,11 @@ public:
|
||||
[[nodiscard]] const field& at(const column &col) const;
|
||||
[[nodiscard]] const field& at(size_t index) const;
|
||||
template<class Type>
|
||||
std::optional<Type> at(const column &col) const
|
||||
{
|
||||
std::optional<Type> at(const column &col) const {
|
||||
return at(col).as<Type>();
|
||||
}
|
||||
template<class Type>
|
||||
std::optional<Type> at(size_t index) const
|
||||
{
|
||||
std::optional<Type> at(const size_t index) const {
|
||||
return at(index).as<Type>();
|
||||
}
|
||||
|
||||
@@ -70,8 +67,6 @@ public:
|
||||
[[nodiscard]] bool empty() const;
|
||||
void clear();
|
||||
|
||||
// [[nodiscard]] bool unknown() const;
|
||||
|
||||
private:
|
||||
void init();
|
||||
void add_to_map(field &col, size_t index);
|
||||
@@ -79,8 +74,6 @@ private:
|
||||
private:
|
||||
field_by_index fields_;
|
||||
field_by_name_map fields_by_name_;
|
||||
|
||||
// int pk_index_{-1};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
return bus_.subscribe<EventType>(handler);
|
||||
}
|
||||
|
||||
connection_pool& pool() const;
|
||||
[[nodiscard]] connection_pool& pool() const;
|
||||
|
||||
private:
|
||||
size_t max_size_{};
|
||||
|
||||
Reference in New Issue
Block a user