AUR web interface

Tasklist

FS#25721 - Fix all encoding issues in production AUR

Attached to Project: AUR web interface
Opened by Dan McGee (toofishes) - Monday, 22 August 2011, 20:45 GMT
Last edited by Lukas Fleischer (lfleischer) - Saturday, 17 November 2012, 19:30 GMT
Task Type Bug Report
Category Backend
Status Closed
Assigned To Lukas Fleischer (lfleischer)
Architecture All
Severity Low
Priority Normal
Reported Version 1.9.0
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Encoded URL or not, these both blow up the AUR:
* http://aur.archlinux.org/packages.php?O=0&K=%D0%9A%D1%80%D0%B8%D1%82%D0%B5%D1%80%D0%B8%D0%B8+%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0&do_Search=Go
* http://aur.archlinux.org/packages.php?O=0&K=Критерии+поиска&do_Search=Go

I set up syslog to send PHP errors to /var/log/php.log on sigurd, and you see this:

Aug 22 16:42:35 localhost php-cgi: ERROR: near /srv/http/aur.archlinux.org/aur-root/web/lib/pkgfuncs.inc.php:535 in query: SELECT COUNT(*) FROM Packages
LEFT JOIN Users ON (Packages.MaintainerUID = Users.ID)
LEFT JOIN PackageCategories
ON (Packages.CategoryID = PackageCategories.ID) WHERE 1 = 1 AND (Name LIKE '%Критерии поиска%' OR Description LIKE '%Критерии поиска%')
-> Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'

We need to actually do this right- the entire database, every table, and all the columns need to be converted to UTF8, and then the default connection character set needs to be converted too.

The schema specifies it, but since we didn't start with the stock schema, you're going to have to research how to do the conversion correctly on every varchar field.
This task depends upon

Closed by  Lukas Fleischer (lfleischer)
Saturday, 17 November 2012, 19:30 GMT
Reason for closing:  Fixed
Additional comments about closing:  Converted all columns to UTF-8.
Comment by Lukas Fleischer (lfleischer) - Tuesday, 20 September 2011, 08:52 GMT
`ALTER TABLE $table CONVERT TO CHARACTER SET utf8;` can be used to convert a single table. Not sure if we need to do anything else here. I'll test that on a local setup before doing the conversion on sigurd.

Loading...