#include "name.h" #include #include #include namespace NSQLComplete { bool operator<(const TTableId& lhs, const TTableId& rhs) { return std::tie(lhs.Cluster, lhs.Path) < std::tie(rhs.Cluster, rhs.Path); } TString LowerizeName(TStringBuf name) { return ToLowerUTF8(name); } TString NormalizeName(TStringBuf name) { TString normalized(name); TMaybe error = NYql::NormalizeName(NYql::TPosition(), normalized); if (!error.Empty()) { return LowerizeName(name); } return normalized; } } // namespace NSQLComplete template <> void Out(IOutputStream& out, const NSQLComplete::TTableId& value) { out << value.Cluster << ".`" << value.Path << "`"; } template <> void Out>(IOutputStream& out, const NSQLComplete::TAliased& value) { Out(out, value); out << " AS " << value.Alias; } template <> void Out(IOutputStream& out, const NSQLComplete::TColumnId& value) { out << value.TableAlias << "." << value.Name; }