fixed query limit offset order

This commit is contained in:
Sascha Kuehl 2024-02-25 19:04:04 +01:00
parent 6f5326941e
commit b1f2d94c7a
3 changed files with 9 additions and 6 deletions

View File

@ -141,8 +141,8 @@ int main()
.where(qh::books.published_in < 2008 && qh::authors.last_name == "King")
.group_by(qh::books.published_in)
.order_by(qh::books.title).asc()
// .offset(2)
// .limit(5)
.limit(5)
.offset(2)
// .str();
.fetch_all();
// .fetch_all<book>();

View File

@ -78,16 +78,20 @@ private:
std::unique_ptr<query_result_impl> fetch();
};
class query_offset_intermediate;
class query_limit_intermediate : public query_select_finish
{
public:
using query_select_finish::query_select_finish;
query_offset_intermediate offset(size_t offset);
};
class query_offset_intermediate : public query_intermediate
class query_offset_intermediate : public query_select_finish
{
public:
using query_intermediate::query_intermediate;
using query_select_finish::query_select_finish;
query_limit_intermediate limit(size_t limit);
};
@ -97,7 +101,6 @@ class query_order_direction_intermediate : public query_select_finish
public:
using query_select_finish::query_select_finish;
query_offset_intermediate offset(size_t offset);
query_limit_intermediate limit(size_t limit);
};

View File

@ -41,7 +41,7 @@ statement query_select_finish::prepare()
query_intermediate::query_intermediate(connection &db, const std::shared_ptr<sql::schema> &schema, query_data &data)
: basic_query_intermediate(db, schema), data_(data) {}
query_offset_intermediate query_order_direction_intermediate::offset(size_t offset)
query_offset_intermediate query_limit_intermediate::offset(size_t offset)
{
data_.parts.push_back(std::make_unique<query_offset_part>(offset));
return {connection_, schema_, data_};