/**
 * Autogenerated by Thrift Compiler (0.9.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
#ifndef TCLIService_CONSTANTS_H
#define TCLIService_CONSTANTS_H

#include "TCLIService_types.h"

namespace apache { namespace hive { namespace service { namespace cli { namespace thrift {

class TCLIServiceConstants {
 public:
  TCLIServiceConstants();

  std::set<TTypeId::type>  PRIMITIVE_TYPES;
  std::set<TTypeId::type>  COMPLEX_TYPES;
  std::set<TTypeId::type>  COLLECTION_TYPES;
  std::map<TTypeId::type, std::string>  TYPE_NAMES;
  std::string CHARACTER_MAXIMUM_LENGTH;
  std::string PRECISION;
  std::string SCALE;
};

extern const TCLIServiceConstants g_TCLIService_constants;

}}}}} // namespace

#endif
