Skip to content

Diff queries fail with out of memory error #770

@ZeLonewolf

Description

@ZeLonewolf

A complex diff query that I've been using successfully for some time is now failing. The failures happen on both the public instances as well as a private server that I run.

The query is below. It returns a list of certain types of streets which have changed in city 191230.

[timeout:1800][out:xml][diff:"2025-12-06T00:00:00Z"];

area(3600191230)->.city;

(
  way(area.city)[name][highway~"^(trunk|primary|secondary)$"][expressway=yes];
  way(area.city)[name][highway~"^(trunk|primary|secondary)$"][motorroad=yes];
  way(area.city)[ref][highway~"^(trunk|primary|secondary)$"][expressway=yes];
  way(area.city)[ref][highway~"^(trunk|primary|secondary)$"][motorroad=yes];
)->.expressways;

(
way(area.city)
  [name]
  [highway ~ "^(trunk|primary|secondary|tertiary|unclassified|residential|living_street|pedestrian|cycleway)$"]
  [expressway != yes][motorroad != yes];
way(area.city)
  [ref]
  [highway ~ "^(trunk|primary|secondary|tertiary|unclassified|residential|living_street|pedestrian|cycleway)$"]
  [expressway != yes][motorroad != yes];
);

(
  ._;
  way(area.city)[name][highway=service][foot=yes][bicycle=yes];
  way(area.city)[name][highway=service][service=alley];
  way[sidewalk~"^(yes|separate)$"].expressways;
  way["sidewalk:left"~"^(yes|separate)$"].expressways;
  way["sidewalk:right"~"^(yes|separate)$"].expressways;
  way["sidewalk:both"~"^(yes|separate)$"].expressways;
);

(
  ._; 
  //Remove trunk roads with no shoulder/sidewalk, unless explicitly tagged foot=yes
  - way[highway=trunk][sidewalk ~ "^(no|none)$"][shoulder = no][foot != yes]._;
);
(
  ._;
  //Remove private roads unless explicitly foot=yes
  - way[access ~ "^(private|customers|no)$"][foot!=yes]._;
);
(
  ._;
  //Remove areas
  - way[area = yes]._;
);
(
  ._;
  //Remove indoor
  - way[indoor = yes]._;
);
(
  ._;
  //Remove foot=no roads unless there's a sidewalk
  - way[foot ~ "^(no|private|discouraged)$"]
  [sidewalk!~"^(yes|separate)$"]
  ["sidewalk:left"!~"^(yes|separate)$"]
  ["sidewalk:right"!~"^(yes|separate)$"]
  ["sidewalk:both"!~"^(yes|separate)$"]._;
);
  
(._;>;);
out body;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions