From b1f2d94c7aa17718aa108b776e954245486d3f2e Mon Sep 17 00:00:00 2001 From: Sascha Kuehl Date: Sun, 25 Feb 2024 19:04:04 +0100 Subject: [PATCH] fixed query limit offset order --- demo/main.cpp | 4 ++-- include/matador/sql/query_intermediates.hpp | 9 ++++++--- src/sql/query_intermediates.cpp | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/demo/main.cpp b/demo/main.cpp index b263fc9..f891a01 100644 --- a/demo/main.cpp +++ b/demo/main.cpp @@ -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(); diff --git a/include/matador/sql/query_intermediates.hpp b/include/matador/sql/query_intermediates.hpp index 9e4eecb..cf0215b 100644 --- a/include/matador/sql/query_intermediates.hpp +++ b/include/matador/sql/query_intermediates.hpp @@ -78,16 +78,20 @@ private: std::unique_ptr 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); }; diff --git a/src/sql/query_intermediates.cpp b/src/sql/query_intermediates.cpp index 04b7827..984642f 100644 --- a/src/sql/query_intermediates.cpp +++ b/src/sql/query_intermediates.cpp @@ -41,7 +41,7 @@ statement query_select_finish::prepare() query_intermediate::query_intermediate(connection &db, const std::shared_ptr &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(offset)); return {connection_, schema_, data_};