incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject [03/51] [partial] Restructuring the distribution projects to allow for seperate hadoop2 and hadoop1 binaries.
Date Tue, 29 Apr 2014 21:51:21 GMT
http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/7395b9cb/distribution-hadoop2/src/main/scripts/interface/gen-perl/Blur/Types.pm
----------------------------------------------------------------------
diff --git a/distribution-hadoop2/src/main/scripts/interface/gen-perl/Blur/Types.pm b/distribution-hadoop2/src/main/scripts/interface/gen-perl/Blur/Types.pm
new file mode 100644
index 0000000..3765c80
--- /dev/null
+++ b/distribution-hadoop2/src/main/scripts/interface/gen-perl/Blur/Types.pm
@@ -0,0 +1,3806 @@
+#
+# Autogenerated by Thrift Compiler (0.9.0)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+require 5.6.0;
+use strict;
+use warnings;
+use Thrift;
+
+package Blur::ErrorType;
+use constant UNKNOWN => 0;
+use constant QUERY_CANCEL => 1;
+use constant QUERY_TIMEOUT => 2;
+use constant BACK_PRESSURE => 3;
+use constant REQUEST_TIMEOUT => 4;
+package Blur::ScoreType;
+use constant SUPER => 0;
+use constant AGGREGATE => 1;
+use constant BEST => 2;
+use constant CONSTANT => 3;
+package Blur::QueryState;
+use constant RUNNING => 0;
+use constant INTERRUPTED => 1;
+use constant COMPLETE => 2;
+use constant BACK_PRESSURE_INTERRUPTED => 3;
+package Blur::Status;
+use constant NOT_FOUND => 0;
+use constant FOUND => 1;
+package Blur::RowMutationType;
+use constant DELETE_ROW => 0;
+use constant REPLACE_ROW => 1;
+use constant UPDATE_ROW => 2;
+package Blur::RecordMutationType;
+use constant DELETE_ENTIRE_RECORD => 0;
+use constant REPLACE_ENTIRE_RECORD => 1;
+use constant REPLACE_COLUMNS => 2;
+use constant APPEND_COLUMN_VALUES => 3;
+package Blur::ShardState;
+use constant OPENING => 0;
+use constant OPEN => 1;
+use constant OPENING_ERROR => 2;
+use constant CLOSING => 3;
+use constant CLOSED => 4;
+use constant CLOSING_ERROR => 5;
+package Blur::Level;
+use constant OFF => 0;
+use constant FATAL => 1;
+use constant ERROR => 2;
+use constant WARN => 3;
+use constant INFO => 4;
+use constant DEBUG => 5;
+use constant TRACE => 6;
+use constant ALL => 7;
+package Blur::BlurException;
+use base qw(Thrift::TException);
+use base qw(Class::Accessor);
+Blur::BlurException->mk_accessors( qw( message stackTraceStr errorType ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{message} = undef;
+  $self->{stackTraceStr} = undef;
+  $self->{errorType} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{message}) {
+      $self->{message} = $vals->{message};
+    }
+    if (defined $vals->{stackTraceStr}) {
+      $self->{stackTraceStr} = $vals->{stackTraceStr};
+    }
+    if (defined $vals->{errorType}) {
+      $self->{errorType} = $vals->{errorType};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'BlurException';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{message});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{stackTraceStr});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{errorType});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('BlurException');
+  if (defined $self->{message}) {
+    $xfer += $output->writeFieldBegin('message', TType::STRING, 1);
+    $xfer += $output->writeString($self->{message});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{stackTraceStr}) {
+    $xfer += $output->writeFieldBegin('stackTraceStr', TType::STRING, 2);
+    $xfer += $output->writeString($self->{stackTraceStr});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{errorType}) {
+    $xfer += $output->writeFieldBegin('errorType', TType::I32, 3);
+    $xfer += $output->writeI32($self->{errorType});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::Column;
+use base qw(Class::Accessor);
+Blur::Column->mk_accessors( qw( name value ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{name} = undef;
+  $self->{value} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{name}) {
+      $self->{name} = $vals->{name};
+    }
+    if (defined $vals->{value}) {
+      $self->{value} = $vals->{value};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Column';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{name});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{value});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('Column');
+  if (defined $self->{name}) {
+    $xfer += $output->writeFieldBegin('name', TType::STRING, 1);
+    $xfer += $output->writeString($self->{name});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{value}) {
+    $xfer += $output->writeFieldBegin('value', TType::STRING, 2);
+    $xfer += $output->writeString($self->{value});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::Record;
+use base qw(Class::Accessor);
+Blur::Record->mk_accessors( qw( recordId family columns ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{recordId} = undef;
+  $self->{family} = undef;
+  $self->{columns} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{recordId}) {
+      $self->{recordId} = $vals->{recordId};
+    }
+    if (defined $vals->{family}) {
+      $self->{family} = $vals->{family};
+    }
+    if (defined $vals->{columns}) {
+      $self->{columns} = $vals->{columns};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Record';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{recordId});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{family});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size0 = 0;
+          $self->{columns} = [];
+          my $_etype3 = 0;
+          $xfer += $input->readListBegin(\$_etype3, \$_size0);
+          for (my $_i4 = 0; $_i4 < $_size0; ++$_i4)
+          {
+            my $elem5 = undef;
+            $elem5 = new Blur::Column();
+            $xfer += $elem5->read($input);
+            push(@{$self->{columns}},$elem5);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('Record');
+  if (defined $self->{recordId}) {
+    $xfer += $output->writeFieldBegin('recordId', TType::STRING, 1);
+    $xfer += $output->writeString($self->{recordId});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{family}) {
+    $xfer += $output->writeFieldBegin('family', TType::STRING, 2);
+    $xfer += $output->writeString($self->{family});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{columns}) {
+    $xfer += $output->writeFieldBegin('columns', TType::LIST, 3);
+    {
+      $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{columns}}));
+      {
+        foreach my $iter6 (@{$self->{columns}}) 
+        {
+          $xfer += ${iter6}->write($output);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::Row;
+use base qw(Class::Accessor);
+Blur::Row->mk_accessors( qw( id records ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{id} = undef;
+  $self->{records} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{id}) {
+      $self->{id} = $vals->{id};
+    }
+    if (defined $vals->{records}) {
+      $self->{records} = $vals->{records};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Row';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{id});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size7 = 0;
+          $self->{records} = [];
+          my $_etype10 = 0;
+          $xfer += $input->readListBegin(\$_etype10, \$_size7);
+          for (my $_i11 = 0; $_i11 < $_size7; ++$_i11)
+          {
+            my $elem12 = undef;
+            $elem12 = new Blur::Record();
+            $xfer += $elem12->read($input);
+            push(@{$self->{records}},$elem12);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('Row');
+  if (defined $self->{id}) {
+    $xfer += $output->writeFieldBegin('id', TType::STRING, 1);
+    $xfer += $output->writeString($self->{id});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{records}) {
+    $xfer += $output->writeFieldBegin('records', TType::LIST, 2);
+    {
+      $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{records}}));
+      {
+        foreach my $iter13 (@{$self->{records}}) 
+        {
+          $xfer += ${iter13}->write($output);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::Query;
+use base qw(Class::Accessor);
+Blur::Query->mk_accessors( qw( query rowQuery scoreType rowFilter recordFilter ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{query} = undef;
+  $self->{rowQuery} = 1;
+  $self->{scoreType} = 0;
+  $self->{rowFilter} = undef;
+  $self->{recordFilter} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{query}) {
+      $self->{query} = $vals->{query};
+    }
+    if (defined $vals->{rowQuery}) {
+      $self->{rowQuery} = $vals->{rowQuery};
+    }
+    if (defined $vals->{scoreType}) {
+      $self->{scoreType} = $vals->{scoreType};
+    }
+    if (defined $vals->{rowFilter}) {
+      $self->{rowFilter} = $vals->{rowFilter};
+    }
+    if (defined $vals->{recordFilter}) {
+      $self->{recordFilter} = $vals->{recordFilter};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Query';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{query});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{rowQuery});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{scoreType});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{rowFilter});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^5$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{recordFilter});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('Query');
+  if (defined $self->{query}) {
+    $xfer += $output->writeFieldBegin('query', TType::STRING, 1);
+    $xfer += $output->writeString($self->{query});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{rowQuery}) {
+    $xfer += $output->writeFieldBegin('rowQuery', TType::BOOL, 2);
+    $xfer += $output->writeBool($self->{rowQuery});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{scoreType}) {
+    $xfer += $output->writeFieldBegin('scoreType', TType::I32, 3);
+    $xfer += $output->writeI32($self->{scoreType});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{rowFilter}) {
+    $xfer += $output->writeFieldBegin('rowFilter', TType::STRING, 4);
+    $xfer += $output->writeString($self->{rowFilter});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{recordFilter}) {
+    $xfer += $output->writeFieldBegin('recordFilter', TType::STRING, 5);
+    $xfer += $output->writeString($self->{recordFilter});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::HighlightOptions;
+use base qw(Class::Accessor);
+Blur::HighlightOptions->mk_accessors( qw( query preTag postTag ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{query} = undef;
+  $self->{preTag} = "<<<";
+  $self->{postTag} = ">>>";
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{query}) {
+      $self->{query} = $vals->{query};
+    }
+    if (defined $vals->{preTag}) {
+      $self->{preTag} = $vals->{preTag};
+    }
+    if (defined $vals->{postTag}) {
+      $self->{postTag} = $vals->{postTag};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'HighlightOptions';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{query} = new Blur::Query();
+        $xfer += $self->{query}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{preTag});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{postTag});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('HighlightOptions');
+  if (defined $self->{query}) {
+    $xfer += $output->writeFieldBegin('query', TType::STRUCT, 1);
+    $xfer += $self->{query}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{preTag}) {
+    $xfer += $output->writeFieldBegin('preTag', TType::STRING, 2);
+    $xfer += $output->writeString($self->{preTag});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{postTag}) {
+    $xfer += $output->writeFieldBegin('postTag', TType::STRING, 3);
+    $xfer += $output->writeString($self->{postTag});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::Selector;
+use base qw(Class::Accessor);
+Blur::Selector->mk_accessors( qw( recordOnly locationId rowId recordId columnFamiliesToFetch columnsToFetch startRecord maxRecordsToFetch highlightOptions orderOfFamiliesToFetch ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{recordOnly} = undef;
+  $self->{locationId} = undef;
+  $self->{rowId} = undef;
+  $self->{recordId} = undef;
+  $self->{columnFamiliesToFetch} = undef;
+  $self->{columnsToFetch} = undef;
+  $self->{startRecord} = 0;
+  $self->{maxRecordsToFetch} = 1000;
+  $self->{highlightOptions} = undef;
+  $self->{orderOfFamiliesToFetch} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{recordOnly}) {
+      $self->{recordOnly} = $vals->{recordOnly};
+    }
+    if (defined $vals->{locationId}) {
+      $self->{locationId} = $vals->{locationId};
+    }
+    if (defined $vals->{rowId}) {
+      $self->{rowId} = $vals->{rowId};
+    }
+    if (defined $vals->{recordId}) {
+      $self->{recordId} = $vals->{recordId};
+    }
+    if (defined $vals->{columnFamiliesToFetch}) {
+      $self->{columnFamiliesToFetch} = $vals->{columnFamiliesToFetch};
+    }
+    if (defined $vals->{columnsToFetch}) {
+      $self->{columnsToFetch} = $vals->{columnsToFetch};
+    }
+    if (defined $vals->{startRecord}) {
+      $self->{startRecord} = $vals->{startRecord};
+    }
+    if (defined $vals->{maxRecordsToFetch}) {
+      $self->{maxRecordsToFetch} = $vals->{maxRecordsToFetch};
+    }
+    if (defined $vals->{highlightOptions}) {
+      $self->{highlightOptions} = $vals->{highlightOptions};
+    }
+    if (defined $vals->{orderOfFamiliesToFetch}) {
+      $self->{orderOfFamiliesToFetch} = $vals->{orderOfFamiliesToFetch};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Selector';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{recordOnly});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{locationId});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{rowId});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{recordId});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^5$/ && do{      if ($ftype == TType::SET) {
+        {
+          my $_size14 = 0;
+          $self->{columnFamiliesToFetch} = {};
+          my $_etype17 = 0;
+          $xfer += $input->readSetBegin(\$_etype17, \$_size14);
+          for (my $_i18 = 0; $_i18 < $_size14; ++$_i18)
+          {
+            my $elem19 = undef;
+            $xfer += $input->readString(\$elem19);
+            $self->{columnFamiliesToFetch}->{$elem19} = 1;
+          }
+          $xfer += $input->readSetEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^6$/ && do{      if ($ftype == TType::MAP) {
+        {
+          my $_size20 = 0;
+          $self->{columnsToFetch} = {};
+          my $_ktype21 = 0;
+          my $_vtype22 = 0;
+          $xfer += $input->readMapBegin(\$_ktype21, \$_vtype22, \$_size20);
+          for (my $_i24 = 0; $_i24 < $_size20; ++$_i24)
+          {
+            my $key25 = '';
+            my $val26 = [];
+            $xfer += $input->readString(\$key25);
+            {
+              my $_size27 = 0;
+              $val26 = {};
+              my $_etype30 = 0;
+              $xfer += $input->readSetBegin(\$_etype30, \$_size27);
+              for (my $_i31 = 0; $_i31 < $_size27; ++$_i31)
+              {
+                my $elem32 = undef;
+                $xfer += $input->readString(\$elem32);
+                $val26->{$elem32} = 1;
+              }
+              $xfer += $input->readSetEnd();
+            }
+            $self->{columnsToFetch}->{$key25} = $val26;
+          }
+          $xfer += $input->readMapEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^8$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{startRecord});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^9$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{maxRecordsToFetch});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^10$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{highlightOptions} = new Blur::HighlightOptions();
+        $xfer += $self->{highlightOptions}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^11$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size33 = 0;
+          $self->{orderOfFamiliesToFetch} = [];
+          my $_etype36 = 0;
+          $xfer += $input->readListBegin(\$_etype36, \$_size33);
+          for (my $_i37 = 0; $_i37 < $_size33; ++$_i37)
+          {
+            my $elem38 = undef;
+            $xfer += $input->readString(\$elem38);
+            push(@{$self->{orderOfFamiliesToFetch}},$elem38);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('Selector');
+  if (defined $self->{recordOnly}) {
+    $xfer += $output->writeFieldBegin('recordOnly', TType::BOOL, 1);
+    $xfer += $output->writeBool($self->{recordOnly});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{locationId}) {
+    $xfer += $output->writeFieldBegin('locationId', TType::STRING, 2);
+    $xfer += $output->writeString($self->{locationId});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{rowId}) {
+    $xfer += $output->writeFieldBegin('rowId', TType::STRING, 3);
+    $xfer += $output->writeString($self->{rowId});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{recordId}) {
+    $xfer += $output->writeFieldBegin('recordId', TType::STRING, 4);
+    $xfer += $output->writeString($self->{recordId});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{columnFamiliesToFetch}) {
+    $xfer += $output->writeFieldBegin('columnFamiliesToFetch', TType::SET, 5);
+    {
+      $xfer += $output->writeSetBegin(TType::STRING, scalar(@{$self->{columnFamiliesToFetch}}));
+      {
+        foreach my $iter39 (@{$self->{columnFamiliesToFetch}})
+        {
+          $xfer += $output->writeString($iter39);
+        }
+      }
+      $xfer += $output->writeSetEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{columnsToFetch}) {
+    $xfer += $output->writeFieldBegin('columnsToFetch', TType::MAP, 6);
+    {
+      $xfer += $output->writeMapBegin(TType::STRING, TType::SET, scalar(keys %{$self->{columnsToFetch}}));
+      {
+        while( my ($kiter40,$viter41) = each %{$self->{columnsToFetch}}) 
+        {
+          $xfer += $output->writeString($kiter40);
+          {
+            $xfer += $output->writeSetBegin(TType::STRING, scalar(@{${viter41}}));
+            {
+              foreach my $iter42 (@{${viter41}})
+              {
+                $xfer += $output->writeString($iter42);
+              }
+            }
+            $xfer += $output->writeSetEnd();
+          }
+        }
+      }
+      $xfer += $output->writeMapEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{startRecord}) {
+    $xfer += $output->writeFieldBegin('startRecord', TType::I32, 8);
+    $xfer += $output->writeI32($self->{startRecord});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{maxRecordsToFetch}) {
+    $xfer += $output->writeFieldBegin('maxRecordsToFetch', TType::I32, 9);
+    $xfer += $output->writeI32($self->{maxRecordsToFetch});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{highlightOptions}) {
+    $xfer += $output->writeFieldBegin('highlightOptions', TType::STRUCT, 10);
+    $xfer += $self->{highlightOptions}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{orderOfFamiliesToFetch}) {
+    $xfer += $output->writeFieldBegin('orderOfFamiliesToFetch', TType::LIST, 11);
+    {
+      $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{orderOfFamiliesToFetch}}));
+      {
+        foreach my $iter43 (@{$self->{orderOfFamiliesToFetch}}) 
+        {
+          $xfer += $output->writeString($iter43);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::FetchRowResult;
+use base qw(Class::Accessor);
+Blur::FetchRowResult->mk_accessors( qw( row startRecord maxRecordsToFetch moreRecordsToFetch totalRecords ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{row} = undef;
+  $self->{startRecord} = -1;
+  $self->{maxRecordsToFetch} = -1;
+  $self->{moreRecordsToFetch} = 0;
+  $self->{totalRecords} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{row}) {
+      $self->{row} = $vals->{row};
+    }
+    if (defined $vals->{startRecord}) {
+      $self->{startRecord} = $vals->{startRecord};
+    }
+    if (defined $vals->{maxRecordsToFetch}) {
+      $self->{maxRecordsToFetch} = $vals->{maxRecordsToFetch};
+    }
+    if (defined $vals->{moreRecordsToFetch}) {
+      $self->{moreRecordsToFetch} = $vals->{moreRecordsToFetch};
+    }
+    if (defined $vals->{totalRecords}) {
+      $self->{totalRecords} = $vals->{totalRecords};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'FetchRowResult';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{row} = new Blur::Row();
+        $xfer += $self->{row}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{startRecord});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{maxRecordsToFetch});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{moreRecordsToFetch});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^5$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{totalRecords});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('FetchRowResult');
+  if (defined $self->{row}) {
+    $xfer += $output->writeFieldBegin('row', TType::STRUCT, 1);
+    $xfer += $self->{row}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{startRecord}) {
+    $xfer += $output->writeFieldBegin('startRecord', TType::I32, 2);
+    $xfer += $output->writeI32($self->{startRecord});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{maxRecordsToFetch}) {
+    $xfer += $output->writeFieldBegin('maxRecordsToFetch', TType::I32, 3);
+    $xfer += $output->writeI32($self->{maxRecordsToFetch});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{moreRecordsToFetch}) {
+    $xfer += $output->writeFieldBegin('moreRecordsToFetch', TType::BOOL, 4);
+    $xfer += $output->writeBool($self->{moreRecordsToFetch});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{totalRecords}) {
+    $xfer += $output->writeFieldBegin('totalRecords', TType::I32, 5);
+    $xfer += $output->writeI32($self->{totalRecords});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::FetchRecordResult;
+use base qw(Class::Accessor);
+Blur::FetchRecordResult->mk_accessors( qw( rowid record ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{rowid} = undef;
+  $self->{record} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{rowid}) {
+      $self->{rowid} = $vals->{rowid};
+    }
+    if (defined $vals->{record}) {
+      $self->{record} = $vals->{record};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'FetchRecordResult';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{rowid});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{record} = new Blur::Record();
+        $xfer += $self->{record}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('FetchRecordResult');
+  if (defined $self->{rowid}) {
+    $xfer += $output->writeFieldBegin('rowid', TType::STRING, 1);
+    $xfer += $output->writeString($self->{rowid});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{record}) {
+    $xfer += $output->writeFieldBegin('record', TType::STRUCT, 2);
+    $xfer += $self->{record}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::FetchResult;
+use base qw(Class::Accessor);
+Blur::FetchResult->mk_accessors( qw( exists deleted table rowResult recordResult ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{exists} = undef;
+  $self->{deleted} = undef;
+  $self->{table} = undef;
+  $self->{rowResult} = undef;
+  $self->{recordResult} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{exists}) {
+      $self->{exists} = $vals->{exists};
+    }
+    if (defined $vals->{deleted}) {
+      $self->{deleted} = $vals->{deleted};
+    }
+    if (defined $vals->{table}) {
+      $self->{table} = $vals->{table};
+    }
+    if (defined $vals->{rowResult}) {
+      $self->{rowResult} = $vals->{rowResult};
+    }
+    if (defined $vals->{recordResult}) {
+      $self->{recordResult} = $vals->{recordResult};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'FetchResult';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{exists});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{deleted});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{table});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{rowResult} = new Blur::FetchRowResult();
+        $xfer += $self->{rowResult}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^5$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{recordResult} = new Blur::FetchRecordResult();
+        $xfer += $self->{recordResult}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('FetchResult');
+  if (defined $self->{exists}) {
+    $xfer += $output->writeFieldBegin('exists', TType::BOOL, 1);
+    $xfer += $output->writeBool($self->{exists});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{deleted}) {
+    $xfer += $output->writeFieldBegin('deleted', TType::BOOL, 2);
+    $xfer += $output->writeBool($self->{deleted});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{table}) {
+    $xfer += $output->writeFieldBegin('table', TType::STRING, 3);
+    $xfer += $output->writeString($self->{table});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{rowResult}) {
+    $xfer += $output->writeFieldBegin('rowResult', TType::STRUCT, 4);
+    $xfer += $self->{rowResult}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{recordResult}) {
+    $xfer += $output->writeFieldBegin('recordResult', TType::STRUCT, 5);
+    $xfer += $self->{recordResult}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::Facet;
+use base qw(Class::Accessor);
+Blur::Facet->mk_accessors( qw( queryStr minimumNumberOfBlurResults ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{queryStr} = undef;
+  $self->{minimumNumberOfBlurResults} = 9223372036854775807;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{queryStr}) {
+      $self->{queryStr} = $vals->{queryStr};
+    }
+    if (defined $vals->{minimumNumberOfBlurResults}) {
+      $self->{minimumNumberOfBlurResults} = $vals->{minimumNumberOfBlurResults};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Facet';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{queryStr});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{minimumNumberOfBlurResults});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('Facet');
+  if (defined $self->{queryStr}) {
+    $xfer += $output->writeFieldBegin('queryStr', TType::STRING, 1);
+    $xfer += $output->writeString($self->{queryStr});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{minimumNumberOfBlurResults}) {
+    $xfer += $output->writeFieldBegin('minimumNumberOfBlurResults', TType::I64, 2);
+    $xfer += $output->writeI64($self->{minimumNumberOfBlurResults});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::SortField;
+use base qw(Class::Accessor);
+Blur::SortField->mk_accessors( qw( family column reverse ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{family} = undef;
+  $self->{column} = undef;
+  $self->{reverse} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{family}) {
+      $self->{family} = $vals->{family};
+    }
+    if (defined $vals->{column}) {
+      $self->{column} = $vals->{column};
+    }
+    if (defined $vals->{reverse}) {
+      $self->{reverse} = $vals->{reverse};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'SortField';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{family});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{column});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{reverse});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('SortField');
+  if (defined $self->{family}) {
+    $xfer += $output->writeFieldBegin('family', TType::STRING, 1);
+    $xfer += $output->writeString($self->{family});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{column}) {
+    $xfer += $output->writeFieldBegin('column', TType::STRING, 2);
+    $xfer += $output->writeString($self->{column});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{reverse}) {
+    $xfer += $output->writeFieldBegin('reverse', TType::BOOL, 3);
+    $xfer += $output->writeBool($self->{reverse});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::BlurQuery;
+use base qw(Class::Accessor);
+Blur::BlurQuery->mk_accessors( qw( query facets selector useCacheIfPresent start fetch minimumNumberOfResults maxQueryTime uuid userContext cacheResult startTime sortFields rowId ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{query} = undef;
+  $self->{facets} = undef;
+  $self->{selector} = undef;
+  $self->{useCacheIfPresent} = 1;
+  $self->{start} = 0;
+  $self->{fetch} = 10;
+  $self->{minimumNumberOfResults} = 9223372036854775807;
+  $self->{maxQueryTime} = 9223372036854775807;
+  $self->{uuid} = undef;
+  $self->{userContext} = undef;
+  $self->{cacheResult} = 1;
+  $self->{startTime} = 0;
+  $self->{sortFields} = undef;
+  $self->{rowId} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{query}) {
+      $self->{query} = $vals->{query};
+    }
+    if (defined $vals->{facets}) {
+      $self->{facets} = $vals->{facets};
+    }
+    if (defined $vals->{selector}) {
+      $self->{selector} = $vals->{selector};
+    }
+    if (defined $vals->{useCacheIfPresent}) {
+      $self->{useCacheIfPresent} = $vals->{useCacheIfPresent};
+    }
+    if (defined $vals->{start}) {
+      $self->{start} = $vals->{start};
+    }
+    if (defined $vals->{fetch}) {
+      $self->{fetch} = $vals->{fetch};
+    }
+    if (defined $vals->{minimumNumberOfResults}) {
+      $self->{minimumNumberOfResults} = $vals->{minimumNumberOfResults};
+    }
+    if (defined $vals->{maxQueryTime}) {
+      $self->{maxQueryTime} = $vals->{maxQueryTime};
+    }
+    if (defined $vals->{uuid}) {
+      $self->{uuid} = $vals->{uuid};
+    }
+    if (defined $vals->{userContext}) {
+      $self->{userContext} = $vals->{userContext};
+    }
+    if (defined $vals->{cacheResult}) {
+      $self->{cacheResult} = $vals->{cacheResult};
+    }
+    if (defined $vals->{startTime}) {
+      $self->{startTime} = $vals->{startTime};
+    }
+    if (defined $vals->{sortFields}) {
+      $self->{sortFields} = $vals->{sortFields};
+    }
+    if (defined $vals->{rowId}) {
+      $self->{rowId} = $vals->{rowId};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'BlurQuery';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{query} = new Blur::Query();
+        $xfer += $self->{query}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size44 = 0;
+          $self->{facets} = [];
+          my $_etype47 = 0;
+          $xfer += $input->readListBegin(\$_etype47, \$_size44);
+          for (my $_i48 = 0; $_i48 < $_size44; ++$_i48)
+          {
+            my $elem49 = undef;
+            $elem49 = new Blur::Facet();
+            $xfer += $elem49->read($input);
+            push(@{$self->{facets}},$elem49);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{selector} = new Blur::Selector();
+        $xfer += $self->{selector}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^6$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{useCacheIfPresent});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^7$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{start});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^8$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{fetch});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^9$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{minimumNumberOfResults});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^10$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{maxQueryTime});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^11$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{uuid});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^12$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{userContext});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^13$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{cacheResult});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^14$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{startTime});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^15$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size50 = 0;
+          $self->{sortFields} = [];
+          my $_etype53 = 0;
+          $xfer += $input->readListBegin(\$_etype53, \$_size50);
+          for (my $_i54 = 0; $_i54 < $_size50; ++$_i54)
+          {
+            my $elem55 = undef;
+            $elem55 = new Blur::SortField();
+            $xfer += $elem55->read($input);
+            push(@{$self->{sortFields}},$elem55);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^16$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{rowId});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('BlurQuery');
+  if (defined $self->{query}) {
+    $xfer += $output->writeFieldBegin('query', TType::STRUCT, 1);
+    $xfer += $self->{query}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{facets}) {
+    $xfer += $output->writeFieldBegin('facets', TType::LIST, 3);
+    {
+      $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{facets}}));
+      {
+        foreach my $iter56 (@{$self->{facets}}) 
+        {
+          $xfer += ${iter56}->write($output);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{selector}) {
+    $xfer += $output->writeFieldBegin('selector', TType::STRUCT, 4);
+    $xfer += $self->{selector}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{useCacheIfPresent}) {
+    $xfer += $output->writeFieldBegin('useCacheIfPresent', TType::BOOL, 6);
+    $xfer += $output->writeBool($self->{useCacheIfPresent});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{start}) {
+    $xfer += $output->writeFieldBegin('start', TType::I64, 7);
+    $xfer += $output->writeI64($self->{start});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{fetch}) {
+    $xfer += $output->writeFieldBegin('fetch', TType::I32, 8);
+    $xfer += $output->writeI32($self->{fetch});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{minimumNumberOfResults}) {
+    $xfer += $output->writeFieldBegin('minimumNumberOfResults', TType::I64, 9);
+    $xfer += $output->writeI64($self->{minimumNumberOfResults});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{maxQueryTime}) {
+    $xfer += $output->writeFieldBegin('maxQueryTime', TType::I64, 10);
+    $xfer += $output->writeI64($self->{maxQueryTime});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{uuid}) {
+    $xfer += $output->writeFieldBegin('uuid', TType::STRING, 11);
+    $xfer += $output->writeString($self->{uuid});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{userContext}) {
+    $xfer += $output->writeFieldBegin('userContext', TType::STRING, 12);
+    $xfer += $output->writeString($self->{userContext});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{cacheResult}) {
+    $xfer += $output->writeFieldBegin('cacheResult', TType::BOOL, 13);
+    $xfer += $output->writeBool($self->{cacheResult});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{startTime}) {
+    $xfer += $output->writeFieldBegin('startTime', TType::I64, 14);
+    $xfer += $output->writeI64($self->{startTime});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{sortFields}) {
+    $xfer += $output->writeFieldBegin('sortFields', TType::LIST, 15);
+    {
+      $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{sortFields}}));
+      {
+        foreach my $iter57 (@{$self->{sortFields}}) 
+        {
+          $xfer += ${iter57}->write($output);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{rowId}) {
+    $xfer += $output->writeFieldBegin('rowId', TType::STRING, 16);
+    $xfer += $output->writeString($self->{rowId});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::SortFieldResult;
+use base qw(Class::Accessor);
+Blur::SortFieldResult->mk_accessors( qw( nullValue stringValue intValue longValue doubleValue binaryValue ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{nullValue} = undef;
+  $self->{stringValue} = undef;
+  $self->{intValue} = undef;
+  $self->{longValue} = undef;
+  $self->{doubleValue} = undef;
+  $self->{binaryValue} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{nullValue}) {
+      $self->{nullValue} = $vals->{nullValue};
+    }
+    if (defined $vals->{stringValue}) {
+      $self->{stringValue} = $vals->{stringValue};
+    }
+    if (defined $vals->{intValue}) {
+      $self->{intValue} = $vals->{intValue};
+    }
+    if (defined $vals->{longValue}) {
+      $self->{longValue} = $vals->{longValue};
+    }
+    if (defined $vals->{doubleValue}) {
+      $self->{doubleValue} = $vals->{doubleValue};
+    }
+    if (defined $vals->{binaryValue}) {
+      $self->{binaryValue} = $vals->{binaryValue};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'SortFieldResult';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{nullValue});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{stringValue});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{intValue});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{longValue});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^5$/ && do{      if ($ftype == TType::DOUBLE) {
+        $xfer += $input->readDouble(\$self->{doubleValue});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^6$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{binaryValue});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('SortFieldResult');
+  if (defined $self->{nullValue}) {
+    $xfer += $output->writeFieldBegin('nullValue', TType::BOOL, 1);
+    $xfer += $output->writeBool($self->{nullValue});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{stringValue}) {
+    $xfer += $output->writeFieldBegin('stringValue', TType::STRING, 2);
+    $xfer += $output->writeString($self->{stringValue});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{intValue}) {
+    $xfer += $output->writeFieldBegin('intValue', TType::I32, 3);
+    $xfer += $output->writeI32($self->{intValue});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{longValue}) {
+    $xfer += $output->writeFieldBegin('longValue', TType::I64, 4);
+    $xfer += $output->writeI64($self->{longValue});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{doubleValue}) {
+    $xfer += $output->writeFieldBegin('doubleValue', TType::DOUBLE, 5);
+    $xfer += $output->writeDouble($self->{doubleValue});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{binaryValue}) {
+    $xfer += $output->writeFieldBegin('binaryValue', TType::STRING, 6);
+    $xfer += $output->writeString($self->{binaryValue});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::BlurResult;
+use base qw(Class::Accessor);
+Blur::BlurResult->mk_accessors( qw( locationId score fetchResult sortFieldResults ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{locationId} = undef;
+  $self->{score} = undef;
+  $self->{fetchResult} = undef;
+  $self->{sortFieldResults} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{locationId}) {
+      $self->{locationId} = $vals->{locationId};
+    }
+    if (defined $vals->{score}) {
+      $self->{score} = $vals->{score};
+    }
+    if (defined $vals->{fetchResult}) {
+      $self->{fetchResult} = $vals->{fetchResult};
+    }
+    if (defined $vals->{sortFieldResults}) {
+      $self->{sortFieldResults} = $vals->{sortFieldResults};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'BlurResult';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{locationId});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::DOUBLE) {
+        $xfer += $input->readDouble(\$self->{score});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{fetchResult} = new Blur::FetchResult();
+        $xfer += $self->{fetchResult}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size58 = 0;
+          $self->{sortFieldResults} = [];
+          my $_etype61 = 0;
+          $xfer += $input->readListBegin(\$_etype61, \$_size58);
+          for (my $_i62 = 0; $_i62 < $_size58; ++$_i62)
+          {
+            my $elem63 = undef;
+            $elem63 = new Blur::SortFieldResult();
+            $xfer += $elem63->read($input);
+            push(@{$self->{sortFieldResults}},$elem63);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('BlurResult');
+  if (defined $self->{locationId}) {
+    $xfer += $output->writeFieldBegin('locationId', TType::STRING, 1);
+    $xfer += $output->writeString($self->{locationId});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{score}) {
+    $xfer += $output->writeFieldBegin('score', TType::DOUBLE, 2);
+    $xfer += $output->writeDouble($self->{score});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{fetchResult}) {
+    $xfer += $output->writeFieldBegin('fetchResult', TType::STRUCT, 3);
+    $xfer += $self->{fetchResult}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{sortFieldResults}) {
+    $xfer += $output->writeFieldBegin('sortFieldResults', TType::LIST, 4);
+    {
+      $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{sortFieldResults}}));
+      {
+        foreach my $iter64 (@{$self->{sortFieldResults}}) 
+        {
+          $xfer += ${iter64}->write($output);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::BlurResults;
+use base qw(Class::Accessor);
+Blur::BlurResults->mk_accessors( qw( totalResults shardInfo results facetCounts exceptions query ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{totalResults} = 0;
+  $self->{shardInfo} = undef;
+  $self->{results} = undef;
+  $self->{facetCounts} = undef;
+  $self->{exceptions} = undef;
+  $self->{query} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{totalResults}) {
+      $self->{totalResults} = $vals->{totalResults};
+    }
+    if (defined $vals->{shardInfo}) {
+      $self->{shardInfo} = $vals->{shardInfo};
+    }
+    if (defined $vals->{results}) {
+      $self->{results} = $vals->{results};
+    }
+    if (defined $vals->{facetCounts}) {
+      $self->{facetCounts} = $vals->{facetCounts};
+    }
+    if (defined $vals->{exceptions}) {
+      $self->{exceptions} = $vals->{exceptions};
+    }
+    if (defined $vals->{query}) {
+      $self->{query} = $vals->{query};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'BlurResults';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{totalResults});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::MAP) {
+        {
+          my $_size65 = 0;
+          $self->{shardInfo} = {};
+          my $_ktype66 = 0;
+          my $_vtype67 = 0;
+          $xfer += $input->readMapBegin(\$_ktype66, \$_vtype67, \$_size65);
+          for (my $_i69 = 0; $_i69 < $_size65; ++$_i69)
+          {
+            my $key70 = '';
+            my $val71 = 0;
+            $xfer += $input->readString(\$key70);
+            $xfer += $input->readI64(\$val71);
+            $self->{shardInfo}->{$key70} = $val71;
+          }
+          $xfer += $input->readMapEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size72 = 0;
+          $self->{results} = [];
+          my $_etype75 = 0;
+          $xfer += $input->readListBegin(\$_etype75, \$_size72);
+          for (my $_i76 = 0; $_i76 < $_size72; ++$_i76)
+          {
+            my $elem77 = undef;
+            $elem77 = new Blur::BlurResult();
+            $xfer += $elem77->read($input);
+            push(@{$self->{results}},$elem77);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size78 = 0;
+          $self->{facetCounts} = [];
+          my $_etype81 = 0;
+          $xfer += $input->readListBegin(\$_etype81, \$_size78);
+          for (my $_i82 = 0; $_i82 < $_size78; ++$_i82)
+          {
+            my $elem83 = undef;
+            $xfer += $input->readI64(\$elem83);
+            push(@{$self->{facetCounts}},$elem83);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^5$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size84 = 0;
+          $self->{exceptions} = [];
+          my $_etype87 = 0;
+          $xfer += $input->readListBegin(\$_etype87, \$_size84);
+          for (my $_i88 = 0; $_i88 < $_size84; ++$_i88)
+          {
+            my $elem89 = undef;
+            $elem89 = new Blur::BlurException();
+            $xfer += $elem89->read($input);
+            push(@{$self->{exceptions}},$elem89);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^6$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{query} = new Blur::BlurQuery();
+        $xfer += $self->{query}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('BlurResults');
+  if (defined $self->{totalResults}) {
+    $xfer += $output->writeFieldBegin('totalResults', TType::I64, 1);
+    $xfer += $output->writeI64($self->{totalResults});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{shardInfo}) {
+    $xfer += $output->writeFieldBegin('shardInfo', TType::MAP, 2);
+    {
+      $xfer += $output->writeMapBegin(TType::STRING, TType::I64, scalar(keys %{$self->{shardInfo}}));
+      {
+        while( my ($kiter90,$viter91) = each %{$self->{shardInfo}}) 
+        {
+          $xfer += $output->writeString($kiter90);
+          $xfer += $output->writeI64($viter91);
+        }
+      }
+      $xfer += $output->writeMapEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{results}) {
+    $xfer += $output->writeFieldBegin('results', TType::LIST, 3);
+    {
+      $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{results}}));
+      {
+        foreach my $iter92 (@{$self->{results}}) 
+        {
+          $xfer += ${iter92}->write($output);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{facetCounts}) {
+    $xfer += $output->writeFieldBegin('facetCounts', TType::LIST, 4);
+    {
+      $xfer += $output->writeListBegin(TType::I64, scalar(@{$self->{facetCounts}}));
+      {
+        foreach my $iter93 (@{$self->{facetCounts}}) 
+        {
+          $xfer += $output->writeI64($iter93);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{exceptions}) {
+    $xfer += $output->writeFieldBegin('exceptions', TType::LIST, 5);
+    {
+      $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{exceptions}}));
+      {
+        foreach my $iter94 (@{$self->{exceptions}}) 
+        {
+          $xfer += ${iter94}->write($output);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{query}) {
+    $xfer += $output->writeFieldBegin('query', TType::STRUCT, 6);
+    $xfer += $self->{query}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::RecordMutation;
+use base qw(Class::Accessor);
+Blur::RecordMutation->mk_accessors( qw( recordMutationType record ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{recordMutationType} = 1;
+  $self->{record} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{recordMutationType}) {
+      $self->{recordMutationType} = $vals->{recordMutationType};
+    }
+    if (defined $vals->{record}) {
+      $self->{record} = $vals->{record};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'RecordMutation';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{recordMutationType});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{record} = new Blur::Record();
+        $xfer += $self->{record}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('RecordMutation');
+  if (defined $self->{recordMutationType}) {
+    $xfer += $output->writeFieldBegin('recordMutationType', TType::I32, 1);
+    $xfer += $output->writeI32($self->{recordMutationType});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{record}) {
+    $xfer += $output->writeFieldBegin('record', TType::STRUCT, 2);
+    $xfer += $self->{record}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::RowMutation;
+use base qw(Class::Accessor);
+Blur::RowMutation->mk_accessors( qw( table rowId rowMutationType recordMutations ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{table} = undef;
+  $self->{rowId} = undef;
+  $self->{rowMutationType} = 1;
+  $self->{recordMutations} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{table}) {
+      $self->{table} = $vals->{table};
+    }
+    if (defined $vals->{rowId}) {
+      $self->{rowId} = $vals->{rowId};
+    }
+    if (defined $vals->{rowMutationType}) {
+      $self->{rowMutationType} = $vals->{rowMutationType};
+    }
+    if (defined $vals->{recordMutations}) {
+      $self->{recordMutations} = $vals->{recordMutations};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'RowMutation';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{table});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{rowId});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{rowMutationType});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^5$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size95 = 0;
+          $self->{recordMutations} = [];
+          my $_etype98 = 0;
+          $xfer += $input->readListBegin(\$_etype98, \$_size95);
+          for (my $_i99 = 0; $_i99 < $_size95; ++$_i99)
+          {
+            my $elem100 = undef;
+            $elem100 = new Blur::RecordMutation();
+            $xfer += $elem100->read($input);
+            push(@{$self->{recordMutations}},$elem100);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('RowMutation');
+  if (defined $self->{table}) {
+    $xfer += $output->writeFieldBegin('table', TType::STRING, 1);
+    $xfer += $output->writeString($self->{table});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{rowId}) {
+    $xfer += $output->writeFieldBegin('rowId', TType::STRING, 2);
+    $xfer += $output->writeString($self->{rowId});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{rowMutationType}) {
+    $xfer += $output->writeFieldBegin('rowMutationType', TType::I32, 4);
+    $xfer += $output->writeI32($self->{rowMutationType});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{recordMutations}) {
+    $xfer += $output->writeFieldBegin('recordMutations', TType::LIST, 5);
+    {
+      $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{recordMutations}}));
+      {
+        foreach my $iter101 (@{$self->{recordMutations}}) 
+        {
+          $xfer += ${iter101}->write($output);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::CpuTime;
+use base qw(Class::Accessor);
+Blur::CpuTime->mk_accessors( qw( cpuTime realTime ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{cpuTime} = undef;
+  $self->{realTime} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{cpuTime}) {
+      $self->{cpuTime} = $vals->{cpuTime};
+    }
+    if (defined $vals->{realTime}) {
+      $self->{realTime} = $vals->{realTime};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'CpuTime';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{cpuTime});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{realTime});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('CpuTime');
+  if (defined $self->{cpuTime}) {
+    $xfer += $output->writeFieldBegin('cpuTime', TType::I64, 1);
+    $xfer += $output->writeI64($self->{cpuTime});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{realTime}) {
+    $xfer += $output->writeFieldBegin('realTime', TType::I64, 2);
+    $xfer += $output->writeI64($self->{realTime});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::BlurQueryStatus;
+use base qw(Class::Accessor);
+Blur::BlurQueryStatus->mk_accessors( qw( query cpuTimes completeShards totalShards state uuid status ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{query} = undef;
+  $self->{cpuTimes} = undef;
+  $self->{completeShards} = undef;
+  $self->{totalShards} = undef;
+  $self->{state} = undef;
+  $self->{uuid} = undef;
+  $self->{status} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{query}) {
+      $self->{query} = $vals->{query};
+    }
+    if (defined $vals->{cpuTimes}) {
+      $self->{cpuTimes} = $vals->{cpuTimes};
+    }
+    if (defined $vals->{completeShards}) {
+      $self->{completeShards} = $vals->{completeShards};
+    }
+    if (defined $vals->{totalShards}) {
+      $self->{totalShards} = $vals->{totalShards};
+    }
+    if (defined $vals->{state}) {
+      $self->{state} = $vals->{state};
+    }
+    if (defined $vals->{uuid}) {
+      $self->{uuid} = $vals->{uuid};
+    }
+    if (defined $vals->{status}) {
+      $self->{status} = $vals->{status};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'BlurQueryStatus';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{query} = new Blur::BlurQuery();
+        $xfer += $self->{query}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::MAP) {
+        {
+          my $_size102 = 0;
+          $self->{cpuTimes} = {};
+          my $_ktype103 = 0;
+          my $_vtype104 = 0;
+          $xfer += $input->readMapBegin(\$_ktype103, \$_vtype104, \$_size102);
+          for (my $_i106 = 0; $_i106 < $_size102; ++$_i106)
+          {
+            my $key107 = '';
+            my $val108 = new Blur::CpuTime();
+            $xfer += $input->readString(\$key107);
+            $val108 = new Blur::CpuTime();
+            $xfer += $val108->read($input);
+            $self->{cpuTimes}->{$key107} = $val108;
+          }
+          $xfer += $input->readMapEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{completeShards});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{totalShards});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^5$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{state});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^6$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{uuid});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^7$/ && do{      if ($ftype == TType::I32) {
+        $xfer += $input->readI32(\$self->{status});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('BlurQueryStatus');
+  if (defined $self->{query}) {
+    $xfer += $output->writeFieldBegin('query', TType::STRUCT, 1);
+    $xfer += $self->{query}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{cpuTimes}) {
+    $xfer += $output->writeFieldBegin('cpuTimes', TType::MAP, 2);
+    {
+      $xfer += $output->writeMapBegin(TType::STRING, TType::STRUCT, scalar(keys %{$self->{cpuTimes}}));
+      {
+        while( my ($kiter109,$viter110) = each %{$self->{cpuTimes}}) 
+        {
+          $xfer += $output->writeString($kiter109);
+          $xfer += ${viter110}->write($output);
+        }
+      }
+      $xfer += $output->writeMapEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{completeShards}) {
+    $xfer += $output->writeFieldBegin('completeShards', TType::I32, 3);
+    $xfer += $output->writeI32($self->{completeShards});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{totalShards}) {
+    $xfer += $output->writeFieldBegin('totalShards', TType::I32, 4);
+    $xfer += $output->writeI32($self->{totalShards});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{state}) {
+    $xfer += $output->writeFieldBegin('state', TType::I32, 5);
+    $xfer += $output->writeI32($self->{state});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{uuid}) {
+    $xfer += $output->writeFieldBegin('uuid', TType::STRING, 6);
+    $xfer += $output->writeString($self->{uuid});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{status}) {
+    $xfer += $output->writeFieldBegin('status', TType::I32, 7);
+    $xfer += $output->writeI32($self->{status});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::TableStats;
+use base qw(Class::Accessor);
+Blur::TableStats->mk_accessors( qw( tableName bytes recordCount rowCount ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{tableName} = undef;
+  $self->{bytes} = undef;
+  $self->{recordCount} = undef;
+  $self->{rowCount} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{tableName}) {
+      $self->{tableName} = $vals->{tableName};
+    }
+    if (defined $vals->{bytes}) {
+      $self->{bytes} = $vals->{bytes};
+    }
+    if (defined $vals->{recordCount}) {
+      $self->{recordCount} = $vals->{recordCount};
+    }
+    if (defined $vals->{rowCount}) {
+      $self->{rowCount} = $vals->{rowCount};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'TableStats';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{tableName});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{bytes});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{recordCount});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::I64) {
+        $xfer += $input->readI64(\$self->{rowCount});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('TableStats');
+  if (defined $self->{tableName}) {
+    $xfer += $output->writeFieldBegin('tableName', TType::STRING, 1);
+    $xfer += $output->writeString($self->{tableName});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{bytes}) {
+    $xfer += $output->writeFieldBegin('bytes', TType::I64, 2);
+    $xfer += $output->writeI64($self->{bytes});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{recordCount}) {
+    $xfer += $output->writeFieldBegin('recordCount', TType::I64, 3);
+    $xfer += $output->writeI64($self->{recordCount});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{rowCount}) {
+    $xfer += $output->writeFieldBegin('rowCount', TType::I64, 4);
+    $xfer += $output->writeI64($self->{rowCount});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::ColumnDefinition;
+use base qw(Class::Accessor);
+Blur::ColumnDefinition->mk_accessors( qw( family columnName subColumnName fieldLessIndexed fieldType properties sortable ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{family} = undef;
+  $self->{columnName} = undef;
+  $self->{subColumnName} = undef;
+  $self->{fieldLessIndexed} = undef;
+  $self->{fieldType} = undef;
+  $self->{properties} = undef;
+  $self->{sortable} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{family}) {
+      $self->{family} = $vals->{family};
+    }
+    if (defined $vals->{columnName}) {
+      $self->{columnName} = $vals->{columnName};
+    }
+    if (defined $vals->{subColumnName}) {
+      $self->{subColumnName} = $vals->{subColumnName};
+    }
+    if (defined $vals->{fieldLessIndexed}) {
+      $self->{fieldLessIndexed} = $vals->{fieldLessIndexed};
+    }
+    if (defined $vals->{fieldType}) {
+      $self->{fieldType} = $vals->{fieldType};
+    }
+    if (defined $vals->{properties}) {
+      $self->{properties} = $vals->{properties};
+    }
+    if (defined $vals->{sortable}) {
+      $self->{sortable} = $vals->{sortable};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'ColumnDefinition';
+}
+
+sub read {
+  my ($self, $input) = @_;
+  my $xfer  = 0;
+  my $fname;
+  my $ftype = 0;
+  my $fid   = 0;
+  $xfer += $input->readStructBegin(\$fname);
+  while (1) 
+  {
+    $xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
+    if ($ftype == TType::STOP) {
+      last;
+    }
+    SWITCH: for($fid)
+    {
+      /^1$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{family});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{columnName});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{subColumnName});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{fieldLessIndexed});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^5$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{fieldType});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^6$/ && do{      if ($ftype == TType::MAP) {
+        {
+          my $_size111 = 0;
+          $self->{properties} = {};
+          my $_ktype112 = 0;
+          my $_vtype113 = 0;
+          $xfer += $input->readMapBegin(\$_ktype112, \$_vtype113, \$_size111);
+          for (my $_i115 = 0; $_i115 < $_size111; ++$_i115)
+          {
+            my $key116 = '';
+            my $val117 = '';
+            $xfer += $input->readString(\$key116);
+            $xfer += $input->readString(\$val117);
+            $self->{properties}->{$key116} = $val117;
+          }
+          $xfer += $input->readMapEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^7$/ && do{      if ($ftype == TType::BOOL) {
+        $xfer += $input->readBool(\$self->{sortable});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+        $xfer += $input->skip($ftype);
+    }
+    $xfer += $input->readFieldEnd();
+  }
+  $xfer += $input->readStructEnd();
+  return $xfer;
+}
+
+sub write {
+  my ($self, $output) = @_;
+  my $xfer   = 0;
+  $xfer += $output->writeStructBegin('ColumnDefinition');
+  if (defined $self->{family}) {
+    $xfer += $output->writeFieldBegin('family', TType::STRING, 1);
+    $xfer += $output->writeString($self->{family});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{columnName}) {
+    $xfer += $output->writeFieldBegin('columnName', TType::STRING, 2);
+    $xfer += $output->writeString($self->{columnName});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{subColumnName}) {
+    $xfer += $output->writeFieldBegin('subColumnName', TType::STRING, 3);
+    $xfer += $output->writeString($self->{subColumnName});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{fieldLessIndexed}) {
+    $xfer += $output->writeFieldBegin('fieldLessIndexed', TType::BOOL, 4);
+    $xfer += $output->writeBool($self->{fieldLessIndexed});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{fieldType}) {
+    $xfer += $output->writeFieldBegin('fieldType', TType::STRING, 5);
+    $xfer += $output->writeString($self->{fieldType});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{properties}) {
+    $xfer += $output->writeFieldB

<TRUNCATED>

Mime
View raw message