yql_mkql_schema.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <library/cpp/yson/consumer.h>
  3. #include <library/cpp/yson/node/node.h>
  4. #include <util/stream/output.h>
  5. #include <util/generic/strbuf.h>
  6. #include <functional>
  7. namespace NKikimr {
  8. namespace NMiniKQL {
  9. class TType;
  10. class TStructType;
  11. class TProgramBuilder;
  12. }
  13. }
  14. namespace NYql {
  15. namespace NCommon {
  16. struct TCodecContext;
  17. void WriteTypeToYson(NYson::TYsonConsumerBase& writer, const NKikimr::NMiniKQL::TType* type);
  18. NYT::TNode TypeToYsonNode(const NKikimr::NMiniKQL::TType* type);
  19. TString WriteTypeToYson(const NKikimr::NMiniKQL::TType* type, NYT::NYson::EYsonFormat format = NYT::NYson::EYsonFormat::Binary);
  20. NKikimr::NMiniKQL::TType* ParseTypeFromYson(const TStringBuf yson, NKikimr::NMiniKQL::TProgramBuilder& builder, IOutputStream& err);
  21. NKikimr::NMiniKQL::TType* ParseTypeFromYson(const NYT::TNode& node, NKikimr::NMiniKQL::TProgramBuilder& builder, IOutputStream& err);
  22. NKikimr::NMiniKQL::TType* ParseOrderAwareTypeFromYson(const NYT::TNode& node, TCodecContext& ctx, IOutputStream& err);
  23. } // namespace NCommon
  24. } // namespace NYql