MQL baffles me

My job consists of writing functional specifications and generally managing the architecture of a big R&D information system based on a wonderful jack-of-all-trade application called eMatrix from Dassault.

I often delve deep into the application with the MQL console (for Matrix Query Language) to dig out some insight into the data we manage.

And, more often than not, I find things that makes me cringe:

MQL<45> print bus ECO ZCO3171 - select history.promote;
business object ECO ZCO3171 -
history.promote = time: 10/22/2007 9:56 state: Design Work
history.promote = time: 10/22/2007 17:23 state: Review
history.promote = time: 10/22/2007 18:28 state: Release
history.promote = time: 10/24/2007 21:33 state: Implemented
MQL<46> print bus ECO ZCO3171 - select history.promote[1];
business object ECO ZCO3171 -
history.promote[1] = time: 10/22/2007 17:23 state: Review
MQL<47> print bus ECO ZCO3171 - select history.promote[0];
business object ECO ZCO3171 -
history.promote[0] = time: 10/22/2007 9:56 state: Design Work
history.promote[0] = time: 10/22/2007 17:23 state: Review
history.promote[0] = time: 10/22/2007 18:28 state: Release
history.promote[0] = time: 10/24/2007 21:33 state: Implemented

If someone has any insight on how a query language can be this flawed, I’m all ears.

PS: If you don’t understand anything about this post, I’m deeply sorry for boring you with my tech rants…