BasieP schreef op woensdag 08 juni 2011 @ 20:09:
[...]
Oracle is een leuke. Die zet de string om naar een int bij een vergelijking, terwijl alle andere DBMS dat andersom doen.
resultaat:
je doet een query, laten we zeggen
SQL:
1
| SELECT * FROM table WHERE col1 = col2 |
waarbij col1 int is, en col2 varchar2 oid.
dit gaat dan voor de eerste 1000 records goed, en dan opeens krijg je een foutmelding in de zin van:
"can't cast 'woei' to int"
en dan denk je... wtf, ik cast toch niks naar int???
Hoewel MS-SQL niet automatisch van string naar int cast heb ik die melding toch geregeld gezien. Heeft een schattige ontwikkelaar een cast naar een int gedaan en vervolgens de handel als View opgeleverd. Dus ga je lekker tegen de view aan werken, daar krijg je tenslotte een mooie int uit. En verder zal het mij aan mijn reet roesten wat er qua achterliggende data is. Als ik iets opgeleverd krijg als een int verwacht ik gewoon een int.
Normaal zou je zo iets checken, maar in projecten waar je tig views hebt en een zeer strakke deadline heb ik wel iets beters te doen.
Vervolgens plemp je het op je acceptatie omgeving (of andere omgeving met meer data) krijg je bakken met errors.
> "Goh op mijn machine werkte het wel"
< "Hoe heb je getest dan"
> "Met een top 100" en dat ging helemaal goed
<

< "Heb je het getest op de
hele dataset?
> "Nee, duurt te lang, de eerste 100 zijn toch representatief"
<
Vervolgens kan dat 2 dingen betekenen:
- Je acceptatie omgeving heeft corrupte data, dat gebeurt me geregeld, heeft een developer een foute import gedaan of een update geknald en laat hij gewoon lekker de oude/corrupte rommel staan. Oplossing is dan gewoon die developer een schop geven
- De developer heeft een heel klein dingetje in het functioneel ontwerp gemist waardoor er toch letter toe zijn gestaan. Oplossing: hard huilen

want je kunt dan door heel je code stack de handel aanpassen
Sowieso zijn de sub-set testers vervelende lui, want op 100 records performt alles, maar als je vervolgens de boel los laat op een totale set en dat zijn miljoenen records kan het zowaar ineens performen als dikke stront door een trechter. Sommige zijn niet eens zo briljant om te bedenken dat in een systeem met duizenden producten en facturen misschien ook wel duizenden (al dan niet miljoenen) transacties kunnen bestaan (bijvoorbeeld voorraad transacties of financiële transacties), daarin verdiepen is niet nodig, als het compilet en redelijk draait op een test set is het toch voldoende.
En dan mag je ze soms niet al te hard aanspreken omdat je de consultant bent die is ingehuurd om zo'n gast te assisteren... Moet je ineens professioneel blijven
Sommige bedrijven hebben me toch volk rondlopen
[/rage]