Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Re: File::stat's size method returns negative values

by djw (Vicar)
on May 06, 2003 at 21:32 UTC ( [id://256054]=note: print w/replies, xml ) Need Help??


in reply to Re: File::stat's size method returns negative values
in thread File::stat's size method returns negative values

I thought about that as well, but like I said, the size field in the table contains numbers larger than the ones I displayed. To be sure though, I altered the column to use BIGINT and the problem still occured (after I re-ran my program).

Here is the insertion code:

sub writeDB { # stuff ... $sth2 = $dbh->prepare( " insert into files ( client_id, path_id, file, size, ctime, mtime, atime ) values ( ?, ?, ?, ?, ?, ?, ? ) "); foreach my $path (keys %data) { my $pathInsert = qq`insert into path ( client_id, Path ) values ( ?, ? )`; $sth3 = $dbh->prepare($pathInsert); $sth3->execute($client_id, $path); $sth3->finish(); my $path_id = $sth3->{'mysql_insertid'}; foreach my $file (keys %{$data{$path}}) { my $size = $data{$path}{$file}{size}; my $ctime = $data{$path}{$file}{ctime}; my $atime = $data{$path}{$file}{atime}; my $mtime = $data{$path}{$file}{mtime}; $sth2->execute( $client_id, $path_id, $file, $size, $ctime, $atime, $mtime ); } } $sth2->finish(); $dbh->disconnect(); }
Update: I did check to see if any of the files were negative before the perl->mysql code and they were at the time stat was performed (stat($_)).

djw

Replies are listed 'Best First'.
Re: Re: Re: File::stat's size method returns negative values
by leriksen (Curate) on May 07, 2003 at 00:55 UTC
    not an answer, but a means of reconciling - could you also do a qx(stat $_) and see how those values compare to perls built-in stat (or File::Stat 's over-ride)?
    #!/usr/bin/perl -w use strict; my $file = $0; # how BIG am I ? my $pstat_size = (stat($file))[7]; (my $qstat_size) = qx(stat $file) =~ m/Size: (-?\d+)/; print "$pstat_size, $qstat_size\n"; # not that big

    output is 175, 175
    I ran this against some 2G+ oracle dbf's, no problem

    (code assumes *nix or MS system with a visible stat exe somewhere)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://256054]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2024-04-25 10:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found