incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject [2/7] git commit: Adding thrift generated code.
Date Sun, 12 Apr 2015 02:44:09 GMT
http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/dec4fa7a/distribution/src/main/scripts/interface/gen-js/Blur.js
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-js/Blur.js b/distribution/src/main/scripts/interface/gen-js/Blur.js
index ea6c267..e0bb91f 100644
--- a/distribution/src/main/scripts/interface/gen-js/Blur.js
+++ b/distribution/src/main/scripts/interface/gen-js/Blur.js
@@ -3495,6 +3495,298 @@ Blur_loadData_result.prototype.write = function(output) {
   return;
 };
 
+Blur_validateIndex_args = function(args) {
+  this.table = null;
+  this.externalIndexPaths = null;
+  if (args) {
+    if (args.table !== undefined) {
+      this.table = args.table;
+    }
+    if (args.externalIndexPaths !== undefined) {
+      this.externalIndexPaths = args.externalIndexPaths;
+    }
+  }
+};
+Blur_validateIndex_args.prototype = {};
+Blur_validateIndex_args.prototype.read = function(input) {
+  input.readStructBegin();
+  while (true)
+  {
+    var ret = input.readFieldBegin();
+    var fname = ret.fname;
+    var ftype = ret.ftype;
+    var fid = ret.fid;
+    if (ftype == Thrift.Type.STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+      if (ftype == Thrift.Type.STRING) {
+        this.table = input.readString().value;
+      } else {
+        input.skip(ftype);
+      }
+      break;
+      case 2:
+      if (ftype == Thrift.Type.LIST) {
+        var _size356 = 0;
+        var _rtmp3360;
+        this.externalIndexPaths = [];
+        var _etype359 = 0;
+        _rtmp3360 = input.readListBegin();
+        _etype359 = _rtmp3360.etype;
+        _size356 = _rtmp3360.size;
+        for (var _i361 = 0; _i361 < _size356; ++_i361)
+        {
+          var elem362 = null;
+          elem362 = input.readString().value;
+          this.externalIndexPaths.push(elem362);
+        }
+        input.readListEnd();
+      } else {
+        input.skip(ftype);
+      }
+      break;
+      default:
+        input.skip(ftype);
+    }
+    input.readFieldEnd();
+  }
+  input.readStructEnd();
+  return;
+};
+
+Blur_validateIndex_args.prototype.write = function(output) {
+  output.writeStructBegin('Blur_validateIndex_args');
+  if (this.table !== null && this.table !== undefined) {
+    output.writeFieldBegin('table', Thrift.Type.STRING, 1);
+    output.writeString(this.table);
+    output.writeFieldEnd();
+  }
+  if (this.externalIndexPaths !== null && this.externalIndexPaths !== undefined) {
+    output.writeFieldBegin('externalIndexPaths', Thrift.Type.LIST, 2);
+    output.writeListBegin(Thrift.Type.STRING, this.externalIndexPaths.length);
+    for (var iter363 in this.externalIndexPaths)
+    {
+      if (this.externalIndexPaths.hasOwnProperty(iter363))
+      {
+        iter363 = this.externalIndexPaths[iter363];
+        output.writeString(iter363);
+      }
+    }
+    output.writeListEnd();
+    output.writeFieldEnd();
+  }
+  output.writeFieldStop();
+  output.writeStructEnd();
+  return;
+};
+
+Blur_validateIndex_result = function(args) {
+  this.ex = null;
+  if (args instanceof BlurException) {
+    this.ex = args;
+    return;
+  }
+  if (args) {
+    if (args.ex !== undefined) {
+      this.ex = args.ex;
+    }
+  }
+};
+Blur_validateIndex_result.prototype = {};
+Blur_validateIndex_result.prototype.read = function(input) {
+  input.readStructBegin();
+  while (true)
+  {
+    var ret = input.readFieldBegin();
+    var fname = ret.fname;
+    var ftype = ret.ftype;
+    var fid = ret.fid;
+    if (ftype == Thrift.Type.STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+      if (ftype == Thrift.Type.STRUCT) {
+        this.ex = new BlurException();
+        this.ex.read(input);
+      } else {
+        input.skip(ftype);
+      }
+      break;
+      case 0:
+        input.skip(ftype);
+        break;
+      default:
+        input.skip(ftype);
+    }
+    input.readFieldEnd();
+  }
+  input.readStructEnd();
+  return;
+};
+
+Blur_validateIndex_result.prototype.write = function(output) {
+  output.writeStructBegin('Blur_validateIndex_result');
+  if (this.ex !== null && this.ex !== undefined) {
+    output.writeFieldBegin('ex', Thrift.Type.STRUCT, 1);
+    this.ex.write(output);
+    output.writeFieldEnd();
+  }
+  output.writeFieldStop();
+  output.writeStructEnd();
+  return;
+};
+
+Blur_loadIndex_args = function(args) {
+  this.table = null;
+  this.externalIndexPaths = null;
+  if (args) {
+    if (args.table !== undefined) {
+      this.table = args.table;
+    }
+    if (args.externalIndexPaths !== undefined) {
+      this.externalIndexPaths = args.externalIndexPaths;
+    }
+  }
+};
+Blur_loadIndex_args.prototype = {};
+Blur_loadIndex_args.prototype.read = function(input) {
+  input.readStructBegin();
+  while (true)
+  {
+    var ret = input.readFieldBegin();
+    var fname = ret.fname;
+    var ftype = ret.ftype;
+    var fid = ret.fid;
+    if (ftype == Thrift.Type.STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+      if (ftype == Thrift.Type.STRING) {
+        this.table = input.readString().value;
+      } else {
+        input.skip(ftype);
+      }
+      break;
+      case 2:
+      if (ftype == Thrift.Type.LIST) {
+        var _size364 = 0;
+        var _rtmp3368;
+        this.externalIndexPaths = [];
+        var _etype367 = 0;
+        _rtmp3368 = input.readListBegin();
+        _etype367 = _rtmp3368.etype;
+        _size364 = _rtmp3368.size;
+        for (var _i369 = 0; _i369 < _size364; ++_i369)
+        {
+          var elem370 = null;
+          elem370 = input.readString().value;
+          this.externalIndexPaths.push(elem370);
+        }
+        input.readListEnd();
+      } else {
+        input.skip(ftype);
+      }
+      break;
+      default:
+        input.skip(ftype);
+    }
+    input.readFieldEnd();
+  }
+  input.readStructEnd();
+  return;
+};
+
+Blur_loadIndex_args.prototype.write = function(output) {
+  output.writeStructBegin('Blur_loadIndex_args');
+  if (this.table !== null && this.table !== undefined) {
+    output.writeFieldBegin('table', Thrift.Type.STRING, 1);
+    output.writeString(this.table);
+    output.writeFieldEnd();
+  }
+  if (this.externalIndexPaths !== null && this.externalIndexPaths !== undefined) {
+    output.writeFieldBegin('externalIndexPaths', Thrift.Type.LIST, 2);
+    output.writeListBegin(Thrift.Type.STRING, this.externalIndexPaths.length);
+    for (var iter371 in this.externalIndexPaths)
+    {
+      if (this.externalIndexPaths.hasOwnProperty(iter371))
+      {
+        iter371 = this.externalIndexPaths[iter371];
+        output.writeString(iter371);
+      }
+    }
+    output.writeListEnd();
+    output.writeFieldEnd();
+  }
+  output.writeFieldStop();
+  output.writeStructEnd();
+  return;
+};
+
+Blur_loadIndex_result = function(args) {
+  this.ex = null;
+  if (args instanceof BlurException) {
+    this.ex = args;
+    return;
+  }
+  if (args) {
+    if (args.ex !== undefined) {
+      this.ex = args.ex;
+    }
+  }
+};
+Blur_loadIndex_result.prototype = {};
+Blur_loadIndex_result.prototype.read = function(input) {
+  input.readStructBegin();
+  while (true)
+  {
+    var ret = input.readFieldBegin();
+    var fname = ret.fname;
+    var ftype = ret.ftype;
+    var fid = ret.fid;
+    if (ftype == Thrift.Type.STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+      if (ftype == Thrift.Type.STRUCT) {
+        this.ex = new BlurException();
+        this.ex.read(input);
+      } else {
+        input.skip(ftype);
+      }
+      break;
+      case 0:
+        input.skip(ftype);
+        break;
+      default:
+        input.skip(ftype);
+    }
+    input.readFieldEnd();
+  }
+  input.readStructEnd();
+  return;
+};
+
+Blur_loadIndex_result.prototype.write = function(output) {
+  output.writeStructBegin('Blur_loadIndex_result');
+  if (this.ex !== null && this.ex !== undefined) {
+    output.writeFieldBegin('ex', Thrift.Type.STRUCT, 1);
+    this.ex.write(output);
+    output.writeFieldEnd();
+  }
+  output.writeFieldStop();
+  output.writeStructEnd();
+  return;
+};
+
 Blur_mutate_args = function(args) {
   this.mutation = null;
   if (args) {
@@ -3743,19 +4035,19 @@ Blur_mutateBatch_args.prototype.read = function(input) {
     {
       case 1:
       if (ftype == Thrift.Type.LIST) {
-        var _size356 = 0;
-        var _rtmp3360;
+        var _size372 = 0;
+        var _rtmp3376;
         this.mutations = [];
-        var _etype359 = 0;
-        _rtmp3360 = input.readListBegin();
-        _etype359 = _rtmp3360.etype;
-        _size356 = _rtmp3360.size;
-        for (var _i361 = 0; _i361 < _size356; ++_i361)
+        var _etype375 = 0;
+        _rtmp3376 = input.readListBegin();
+        _etype375 = _rtmp3376.etype;
+        _size372 = _rtmp3376.size;
+        for (var _i377 = 0; _i377 < _size372; ++_i377)
         {
-          var elem362 = null;
-          elem362 = new RowMutation();
-          elem362.read(input);
-          this.mutations.push(elem362);
+          var elem378 = null;
+          elem378 = new RowMutation();
+          elem378.read(input);
+          this.mutations.push(elem378);
         }
         input.readListEnd();
       } else {
@@ -3779,12 +4071,12 @@ Blur_mutateBatch_args.prototype.write = function(output) {
   if (this.mutations !== null && this.mutations !== undefined) {
     output.writeFieldBegin('mutations', Thrift.Type.LIST, 1);
     output.writeListBegin(Thrift.Type.STRUCT, this.mutations.length);
-    for (var iter363 in this.mutations)
+    for (var iter379 in this.mutations)
     {
-      if (this.mutations.hasOwnProperty(iter363))
+      if (this.mutations.hasOwnProperty(iter379))
       {
-        iter363 = this.mutations[iter363];
-        iter363.write(output);
+        iter379 = this.mutations[iter379];
+        iter379.write(output);
       }
     }
     output.writeListEnd();
@@ -3877,19 +4169,19 @@ Blur_enqueueMutateBatch_args.prototype.read = function(input) {
     {
       case 1:
       if (ftype == Thrift.Type.LIST) {
-        var _size364 = 0;
-        var _rtmp3368;
+        var _size380 = 0;
+        var _rtmp3384;
         this.mutations = [];
-        var _etype367 = 0;
-        _rtmp3368 = input.readListBegin();
-        _etype367 = _rtmp3368.etype;
-        _size364 = _rtmp3368.size;
-        for (var _i369 = 0; _i369 < _size364; ++_i369)
+        var _etype383 = 0;
+        _rtmp3384 = input.readListBegin();
+        _etype383 = _rtmp3384.etype;
+        _size380 = _rtmp3384.size;
+        for (var _i385 = 0; _i385 < _size380; ++_i385)
         {
-          var elem370 = null;
-          elem370 = new RowMutation();
-          elem370.read(input);
-          this.mutations.push(elem370);
+          var elem386 = null;
+          elem386 = new RowMutation();
+          elem386.read(input);
+          this.mutations.push(elem386);
         }
         input.readListEnd();
       } else {
@@ -3913,12 +4205,12 @@ Blur_enqueueMutateBatch_args.prototype.write = function(output) {
   if (this.mutations !== null && this.mutations !== undefined) {
     output.writeFieldBegin('mutations', Thrift.Type.LIST, 1);
     output.writeListBegin(Thrift.Type.STRUCT, this.mutations.length);
-    for (var iter371 in this.mutations)
+    for (var iter387 in this.mutations)
     {
-      if (this.mutations.hasOwnProperty(iter371))
+      if (this.mutations.hasOwnProperty(iter387))
       {
-        iter371 = this.mutations[iter371];
-        iter371.write(output);
+        iter387 = this.mutations[iter387];
+        iter387.write(output);
       }
     }
     output.writeListEnd();
@@ -4258,19 +4550,19 @@ Blur_bulkMutateAddMultiple_args.prototype.read = function(input) {
       break;
       case 2:
       if (ftype == Thrift.Type.LIST) {
-        var _size372 = 0;
-        var _rtmp3376;
+        var _size388 = 0;
+        var _rtmp3392;
         this.rowMutations = [];
-        var _etype375 = 0;
-        _rtmp3376 = input.readListBegin();
-        _etype375 = _rtmp3376.etype;
-        _size372 = _rtmp3376.size;
-        for (var _i377 = 0; _i377 < _size372; ++_i377)
+        var _etype391 = 0;
+        _rtmp3392 = input.readListBegin();
+        _etype391 = _rtmp3392.etype;
+        _size388 = _rtmp3392.size;
+        for (var _i393 = 0; _i393 < _size388; ++_i393)
         {
-          var elem378 = null;
-          elem378 = new RowMutation();
-          elem378.read(input);
-          this.rowMutations.push(elem378);
+          var elem394 = null;
+          elem394 = new RowMutation();
+          elem394.read(input);
+          this.rowMutations.push(elem394);
         }
         input.readListEnd();
       } else {
@@ -4296,12 +4588,12 @@ Blur_bulkMutateAddMultiple_args.prototype.write = function(output) {
   if (this.rowMutations !== null && this.rowMutations !== undefined) {
     output.writeFieldBegin('rowMutations', Thrift.Type.LIST, 2);
     output.writeListBegin(Thrift.Type.STRUCT, this.rowMutations.length);
-    for (var iter379 in this.rowMutations)
+    for (var iter395 in this.rowMutations)
     {
-      if (this.rowMutations.hasOwnProperty(iter379))
+      if (this.rowMutations.hasOwnProperty(iter395))
       {
-        iter379 = this.rowMutations[iter379];
-        iter379.write(output);
+        iter395 = this.rowMutations[iter395];
+        iter395.write(output);
       }
     }
     output.writeListEnd();
@@ -4719,18 +5011,18 @@ Blur_queryStatusIdList_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.LIST) {
-        var _size380 = 0;
-        var _rtmp3384;
+        var _size396 = 0;
+        var _rtmp3400;
         this.success = [];
-        var _etype383 = 0;
-        _rtmp3384 = input.readListBegin();
-        _etype383 = _rtmp3384.etype;
-        _size380 = _rtmp3384.size;
-        for (var _i385 = 0; _i385 < _size380; ++_i385)
+        var _etype399 = 0;
+        _rtmp3400 = input.readListBegin();
+        _etype399 = _rtmp3400.etype;
+        _size396 = _rtmp3400.size;
+        for (var _i401 = 0; _i401 < _size396; ++_i401)
         {
-          var elem386 = null;
-          elem386 = input.readString().value;
-          this.success.push(elem386);
+          var elem402 = null;
+          elem402 = input.readString().value;
+          this.success.push(elem402);
         }
         input.readListEnd();
       } else {
@@ -4759,12 +5051,12 @@ Blur_queryStatusIdList_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.LIST, 0);
     output.writeListBegin(Thrift.Type.STRING, this.success.length);
-    for (var iter387 in this.success)
+    for (var iter403 in this.success)
     {
-      if (this.success.hasOwnProperty(iter387))
+      if (this.success.hasOwnProperty(iter403))
       {
-        iter387 = this.success[iter387];
-        output.writeString(iter387);
+        iter403 = this.success[iter403];
+        output.writeString(iter403);
       }
     }
     output.writeListEnd();
@@ -5064,18 +5356,18 @@ Blur_terms_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.LIST) {
-        var _size388 = 0;
-        var _rtmp3392;
+        var _size404 = 0;
+        var _rtmp3408;
         this.success = [];
-        var _etype391 = 0;
-        _rtmp3392 = input.readListBegin();
-        _etype391 = _rtmp3392.etype;
-        _size388 = _rtmp3392.size;
-        for (var _i393 = 0; _i393 < _size388; ++_i393)
+        var _etype407 = 0;
+        _rtmp3408 = input.readListBegin();
+        _etype407 = _rtmp3408.etype;
+        _size404 = _rtmp3408.size;
+        for (var _i409 = 0; _i409 < _size404; ++_i409)
         {
-          var elem394 = null;
-          elem394 = input.readString().value;
-          this.success.push(elem394);
+          var elem410 = null;
+          elem410 = input.readString().value;
+          this.success.push(elem410);
         }
         input.readListEnd();
       } else {
@@ -5104,12 +5396,12 @@ Blur_terms_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.LIST, 0);
     output.writeListBegin(Thrift.Type.STRING, this.success.length);
-    for (var iter395 in this.success)
+    for (var iter411 in this.success)
     {
-      if (this.success.hasOwnProperty(iter395))
+      if (this.success.hasOwnProperty(iter411))
       {
-        iter395 = this.success[iter395];
-        output.writeString(iter395);
+        iter411 = this.success[iter411];
+        output.writeString(iter411);
       }
     }
     output.writeListEnd();
@@ -5354,18 +5646,18 @@ Blur_shardClusterList_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.LIST) {
-        var _size396 = 0;
-        var _rtmp3400;
+        var _size412 = 0;
+        var _rtmp3416;
         this.success = [];
-        var _etype399 = 0;
-        _rtmp3400 = input.readListBegin();
-        _etype399 = _rtmp3400.etype;
-        _size396 = _rtmp3400.size;
-        for (var _i401 = 0; _i401 < _size396; ++_i401)
+        var _etype415 = 0;
+        _rtmp3416 = input.readListBegin();
+        _etype415 = _rtmp3416.etype;
+        _size412 = _rtmp3416.size;
+        for (var _i417 = 0; _i417 < _size412; ++_i417)
         {
-          var elem402 = null;
-          elem402 = input.readString().value;
-          this.success.push(elem402);
+          var elem418 = null;
+          elem418 = input.readString().value;
+          this.success.push(elem418);
         }
         input.readListEnd();
       } else {
@@ -5394,12 +5686,12 @@ Blur_shardClusterList_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.LIST, 0);
     output.writeListBegin(Thrift.Type.STRING, this.success.length);
-    for (var iter403 in this.success)
+    for (var iter419 in this.success)
     {
-      if (this.success.hasOwnProperty(iter403))
+      if (this.success.hasOwnProperty(iter419))
       {
-        iter403 = this.success[iter403];
-        output.writeString(iter403);
+        iter419 = this.success[iter419];
+        output.writeString(iter419);
       }
     }
     output.writeListEnd();
@@ -5500,18 +5792,18 @@ Blur_shardServerList_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.LIST) {
-        var _size404 = 0;
-        var _rtmp3408;
+        var _size420 = 0;
+        var _rtmp3424;
         this.success = [];
-        var _etype407 = 0;
-        _rtmp3408 = input.readListBegin();
-        _etype407 = _rtmp3408.etype;
-        _size404 = _rtmp3408.size;
-        for (var _i409 = 0; _i409 < _size404; ++_i409)
+        var _etype423 = 0;
+        _rtmp3424 = input.readListBegin();
+        _etype423 = _rtmp3424.etype;
+        _size420 = _rtmp3424.size;
+        for (var _i425 = 0; _i425 < _size420; ++_i425)
         {
-          var elem410 = null;
-          elem410 = input.readString().value;
-          this.success.push(elem410);
+          var elem426 = null;
+          elem426 = input.readString().value;
+          this.success.push(elem426);
         }
         input.readListEnd();
       } else {
@@ -5540,12 +5832,12 @@ Blur_shardServerList_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.LIST, 0);
     output.writeListBegin(Thrift.Type.STRING, this.success.length);
-    for (var iter411 in this.success)
+    for (var iter427 in this.success)
     {
-      if (this.success.hasOwnProperty(iter411))
+      if (this.success.hasOwnProperty(iter427))
       {
-        iter411 = this.success[iter411];
-        output.writeString(iter411);
+        iter427 = this.success[iter427];
+        output.writeString(iter427);
       }
     }
     output.writeListEnd();
@@ -5621,18 +5913,18 @@ Blur_controllerServerList_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.LIST) {
-        var _size412 = 0;
-        var _rtmp3416;
+        var _size428 = 0;
+        var _rtmp3432;
         this.success = [];
-        var _etype415 = 0;
-        _rtmp3416 = input.readListBegin();
-        _etype415 = _rtmp3416.etype;
-        _size412 = _rtmp3416.size;
-        for (var _i417 = 0; _i417 < _size412; ++_i417)
+        var _etype431 = 0;
+        _rtmp3432 = input.readListBegin();
+        _etype431 = _rtmp3432.etype;
+        _size428 = _rtmp3432.size;
+        for (var _i433 = 0; _i433 < _size428; ++_i433)
         {
-          var elem418 = null;
-          elem418 = input.readString().value;
-          this.success.push(elem418);
+          var elem434 = null;
+          elem434 = input.readString().value;
+          this.success.push(elem434);
         }
         input.readListEnd();
       } else {
@@ -5661,12 +5953,12 @@ Blur_controllerServerList_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.LIST, 0);
     output.writeListBegin(Thrift.Type.STRING, this.success.length);
-    for (var iter419 in this.success)
+    for (var iter435 in this.success)
     {
-      if (this.success.hasOwnProperty(iter419))
+      if (this.success.hasOwnProperty(iter435))
       {
-        iter419 = this.success[iter419];
-        output.writeString(iter419);
+        iter435 = this.success[iter435];
+        output.writeString(iter435);
       }
     }
     output.writeListEnd();
@@ -5767,27 +6059,27 @@ Blur_shardServerLayout_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.MAP) {
-        var _size420 = 0;
-        var _rtmp3424;
+        var _size436 = 0;
+        var _rtmp3440;
         this.success = {};
-        var _ktype421 = 0;
-        var _vtype422 = 0;
-        _rtmp3424 = input.readMapBegin();
-        _ktype421 = _rtmp3424.ktype;
-        _vtype422 = _rtmp3424.vtype;
-        _size420 = _rtmp3424.size;
-        for (var _i425 = 0; _i425 < _size420; ++_i425)
+        var _ktype437 = 0;
+        var _vtype438 = 0;
+        _rtmp3440 = input.readMapBegin();
+        _ktype437 = _rtmp3440.ktype;
+        _vtype438 = _rtmp3440.vtype;
+        _size436 = _rtmp3440.size;
+        for (var _i441 = 0; _i441 < _size436; ++_i441)
         {
-          if (_i425 > 0 ) {
+          if (_i441 > 0 ) {
             if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) {
               input.rstack.pop();
             }
           }
-          var key426 = null;
-          var val427 = null;
-          key426 = input.readString().value;
-          val427 = input.readString().value;
-          this.success[key426] = val427;
+          var key442 = null;
+          var val443 = null;
+          key442 = input.readString().value;
+          val443 = input.readString().value;
+          this.success[key442] = val443;
         }
         input.readMapEnd();
       } else {
@@ -5816,13 +6108,13 @@ Blur_shardServerLayout_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.MAP, 0);
     output.writeMapBegin(Thrift.Type.STRING, Thrift.Type.STRING, Thrift.objectLength(this.success));
-    for (var kiter428 in this.success)
+    for (var kiter444 in this.success)
     {
-      if (this.success.hasOwnProperty(kiter428))
+      if (this.success.hasOwnProperty(kiter444))
       {
-        var viter429 = this.success[kiter428];
-        output.writeString(kiter428);
-        output.writeString(viter429);
+        var viter445 = this.success[kiter444];
+        output.writeString(kiter444);
+        output.writeString(viter445);
       }
     }
     output.writeMapEnd();
@@ -5923,49 +6215,49 @@ Blur_shardServerLayoutState_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.MAP) {
-        var _size430 = 0;
-        var _rtmp3434;
+        var _size446 = 0;
+        var _rtmp3450;
         this.success = {};
-        var _ktype431 = 0;
-        var _vtype432 = 0;
-        _rtmp3434 = input.readMapBegin();
-        _ktype431 = _rtmp3434.ktype;
-        _vtype432 = _rtmp3434.vtype;
-        _size430 = _rtmp3434.size;
-        for (var _i435 = 0; _i435 < _size430; ++_i435)
+        var _ktype447 = 0;
+        var _vtype448 = 0;
+        _rtmp3450 = input.readMapBegin();
+        _ktype447 = _rtmp3450.ktype;
+        _vtype448 = _rtmp3450.vtype;
+        _size446 = _rtmp3450.size;
+        for (var _i451 = 0; _i451 < _size446; ++_i451)
         {
-          if (_i435 > 0 ) {
+          if (_i451 > 0 ) {
             if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) {
               input.rstack.pop();
             }
           }
-          var key436 = null;
-          var val437 = null;
-          key436 = input.readString().value;
-          var _size438 = 0;
-          var _rtmp3442;
-          val437 = {};
-          var _ktype439 = 0;
-          var _vtype440 = 0;
-          _rtmp3442 = input.readMapBegin();
-          _ktype439 = _rtmp3442.ktype;
-          _vtype440 = _rtmp3442.vtype;
-          _size438 = _rtmp3442.size;
-          for (var _i443 = 0; _i443 < _size438; ++_i443)
+          var key452 = null;
+          var val453 = null;
+          key452 = input.readString().value;
+          var _size454 = 0;
+          var _rtmp3458;
+          val453 = {};
+          var _ktype455 = 0;
+          var _vtype456 = 0;
+          _rtmp3458 = input.readMapBegin();
+          _ktype455 = _rtmp3458.ktype;
+          _vtype456 = _rtmp3458.vtype;
+          _size454 = _rtmp3458.size;
+          for (var _i459 = 0; _i459 < _size454; ++_i459)
           {
-            if (_i443 > 0 ) {
+            if (_i459 > 0 ) {
               if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) {
                 input.rstack.pop();
               }
             }
-            var key444 = null;
-            var val445 = null;
-            key444 = input.readString().value;
-            val445 = input.readI32().value;
-            val437[key444] = val445;
+            var key460 = null;
+            var val461 = null;
+            key460 = input.readString().value;
+            val461 = input.readI32().value;
+            val453[key460] = val461;
           }
           input.readMapEnd();
-          this.success[key436] = val437;
+          this.success[key452] = val453;
         }
         input.readMapEnd();
       } else {
@@ -5994,20 +6286,20 @@ Blur_shardServerLayoutState_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.MAP, 0);
     output.writeMapBegin(Thrift.Type.STRING, Thrift.Type.MAP, Thrift.objectLength(this.success));
-    for (var kiter446 in this.success)
+    for (var kiter462 in this.success)
     {
-      if (this.success.hasOwnProperty(kiter446))
+      if (this.success.hasOwnProperty(kiter462))
       {
-        var viter447 = this.success[kiter446];
-        output.writeString(kiter446);
-        output.writeMapBegin(Thrift.Type.STRING, Thrift.Type.I32, Thrift.objectLength(viter447));
-        for (var kiter448 in viter447)
+        var viter463 = this.success[kiter462];
+        output.writeString(kiter462);
+        output.writeMapBegin(Thrift.Type.STRING, Thrift.Type.I32, Thrift.objectLength(viter463));
+        for (var kiter464 in viter463)
         {
-          if (viter447.hasOwnProperty(kiter448))
+          if (viter463.hasOwnProperty(kiter464))
           {
-            var viter449 = viter447[kiter448];
-            output.writeString(kiter448);
-            output.writeI32(viter449);
+            var viter465 = viter463[kiter464];
+            output.writeString(kiter464);
+            output.writeI32(viter465);
           }
         }
         output.writeMapEnd();
@@ -6210,27 +6502,27 @@ Blur_configuration_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.MAP) {
-        var _size450 = 0;
-        var _rtmp3454;
+        var _size466 = 0;
+        var _rtmp3470;
         this.success = {};
-        var _ktype451 = 0;
-        var _vtype452 = 0;
-        _rtmp3454 = input.readMapBegin();
-        _ktype451 = _rtmp3454.ktype;
-        _vtype452 = _rtmp3454.vtype;
-        _size450 = _rtmp3454.size;
-        for (var _i455 = 0; _i455 < _size450; ++_i455)
+        var _ktype467 = 0;
+        var _vtype468 = 0;
+        _rtmp3470 = input.readMapBegin();
+        _ktype467 = _rtmp3470.ktype;
+        _vtype468 = _rtmp3470.vtype;
+        _size466 = _rtmp3470.size;
+        for (var _i471 = 0; _i471 < _size466; ++_i471)
         {
-          if (_i455 > 0 ) {
+          if (_i471 > 0 ) {
             if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) {
               input.rstack.pop();
             }
           }
-          var key456 = null;
-          var val457 = null;
-          key456 = input.readString().value;
-          val457 = input.readString().value;
-          this.success[key456] = val457;
+          var key472 = null;
+          var val473 = null;
+          key472 = input.readString().value;
+          val473 = input.readString().value;
+          this.success[key472] = val473;
         }
         input.readMapEnd();
       } else {
@@ -6259,13 +6551,13 @@ Blur_configuration_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.MAP, 0);
     output.writeMapBegin(Thrift.Type.STRING, Thrift.Type.STRING, Thrift.objectLength(this.success));
-    for (var kiter458 in this.success)
+    for (var kiter474 in this.success)
     {
-      if (this.success.hasOwnProperty(kiter458))
+      if (this.success.hasOwnProperty(kiter474))
       {
-        var viter459 = this.success[kiter458];
-        output.writeString(kiter458);
-        output.writeString(viter459);
+        var viter475 = this.success[kiter474];
+        output.writeString(kiter474);
+        output.writeString(viter475);
       }
     }
     output.writeMapEnd();
@@ -6442,18 +6734,18 @@ Blur_metrics_args.prototype.read = function(input) {
     {
       case 1:
       if (ftype == Thrift.Type.SET) {
-        var _size460 = 0;
-        var _rtmp3464;
+        var _size476 = 0;
+        var _rtmp3480;
         this.metrics = [];
-        var _etype463 = 0;
-        _rtmp3464 = input.readSetBegin();
-        _etype463 = _rtmp3464.etype;
-        _size460 = _rtmp3464.size;
-        for (var _i465 = 0; _i465 < _size460; ++_i465)
+        var _etype479 = 0;
+        _rtmp3480 = input.readSetBegin();
+        _etype479 = _rtmp3480.etype;
+        _size476 = _rtmp3480.size;
+        for (var _i481 = 0; _i481 < _size476; ++_i481)
         {
-          var elem466 = null;
-          elem466 = input.readString().value;
-          this.metrics.push(elem466);
+          var elem482 = null;
+          elem482 = input.readString().value;
+          this.metrics.push(elem482);
         }
         input.readSetEnd();
       } else {
@@ -6477,12 +6769,12 @@ Blur_metrics_args.prototype.write = function(output) {
   if (this.metrics !== null && this.metrics !== undefined) {
     output.writeFieldBegin('metrics', Thrift.Type.SET, 1);
     output.writeSetBegin(Thrift.Type.STRING, this.metrics.length);
-    for (var iter467 in this.metrics)
+    for (var iter483 in this.metrics)
     {
-      if (this.metrics.hasOwnProperty(iter467))
+      if (this.metrics.hasOwnProperty(iter483))
       {
-        iter467 = this.metrics[iter467];
-        output.writeString(iter467);
+        iter483 = this.metrics[iter483];
+        output.writeString(iter483);
       }
     }
     output.writeSetEnd();
@@ -6525,28 +6817,28 @@ Blur_metrics_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.MAP) {
-        var _size468 = 0;
-        var _rtmp3472;
+        var _size484 = 0;
+        var _rtmp3488;
         this.success = {};
-        var _ktype469 = 0;
-        var _vtype470 = 0;
-        _rtmp3472 = input.readMapBegin();
-        _ktype469 = _rtmp3472.ktype;
-        _vtype470 = _rtmp3472.vtype;
-        _size468 = _rtmp3472.size;
-        for (var _i473 = 0; _i473 < _size468; ++_i473)
+        var _ktype485 = 0;
+        var _vtype486 = 0;
+        _rtmp3488 = input.readMapBegin();
+        _ktype485 = _rtmp3488.ktype;
+        _vtype486 = _rtmp3488.vtype;
+        _size484 = _rtmp3488.size;
+        for (var _i489 = 0; _i489 < _size484; ++_i489)
         {
-          if (_i473 > 0 ) {
+          if (_i489 > 0 ) {
             if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) {
               input.rstack.pop();
             }
           }
-          var key474 = null;
-          var val475 = null;
-          key474 = input.readString().value;
-          val475 = new Metric();
-          val475.read(input);
-          this.success[key474] = val475;
+          var key490 = null;
+          var val491 = null;
+          key490 = input.readString().value;
+          val491 = new Metric();
+          val491.read(input);
+          this.success[key490] = val491;
         }
         input.readMapEnd();
       } else {
@@ -6575,13 +6867,13 @@ Blur_metrics_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.MAP, 0);
     output.writeMapBegin(Thrift.Type.STRING, Thrift.Type.STRUCT, Thrift.objectLength(this.success));
-    for (var kiter476 in this.success)
+    for (var kiter492 in this.success)
     {
-      if (this.success.hasOwnProperty(kiter476))
+      if (this.success.hasOwnProperty(kiter492))
       {
-        var viter477 = this.success[kiter476];
-        output.writeString(kiter476);
-        viter477.write(output);
+        var viter493 = this.success[kiter492];
+        output.writeString(kiter492);
+        viter493.write(output);
       }
     }
     output.writeMapEnd();
@@ -6751,18 +7043,18 @@ Blur_traceList_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.LIST) {
-        var _size478 = 0;
-        var _rtmp3482;
+        var _size494 = 0;
+        var _rtmp3498;
         this.success = [];
-        var _etype481 = 0;
-        _rtmp3482 = input.readListBegin();
-        _etype481 = _rtmp3482.etype;
-        _size478 = _rtmp3482.size;
-        for (var _i483 = 0; _i483 < _size478; ++_i483)
+        var _etype497 = 0;
+        _rtmp3498 = input.readListBegin();
+        _etype497 = _rtmp3498.etype;
+        _size494 = _rtmp3498.size;
+        for (var _i499 = 0; _i499 < _size494; ++_i499)
         {
-          var elem484 = null;
-          elem484 = input.readString().value;
-          this.success.push(elem484);
+          var elem500 = null;
+          elem500 = input.readString().value;
+          this.success.push(elem500);
         }
         input.readListEnd();
       } else {
@@ -6791,12 +7083,12 @@ Blur_traceList_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.LIST, 0);
     output.writeListBegin(Thrift.Type.STRING, this.success.length);
-    for (var iter485 in this.success)
+    for (var iter501 in this.success)
     {
-      if (this.success.hasOwnProperty(iter485))
+      if (this.success.hasOwnProperty(iter501))
       {
-        iter485 = this.success[iter485];
-        output.writeString(iter485);
+        iter501 = this.success[iter501];
+        output.writeString(iter501);
       }
     }
     output.writeListEnd();
@@ -6897,18 +7189,18 @@ Blur_traceRequestList_result.prototype.read = function(input) {
     {
       case 0:
       if (ftype == Thrift.Type.LIST) {
-        var _size486 = 0;
-        var _rtmp3490;
+        var _size502 = 0;
+        var _rtmp3506;
         this.success = [];
-        var _etype489 = 0;
-        _rtmp3490 = input.readListBegin();
-        _etype489 = _rtmp3490.etype;
-        _size486 = _rtmp3490.size;
-        for (var _i491 = 0; _i491 < _size486; ++_i491)
+        var _etype505 = 0;
+        _rtmp3506 = input.readListBegin();
+        _etype505 = _rtmp3506.etype;
+        _size502 = _rtmp3506.size;
+        for (var _i507 = 0; _i507 < _size502; ++_i507)
         {
-          var elem492 = null;
-          elem492 = input.readString().value;
-          this.success.push(elem492);
+          var elem508 = null;
+          elem508 = input.readString().value;
+          this.success.push(elem508);
         }
         input.readListEnd();
       } else {
@@ -6937,12 +7229,12 @@ Blur_traceRequestList_result.prototype.write = function(output) {
   if (this.success !== null && this.success !== undefined) {
     output.writeFieldBegin('success', Thrift.Type.LIST, 0);
     output.writeListBegin(Thrift.Type.STRING, this.success.length);
-    for (var iter493 in this.success)
+    for (var iter509 in this.success)
     {
-      if (this.success.hasOwnProperty(iter493))
+      if (this.success.hasOwnProperty(iter509))
       {
-        iter493 = this.success[iter493];
-        output.writeString(iter493);
+        iter509 = this.success[iter509];
+        output.writeString(iter509);
       }
     }
     output.writeListEnd();
@@ -8416,6 +8708,76 @@ BlurClient.prototype.recv_loadData = function() {
   }
   return;
 };
+BlurClient.prototype.validateIndex = function(table, externalIndexPaths) {
+  this.send_validateIndex(table, externalIndexPaths);
+  this.recv_validateIndex();
+};
+
+BlurClient.prototype.send_validateIndex = function(table, externalIndexPaths) {
+  this.output.writeMessageBegin('validateIndex', Thrift.MessageType.CALL, this.seqid);
+  var args = new Blur_validateIndex_args();
+  args.table = table;
+  args.externalIndexPaths = externalIndexPaths;
+  args.write(this.output);
+  this.output.writeMessageEnd();
+  return this.output.getTransport().flush();
+};
+
+BlurClient.prototype.recv_validateIndex = function() {
+  var ret = this.input.readMessageBegin();
+  var fname = ret.fname;
+  var mtype = ret.mtype;
+  var rseqid = ret.rseqid;
+  if (mtype == Thrift.MessageType.EXCEPTION) {
+    var x = new Thrift.TApplicationException();
+    x.read(this.input);
+    this.input.readMessageEnd();
+    throw x;
+  }
+  var result = new Blur_validateIndex_result();
+  result.read(this.input);
+  this.input.readMessageEnd();
+
+  if (null !== result.ex) {
+    throw result.ex;
+  }
+  return;
+};
+BlurClient.prototype.loadIndex = function(table, externalIndexPaths) {
+  this.send_loadIndex(table, externalIndexPaths);
+  this.recv_loadIndex();
+};
+
+BlurClient.prototype.send_loadIndex = function(table, externalIndexPaths) {
+  this.output.writeMessageBegin('loadIndex', Thrift.MessageType.CALL, this.seqid);
+  var args = new Blur_loadIndex_args();
+  args.table = table;
+  args.externalIndexPaths = externalIndexPaths;
+  args.write(this.output);
+  this.output.writeMessageEnd();
+  return this.output.getTransport().flush();
+};
+
+BlurClient.prototype.recv_loadIndex = function() {
+  var ret = this.input.readMessageBegin();
+  var fname = ret.fname;
+  var mtype = ret.mtype;
+  var rseqid = ret.rseqid;
+  if (mtype == Thrift.MessageType.EXCEPTION) {
+    var x = new Thrift.TApplicationException();
+    x.read(this.input);
+    this.input.readMessageEnd();
+    throw x;
+  }
+  var result = new Blur_loadIndex_result();
+  result.read(this.input);
+  this.input.readMessageEnd();
+
+  if (null !== result.ex) {
+    throw result.ex;
+  }
+  return;
+};
 BlurClient.prototype.mutate = function(mutation) {
   this.send_mutate(mutation);
   this.recv_mutate();

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/dec4fa7a/distribution/src/main/scripts/interface/gen-perl/Blur/Blur.pm
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-perl/Blur/Blur.pm b/distribution/src/main/scripts/interface/gen-perl/Blur/Blur.pm
index 01f96ac..a404f05 100644
--- a/distribution/src/main/scripts/interface/gen-perl/Blur/Blur.pm
+++ b/distribution/src/main/scripts/interface/gen-perl/Blur/Blur.pm
@@ -4060,6 +4060,336 @@ sub write {
   return $xfer;
 }
 
+package Blur::Blur_validateIndex_args;
+use base qw(Class::Accessor);
+Blur::Blur_validateIndex_args->mk_accessors( qw( table externalIndexPaths ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{table} = undef;
+  $self->{externalIndexPaths} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{table}) {
+      $self->{table} = $vals->{table};
+    }
+    if (defined $vals->{externalIndexPaths}) {
+      $self->{externalIndexPaths} = $vals->{externalIndexPaths};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Blur_validateIndex_args';
+}
+
+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::LIST) {
+        {
+          my $_size316 = 0;
+          $self->{externalIndexPaths} = [];
+          my $_etype319 = 0;
+          $xfer += $input->readListBegin(\$_etype319, \$_size316);
+          for (my $_i320 = 0; $_i320 < $_size316; ++$_i320)
+          {
+            my $elem321 = undef;
+            $xfer += $input->readString(\$elem321);
+            push(@{$self->{externalIndexPaths}},$elem321);
+          }
+          $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('Blur_validateIndex_args');
+  if (defined $self->{table}) {
+    $xfer += $output->writeFieldBegin('table', TType::STRING, 1);
+    $xfer += $output->writeString($self->{table});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{externalIndexPaths}) {
+    $xfer += $output->writeFieldBegin('externalIndexPaths', TType::LIST, 2);
+    {
+      $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{externalIndexPaths}}));
+      {
+        foreach my $iter322 (@{$self->{externalIndexPaths}}) 
+        {
+          $xfer += $output->writeString($iter322);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::Blur_validateIndex_result;
+use base qw(Class::Accessor);
+Blur::Blur_validateIndex_result->mk_accessors( qw( ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{ex} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{ex}) {
+      $self->{ex} = $vals->{ex};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Blur_validateIndex_result';
+}
+
+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->{ex} = new Blur::BlurException();
+        $xfer += $self->{ex}->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('Blur_validateIndex_result');
+  if (defined $self->{ex}) {
+    $xfer += $output->writeFieldBegin('ex', TType::STRUCT, 1);
+    $xfer += $self->{ex}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::Blur_loadIndex_args;
+use base qw(Class::Accessor);
+Blur::Blur_loadIndex_args->mk_accessors( qw( table externalIndexPaths ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{table} = undef;
+  $self->{externalIndexPaths} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{table}) {
+      $self->{table} = $vals->{table};
+    }
+    if (defined $vals->{externalIndexPaths}) {
+      $self->{externalIndexPaths} = $vals->{externalIndexPaths};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Blur_loadIndex_args';
+}
+
+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::LIST) {
+        {
+          my $_size323 = 0;
+          $self->{externalIndexPaths} = [];
+          my $_etype326 = 0;
+          $xfer += $input->readListBegin(\$_etype326, \$_size323);
+          for (my $_i327 = 0; $_i327 < $_size323; ++$_i327)
+          {
+            my $elem328 = undef;
+            $xfer += $input->readString(\$elem328);
+            push(@{$self->{externalIndexPaths}},$elem328);
+          }
+          $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('Blur_loadIndex_args');
+  if (defined $self->{table}) {
+    $xfer += $output->writeFieldBegin('table', TType::STRING, 1);
+    $xfer += $output->writeString($self->{table});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{externalIndexPaths}) {
+    $xfer += $output->writeFieldBegin('externalIndexPaths', TType::LIST, 2);
+    {
+      $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{externalIndexPaths}}));
+      {
+        foreach my $iter329 (@{$self->{externalIndexPaths}}) 
+        {
+          $xfer += $output->writeString($iter329);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::Blur_loadIndex_result;
+use base qw(Class::Accessor);
+Blur::Blur_loadIndex_result->mk_accessors( qw( ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{ex} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{ex}) {
+      $self->{ex} = $vals->{ex};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Blur_loadIndex_result';
+}
+
+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->{ex} = new Blur::BlurException();
+        $xfer += $self->{ex}->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('Blur_loadIndex_result');
+  if (defined $self->{ex}) {
+    $xfer += $output->writeFieldBegin('ex', TType::STRUCT, 1);
+    $xfer += $self->{ex}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
 package Blur::Blur_mutate_args;
 use base qw(Class::Accessor);
 Blur::Blur_mutate_args->mk_accessors( qw( mutation ) );
@@ -4358,16 +4688,16 @@ sub read {
     {
       /^1$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size316 = 0;
+          my $_size330 = 0;
           $self->{mutations} = [];
-          my $_etype319 = 0;
-          $xfer += $input->readListBegin(\$_etype319, \$_size316);
-          for (my $_i320 = 0; $_i320 < $_size316; ++$_i320)
+          my $_etype333 = 0;
+          $xfer += $input->readListBegin(\$_etype333, \$_size330);
+          for (my $_i334 = 0; $_i334 < $_size330; ++$_i334)
           {
-            my $elem321 = undef;
-            $elem321 = new Blur::RowMutation();
-            $xfer += $elem321->read($input);
-            push(@{$self->{mutations}},$elem321);
+            my $elem335 = undef;
+            $elem335 = new Blur::RowMutation();
+            $xfer += $elem335->read($input);
+            push(@{$self->{mutations}},$elem335);
           }
           $xfer += $input->readListEnd();
         }
@@ -4392,9 +4722,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{mutations}}));
       {
-        foreach my $iter322 (@{$self->{mutations}}) 
+        foreach my $iter336 (@{$self->{mutations}}) 
         {
-          $xfer += ${iter322}->write($output);
+          $xfer += ${iter336}->write($output);
         }
       }
       $xfer += $output->writeListEnd();
@@ -4509,16 +4839,16 @@ sub read {
     {
       /^1$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size323 = 0;
+          my $_size337 = 0;
           $self->{mutations} = [];
-          my $_etype326 = 0;
-          $xfer += $input->readListBegin(\$_etype326, \$_size323);
-          for (my $_i327 = 0; $_i327 < $_size323; ++$_i327)
+          my $_etype340 = 0;
+          $xfer += $input->readListBegin(\$_etype340, \$_size337);
+          for (my $_i341 = 0; $_i341 < $_size337; ++$_i341)
           {
-            my $elem328 = undef;
-            $elem328 = new Blur::RowMutation();
-            $xfer += $elem328->read($input);
-            push(@{$self->{mutations}},$elem328);
+            my $elem342 = undef;
+            $elem342 = new Blur::RowMutation();
+            $xfer += $elem342->read($input);
+            push(@{$self->{mutations}},$elem342);
           }
           $xfer += $input->readListEnd();
         }
@@ -4543,9 +4873,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{mutations}}));
       {
-        foreach my $iter329 (@{$self->{mutations}}) 
+        foreach my $iter343 (@{$self->{mutations}}) 
         {
-          $xfer += ${iter329}->write($output);
+          $xfer += ${iter343}->write($output);
         }
       }
       $xfer += $output->writeListEnd();
@@ -4944,16 +5274,16 @@ sub read {
       last; };
       /^2$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size330 = 0;
+          my $_size344 = 0;
           $self->{rowMutations} = [];
-          my $_etype333 = 0;
-          $xfer += $input->readListBegin(\$_etype333, \$_size330);
-          for (my $_i334 = 0; $_i334 < $_size330; ++$_i334)
+          my $_etype347 = 0;
+          $xfer += $input->readListBegin(\$_etype347, \$_size344);
+          for (my $_i348 = 0; $_i348 < $_size344; ++$_i348)
           {
-            my $elem335 = undef;
-            $elem335 = new Blur::RowMutation();
-            $xfer += $elem335->read($input);
-            push(@{$self->{rowMutations}},$elem335);
+            my $elem349 = undef;
+            $elem349 = new Blur::RowMutation();
+            $xfer += $elem349->read($input);
+            push(@{$self->{rowMutations}},$elem349);
           }
           $xfer += $input->readListEnd();
         }
@@ -4983,9 +5313,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{rowMutations}}));
       {
-        foreach my $iter336 (@{$self->{rowMutations}}) 
+        foreach my $iter350 (@{$self->{rowMutations}}) 
         {
-          $xfer += ${iter336}->write($output);
+          $xfer += ${iter350}->write($output);
         }
       }
       $xfer += $output->writeListEnd();
@@ -5471,15 +5801,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size337 = 0;
+          my $_size351 = 0;
           $self->{success} = [];
-          my $_etype340 = 0;
-          $xfer += $input->readListBegin(\$_etype340, \$_size337);
-          for (my $_i341 = 0; $_i341 < $_size337; ++$_i341)
+          my $_etype354 = 0;
+          $xfer += $input->readListBegin(\$_etype354, \$_size351);
+          for (my $_i355 = 0; $_i355 < $_size351; ++$_i355)
           {
-            my $elem342 = undef;
-            $xfer += $input->readString(\$elem342);
-            push(@{$self->{success}},$elem342);
+            my $elem356 = undef;
+            $xfer += $input->readString(\$elem356);
+            push(@{$self->{success}},$elem356);
           }
           $xfer += $input->readListEnd();
         }
@@ -5511,9 +5841,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter343 (@{$self->{success}}) 
+        foreach my $iter357 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter343);
+          $xfer += $output->writeString($iter357);
         }
       }
       $xfer += $output->writeListEnd();
@@ -5856,15 +6186,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size344 = 0;
+          my $_size358 = 0;
           $self->{success} = [];
-          my $_etype347 = 0;
-          $xfer += $input->readListBegin(\$_etype347, \$_size344);
-          for (my $_i348 = 0; $_i348 < $_size344; ++$_i348)
+          my $_etype361 = 0;
+          $xfer += $input->readListBegin(\$_etype361, \$_size358);
+          for (my $_i362 = 0; $_i362 < $_size358; ++$_i362)
           {
-            my $elem349 = undef;
-            $xfer += $input->readString(\$elem349);
-            push(@{$self->{success}},$elem349);
+            my $elem363 = undef;
+            $xfer += $input->readString(\$elem363);
+            push(@{$self->{success}},$elem363);
           }
           $xfer += $input->readListEnd();
         }
@@ -5896,9 +6226,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter350 (@{$self->{success}}) 
+        foreach my $iter364 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter350);
+          $xfer += $output->writeString($iter364);
         }
       }
       $xfer += $output->writeListEnd();
@@ -6192,15 +6522,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size351 = 0;
+          my $_size365 = 0;
           $self->{success} = [];
-          my $_etype354 = 0;
-          $xfer += $input->readListBegin(\$_etype354, \$_size351);
-          for (my $_i355 = 0; $_i355 < $_size351; ++$_i355)
+          my $_etype368 = 0;
+          $xfer += $input->readListBegin(\$_etype368, \$_size365);
+          for (my $_i369 = 0; $_i369 < $_size365; ++$_i369)
           {
-            my $elem356 = undef;
-            $xfer += $input->readString(\$elem356);
-            push(@{$self->{success}},$elem356);
+            my $elem370 = undef;
+            $xfer += $input->readString(\$elem370);
+            push(@{$self->{success}},$elem370);
           }
           $xfer += $input->readListEnd();
         }
@@ -6232,9 +6562,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter357 (@{$self->{success}}) 
+        foreach my $iter371 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter357);
+          $xfer += $output->writeString($iter371);
         }
       }
       $xfer += $output->writeListEnd();
@@ -6357,15 +6687,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size358 = 0;
+          my $_size372 = 0;
           $self->{success} = [];
-          my $_etype361 = 0;
-          $xfer += $input->readListBegin(\$_etype361, \$_size358);
-          for (my $_i362 = 0; $_i362 < $_size358; ++$_i362)
+          my $_etype375 = 0;
+          $xfer += $input->readListBegin(\$_etype375, \$_size372);
+          for (my $_i376 = 0; $_i376 < $_size372; ++$_i376)
           {
-            my $elem363 = undef;
-            $xfer += $input->readString(\$elem363);
-            push(@{$self->{success}},$elem363);
+            my $elem377 = undef;
+            $xfer += $input->readString(\$elem377);
+            push(@{$self->{success}},$elem377);
           }
           $xfer += $input->readListEnd();
         }
@@ -6397,9 +6727,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter364 (@{$self->{success}}) 
+        foreach my $iter378 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter364);
+          $xfer += $output->writeString($iter378);
         }
       }
       $xfer += $output->writeListEnd();
@@ -6504,15 +6834,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size365 = 0;
+          my $_size379 = 0;
           $self->{success} = [];
-          my $_etype368 = 0;
-          $xfer += $input->readListBegin(\$_etype368, \$_size365);
-          for (my $_i369 = 0; $_i369 < $_size365; ++$_i369)
+          my $_etype382 = 0;
+          $xfer += $input->readListBegin(\$_etype382, \$_size379);
+          for (my $_i383 = 0; $_i383 < $_size379; ++$_i383)
           {
-            my $elem370 = undef;
-            $xfer += $input->readString(\$elem370);
-            push(@{$self->{success}},$elem370);
+            my $elem384 = undef;
+            $xfer += $input->readString(\$elem384);
+            push(@{$self->{success}},$elem384);
           }
           $xfer += $input->readListEnd();
         }
@@ -6544,9 +6874,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter371 (@{$self->{success}}) 
+        foreach my $iter385 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter371);
+          $xfer += $output->writeString($iter385);
         }
       }
       $xfer += $output->writeListEnd();
