1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
--- /nnx/sympa/inst/sympa-2.2.7/src/List.pm Mon Jun 21 17:57:13 1999
+++ bin/List.pm Tue Aug 17 15:52:23 1999
@@ -199,6 +199,10 @@
return undef;
}
+ if ($Conf{'db_type'} eq 'Pg') { # Configure Postgres to use ISO format dates
+ $dbh->do ("SET DATESTYLE TO 'ISO';");
+ }
+
do_log('debug','Connected to Database %s',$Conf{'db_name'});
return 1;
@@ -942,7 +947,8 @@
return undef unless db_connect();
}
- unless ($statement = sprintf "SELECT email_user as email, gecos_user as gecos, reception_subscriber as reception, visibility_subscriber as visibility, cookie_delay_user as cookie_delay, lang_user as lang, UNIX_TIMESTAMP(date_subscriber) as date, substring_index(email_user,'.',-1) AS top, substring_index(replace(email_user,'\@','.'),'.',-2) AS dom FROM user,subscriber WHERE (list_subscriber = %s AND email_user = user_subscriber) ORDER BY top, dom",$dbh->quote($name)) {
+ unless ($statement = sprintf "SELECT email_user AS email, gecos_user AS gecos, reception_subscriber AS reception, visibility_subscriber AS visibility, cookie_delay_user AS cookie_delay, lang_user AS lang, date_subscriber AS date, SUBSTRING(user_subscriber FROM position('\@' IN user_subscriber) FOR 50) AS dom FROM user,subscriber WHERE (list_subscriber = %s AND email_user = user_subscriber) ORDER BY dom",$dbh->quote($name)) {
+# unless ($statement = sprintf "SELECT email_user as email, gecos_user as gecos, reception_subscriber as reception, visibility_subscriber as visibility, cookie_delay_user as cookie_delay, lang_user as lang, UNIX_TIMESTAMP(date_subscriber) as date, substring_index(email_user,'.',-1) AS top, substring_index(replace(email_user,'\@','.'),'.',-2) AS dom FROM user,subscriber WHERE (list_subscriber = %s AND email_user = user_subscriber) ORDER BY top, dom",$dbh->quote($name)) {
do_log('debug','Unable to define SQL statement : %s', $dbh->errstr);
return undef;
@@ -960,6 +966,10 @@
my $user = $sth->fetchrow_hashref;
+ my $formatted_date = $user->{'date'};
+ $formatted_date =~ /^(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/;
+ $user->{'date'} = POSIX::mktime ($6, $5, $4, $3, $2, $1);
+
$self->{'total'} = 1 if $user;
return $user;
@@ -1114,7 +1124,8 @@
next unless ($map_field{$field} and $map_table{$field});
if ($map_table{$field} eq $table) {
if ($field eq 'date') {
- $value = "FROM_UNIXTIME($value)";
+# $value = "FROM_UNIXTIME($value)";
+ $value = $dbh->quote(POSIX::strftime ("%Y-%m-%d %H:%M:%S", localtime ($value)));
}else {
$value = $dbh->quote($value);
}
@@ -1290,7 +1301,8 @@
}
## Update Subscriber Table
- unless ( $statement = sprintf "REPLACE INTO subscriber (user_subscriber, list_subscriber, date_subscriber, reception_subscriber, visibility_subscriber) VALUES (%s, %s, FROM_UNIXTIME(%s), %s, %s)",$dbh->quote($who), $dbh->quote($name), $dbh->quote($values->{'date'}), $dbh->quote($values->{'reception'}), $dbh->quote($values->{'visibility'}) ) {
+# unless ( $statement = sprintf "REPLACE INTO subscriber (user_subscriber, list_subscriber, date_subscriber, reception_subscriber, visibility_subscriber) VALUES (%s, %s, FROM_UNIXTIME(%s), %s, %s)",$dbh->quote($who), $dbh->quote($name), $dbh->quote($values->{'date'}), $dbh->quote($values->{'reception'}), $dbh->quote($values->{'visibility'}) ) {
+ unless ( $statement = sprintf "DELETE FROM subscriber WHERE (user_subscriber=%s) AND (list_subscriber=%s); INSERT INTO subscriber (user_subscriber, list_subscriber, date_subscriber, reception_subscriber, visibility_subscriber) VALUES (%s, %s, %s, %s, %s)", $dbh->quote($who), $dbh->quote($name), $dbh->quote($who), $dbh->quote($name), $dbh->quote(POSIX::strftime ("%Y-%m-%d %H:%M:%S", localtime($values->{'date'}))), $dbh->quote($values->{'reception'}), $dbh->quote($values->{'visibility'}) ) {
do_log('debug','Unable to define SQL statement : %s', $dbh->errstr);
return undef;
}
|