Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#216 Spurious symbols in usage table with MySQL

current_cvs
closed-fixed
Andre-Littoz
7
2012-09-10
2012-08-24
Andre-Littoz
No

When comparing indexation results between MySQL, PostgreSQL and SQLite, MySQL records more symbol usages in table lxr_usages. After diff'ing the tables, it appears the extra usages hit on similar looking symbols (with a different case). MySQL manual says: "By default, string comparisons are not case sensitive and use the current character set." This may be correct for natural languages but definitely wrong for computer science and case-sensitive languages.

The easiest way to solve that issue is to change the type of the columns in the table description to BINARY. Thus, we keep method common factoring in the Index class.

Discussion

  • Andre-Littoz
    Andre-Littoz
    2012-09-10

    • status: open --> closed-fixed
     
  • Andre-Littoz
    Andre-Littoz
    2012-09-10

    CHAR data in MySQL tables changed to BINARY to force bit comparisons instead of locale.
    Did the same for PostgreSQL(failsafe though it works as is): CHAR -> BYTEA.
    Nothing done for SQLite (it works as is).
    Could not do anything for Oracle since I could not test with it.

    Fix effective as of release 1.0