Index: src/wp-includes/comment.php
===================================================================
--- src/wp-includes/comment.php	(revision 36318)
+++ src/wp-includes/comment.php	(working copy)
@@ -966,7 +966,8 @@
 	} elseif ( is_array( $col_length ) && isset( $col_length['length'] ) && intval( $col_length['length'] ) > 0 ) {
 		$max_length = (int) $col_length['length'];
 	} else {
-		$max_length = 255;
+		// Assume a TEXT column, 65535 - 10.
+		$max_length = 65525;
 	}

 	if ( ! empty( $col_length['type'] ) && 'byte' === $col_length['type'] ) {
Index: tests/phpunit/tests/comment.php
===================================================================
--- tests/phpunit/tests/comment.php	(revision 36318)
+++ tests/phpunit/tests/comment.php	(working copy)
@@ -672,4 +672,22 @@
 		$this->assertSame( '111.111.1.1', $updated->comment_author_IP );
 		$this->assertSame( 'SHIELD_AGENT', $updated->comment_agent );
 	}
+
+	public function test_wp_get_comment_column_max_length() {
+		$columns = array(
+			'comment_author' => 245,
+			'comment_author_email' => 100,
+			'comment_author_url' => 200,
+			'comment_author_IP' => 100,
+			'comment_content' => 65525,
+			'comment_approved' => 20,
+			'comment_agent' => 255,
+			'comment_type' => 20,
+		);
+
+		foreach ( $columns as $column => $expected ) {
+			$max_length = wp_get_comment_column_max_length( $column );
+			$this->assertSame( $expected, $max_length );
+		}
+	}
 }
