code: private function getColumnDefinition($table, $column)
      {
          $row = $this->db->createCommand('SHOW CREATE TABLE ' . $this->db->quoteTableName($table))->queryOne();
          if ($row === false) {
              throw new Exception("Unable to find column '$column' in table '$table'.");
          }
          if (isset($row['Create Table'])) {
              $sql = $row['Create Table'];
          } else {
              $row = array_values($row);
              $sql = $row[1];
          }
          $sql = preg_replace('/^[^(]+\((.*)\).*$/', '\1', $sql);
          $sql = str_replace(', [', ",\n[", $sql);
          if (preg_match_all('/^\s*\[(.*?)\]\s+(.*?),?$/m', $sql, $matches)) {
              foreach ($matches[1] as $i => $c) {
                  if ($c === $column) {
                      return $matches[2][$i];
                  }
              }
          }
  
          return null;
      }
docs: Gets column definition.
  
  @param string $table table name
  @param string $column column name
  @return null|string the column definition
  @throws Exception in case when table does not contain column
  @since 2.0.8