Hi,

After the upgrade to 6.2.68 the database health check and upgrade wouldn't work at all. I added tons of debugging output and tracked down the problem: When the health check compares the database types, it is expecting lowercase type names, but SQLITE occasionally gives uppercase type names.

After forcing SQLITE return values to lowercase, everything seems to work. Here's a patch:

sympa# diff -c /usr/share/sympa/lib/Sympa/DatabaseDriver/SQLite.pm /usr/share/sympa/lib/Sympa/DatabaseDriver/SQLite.pm.orig *** /usr/share/sympa/lib/Sympa/DatabaseDriver/SQLite.pm Fri Nov 11 12:29:21 2022 --- /usr/share/sympa/lib/Sympa/DatabaseDriver/SQLite.pm.orig Fri Nov 11 12:29:01 2022
***************
*** 191,197 ****
      }
      while (my $field = $sth->fetchrow_hashref('NAME_lc')) {
          # http://www.sqlite.org/datatype3.html
!         my $type = lc $field->{'type'};
          if ($type =~ /int/) {
              $type = 'integer';
          } elsif ($type =~ /char|clob|text/) {
--- 191,197 ----
      }
      while (my $field = $sth->fetchrow_hashref('NAME_lc')) {
          # http://www.sqlite.org/datatype3.html
!         my $type = $field->{'type'};
          if ($type =~ /int/) {
              $type = 'integer';
          } elsif ($type =~ /char|clob|text/) {
sympa#


--
        Aleksi Suhonen

        () ascii ribbon campaign
        /\ support plain text e-mail

Reply via email to