--- loncom/metadata_database/LONCAPA/lonmetadata.pm 2009/04/29 15:21:00 1.27 +++ loncom/metadata_database/LONCAPA/lonmetadata.pm 2011/05/31 14:45:53 1.33 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonmetadata.pm,v 1.27 2009/04/29 15:21:00 bisitz Exp $ +# $Id: lonmetadata.pm,v 1.33 2011/05/31 14:45:53 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -93,7 +93,7 @@ FULLTEXT idx_language (language), FULLTEXT idx_owner (owner), FULLTEXT idx_copyright (copyright)) -TYPE=MYISAM; +ENGINE=MYISAM; =cut @@ -356,6 +356,9 @@ sub create_metadata_storage { $col_des.="(".$coldata->{'size'}.")"; } } + if (($tablename =~ /allusers/) && ($column eq 'username')) { + $col_des .= ' CHARACTER SET latin1 COLLATE latin1_general_cs'; + } # Modifiers if (exists($coldata->{'restrictions'})){ $col_des.=" ".$coldata->{'restrictions'}; @@ -381,7 +384,7 @@ sub create_metadata_storage { $text .= 'idx_'.$colname.' ('.$colname.')'; push (@Columns,$text); } - $request .= "(".join(", ",@Columns).") TYPE=MyISAM"; + $request .= "(".join(", ",@Columns).") ENGINE=MyISAM"; return $request; } @@ -1080,10 +1083,14 @@ sub process_portfolio_access_data { ($key =~ /^([^:]+):([a-z]+)_(\d*)_?(\d*)$/); next if (($scope ne 'public') && ($scope ne 'guest')); $acc_data->{scope} = $scope; + my $sqltime_error; if ($end != 0) { - $acc_data->{end} = &sqltime($end); + $acc_data->{end} = &sqltime($end,\$sqltime_error); + } + $acc_data->{start} = &sqltime($start,\$sqltime_error); + if ($sqltime_error) { + $loghash{$key}{'err'} = $sqltime_error; } - $acc_data->{start} = &sqltime($start); if (! $simulate) { my ($count,$err) = &store_metadata($dbh,$newnames->{'access'}, @@ -1127,7 +1134,8 @@ sub process_portfolio_metadata { if (-e $fullpath) { my ($ref,$crs,$addedfields) = &portfolio_metadata($fullpath,$dom,$uname, $group); - &getfiledates($ref,$fullpath); + my $sqltime_error; + &getfiledates($ref,$fullpath,\$sqltime_error); if ($is_course) { $ref->{'groupname'} = $group; } @@ -1142,6 +1150,9 @@ sub process_portfolio_metadata { ); my %loghash; if (! $simulate) { + if ($sqltime_error) { + $loghash{'metadata'."\0"}{'err'} = $sqltime_error; + } my ($count,$err) = &store_metadata($dbh,$newnames->{'portfolio'},'portfolio_metadata', \%Data); @@ -1233,11 +1244,11 @@ sub getfile { } ## -## &getfiledates() +## &getfiledates($ref,$target,$sqltime_error) ## Converts creationdate and modifieddates to SQL format ## Applies stat() to file to retrieve dates if missing sub getfiledates { - my ($ref,$target) = @_; + my ($ref,$target,$sqltime_error) = @_; if (! defined($ref->{'creationdate'}) || $ref->{'creationdate'} =~ /^\s*$/) { $ref->{'creationdate'} = (stat($target))[9]; @@ -1246,17 +1257,17 @@ sub getfiledates { $ref->{'lastrevisiondate'} =~ /^\s*$/) { $ref->{'lastrevisiondate'} = (stat($target))[9]; } - $ref->{'creationdate'} = &sqltime($ref->{'creationdate'}); - $ref->{'lastrevisiondate'} = &sqltime($ref->{'lastrevisiondate'}); + $ref->{'creationdate'} = &sqltime($ref->{'creationdate'},$sqltime_error); + $ref->{'lastrevisiondate'} = &sqltime($ref->{'lastrevisiondate'},$sqltime_error); } ## -## &sqltime($timestamp) +## &sqltime($timestamp,$sqltime_error) ## ## Convert perl $timestamp to MySQL time. MySQL expects YYYY-MM-DD HH:MM:SS ## sub sqltime { - my ($time) = @_; + my ($time,$sqltime_error) = @_; my $mysqltime; if ($time =~ /(\d+)-(\d+)-(\d+) # YYYY-MM-DD @@ -1279,7 +1290,9 @@ sub sqltime { } elsif (! defined($time) || $time == 0) { $mysqltime = 0; } else { - &log(0," sqltime:Unable to decode time ".$time); + if (ref($sqltime_error) eq 'SCALAR') { + $$sqltime_error = "sqltime:Unable to decode time ".$time; + } $mysqltime = 0; } return $mysqltime;