Hyper API for C++
0.0.16638
Hyper client library for C++ applications
|
Go to the documentation of this file.
5 #ifndef TABLEAU_HYPER_SQLTYPE_HPP
6 #define TABLEAU_HYPER_SQLTYPE_HPP
8 #include <hyperapi/impl/infra.hpp>
10 #include <hyperapi/hyperapi.h>
15 static CONSTEXPR_OPTIONAL optional<internal::AnyType>
null = {};
19 Unsupported = HYPER_UNSUPPORTED,
21 BigInt = HYPER_BIG_INT,
22 SmallInt = HYPER_SMALL_INT,
25 Double = HYPER_DOUBLE,
29 Varchar = HYPER_VARCHAR,
36 TimestampTZ = HYPER_TIMESTAMP_TZ,
37 Geography = HYPER_GEOGRAPHY
46 SqlType(
TypeTag tag, uint32_t
oid, hyper_type_modifier_t modifier = HYPER_UNUSED_MODIFIER) noexcept
47 : tag(tag), internalOid(
oid), modifier(modifier) {
95 static
SqlType boolean() noexcept {
return {TypeTag::Bool, HYPER_OID_BOOL}; }
100 static SqlType bigInt() noexcept {
return {TypeTag::BigInt, HYPER_OID_BIG_INT}; }
105 static SqlType smallInt() noexcept {
return {TypeTag::SmallInt, HYPER_OID_SMALL_INT}; }
117 static SqlType numeric(uint16_t precision, uint16_t scale) noexcept {
return {TypeTag::Numeric, HYPER_OID_NUMERIC, hyper_encode_numeric_modifier(precision, scale)}; }
127 static SqlType oid() noexcept {
return {TypeTag::Oid, HYPER_OID_OID}; }
132 static SqlType bytes() noexcept {
return {TypeTag::Bytes, HYPER_OID_BYTE_A}; }
137 static SqlType text() noexcept {
return {TypeTag::Text, HYPER_OID_TEXT}; }
143 static SqlType varchar(uint32_t maxLength) noexcept {
return {TypeTag::Varchar, HYPER_OID_VARCHAR, hyper_encode_string_modifier(maxLength)}; }
149 static SqlType character(uint32_t maxLength) noexcept {
return {TypeTag::Char, static_cast<uint32_t>((maxLength == 1) ? HYPER_OID_CHAR1 : HYPER_OID_CHAR), hyper_encode_string_modifier(maxLength)}; }
154 static SqlType json() noexcept {
return {TypeTag::Json, HYPER_OID_JSON}; }
159 static SqlType date() noexcept {
return {TypeTag::Date, HYPER_OID_DATE}; }
164 static SqlType interval() noexcept {
return {TypeTag::Interval, HYPER_OID_INTERVAL}; }
169 static SqlType time() noexcept {
return {TypeTag::Time, HYPER_OID_TIME}; }
219 uint32_t internalOid;
221 hyper_type_modifier_t modifier;
223 friend class internal::HyperTableDefinition;
238 #include <hyperapi/impl/SqlType.impl.hpp>
static SqlType varchar(uint32_t maxLength) noexcept
Returns the VARCHAR SQL type.
static SqlType bytes() noexcept
Returns the BYTEA SQL type.
friend bool operator!=(const SqlType &a, const SqlType &b) noexcept
Not equal operator.
friend bool operator>(const SqlType &a, const SqlType &b) noexcept
Greater operator.
SqlType(TypeTag tag, uint32_t oid, hyper_type_modifier_t modifier=HYPER_UNUSED_MODIFIER) noexcept
Constructor.
static SqlType character(uint32_t maxLength) noexcept
Returns the CHARACTER SQL type.
static SqlType smallInt() noexcept
Returns the SMALL INTEGER SQL type.
uint32_t getMaxLength() const noexcept
Returns the maximum length parameter of the type if the type supports it, HYPER_UNUSED_MODIFIER other...
uint32_t getScale() const noexcept
Returns the scale parameter of the type if the type supports it, HYPER_UNUSED_MODIFIER otherwise.
TypeTag getTag() const noexcept
Returns the type tag.
static SqlType timestamp() noexcept
Returns the TIMESTAMP SQL type.
std::string toString() const
Returns a string representation for debugging.
static SqlType date() noexcept
Returns the DATE SQL type.
static SqlType timestampTZ() noexcept
Returns the TIMESTAMPTZ SQL type.
friend bool operator==(const SqlType &a, const SqlType &b) noexcept
Equality operator.
static SqlType time() noexcept
Returns the TIME SQL type.
friend std::ostream & operator<<(std::ostream &os, const SqlType &obj)
Stream output operator.
uint32_t getPrecision() const noexcept
Returns the maximum precision parameter of the type if the type supports it, HYPER_UNUSED_MODIFIER ot...
static SqlType bigInt() noexcept
Returns the BIG INTEGER SQL type.
A fixed-point numeric data value with scale fraction digits and precision digits overall.
The primary namespace of the Hyper API for C++.
static SqlType text() noexcept
Returns the TEXT SQL type.
uint32_t getInternalOid() const noexcept
Returns the internal oid.
uint32_t getInternalTypeModifier() const noexcept
Returns the internal type modifier.
static SqlType integer() noexcept
Returns the INTEGER SQL type.
friend bool operator<(const SqlType &a, const SqlType &b) noexcept
Smaller operator.
static SqlType oid() noexcept
Returns the OID SQL type.
friend bool operator>=(const SqlType &a, const SqlType &b) noexcept
Greater or equal operator.
static SqlType numeric(uint16_t precision, uint16_t scale) noexcept
Returns the NUMERIC SQL type.
static SqlType doublePrecision() noexcept
Returns the DOUBLE PRECISION SQL type.
static SqlType json() noexcept
Returns the JSON SQL type.
static SqlType interval() noexcept
Returns the INTERVAL SQL type.
static SqlType geography() noexcept
Returns the GEOGRAPHY SQL type.
size_t operator()(const hyperapi::SqlType &type) const noexcept
Calculates the hash value of the given SQL type.
friend bool operator<=(const SqlType &a, const SqlType &b) noexcept
Smaller or equal operator.