[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