public function testPgArray() { $this->assertNull(Pgsql::encodeArray(NULL)); $this->assertNull(Pgsql::encodeArray(array())); $this->assertSame(array(), Pgsql::decodeArray('')); $this->assertSame(array(), Pgsql::decodeArray(NULL)); $data_set = array(array('1', '2', '3'), array('a', 'b', 'c'), array('a\'', 'b,', 'c"', 'd\\d', 'e'), array('', NULL, 'a'), array('1', NULL, 'c"')); $adapter = $this->adapter; foreach ($data_set as $data) { $expr = Pgsql::encodeArray($data); $this->assertInstanceof('\\Lysine\\Service\\DB\\Expr', $expr); $pg_array = $adapter->execute("select ({$expr})::varchar[]")->getCol(); $this->assertInternalType('string', $pg_array); $decoded = Pgsql::decodeArray($pg_array); $this->assertInternalType('array', $decoded); $this->assertSame($data, $decoded); } }
public function restore($value, array $attribute) { if ($value === null) { return array(); } return \Lysine\Service\DB\Adapter\Pgsql::decodeArray($value); }