ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
Loading...
Searching...
No Matches
having_semantics.cpp File Reference

Helper definitions for HAVING-clause provenance evaluation. More...

#include "postgres.h"
#include "catalog/pg_type.h"
#include "utils/lsyscache.h"
#include "c_cpp_compatibility.h"
#include <climits>
#include <string>
#include <unordered_set>
#include <vector>
#include "having_semantics.hpp"
Include dependency graph for having_semantics.cpp:

Go to the source code of this file.

Namespaces

namespace  provsql_having_detail

Functions

bool provsql_having_detail::aggtype_is_text (unsigned oid)
bool provsql_having_detail::aggtype_is_integer (unsigned oid)
bool provsql_having_detail::aggtype_is_boolean (unsigned oid)
bool provsql_having_detail::aggtype_elem_is_boolean (unsigned oid)
bool provsql_having_detail::aggtype_is_numeric (unsigned oid)
bool provsql_having_detail::parse_array_literal (const std::string &s, std::vector< std::string > &out)
bool provsql_having_detail::parse_decimal_scaled (const std::string &s, long &mantissa, int &scale)
bool provsql_having_detail::rescale_to (long mantissa, int scale, int target_scale, long &out)
ComparisonOperator provsql_having_detail::map_cmp_op (GenericCircuit &c, gate_t cmp_gate, bool &ok)
ComparisonOperator provsql_having_detail::flip_op (ComparisonOperator op)
bool provsql_having_detail::semimod_extract_string_and_K (GenericCircuit &c, gate_t semimod_gate, std::string &m_out, gate_t &k_gate_out)
bool provsql_having_detail::extract_constant_string (GenericCircuit &c, gate_t x, std::string &C_out)
static bool provsql_having_detail::side_has_agg (GenericCircuit &c, gate_t g)
std::vector< gate_tprovsql_having_detail::collect_sp_cmp_gates (GenericCircuit &c, gate_t start)

Detailed Description

Helper definitions for HAVING-clause provenance evaluation.

Defines the small non-template helpers declared in provsql_having_detail in having_semantics.hpp. The actual possible-worlds enumeration logic is the provsql_having() template in the header.

Definition in file having_semantics.cpp.