summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2008-08-27 22:19:58 +0200
committerlpsolit%gmail.com <>2008-08-27 22:19:58 +0200
commit745f9e658a8e4d26bfd250b263132b25ab60e173 (patch)
tree42edcc9a4f45604c457a7d53136645d636c7df37
parent75e8ed221770ed75e075dba4c652132c0d7674f3 (diff)
downloadbugzilla-745f9e658a8e4d26bfd250b263132b25ab60e173.tar.gz
bugzilla-745f9e658a8e4d26bfd250b263132b25ab60e173.tar.xz
Bug 450379: Searching SQL for candidates to truncate short_desc (> 255 chars) should use CHAR_LENGTH - Patch by A.A. Shimono (himorin) <shimono@mozilla.gr.jp> and Xiaoou <xiaoou.wu@oracle.com> r/a=mkanat
-rw-r--r--Bugzilla/DB/Oracle.pm2
-rw-r--r--Bugzilla/Install/DB.pm4
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 <<EOT;
@@ -2979,7 +2979,7 @@ sub _check_content_length {
my $dbh = Bugzilla->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',