Ruby & DBI

hej, mam taki kod, ktory uruchamia query za pomoca biblioteki dbi i zapisuje rezultat do tablicy:

result = [] sth = dbh.execute(q.query) sth.fetch do |row| result << row end
rezultat to tabela (3 kolumny oraz 4 wiersze z naglowkami)

Niestety wszystkie trzy wiersze sa wynikiem ostatniego wiersza

tutaj output:

[code]1##############
[#BigDecimal:458cc90,‘0.25E2’,9(18), #BigDecimal:458cba0,‘0.667324E6’,9(18), #BigDecimal:458cb00,‘0.1298729E7’,9(18)]2##############
3##############
25.0
667324.0
1298729.0
4##############
1##############
[#BigDecimal:458b818,‘0.24E2’,9(18), #BigDecimal:458b610,‘0.730034E6’,9(18), #BigDecimal:458b4f8,‘0.1413508E7’,9(18)]2##############
3##############
24.0
730034.0
1413508.0

24.0
730034.0
1413508.0
4##############
1##############
[#BigDecimal:4594800,‘0.26E2’,9(18), #BigDecimal:4594580,‘0.34617E6’,9(18), #BigDecimal:45942d8,‘0.613876E6’,9(18)]2##############
3##############
26.0
346170.0
613876.0

26.0
346170.0
613876.0

26.0
346170.0
613876.0
4##############[/code]
Jak widzicie ostatni rezultat wyswietla tablice z rezultatami ostatniego wiersza co nie ma najmniejszego sensu. Uzywajac metody fetch_array wszystko jest ok ale przy tej metodzie dane sa zapisywane jako elementy tablicy nie uwzgledniajac Type Mapping

wydaje mi sie ze result.concat(row) rozwiazalo problem ale nie moge zrozumiec dlaczego poprzedni sposob nadpisuje ostatnim wierszem wczesniejsze wiersze