File inc/struct.inc.php changed (mode: 100644) (index 891ff5e..36a5da1) |
... |
... |
function rg_sql_struct_parts_update($db) |
887 |
887 |
if ($last_list === FALSE) |
if ($last_list === FALSE) |
888 |
888 |
break; |
break; |
889 |
889 |
|
|
|
890 |
|
// last_ts - last month created already |
890 |
891 |
$last_ts = rg_state_get_uint($db, 'parts_create_last_ts'); |
$last_ts = rg_state_get_uint($db, 'parts_create_last_ts'); |
891 |
892 |
if ($last_ts === FALSE) |
if ($last_ts === FALSE) |
892 |
893 |
break; |
break; |
|
... |
... |
function rg_sql_struct_parts_update($db) |
894 |
895 |
$last_ts = gmmktime(0, 0, 0, gmdate('m') - 1, 1, gmdate('Y')); |
$last_ts = gmmktime(0, 0, 0, gmdate('m') - 1, 1, gmdate('Y')); |
895 |
896 |
rg_log('DEBUG: last_ts=' . $last_ts . ' (' . gmdate('Y-m-d', $last_ts) . ')'); |
rg_log('DEBUG: last_ts=' . $last_ts . ' (' . gmdate('Y-m-d', $last_ts) . ')'); |
896 |
897 |
|
|
|
898 |
|
// goot_ts = What month should be covered? |
|
899 |
|
$good_ts = gmmktime(0, 0, 0, gmdate('m') + 1, 1, gmdate('Y')); |
|
900 |
|
rg_log('DEBUG: good_ts=' . $good_ts . ' (' . gmdate('Y-m-d', $good_ts) . ')'); |
|
901 |
|
|
897 |
902 |
$cur_list = sha1(rg_serialize($rg_sql_struct_parts)); |
$cur_list = sha1(rg_serialize($rg_sql_struct_parts)); |
898 |
903 |
rg_log('DEBUG: last_list=[' . $last_list . '] cur_list=[' . $cur_list . ']'); |
rg_log('DEBUG: last_list=[' . $last_list . '] cur_list=[' . $cur_list . ']'); |
899 |
904 |
if (strcmp($last_list, $cur_list) != 0) { |
if (strcmp($last_list, $cur_list) != 0) { |
|
... |
... |
function rg_sql_struct_parts_update($db) |
904 |
909 |
break; |
break; |
905 |
910 |
} |
} |
906 |
911 |
|
|
907 |
|
// First second of current month |
|
908 |
|
$current_month_ts = gmmktime(0, 0, 0, gmdate('m'), 1, gmdate('Y')); |
|
909 |
|
rg_log('DEBUG: current_month_ts=' . $current_month_ts |
|
910 |
|
. ' (' . gmdate('Y-m-d', $current_month_ts) . ')'); |
|
911 |
|
|
|
912 |
912 |
// Do we have current month and the next one covered? |
// Do we have current month and the next one covered? |
913 |
|
if ($current_month_ts < $last_ts) { |
|
914 |
|
rg_log('No update needed!'); |
|
915 |
|
$ret = TRUE; |
|
|
913 |
|
if ($good_ts > $last_ts) { |
|
914 |
|
rg_log('Update needed because good_ts > $last_ts'); |
|
915 |
|
$doit = TRUE; |
916 |
916 |
break; |
break; |
917 |
917 |
} |
} |
918 |
918 |
|
|
919 |
|
rg_log('Update needed because current_month_ts >= $last_ts'); |
|
920 |
|
$doit = TRUE; |
|
|
919 |
|
rg_log('No update needed!'); |
|
920 |
|
$ret = TRUE; |
921 |
921 |
break; |
break; |
922 |
922 |
} |
} |
923 |
923 |
|
|
|
... |
... |
function rg_sql_struct_parts_update($db) |
938 |
938 |
$month = gmdate('m', $last_ts) + 1; |
$month = gmdate('m', $last_ts) + 1; |
939 |
939 |
$year = gmdate('Y', $last_ts); |
$year = gmdate('Y', $last_ts); |
940 |
940 |
$ts = gmmktime(0, 0, 0, $month, 1, $year); |
$ts = gmmktime(0, 0, 0, $month, 1, $year); |
941 |
|
$stop_ts = gmmktime(0, 0, 0, gmdate('m') + 1, 1, gmdate('Y')); |
|
942 |
|
rg_log('DEBUG: ts=' . $ts . ' stop_ts=' . $stop_ts . ' month=' . $month); |
|
943 |
|
while ($ts <= $stop_ts) { |
|
|
941 |
|
rg_log('DEBUG: ts=' . $ts . ' good_ts=' . $good_ts . ' month=' . $month); |
|
942 |
|
while ($ts <= $good_ts) { |
944 |
943 |
rg_log('DEBUG: ts=' . $ts); |
rg_log('DEBUG: ts=' . $ts); |
945 |
944 |
|
|
946 |
945 |
$month++; |
$month++; |
|
... |
... |
function rg_sql_struct_parts_update($db) |
952 |
951 |
|
|
953 |
952 |
// First, check if exists. It is possible that |
// First, check if exists. It is possible that |
954 |
953 |
// we did the update but we could not set the cache. |
// we did the update but we could not set the cache. |
955 |
|
$sql = 'SELECT 1 FROM pg_class' |
|
956 |
|
. ' WHERE relname = \'' . $part_table . '\''; |
|
957 |
|
$res = rg_sql_query($db, $sql); |
|
958 |
|
if ($res === FALSE) { |
|
|
954 |
|
$r = rg_sql_rel_exists($db, $part_table); |
|
955 |
|
if ($r === FALSE) { |
959 |
956 |
$ok = FALSE; |
$ok = FALSE; |
960 |
957 |
break; |
break; |
961 |
958 |
} |
} |
962 |
|
$rows = rg_sql_num_rows($res); |
|
963 |
|
rg_sql_free_result($res); |
|
964 |
|
if ($rows > 0) { |
|
|
959 |
|
if ($r === 1) { |
965 |
960 |
rg_log('Table already exists.'); |
rg_log('Table already exists.'); |
966 |
961 |
continue; |
continue; |
967 |
962 |
} |
} |
|
... |
... |
function rg_sql_struct_parts_update($db) |
1010 |
1005 |
if ($ok !== TRUE) |
if ($ok !== TRUE) |
1011 |
1006 |
break; |
break; |
1012 |
1007 |
|
|
1013 |
|
$r = rg_state_set($db, 'parts_create_last_ts', $stop_ts); |
|
|
1008 |
|
$r = rg_state_set($db, 'parts_create_last_ts', $good_ts); |
1014 |
1009 |
if ($r !== TRUE) { |
if ($r !== TRUE) { |
1015 |
1010 |
rg_log('Cannot set parts_create_last_ts (' . rg_state_error() . ')'); |
rg_log('Cannot set parts_create_last_ts (' . rg_state_error() . ')'); |
1016 |
1011 |
break; |
break; |