Skip to content

Instantly share code, notes, and snippets.

@izgzhen
Created March 18, 2019 20:05
Show Gist options
  • Save izgzhen/ace4bdc086f2c1a63ad14b80997ecd52 to your computer and use it in GitHub Desktop.
Save izgzhen/ace4bdc086f2c1a63ad14b80997ecd52 to your computer and use it in GitHub Desktop.
#pragma once
#include <algorithm>
#include <set>
#include <functional>
#include <vector>
#include <unordered_set>
#include <string>
#include <unordered_map>
#include <string>
#include "cozy.hpp"
inline bool ends_with(std::string const &value, std::string const &ending) {
if (ending.size() > value.size()) return false;
return std::equal(ending.rbegin(), ending.rend(), value.rbegin());
}
const int EXAMPLE_DATE_ONE = cozy::parse_time("1997-09-01");
const int EXAMPLE_DATE_TWO = cozy::parse_time("1995-03-15");
const int EXAMPLE_DATE_THREE = cozy::parse_time("1993-07-01");
const int EXAMPLE_DATE_FOUR = cozy::parse_time("1993-10-01");
class TPCH_Store {
public:
struct LINEITEM {
int orderkey;
int partkey;
int suppkey;
int linenumber;
float quantity;
float extendedprice;
float discount;
float tax;
char returnflag;
char linestatus;
uint64_t shipdate;
uint64_t commitdate;
uint64_t receiptdate;
std::string shipinstruct;
std::string shipmode;
std::string comment;
inline LINEITEM() { }
inline LINEITEM(int _orderkey, int _partkey, int _suppkey, int _linenumber, float _quantity, float _extendedprice, float _discount, float _tax, char _returnflag, char _linestatus, uint64_t _shipdate, uint64_t _commitdate, uint64_t _receiptdate, std::string _shipinstruct, std::string _shipmode, std::string _comment) : orderkey(::std::move(_orderkey)), partkey(::std::move(_partkey)), suppkey(::std::move(_suppkey)), linenumber(::std::move(_linenumber)), quantity(::std::move(_quantity)), extendedprice(::std::move(_extendedprice)), discount(::std::move(_discount)), tax(::std::move(_tax)), returnflag(::std::move(_returnflag)), linestatus(::std::move(_linestatus)), shipdate(::std::move(_shipdate)), commitdate(::std::move(_commitdate)), receiptdate(::std::move(_receiptdate)), shipinstruct(::std::move(_shipinstruct)), shipmode(::std::move(_shipmode)), comment(::std::move(_comment)) { }
inline bool operator==(const LINEITEM& other) const {
bool _v51790;
bool _v51791;
bool _v51792;
bool _v51793;
if (((((*this).orderkey) == (other.orderkey)))) {
_v51793 = ((((*this).partkey) == (other.partkey)));
} else {
_v51793 = false;
}
if (_v51793) {
bool _v51794;
if (((((*this).suppkey) == (other.suppkey)))) {
_v51794 = ((((*this).linenumber) == (other.linenumber)));
} else {
_v51794 = false;
}
_v51792 = _v51794;
} else {
_v51792 = false;
}
if (_v51792) {
bool _v51795;
bool _v51796;
if (((((*this).quantity) == (other.quantity)))) {
_v51796 = ((((*this).extendedprice) == (other.extendedprice)));
} else {
_v51796 = false;
}
if (_v51796) {
bool _v51797;
if (((((*this).discount) == (other.discount)))) {
_v51797 = ((((*this).tax) == (other.tax)));
} else {
_v51797 = false;
}
_v51795 = _v51797;
} else {
_v51795 = false;
}
_v51791 = _v51795;
} else {
_v51791 = false;
}
if (_v51791) {
bool _v51798;
bool _v51799;
bool _v51800;
if (((((*this).returnflag) == (other.returnflag)))) {
_v51800 = ((((*this).linestatus) == (other.linestatus)));
} else {
_v51800 = false;
}
if (_v51800) {
bool _v51801;
if (((((*this).shipdate) == (other.shipdate)))) {
_v51801 = ((((*this).commitdate) == (other.commitdate)));
} else {
_v51801 = false;
}
_v51799 = _v51801;
} else {
_v51799 = false;
}
if (_v51799) {
bool _v51802;
bool _v51803;
if (((((*this).receiptdate) == (other.receiptdate)))) {
_v51803 = ((((*this).shipinstruct) == (other.shipinstruct)));
} else {
_v51803 = false;
}
if (_v51803) {
bool _v51804;
if (((((*this).shipmode) == (other.shipmode)))) {
_v51804 = ((((*this).comment) == (other.comment)));
} else {
_v51804 = false;
}
_v51802 = _v51804;
} else {
_v51802 = false;
}
_v51798 = _v51802;
} else {
_v51798 = false;
}
_v51790 = _v51798;
} else {
_v51790 = false;
}
return _v51790;
}
};
struct _HashLINEITEM {
typedef TPCH_Store::LINEITEM argument_type;
typedef std::size_t result_type;
result_type operator()(const argument_type& x) const noexcept {
int _hash_code51805 = 0;
int _hash_code51806 = 0;
_hash_code51806 = (std::hash<int >()((x.orderkey)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<int >()((x.partkey)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<int >()((x.suppkey)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<int >()((x.linenumber)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<float >()((x.quantity)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<float >()((x.extendedprice)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<float >()((x.discount)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<float >()((x.tax)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<char >()((x.returnflag)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<char >()((x.linestatus)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<uint64_t >()((x.shipdate)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<uint64_t >()((x.commitdate)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<uint64_t >()((x.receiptdate)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<std::string >()((x.shipinstruct)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<std::string >()((x.shipmode)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
_hash_code51806 = (std::hash<std::string >()((x.comment)));
_hash_code51805 = ((_hash_code51805 * 31) ^ (_hash_code51806));
return _hash_code51805;
}
};
struct ORDERS {
int orderkey;
int custkey;
char orderstatus;
float totalprice;
uint64_t orderdate;
std::string orderpriority;
std::string clerk;
int shippriority;
std::string comment;
inline ORDERS() { }
inline ORDERS(int _orderkey, int _custkey, char _orderstatus, float _totalprice, uint64_t _orderdate, std::string _orderpriority, std::string _clerk, int _shippriority, std::string _comment) : orderkey(::std::move(_orderkey)), custkey(::std::move(_custkey)), orderstatus(::std::move(_orderstatus)), totalprice(::std::move(_totalprice)), orderdate(::std::move(_orderdate)), orderpriority(::std::move(_orderpriority)), clerk(::std::move(_clerk)), shippriority(::std::move(_shippriority)), comment(::std::move(_comment)) { }
inline bool operator==(const ORDERS& other) const {
bool _v51807;
bool _v51808;
bool _v51809;
if (((((*this).orderkey) == (other.orderkey)))) {
_v51809 = ((((*this).custkey) == (other.custkey)));
} else {
_v51809 = false;
}
if (_v51809) {
bool _v51810;
if (((((*this).orderstatus) == (other.orderstatus)))) {
_v51810 = ((((*this).totalprice) == (other.totalprice)));
} else {
_v51810 = false;
}
_v51808 = _v51810;
} else {
_v51808 = false;
}
if (_v51808) {
bool _v51811;
bool _v51812;
if (((((*this).orderdate) == (other.orderdate)))) {
_v51812 = ((((*this).orderpriority) == (other.orderpriority)));
} else {
_v51812 = false;
}
if (_v51812) {
bool _v51813;
if (((((*this).clerk) == (other.clerk)))) {
bool _v51814;
if (((((*this).shippriority) == (other.shippriority)))) {
_v51814 = ((((*this).comment) == (other.comment)));
} else {
_v51814 = false;
}
_v51813 = _v51814;
} else {
_v51813 = false;
}
_v51811 = _v51813;
} else {
_v51811 = false;
}
_v51807 = _v51811;
} else {
_v51807 = false;
}
return _v51807;
}
};
struct _HashORDERS {
typedef TPCH_Store::ORDERS argument_type;
typedef std::size_t result_type;
result_type operator()(const argument_type& x) const noexcept {
int _hash_code51815 = 0;
int _hash_code51816 = 0;
_hash_code51816 = (std::hash<int >()((x.orderkey)));
_hash_code51815 = ((_hash_code51815 * 31) ^ (_hash_code51816));
_hash_code51816 = (std::hash<int >()((x.custkey)));
_hash_code51815 = ((_hash_code51815 * 31) ^ (_hash_code51816));
_hash_code51816 = (std::hash<char >()((x.orderstatus)));
_hash_code51815 = ((_hash_code51815 * 31) ^ (_hash_code51816));
_hash_code51816 = (std::hash<float >()((x.totalprice)));
_hash_code51815 = ((_hash_code51815 * 31) ^ (_hash_code51816));
_hash_code51816 = (std::hash<uint64_t >()((x.orderdate)));
_hash_code51815 = ((_hash_code51815 * 31) ^ (_hash_code51816));
_hash_code51816 = (std::hash<std::string >()((x.orderpriority)));
_hash_code51815 = ((_hash_code51815 * 31) ^ (_hash_code51816));
_hash_code51816 = (std::hash<std::string >()((x.clerk)));
_hash_code51815 = ((_hash_code51815 * 31) ^ (_hash_code51816));
_hash_code51816 = (std::hash<int >()((x.shippriority)));
_hash_code51815 = ((_hash_code51815 * 31) ^ (_hash_code51816));
_hash_code51816 = (std::hash<std::string >()((x.comment)));
_hash_code51815 = ((_hash_code51815 * 31) ^ (_hash_code51816));
return _hash_code51815;
}
};
struct PART {
int partkey;
std::string name;
std::string mfgr;
std::string brand;
std::string part_type;
int size;
std::string container;
float retailprice;
std::string comment;
inline PART() { }
inline PART(int _partkey, std::string _name, std::string _mfgr, std::string _brand, std::string _part_type, int _size, std::string _container, float _retailprice, std::string _comment) : partkey(::std::move(_partkey)), name(::std::move(_name)), mfgr(::std::move(_mfgr)), brand(::std::move(_brand)), part_type(::std::move(_part_type)), size(::std::move(_size)), container(::std::move(_container)), retailprice(::std::move(_retailprice)), comment(::std::move(_comment)) { }
inline bool operator==(const PART& other) const {
bool _v51817;
bool _v51818;
bool _v51819;
if (((((*this).partkey) == (other.partkey)))) {
_v51819 = ((((*this).name) == (other.name)));
} else {
_v51819 = false;
}
if (_v51819) {
bool _v51820;
if (((((*this).mfgr) == (other.mfgr)))) {
_v51820 = ((((*this).brand) == (other.brand)));
} else {
_v51820 = false;
}
_v51818 = _v51820;
} else {
_v51818 = false;
}
if (_v51818) {
bool _v51821;
bool _v51822;
if (((((*this).part_type) == (other.part_type)))) {
_v51822 = ((((*this).size) == (other.size)));
} else {
_v51822 = false;
}
if (_v51822) {
bool _v51823;
if (((((*this).container) == (other.container)))) {
bool _v51824;
if (((((*this).retailprice) == (other.retailprice)))) {
_v51824 = ((((*this).comment) == (other.comment)));
} else {
_v51824 = false;
}
_v51823 = _v51824;
} else {
_v51823 = false;
}
_v51821 = _v51823;
} else {
_v51821 = false;
}
_v51817 = _v51821;
} else {
_v51817 = false;
}
return _v51817;
}
};
struct _HashPART {
typedef TPCH_Store::PART argument_type;
typedef std::size_t result_type;
result_type operator()(const argument_type& x) const noexcept {
int _hash_code51825 = 0;
int _hash_code51826 = 0;
_hash_code51826 = (std::hash<int >()((x.partkey)));
_hash_code51825 = ((_hash_code51825 * 31) ^ (_hash_code51826));
_hash_code51826 = (std::hash<std::string >()((x.name)));
_hash_code51825 = ((_hash_code51825 * 31) ^ (_hash_code51826));
_hash_code51826 = (std::hash<std::string >()((x.mfgr)));
_hash_code51825 = ((_hash_code51825 * 31) ^ (_hash_code51826));
_hash_code51826 = (std::hash<std::string >()((x.brand)));
_hash_code51825 = ((_hash_code51825 * 31) ^ (_hash_code51826));
_hash_code51826 = (std::hash<std::string >()((x.part_type)));
_hash_code51825 = ((_hash_code51825 * 31) ^ (_hash_code51826));
_hash_code51826 = (std::hash<int >()((x.size)));
_hash_code51825 = ((_hash_code51825 * 31) ^ (_hash_code51826));
_hash_code51826 = (std::hash<std::string >()((x.container)));
_hash_code51825 = ((_hash_code51825 * 31) ^ (_hash_code51826));
_hash_code51826 = (std::hash<float >()((x.retailprice)));
_hash_code51825 = ((_hash_code51825 * 31) ^ (_hash_code51826));
_hash_code51826 = (std::hash<std::string >()((x.comment)));
_hash_code51825 = ((_hash_code51825 * 31) ^ (_hash_code51826));
return _hash_code51825;
}
};
struct CUSTOMER {
int custkey;
std::string name;
std::string address;
int nationkey;
std::string phone;
float acctbal;
std::string mktsegment;
std::string comment;
inline CUSTOMER() { }
inline CUSTOMER(int _custkey, std::string _name, std::string _address, int _nationkey, std::string _phone, float _acctbal, std::string _mktsegment, std::string _comment) : custkey(::std::move(_custkey)), name(::std::move(_name)), address(::std::move(_address)), nationkey(::std::move(_nationkey)), phone(::std::move(_phone)), acctbal(::std::move(_acctbal)), mktsegment(::std::move(_mktsegment)), comment(::std::move(_comment)) { }
inline bool operator==(const CUSTOMER& other) const {
bool _v51827;
bool _v51828;
bool _v51829;
if (((((*this).custkey) == (other.custkey)))) {
_v51829 = ((((*this).name) == (other.name)));
} else {
_v51829 = false;
}
if (_v51829) {
bool _v51830;
if (((((*this).address) == (other.address)))) {
_v51830 = ((((*this).nationkey) == (other.nationkey)));
} else {
_v51830 = false;
}
_v51828 = _v51830;
} else {
_v51828 = false;
}
if (_v51828) {
bool _v51831;
bool _v51832;
if (((((*this).phone) == (other.phone)))) {
_v51832 = ((((*this).acctbal) == (other.acctbal)));
} else {
_v51832 = false;
}
if (_v51832) {
bool _v51833;
if (((((*this).mktsegment) == (other.mktsegment)))) {
_v51833 = ((((*this).comment) == (other.comment)));
} else {
_v51833 = false;
}
_v51831 = _v51833;
} else {
_v51831 = false;
}
_v51827 = _v51831;
} else {
_v51827 = false;
}
return _v51827;
}
};
struct _HashCUSTOMER {
typedef TPCH_Store::CUSTOMER argument_type;
typedef std::size_t result_type;
result_type operator()(const argument_type& x) const noexcept {
int _hash_code51834 = 0;
int _hash_code51835 = 0;
_hash_code51835 = (std::hash<int >()((x.custkey)));
_hash_code51834 = ((_hash_code51834 * 31) ^ (_hash_code51835));
_hash_code51835 = (std::hash<std::string >()((x.name)));
_hash_code51834 = ((_hash_code51834 * 31) ^ (_hash_code51835));
_hash_code51835 = (std::hash<std::string >()((x.address)));
_hash_code51834 = ((_hash_code51834 * 31) ^ (_hash_code51835));
_hash_code51835 = (std::hash<int >()((x.nationkey)));
_hash_code51834 = ((_hash_code51834 * 31) ^ (_hash_code51835));
_hash_code51835 = (std::hash<std::string >()((x.phone)));
_hash_code51834 = ((_hash_code51834 * 31) ^ (_hash_code51835));
_hash_code51835 = (std::hash<float >()((x.acctbal)));
_hash_code51834 = ((_hash_code51834 * 31) ^ (_hash_code51835));
_hash_code51835 = (std::hash<std::string >()((x.mktsegment)));
_hash_code51834 = ((_hash_code51834 * 31) ^ (_hash_code51835));
_hash_code51835 = (std::hash<std::string >()((x.comment)));
_hash_code51834 = ((_hash_code51834 * 31) ^ (_hash_code51835));
return _hash_code51834;
}
};
struct SUPPLIER {
int suppkey;
std::string name;
std::string address;
int nationkey;
std::string phone;
float acctbal;
std::string comment;
inline SUPPLIER() { }
inline SUPPLIER(int _suppkey, std::string _name, std::string _address, int _nationkey, std::string _phone, float _acctbal, std::string _comment) : suppkey(::std::move(_suppkey)), name(::std::move(_name)), address(::std::move(_address)), nationkey(::std::move(_nationkey)), phone(::std::move(_phone)), acctbal(::std::move(_acctbal)), comment(::std::move(_comment)) { }
inline bool operator==(const SUPPLIER& other) const {
bool _v51836;
bool _v51837;
if (((((*this).suppkey) == (other.suppkey)))) {
bool _v51838;
if (((((*this).name) == (other.name)))) {
_v51838 = ((((*this).address) == (other.address)));
} else {
_v51838 = false;
}
_v51837 = _v51838;
} else {
_v51837 = false;
}
if (_v51837) {
bool _v51839;
bool _v51840;
if (((((*this).nationkey) == (other.nationkey)))) {
_v51840 = ((((*this).phone) == (other.phone)));
} else {
_v51840 = false;
}
if (_v51840) {
bool _v51841;
if (((((*this).acctbal) == (other.acctbal)))) {
_v51841 = ((((*this).comment) == (other.comment)));
} else {
_v51841 = false;
}
_v51839 = _v51841;
} else {
_v51839 = false;
}
_v51836 = _v51839;
} else {
_v51836 = false;
}
return _v51836;
}
};
struct _HashSUPPLIER {
typedef TPCH_Store::SUPPLIER argument_type;
typedef std::size_t result_type;
result_type operator()(const argument_type& x) const noexcept {
int _hash_code51842 = 0;
int _hash_code51843 = 0;
_hash_code51843 = (std::hash<int >()((x.suppkey)));
_hash_code51842 = ((_hash_code51842 * 31) ^ (_hash_code51843));
_hash_code51843 = (std::hash<std::string >()((x.name)));
_hash_code51842 = ((_hash_code51842 * 31) ^ (_hash_code51843));
_hash_code51843 = (std::hash<std::string >()((x.address)));
_hash_code51842 = ((_hash_code51842 * 31) ^ (_hash_code51843));
_hash_code51843 = (std::hash<int >()((x.nationkey)));
_hash_code51842 = ((_hash_code51842 * 31) ^ (_hash_code51843));
_hash_code51843 = (std::hash<std::string >()((x.phone)));
_hash_code51842 = ((_hash_code51842 * 31) ^ (_hash_code51843));
_hash_code51843 = (std::hash<float >()((x.acctbal)));
_hash_code51842 = ((_hash_code51842 * 31) ^ (_hash_code51843));
_hash_code51843 = (std::hash<std::string >()((x.comment)));
_hash_code51842 = ((_hash_code51842 * 31) ^ (_hash_code51843));
return _hash_code51842;
}
};
struct PARTSUPP {
int partkey;
int suppkey;
int availqty;
float supplycost;
std::string comment;
inline PARTSUPP() { }
inline PARTSUPP(int _partkey, int _suppkey, int _availqty, float _supplycost, std::string _comment) : partkey(::std::move(_partkey)), suppkey(::std::move(_suppkey)), availqty(::std::move(_availqty)), supplycost(::std::move(_supplycost)), comment(::std::move(_comment)) { }
inline bool operator==(const PARTSUPP& other) const {
bool _v51844;
bool _v51845;
if (((((*this).partkey) == (other.partkey)))) {
_v51845 = ((((*this).suppkey) == (other.suppkey)));
} else {
_v51845 = false;
}
if (_v51845) {
bool _v51846;
if (((((*this).availqty) == (other.availqty)))) {
bool _v51847;
if (((((*this).supplycost) == (other.supplycost)))) {
_v51847 = ((((*this).comment) == (other.comment)));
} else {
_v51847 = false;
}
_v51846 = _v51847;
} else {
_v51846 = false;
}
_v51844 = _v51846;
} else {
_v51844 = false;
}
return _v51844;
}
};
struct _HashPARTSUPP {
typedef TPCH_Store::PARTSUPP argument_type;
typedef std::size_t result_type;
result_type operator()(const argument_type& x) const noexcept {
int _hash_code51848 = 0;
int _hash_code51849 = 0;
_hash_code51849 = (std::hash<int >()((x.partkey)));
_hash_code51848 = ((_hash_code51848 * 31) ^ (_hash_code51849));
_hash_code51849 = (std::hash<int >()((x.suppkey)));
_hash_code51848 = ((_hash_code51848 * 31) ^ (_hash_code51849));
_hash_code51849 = (std::hash<int >()((x.availqty)));
_hash_code51848 = ((_hash_code51848 * 31) ^ (_hash_code51849));
_hash_code51849 = (std::hash<float >()((x.supplycost)));
_hash_code51848 = ((_hash_code51848 * 31) ^ (_hash_code51849));
_hash_code51849 = (std::hash<std::string >()((x.comment)));
_hash_code51848 = ((_hash_code51848 * 31) ^ (_hash_code51849));
return _hash_code51848;
}
};
struct NATION {
int nationkey;
std::string name;
int regionkey;
std::string comment;
inline NATION() { }
inline NATION(int _nationkey, std::string _name, int _regionkey, std::string _comment) : nationkey(::std::move(_nationkey)), name(::std::move(_name)), regionkey(::std::move(_regionkey)), comment(::std::move(_comment)) { }
inline bool operator==(const NATION& other) const {
bool _v51850;
bool _v51851;
if (((((*this).nationkey) == (other.nationkey)))) {
_v51851 = ((((*this).name) == (other.name)));
} else {
_v51851 = false;
}
if (_v51851) {
bool _v51852;
if (((((*this).regionkey) == (other.regionkey)))) {
_v51852 = ((((*this).comment) == (other.comment)));
} else {
_v51852 = false;
}
_v51850 = _v51852;
} else {
_v51850 = false;
}
return _v51850;
}
};
struct _HashNATION {
typedef TPCH_Store::NATION argument_type;
typedef std::size_t result_type;
result_type operator()(const argument_type& x) const noexcept {
int _hash_code51853 = 0;
int _hash_code51854 = 0;
_hash_code51854 = (std::hash<int >()((x.nationkey)));
_hash_code51853 = ((_hash_code51853 * 31) ^ (_hash_code51854));
_hash_code51854 = (std::hash<std::string >()((x.name)));
_hash_code51853 = ((_hash_code51853 * 31) ^ (_hash_code51854));
_hash_code51854 = (std::hash<int >()((x.regionkey)));
_hash_code51853 = ((_hash_code51853 * 31) ^ (_hash_code51854));
_hash_code51854 = (std::hash<std::string >()((x.comment)));
_hash_code51853 = ((_hash_code51853 * 31) ^ (_hash_code51854));
return _hash_code51853;
}
};
struct REGION {
int regionkey;
std::string name;
std::string comment;
inline REGION() { }
inline REGION(int _regionkey, std::string _name, std::string _comment) : regionkey(::std::move(_regionkey)), name(::std::move(_name)), comment(::std::move(_comment)) { }
inline bool operator==(const REGION& other) const {
bool _v51855;
if (((((*this).regionkey) == (other.regionkey)))) {
bool _v51856;
if (((((*this).name) == (other.name)))) {
_v51856 = ((((*this).comment) == (other.comment)));
} else {
_v51856 = false;
}
_v51855 = _v51856;
} else {
_v51855 = false;
}
return _v51855;
}
};
struct _HashREGION {
typedef TPCH_Store::REGION argument_type;
typedef std::size_t result_type;
result_type operator()(const argument_type& x) const noexcept {
int _hash_code51857 = 0;
int _hash_code51858 = 0;
_hash_code51858 = (std::hash<int >()((x.regionkey)));
_hash_code51857 = ((_hash_code51857 * 31) ^ (_hash_code51858));
_hash_code51858 = (std::hash<std::string >()((x.name)));
_hash_code51857 = ((_hash_code51857 * 31) ^ (_hash_code51858));
_hash_code51858 = (std::hash<std::string >()((x.comment)));
_hash_code51857 = ((_hash_code51857 * 31) ^ (_hash_code51858));
return _hash_code51857;
}
};
struct _Type51788 {
char _0;
char _1;
inline _Type51788() { }
inline _Type51788(char __0, char __1) : _0(::std::move(__0)), _1(::std::move(__1)) { }
inline bool operator==(const _Type51788& other) const {
bool _v51859;
if (((((*this)._0) == (other._0)))) {
_v51859 = ((((*this)._1) == (other._1)));
} else {
_v51859 = false;
}
return _v51859;
}
};
struct _Hash_Type51788 {
typedef TPCH_Store::_Type51788 argument_type;
typedef std::size_t result_type;
result_type operator()(const argument_type& x) const noexcept {
int _hash_code51860 = 0;
int _hash_code51861 = 0;
_hash_code51861 = (std::hash<char >()((x._0)));
_hash_code51860 = ((_hash_code51860 * 31) ^ (_hash_code51861));
_hash_code51861 = (std::hash<char >()((x._1)));
_hash_code51860 = ((_hash_code51860 * 31) ^ (_hash_code51861));
return _hash_code51860;
}
};
struct _Type51789 {
char returnflag;
char linestatus;
float sum_qty;
float sum_base_price;
float sum_disc_price;
float sum_charge;
float avg_qty;
float avg_price;
float avg_disc;
int count_order;
inline _Type51789() { }
inline _Type51789(char _returnflag, char _linestatus, float _sum_qty, float _sum_base_price, float _sum_disc_price, float _sum_charge, float _avg_qty, float _avg_price, float _avg_disc, int _count_order) : returnflag(::std::move(_returnflag)), linestatus(::std::move(_linestatus)), sum_qty(::std::move(_sum_qty)), sum_base_price(::std::move(_sum_base_price)), sum_disc_price(::std::move(_sum_disc_price)), sum_charge(::std::move(_sum_charge)), avg_qty(::std::move(_avg_qty)), avg_price(::std::move(_avg_price)), avg_disc(::std::move(_avg_disc)), count_order(::std::move(_count_order)) { }
inline bool operator==(const _Type51789& other) const {
bool _v51862;
bool _v51863;
bool _v51864;
if (((((*this).returnflag) == (other.returnflag)))) {
_v51864 = ((((*this).linestatus) == (other.linestatus)));
} else {
_v51864 = false;
}
if (_v51864) {
bool _v51865;
if (((((*this).sum_qty) == (other.sum_qty)))) {
bool _v51866;
if (((((*this).sum_base_price) == (other.sum_base_price)))) {
_v51866 = ((((*this).sum_disc_price) == (other.sum_disc_price)));
} else {
_v51866 = false;
}
_v51865 = _v51866;
} else {
_v51865 = false;
}
_v51863 = _v51865;
} else {
_v51863 = false;
}
if (_v51863) {
bool _v51867;
bool _v51868;
if (((((*this).sum_charge) == (other.sum_charge)))) {
_v51868 = ((((*this).avg_qty) == (other.avg_qty)));
} else {
_v51868 = false;
}
if (_v51868) {
bool _v51869;
if (((((*this).avg_price) == (other.avg_price)))) {
bool _v51870;
if (((((*this).avg_disc) == (other.avg_disc)))) {
_v51870 = ((((*this).count_order) == (other.count_order)));
} else {
_v51870 = false;
}
_v51869 = _v51870;
} else {
_v51869 = false;
}
_v51867 = _v51869;
} else {
_v51867 = false;
}
_v51862 = _v51867;
} else {
_v51862 = false;
}
return _v51862;
}
};
struct _Hash_Type51789 {
typedef TPCH_Store::_Type51789 argument_type;
typedef std::size_t result_type;
result_type operator()(const argument_type& x) const noexcept {
int _hash_code51871 = 0;
int _hash_code51872 = 0;
_hash_code51872 = (std::hash<char >()((x.returnflag)));
_hash_code51871 = ((_hash_code51871 * 31) ^ (_hash_code51872));
_hash_code51872 = (std::hash<char >()((x.linestatus)));
_hash_code51871 = ((_hash_code51871 * 31) ^ (_hash_code51872));
_hash_code51872 = (std::hash<float >()((x.sum_qty)));
_hash_code51871 = ((_hash_code51871 * 31) ^ (_hash_code51872));
_hash_code51872 = (std::hash<float >()((x.sum_base_price)));
_hash_code51871 = ((_hash_code51871 * 31) ^ (_hash_code51872));
_hash_code51872 = (std::hash<float >()((x.sum_disc_price)));
_hash_code51871 = ((_hash_code51871 * 31) ^ (_hash_code51872));
_hash_code51872 = (std::hash<float >()((x.sum_charge)));
_hash_code51871 = ((_hash_code51871 * 31) ^ (_hash_code51872));
_hash_code51872 = (std::hash<float >()((x.avg_qty)));
_hash_code51871 = ((_hash_code51871 * 31) ^ (_hash_code51872));
_hash_code51872 = (std::hash<float >()((x.avg_price)));
_hash_code51871 = ((_hash_code51871 * 31) ^ (_hash_code51872));
_hash_code51872 = (std::hash<float >()((x.avg_disc)));
_hash_code51871 = ((_hash_code51871 * 31) ^ (_hash_code51872));
_hash_code51872 = (std::hash<int >()((x.count_order)));
_hash_code51871 = ((_hash_code51871 * 31) ^ (_hash_code51872));
return _hash_code51871;
}
};
protected:
std::vector< LINEITEM > _var5824;
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _var27713;
public:
inline TPCH_Store() {
_var5824 = (std::vector< LINEITEM > ());
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map51873 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
_var27713 = std::move(_map51873);
}
explicit inline TPCH_Store(std::vector< LINEITEM > lineitem, std::vector< ORDERS > orders, std::vector< PART > part, std::vector< CUSTOMER > customer, std::vector< SUPPLIER > supplier, std::vector< PARTSUPP > partsupp, std::vector< NATION > nation, std::vector< REGION > region) {
_var5824 = lineitem;
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map51879 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l51881 : lineitem) {
{
int _var25778 = (_l51881.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator51885 = _map51879.find(_var25778);
if ((_map_iterator51885 == _map51879.end())) {
_map_iterator51885 = (_map51879.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v51880 = _map_iterator51885->second;
std::vector< LINEITEM > _var51882 = (std::vector< LINEITEM > ());
for (LINEITEM _l51884 : lineitem) {
if ((((_l51884.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var51882.push_back(_l51884);
}
}
}
_v51880 = std::move(_var51882);
}
}
_var27713 = std::move(_map51879);
}
TPCH_Store(const TPCH_Store& other) = delete;
template <class F>
inline void issueQuery(const F& _callback) {
std::unordered_set< _Type51788 , _Hash_Type51788 > _distinct_elems51926 = (std::unordered_set< _Type51788 , _Hash_Type51788 > ());
for (LINEITEM _l51928 : _var5824) {
if (((_l51928.shipdate) <= (EXAMPLE_DATE_ONE))) {
{
{
_Type51788 _tuple51887 = (_Type51788((_l51928.returnflag), (_l51928.linestatus)));
if ((!((_distinct_elems51926.find(_tuple51887) != _distinct_elems51926.end())))) {
std::vector< LINEITEM > _var51888 = (std::vector< LINEITEM > ());
for (LINEITEM _l51891 : _var5824) {
bool _v51929;
if ((((_l51891.linestatus) == (_tuple51887._1)))) {
_v51929 = (((_l51891.returnflag) == (_tuple51887._0)));
} else {
_v51929 = false;
}
if (_v51929) {
{
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var51888.push_back(_l51891);
}
}
}
}
std::vector< LINEITEM > _items51892 = std::move(_var51888);
float _sum51893 = 0.0f;
for (LINEITEM _l51895 : _items51892) {
{
_sum51893 = (_sum51893 + (_l51895.quantity));
}
}
float _sum51896 = 0.0f;
for (LINEITEM _l51898 : _items51892) {
{
_sum51896 = (_sum51896 + (_l51898.extendedprice));
}
}
float _sum51899 = 0.0f;
for (LINEITEM _l51901 : _items51892) {
{
_sum51899 = (_sum51899 + (((_l51901.extendedprice)) * ((1.0f - (_l51901.discount)))));
}
}
float _sum51902 = 0.0f;
for (LINEITEM _l51904 : _items51892) {
{
_sum51902 = (_sum51902 + (((((_l51904.extendedprice)) * ((1.0f - (_l51904.discount))))) * ((1.0f + (_l51904.tax)))));
}
}
float _sum51905 = 0.0f;
for (LINEITEM _l51907 : _items51892) {
{
_sum51905 = (_sum51905 + (_l51907.quantity));
}
}
int _sum51908 = 0;
for (LINEITEM _x51910 : _items51892) {
{
_sum51908 = (_sum51908 + 1);
}
}
float _sum51911 = 0.0f;
for (LINEITEM _l51913 : _items51892) {
{
_sum51911 = (_sum51911 + (_l51913.extendedprice));
}
}
int _sum51914 = 0;
for (LINEITEM _x51916 : _items51892) {
{
_sum51914 = (_sum51914 + 1);
}
}
float _sum51917 = 0.0f;
for (LINEITEM _l51919 : _items51892) {
{
_sum51917 = (_sum51917 + (_l51919.discount));
}
}
int _sum51920 = 0;
for (LINEITEM _x51922 : _items51892) {
{
_sum51920 = (_sum51920 + 1);
}
}
int _sum51923 = 0;
for (LINEITEM _x51925 : _items51892) {
{
_sum51923 = (_sum51923 + 1);
}
}
{
_callback((_Type51789 ((_tuple51887._0), (_tuple51887._1), _sum51893, _sum51896, _sum51899, _sum51902, ((_sum51905) / (((float)(_sum51908)))), ((_sum51911) / (((float)(_sum51914)))), ((_sum51917) / (((float)(_sum51920)))), _sum51923)));
}
_distinct_elems51926.insert(_tuple51887);
}
}
}
}
}
}
inline void addLineitem (int orderkey, int partkey, int suppkey, int linenumber, float quantity, float extendedprice, float discount, float tax, char returnflag, char linestatus, uint64_t shipdate, uint64_t commitdate, uint64_t receiptdate, std::string shipinstruct, std::string shipmode, std::string comment) {
std::vector< int > _var51930 = (std::vector< int > ());
std::unordered_map< int , int , std::hash<int > > _histogram51932 = (std::unordered_map< int , int , std::hash<int > > ());
std::vector< LINEITEM > _var51936 = (std::vector< LINEITEM > ());
// for (LIN
EITEM _var51937 : _var5824) {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
// _var51936.push_back(_var51937);
// }
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py join 157
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py shallow_copy 172
//
_var51936.push_back((LINEITEM (orderkey, partkey, suppkey, linenumber, quantity, extendedprice, discount, tax, returnflag, linestatus, shipdate, commitdate, receiptdate, shipinstruct, shipmode, comment)));
}
std::vector< LINEITEM > _var5824 = std::move(_var51936);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map51939 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l51941 : _var5824) {
{
int _var25778 = (_l51941.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52051 = _map51939.find(_var25778);
if ((_map_iterator52051 == _map51939.end())) {
_map_iterator52051 = (_map51939.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v51940 = _map_iterator52051->second;
std::vector< LINEITEM > _var51942 = (std::vector< LINEITEM > ());
for (LINEITEM _l51944 : _var5824) {
if ((((_l51944.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var51942.push_back(_l51944);
}
}
}
_v51940 = std::move(_var51942);
}
}
for (const auto & _var52052 : std::move(_map51939)) {
int _x51933 = (_var52052.first);
std::unordered_map< int , int , std::hash<int > >::iterator _map_iterator52053 = _histogram51932.find(_x51933);
if ((_map_iterator52053 == _histogram51932.end())) {
_map_iterator52053 = (_histogram51932.emplace(_x51933, 0).first);
}
int &_count51934 = _map_iterator52053->second;
_count51934 = (_count51934 + 1);
}
for (const auto & _var52054 : _var27713) {
int _var51931 = (_var52054.first);
std::unordered_map< int , int , std::hash<int > >::const_iterator _map_iterator52055 = (_histogram51932.find(_var51931));
int _v52056;
if ((_map_iterator52055 == _histogram51932.end())) {
_v52056 = 0;
} else {
_v52056 = (_map_iterator52055->second);
}
if ((_v52056 > 0)) {
std::unordered_map< int , int , std::hash<int > >::iterator _map_iterator52057 = _histogram51932.find(_var51931);
if ((_map_iterator52057 == _histogram51932.end())) {
_map_iterator52057 = (_histogram51932.emplace(_var51931, 0).first);
}
int &_count51935 = _map_iterator52057->second;
_count51935 = (_count51935 - 1);
} else {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var51930.push_back(_var51931);
}
}
std::vector< int > _var51775 = std::move(_var51930);
std::vector< int > _var51945 = (std::vector< int > ());
std::vector< LINEITEM > _var51974 = (std::vector< LINEITEM > ());
for (LINEITEM _var51975 : _var5824) {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var51974.push_back(_var51975);
}
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py join 157
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py shallow_copy 172
//
_var51974.push_back((LINEITEM (orderkey, partkey, suppkey, linenumber, quantity, extendedprice, discount, tax, returnflag, linestatus, shipdate, commitdate, receiptdate, shipinstruct, shipmode, comment)));
}
std::vector< LINEITEM > __var3833551976 = std::move(_var51974);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map51977 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l51979 : __var3833551976) {
{
int _var25778 = (_l51979.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52058 = _map51977.find(_var25778);
if ((_map_iterator52058 == _map51977.end())) {
_map_iterator52058 = (_map51977.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v51978 = _map_iterator52058->second;
std::vector< LINEITEM > _var51980 = (std::vector< LINEITEM > ());
for (LINEITEM _l51982 : __var3833551976) {
if ((((_l51982.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var51980.push_back(_l51982);
}
}
}
_v51978 = std::move(_var51980);
}
}
for (const auto & _var52059 : std::move(_map51977)) {
int __var3155751947 = (_var52059.first);
bool _conditional_result51948 = false;
bool _found51949 = false;
{
for (LINEITEM _l51952 : _var5824) {
{
if ((((_l51952.orderkey) == __var3155751947))) {
_found51949 = true;
goto _label52060;
}
}
}
}
_label52060:
if (_found51949) {
std::vector< LINEITEM > _var51953 = (std::vector< LINEITEM > ());
for (LINEITEM _l51955 : _var5824) {
if ((((_l51955.orderkey) == __var3155751947))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var51953.push_back(_l51955);
}
}
}
std::vector< LINEITEM > _var51956 = (std::vector< LINEITEM > ());
for (LINEITEM _var51957 : _var5824) {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var51956.push_back(_var51957);
}
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py visit_ADT 1185
// /home/zgzhen/projects/cozy/cozy/common.py visit 281
//
_var51956.push_back((LINEITEM (orderkey, partkey, suppkey, linenumber, quantity, extendedprice, discount, tax, returnflag, linestatus, shipdate, commitdate, receiptdate, shipinstruct, shipmode, comment)));
}
std::vector< LINEITEM > __var3833951958 = std::move(_var51956);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map51959 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l51961 : __var3833951958) {
{
int _var25778 = (_l51961.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52061 = _map51959.find(_var25778);
if ((_map_iterator52061 == _map51959.end())) {
_map_iterator52061 = (_map51959.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v51960 = _map_iterator52061->second;
std::vector< LINEITEM > _var51962 = (std::vector< LINEITEM > ());
for (LINEITEM _l51964 : __var3833951958) {
if ((((_l51964.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var51962.push_back(_l51964);
}
}
}
_v51960 = std::move(_var51962);
}
}
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::const_iterator _map_iterator52062 = (std::move(_map51959).find(__var3155751947));
std::vector< LINEITEM > _v52063;
if ((_map_iterator52062 == std::move(_map51959).end())) {
_v52063 = (std::vector< LINEITEM > ());
} else {
_v52063 = (_map_iterator52062->second);
}
_conditional_result51948 = ((std::move(_var51953) == _v52063));
} else {
std::vector< LINEITEM > _var51965 = (std::vector< LINEITEM > ());
for (LINEITEM _var51966 : _var5824) {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var51965.push_back(_var51966);
}
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py visit_ADT 1185
// /home/zgzhen/projects/cozy/cozy/common.py visit 281
//
_var51965.push_back((LINEITEM (orderkey, partkey, suppkey, linenumber, quantity, extendedprice, discount, tax, returnflag, linestatus, shipdate, commitdate, receiptdate, shipinstruct, shipmode, comment)));
}
std::vector< LINEITEM > __var3833951967 = std::move(_var51965);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map51968 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l51970 : __var3833951967) {
{
int _var25778 = (_l51970.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52064 = _map51968.find(_var25778);
if ((_map_iterator52064 == _map51968.end())) {
_map_iterator52064 = (_map51968.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v51969 = _map_iterator52064->second;
std::vector< LINEITEM > _var51971 = (std::vector< LINEITEM > ());
for (LINEITEM _l51973 : __var3833951967) {
if ((((_l51973.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var51971.push_back(_l51973);
}
}
}
_v51969 = std::move(_var51971);
}
}
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::const_iterator _map_iterator52065 = (std::move(_map51968).find(__var3155751947));
std::vector< LINEITEM > _v52066;
if ((_map_iterator52065 == std::move(_map51968).end())) {
_v52066 = (std::vector< LINEITEM > ());
} else {
_v52066 = (_map_iterator52065->second);
}
_conditional_result51948 = (((std::vector< LINEITEM > ()) == _v52066));
}
bool _v52067;
if ((!(_var27713.find(__var3155751947) != _var27713.end()))) {
_v52067 = true;
} else {
_v52067 = (!(_conditional_result51948));
}
if (_v52067) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var51945.push_back(__var3155751947);
}
}
}
std::vector< int > _var51776 = std::move(_var51945);
std::vector< LINEITEM > _var51983 = (std::vector< LINEITEM > ());
std::unordered_map< LINEITEM , int , _HashLINEITEM > _histogram51985 = (std::unordered_map< LINEITEM , int , _HashLINEITEM > ());
for (LINEITEM _x51986 : _var5824) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52068 = _histogram51985.find(_x51986);
if ((_map_iterator52068 == _histogram51985.end())) {
_map_iterator52068 = (_histogram51985.emplace(_x51986, 0).first);
}
int &_count51987 = _map_iterator52068->second;
_count51987 = (_count51987 + 1);
}
for (LINEITEM _var51984 : _var5824) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::const_iterator _map_iterator52069 = (_histogram51985.find(_var51984));
int _v52070;
if ((_map_iterator52069 == _histogram51985.end())) {
_v52070 = 0;
} else {
_v52070 = (_map_iterator52069->second);
}
if ((_v52070 > 0)) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52071 = _histogram51985.find(_var51984);
if ((_map_iterator52071 == _histogram51985.end())) {
_map_iterator52071 = (_histogram51985.emplace(_var51984, 0).first);
}
int &_count51988 = _map_iterator52071->second;
_count51988 = (_count51988 - 1);
} else {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var51983.push_back(_var51984);
}
}
{
LINEITEM _var51984 = (LINEITEM (orderkey, partkey, suppkey, linenumber, quantity, extendedprice, discount, tax, returnflag, linestatus, shipdate, commitdate, receiptdate, shipinstruct, shipmode, comment));
std::unordered_map< LINEITEM , int , _HashLINEITEM >::const_iterator _map_iterator52072 = (_histogram51985.find(_var51984));
int _v52073;
if ((_map_iterator52072 == _histogram51985.end())) {
_v52073 = 0;
} else {
_v52073 = (_map_iterator52072->second);
}
if ((_v52073 > 0)) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52074 = _histogram51985.find(_var51984);
if ((_map_iterator52074 == _histogram51985.end())) {
_map_iterator52074 = (_histogram51985.emplace(_var51984, 0).first);
}
int &_count51988 = _map_iterator52074->second;
_count51988 = (_count51988 - 1);
} else {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var51983.push_back(_var51984);
}
}
std::vector< LINEITEM > _var51777 = std::move(_var51983);
for (LINEITEM _var6282 : _var51777) {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py join 157
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py shallow_copy 172
//
_var5824.push_back(_var6282);
}
for (int _var31557 : _var51775) {
_var27713.erase(_var31557);
}
for (int _var31557 : _var51776) {
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52075 = _var27713.find(_var31557);
if ((_map_iterator52075 == _var27713.end())) {
_map_iterator52075 = (_var27713.emplace(_var31557, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_var31558 = _map_iterator52075->second;
bool _found51989 = false;
{
for (LINEITEM _l51992 : _var5824) {
{
if ((((_l51992.orderkey) == _var31557))) {
_found51989 = true;
goto _label52076;
}
}
}
}
_label52076:
if (_found51989) {
std::unordered_map< LINEITEM , int , _HashLINEITEM > _histogram51993 = (std::unordered_map< LINEITEM , int , _HashLINEITEM > ());
std::vector< LINEITEM > _var51997 = (std::vector< LINEITEM > ());
for (LINEITEM _var51998 : _var5824) {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var51997.push_back(_var51998);
}
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py join 157
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py shallow_copy 172
//
_var51997.push_back((LINEITEM (orderkey, partkey, suppkey, linenumber, quantity, extendedprice, discount, tax, returnflag, linestatus, shipdate, commitdate, receiptdate, shipinstruct, shipmode, comment)));
}
std::vector< LINEITEM > __var3518151999 = std::move(_var51997);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map52000 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l52002 : __var3518151999) {
{
int _var25778 = (_l52002.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52077 = _map52000.find(_var25778);
if ((_map_iterator52077 == _map52000.end())) {
_map_iterator52077 = (_map52000.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v52001 = _map_iterator52077->second;
std::vector< LINEITEM > _var52003 = (std::vector< LINEITEM > ());
for (LINEITEM _l52005 : __var3518151999) {
if ((((_l52005.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var52003.push_back(_l52005);
}
}
}
_v52001 = std::move(_var52003);
}
}
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::const_iterator _map_iterator52078 = (std::move(_map52000).find(_var31557));
std::vector< LINEITEM > _v52079;
if ((_map_iterator52078 == std::move(_map52000).end())) {
_v52079 = (std::vector< LINEITEM > ());
} else {
_v52079 = (_map_iterator52078->second);
}
for (LINEITEM _x51994 : _v52079) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52080 = _histogram51993.find(_x51994);
if ((_map_iterator52080 == _histogram51993.end())) {
_map_iterator52080 = (_histogram51993.emplace(_x51994, 0).first);
}
int &_count51995 = _map_iterator52080->second;
_count51995 = (_count51995 + 1);
}
for (LINEITEM _l52006 : _var5824) {
if ((((_l52006.orderkey) == _var31557))) {
{
std::unordered_map< LINEITEM , int , _HashLINEITEM >::const_iterator _map_iterator52081 = (_histogram51993.find(_l52006));
int _v52082;
if ((_map_iterator52081 == _histogram51993.end())) {
_v52082 = 0;
} else {
_v52082 = (_map_iterator52081->second);
}
if ((_v52082 > 0)) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52083 = _histogram51993.find(_l52006);
if ((_map_iterator52083 == _histogram51993.end())) {
_map_iterator52083 = (_histogram51993.emplace(_l52006, 0).first);
}
int &_count51996 = _map_iterator52083->second;
_count51996 = (_count51996 - 1);
} else {
auto _it52084(::std::find(_var31558.begin(), _var31558.end(), _l52006));
if (_it52084 != _var31558.end()) { _var31558.erase(_it52084); }
}
}
}
}
} else {
std::unordered_map< LINEITEM , int , _HashLINEITEM > _histogram52007 = (std::unordered_map< LINEITEM , int , _HashLINEITEM > ());
std::vector< LINEITEM > _var52011 = (std::vector< LINEITEM > ());
for (LINEITEM _var52012 : _var5824) {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var52011.push_back(_var52012);
}
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py join 157
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py shallow_copy 172
//
_var52011.push_back((LINEITEM (orderkey, partkey, suppkey, linenumber, quantity, extendedprice, discount, tax, returnflag, linestatus, shipdate, commitdate, receiptdate, shipinstruct, shipmode, comment)));
}
std::vector< LINEITEM > __var3518152013 = std::move(_var52011);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map52014 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l52016 : __var3518152013) {
{
int _var25778 = (_l52016.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52085 = _map52014.find(_var25778);
if ((_map_iterator52085 == _map52014.end())) {
_map_iterator52085 = (_map52014.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v52015 = _map_iterator52085->second;
std::vector< LINEITEM > _var52017 = (std::vector< LINEITEM > ());
for (LINEITEM _l52019 : __var3518152013) {
if ((((_l52019.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var52017.push_back(_l52019);
}
}
}
_v52015 = std::move(_var52017);
}
}
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::const_iterator _map_iterator52086 = (std::move(_map52014).find(_var31557));
std::vector< LINEITEM > _v52087;
if ((_map_iterator52086 == std::move(_map52014).end())) {
_v52087 = (std::vector< LINEITEM > ());
} else {
_v52087 = (_map_iterator52086->second);
}
for (LINEITEM _x52008 : _v52087) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52088 = _histogram52007.find(_x52008);
if ((_map_iterator52088 == _histogram52007.end())) {
_map_iterator52088 = (_histogram52007.emplace(_x52008, 0).first);
}
int &_count52009 = _map_iterator52088->second;
_count52009 = (_count52009 + 1);
}
}
bool _found52020 = false;
{
for (LINEITEM _l52023 : _var5824) {
{
if ((((_l52023.orderkey) == _var31557))) {
_found52020 = true;
goto _label52089;
}
}
}
}
_label52089:
if (_found52020) {
std::unordered_map< LINEITEM , int , _HashLINEITEM > _histogram52024 = (std::unordered_map< LINEITEM , int , _HashLINEITEM > ());
for (LINEITEM _l52028 : _var5824) {
if ((((_l52028.orderkey) == _var31557))) {
{
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52090 = _histogram52024.find(_l52028);
if ((_map_iterator52090 == _histogram52024.end())) {
_map_iterator52090 = (_histogram52024.emplace(_l52028, 0).first);
}
int &_count52026 = _map_iterator52090->second;
_count52026 = (_count52026 + 1);
}
}
}
std::vector< LINEITEM > _var52029 = (std::vector< LINEITEM > ());
for (LINEITEM _var52030 : _var5824) {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var52029.push_back(_var52030);
}
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py join 157
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py shallow_copy 172
//
_var52029.push_back((LINEITEM (orderkey, partkey, suppkey, linenumber, quantity, extendedprice, discount, tax, returnflag, linestatus, shipdate, commitdate, receiptdate, shipinstruct, shipmode, comment)));
}
std::vector< LINEITEM > __var3424452031 = std::move(_var52029);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map52032 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l52034 : __var3424452031) {
{
int _var25778 = (_l52034.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52091 = _map52032.find(_var25778);
if ((_map_iterator52091 == _map52032.end())) {
_map_iterator52091 = (_map52032.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v52033 = _map_iterator52091->second;
std::vector< LINEITEM > _var52035 = (std::vector< LINEITEM > ());
for (LINEITEM _l52037 : __var3424452031) {
if ((((_l52037.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var52035.push_back(_l52037);
}
}
}
_v52033 = std::move(_var52035);
}
}
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::const_iterator _map_iterator52092 = (std::move(_map52032).find(_var31557));
std::vector< LINEITEM > _v52093;
if ((_map_iterator52092 == std::move(_map52032).end())) {
_v52093 = (std::vector< LINEITEM > ());
} else {
_v52093 = (_map_iterator52092->second);
}
for (LINEITEM _var32946 : _v52093) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::const_iterator _map_iterator52094 = (_histogram52024.find(_var32946));
int _v52095;
if ((_map_iterator52094 == _histogram52024.end())) {
_v52095 = 0;
} else {
_v52095 = (_map_iterator52094->second);
}
if ((_v52095 > 0)) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52096 = _histogram52024.find(_var32946);
if ((_map_iterator52096 == _histogram52024.end())) {
_map_iterator52096 = (_histogram52024.emplace(_var32946, 0).first);
}
int &_count52027 = _map_iterator52096->second;
_count52027 = (_count52027 - 1);
} else {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py join 157
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py shallow_copy 172
//
_var31558.push_back(_var32946);
}
}
} else {
std::unordered_map< LINEITEM , int , _HashLINEITEM > _histogram52038 = (std::unordered_map< LINEITEM , int , _HashLINEITEM > ());
std::vector< LINEITEM > _var52042 = (std::vector< LINEITEM > ());
for (LINEITEM _var52043 : _var5824) {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var52042.push_back(_var52043);
}
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py join 157
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py shallow_copy 172
//
_var52042.push_back((LINEITEM (orderkey, partkey, suppkey, linenumber, quantity, extendedprice, discount, tax, returnflag, linestatus, shipdate, commitdate, receiptdate, shipinstruct, shipmode, comment)));
}
std::vector< LINEITEM > __var3424452044 = std::move(_var52042);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map52045 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l52047 : __var3424452044) {
{
int _var25778 = (_l52047.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52097 = _map52045.find(_var25778);
if ((_map_iterator52097 == _map52045.end())) {
_map_iterator52097 = (_map52045.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v52046 = _map_iterator52097->second;
std::vector< LINEITEM > _var52048 = (std::vector< LINEITEM > ());
for (LINEITEM _l52050 : __var3424452044) {
if ((((_l52050.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var52048.push_back(_l52050);
}
}
}
_v52046 = std::move(_var52048);
}
}
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::const_iterator _map_iterator52098 = (std::move(_map52045).find(_var31557));
std::vector< LINEITEM > _v52099;
if ((_map_iterator52098 == std::move(_map52045).end())) {
_v52099 = (std::vector< LINEITEM > ());
} else {
_v52099 = (_map_iterator52098->second);
}
for (LINEITEM _var32946 : _v52099) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::const_iterator _map_iterator52100 = (_histogram52038.find(_var32946));
int _v52101;
if ((_map_iterator52100 == _histogram52038.end())) {
_v52101 = 0;
} else {
_v52101 = (_map_iterator52100->second);
}
if ((_v52101 > 0)) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52102 = _histogram52038.find(_var32946);
if ((_map_iterator52102 == _histogram52038.end())) {
_map_iterator52102 = (_histogram52038.emplace(_var32946, 0).first);
}
int &_count52041 = _map_iterator52102->second;
_count52041 = (_count52041 - 1);
} else {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py join 157
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py shallow_copy 172
//
_var31558.push_back(_var32946);
}
}
}
}
}
inline void deleteOldSales (int orderkey) {
std::vector< int > _var52103 = (std::vector< int > ());
std::unordered_map< int , int , std::hash<int > > _histogram52105 = (std::unordered_map< int , int , std::hash<int > > ());
std::vector< LINEITEM > _var52109 = (std::vector< LINEITEM > ());
std::unordered_map< LINEITEM , int , _HashLINEITEM > _histogram52111 = (std::unordered_map< LINEITEM , int , _HashLINEITEM > ());
for (LINEITEM _l52115 : _var5824) {
if ((((_l52115.orderkey) == orderkey))) {
{
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52176 = _histogram52111.find(_l52115);
if ((_map_iterator52176 == _histogram52111.end())) {
_map_iterator52176 = (_histogram52111.emplace(_l52115, 0).first);
}
int &_count52113 = _map_iterator52176->second;
_count52113 = (_count52113 + 1);
}
}
}
for (LINEITEM _var52110 : _var5824) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::const_iterator _map_iterator52177 = (_histogram52111.find(_var52110));
int _v52178;
if ((_map_iterator52177 == _histogram52111.end())) {
_v52178 = 0;
} else {
_v52178 = (_map_iterator52177->second);
}
if ((_v52178 > 0)) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52179 = _histogram52111.find(_var52110);
if ((_map_iterator52179 == _histogram52111.end())) {
_map_iterator52179 = (_histogram52111.emplace(_var52110, 0).first);
}
int &_count52114 = _map_iterator52179->second;
_count52114 = (_count52114 - 1);
} else {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var52109.push_back(_var52110);
}
}
std::vector< LINEITEM > __var4188752116 = std::move(_var52109);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map52117 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l52119 : __var4188752116) {
{
int _var25778 = (_l52119.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52180 = _map52117.find(_var25778);
if ((_map_iterator52180 == _map52117.end())) {
_map_iterator52180 = (_map52117.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v52118 = _map_iterator52180->second;
std::vector< LINEITEM > _var52120 = (std::vector< LINEITEM > ());
for (LINEITEM _l52122 : __var4188752116) {
if ((((_l52122.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var52120.push_back(_l52122);
}
}
}
_v52118 = std::move(_var52120);
}
}
for (const auto & _var52181 : std::move(_map52117)) {
int _x52106 = (_var52181.first);
std::unordered_map< int , int , std::hash<int > >::iterator _map_iterator52182 = _histogram52105.find(_x52106);
if ((_map_iterator52182 == _histogram52105.end())) {
_map_iterator52182 = (_histogram52105.emplace(_x52106, 0).first);
}
int &_count52107 = _map_iterator52182->second;
_count52107 = (_count52107 + 1);
}
for (const auto & _var52183 : _var27713) {
int _var52104 = (_var52183.first);
std::unordered_map< int , int , std::hash<int > >::const_iterator _map_iterator52184 = (_histogram52105.find(_var52104));
int _v52185;
if ((_map_iterator52184 == _histogram52105.end())) {
_v52185 = 0;
} else {
_v52185 = (_map_iterator52184->second);
}
if ((_v52185 > 0)) {
std::unordered_map< int , int , std::hash<int > >::iterator _map_iterator52186 = _histogram52105.find(_var52104);
if ((_map_iterator52186 == _histogram52105.end())) {
_map_iterator52186 = (_histogram52105.emplace(_var52104, 0).first);
}
int &_count52108 = _map_iterator52186->second;
_count52108 = (_count52108 - 1);
} else {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var52103.push_back(_var52104);
}
}
std::vector< int > _var51778 = std::move(_var52103);
std::vector< int > _var52123 = (std::vector< int > ());
std::vector< LINEITEM > _var52162 = (std::vector< LINEITEM > ());
std::unordered_map< LINEITEM , int , _HashLINEITEM > _histogram52164 = (std::unordered_map< LINEITEM , int , _HashLINEITEM > ());
for (LINEITEM _l52168 : _var5824) {
if ((((_l52168.orderkey) == orderkey))) {
{
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52187 = _histogram52164.find(_l52168);
if ((_map_iterator52187 == _histogram52164.end())) {
_map_iterator52187 = (_histogram52164.emplace(_l52168, 0).first);
}
int &_count52166 = _map_iterator52187->second;
_count52166 = (_count52166 + 1);
}
}
}
for (LINEITEM _var52163 : _var5824) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::const_iterator _map_iterator52188 = (_histogram52164.find(_var52163));
int _v52189;
if ((_map_iterator52188 == _histogram52164.end())) {
_v52189 = 0;
} else {
_v52189 = (_map_iterator52188->second);
}
if ((_v52189 > 0)) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52190 = _histogram52164.find(_var52163);
if ((_map_iterator52190 == _histogram52164.end())) {
_map_iterator52190 = (_histogram52164.emplace(_var52163, 0).first);
}
int &_count52167 = _map_iterator52190->second;
_count52167 = (_count52167 - 1);
} else {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var52162.push_back(_var52163);
}
}
std::vector< LINEITEM > __var4207052169 = std::move(_var52162);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map52170 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l52172 : __var4207052169) {
{
int _var25778 = (_l52172.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52191 = _map52170.find(_var25778);
if ((_map_iterator52191 == _map52170.end())) {
_map_iterator52191 = (_map52170.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v52171 = _map_iterator52191->second;
std::vector< LINEITEM > _var52173 = (std::vector< LINEITEM > ());
for (LINEITEM _l52175 : __var4207052169) {
if ((((_l52175.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var52173.push_back(_l52175);
}
}
}
_v52171 = std::move(_var52173);
}
}
for (const auto & _var52192 : std::move(_map52170)) {
int __var4083652125 = (_var52192.first);
bool _conditional_result52126 = false;
bool _found52127 = false;
{
for (LINEITEM _l52130 : _var5824) {
{
if ((((_l52130.orderkey) == __var4083652125))) {
_found52127 = true;
goto _label52193;
}
}
}
}
_label52193:
if (_found52127) {
std::vector< LINEITEM > _var52131 = (std::vector< LINEITEM > ());
for (LINEITEM _l52133 : _var5824) {
if ((((_l52133.orderkey) == __var4083652125))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var52131.push_back(_l52133);
}
}
}
std::vector< LINEITEM > _var52134 = (std::vector< LINEITEM > ());
std::unordered_map< LINEITEM , int , _HashLINEITEM > _histogram52136 = (std::unordered_map< LINEITEM , int , _HashLINEITEM > ());
for (LINEITEM _l52140 : _var5824) {
if ((((_l52140.orderkey) == orderkey))) {
{
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52194 = _histogram52136.find(_l52140);
if ((_map_iterator52194 == _histogram52136.end())) {
_map_iterator52194 = (_histogram52136.emplace(_l52140, 0).first);
}
int &_count52138 = _map_iterator52194->second;
_count52138 = (_count52138 + 1);
}
}
}
for (LINEITEM _var52135 : _var5824) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::const_iterator _map_iterator52195 = (_histogram52136.find(_var52135));
int _v52196;
if ((_map_iterator52195 == _histogram52136.end())) {
_v52196 = 0;
} else {
_v52196 = (_map_iterator52195->second);
}
if ((_v52196 > 0)) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52197 = _histogram52136.find(_var52135);
if ((_map_iterator52197 == _histogram52136.end())) {
_map_iterator52197 = (_histogram52136.emplace(_var52135, 0).first);
}
int &_count52139 = _map_iterator52197->second;
_count52139 = (_count52139 - 1);
} else {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var52134.push_back(_var52135);
}
}
std::vector< LINEITEM > __var4207352141 = std::move(_var52134);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map52142 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l52144 : __var4207352141) {
{
int _var25778 = (_l52144.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52198 = _map52142.find(_var25778);
if ((_map_iterator52198 == _map52142.end())) {
_map_iterator52198 = (_map52142.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v52143 = _map_iterator52198->second;
std::vector< LINEITEM > _var52145 = (std::vector< LINEITEM > ());
for (LINEITEM _l52147 : __var4207352141) {
if ((((_l52147.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var52145.push_back(_l52147);
}
}
}
_v52143 = std::move(_var52145);
}
}
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::const_iterator _map_iterator52199 = (std::move(_map52142).find(__var4083652125));
std::vector< LINEITEM > _v52200;
if ((_map_iterator52199 == std::move(_map52142).end())) {
_v52200 = (std::vector< LINEITEM > ());
} else {
_v52200 = (_map_iterator52199->second);
}
_conditional_result52126 = ((std::move(_var52131) == _v52200));
} else {
std::vector< LINEITEM > _var52148 = (std::vector< LINEITEM > ());
std::unordered_map< LINEITEM , int , _HashLINEITEM > _histogram52150 = (std::unordered_map< LINEITEM , int , _HashLINEITEM > ());
for (LINEITEM _l52154 : _var5824) {
if ((((_l52154.orderkey) == orderkey))) {
{
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52201 = _histogram52150.find(_l52154);
if ((_map_iterator52201 == _histogram52150.end())) {
_map_iterator52201 = (_histogram52150.emplace(_l52154, 0).first);
}
int &_count52152 = _map_iterator52201->second;
_count52152 = (_count52152 + 1);
}
}
}
for (LINEITEM _var52149 : _var5824) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::const_iterator _map_iterator52202 = (_histogram52150.find(_var52149));
int _v52203;
if ((_map_iterator52202 == _histogram52150.end())) {
_v52203 = 0;
} else {
_v52203 = (_map_iterator52202->second);
}
if ((_v52203 > 0)) {
std::unordered_map< LINEITEM , int , _HashLINEITEM >::iterator _map_iterator52204 = _histogram52150.find(_var52149);
if ((_map_iterator52204 == _histogram52150.end())) {
_map_iterator52204 = (_histogram52150.emplace(_var52149, 0).first);
}
int &_count52153 = _map_iterator52204->second;
_count52153 = (_count52153 - 1);
} else {
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py visit_iterable 300
//
_var52148.push_back(_var52149);
}
}
std::vector< LINEITEM > __var4207352155 = std::move(_var52148);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > _map52156 = (std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > > ());
for (LINEITEM _l52158 : __var4207352155) {
{
int _var25778 = (_l52158.orderkey);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52205 = _map52156.find(_var25778);
if ((_map_iterator52205 == _map52156.end())) {
_map_iterator52205 = (_map52156.emplace(_var25778, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_v52157 = _map_iterator52205->second;
std::vector< LINEITEM > _var52159 = (std::vector< LINEITEM > ());
for (LINEITEM _l52161 : __var4207352155) {
if ((((_l52161.orderkey) == _var25778))) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var52159.push_back(_l52161);
}
}
}
_v52157 = std::move(_var52159);
}
}
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::const_iterator _map_iterator52206 = (std::move(_map52156).find(__var4083652125));
std::vector< LINEITEM > _v52207;
if ((_map_iterator52206 == std::move(_map52156).end())) {
_v52207 = (std::vector< LINEITEM > ());
} else {
_v52207 = (_map_iterator52206->second);
}
_conditional_result52126 = (((std::vector< LINEITEM > ()) == _v52207));
}
bool _v52208;
if ((!(_var27713.find(__var4083652125) != _var27713.end()))) {
_v52208 = true;
} else {
_v52208 = (!(_conditional_result52126));
}
if (_v52208) {
{
// /home/zgzhen/projects/cozy/cozy/syntax_tools.py fresh_var 36
// /home/zgzhen/projects/cozy/cozy/codegen/optimization.py stream 144
//
_var52123.push_back(__var4083652125);
}
}
}
std::vector< int > _var51779 = std::move(_var52123);
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::const_iterator _map_iterator52209 = (_var27713.find(orderkey));
std::vector< LINEITEM > _v52210;
if ((_map_iterator52209 == _var27713.end())) {
_v52210 = (std::vector< LINEITEM > ());
} else {
_v52210 = (_map_iterator52209->second);
}
for (LINEITEM _var7719 : _v52210) {
auto _it52211(::std::find(_var5824.begin(), _var5824.end(), _var7719));
if (_it52211 != _var5824.end()) { _var5824.erase(_it52211); }
}
for (int _var40836 : _var51778) {
_var27713.erase(_var40836);
}
for (int _var40836 : _var51779) {
std::unordered_map< int , std::vector< LINEITEM > , std::hash<int > >::iterator _map_iterator52212 = _var27713.find(_var40836);
if ((_map_iterator52212 == _var27713.end())) {
_map_iterator52212 = (_var27713.emplace(_var40836, (std::vector< LINEITEM > ())).first);
}
std::vector< LINEITEM > &_var40837 = _map_iterator52212->second;
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment