/**
  * {@inheritdoc}
  */
 public function getColumns($tableName)
 {
     $columns = array();
     $sql = sprintf("SELECT column_name, data_type, is_identity, is_nullable,\n             column_default, character_maximum_length, numeric_precision, numeric_scale\n             FROM information_schema.columns\n             WHERE table_name ='%s'", $tableName);
     $columnsInfo = $this->fetchAll($sql);
     foreach ($columnsInfo as $columnInfo) {
         $column = new Column();
         $column->setName($columnInfo['column_name'])->setType($this->getPhinxType($columnInfo['data_type']))->setNull($columnInfo['is_nullable'] === 'YES')->setDefault($columnInfo['column_default'])->setIdentity($columnInfo['is_identity'] === 'YES')->setPrecision($columnInfo['numeric_precision'])->setScale($columnInfo['numeric_scale']);
         if (preg_match('/\\bwith time zone$/', $columnInfo['data_type'])) {
             $column->setTimezone(true);
         }
         if (isset($columnInfo['character_maximum_length'])) {
             $column->setLimit($columnInfo['character_maximum_length']);
         }
         $columns[] = $column;
     }
     return $columns;
 }