|
IronQuery
A SQL-first query builder for C++
|
Any table value, including physical table, table result, materialized view, etc. More...
#include <virtual_table.hpp>

Public Member Functions | |
| virtual std::string | ToString () const =0 |
| Renders this table value as single-line SQL text. See also ToStringFormatted for a multi-line, indented rendering. | |
| virtual std::string | ToStringFormatted () const |
| Renders this table value as multi-line, indented SQL text for readability (e.g. logging/debugging a generated query). Defaults to ToString; overridden by SelectExpr to lay out each clause on its own line. | |
| virtual std::string | ToStringBracketed () const |
| Renders this table value as SQL text, parenthesized so it can be safely embedded as a subquery. Overridden by Table to skip bracketing, since a bare table name never needs it. | |
| virtual std::string | ToStringAsFromItem () const |
Renders this table value as a FROM item. Distinct from ToStringBracketed because PostgreSQL's table_ref grammar accepts a bare join but parenthesizes one only when an alias follows. | |
| Table | As (std::string_view name) const |
Aliases this table value as this AS name, usable as a FROM source. name must be a valid (optionally dotted) SQL identifier. | |
| operator Expr () const && | |
| Converts this table value into a subquery expression, e.g. for use as a scalar subquery. Only available on rvalues. | |
Any table value, including physical table, table result, materialized view, etc.
| Table iron_query::VirtualTable::As | ( | std::string_view | name | ) | const |
Aliases this table value as this AS name, usable as a FROM source. name must be a valid (optionally dotted) SQL identifier.
| InvalidIdentifier | if name is not a valid identifier. |
| iron_query::VirtualTable::operator Expr | ( | ) | const && |
Converts this table value into a subquery expression, e.g. for use as a scalar subquery. Only available on rvalues.
|
pure virtual |
Renders this table value as single-line SQL text. See also ToStringFormatted for a multi-line, indented rendering.
Implemented in iron_query::DeleteFrom, iron_query::Join, iron_query::SelectExpr, iron_query::SetOp, iron_query::Table, and iron_query::WithQuery.
|
virtual |
Renders this table value as a FROM item. Distinct from ToStringBracketed because PostgreSQL's table_ref grammar accepts a bare join but parenthesizes one only when an alias follows.
| LogicError | for table values that PostgreSQL requires an alias for, i.e. every subquery; call As first. |
Reimplemented in iron_query::Join, and iron_query::Table.
|
virtual |
Renders this table value as SQL text, parenthesized so it can be safely embedded as a subquery. Overridden by Table to skip bracketing, since a bare table name never needs it.
Reimplemented in iron_query::Table.
|
virtual |
Renders this table value as multi-line, indented SQL text for readability (e.g. logging/debugging a generated query). Defaults to ToString; overridden by SelectExpr to lay out each clause on its own line.
Reimplemented in iron_query::SelectExpr, and iron_query::WithQuery.