_connection = $db; $this->_schema = $schema; } /** * List Tables * * @return array */ public function getTableNames() { return $this->_connection->listTables(); } /** * Get Table information * * @param string $tableName * @return array */ protected function getTableDescription($tableName) { if(!isset($this->_tableMetadata[$tableName])) { $this->_tableMetadata[$tableName] = $this->_connection->describeTable($tableName); } return $this->_tableMetadata[$tableName]; } /** * Returns an array containing the names of all the columns in the * $tableName table, * * @param string $tableName * @return array */ public function getTableColumns($tableName) { $tableMeta = $this->getTableDescription($tableName); $columns = array_keys($tableMeta); return $columns; } /** * Returns an array containing the names of all the primary key columns in * the $tableName table. * * @param string $tableName * @return array */ public function getTablePrimaryKeys($tableName) { $tableMeta = $this->getTableDescription($tableName); $primaryColumnNames = array(); foreach($tableMeta AS $column) { if($column['PRIMARY'] == true) { $primaryColumnNames[] = $column['COLUMN_NAME']; } } return $primaryColumnNames; } /** * Returns the name of the default schema. * * @return string */ public function getSchema() { return $this->_schema; } /** * Returns a quoted schema object. (table name, column name, etc) * * @param string $object * @return string */ public function quoteSchemaObject($object) { return $this->_connection->quoteIdentifier($object); } /** * Returns true if the rdbms allows cascading * * @return bool */ public function allowsCascading() { return false; } /** * Disables primary keys if rdbms does not allow setting them otherwise * * @param string $tableName */ public function disablePrimaryKeys($tableName) { // Implemented only to match new DBUnit interface } /** * Reenables primary keys after they have been disabled * * @param string $tableName */ public function enablePrimaryKeys($tableName) { // Implemented only to match new DBUnit interface } }