Just so you guys know the reason you're seeing data "lost" from the database is due to the way DotA handles replay data. Icefrog wrote DotA to send the replay data when the tree/throne dies and also every time a player leaves the game after at least two other players have already left. I'm actually not 100% positive about this but I think that's how it works. There may be some minor discrepancies, for example based on your findings so far it would appear that the "min" and "sec" values are never sent until the tree/throne dies and who knows what else is present or absent.
Nevermind, it seems like stats are sent whenever a player leaves. I guess you can use any winner / forfeit patch, I think the best is at
http://www.codelain.com/forum/index.php?topic=5878.msg103281#msg103281