If you try to enter a very long barcode for an item in the "Add item" screen, you'll get a 500 error and the following in the logs: [WARN] DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::mysql::st execute failed: Data too long for column 'barcode' at row 1 at /kohadevbox/koha/Koha/Object.pm line 174 It should be trivial for us to add length limit checks in the HTML and the Perl.
Owen commented on Mattermost about how the default framework should enforce a maxlength for 952$p, which led me to raise bug 40508 where I've added a patch that does that. We could add a DB update here to set maxlength to 20 if kohafield = 'items.barcode". -- Note: While maxlength does prevent new barcodes from being input that are greater than 20 characters, it doesn't prevent you from saving an item that already has a barcode that is longer than that.