Commit b8eecb20 by Harish Butani

finish ThriftParser

parent cbecec83
......@@ -104,12 +104,12 @@ case class UnionDef(val name : String, val xsdAll : Boolean,
val fields : List[FieldDef],
val typAnnotations :Option[List[TypeAnnotation]])
case class ExceptionDef(val name : String, val xsdAll : Boolean,
case class ExceptionDef(val name : String,
val fields : List[FieldDef],
val typAnnotations :Option[List[TypeAnnotation]])
case class FunctionDef(oneway : Boolean, returnType : FunctionType, name : String, parameters : List[FieldDef],
throwFields : List[FieldDef], typAnnotations :Option[List[TypeAnnotation]])
throwFields : Option[List[FieldDef]], typAnnotations :Option[List[TypeAnnotation]])
case class ServiceDef(name : String, superName : Option[String], functions : List[FunctionDef],
typAnnotations :Option[List[TypeAnnotation]])
......@@ -193,16 +193,15 @@ case class ThriftDef(val includes : List[IncludeDef],
}
class ThriftParser extends StandardTokenParsers with PackratParsers {
trait ThriftKeywords {
this : StandardTokenParsers =>
import scala.language.implicitConversions
import scala.language.higherKinds
protected case class Keyword(str: String)
protected implicit def asParser(k: Keyword): Parser[String] = k.str
protected val LPAREN = Keyword("(")
protected val RPAREN = Keyword(")")
protected val EQ = Keyword("=")
......@@ -228,7 +227,7 @@ class ThriftParser extends StandardTokenParsers with PackratParsers {
protected val THROWS = Keyword("throws")
protected val ONEWAY = Keyword("oneway")
protected val EXTENDS = Keyword("extends")
protected val SERVIC = Keyword("service")
protected val SERVICE = Keyword("service")
protected val EXCEPTION = Keyword("exception")
protected val LBRACKET = Keyword("{")
protected val RBRACKET = Keyword("}")
......@@ -252,16 +251,148 @@ class ThriftParser extends StandardTokenParsers with PackratParsers {
protected val STAR = Keyword("*")
protected val CPP_NS = Keyword("cpp_namespace")
protected val PHP_NS = Keyword("php_namespace")
protected val PY_NS = Keyword("py_namespace")
protected val PERL_NS = Keyword("perl_namespace")
protected val PY_NS = Keyword("py_module")
protected val PERL_NS = Keyword("perl_package")
protected val RUBY_NS = Keyword("ruby_namespace")
protected val SMLTK_CAT = Keyword("smalltalk_category")
protected val SMLTK_PRE = Keyword("smalltalk_prefix")
protected val JAVA_NS = Keyword("java_namespace")
protected val COCOA_NS = Keyword("cocoa_namespace")
protected val JAVA_NS = Keyword("java_package")
protected val COCOA_NS = Keyword("cocoa_package")
protected val XSD_NS = Keyword("xsd_namespace")
protected val CSHARP_NS = Keyword("csharp_namespace")
def isRequired(r : Option[String]) = r match {
case Some(REQUIRED) => true
case _ => false
}
def isXsdOptional(r : Option[String]) = r match {
case Some(XSD_OPT) => true
case _ => false
}
def isXsdNillable(r : Option[String]) = r match {
case Some(XSD_NILBLE) => true
case _ => false
}
def isXsdAll(r : Option[String]) = r match {
case Some(XSD_ALL) => true
case _ => false
}
def isOneWay(r : Option[String]) = r match {
case Some(ONEWAY) => true
case _ => false
}
}
trait ThriftTypeRules extends ThriftKeywords {
this : StandardTokenParsers =>
def containterType : Parser[ContainerType] = mapType | setType | listType
def setType = SET ~ cppType.? ~ LT ~ fieldType ~ GT ~ typeAnnotations.? ^^ {
case s ~ ct ~ lt ~ t ~ gt ~ tA => SetType(t, ct, tA)
}
def listType = LIST ~ LT ~ fieldType ~ GT ~ cppType.? ~ typeAnnotations.? ^^ {
case l ~ lt ~ t ~ gt ~ ct ~ tA => ListType(t, ct, tA)
}
def mapType = MAP ~ cppType.? ~ LT ~ fieldType ~ COMMA ~ fieldType ~ GT ~ typeAnnotations.? ^^ {
case s ~ ct ~ lt ~ kt ~ c ~ vt ~ gt ~ tA => MapType(kt, vt, ct, tA)
}
def cppType : Parser[CPPType] = CPP_TYPE ~ stringLit ^^ { case c ~ s => CPPType(s)}
def fieldType: Parser[FieldType] = ident ^^ {case i => IdentifierType(i)} |
baseType |
containterType
def baseType : Parser[BaseType] = simpleBaseType ~ typeAnnotations.? ^^ { case s ~ t => BaseType(s, t)}
def simpleBaseType : Parser[BASE_TYPES.Value] = STRING ^^^ BASE_TYPES.STRING |
BINARY ^^^ BASE_TYPES.BINARY |
SLIST ^^^ BASE_TYPES.SLIST |
BOOL ^^^ BASE_TYPES.BOOLEAN |
BYTE ^^^ BASE_TYPES.BYTE |
I16 ^^^ BASE_TYPES.I16 |
I32 ^^^ BASE_TYPES.I32 |
I64 ^^^ BASE_TYPES.I64 |
DOUBLE ^^^ BASE_TYPES.DOUBLE
def typeAnnotations : Parser[List[TypeAnnotation]] =
LPAREN ~ typeAnnotation.* ~ RPAREN ^^ { case l ~ t ~ r => t.toList}
def typeAnnotation : Parser[TypeAnnotation] =
(ident ~ EQ ~ stringLit ~ commaOrSemicolon.?) ^^ { case i ~ e ~ s ~ c => TypeAnnotation(i,s)}
def commaOrSemicolon : Parser[String] = COMMA | SEMICOLON
}
/**
* @todo extract Constant Rules into this Trait. This requires moving `hexConstant` here. But how to specify
* type of `HexConstant`, it is a Path dependent Type tied to lexical member of ThriftParser.
*/
trait ThriftConstantRules extends ThriftKeywords {
this: StandardTokenParsers =>
// def parseDouble(s: String) = try { Some(s.toDouble) } catch { case _ : Throwable => None }
//
// def constValue : Parser[ConstValue] = numericLit ^^ {
// case n => parseDouble(n) match {
// case Some(d) => DoubleConstant(d)
// case _ => IntConstant(n.toInt)
// }
// } |
// hexConstant ^^ { case h => IntConstant(Integer.parseInt(h, 16))} |
// stringLit ^^ { case s => StringConstant(s)} |
// ident ^^ { case i => IdConstant(i)} |
// constList |
// constMap
//
// def constValuePair = constValue ~ COLON ~ constValue ~ commaOrSemicolon.? ^^ {
// case k ~ c ~ v ~ cs => ConstantValuePair(k,v)
// }
//
// def constList = LSQBRACKET ~ (constValue <~ commaOrSemicolon).* ~ RSQBRACKET ^^ {
// case l ~ vs ~ r => ConstantList(vs)
// }
//
// def constMap = LBRACKET ~ constValuePair.* ~ RBRACKET ^^ {
// case l ~ ps ~ r => ConstantMap(ps)
// }
}
/**
* A Parser for Thrift definition scripts.
* Based on [[https://github.com/twitter/commons/blob/master/src/antlr/twitter/thrift/descriptors/AntlrThrift.g]].
* Definition is parsed into a [[org.apache.hadoop.metadata.tools.thrift.ThriftDef ThriftDef]] structure.
*
* @example {{{
* var p = new ThriftParser
* var td : Option[ThriftDef] = p("""include "share/fb303/if/fb303.thrift"
* namespace java org.apache.hadoop.hive.metastore.api
* namespace php metastore
* namespace cpp Apache.Hadoop.Hive
* \""")
* }}}
*
* @todo doesn't traverse includes directives. Includes are parsed into
* [[org.apache.hadoop.metadata.tools.thrift.IncludeDef IncludeDef]] structures
* but are not traversed.
* @todo mixing in [[scala.util.parsing.combinator.PackratParsers PackratParsers]] is a placeholder. Need to
* change specific grammar rules to `lazy val` and `Parser[Elem]` to `PackratParser[Elem]`. Will do based on
* performance analysis.
* @todo Error reporting
*/
class ThriftParser extends StandardTokenParsers with ThriftKeywords with ThriftTypeRules with PackratParsers {
import scala.language.higherKinds
private val reservedWordsDelims : Seq[String] =
this
.getClass
......@@ -283,24 +414,9 @@ class ThriftParser extends StandardTokenParsers with PackratParsers {
phrase(program)(new lexical.Scanner(input)) match {
case Success(r, x) => Some(r)
case Failure(m, x) => {
println(m)
println(x.offset)
None
}
case Error(m, x) => {
println(m)
println(x.offset)
None
}
}
}
def applyStringLit[X](input: String): Option[String] = {
phrase(stringLit)(new lexical.Scanner(input)) match {
case Success(r, x) => Some(r)
case Failure(m, x) => {
println(m)
println(x.offset)
None
}
}
......@@ -326,13 +442,21 @@ class ThriftParser extends StandardTokenParsers with PackratParsers {
XSD_NS ~ ident ^^ { case ns ~ i => new ThriftDef(NamespaceDef(THRIFT_LANG.XSD, i))} |
CSHARP_NS ~ ident ^^ { case ns ~ i => new ThriftDef(NamespaceDef(THRIFT_LANG.CSHARP, i))}
def definitions = typeDefinition.* ^^ { case l => l.foldRight(new ThriftDef)((a,t) => t plus a)}
def definitions : Parser[ThriftDef] = definition.* ^^ {
case l => l.foldRight(new ThriftDef)((a,t) => t plus a)
}
def definition = typeDefinition
def definition : Parser[ThriftDef] = const ^^ { case c => new ThriftDef(c)} |
typeDefinition |
service ^^ { case s => new ThriftDef(s)}
def typeDefinition[Parser[ThriftDef]] = (typedef ^^ {case t => new ThriftDef(t)} |
def typeDefinition : Parser[ThriftDef] = (typedef ^^ {case t => new ThriftDef(t)} |
enum ^^ {case e => new ThriftDef(e)} |
senum ^^ {case e => new ThriftDef(e)}
senum ^^ {case e => new ThriftDef(e)} |
struct ^^ {case e => new ThriftDef(e)} |
union ^^ {case e => new ThriftDef(e)} |
xception ^^ {case e => new ThriftDef(e)}
)
def typedef : Parser[TypeDef] = TYPEDEF ~ fieldType ~ ident ~ typeAnnotations.? ^^ {
......@@ -353,26 +477,39 @@ class ThriftParser extends StandardTokenParsers with PackratParsers {
def senumDef : Parser[String] = stringLit <~ commaOrSemicolon.?
def struct = STRUCT ~ ident ~ XSD_ALL.? ~ LBRACKET
def service : Parser[ServiceDef] = SERVICE ~ ident ~ extnds.? ~ LBRACKET ~ function.* ~
RBRACKET ~ typeAnnotations.? ^^ {
case s ~ i ~ e ~ lb ~ fs ~ rb ~ tA => ServiceDef(i, e, fs, tA)
}
def isRequired(r : Option[String]) = r match {
case Some(REQUIRED) => true
case _ => false
def extnds : Parser[String] = EXTENDS ~> ident
def function : Parser[FunctionDef] = ONEWAY.? ~ functionType ~ ident ~ LPAREN ~ field.* ~ RPAREN ~ throwz.? ~
typeAnnotations.? ~ commaOrSemicolon.? ^^ {
case o ~ fT ~ i ~ lp ~ fs ~ rp ~ th ~ tA ~ cS => FunctionDef(isOneWay(o), fT, i, fs, th, tA)
}
def isXsdOptional(r : Option[String]) = r match {
case Some(XSD_OPT) => true
case _ => false
def throwz : Parser[List[FieldDef]] = THROWS ~ LPAREN ~ field.* ~ RPAREN ^^ {
case t ~ l ~ fs ~ r => fs.toList
}
def isXsdNillable(r : Option[String]) = r match {
case Some(XSD_NILBLE) => true
case _ => false
def functionType : Parser[FunctionType] = VOID ^^^ VoidType() | fieldType
def xception : Parser[ExceptionDef] = EXCEPTION ~ ident ~ LBRACKET ~ field.* ~ RBRACKET ~ typeAnnotations.? ^^ {
case s ~ i ~ lb ~ fs ~ rb ~ tA => ExceptionDef(i, fs.toList, tA)
}
def union : Parser[UnionDef] = UNION ~ ident ~ XSD_ALL.? ~ LBRACKET ~ field.* ~ RBRACKET ~ typeAnnotations.? ^^ {
case s ~ i ~ xA ~ lb ~ fs ~ rb ~ tA => UnionDef(i, isXsdAll(xA), fs.toList, tA)
}
def struct : Parser[StructDef] = STRUCT ~ ident ~ XSD_ALL.? ~ LBRACKET ~ field.* ~ RBRACKET ~ typeAnnotations.? ^^ {
case s ~ i ~ xA ~ lb ~ fs ~ rb ~ tA => StructDef(i, isXsdAll(xA), fs.toList, tA)
}
def field = fieldIdentifier.? ~ fieldRequiredness.? ~ fieldType ~ ident ~ fieldValue.? ~
XSD_OPT.? ~ XSD_NILBLE.? ~ xsdAttributes.? ~ typeAnnotations.? ^^ {
case fi ~ fr ~ ft ~id ~ fv ~ xo ~ xn ~ xa ~ tA => FieldDef(
def field : Parser[FieldDef] = fieldIdentifier.? ~ fieldRequiredness.? ~ fieldType ~ ident ~ fieldValue.? ~
XSD_OPT.? ~ XSD_NILBLE.? ~ xsdAttributes.? ~ typeAnnotations.? ~ commaOrSemicolon.? ^^ {
case fi ~ fr ~ ft ~id ~ fv ~ xo ~ xn ~ xa ~ tA ~ cS => FieldDef(
fi,
isRequired(fr),
ft,
......@@ -389,7 +526,7 @@ class ThriftParser extends StandardTokenParsers with PackratParsers {
case x ~ l ~ f ~ r => XsdAttributes(f)
}
def fieldValue = COLON ~> constValue
def fieldValue = EQ ~> constValue
def fieldRequiredness : Parser[String] = REQUIRED | OPTIONAL
......@@ -397,6 +534,10 @@ class ThriftParser extends StandardTokenParsers with PackratParsers {
case n => IntConstant(n.toInt)
}
def const : Parser[ConstDef] = CONST ~ fieldType ~ ident ~ EQ ~ constValue ~ commaOrSemicolon.? ^^ {
case c ~ fT ~ i ~ e ~ cV ~ cS => ConstDef(fT, i, cV)
}
def parseDouble(s: String) = try { Some(s.toDouble) } catch { case _ : Throwable => None }
def constValue : Parser[ConstValue] = numericLit ^^ {
......@@ -422,47 +563,6 @@ class ThriftParser extends StandardTokenParsers with PackratParsers {
def constMap = LBRACKET ~ constValuePair.* ~ RBRACKET ^^ {
case l ~ ps ~ r => ConstantMap(ps)
}
def containterType : Parser[ContainerType] = mapType | setType | listType
def setType = SET ~ cppType.? ~ LT ~ fieldType ~ GT ~ typeAnnotations.? ^^ {
case s ~ ct ~ lt ~ t ~ gt ~ tA => SetType(t, ct, tA)
}
def listType = LIST ~ LT ~ fieldType ~ GT ~ cppType.? ~ typeAnnotations.? ^^ {
case l ~ lt ~ t ~ gt ~ ct ~ tA => ListType(t, ct, tA)
}
def mapType = MAP ~ cppType.? ~ LT ~ fieldType ~ COMMA ~ fieldType ~ GT ~ typeAnnotations.? ^^ {
case s ~ ct ~ lt ~ kt ~ c ~ vt ~ gt ~ tA => MapType(kt, vt, ct, tA)
}
def cppType : Parser[CPPType] = CPP_TYPE ~ stringLit ^^ { case c ~ s => CPPType(s)}
def fieldType: Parser[FieldType] = ident ^^ {case i => IdentifierType(i)} |
baseType |
containterType
def baseType : Parser[BaseType] = simpleBaseType ~ typeAnnotations.? ^^ { case s ~ t => BaseType(s, t)}
def simpleBaseType : Parser[BASE_TYPES.Value] = STRING ^^^ BASE_TYPES.STRING |
BINARY ^^^ BASE_TYPES.BINARY |
SLIST ^^^ BASE_TYPES.SLIST |
BOOL ^^^ BASE_TYPES.BOOLEAN |
BYTE ^^^ BASE_TYPES.BYTE |
I16 ^^^ BASE_TYPES.I16 |
I32 ^^^ BASE_TYPES.I32 |
I64 ^^^ BASE_TYPES.I64 |
DOUBLE ^^^ BASE_TYPES.DOUBLE
def typeAnnotations : Parser[List[TypeAnnotation]] =
LPAREN ~ typeAnnotation.* ~ RPAREN ^^ { case l ~ t ~ r => t.toList}
def typeAnnotation : Parser[TypeAnnotation] =
(ident ~ EQ ~ stringLit ~ commaOrSemicolon.?) ^^ { case i ~ e ~ s ~ c => TypeAnnotation(i,s)}
def commaOrSemicolon = COMMA | SEMICOLON
}
class ThriftLexer(val keywords: Seq[String], val delims : Seq[String]) extends StdLexical with ImplicitConversions {
......@@ -480,12 +580,12 @@ class ThriftLexer(val keywords: Seq[String], val delims : Seq[String]) extends S
delimiters ++= delims
override lazy val token: Parser[Token] =
( identifier ^^ processIdent
| st_identifier ^^ StIdentifier
| string ^^ StringLit
( intConstant ^^ NumericLit
| hexConstant ^^ HexConstant
| dubConstant ^^ NumericLit
| intConstant ^^ NumericLit
| identifier ^^ processIdent
| st_identifier ^^ StIdentifier
| string ^^ StringLit
| EofCh ^^^ EOF
| '\'' ~> failure("unclosed string literal")
| '"' ~> failure("unclosed string literal")
......@@ -510,6 +610,11 @@ class ThriftLexer(val keywords: Seq[String], val delims : Seq[String]) extends S
| '/' ~ '*' ~ failure("unclosed comment")
).*
protected override def comment: Parser[Any] = (
commentChar.* ~ '*' ~ '/'
)
protected def commentChar = chrExcept(EofCh, '*') | '*' ~ not('/')
def string = '\"' ~> chrExcept('\"', '\n', EofCh).* <~ '\"' ^^ { _ mkString "" } |
'\'' ~> chrExcept('\'', '\n', EofCh).* <~ '\'' ^^ { _ mkString "" }
......@@ -520,8 +625,8 @@ class ThriftLexer(val keywords: Seq[String], val delims : Seq[String]) extends S
def exponent = elem("exponent character", d => d == 'e' || d == 'E')
def intConstant = zero | intList
def intList = nonzero ~ rep(digit) ^^ {case x ~ y => (x :: y) mkString ""}
def intConstant = opt(sign) ~> zero | intList
def intList = opt(sign) ~ nonzero ~ rep(digit) ^^ {case s ~ x ~ y => (optString("", s) :: x :: y) mkString ""}
def fracPart = '.' ~> rep(digit) ^^ { "." + _ mkString "" }
def expPart = exponent ~ opt(sign) ~ rep1(digit) ^^ { case e ~ s ~ d =>
e.toString + optString("", s) + d.mkString("")
......
......@@ -73,6 +73,34 @@ class ThriftLexerTest {
}
@Test def testNegativeInt {
val p = new ThriftParser
val r = scan(p, """-1""")
Assert.assertTrue(r.successful)
}
@Test def testComment {
val p = new ThriftParser
val r = scan(p, """/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/""")
}
@Test def testService {
val p = new ThriftParser
val r = scan(p, """/**
......
......@@ -3,6 +3,8 @@ package org.apache.hadoop.metadata.tools.thrift
import org.junit.Test
import org.junit.Assert
import scala.io.Source
class ThriftParserTest {
@Test def testSimple {
......@@ -18,4 +20,450 @@ class ThriftParserTest {
Assert.assertEquals(td.get.toString, """ThriftDef(List(IncludeDef(share/fb303/if/fb303.thrift)),List(),List(NamespaceDef(,cpp,Some(Apache.Hadoop.Hive)), NamespaceDef(,php,Some(metastore)), NamespaceDef(,java,Some(org.apache.hadoop.hive.metastore.api))),List(),List(),List(),List(),List(),List(),List(),List())""")
}
@Test def testStruct {
val p = new ThriftParser
var td: Option[ThriftDef] = p( """struct PartitionSpecWithSharedSD {
1: list<PartitionWithoutSD> partitions,
2: StorageDescriptor sd
}""")
Assert.assertEquals(td.get.toString, """ThriftDef(List(),List(),List(),List(),List(),List(),List(),List(StructDef(PartitionSpecWithSharedSD,false,List(FieldDef(Some(IntConstant(1)),false,ListType(IdentifierType(PartitionWithoutSD),None,None),partitions,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(StorageDescriptor),sd,None,false,false,None,None)),None)),List(),List(),List())""")
}
@Test def testTableStruct {
val p = new ThriftParser
var td : Option[ThriftDef] = p("""// table information
struct Table {
1: string tableName, // name of the table
2: string dbName, // database name ('default')
3: string owner, // owner of this table
4: i32 createTime, // creation time of the table
5: i32 lastAccessTime, // last access time (usually this will be filled from HDFS and shouldn't be relied on)
6: i32 retention, // retention time
7: StorageDescriptor sd, // storage descriptor of the table
8: list<FieldSchema> partitionKeys, // partition keys of the table. only primitive types are supported
9: map<string, string> parameters, // to store comments or any other user level parameters
10: string viewOriginalText, // original view text, null for non-view
11: string viewExpandedText, // expanded view text, null for non-view
12: string tableType, // table type enum, e.g. EXTERNAL_TABLE
13: optional PrincipalPrivilegeSet privileges,
14: optional bool temporary=false
}""")
Assert.assertEquals(td.get.toString, """ThriftDef(List(),List(),List(),List(),List(),List(),List(),List(StructDef(Table,false,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),tableName,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),dbName,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),owner,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(i32,None),createTime,None,false,false,None,None), FieldDef(Some(IntConstant(5)),false,BaseType(i32,None),lastAccessTime,None,false,false,None,None), FieldDef(Some(IntConstant(6)),false,BaseType(i32,None),retention,None,false,false,None,None), FieldDef(Some(IntConstant(7)),false,IdentifierType(StorageDescriptor),sd,None,false,false,None,None), FieldDef(Some(IntConstant(8)),false,ListType(IdentifierType(FieldSchema),None,None),partitionKeys,None,false,false,None,None), FieldDef(Some(IntConstant(9)),false,MapType(BaseType(string,None),BaseType(string,None),None,None),parameters,None,false,false,None,None), FieldDef(Some(IntConstant(10)),false,BaseType(string,None),viewOriginalText,None,false,false,None,None), FieldDef(Some(IntConstant(11)),false,BaseType(string,None),viewExpandedText,None,false,false,None,None), FieldDef(Some(IntConstant(12)),false,BaseType(string,None),tableType,None,false,false,None,None), FieldDef(Some(IntConstant(13)),false,IdentifierType(PrincipalPrivilegeSet),privileges,None,false,false,None,None), FieldDef(Some(IntConstant(14)),false,BaseType(bool,None),temporary,Some(IdConstant(false)),false,false,None,None)),None)),List(),List(),List())""")
}
@Test def testHiveThrift {
val p = new ThriftParser
val is = getClass().getResourceAsStream("/test.thrift")
val src: Source = Source.fromInputStream(is)
val t: String = src.getLines().mkString("\n")
var td: Option[ThriftDef] = p(t)
Assert.assertTrue(td.isDefined)
}
@Test def testService {
val p = new ThriftParser
var td : Option[ThriftDef] = p("""/**
* This interface is live.
*/
service ThriftHiveMetastore extends fb303.FacebookService
{
string getMetaConf(1:string key) throws(1:MetaException o1)
void setMetaConf(1:string key, 2:string value) throws(1:MetaException o1)
void create_database(1:Database database) throws(1:AlreadyExistsException o1, 2:InvalidObjectException o2, 3:MetaException o3)
Database get_database(1:string name) throws(1:NoSuchObjectException o1, 2:MetaException o2)
void drop_database(1:string name, 2:bool deleteData, 3:bool cascade) throws(1:NoSuchObjectException o1, 2:InvalidOperationException o2, 3:MetaException o3)
list<string> get_databases(1:string pattern) throws(1:MetaException o1)
list<string> get_all_databases() throws(1:MetaException o1)
void alter_database(1:string dbname, 2:Database db) throws(1:MetaException o1, 2:NoSuchObjectException o2)
// returns the type with given name (make seperate calls for the dependent types if needed)
Type get_type(1:string name) throws(1:MetaException o1, 2:NoSuchObjectException o2)
bool create_type(1:Type type) throws(1:AlreadyExistsException o1, 2:InvalidObjectException o2, 3:MetaException o3)
bool drop_type(1:string type) throws(1:MetaException o1, 2:NoSuchObjectException o2)
map<string, Type> get_type_all(1:string name)
throws(1:MetaException o2)
// Gets a list of FieldSchemas describing the columns of a particular table
list<FieldSchema> get_fields(1: string db_name, 2: string table_name) throws (1: MetaException o1, 2: UnknownTableException o2, 3: UnknownDBException o3),
// Gets a list of FieldSchemas describing both the columns and the partition keys of a particular table
list<FieldSchema> get_schema(1: string db_name, 2: string table_name) throws (1: MetaException o1, 2: UnknownTableException o2, 3: UnknownDBException o3)
// create a Hive table. Following fields must be set
// tableName
// database (only 'default' for now until Hive QL supports databases)
// owner (not needed, but good to have for tracking purposes)
// sd.cols (list of field schemas)
// sd.inputFormat (SequenceFileInputFormat (binary like falcon tables or u_full) or TextInputFormat)
// sd.outputFormat (SequenceFileInputFormat (binary) or TextInputFormat)
// sd.serdeInfo.serializationLib (SerDe class name eg org.apache.hadoop.hive.serde.simple_meta.MetadataTypedColumnsetSerDe
// * See notes on DDL_TIME
void create_table(1:Table tbl) throws(1:AlreadyExistsException o1, 2:InvalidObjectException o2, 3:MetaException o3, 4:NoSuchObjectException o4)
void create_table_with_environment_context(1:Table tbl,
2:EnvironmentContext environment_context)
throws (1:AlreadyExistsException o1,
2:InvalidObjectException o2, 3:MetaException o3,
4:NoSuchObjectException o4)
// drops the table and all the partitions associated with it if the table has partitions
// delete data (including partitions) if deleteData is set to true
void drop_table(1:string dbname, 2:string name, 3:bool deleteData)
throws(1:NoSuchObjectException o1, 2:MetaException o3)
void drop_table_with_environment_context(1:string dbname, 2:string name, 3:bool deleteData,
4:EnvironmentContext environment_context)
throws(1:NoSuchObjectException o1, 2:MetaException o3)
list<string> get_tables(1: string db_name, 2: string pattern) throws (1: MetaException o1)
list<string> get_all_tables(1: string db_name) throws (1: MetaException o1)
Table get_table(1:string dbname, 2:string tbl_name)
throws (1:MetaException o1, 2:NoSuchObjectException o2)
list<Table> get_table_objects_by_name(1:string dbname, 2:list<string> tbl_names)
throws (1:MetaException o1, 2:InvalidOperationException o2, 3:UnknownDBException o3)
// Get a list of table names that match a filter.
// The filter operators are LIKE, <, <=, >, >=, =, <>
//
// In the filter statement, values interpreted as strings must be enclosed in quotes,
// while values interpreted as integers should not be. Strings and integers are the only
// supported value types.
//
// The currently supported key names in the filter are:
// Constants.HIVE_FILTER_FIELD_OWNER, which filters on the tables' owner's name
// and supports all filter operators
// Constants.HIVE_FILTER_FIELD_LAST_ACCESS, which filters on the last access times
// and supports all filter operators except LIKE
// Constants.HIVE_FILTER_FIELD_PARAMS, which filters on the tables' parameter keys and values
// and only supports the filter operators = and <>.
// Append the parameter key name to HIVE_FILTER_FIELD_PARAMS in the filter statement.
// For example, to filter on parameter keys called "retention", the key name in the filter
// statement should be Constants.HIVE_FILTER_FIELD_PARAMS + "retention"
// Also, = and <> only work for keys that exist
// in the tables. E.g., if you are looking for tables where key1 <> value, it will only
// look at tables that have a value for the parameter key1.
// Some example filter statements include:
// filter = Constants.HIVE_FILTER_FIELD_OWNER + " like \".*test.*\" and " +
// Constants.HIVE_FILTER_FIELD_LAST_ACCESS + " = 0";
// filter = Constants.HIVE_FILTER_FIELD_PARAMS + "retention = \"30\" or " +
// Constants.HIVE_FILTER_FIELD_PARAMS + "retention = \"90\""
// @param dbName
// The name of the database from which you will retrieve the table names
// @param filterType
// The type of filter
// @param filter
// The filter string
// @param max_tables
// The maximum number of tables returned
// @return A list of table names that match the desired filter
list<string> get_table_names_by_filter(1:string dbname, 2:string filter, 3:i16 max_tables=-1)
throws (1:MetaException o1, 2:InvalidOperationException o2, 3:UnknownDBException o3)
// alter table applies to only future partitions not for existing partitions
// * See notes on DDL_TIME
void alter_table(1:string dbname, 2:string tbl_name, 3:Table new_tbl)
throws (1:InvalidOperationException o1, 2:MetaException o2)
void alter_table_with_environment_context(1:string dbname, 2:string tbl_name,
3:Table new_tbl, 4:EnvironmentContext environment_context)
throws (1:InvalidOperationException o1, 2:MetaException o2)
// the following applies to only tables that have partitions
// * See notes on DDL_TIME
Partition add_partition(1:Partition new_part)
throws(1:InvalidObjectException o1, 2:AlreadyExistsException o2, 3:MetaException o3)
Partition add_partition_with_environment_context(1:Partition new_part,
2:EnvironmentContext environment_context)
throws (1:InvalidObjectException o1, 2:AlreadyExistsException o2,
3:MetaException o3)
i32 add_partitions(1:list<Partition> new_parts)
throws(1:InvalidObjectException o1, 2:AlreadyExistsException o2, 3:MetaException o3)
i32 add_partitions_pspec(1:list<PartitionSpec> new_parts)
throws(1:InvalidObjectException o1, 2:AlreadyExistsException o2, 3:MetaException o3)
Partition append_partition(1:string db_name, 2:string tbl_name, 3:list<string> part_vals)
throws (1:InvalidObjectException o1, 2:AlreadyExistsException o2, 3:MetaException o3)
AddPartitionsResult add_partitions_req(1:AddPartitionsRequest request)
throws(1:InvalidObjectException o1, 2:AlreadyExistsException o2, 3:MetaException o3)
Partition append_partition_with_environment_context(1:string db_name, 2:string tbl_name,
3:list<string> part_vals, 4:EnvironmentContext environment_context)
throws (1:InvalidObjectException o1, 2:AlreadyExistsException o2, 3:MetaException o3)
Partition append_partition_by_name(1:string db_name, 2:string tbl_name, 3:string part_name)
throws (1:InvalidObjectException o1, 2:AlreadyExistsException o2, 3:MetaException o3)
Partition append_partition_by_name_with_environment_context(1:string db_name, 2:string tbl_name,
3:string part_name, 4:EnvironmentContext environment_context)
throws (1:InvalidObjectException o1, 2:AlreadyExistsException o2, 3:MetaException o3)
bool drop_partition(1:string db_name, 2:string tbl_name, 3:list<string> part_vals, 4:bool deleteData)
throws(1:NoSuchObjectException o1, 2:MetaException o2)
bool drop_partition_with_environment_context(1:string db_name, 2:string tbl_name,
3:list<string> part_vals, 4:bool deleteData, 5:EnvironmentContext environment_context)
throws(1:NoSuchObjectException o1, 2:MetaException o2)
bool drop_partition_by_name(1:string db_name, 2:string tbl_name, 3:string part_name, 4:bool deleteData)
throws(1:NoSuchObjectException o1, 2:MetaException o2)
bool drop_partition_by_name_with_environment_context(1:string db_name, 2:string tbl_name,
3:string part_name, 4:bool deleteData, 5:EnvironmentContext environment_context)
throws(1:NoSuchObjectException o1, 2:MetaException o2)
DropPartitionsResult drop_partitions_req(1: DropPartitionsRequest req)
throws(1:NoSuchObjectException o1, 2:MetaException o2)
Partition get_partition(1:string db_name, 2:string tbl_name, 3:list<string> part_vals)
throws(1:MetaException o1, 2:NoSuchObjectException o2)
Partition exchange_partition(1:map<string, string> partitionSpecs, 2:string source_db,
3:string source_table_name, 4:string dest_db, 5:string dest_table_name)
throws(1:MetaException o1, 2:NoSuchObjectException o2, 3:InvalidObjectException o3,
4:InvalidInputException o4)
Partition get_partition_with_auth(1:string db_name, 2:string tbl_name, 3:list<string> part_vals,
4: string user_name, 5: list<string> group_names) throws(1:MetaException o1, 2:NoSuchObjectException o2)
Partition get_partition_by_name(1:string db_name 2:string tbl_name, 3:string part_name)
throws(1:MetaException o1, 2:NoSuchObjectException o2)
// returns all the partitions for this table in reverse chronological order.
// If max parts is given then it will return only that many.
list<Partition> get_partitions(1:string db_name, 2:string tbl_name, 3:i16 max_parts=-1)
throws(1:NoSuchObjectException o1, 2:MetaException o2)
list<Partition> get_partitions_with_auth(1:string db_name, 2:string tbl_name, 3:i16 max_parts=-1,
4: string user_name, 5: list<string> group_names) throws(1:NoSuchObjectException o1, 2:MetaException o2)
list<PartitionSpec> get_partitions_pspec(1:string db_name, 2:string tbl_name, 3:i32 max_parts=-1)
throws(1:NoSuchObjectException o1, 2:MetaException o2)
list<string> get_partition_names(1:string db_name, 2:string tbl_name, 3:i16 max_parts=-1)
throws(1:MetaException o2)
// get_partition*_ps methods allow filtering by a partial partition specification,
// as needed for dynamic partitions. The values that are not restricted should
// be empty strings. Nulls were considered (instead of "") but caused errors in
// generated Python code. The size of part_vals may be smaller than the
// number of partition columns - the unspecified values are considered the same
// as "".
list<Partition> get_partitions_ps(1:string db_name 2:string tbl_name
3:list<string> part_vals, 4:i16 max_parts=-1)
throws(1:MetaException o1, 2:NoSuchObjectException o2)
list<Partition> get_partitions_ps_with_auth(1:string db_name, 2:string tbl_name, 3:list<string> part_vals, 4:i16 max_parts=-1,
5: string user_name, 6: list<string> group_names) throws(1:NoSuchObjectException o1, 2:MetaException o2)
list<string> get_partition_names_ps(1:string db_name,
2:string tbl_name, 3:list<string> part_vals, 4:i16 max_parts=-1)
throws(1:MetaException o1, 2:NoSuchObjectException o2)
// get the partitions matching the given partition filter
list<Partition> get_partitions_by_filter(1:string db_name 2:string tbl_name
3:string filter, 4:i16 max_parts=-1)
throws(1:MetaException o1, 2:NoSuchObjectException o2)
// List partitions as PartitionSpec instances.
list<PartitionSpec> get_part_specs_by_filter(1:string db_name 2:string tbl_name
3:string filter, 4:i32 max_parts=-1)
throws(1:MetaException o1, 2:NoSuchObjectException o2)
// get the partitions matching the given partition filter
// unlike get_partitions_by_filter, takes serialized hive expression, and with that can work
// with any filter (get_partitions_by_filter only works if the filter can be pushed down to JDOQL.
PartitionsByExprResult get_partitions_by_expr(1:PartitionsByExprRequest req)
throws(1:MetaException o1, 2:NoSuchObjectException o2)
// get partitions give a list of partition names
list<Partition> get_partitions_by_names(1:string db_name 2:string tbl_name 3:list<string> names)
throws(1:MetaException o1, 2:NoSuchObjectException o2)
// changes the partition to the new partition object. partition is identified from the part values
// in the new_part
// * See notes on DDL_TIME
void alter_partition(1:string db_name, 2:string tbl_name, 3:Partition new_part)
throws (1:InvalidOperationException o1, 2:MetaException o2)
// change a list of partitions. All partitions are altered atomically and all
// prehooks are fired together followed by all post hooks
void alter_partitions(1:string db_name, 2:string tbl_name, 3:list<Partition> new_parts)
throws (1:InvalidOperationException o1, 2:MetaException o2)
void alter_partition_with_environment_context(1:string db_name,
2:string tbl_name, 3:Partition new_part,
4:EnvironmentContext environment_context)
throws (1:InvalidOperationException o1, 2:MetaException o2)
// rename the old partition to the new partition object by changing old part values to the part values
// in the new_part. old partition is identified from part_vals.
// partition keys in new_part should be the same as those in old partition.
void rename_partition(1:string db_name, 2:string tbl_name, 3:list<string> part_vals, 4:Partition new_part)
throws (1:InvalidOperationException o1, 2:MetaException o2)
// returns whether or not the partition name is valid based on the value of the config
// hive.metastore.partition.name.whitelist.pattern
bool partition_name_has_valid_characters(1:list<string> part_vals, 2:bool throw_exception)
throws(1: MetaException o1)
// gets the value of the configuration key in the metastore server. returns
// defaultValue if the key does not exist. if the configuration key does not
// begin with "hive", "mapred", or "hdfs", a ConfigValSecurityException is
// thrown.
string get_config_value(1:string name, 2:string defaultValue)
throws(1:ConfigValSecurityException o1)
// converts a partition name into a partition values array
list<string> partition_name_to_vals(1: string part_name)
throws(1: MetaException o1)
// converts a partition name into a partition specification (a mapping from
// the partition cols to the values)
map<string, string> partition_name_to_spec(1: string part_name)
throws(1: MetaException o1)
void markPartitionForEvent(1:string db_name, 2:string tbl_name, 3:map<string,string> part_vals,
4:PartitionEventType eventType) throws (1: MetaException o1, 2: NoSuchObjectException o2,
3: UnknownDBException o3, 4: UnknownTableException o4, 5: UnknownPartitionException o5,
6: InvalidPartitionException o6)
bool isPartitionMarkedForEvent(1:string db_name, 2:string tbl_name, 3:map<string,string> part_vals,
4: PartitionEventType eventType) throws (1: MetaException o1, 2:NoSuchObjectException o2,
3: UnknownDBException o3, 4: UnknownTableException o4, 5: UnknownPartitionException o5,
6: InvalidPartitionException o6)
//index
Index add_index(1:Index new_index, 2: Table index_table)
throws(1:InvalidObjectException o1, 2:AlreadyExistsException o2, 3:MetaException o3)
void alter_index(1:string dbname, 2:string base_tbl_name, 3:string idx_name, 4:Index new_idx)
throws (1:InvalidOperationException o1, 2:MetaException o2)
bool drop_index_by_name(1:string db_name, 2:string tbl_name, 3:string index_name, 4:bool deleteData)
throws(1:NoSuchObjectException o1, 2:MetaException o2)
Index get_index_by_name(1:string db_name 2:string tbl_name, 3:string index_name)
throws(1:MetaException o1, 2:NoSuchObjectException o2)
list<Index> get_indexes(1:string db_name, 2:string tbl_name, 3:i16 max_indexes=-1)
throws(1:NoSuchObjectException o1, 2:MetaException o2)
list<string> get_index_names(1:string db_name, 2:string tbl_name, 3:i16 max_indexes=-1)
throws(1:MetaException o2)
// column statistics interfaces
// update APIs persist the column statistics object(s) that are passed in. If statistics already
// exists for one or more columns, the existing statistics will be overwritten. The update APIs
// validate that the dbName, tableName, partName, colName[] passed in as part of the ColumnStatistics
// struct are valid, throws InvalidInputException/NoSuchObjectException if found to be invalid
bool update_table_column_statistics(1:ColumnStatistics stats_obj) throws (1:NoSuchObjectException o1,
2:InvalidObjectException o2, 3:MetaException o3, 4:InvalidInputException o4)
bool update_partition_column_statistics(1:ColumnStatistics stats_obj) throws (1:NoSuchObjectException o1,
2:InvalidObjectException o2, 3:MetaException o3, 4:InvalidInputException o4)
// get APIs return the column statistics corresponding to db_name, tbl_name, [part_name], col_name if
// such statistics exists. If the required statistics doesn't exist, get APIs throw NoSuchObjectException
// For instance, if get_table_column_statistics is called on a partitioned table for which only
// partition level column stats exist, get_table_column_statistics will throw NoSuchObjectException
ColumnStatistics get_table_column_statistics(1:string db_name, 2:string tbl_name, 3:string col_name) throws
(1:NoSuchObjectException o1, 2:MetaException o2, 3:InvalidInputException o3, 4:InvalidObjectException o4)
ColumnStatistics get_partition_column_statistics(1:string db_name, 2:string tbl_name, 3:string part_name,
4:string col_name) throws (1:NoSuchObjectException o1, 2:MetaException o2,
3:InvalidInputException o3, 4:InvalidObjectException o4)
TableStatsResult get_table_statistics_req(1:TableStatsRequest request) throws
(1:NoSuchObjectException o1, 2:MetaException o2)
PartitionsStatsResult get_partitions_statistics_req(1:PartitionsStatsRequest request) throws
(1:NoSuchObjectException o1, 2:MetaException o2)
AggrStats get_aggr_stats_for(1:PartitionsStatsRequest request) throws
(1:NoSuchObjectException o1, 2:MetaException o2)
bool set_aggr_stats_for(1:SetPartitionsStatsRequest request) throws
(1:NoSuchObjectException o1, 2:InvalidObjectException o2, 3:MetaException o3, 4:InvalidInputException o4)
// delete APIs attempt to delete column statistics, if found, associated with a given db_name, tbl_name, [part_name]
// and col_name. If the delete API doesn't find the statistics record in the metastore, throws NoSuchObjectException
// Delete API validates the input and if the input is invalid throws InvalidInputException/InvalidObjectException.
bool delete_partition_column_statistics(1:string db_name, 2:string tbl_name, 3:string part_name, 4:string col_name) throws
(1:NoSuchObjectException o1, 2:MetaException o2, 3:InvalidObjectException o3,
4:InvalidInputException o4)
bool delete_table_column_statistics(1:string db_name, 2:string tbl_name, 3:string col_name) throws
(1:NoSuchObjectException o1, 2:MetaException o2, 3:InvalidObjectException o3,
4:InvalidInputException o4)
//
// user-defined functions
//
void create_function(1:Function func)
throws (1:AlreadyExistsException o1,
2:InvalidObjectException o2,
3:MetaException o3,
4:NoSuchObjectException o4)
void drop_function(1:string dbName, 2:string funcName)
throws (1:NoSuchObjectException o1, 2:MetaException o3)
void alter_function(1:string dbName, 2:string funcName, 3:Function newFunc)
throws (1:InvalidOperationException o1, 2:MetaException o2)
list<string> get_functions(1:string dbName, 2:string pattern)
throws (1:MetaException o1)
Function get_function(1:string dbName, 2:string funcName)
throws (1:MetaException o1, 2:NoSuchObjectException o2)
//authorization privileges
bool create_role(1:Role role) throws(1:MetaException o1)
bool drop_role(1:string role_name) throws(1:MetaException o1)
list<string> get_role_names() throws(1:MetaException o1)
// Deprecated, use grant_revoke_role()
bool grant_role(1:string role_name, 2:string principal_name, 3:PrincipalType principal_type,
4:string grantor, 5:PrincipalType grantorType, 6:bool grant_option) throws(1:MetaException o1)
// Deprecated, use grant_revoke_role()
bool revoke_role(1:string role_name, 2:string principal_name, 3:PrincipalType principal_type)
throws(1:MetaException o1)
list<Role> list_roles(1:string principal_name, 2:PrincipalType principal_type) throws(1:MetaException o1)
GrantRevokeRoleResponse grant_revoke_role(1:GrantRevokeRoleRequest request) throws(1:MetaException o1)
// get all role-grants for users/roles that have been granted the given role
// Note that in the returned list of RolePrincipalGrants, the roleName is
// redundant as it would match the role_name argument of this function
GetPrincipalsInRoleResponse get_principals_in_role(1: GetPrincipalsInRoleRequest request) throws(1:MetaException o1)
// get grant information of all roles granted to the given principal
// Note that in the returned list of RolePrincipalGrants, the principal name,type is
// redundant as it would match the principal name,type arguments of this function
GetRoleGrantsForPrincipalResponse get_role_grants_for_principal(1: GetRoleGrantsForPrincipalRequest request) throws(1:MetaException o1)
PrincipalPrivilegeSet get_privilege_set(1:HiveObjectRef hiveObject, 2:string user_name,
3: list<string> group_names) throws(1:MetaException o1)
list<HiveObjectPrivilege> list_privileges(1:string principal_name, 2:PrincipalType principal_type,
3: HiveObjectRef hiveObject) throws(1:MetaException o1)
// Deprecated, use grant_revoke_privileges()
bool grant_privileges(1:PrivilegeBag privileges) throws(1:MetaException o1)
// Deprecated, use grant_revoke_privileges()
bool revoke_privileges(1:PrivilegeBag privileges) throws(1:MetaException o1)
GrantRevokePrivilegeResponse grant_revoke_privileges(1:GrantRevokePrivilegeRequest request) throws(1:MetaException o1);
// this is used by metastore client to send UGI information to metastore server immediately
// after setting up a connection.
list<string> set_ugi(1:string user_name, 2:list<string> group_names) throws (1:MetaException o1)
//Authentication (delegation token) interfaces
// get metastore server delegation token for use from the map/reduce tasks to authenticate
// to metastore server
string get_delegation_token(1:string token_owner, 2:string renewer_kerberos_principal_name)
throws (1:MetaException o1)
// method to renew delegation token obtained from metastore server
i64 renew_delegation_token(1:string token_str_form) throws (1:MetaException o1)
// method to cancel delegation token obtained from metastore server
void cancel_delegation_token(1:string token_str_form) throws (1:MetaException o1)
// Transaction and lock management calls
// Get just list of open transactions
GetOpenTxnsResponse get_open_txns()
// Get list of open transactions with state (open, aborted)
GetOpenTxnsInfoResponse get_open_txns_info()
OpenTxnsResponse open_txns(1:OpenTxnRequest rqst)
void abort_txn(1:AbortTxnRequest rqst) throws (1:NoSuchTxnException o1)
void commit_txn(1:CommitTxnRequest rqst) throws (1:NoSuchTxnException o1, 2:TxnAbortedException o2)
LockResponse lock(1:LockRequest rqst) throws (1:NoSuchTxnException o1, 2:TxnAbortedException o2)
LockResponse check_lock(1:CheckLockRequest rqst)
throws (1:NoSuchTxnException o1, 2:TxnAbortedException o2, 3:NoSuchLockException o3)
void unlock(1:UnlockRequest rqst) throws (1:NoSuchLockException o1, 2:TxnOpenException o2)
ShowLocksResponse show_locks(1:ShowLocksRequest rqst)
void heartbeat(1:HeartbeatRequest ids) throws (1:NoSuchLockException o1, 2:NoSuchTxnException o2, 3:TxnAbortedException o3)
HeartbeatTxnRangeResponse heartbeat_txn_range(1:HeartbeatTxnRangeRequest txns)
void compact(1:CompactionRequest rqst)
ShowCompactResponse show_compact(1:ShowCompactRequest rqst)
}""")
Assert.assertEquals(td.get.toString, """ThriftDef(List(),List(),List(),List(),List(),List(),List(),List(),List(),List(),List(ServiceDef(ThriftHiveMetastore,Some(fb303.FacebookService),List(FunctionDef(false,BaseType(string,None),getMetaConf,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),key,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,VoidType(),setMetaConf,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),key,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),value,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,VoidType(),create_database,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(Database),database,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(AlreadyExistsException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Database),get_database,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,VoidType(),drop_database,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(bool,None),deleteData,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(bool,None),cascade,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidOperationException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),get_databases,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),pattern,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),get_all_databases,List(),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,VoidType(),alter_database,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbname,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(Database),db,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Type),get_type,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),create_type,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(Type),type,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(AlreadyExistsException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),drop_type,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),type,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,MapType(BaseType(string,None),IdentifierType(Type),None,None),get_type_all,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(FieldSchema),None,None),get_fields,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),table_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(UnknownTableException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(UnknownDBException),o3,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(FieldSchema),None,None),get_schema,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),table_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(UnknownTableException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(UnknownDBException),o3,None,false,false,None,None))),None), FunctionDef(false,VoidType(),create_table,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(Table),tbl,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(AlreadyExistsException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(NoSuchObjectException),o4,None,false,false,None,None))),None), FunctionDef(false,VoidType(),create_table_with_environment_context,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(Table),tbl,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(EnvironmentContext),environment_context,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(AlreadyExistsException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(NoSuchObjectException),o4,None,false,false,None,None))),None), FunctionDef(false,VoidType(),drop_table,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbname,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(bool,None),deleteData,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,VoidType(),drop_table_with_environment_context,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbname,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(bool,None),deleteData,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(EnvironmentContext),environment_context,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),get_tables,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),pattern,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),get_all_tables,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Table),get_table,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbname,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(Table),None,None),get_table_objects_by_name,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbname,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,ListType(BaseType(string,None),None,None),tbl_names,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidOperationException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(UnknownDBException),o3,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),get_table_names_by_filter,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbname,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),filter,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(i16,None),max_tables,Some(DoubleConstant(-1.0)),false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidOperationException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(UnknownDBException),o3,None,false,false,None,None))),None), FunctionDef(false,VoidType(),alter_table,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbname,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(Table),new_tbl,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidOperationException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,VoidType(),alter_table_with_environment_context,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbname,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(Table),new_tbl,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(EnvironmentContext),environment_context,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidOperationException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Partition),add_partition,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(Partition),new_part,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(AlreadyExistsException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Partition),add_partition_with_environment_context,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(Partition),new_part,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(EnvironmentContext),environment_context,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(AlreadyExistsException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,BaseType(i32,None),add_partitions,List(FieldDef(Some(IntConstant(1)),false,ListType(IdentifierType(Partition),None,None),new_parts,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(AlreadyExistsException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,BaseType(i32,None),add_partitions_pspec,List(FieldDef(Some(IntConstant(1)),false,ListType(IdentifierType(PartitionSpec),None,None),new_parts,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(AlreadyExistsException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Partition),append_partition,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(AlreadyExistsException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(AddPartitionsResult),add_partitions_req,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(AddPartitionsRequest),request,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(AlreadyExistsException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Partition),append_partition_with_environment_context,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(EnvironmentContext),environment_context,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(AlreadyExistsException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Partition),append_partition_by_name,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),part_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(AlreadyExistsException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Partition),append_partition_by_name_with_environment_context,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),part_name,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(EnvironmentContext),environment_context,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(AlreadyExistsException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),drop_partition,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(bool,None),deleteData,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),drop_partition_with_environment_context,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(bool,None),deleteData,None,false,false,None,None), FieldDef(Some(IntConstant(5)),false,IdentifierType(EnvironmentContext),environment_context,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),drop_partition_by_name,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),part_name,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(bool,None),deleteData,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),drop_partition_by_name_with_environment_context,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),part_name,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(bool,None),deleteData,None,false,false,None,None), FieldDef(Some(IntConstant(5)),false,IdentifierType(EnvironmentContext),environment_context,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(DropPartitionsResult),drop_partitions_req,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(DropPartitionsRequest),req,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Partition),get_partition,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Partition),exchange_partition,List(FieldDef(Some(IntConstant(1)),false,MapType(BaseType(string,None),BaseType(string,None),None,None),partitionSpecs,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),source_db,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),source_table_name,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(string,None),dest_db,None,false,false,None,None), FieldDef(Some(IntConstant(5)),false,BaseType(string,None),dest_table_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(InvalidObjectException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(InvalidInputException),o4,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Partition),get_partition_with_auth,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(string,None),user_name,None,false,false,None,None), FieldDef(Some(IntConstant(5)),false,ListType(BaseType(string,None),None,None),group_names,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Partition),get_partition_by_name,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),part_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(Partition),None,None),get_partitions,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(i16,None),max_parts,Some(DoubleConstant(-1.0)),false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(Partition),None,None),get_partitions_with_auth,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(i16,None),max_parts,Some(DoubleConstant(-1.0)),false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(string,None),user_name,None,false,false,None,None), FieldDef(Some(IntConstant(5)),false,ListType(BaseType(string,None),None,None),group_names,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(PartitionSpec),None,None),get_partitions_pspec,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(i32,None),max_parts,Some(DoubleConstant(-1.0)),false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),get_partition_names,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(i16,None),max_parts,Some(DoubleConstant(-1.0)),false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(Partition),None,None),get_partitions_ps,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(i16,None),max_parts,Some(DoubleConstant(-1.0)),false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(Partition),None,None),get_partitions_ps_with_auth,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(i16,None),max_parts,Some(DoubleConstant(-1.0)),false,false,None,None), FieldDef(Some(IntConstant(5)),false,BaseType(string,None),user_name,None,false,false,None,None), FieldDef(Some(IntConstant(6)),false,ListType(BaseType(string,None),None,None),group_names,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),get_partition_names_ps,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(i16,None),max_parts,Some(DoubleConstant(-1.0)),false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(Partition),None,None),get_partitions_by_filter,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),filter,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(i16,None),max_parts,Some(DoubleConstant(-1.0)),false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(PartitionSpec),None,None),get_part_specs_by_filter,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),filter,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(i32,None),max_parts,Some(DoubleConstant(-1.0)),false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(PartitionsByExprResult),get_partitions_by_expr,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(PartitionsByExprRequest),req,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(Partition),None,None),get_partitions_by_names,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),names,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,VoidType(),alter_partition,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(Partition),new_part,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidOperationException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,VoidType(),alter_partitions,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(IdentifierType(Partition),None,None),new_parts,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidOperationException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,VoidType(),alter_partition_with_environment_context,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(Partition),new_part,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(EnvironmentContext),environment_context,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidOperationException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,VoidType(),rename_partition,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(Partition),new_part,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidOperationException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),partition_name_has_valid_characters,List(FieldDef(Some(IntConstant(1)),false,ListType(BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(bool,None),throw_exception,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,BaseType(string,None),get_config_value,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),defaultValue,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(ConfigValSecurityException),o1,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),partition_name_to_vals,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),part_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,MapType(BaseType(string,None),BaseType(string,None),None,None),partition_name_to_spec,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),part_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,VoidType(),markPartitionForEvent,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,MapType(BaseType(string,None),BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(PartitionEventType),eventType,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(UnknownDBException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(UnknownTableException),o4,None,false,false,None,None), FieldDef(Some(IntConstant(5)),false,IdentifierType(UnknownPartitionException),o5,None,false,false,None,None), FieldDef(Some(IntConstant(6)),false,IdentifierType(InvalidPartitionException),o6,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),isPartitionMarkedForEvent,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,MapType(BaseType(string,None),BaseType(string,None),None,None),part_vals,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(PartitionEventType),eventType,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(UnknownDBException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(UnknownTableException),o4,None,false,false,None,None), FieldDef(Some(IntConstant(5)),false,IdentifierType(UnknownPartitionException),o5,None,false,false,None,None), FieldDef(Some(IntConstant(6)),false,IdentifierType(InvalidPartitionException),o6,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Index),add_index,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(Index),new_index,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(Table),index_table,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(AlreadyExistsException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,VoidType(),alter_index,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbname,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),base_tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),idx_name,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(Index),new_idx,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidOperationException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),drop_index_by_name,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),index_name,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(bool,None),deleteData,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Index),get_index_by_name,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),index_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(Index),None,None),get_indexes,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(i16,None),max_indexes,Some(DoubleConstant(-1.0)),false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),get_index_names,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(i16,None),max_indexes,Some(DoubleConstant(-1.0)),false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),update_table_column_statistics,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(ColumnStatistics),stats_obj,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(InvalidInputException),o4,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),update_partition_column_statistics,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(ColumnStatistics),stats_obj,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(InvalidInputException),o4,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(ColumnStatistics),get_table_column_statistics,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),col_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(InvalidInputException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(InvalidObjectException),o4,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(ColumnStatistics),get_partition_column_statistics,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),part_name,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(string,None),col_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(InvalidInputException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(InvalidObjectException),o4,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(TableStatsResult),get_table_statistics_req,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(TableStatsRequest),request,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(PartitionsStatsResult),get_partitions_statistics_req,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(PartitionsStatsRequest),request,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(AggrStats),get_aggr_stats_for,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(PartitionsStatsRequest),request,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),set_aggr_stats_for,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(SetPartitionsStatsRequest),request,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(InvalidInputException),o4,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),delete_partition_column_statistics,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),part_name,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(string,None),col_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(InvalidObjectException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(InvalidInputException),o4,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),delete_table_column_statistics,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),db_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),tbl_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,BaseType(string,None),col_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(InvalidObjectException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(InvalidInputException),o4,None,false,false,None,None))),None), FunctionDef(false,VoidType(),create_function,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(Function),func,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(AlreadyExistsException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(InvalidObjectException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(MetaException),o3,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,IdentifierType(NoSuchObjectException),o4,None,false,false,None,None))),None), FunctionDef(false,VoidType(),drop_function,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbName,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),funcName,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchObjectException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o3,None,false,false,None,None))),None), FunctionDef(false,VoidType(),alter_function,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbName,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),funcName,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(Function),newFunc,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(InvalidOperationException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(MetaException),o2,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),get_functions,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbName,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),pattern,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(Function),get_function,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),dbName,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),funcName,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchObjectException),o2,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),create_role,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(Role),role,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),drop_role,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),role_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),get_role_names,List(),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),grant_role,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),role_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),principal_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(PrincipalType),principal_type,None,false,false,None,None), FieldDef(Some(IntConstant(4)),false,BaseType(string,None),grantor,None,false,false,None,None), FieldDef(Some(IntConstant(5)),false,IdentifierType(PrincipalType),grantorType,None,false,false,None,None), FieldDef(Some(IntConstant(6)),false,BaseType(bool,None),grant_option,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),revoke_role,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),role_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),principal_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(PrincipalType),principal_type,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(Role),None,None),list_roles,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),principal_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(PrincipalType),principal_type,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(GrantRevokeRoleResponse),grant_revoke_role,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(GrantRevokeRoleRequest),request,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(GetPrincipalsInRoleResponse),get_principals_in_role,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(GetPrincipalsInRoleRequest),request,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(GetRoleGrantsForPrincipalResponse),get_role_grants_for_principal,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(GetRoleGrantsForPrincipalRequest),request,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(PrincipalPrivilegeSet),get_privilege_set,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(HiveObjectRef),hiveObject,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),user_name,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,ListType(BaseType(string,None),None,None),group_names,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,ListType(IdentifierType(HiveObjectPrivilege),None,None),list_privileges,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),principal_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(PrincipalType),principal_type,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(HiveObjectRef),hiveObject,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),grant_privileges,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(PrivilegeBag),privileges,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,BaseType(bool,None),revoke_privileges,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(PrivilegeBag),privileges,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(GrantRevokePrivilegeResponse),grant_revoke_privileges,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(GrantRevokePrivilegeRequest),request,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,ListType(BaseType(string,None),None,None),set_ugi,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),user_name,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,ListType(BaseType(string,None),None,None),group_names,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,BaseType(string,None),get_delegation_token,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),token_owner,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,BaseType(string,None),renewer_kerberos_principal_name,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,BaseType(i64,None),renew_delegation_token,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),token_str_form,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,VoidType(),cancel_delegation_token,List(FieldDef(Some(IntConstant(1)),false,BaseType(string,None),token_str_form,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(MetaException),o1,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(GetOpenTxnsResponse),get_open_txns,List(),None,None), FunctionDef(false,IdentifierType(GetOpenTxnsInfoResponse),get_open_txns_info,List(),None,None), FunctionDef(false,IdentifierType(OpenTxnsResponse),open_txns,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(OpenTxnRequest),rqst,None,false,false,None,None)),None,None), FunctionDef(false,VoidType(),abort_txn,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(AbortTxnRequest),rqst,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchTxnException),o1,None,false,false,None,None))),None), FunctionDef(false,VoidType(),commit_txn,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(CommitTxnRequest),rqst,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchTxnException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(TxnAbortedException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(LockResponse),lock,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(LockRequest),rqst,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchTxnException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(TxnAbortedException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(LockResponse),check_lock,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(CheckLockRequest),rqst,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchTxnException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(TxnAbortedException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(NoSuchLockException),o3,None,false,false,None,None))),None), FunctionDef(false,VoidType(),unlock,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(UnlockRequest),rqst,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchLockException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(TxnOpenException),o2,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(ShowLocksResponse),show_locks,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(ShowLocksRequest),rqst,None,false,false,None,None)),None,None), FunctionDef(false,VoidType(),heartbeat,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(HeartbeatRequest),ids,None,false,false,None,None)),Some(List(FieldDef(Some(IntConstant(1)),false,IdentifierType(NoSuchLockException),o1,None,false,false,None,None), FieldDef(Some(IntConstant(2)),false,IdentifierType(NoSuchTxnException),o2,None,false,false,None,None), FieldDef(Some(IntConstant(3)),false,IdentifierType(TxnAbortedException),o3,None,false,false,None,None))),None), FunctionDef(false,IdentifierType(HeartbeatTxnRangeResponse),heartbeat_txn_range,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(HeartbeatTxnRangeRequest),txns,None,false,false,None,None)),None,None), FunctionDef(false,VoidType(),compact,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(CompactionRequest),rqst,None,false,false,None,None)),None,None), FunctionDef(false,IdentifierType(ShowCompactResponse),show_compact,List(FieldDef(Some(IntConstant(1)),false,IdentifierType(ShowCompactRequest),rqst,None,false,false,None,None)),None,None)),None)))""")
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment