added sequence-specific code (create, drop and nextval)
This commit is contained in:
@@ -11,7 +11,8 @@ public:
|
||||
query_drop_intermediate();
|
||||
|
||||
executable_query table(const table &tab);
|
||||
// executable_query schema(const std::string &schema_name);
|
||||
executable_query sequence(const std::string &sequence_name);
|
||||
executable_query schema(const std::string &schema_name);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -17,6 +17,8 @@ class query_select_intermediate : public query_intermediate
|
||||
public:
|
||||
explicit query_select_intermediate(const std::vector<table_column>& columns);
|
||||
|
||||
fetchable_query nextval(const std::string& sequence_name);
|
||||
|
||||
template<typename... Tables>
|
||||
query_from_intermediate from(const Tables&... tables) {
|
||||
std::vector<table> v { tables... };
|
||||
|
||||
@@ -126,6 +126,20 @@ private:
|
||||
std::vector<table_column> columns_;
|
||||
};
|
||||
|
||||
class query_select_nextval_part final : public query_part {
|
||||
public:
|
||||
explicit query_select_nextval_part(std::string sequence_name);
|
||||
|
||||
[[nodiscard]] const std::string& sequence_name() const;
|
||||
|
||||
private:
|
||||
void accept(query_part_visitor &visitor) override;
|
||||
|
||||
private:
|
||||
std::string sequence_name_;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Represents the SQL FROM part
|
||||
*/
|
||||
@@ -443,6 +457,19 @@ private:
|
||||
std::list<table_constraint> constraints_;
|
||||
};
|
||||
|
||||
class query_create_sequence_part final : public query_part {
|
||||
public:
|
||||
explicit query_create_sequence_part(std::string sequence_name);
|
||||
|
||||
[[nodiscard]] const std::string& sequence_name() const;
|
||||
|
||||
private:
|
||||
void accept(query_part_visitor &visitor) override;
|
||||
|
||||
private:
|
||||
std::string sequence_name_;
|
||||
};
|
||||
|
||||
class query_create_schema_part final : public query_part {
|
||||
public:
|
||||
explicit query_create_schema_part(std::string schema);
|
||||
@@ -479,6 +506,19 @@ private:
|
||||
class table table_;
|
||||
};
|
||||
|
||||
class query_drop_sequence_part final : public query_part {
|
||||
public:
|
||||
explicit query_drop_sequence_part(std::string sequence_name);
|
||||
|
||||
[[nodiscard]] const std::string& sequence_name() const;
|
||||
|
||||
private:
|
||||
void accept(query_part_visitor &visitor) override;
|
||||
|
||||
private:
|
||||
std::string sequence_name_;
|
||||
};
|
||||
|
||||
class query_drop_schema_part final : public query_part {
|
||||
public:
|
||||
explicit query_drop_schema_part(std::string schema_);
|
||||
|
||||
@@ -45,6 +45,7 @@ protected:
|
||||
void visit(internal::query_drop_key_constraint_part_by_constraint &part) override;
|
||||
|
||||
void visit(internal::query_select_part &part) override;
|
||||
void visit(internal::query_select_nextval_part &part) override;
|
||||
void visit(internal::query_from_part &part) override;
|
||||
void visit(internal::query_join_table_part &part) override;
|
||||
void visit(internal::query_join_query_part &part) override;
|
||||
@@ -72,10 +73,12 @@ protected:
|
||||
void visit(internal::query_create_table_part &part) override;
|
||||
void visit(internal::query_create_table_columns_part& part) override;
|
||||
void visit(internal::query_create_table_constraints_part& part) override;
|
||||
void visit(internal::query_create_sequence_part &part) override;
|
||||
void visit(internal::query_create_schema_part& part) override;
|
||||
|
||||
void visit(internal::query_drop_part &part) override;
|
||||
void visit(internal::query_drop_table_part &part) override;
|
||||
void visit(internal::query_drop_sequence_part &part) override;
|
||||
void visit(internal::query_drop_schema_part& part) override;
|
||||
|
||||
static std::string build_table_name(sql::dialect_token token, const sql::dialect &d, const table& t);
|
||||
|
||||
@@ -17,6 +17,7 @@ class query_add_foreign_key_reference_part;
|
||||
class query_add_primary_key_constraint_part;
|
||||
// Select
|
||||
class query_select_part;
|
||||
class query_select_nextval_part;
|
||||
class query_from_part;
|
||||
class query_join_table_part;
|
||||
class query_join_query_part;
|
||||
@@ -45,12 +46,16 @@ class query_create_part;
|
||||
class query_create_table_part;
|
||||
class query_create_table_columns_part;
|
||||
class query_create_table_constraints_part;
|
||||
// Create Sequence
|
||||
class query_create_sequence_part;
|
||||
// Create schema
|
||||
class query_create_schema_part;
|
||||
// Drop common
|
||||
class query_drop_part;
|
||||
// Drop table
|
||||
class query_drop_table_part;
|
||||
// Drop sequence
|
||||
class query_drop_sequence_part;
|
||||
// Drop schema
|
||||
class query_drop_schema_part;
|
||||
}
|
||||
@@ -70,6 +75,7 @@ public:
|
||||
virtual void visit(internal::query_drop_key_constraint_part_by_constraint &part) = 0;
|
||||
|
||||
virtual void visit(internal::query_select_part &part) = 0;
|
||||
virtual void visit(internal::query_select_nextval_part &part) = 0;
|
||||
virtual void visit(internal::query_from_part &part) = 0;
|
||||
virtual void visit(internal::query_join_table_part &part) = 0;
|
||||
virtual void visit(internal::query_join_query_part &part) = 0;
|
||||
@@ -97,10 +103,12 @@ public:
|
||||
virtual void visit(internal::query_create_table_part &part) = 0;
|
||||
virtual void visit(internal::query_create_table_columns_part &part) = 0;
|
||||
virtual void visit(internal::query_create_table_constraints_part &part) = 0;
|
||||
virtual void visit(internal::query_create_sequence_part &part) = 0;
|
||||
virtual void visit(internal::query_create_schema_part &part) = 0;
|
||||
|
||||
virtual void visit(internal::query_drop_part &part) = 0;
|
||||
virtual void visit(internal::query_drop_table_part &part) = 0;
|
||||
virtual void visit(internal::query_drop_sequence_part &part) = 0;
|
||||
virtual void visit(internal::query_drop_schema_part &part) = 0;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user