From 745f9e658a8e4d26bfd250b263132b25ab60e173 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Wed, 27 Aug 2008 20:19:58 +0000 Subject: Bug 450379: Searching SQL for candidates to truncate short_desc (> 255 chars) should use CHAR_LENGTH - Patch by A.A. Shimono (himorin) and Xiaoou r/a=mkanat --- Bugzilla/DB/Oracle.pm | 2 ++ Bugzilla/Install/DB.pm | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Bugzilla/DB/Oracle.pm b/Bugzilla/DB/Oracle.pm index 341818a5c..cddb23da1 100644 --- a/Bugzilla/DB/Oracle.pm +++ b/Bugzilla/DB/Oracle.pm @@ -489,6 +489,8 @@ sub bz_setup_database { # have that function, So we have to create one ourself. $self->do("CREATE OR REPLACE FUNCTION NOW " . " RETURN DATE IS BEGIN RETURN SYSDATE; END;"); + $self->do("CREATE OR REPLACE FUNCTION CHAR_LENGTH(COLUMN_NAME VARCHAR2)" + . " RETURN NUMBER IS BEGIN RETURN LENGTH(COLUMN_NAME); END;"); # Create a WORLD_LEXER named BZ_LEX for multilingual fulltext search my $lexer = $self->selectcol_arrayref( "SELECT pre_name FROM CTXSYS.CTX_PREFERENCES WHERE pre_name = ? AND diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm index 561dc0850..218ea093f 100644 --- a/Bugzilla/Install/DB.pm +++ b/Bugzilla/Install/DB.pm @@ -2623,7 +2623,7 @@ sub _change_short_desc_from_mediumtext_to_varchar { # and then truncate the summary. my $long_summary_bugs = $dbh->selectall_arrayref( 'SELECT bug_id, short_desc, reporter - FROM bugs WHERE LENGTH(short_desc) > 255'); + FROM bugs WHERE CHAR_LENGTH(short_desc) > 255'); if (@$long_summary_bugs) { print <dbh; my %contents = @{ $dbh->selectcol_arrayref( "SELECT $id_field, $field_name FROM $table_name - WHERE LENGTH($field_name) > ?", {Columns=>[1,2]}, $max_length) }; + WHERE CHAR_LENGTH($field_name) > ?", {Columns=>[1,2]}, $max_length) }; if (scalar keys %contents) { print install_string('install_data_too_long', -- cgit v1.2.3-24-g4f1b