|
Lightweight 0.20260617.0
|
Query builder for building SELECT ... queries. More...
#include <Select.hpp>
Public Types | |
| using | SelectType = detail::SelectType |
| The select query type alias. | |
Public Member Functions | |
| SqlSelectQueryBuilder (SqlQueryFormatter const &formatter, std::string table, std::string tableAlias) noexcept | |
| Constructs a SELECT query builder. | |
| constexpr LIGHTWEIGHT_FORCE_INLINE SqlSelectQueryBuilder & | Varying () noexcept |
| Sets the builder mode to Varying, allowing varying final query types. | |
| template<typename... MoreFields> | |
| SqlSelectQueryBuilder & | Fields (std::string_view const &firstField, MoreFields &&... moreFields) |
| Adds a sequence of columns to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | Field (std::string_view const &fieldName) |
| Adds a single column to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & | Field (std::string_view const &fieldName) const |
| Adds a single column to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | Field (SqlQualifiedTableColumnName const &fieldName) |
| Adds a single column to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & | Field (SqlQualifiedTableColumnName const &fieldName) const |
| Adds a single column to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | Field (SqlFieldExpression const &fieldExpression) |
| Adds an aggregate function call to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & | Field (SqlFieldExpression const &fieldExpression) const |
| Adds an aggregate function call to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | As (std::string_view alias) |
| Aliases the last added field (a column or an aggregate call) in the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & | As (std::string_view alias) const |
| Aliases the last added field (a column or an aggregate call) in the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | Fields (std::vector< std::string_view > const &fieldNames) |
| Adds a sequence of columns to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & | Fields (std::vector< std::string_view > const &fieldNames) const |
| Adds a sequence of columns to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | Fields (std::vector< std::string_view > const &fieldNames, std::string_view tableName) |
| Adds a sequence of columns from the given table to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & | Fields (std::vector< std::string_view > const &fieldNames, std::string_view tableName) const |
| Adds a sequence of columns from the given table to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | Fields (std::initializer_list< std::string_view > const &fieldNames, std::string_view tableName) |
| Adds a sequence of columns from the given table to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & | Fields (std::initializer_list< std::string_view > const &fieldNames, std::string_view tableName) const |
| Adds a sequence of columns from the given table to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | Fields (std::span< SqlQualifiedTableColumnName const > fieldNames) |
| Adds a sequence of qualified table column names to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & | Fields (std::span< SqlQualifiedTableColumnName const > fieldNames) const |
| Adds a sequence of qualified table column names to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | Fields (std::initializer_list< SqlQualifiedTableColumnName const > fieldNames) |
| Adds a sequence of qualified table column names to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & | Fields (std::initializer_list< SqlQualifiedTableColumnName const > fieldNames) const |
| Adds a sequence of qualified table column names to the SELECT clause. | |
| template<typename FirstRecord , typename... MoreRecords> | |
| SqlSelectQueryBuilder & | Fields () |
| Adds a sequence of columns from the given tables to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | FieldAs (std::string_view const &fieldName, std::string_view const &alias) |
| Adds a single column with an alias to the SELECT clause. | |
| LIGHTWEIGHT_API SqlSelectQueryBuilder & | FieldAs (SqlQualifiedTableColumnName const &fieldName, std::string_view const &alias) |
| Adds a single column with an alias to the SELECT clause. | |
| template<typename Callable > | |
| SqlSelectQueryBuilder & | Build (Callable const &callable) |
| Builds the query using a callable. | |
| LIGHTWEIGHT_API ComposedQuery | Count () |
| Finalizes building the query as SELECT COUNT(*) ... query. | |
| LIGHTWEIGHT_API ComposedQuery | Count () const |
| Finalizes building the query as SELECT COUNT(*) ... query. | |
| LIGHTWEIGHT_API ComposedQuery | All () |
| Finalizes building the query as SELECT field names FROM ... query. | |
| LIGHTWEIGHT_API ComposedQuery | All () const |
| Finalizes building the query as SELECT field names FROM ... query. | |
| LIGHTWEIGHT_API ComposedQuery | First (size_t count=1) |
| Finalizes building the query as SELECT TOP n field names FROM ... query. | |
| LIGHTWEIGHT_API ComposedQuery | First (size_t count=1) const |
| Finalizes building the query as SELECT TOP n field names FROM ... query. | |
| LIGHTWEIGHT_API ComposedQuery | Range (std::size_t offset, std::size_t limit) |
| Finalizes building the query as SELECT field names FROM ... query with a range. | |
| LIGHTWEIGHT_API ComposedQuery | Range (std::size_t offset, std::size_t limit) const |
| Finalizes building the query as SELECT field names FROM ... query with a range. | |
| LIGHTWEIGHT_FORCE_INLINE SqlSearchCondition & | SearchCondition () noexcept |
| Returns the search condition for the query. | |
| LIGHTWEIGHT_FORCE_INLINE SqlQueryFormatter const & | Formatter () const noexcept |
| Returns the SQL query formatter. | |
| template<typename Callable > | |
| LIGHTWEIGHT_FORCE_INLINE SqlSelectQueryBuilder & | Build (Callable const &callable) |
| Builds the query using a callable. | |
| template<typename FirstRecord , typename... MoreRecords> | |
| LIGHTWEIGHT_FORCE_INLINE SqlSelectQueryBuilder & | Fields () |
| Adds fields from one or more record types to the SELECT clause. | |
Query builder for building SELECT ... queries.
Not constructed directly by user code; obtained by adding a projection (Field / Fields / FieldAs / Build) to a SqlSelectQueryStarter — the type returned by SqlQueryBuilder::Select(). The starter intentionally hides the finalizers All, First, and Range so that an empty Select().All() (which would emit malformed SELECT FROM "T" SQL) fails at compile time; the gate is in the starter, not here.
Definition at line 98 of file Select.hpp.
| using Lightweight::SqlSelectQueryBuilder::SelectType = detail::SelectType |
The select query type alias.
Definition at line 102 of file Select.hpp.
|
inlineexplicitnoexcept |
Constructs a SELECT query builder.
Definition at line 105 of file Select.hpp.
|
inlineconstexprnoexcept |
Sets the builder mode to Varying, allowing varying final query types.
Definition at line 116 of file Select.hpp.
| SqlSelectQueryBuilder & Lightweight::SqlSelectQueryBuilder::Fields | ( | std::string_view const & | firstField, |
| MoreFields &&... | moreFields | ||
| ) |
Adds a sequence of columns to the SELECT clause.
Definition at line 268 of file Select.hpp.
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & Lightweight::SqlSelectQueryBuilder::Field | ( | std::string_view const & | fieldName | ) | const |
Adds a single column to the SELECT clause.
Const overload: delegates via const_cast — see Count() const.
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & Lightweight::SqlSelectQueryBuilder::Field | ( | SqlQualifiedTableColumnName const & | fieldName | ) | const |
Adds a single column to the SELECT clause.
Const overload: delegates via const_cast — see Count() const.
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & Lightweight::SqlSelectQueryBuilder::Field | ( | SqlFieldExpression const & | fieldExpression | ) | const |
Adds an aggregate function call to the SELECT clause.
Const overload: delegates via const_cast — see Count() const.
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & Lightweight::SqlSelectQueryBuilder::As | ( | std::string_view | alias | ) | const |
Aliases the last added field (a column or an aggregate call) in the SELECT clause.
Const overload: delegates via const_cast — see Count() const.
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & Lightweight::SqlSelectQueryBuilder::Fields | ( | std::vector< std::string_view > const & | fieldNames | ) | const |
Adds a sequence of columns to the SELECT clause.
Const overload: delegates via const_cast — see Count() const.
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & Lightweight::SqlSelectQueryBuilder::Fields | ( | std::vector< std::string_view > const & | fieldNames, |
| std::string_view | tableName | ||
| ) | const |
Adds a sequence of columns from the given table to the SELECT clause.
Const overload: delegates via const_cast — see Count() const.
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & Lightweight::SqlSelectQueryBuilder::Fields | ( | std::initializer_list< std::string_view > const & | fieldNames, |
| std::string_view | tableName | ||
| ) | const |
Adds a sequence of columns from the given table to the SELECT clause.
Const overload: delegates via const_cast — see Count() const.
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & Lightweight::SqlSelectQueryBuilder::Fields | ( | std::span< SqlQualifiedTableColumnName const > | fieldNames | ) | const |
Adds a sequence of qualified table column names to the SELECT clause.
Const overload: delegates via const_cast — see Count() const.
| LIGHTWEIGHT_API SqlSelectQueryBuilder const & Lightweight::SqlSelectQueryBuilder::Fields | ( | std::initializer_list< SqlQualifiedTableColumnName const > | fieldNames | ) | const |
Adds a sequence of qualified table column names to the SELECT clause.
Const overload: delegates via const_cast — see Count() const.
| LIGHTWEIGHT_API ComposedQuery Lightweight::SqlSelectQueryBuilder::Count | ( | ) | const |
Finalizes building the query as SELECT COUNT(*) ... query.
Const overload: doesn't mutate *this — returns a snapshot ComposedQuery so the finalizer can be reached through a const SqlSelectQueryBuilder.
| LIGHTWEIGHT_API ComposedQuery Lightweight::SqlSelectQueryBuilder::All | ( | ) | const |
Finalizes building the query as SELECT field names FROM ... query.
Const overload: doesn't mutate *this — see Count() const.
| LIGHTWEIGHT_API ComposedQuery Lightweight::SqlSelectQueryBuilder::First | ( | size_t | count = 1 | ) | const |
Finalizes building the query as SELECT TOP n field names FROM ... query.
Const overload: doesn't mutate *this — see Count() const.
| LIGHTWEIGHT_API ComposedQuery Lightweight::SqlSelectQueryBuilder::Range | ( | std::size_t | offset, |
| std::size_t | limit | ||
| ) | const |
Finalizes building the query as SELECT field names FROM ... query with a range.
Const overload: doesn't mutate *this — see Count() const.
|
inlinenoexcept |
Returns the search condition for the query.
Definition at line 243 of file Select.hpp.
|
inlinenoexcept |
Returns the SQL query formatter.
Definition at line 251 of file Select.hpp.
|
inline |
Builds the query using a callable.
Definition at line 288 of file Select.hpp.
|
inline |
Adds fields from one or more record types to the SELECT clause.
Definition at line 296 of file Select.hpp.
References Lightweight::SqlQualifiedTableColumnName::tableName.