k-rus commented on code in PR #4038: URL: https://github.com/apache/cassandra/pull/4038#discussion_r2281659825
########## src/java/org/apache/cassandra/schema/TableMetadata.java: ########## @@ -649,6 +651,17 @@ public void validate() require((params.transactionalMode == TransactionalMode.off && params.transactionalMigrationFrom == TransactionalMigrationFromMode.none) || !isCounter(), "Counters are not supported with Accord for table " + this); } + private void validateTableName() + { + if (!isValidCharsName(name)) + except("Table name must not be empty or not contain non-alphanumeric-underscore characters (got \"%s\")", name); + + if (name.length() > TABLE_NAME_LENGTH) + except("Table name must not be more than %d characters long (got %d characters for \"%s\")", TABLE_NAME_LENGTH, name.length(), name); + + assert getTableDirectoryName().length() <= FILENAME_LENGTH : String.format("Generated directory name for a table of %d characters doesn't fit the max filename legnth of %s. This unexpectedly wasn't prevented by check of the table name length, %d, to fit %d characters (got table name \"%s\" and generated directory name \"%s\"", getTableDirectoryName().length(), FILENAME_LENGTH, name.length(), TABLE_NAME_LENGTH, name, getTableDirectoryName()); Review Comment: > why you assert here and exception on other two cases? I don't understand the question. Can you elaborate? This is the only place where length is controlled to fit the file name length, isn't it? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org For additional commands, e-mail: pr-h...@cassandra.apache.org