Added timePrecision
Client::setTimePrecision() affects all databases globally, and DB::setTimePrecision() only to the current database object
This commit is contained in:
parent
b6d8a6fdbf
commit
fd9667d928
|
@ -44,6 +44,15 @@ class BaseHTTP
|
||||||
protected $user;
|
protected $user;
|
||||||
protected $pass;
|
protected $pass;
|
||||||
protected $base;
|
protected $base;
|
||||||
|
protected $timePrecision = 's';
|
||||||
|
protected $children = array();
|
||||||
|
|
||||||
|
const SECOND = 's';
|
||||||
|
const MILLISECOND = 'm';
|
||||||
|
const MICROSECOND = 'u';
|
||||||
|
const S = 's';
|
||||||
|
const MS = 'm';
|
||||||
|
const US = 'u';
|
||||||
|
|
||||||
protected function inherits(BaseHTTP $c)
|
protected function inherits(BaseHTTP $c)
|
||||||
{
|
{
|
||||||
|
@ -51,6 +60,8 @@ class BaseHTTP
|
||||||
$this->pass = $c->pass;
|
$this->pass = $c->pass;
|
||||||
$this->port = $c->port;
|
$this->port = $c->port;
|
||||||
$this->host = $c->host;
|
$this->host = $c->host;
|
||||||
|
$this->timePrecision = $c->timePrecision;
|
||||||
|
$c->children[] = $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getCurl($url, Array $args = [])
|
protected function getCurl($url, Array $args = [])
|
||||||
|
@ -85,6 +96,29 @@ class BaseHTTP
|
||||||
return $this->execCurl($ch);
|
return $this->execCurl($ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getTimePrecision()
|
||||||
|
{
|
||||||
|
return $this->timePrecision;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setTimePrecision($p)
|
||||||
|
{
|
||||||
|
switch ($p) {
|
||||||
|
case 'm':
|
||||||
|
case 's':
|
||||||
|
case 'u':
|
||||||
|
$this->timePrecision = $p;
|
||||||
|
if ($this instanceof Client) {
|
||||||
|
foreach ($this->children as $children) {
|
||||||
|
$children->timePrecision = $p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \InvalidArgumentException("Expecting m,s or u");
|
||||||
|
}
|
||||||
|
|
||||||
protected function get($url, Array $args = [])
|
protected function get($url, Array $args = [])
|
||||||
{
|
{
|
||||||
$ch = $this->getCurl($url, $args);
|
$ch = $this->getCurl($url, $args);
|
||||||
|
|
|
@ -82,7 +82,7 @@ class DB extends BaseHTTP
|
||||||
|
|
||||||
public function query($sql)
|
public function query($sql)
|
||||||
{
|
{
|
||||||
return new Cursor($this->get('series', ['q' => $sql]));
|
return new Cursor($this->get('series', ['q' => $sql, 'time_precision' => $this->timePrecision]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createUser($username, $password)
|
public function createUser($username, $password)
|
||||||
|
|
|
@ -47,6 +47,31 @@ class DBTest extends \phpunit_framework_testcase
|
||||||
$client->test_xxx->drop();
|
$client->test_xxx->drop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testTimePrecision()
|
||||||
|
{
|
||||||
|
$client = new Client;
|
||||||
|
$this->assertEquals('s', $client->getTimePrecision());
|
||||||
|
$db = $client->createDatabase("test_yyyy");
|
||||||
|
$this->assertEquals('s', $db->getTimePrecision());
|
||||||
|
|
||||||
|
|
||||||
|
$client->setTimePrecision('m');
|
||||||
|
$this->assertEquals('m', $client->getTimePrecision());
|
||||||
|
$this->assertEquals('m', $db->getTimePrecision());
|
||||||
|
|
||||||
|
$db1 = $client->createDatabase("test_yyyx");
|
||||||
|
$this->assertEquals('m', $db->getTimePrecision());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException InvalidArgumentException
|
||||||
|
*/
|
||||||
|
public function testInvalidTimePrecision()
|
||||||
|
{
|
||||||
|
$client = new Client;
|
||||||
|
$client->SetTimePrecision([]);
|
||||||
|
}
|
||||||
|
|
||||||
public function testQuery()
|
public function testQuery()
|
||||||
{
|
{
|
||||||
$client = new Client;
|
$client = new Client;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user