示例#1
0
 public function getSrvKeyspace(VTContext $ctx, $keyspace)
 {
     $req = array('Keyspace' => $keyspace);
     if ($ctx->getCallerId()) {
         $req['CallerId'] = $ctx->getCallerId()->toBsonP3();
     }
     $resp = $this->client->call($ctx, 'VTGateP3.GetSrvKeyspace', $req)->reply;
     return VTSrvKeyspace::fromBsonP3($resp['SrvKeyspace']);
 }
示例#2
0
 public function splitQuery(VTContext $ctx, $keyspace, $query, array $bind_vars, $split_column, $split_count)
 {
     $request = new \vtgate\SplitQueryRequest();
     $request->setKeyspace($keyspace);
     $request->setQuery(VTProto::BoundQuery($query, $bind_vars));
     $request->setSplitColumn($split_column);
     $request->setSplitCount($split_count);
     if ($ctx->getCallerId()) {
         $request->setCallerId($ctx->getCallerId());
     }
     $response = $this->client->splitQuery($ctx, $request);
     return $response->getSplitsList();
 }
示例#3
0
 public function rollback(VTContext $ctx)
 {
     if (!$this->inTransaction()) {
         throw new VTException('rollback called while not in transaction.');
     }
     $request = new \vtgate\RollbackRequest();
     $request->setSession($this->session);
     if ($ctx->getCallerId()) {
         $request->setCallerId($ctx->getCallerId());
     }
     $response = $this->client->rollback($ctx, $request);
     $this->session = NULL;
 }
示例#4
0
 public function begin(VTContext $ctx)
 {
     $req = array();
     if ($ctx->getCallerId()) {
         $req['CallerId'] = $ctx->getCallerId()->toBsonP3();
     }
     $resp = $this->client->call($ctx, 'VTGateP3.Begin', $req)->reply;
     return new VTGateTx($this->client, $resp['Session']);
 }