««« | »»»
Diciamo no a MySQL
Pensierini della sera
Nei momenti di sciatteria mi vien da pensare che in fondo, per la maggior parte degli usi, MySQL va più che bene. Sì, d’accordo, PostgreSQL è un’altra cosa ma sono differenze che spesso non si vedono.
Poi mi capitano cose come quella che segue e capisco che è una sciocchezza.
Il fatto
C’è questa applicazione PHP+MySQL da mettere in sicurezza, prima della riscrittura da zero. Provo alcune modifiche in locale e, essendo tutto a posto, riporto gli aggiornamenti sul server di deployment.
Verifico che funzioni tutto e noto alcune stranezze per cui inizio a fare tutte le possibili verifiche ma sembra tutto a posto, fin quando provo l’SQL a mano e vedo che una query dà errore dicendo che la tabella è inesistente (????).
A questo punto guardo la documentazione di MySQL e scopro che:
In MySQL, databases correspond to directories within the data directory. Each table within a database corresponds to at least one file within the database directory (and possibly more, depending on the storage engine). Consequently, the case sensitivity of the underlying operating system plays a part in the case sensitivity of database and table names. This means database and table names are not case sensitive in Windows, and case sensitive in most varieties of Unix. One notable exception is Mac OS X, which is Unix-based but uses a default file system type (HFS+) that is not case sensitive.
A quel punto capisco: sto sviluppando su Mac OS X e il server è Linux.
La morale della storia
Che dire? tutto questo è ridicolo. Non so cosa dica lo standard SQL: se il riferimento ai nomi debba esser case sensitive o meno ma che una query smetta di funzionare a causa del sistema operativo sottostante è veramente un delirio. Non vedo l’ora di mandare in pensione questa applicazione!
Per proseguire
Commenti e trackback sono disabilitati.