11 namespace SWC {
namespace DB {
25 if(!emplace(schema->cid, schema).second) {
51 auto res = emplace(schema->cid, schema);
53 res.first->second = schema;
63 return it == cend() ? nullptr : it->second;
72 for(
const auto& it : *
this ) {
82 for(
const auto& it : *
this)
104 for(
const auto& it : *
this) {
107 const Schema& schema = *it.second.get();
109 for(
auto& pattern : patterns.
names) {
112 reinterpret_cast<const uint8_t*
>(pattern.c_str()),
114 reinterpret_cast<const uint8_t*
>(schema.
col_name.c_str()),
133 auto itt = s_tags.
cbegin();
134 for(; it != tags.
cend() && itt != s_tags.
cend(); ++it, ++itt) {
137 reinterpret_cast<const uint8_t*
>(it->c_str()), it->size(),
138 reinterpret_cast<const uint8_t*
>(itt->c_str()), itt->size())) {
142 return itt != s_tags.
cend() || it != tags.
cend();
151 auto itt = s_tags.
cbegin();
152 for(; it != tags.
cend() && itt != s_tags.
cend(); ++it, ++itt) {
155 reinterpret_cast<const uint8_t*
>(it->c_str()), it->size(),
156 reinterpret_cast<const uint8_t*
>(itt->c_str()), itt->size()))
159 return itt != s_tags.
cend()
160 ? it == tags.
cend() &&
169 uint32_t sz = tags.
size();
172 if(sz > s_tags.
size())
177 for(
auto itt = s_tags.
cbegin(); itt != s_tags.
cend(); ++itt) {
178 for(uint32_t i = 0; i < sz; ++i) {
182 reinterpret_cast<const uint8_t*
>(tags[i].c_str()),
184 reinterpret_cast<const uint8_t*
>(itt->c_str()),
197 uint32_t sz = s_tags.
size();
205 for(
auto it = tags.
cbegin(); it != tags.
cend(); ++it) {
206 for(uint32_t i = 0; i < sz; ++i) {
210 reinterpret_cast<const uint8_t*
>(it->c_str()),
212 reinterpret_cast<const uint8_t*
>(s_tags[i].c_str()),
226 for(
auto itt = s_tags.
cbegin();
227 itt != s_tags.
cend() && it != tags.
cend(); ++itt) {
230 reinterpret_cast<const uint8_t*
>(it->c_str()), it->size(),
231 reinterpret_cast<const uint8_t*
>(itt->c_str()), itt->size()))
234 return it == tags.
cend();
239 auto itt = s_tags.
cbegin();
240 for(
bool start =
false;
241 itt != s_tags.
cend() && it != tags.
cend(); ++itt) {
244 reinterpret_cast<const uint8_t*
>(it->c_str()), it->size(),
245 reinterpret_cast<const uint8_t*
>(itt->c_str()), itt->size())) {
252 return it == tags.
cend();
256 auto itt = s_tags.
cbegin();
257 for(
auto ord = tags.
cbegin();
258 itt != s_tags.
cend() && ord != tags.
cend(); ++itt) {
259 for(
auto it = ord; ;) {
262 reinterpret_cast<const uint8_t*
>(it->c_str()), it->size(),
263 reinterpret_cast<const uint8_t*
>(itt->c_str()), itt->size())) {
267 if(++it == tags.
cend())
271 return itt == s_tags.
cend();
275 auto itt = s_tags.
cbegin();
277 for(
auto ord = tags.
cbegin();
278 itt != s_tags.
cend() && ord != tags.
cend(); ++itt) {
279 for(
auto it = ord; ;) {
282 reinterpret_cast<const uint8_t*
>(it->c_str()), it->size(),
283 reinterpret_cast<const uint8_t*
>(itt->c_str()), itt->size())) {
290 if(++it == tags.
cend())
294 return itt == s_tags.
cend();