@@ -6669,18 +6999,18 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::MAP) {
         {
-          my $_size372 = 0;
+          my $_size386 = 0;
           $self->{success} = {};
-          my $_ktype373 = 0;
-          my $_vtype374 = 0;
-          $xfer += $input->readMapBegin(\$_ktype373, \$_vtype374, \$_size372);
-          for (my $_i376 = 0; $_i376 < $_size372; ++$_i376)
+          my $_ktype387 = 0;
+          my $_vtype388 = 0;
+          $xfer += $input->readMapBegin(\$_ktype387, \$_vtype388, \$_size386);
+          for (my $_i390 = 0; $_i390 < $_size386; ++$_i390)
           {
-            my $key377 = '';
-            my $val378 = '';
-            $xfer += $input->readString(\$key377);
-            $xfer += $input->readString(\$val378);
-            $self->{success}->{$key377} = $val378;
+            my $key391 = '';
+            my $val392 = '';
+            $xfer += $input->readString(\$key391);
+            $xfer += $input->readString(\$val392);
+            $self->{success}->{$key391} = $val392;
           }
           $xfer += $input->readMapEnd();
         }
@@ -6712,10 +7042,10 @@ sub write {
     {
       $xfer += $output->writeMapBegin(TType::STRING, TType::STRING, scalar(keys %{$self->{success}}));
       {
-        while( my ($kiter379,$viter380) = each %{$self->{success}}) 
+        while( my ($kiter393,$viter394) = each %{$self->{success}}) 
         {
-          $xfer += $output->writeString($kiter379);
-          $xfer += $output->writeString($viter380);
+          $xfer += $output->writeString($kiter393);
+          $xfer += $output->writeString($viter394);
         }
       }
       $xfer += $output->writeMapEnd();
@@ -6838,33 +7168,33 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::MAP) {
         {
-          my $_size381 = 0;
+          my $_size395 = 0;
           $self->{success} = {};
-          my $_ktype382 = 0;
-          my $_vtype383 = 0;
-          $xfer += $input->readMapBegin(\$_ktype382, \$_vtype383, \$_size381);
-          for (my $_i385 = 0; $_i385 < $_size381; ++$_i385)
+          my $_ktype396 = 0;
+          my $_vtype397 = 0;
+          $xfer += $input->readMapBegin(\$_ktype396, \$_vtype397, \$_size395);
+          for (my $_i399 = 0; $_i399 < $_size395; ++$_i399)
           {
-            my $key386 = '';
-            my $val387 = [];
-            $xfer += $input->readString(\$key386);
+            my $key400 = '';
+            my $val401 = [];
+            $xfer += $input->readString(\$key400);
             {
-              my $_size388 = 0;
-              $val387 = {};
-              my $_ktype389 = 0;
-              my $_vtype390 = 0;
-              $xfer += $input->readMapBegin(\$_ktype389, \$_vtype390, \$_size388);
-              for (my $_i392 = 0; $_i392 < $_size388; ++$_i392)
+              my $_size402 = 0;
+              $val401 = {};
+              my $_ktype403 = 0;
+              my $_vtype404 = 0;
+              $xfer += $input->readMapBegin(\$_ktype403, \$_vtype404, \$_size402);
+              for (my $_i406 = 0; $_i406 < $_size402; ++$_i406)
               {
-                my $key393 = '';
-                my $val394 = 0;
-                $xfer += $input->readString(\$key393);
-                $xfer += $input->readI32(\$val394);
-                $val387->{$key393} = $val394;
+                my $key407 = '';
+                my $val408 = 0;
+                $xfer += $input->readString(\$key407);
+                $xfer += $input->readI32(\$val408);
+                $val401->{$key407} = $val408;
               }
               $xfer += $input->readMapEnd();
             }
-            $self->{success}->{$key386} = $val387;
+            $self->{success}->{$key400} = $val401;
           }
           $xfer += $input->readMapEnd();
         }
@@ -6896,16 +7226,16 @@ sub write {
     {
       $xfer += $output->writeMapBegin(TType::STRING, TType::MAP, scalar(keys %{$self->{success}}));
       {
-        while( my ($kiter395,$viter396) = each %{$self->{success}}) 
+        while( my ($kiter409,$viter410) = each %{$self->{success}}) 
         {
-          $xfer += $output->writeString($kiter395);
+          $xfer += $output->writeString($kiter409);
           {
-            $xfer += $output->writeMapBegin(TType::STRING, TType::I32, scalar(keys %{${viter396}}));
+            $xfer += $output->writeMapBegin(TType::STRING, TType::I32, scalar(keys %{${viter410}}));
             {
-              while( my ($kiter397,$viter398) = each %{${viter396}}) 
+              while( my ($kiter411,$viter412) = each %{${viter410}}) 
               {
-                $xfer += $output->writeString($kiter397);
-                $xfer += $output->writeI32($viter398);
+                $xfer += $output->writeString($kiter411);
+                $xfer += $output->writeI32($viter412);
               }
             }
             $xfer += $output->writeMapEnd();
@@ -7158,18 +7488,18 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::MAP) {
         {
-          my $_size399 = 0;
+          my $_size413 = 0;
           $self->{success} = {};
-          my $_ktype400 = 0;
-          my $_vtype401 = 0;
-          $xfer += $input->readMapBegin(\$_ktype400, \$_vtype401, \$_size399);
-          for (my $_i403 = 0; $_i403 < $_size399; ++$_i403)
+          my $_ktype414 = 0;
+          my $_vtype415 = 0;
+          $xfer += $input->readMapBegin(\$_ktype414, \$_vtype415, \$_size413);
+          for (my $_i417 = 0; $_i417 < $_size413; ++$_i417)
           {
-            my $key404 = '';
-            my $val405 = '';
-            $xfer += $input->readString(\$key404);
-            $xfer += $input->readString(\$val405);
-            $self->{success}->{$key404} = $val405;
+            my $key418 = '';
+            my $val419 = '';
+            $xfer += $input->readString(\$key418);
+            $xfer += $input->readString(\$val419);
+            $self->{success}->{$key418} = $val419;
           }
           $xfer += $input->readMapEnd();
         }
@@ -7201,10 +7531,10 @@ sub write {
     {
       $xfer += $output->writeMapBegin(TType::STRING, TType::STRING, scalar(keys %{$self->{success}}));
       {
-        while( my ($kiter406,$viter407) = each %{$self->{success}}) 
+        while( my ($kiter420,$viter421) = each %{$self->{success}}) 
         {
-          $xfer += $output->writeString($kiter406);
-          $xfer += $output->writeString($viter407);
+          $xfer += $output->writeString($kiter420);
+          $xfer += $output->writeString($viter421);
         }
       }
       $xfer += $output->writeMapEnd();
@@ -7418,15 +7748,15 @@ sub read {
     {
       /^1$/ && do{      if ($ftype == TType::SET) {
         {
-          my $_size408 = 0;
+          my $_size422 = 0;
           $self->{metrics} = {};
-          my $_etype411 = 0;
-          $xfer += $input->readSetBegin(\$_etype411, \$_size408);
-          for (my $_i412 = 0; $_i412 < $_size408; ++$_i412)
+          my $_etype425 = 0;
+          $xfer += $input->readSetBegin(\$_etype425, \$_size422);
+          for (my $_i426 = 0; $_i426 < $_size422; ++$_i426)
           {
-            my $elem413 = undef;
-            $xfer += $input->readString(\$elem413);
-            $self->{metrics}->{$elem413} = 1;
+            my $elem427 = undef;
+            $xfer += $input->readString(\$elem427);
+            $self->{metrics}->{$elem427} = 1;
           }
           $xfer += $input->readSetEnd();
         }
@@ -7451,9 +7781,9 @@ sub write {
     {
       $xfer += $output->writeSetBegin(TType::STRING, scalar(@{$self->{metrics}}));
       {
-        foreach my $iter414 (@{$self->{metrics}})
+        foreach my $iter428 (@{$self->{metrics}})
         {
-          $xfer += $output->writeString($iter414);
+          $xfer += $output->writeString($iter428);
         }
       }
       $xfer += $output->writeSetEnd();
@@ -7507,19 +7837,19 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::MAP) {
         {
-          my $_size415 = 0;
+          my $_size429 = 0;
           $self->{success} = {};
-          my $_ktype416 = 0;
-          my $_vtype417 = 0;
-          $xfer += $input->readMapBegin(\$_ktype416, \$_vtype417, \$_size415);
-          for (my $_i419 = 0; $_i419 < $_size415; ++$_i419)
+          my $_ktype430 = 0;
+          my $_vtype431 = 0;
+          $xfer += $input->readMapBegin(\$_ktype430, \$_vtype431, \$_size429);
+          for (my $_i433 = 0; $_i433 < $_size429; ++$_i433)
           {
-            my $key420 = '';
-            my $val421 = new Blur::Metric();
-            $xfer += $input->readString(\$key420);
-            $val421 = new Blur::Metric();
-            $xfer += $val421->read($input);
-            $self->{success}->{$key420} = $val421;
+            my $key434 = '';
+            my $val435 = new Blur::Metric();
+            $xfer += $input->readString(\$key434);
+            $val435 = new Blur::Metric();
+            $xfer += $val435->read($input);
+            $self->{success}->{$key434} = $val435;
           }
           $xfer += $input->readMapEnd();
         }
@@ -7551,10 +7881,10 @@ sub write {
     {
       $xfer += $output->writeMapBegin(TType::STRING, TType::STRUCT, scalar(keys %{$self->{success}}));
       {
-        while( my ($kiter422,$viter423) = each %{$self->{success}}) 
+        while( my ($kiter436,$viter437) = each %{$self->{success}}) 
         {
-          $xfer += $output->writeString($kiter422);
-          $xfer += ${viter423}->write($output);
+          $xfer += $output->writeString($kiter436);
+          $xfer += ${viter437}->write($output);
         }
       }
       $xfer += $output->writeMapEnd();
@@ -7784,15 +8114,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size424 = 0;
+          my $_size438 = 0;
           $self->{success} = [];
-          my $_etype427 = 0;
-          $xfer += $input->readListBegin(\$_etype427, \$_size424);
-          for (my $_i428 = 0; $_i428 < $_size424; ++$_i428)
+          my $_etype441 = 0;
+          $xfer += $input->readListBegin(\$_etype441, \$_size438);
+          for (my $_i442 = 0; $_i442 < $_size438; ++$_i442)
           {
-            my $elem429 = undef;
-            $xfer += $input->readString(\$elem429);
-            push(@{$self->{success}},$elem429);
+            my $elem443 = undef;
+            $xfer += $input->readString(\$elem443);
+            push(@{$self->{success}},$elem443);
           }
           $xfer += $input->readListEnd();
         }
@@ -7824,9 +8154,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter430 (@{$self->{success}}) 
+        foreach my $iter444 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter430);
+          $xfer += $output->writeString($iter444);
         }
       }
       $xfer += $output->writeListEnd();
@@ -7949,15 +8279,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size431 = 0;
+          my $_size445 = 0;
           $self->{success} = [];
-          my $_etype434 = 0;
-          $xfer += $input->readListBegin(\$_etype434, \$_size431);
-          for (my $_i435 = 0; $_i435 < $_size431; ++$_i435)
+          my $_etype448 = 0;
+          $xfer += $input->readListBegin(\$_etype448, \$_size445);
+          for (my $_i449 = 0; $_i449 < $_size445; ++$_i449)
           {
-            my $elem436 = undef;
-            $xfer += $input->readString(\$elem436);
-            push(@{$self->{success}},$elem436);
+            my $elem450 = undef;
+            $xfer += $input->readString(\$elem450);
+            push(@{$self->{success}},$elem450);
           }
           $xfer += $input->readListEnd();
         }
@@ -7989,9 +8319,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter437 (@{$self->{success}}) 
+        foreach my $iter451 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter437);
+          $xfer += $output->writeString($iter451);
         }
       }
       $xfer += $output->writeListEnd();
@@ -8847,6 +9177,22 @@ sub loadData{
   die 'implement interface';
 }
 
+sub validateIndex{
+  my $self = shift;
+  my $table = shift;
+  my $externalIndexPaths = shift;
+
+  die 'implement interface';
+}
+
+sub loadIndex{
+  my $self = shift;
+  my $table = shift;
+  my $externalIndexPaths = shift;
+
+  die 'implement interface';
+}
+
 sub mutate{
   my $self = shift;
   my $mutation = shift;
@@ -9279,6 +9625,22 @@ sub loadData{
   return $self->{impl}->loadData($table, $location);
 }
 
+sub validateIndex{
+  my ($self, $request) = @_;
+
+  my $table = ($request->{'table'}) ? $request->{'table'} : undef;
+  my $externalIndexPaths = ($request->{'externalIndexPaths'}) ? $request->{'externalIndexPaths'} : undef;
+  return $self->{impl}->validateIndex($table, $externalIndexPaths);
+}
+
+sub loadIndex{
+  my ($self, $request) = @_;
+
+  my $table = ($request->{'table'}) ? $request->{'table'} : undef;
+  my $externalIndexPaths = ($request->{'externalIndexPaths'}) ? $request->{'externalIndexPaths'} : undef;
+  return $self->{impl}->loadIndex($table, $externalIndexPaths);
+}
+
 sub mutate{
   my ($self, $request) = @_;
 
@@ -10708,6 +11070,98 @@ sub recv_loadData{
   }
   return;
 }
+sub validateIndex{
+  my $self = shift;
+  my $table = shift;
+  my $externalIndexPaths = shift;
+
+    $self->send_validateIndex($table, $externalIndexPaths);
+  $self->recv_validateIndex();
+}
+
+sub send_validateIndex{
+  my $self = shift;
+  my $table = shift;
+  my $externalIndexPaths = shift;
+
+  $self->{output}->writeMessageBegin('validateIndex', TMessageType::CALL, $self->{seqid});
+  my $args = new Blur::Blur_validateIndex_args();
+  $args->{table} = $table;
+  $args->{externalIndexPaths} = $externalIndexPaths;
+  $args->write($self->{output});
+  $self->{output}->writeMessageEnd();
+  $self->{output}->getTransport()->flush();
+}
+
+sub recv_validateIndex{
+  my $self = shift;
+
+  my $rseqid = 0;
+  my $fname;
+  my $mtype = 0;
+
+  $self->{input}->readMessageBegin(\$fname, \$mtype, \$rseqid);
+  if ($mtype == TMessageType::EXCEPTION) {
+    my $x = new TApplicationException();
+    $x->read($self->{input});
+    $self->{input}->readMessageEnd();
+    die $x;
+  }
+  my $result = new Blur::Blur_validateIndex_result();
+  $result->read($self->{input});
+  $self->{input}->readMessageEnd();
+
+  if (defined $result->{ex}) {
+    die $result->{ex};
+  }
+  return;
+}
+sub loadIndex{
+  my $self = shift;
+  my $table = shift;
+  my $externalIndexPaths = shift;
+
+    $self->send_loadIndex($table, $externalIndexPaths);
+  $self->recv_loadIndex();
+}
+
+sub send_loadIndex{
+  my $self = shift;
+  my $table = shift;
+  my $externalIndexPaths = shift;
+
+  $self->{output}->writeMessageBegin('loadIndex', TMessageType::CALL, $self->{seqid});
+  my $args = new Blur::Blur_loadIndex_args();
+  $args->{table} = $table;
+  $args->{externalIndexPaths} = $externalIndexPaths;
+  $args->write($self->{output});
+  $self->{output}->writeMessageEnd();
+  $self->{output}->getTransport()->flush();
+}
+
+sub recv_loadIndex{
+  my $self = shift;
+
+  my $rseqid = 0;
+  my $fname;
+  my $mtype = 0;
+
+  $self->{input}->readMessageBegin(\$fname, \$mtype, \$rseqid);
+  if ($mtype == TMessageType::EXCEPTION) {
+    my $x = new TApplicationException();
+    $x->read($self->{input});
+    $self->{input}->readMessageEnd();
+    die $x;
+  }
+  my $result = new Blur::Blur_loadIndex_result();
+  $result->read($self->{input});
+  $self->{input}->readMessageEnd();
+
+  if (defined $result->{ex}) {
+    die $result->{ex};
+  }
+  return;
+}
 sub mutate{
   my $self = shift;
   my $mutation = shift;
@@ -12530,6 +12984,40 @@ sub process_loadData {
     $output->getTransport()->flush();
 }
 
+sub process_validateIndex {
+    my ($self, $seqid, $input, $output) = @_;
+    my $args = new Blur::Blur_validateIndex_args();
+    $args->read($input);
+    $input->readMessageEnd();
+    my $result = new Blur::Blur_validateIndex_result();
+    eval {
+      $self->{handler}->validateIndex($args->table, $args->externalIndexPaths);
+    }; if( UNIVERSAL::isa($@,'Blur::BlurException') ){ 
+      $result->{ex} = $@;
+    }
+    $output->writeMessageBegin('validateIndex', TMessageType::REPLY, $seqid);
+    $result->write($output);
+    $output->writeMessageEnd();
+    $output->getTransport()->flush();
+}
+
+sub process_loadIndex {
+    my ($self, $seqid, $input, $output) = @_;
+    my $args = new Blur::Blur_loadIndex_args();
+    $args->read($input);
+    $input->readMessageEnd();
+    my $result = new Blur::Blur_loadIndex_result();
+    eval {
+      $self->{handler}->loadIndex($args->table, $args->externalIndexPaths);
+    }; if( UNIVERSAL::isa($@,'Blur::BlurException') ){ 
+      $result->{ex} = $@;
+    }
+    $output->writeMessageBegin('loadIndex', TMessageType::REPLY, $seqid);
+    $result->write($output);
+    $output->writeMessageEnd();
+    $output->getTransport()->flush();
+}
+
 sub process_mutate {
     my ($self, $seqid, $input, $output) = @_;
     my $args = new Blur::Blur_mutate_args();

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/dec4fa7a/distribution/src/main/scripts/interface/gen-rb/blur.rb
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-rb/blur.rb b/distribution/src/main/scripts/interface/gen-rb/blur.rb
index ce5eae1..66677f0 100644
--- a/distribution/src/main/scripts/interface/gen-rb/blur.rb
+++ b/distribution/src/main/scripts/interface/gen-rb/blur.rb
@@ -419,6 +419,36 @@ module Blur
         return
       end
 
+      def validateIndex(table, externalIndexPaths)
+        send_validateIndex(table, externalIndexPaths)
+        recv_validateIndex()
+      end
+
+      def send_validateIndex(table, externalIndexPaths)
+        send_message('validateIndex', ValidateIndex_args, :table => table, :externalIndexPaths => externalIndexPaths)
+      end
+
+      def recv_validateIndex()
+        result = receive_message(ValidateIndex_result)
+        raise result.ex unless result.ex.nil?
+        return
+      end
+
+      def loadIndex(table, externalIndexPaths)
+        send_loadIndex(table, externalIndexPaths)
+        recv_loadIndex()
+      end
+
+      def send_loadIndex(table, externalIndexPaths)
+        send_message('loadIndex', LoadIndex_args, :table => table, :externalIndexPaths => externalIndexPaths)
+      end
+
+      def recv_loadIndex()
+        result = receive_message(LoadIndex_result)
+        raise result.ex unless result.ex.nil?
+        return
+      end
+
       def mutate(mutation)
         send_mutate(mutation)
         recv_mutate()
@@ -1172,6 +1202,28 @@ module Blur
         write_result(result, oprot, 'loadData', seqid)
       end
 
+      def process_validateIndex(seqid, iprot, oprot)
+        args = read_args(iprot, ValidateIndex_args)
+        result = ValidateIndex_result.new()
+        begin
+          @handler.validateIndex(args.table, args.externalIndexPaths)
+        rescue ::Blur::BlurException => ex
+          result.ex = ex
+        end
+        write_result(result, oprot, 'validateIndex', seqid)
+      end
+
+      def process_loadIndex(seqid, iprot, oprot)
+        args = read_args(iprot, LoadIndex_args)
+        result = LoadIndex_result.new()
+        begin
+          @handler.loadIndex(args.table, args.externalIndexPaths)
+        rescue ::Blur::BlurException => ex
+          result.ex = ex
+        end
+        write_result(result, oprot, 'loadIndex', seqid)
+      end
+
       def process_mutate(seqid, iprot, oprot)
         args = read_args(iprot, Mutate_args)
         result = Mutate_result.new()
@@ -2445,6 +2497,74 @@ module Blur
       ::Thrift::Struct.generate_accessors self
     end
 
+    class ValidateIndex_args
+      include ::Thrift::Struct, ::Thrift::Struct_Union
+      TABLE = 1
+      EXTERNALINDEXPATHS = 2
+
+      FIELDS = {
+        TABLE => {:type => ::Thrift::Types::STRING, :name => 'table'},
+        EXTERNALINDEXPATHS => {:type => ::Thrift::Types::LIST, :name => 'externalIndexPaths', :element => {:type => ::Thrift::Types::STRING}}
+      }
+
+      def struct_fields; FIELDS; end
+
+      def validate
+      end
+
+      ::Thrift::Struct.generate_accessors self
+    end
+
+    class ValidateIndex_result
+      include ::Thrift::Struct, ::Thrift::Struct_Union
+      EX = 1
+
+      FIELDS = {
+        EX => {:type => ::Thrift::Types::STRUCT, :name => 'ex', :class => ::Blur::BlurException}
+      }
+
+      def struct_fields; FIELDS; end
+
+      def validate
+      end
+
+      ::Thrift::Struct.generate_accessors self
+    end
+
+    class LoadIndex_args
+      include ::Thrift::Struct, ::Thrift::Struct_Union
+      TABLE = 1
+      EXTERNALINDEXPATHS = 2
+
+      FIELDS = {
+        TABLE => {:type => ::Thrift::Types::STRING, :name => 'table'},
+        EXTERNALINDEXPATHS => {:type => ::Thrift::Types::LIST, :name => 'externalIndexPaths', :element => {:type => ::Thrift::Types::STRING}}
+      }
+
+      def struct_fields; FIELDS; end
+
+      def validate
+      end
+
+      ::Thrift::Struct.generate_accessors self
+    end
+
+    class LoadIndex_result
+      include ::Thrift::Struct, ::Thrift::Struct_Union
+      EX = 1
+
+      FIELDS = {
+        EX => {:type => ::Thrift::Types::STRUCT, :name => 'ex', :class => ::Blur::BlurException}
+      }
+
+      def struct_fields; FIELDS; end
+
+      def validate
+      end
+
+      ::Thrift::Struct.generate_accessors self
+    end
+
     class Mutate_args
       include ::Thrift::Struct, ::Thrift::Struct_Union
       MUTATION = 1

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/dec4fa7a/docs/Blur.html
----------------------------------------------------------------------
diff --git a/docs/Blur.html b/docs/Blur.html
index 11ed668..06c1294 100644
--- a/docs/Blur.html
+++ b/docs/Blur.html
@@ -139,6 +139,8 @@ limitations under the License.
 <li><a href="#Fn_Blur_fetchRow">&nbsp;&nbsp;fetchRow</a></li>
 <li><a href="#Fn_Blur_fetchRowBatch">&nbsp;&nbsp;fetchRowBatch</a></li>
 <li><a href="#Fn_Blur_loadData">&nbsp;&nbsp;loadData</a></li>
+<li><a href="#Fn_Blur_validateIndex">&nbsp;&nbsp;validateIndex</a></li>
+<li><a href="#Fn_Blur_loadIndex">&nbsp;&nbsp;loadIndex</a></li>
 <li><a href="#Fn_Blur_mutate">&nbsp;&nbsp;mutate</a></li>
 <li><a href="#Fn_Blur_enqueueMutate">&nbsp;&nbsp;enqueueMutate</a></li>
 <li><a href="#Fn_Blur_mutateBatch">&nbsp;&nbsp;mutateBatch</a></li>
@@ -942,7 +944,15 @@ throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
 </td></tr>
 <tr><td>location</td><td>Location of bulk data load.
 </td></tr>
-</table></p></section><section><div class="page-header"><h4 id="Fn_Blur_mutate">Function: Blur.mutate</h4></div><p class="lead">
+</table></p></section><section><div class="page-header"><h4 id="Fn_Blur_validateIndex">Function: Blur.validateIndex</h4></div><p class="lead">
+<pre><code>void</code> validateIndex(<code>string</code> table,
+<code>list&lt;<code>string</code>&gt;</code> externalIndexPaths)
+throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre></p></section><section><div class="page-header"><h4 id="Fn_Blur_loadIndex">Function: Blur.loadIndex</h4></div><p class="lead">
+<pre><code>void</code> loadIndex(<code>string</code> table,
+<code>list&lt;<code>string</code>&gt;</code> externalIndexPaths)
+throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
+</pre></p></section><section><div class="page-header"><h4 id="Fn_Blur_mutate">Function: Blur.mutate</h4></div><p class="lead">
 <pre><code>void</code> mutate(<code><a href="Blur.html#Struct_RowMutation">RowMutation</a></code> mutation)
 throws <code><a href="Blur.html#Struct_BlurException">BlurException</a></code>
 </pre>Mutates a Row given the RowMutation that is provided.


Mime
View raw message