Change Log for The Hardest Boulder Problems in the World

Overview

Total Changes

10

First Change

4th Dec 2023

Last Change

30th Aug 2024

Log

Date Time User Type Name Attribute
1 30th August 2024 06:46:54 remus - - list_type_name
Before
Misc.
After
Bouldering
2 30th August 2024 06:46:54 remus - - list_type_id
Before
5
After
1
3 22nd January 2024 17:46:05 remus - - list_definition
Before
select '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb ,g.grade as "Grade" ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" ,string_agg('<a href="/climber/' || cl2.climber_id::varchar || '">' || cl2.climber_name || '</a>', ', ') as Repeats from climbs c inner join grades g on c.grade_id = g.grade_id left join ascents a on a.climb_id = c.climb_id and a.fa = true and a.deleted_on is null left join ascent_styles asty on a.ascent_style_id = asty.ascent_style_id left join climbers cl on a.climber_id = cl.climber_id left join ascents a2 on a2.climb_id = c.climb_id and a2.fa = false and a2.deleted_on is null left join ascent_styles asty2 on a2.ascent_style_id = asty2.ascent_style_id left join climbers cl2 on a2.climber_id = cl2.climber_id where c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 and (asty.ascent_successful is null or asty.ascent_successful = true) and (asty2.ascent_successful is null or asty2.ascent_successful = true) group by c.climb_id ,c.climb_name ,cl.climber_id ,cl.climber_name ,g.grade ,g.order_on ,order_dt(a.ascent_dt_start, a.ascent_dt_end) ,pretty_dt(a.ascent_dt_start, a.ascent_dt_end) order by g.order_on desc ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
After
select '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb ,g.grade as "Grade" ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" ,string_agg('<a href="/climber/' || cl2.climber_id::varchar || '">' || cl2.climber_name || '</a>', ', ') as Repeats from climbs c inner join grades g on c.grade_id = g.grade_id left join climb_meta cm on c.climb_id = cm.climb_id and cm.climb_meta_key_id = 20 left join ascents a on a.climb_id = c.climb_id and a.fa = true and a.deleted_on is null left join climbers cl on a.climber_id = cl.climber_id left join ascents a2 on a2.climb_id = c.climb_id and a2.fa = false and a2.deleted_on is null and not a2.ascent_style_id = 5 left join climbers cl2 on a2.climber_id = cl2.climber_id where c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 and cm.value is null group by c.climb_id ,c.climb_name ,cl.climber_id ,cl.climber_name ,g.grade ,g.order_on ,order_dt(a.ascent_dt_start, a.ascent_dt_end) ,pretty_dt(a.ascent_dt_start, a.ascent_dt_end) order by g.order_on desc ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
Diff
--- before +++ after @@ -8,20 +8,20 @@ climbs c inner join grades g on c.grade_id = g.grade_id + left join climb_meta cm + on c.climb_id = cm.climb_id + and cm.climb_meta_key_id = 20 left join ascents a on a.climb_id = c.climb_id and a.fa = true and a.deleted_on is null - left join ascent_styles asty - on a.ascent_style_id = asty.ascent_style_id left join climbers cl on a.climber_id = cl.climber_id left join ascents a2 on a2.climb_id = c.climb_id and a2.fa = false and a2.deleted_on is null - left join ascent_styles asty2 - on a2.ascent_style_id = asty2.ascent_style_id + and not a2.ascent_style_id = 5 left join climbers cl2 on a2.climber_id = cl2.climber_id @@ -29,8 +29,7 @@ c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 - and (asty.ascent_successful is null or asty.ascent_successful = true) - and (asty2.ascent_successful is null or asty2.ascent_successful = true) + and cm.value is null group by c.climb_id
4 21st January 2024 19:44:50 remus - - list_definition
Before
select '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb ,g.grade as "Grade" ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" ,string_agg('<a href="/climber/' || cl2.climber_id::varchar || '">' || cl2.climber_name || '</a>', ', ') as Repeats from climbs c inner join grades g on c.grade_id = g.grade_id left join ascents a on a.climb_id = c.climb_id and a.fa = true and a.deleted_on is null left join climbers cl on a.climber_id = cl.climber_id left join ascents a2 on a2.climb_id = c.climb_id and a2.fa = false and a2.deleted_on is null left join climbers cl2 on a2.climber_id = cl2.climber_id where c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 and c.grade_approx = false group by c.climb_id ,c.climb_name ,cl.climber_id ,cl.climber_name ,g.grade ,g.order_on ,order_dt(a.ascent_dt_start, a.ascent_dt_end) ,pretty_dt(a.ascent_dt_start, a.ascent_dt_end) order by g.order_on desc ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
After
select '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb ,g.grade as "Grade" ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" ,string_agg('<a href="/climber/' || cl2.climber_id::varchar || '">' || cl2.climber_name || '</a>', ', ') as Repeats from climbs c inner join grades g on c.grade_id = g.grade_id left join ascents a on a.climb_id = c.climb_id and a.fa = true and a.deleted_on is null left join ascent_styles asty on a.ascent_style_id = asty.ascent_style_id left join climbers cl on a.climber_id = cl.climber_id left join ascents a2 on a2.climb_id = c.climb_id and a2.fa = false and a2.deleted_on is null left join ascent_styles asty2 on a2.ascent_style_id = asty2.ascent_style_id left join climbers cl2 on a2.climber_id = cl2.climber_id where c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 and (asty.ascent_successful is null or asty.ascent_successful = true) and (asty2.ascent_successful is null or asty2.ascent_successful = true) group by c.climb_id ,c.climb_name ,cl.climber_id ,cl.climber_name ,g.grade ,g.order_on ,order_dt(a.ascent_dt_start, a.ascent_dt_end) ,pretty_dt(a.ascent_dt_start, a.ascent_dt_end) order by g.order_on desc ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
Diff
--- before +++ after @@ -12,12 +12,16 @@ on a.climb_id = c.climb_id and a.fa = true and a.deleted_on is null + left join ascent_styles asty + on a.ascent_style_id = asty.ascent_style_id left join climbers cl on a.climber_id = cl.climber_id left join ascents a2 on a2.climb_id = c.climb_id and a2.fa = false and a2.deleted_on is null + left join ascent_styles asty2 + on a2.ascent_style_id = asty2.ascent_style_id left join climbers cl2 on a2.climber_id = cl2.climber_id @@ -25,7 +29,8 @@ c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 - and c.grade_approx = false + and (asty.ascent_successful is null or asty.ascent_successful = true) + and (asty2.ascent_successful is null or asty2.ascent_successful = true) group by c.climb_id
5 21st January 2024 19:30:30 remus - - list_definition
Before
select '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb ,g.grade as "Grade" ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" from climbs c inner join grades g on c.grade_id = g.grade_id left join ascents a on a.climb_id = c.climb_id and a.fa = true and a.deleted_on is null left join climbers cl on a.climber_id = cl.climber_id where c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 and c.grade_approx = false order by g.order_on desc ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
After
select '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb ,g.grade as "Grade" ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" ,string_agg('<a href="/climber/' || cl2.climber_id::varchar || '">' || cl2.climber_name || '</a>', ', ') as Repeats from climbs c inner join grades g on c.grade_id = g.grade_id left join ascents a on a.climb_id = c.climb_id and a.fa = true and a.deleted_on is null left join climbers cl on a.climber_id = cl.climber_id left join ascents a2 on a2.climb_id = c.climb_id and a2.fa = false and a2.deleted_on is null left join climbers cl2 on a2.climber_id = cl2.climber_id where c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 and c.grade_approx = false group by c.climb_id ,c.climb_name ,cl.climber_id ,cl.climber_name ,g.grade ,g.order_on ,order_dt(a.ascent_dt_start, a.ascent_dt_end) ,pretty_dt(a.ascent_dt_start, a.ascent_dt_end) order by g.order_on desc ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
Diff
--- before +++ after @@ -2,6 +2,7 @@ '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb ,g.grade as "Grade" ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" + ,string_agg('<a href="/climber/' || cl2.climber_id::varchar || '">' || cl2.climber_name || '</a>', ', ') as Repeats from climbs c @@ -13,6 +14,12 @@ and a.deleted_on is null left join climbers cl on a.climber_id = cl.climber_id + left join ascents a2 + on a2.climb_id = c.climb_id + and a2.fa = false + and a2.deleted_on is null + left join climbers cl2 + on a2.climber_id = cl2.climber_id where c.deleted_on is null @@ -20,6 +27,16 @@ and g.order_on >= 42 and c.grade_approx = false +group by + c.climb_id + ,c.climb_name + ,cl.climber_id + ,cl.climber_name + ,g.grade + ,g.order_on + ,order_dt(a.ascent_dt_start, a.ascent_dt_end) + ,pretty_dt(a.ascent_dt_start, a.ascent_dt_end) + order by g.order_on desc ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
6 4th December 2023 07:13:30 remus - - list_definition
Before
select '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb ,g.grade as "Grade" ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" from climbs c inner join grades g on c.grade_id = g.grade_id left join ascents a on a.climb_id = c.climb_id and a.fa = true left join climbers cl on a.climber_id = cl.climber_id where c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 and c.grade_approx = false order by g.order_on desc ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
After
select '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb ,g.grade as "Grade" ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" from climbs c inner join grades g on c.grade_id = g.grade_id left join ascents a on a.climb_id = c.climb_id and a.fa = true and a.deleted_on is null left join climbers cl on a.climber_id = cl.climber_id where c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 and c.grade_approx = false order by g.order_on desc ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
Diff
--- before +++ after @@ -10,6 +10,7 @@ left join ascents a on a.climb_id = c.climb_id and a.fa = true + and a.deleted_on is null left join climbers cl on a.climber_id = cl.climber_id
7 4th December 2023 07:12:16 remus - - list_description_pretty
Before
None
After
<p>A list of all the boulder problems 8C+ or harder that have currently been climbed, including details of the first ascent.</p>
8 4th December 2023 07:12:16 remus - - list_definition
Before
None
After
select '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb ,g.grade as "Grade" ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" from climbs c inner join grades g on c.grade_id = g.grade_id left join ascents a on a.climb_id = c.climb_id and a.fa = true left join climbers cl on a.climber_id = cl.climber_id where c.deleted_on is null and c.climb_type = 2 and g.order_on >= 42 and c.grade_approx = false order by g.order_on desc ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
Diff
--- before +++ after @@ -1 +1,24 @@ - +select + '<a href="/climb/' || c.climb_id::varchar || '">' || c.climb_name || '</a>' as Climb + ,g.grade as "Grade" + ,'<a href="/climber/' || cl.climber_id::varchar || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end) as "First Ascent" + +from + climbs c + inner join grades g + on c.grade_id = g.grade_id + left join ascents a + on a.climb_id = c.climb_id + and a.fa = true + left join climbers cl + on a.climber_id = cl.climber_id + +where + c.deleted_on is null + and c.climb_type = 2 + and g.order_on >= 42 + and c.grade_approx = false + +order by + g.order_on desc + ,order_dt(a.ascent_dt_start, a.ascent_dt_end)
9 4th December 2023 07:12:16 remus - - list_description
Before
None
After
A list of all the boulder problems 8C+ or harder that have currently been climbed, including details of the first ascent.
Diff
--- before +++ after @@ -1 +1 @@ - +A list of all the boulder problems 8C+ or harder that have currently been climbed, including details of the first ascent.
10 4th December 2023 07:12:16 remus - - list_name
Before
None
After
The Hardest Boulder Problems in the World

Page 1