[Flug] Voi che ci capite a pacchi: mysql
Gian Uberto Lauri
saint@eng.it
Lun 17 Mar 2014 16:42:55 CET
Massimiliano Masi writes:
> Ciao,
>
> Il giorno 17/mar/2014, alle ore 15:57, Gian Uberto Lauri <saint@eng.it> ha scritto:
> > Hanno la loro utilità, basta che non si chiamino mysql... Avere i nomi delle
> > tabelle mappati sui nomi dei file che le contengono è una boiata peggiore
> > di Windows 3.0.
> >
>
> OIoioi, o perché mai!!! Che problem possono dare???
Postulato: per definizione SQL è case insensitive.
Scenario:
Anni fa, in $multinazionale_tascabile $sysadmin_a.t.a.p riceve da
$team_sviluppo un'applicazione da installare e che usa mysql.
Installa glassfish (ahiaaaaa), fa le import delle export dei dati ricevuti
da $team_sviluppo, avvia glassfish e nel log vede:
java.sql.SQLException: Table "users" does not exists.
Rapida occhiata di $sysadmin_a.t.a.p in /var/lib/mysql/applicazione
dove trova:
Users.frm, Users.MYD, Users.MYI
Ovvero la tabella c'è ma ha il nome sbagliato in quanto con MySql i
nomi delle tabelle sono case insensitive solo se il file system
sottostante è case insensitive (ergo MySql non è completamente sql
compliant).
Dovrebbe funzionare anche il renaming delle tabelle ma per essere
sicuro, carica la export in Emacs, droppa l'intero DB, concorda con
$team_sviluppo come chiamare le tabelle...
$sys: - "Brava gente, io posso benissimo sistemare i nomi nelle
import, ma voi dovete essere coerenti con il modo in cui chiamate le
tabelle..."
$cp: "Ma SQL è case insensitive!!!!!!" (col tono "Hai appena bestemmiato
Dio, Allah, Budda e Zeus in una volta sola!")
$sys: "E lo racconti a me? Prima di venire qui a fare il sysadmin ho
sviluppato per 10 anni. Ma quelli di MySql hanno deciso di non seguire
gli standard, siccome i nomi delle tabelle sono i nomi dei file sul
file system, se il file system NON è case insensitive allora i nomi
delle tabelle non sono case insensitive. Mai fatto prima di adesso
test con Linux, eh?"
[Morale - ho dovuto pure attendere gli audit sui sorgenti
dell'applicazione".
--
/\ ___ Ubuntu: ancient
/___/\_|_|\_|__|___Gian Uberto Lauri_____ African word
//--\| | \| | Integralista GNUslamico meaning "I can
\/ coltivatore diretto di software not install
già sistemista a tempo (altrui) perso... Debian"
Warning: gnome-config-daemon considered more dangerous than GOTO
Maggiori informazioni sulla lista
flug