Name | Type | # Changes | Last Updated | First Updated | |
---|---|---|---|---|---|
1 | https://www.instagram.com/p/DJRzZIzOOWv/ | media | 30 | 5th May 2025 | 5th May 2025 |
2 | Hamish McArthur's ascent of No One Mourns the Wicked | ascent | 27 | 5th May 2025 | 5th May 2025 |
3 | https://www.youtube.com/watch?v=r6lWVJrigTA | media | 24 | 5th May 2025 | 5th May 2025 |
4 | Pietro Vidi's ascent of L’Ombre du Voyageur | ascent | 21 | 21st July 2025 | 21st July 2025 |
5 | https://www.instagram.com/p/DGBh2g-tGHO/ | media | 18 | 13th February 2025 | 13th February 2025 |
6 | https://www.instagram.com/p/DMXd2WxtNjn/ | media | 18 | 21st July 2025 | 21st July 2025 |
7 | Sébastien Dussaut | climber | 17 | 31st May 2025 | 13th May 2025 |
8 | Leo Skinner's ascent of Pinky Perky | ascent | 16 | 13th February 2025 | 2nd January 2025 |
9 | Sophie Cheng's ascent of Taylor Made | ascent | 16 | 10th May 2025 | 10th May 2025 |
10 | Eli Cartwright's ascent of Outliers | ascent | 16 | 14th May 2025 | 2nd April 2025 |
Date | Time | User | Type | Name | Attribute | ||
---|---|---|---|---|---|---|---|
2781 | 30th December 2024 | 18:57:52 | Mattsparksy | crag | Rivelin Edge | rock_type | |
Before
None
After
Gritstone
|
|||||||
2782 | 30th December 2024 | 18:57:37 | Mattsparksy | crag | Arisaig Cave | latitude | |
Before
56.88352408520255
After
56.883524
|
|||||||
2783 | 30th December 2024 | 18:57:37 | Mattsparksy | crag | Arisaig Cave | rock_type | |
Before
None
After
Quartzite
|
|||||||
2784 | 30th December 2024 | 18:57:37 | Mattsparksy | crag | Arisaig Cave | rock_type_id | |
Before
None
After
14
|
|||||||
2785 | 30th December 2024 | 18:57:37 | Mattsparksy | crag | Arisaig Cave | longitude | |
Before
-5.86479919910516
After
-5.864799
|
|||||||
2786 | 30th December 2024 | 18:57:05 | Mattsparksy | crag | Hueco Tanks | rock_type | |
Before
None
After
Granite
|
|||||||
2787 | 30th December 2024 | 18:57:05 | Mattsparksy | crag | Hueco Tanks | rock_type_id | |
Before
None
After
3
|
|||||||
2788 | 30th December 2024 | 18:55:34 | Mattsparksy | crag | Villanueva del Rosario | rock_type_id | |
Before
None
After
7
|
|||||||
2789 | 30th December 2024 | 18:55:34 | Mattsparksy | crag | Villanueva del Rosario | rock_type | |
Before
None
After
Limestone
|
|||||||
2790 | 30th December 2024 | 18:55:17 | Mattsparksy | crag | Kay Nest | rock_type | |
Before
None
After
Sandstone
|
|||||||
2791 | 30th December 2024 | 18:55:17 | Mattsparksy | crag | Kay Nest | rock_type_id | |
Before
None
After
12
|
|||||||
2792 | 30th December 2024 | 18:50:30 | Mattsparksy | list | Britains Hardest Boulders Through Time | list_definition | |
Before
with recursive per_year as (
select
date_part('year', a.ascent_dt_start) as yr
,ast.ascent_style_id
,max(g.order_on) as max_grade_order_on
from
ascents a
inner join climbs c
on a.climb_id = c.climb_id
and a.deleted_on is null
and c.deleted_on is null
and a.exclude_reason is null
and c.exclude_reason is null
inner join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
and cl.exclude_reason is null
inner join grades g
on c.grade_id = g.grade_id
inner join climb_types ct
on c.climb_type = ct.climb_type_id
inner join ascent_styles ast
on a.ascent_style_id = ast.ascent_style_id
where
ct.climb_type = 'Boulder'
and ast.ascent_successful = true
and a.ascent_type_id = 1
group by
date_part('year', a.ascent_dt_start)
,ast.ascent_style_id
,ast.ascent_style
), best_up_to as (
select
yr
,ascent_style_id
,max(max_grade_order_on) over (partition by ascent_style_id order by yr ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as best
from
per_year
), candidates as (
select
c.climb_name
,c.climb_id
,g.grade
,cl.climber_name
,cl.climber_id
,a.ascent_dt_start
,a.ascent_dt_end
from
ascents a
inner join climbs c
on a.climb_id = c.climb_id
and a.deleted_on is null
and c.deleted_on is null
and a.exclude_reason is null
inner join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
and cl.exclude_reason is null
inner join grades g
on c.grade_id = g.grade_id
inner join best_up_to but
on a.ascent_style_id = but.ascent_style_id
and date_part('year', a.ascent_dt_start) = but.yr
and g.order_on = but.best
where
a.ascent_type_id = 1
and a.ascent_style_id = 1
), dts as (
select
1970 as yr
union all
select
yr + 1
from
dts
where
yr <= (select max(date_part('year', ascent_dt_start)) from candidates)
)
select
dts.yr as Year
,c.grade as Grade
,string_agg('<a href="/climber/' || climber_id::varchar || '">' || climber_name || '</a> with <a href="/climb/' || climb_id::varchar || '">' || climb_name || '</a>', '<br>') as Climbers
from
dts
left join candidates c
on dts.yr = date_part('year', c.ascent_dt_start)
group by
dts.yr
,c.grade
order by
dts.yr
After
with recursive per_year as (
select
date_part('year', a.ascent_dt_start) as yr
,ast.ascent_style_id
,max(g.order_on) as max_grade_order_on
from
ascents a
inner join climbs c
on a.climb_id = c.climb_id
and a.deleted_on is null
and c.deleted_on is null
and a.exclude_reason is null
and c.exclude_reason is null
inner join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
and cl.exclude_reason is null
inner join grades g
on c.grade_id = g.grade_id
inner join climb_types ct
on c.climb_type = ct.climb_type_id
inner join ascent_styles ast
on a.ascent_style_id = ast.ascent_style_id
where
ct.climb_type = 'Boulder problem'
and ast.ascent_successful = true
and a.ascent_type_id = 1
group by
date_part('year', a.ascent_dt_start)
,ast.ascent_style_id
,ast.ascent_style
), best_up_to as (
select
yr
,ascent_style_id
,max(max_grade_order_on) over (partition by ascent_style_id order by yr ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as best
from
per_year
), candidates as (
select
c.climb_name
,c.climb_id
,g.grade
,cl.climber_name
,cl.climber_id
,a.ascent_dt_start
,a.ascent_dt_end
from
ascents a
inner join climbs c
on a.climb_id = c.climb_id
and a.deleted_on is null
and c.deleted_on is null
and a.exclude_reason is null
inner join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
and cl.exclude_reason is null
inner join grades g
on c.grade_id = g.grade_id
inner join best_up_to but
on a.ascent_style_id = but.ascent_style_id
and date_part('year', a.ascent_dt_start) = but.yr
and g.order_on = but.best
where
a.ascent_type_id = 1
and a.ascent_style_id = 1
), dts as (
select
1970 as yr
union all
select
yr + 1
from
dts
where
yr <= (select max(date_part('year', ascent_dt_start)) from candidates)
)
select
dts.yr as Year
,c.grade as Grade
,string_agg('<a href="/climber/' || climber_id::varchar || '">' || climber_name || '</a> with <a href="/climb/' || climb_id::varchar || '">' || climb_name || '</a>', '<br>') as Climbers
from
dts
left join candidates c
on dts.yr = date_part('year', c.ascent_dt_start)
group by
dts.yr
,c.grade
order by
dts.yr
Diff
--- before
|
|||||||
2793 | 30th December 2024 | 18:46:33 | Mattsparksy | list | Britains Hardest Boulders Through Time | list_definition | |
Before
with recursive per_year as (
select
date_part('year', a.ascent_dt_start) as yr
,ast.ascent_style_id
,max(g.order_on) as max_grade_order_on
from
ascents a
inner join climbs c
on a.climb_id = c.climb_id
and a.deleted_on is null
and c.deleted_on is null
and a.exclude_reason is null
and c.exclude_reason is null
inner join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
and cl.exclude_reason is null
inner join grades g
on c.grade_id = g.grade_id
inner join climb_types ct
on c.climb_type = ct.climb_type_id
inner join ascent_styles ast
on a.ascent_style_id = ast.ascent_style_id
where
ct.climb_type = 'Sport route'
and ast.ascent_successful = true
and a.ascent_type_id = 1
group by
date_part('year', a.ascent_dt_start)
,ast.ascent_style_id
,ast.ascent_style
), best_up_to as (
select
yr
,ascent_style_id
,max(max_grade_order_on) over (partition by ascent_style_id order by yr ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as best
from
per_year
), candidates as (
select
c.climb_name
,c.climb_id
,g.grade
,cl.climber_name
,cl.climber_id
,a.ascent_dt_start
,a.ascent_dt_end
from
ascents a
inner join climbs c
on a.climb_id = c.climb_id
and a.deleted_on is null
and c.deleted_on is null
and a.exclude_reason is null
inner join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
and cl.exclude_reason is null
inner join grades g
on c.grade_id = g.grade_id
inner join best_up_to but
on a.ascent_style_id = but.ascent_style_id
and date_part('year', a.ascent_dt_start) = but.yr
and g.order_on = but.best
where
a.ascent_type_id = 1
and a.ascent_style_id = 1
), dts as (
select
1970 as yr
union all
select
yr + 1
from
dts
where
yr <= (select max(date_part('year', ascent_dt_start)) from candidates)
)
select
dts.yr as Year
,c.grade as Grade
,string_agg('<a href="/climber/' || climber_id::varchar || '">' || climber_name || '</a> with <a href="/climb/' || climb_id::varchar || '">' || climb_name || '</a>', '<br>') as Climbers
from
dts
left join candidates c
on dts.yr = date_part('year', c.ascent_dt_start)
group by
dts.yr
,c.grade
order by
dts.yr
After
with recursive per_year as (
select
date_part('year', a.ascent_dt_start) as yr
,ast.ascent_style_id
,max(g.order_on) as max_grade_order_on
from
ascents a
inner join climbs c
on a.climb_id = c.climb_id
and a.deleted_on is null
and c.deleted_on is null
and a.exclude_reason is null
and c.exclude_reason is null
inner join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
and cl.exclude_reason is null
inner join grades g
on c.grade_id = g.grade_id
inner join climb_types ct
on c.climb_type = ct.climb_type_id
inner join ascent_styles ast
on a.ascent_style_id = ast.ascent_style_id
where
ct.climb_type = 'Boulder'
and ast.ascent_successful = true
and a.ascent_type_id = 1
group by
date_part('year', a.ascent_dt_start)
,ast.ascent_style_id
,ast.ascent_style
), best_up_to as (
select
yr
,ascent_style_id
,max(max_grade_order_on) over (partition by ascent_style_id order by yr ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as best
from
per_year
), candidates as (
select
c.climb_name
,c.climb_id
,g.grade
,cl.climber_name
,cl.climber_id
,a.ascent_dt_start
,a.ascent_dt_end
from
ascents a
inner join climbs c
on a.climb_id = c.climb_id
and a.deleted_on is null
and c.deleted_on is null
and a.exclude_reason is null
inner join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
and cl.exclude_reason is null
inner join grades g
on c.grade_id = g.grade_id
inner join best_up_to but
on a.ascent_style_id = but.ascent_style_id
and date_part('year', a.ascent_dt_start) = but.yr
and g.order_on = but.best
where
a.ascent_type_id = 1
and a.ascent_style_id = 1
), dts as (
select
1970 as yr
union all
select
yr + 1
from
dts
where
yr <= (select max(date_part('year', ascent_dt_start)) from candidates)
)
select
dts.yr as Year
,c.grade as Grade
,string_agg('<a href="/climber/' || climber_id::varchar || '">' || climber_name || '</a> with <a href="/climb/' || climb_id::varchar || '">' || climb_name || '</a>', '<br>') as Climbers
from
dts
left join candidates c
on dts.yr = date_part('year', c.ascent_dt_start)
group by
dts.yr
,c.grade
order by
dts.yr
Diff
--- before
|
|||||||
2794 | 30th December 2024 | 18:45:57 | Mattsparksy | list | Britains Hardest Boulders Through Time | hidden | |
Before
true
After
false
|
|||||||
2795 | 30th December 2024 | 18:45:04 | Mattsparksy | list | Britains Hardest Boulders Through Time | list_description_pretty | |
Before
None
After
<p>Britains hardest boulders through time.</p>
|
|||||||
2796 | 30th December 2024 | 18:45:04 | Mattsparksy | list | Britains Hardest Boulders Through Time | list_definition | |
Before
None
After
with recursive per_year as (
select
date_part('year', a.ascent_dt_start) as yr
,ast.ascent_style_id
,max(g.order_on) as max_grade_order_on
from
ascents a
inner join climbs c
on a.climb_id = c.climb_id
and a.deleted_on is null
and c.deleted_on is null
and a.exclude_reason is null
and c.exclude_reason is null
inner join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
and cl.exclude_reason is null
inner join grades g
on c.grade_id = g.grade_id
inner join climb_types ct
on c.climb_type = ct.climb_type_id
inner join ascent_styles ast
on a.ascent_style_id = ast.ascent_style_id
where
ct.climb_type = 'Sport route'
and ast.ascent_successful = true
and a.ascent_type_id = 1
group by
date_part('year', a.ascent_dt_start)
,ast.ascent_style_id
,ast.ascent_style
), best_up_to as (
select
yr
,ascent_style_id
,max(max_grade_order_on) over (partition by ascent_style_id order by yr ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as best
from
per_year
), candidates as (
select
c.climb_name
,c.climb_id
,g.grade
,cl.climber_name
,cl.climber_id
,a.ascent_dt_start
,a.ascent_dt_end
from
ascents a
inner join climbs c
on a.climb_id = c.climb_id
and a.deleted_on is null
and c.deleted_on is null
and a.exclude_reason is null
inner join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
and cl.exclude_reason is null
inner join grades g
on c.grade_id = g.grade_id
inner join best_up_to but
on a.ascent_style_id = but.ascent_style_id
and date_part('year', a.ascent_dt_start) = but.yr
and g.order_on = but.best
where
a.ascent_type_id = 1
and a.ascent_style_id = 1
), dts as (
select
1970 as yr
union all
select
yr + 1
from
dts
where
yr <= (select max(date_part('year', ascent_dt_start)) from candidates)
)
select
dts.yr as Year
,c.grade as Grade
,string_agg('<a href="/climber/' || climber_id::varchar || '">' || climber_name || '</a> with <a href="/climb/' || climb_id::varchar || '">' || climb_name || '</a>', '<br>') as Climbers
from
dts
left join candidates c
on dts.yr = date_part('year', c.ascent_dt_start)
group by
dts.yr
,c.grade
order by
dts.yr
Diff
--- before
|
|||||||
2797 | 30th December 2024 | 18:45:04 | Mattsparksy | list | Britains Hardest Boulders Through Time | list_description | |
Before
None
After
Britains hardest boulders through time.
Diff
--- before
|
|||||||
2798 | 30th December 2024 | 18:45:04 | Mattsparksy | list | Britains Hardest Boulders Through Time | list_name | |
Before
None
After
Britains Hardest Boulders Through Time
|
|||||||
2799 | 30th December 2024 | 18:45:04 | Mattsparksy | list | Britains Hardest Boulders Through Time | list_type_name | |
Before
None
After
Bouldering
|
|||||||
2800 | 30th December 2024 | 18:45:04 | Mattsparksy | list | Britains Hardest Boulders Through Time | list_type_id | |
Before
None
After
1
|