No, time_taken is always fine, date_time is not coming back from the get_column request, even though it's there.
The report is selected and ordered by date_time, so if the date_time value was actually null it wouldn't be in the result set, or they'd all be at the end or the beginning, rather than what I'm seeing, which is the occasional row failing to populate date_time in the results.
| [reply] [Watch: Dir/Any] |
Now, looking at your actual output, I see that indeed, date_time cannot be NULL because you order by it. So it must be a bug or a problem with either DBIx::Class or your database driver. I don't know if it's easy to get at the unsullied result set as returned by DBI, but maybe you can determine the culprit by doing:
my $dbh = DBI->connect(..., {RaiseError => 1});
my $sth = $dbh->prepare(<<SQL);
SELECT me.id, me.name, me.date_time, me.status_code, me.time_taken
+
FROM tests me
WHERE ( ( ( date_time <= ? AND date_time >= ? ) AND name = ? ) )
ORDER BY date_time
SQL
$sth->execute('2009-06-24 23:59:59', '2009-06-24 00:00:00', 'ART_CRV')
+;
my $res = $sth->fetchall_arrayref();
print Dumper($res);
If you find any undef in there, the problem is with your DBD. If you don't find any undef there, the problem is likely in your DBIx::Class stack somewhere. | [reply] [Watch: Dir/Any] [d/l] [select] |
++. I just ran this and was missing data in the results from this too.
I would have perhaps guessed earlier that this might be a db problem if I'd paid attention to the version of mysql we have on this box, 6.0.11-alpha-community!
I shall be getting this downgraded sharpish! Sorry to waste your time guys, I think it was the only version number I didn't put in my original post!
Many Thanks,
---
my name's not Keith, and I'm not reasonable.
| [reply] [Watch: Dir/Any] |