getConnection(false); $sql = 'SELECT [[id]], [[t.name]] FROM {{customer}} t'; $command = $db->createCommand($sql); $this->assertEquals('SELECT "id", "t"."name" FROM "customer" t', $command->sql); } public function testBooleanValuesInsert() { $db = $this->getConnection(); $command = $db->createCommand(); $command->insert('bool_values', ['bool_col' => true]); $this->assertEquals(1, $command->execute()); $command = $db->createCommand(); $command->insert('bool_values', ['bool_col' => false]); $this->assertEquals(1, $command->execute()); $command = $db->createCommand('SELECT COUNT(*) FROM "bool_values" WHERE bool_col = TRUE;'); $this->assertEquals(1, $command->queryScalar()); $command = $db->createCommand('SELECT COUNT(*) FROM "bool_values" WHERE bool_col = FALSE;'); $this->assertEquals(1, $command->queryScalar()); } public function testBooleanValuesBatchInsert() { $db = $this->getConnection(); $command = $db->createCommand(); $command->batchInsert('bool_values', ['bool_col'], [ [true], [false], ] ); $this->assertEquals(2, $command->execute()); $command = $db->createCommand('SELECT COUNT(*) FROM "bool_values" WHERE bool_col = TRUE;'); $this->assertEquals(1, $command->queryScalar()); $command = $db->createCommand('SELECT COUNT(*) FROM "bool_values" WHERE bool_col = FALSE;'); $this->assertEquals(1, $command->queryScalar()); } public function testLastInsertId() { $db = $this->getConnection(); $sql = 'INSERT INTO {{profile}}([[description]]) VALUES (\'non duplicate\')'; $command = $db->createCommand($sql); $command->execute(); $this->assertEquals(3, $db->getSchema()->getLastInsertID('public.profile_id_seq')); $sql = 'INSERT INTO {{schema1.profile}}([[description]]) VALUES (\'non duplicate\')'; $command = $db->createCommand($sql); $command->execute(); $this->assertEquals(3, $db->getSchema()->getLastInsertID('schema1.profile_id_seq')); } /** * @see https://github.com/yiisoft/yii2/issues/11498 */ public function testSaveSerializedObject() { if (defined('HHVM_VERSION')) { $this->markTestSkipped('HHVMs PgSQL implementation does not seem to support blob colums in the way they are used here.'); } $db = $this->getConnection(); $command = $db->createCommand()->insert('type', [ 'int_col' => 1, 'char_col' => 'serialize', 'float_col' => 5.6, 'bool_col' => true, 'blob_col' => serialize($db), ]); $this->assertEquals(1, $command->execute()); $command = $db->createCommand()->update('type', [ 'blob_col' => serialize($db), ], ['char_col' => 'serialize']); $this->assertEquals(1, $command->execute()); } }