# Alternative SQL queries for getway/whichways
def sql_find_ways_in_area(bbox)
- sql = <<~SQL
+ sql = <<~SQL.squish
SELECT DISTINCT current_ways.id AS wayid,current_ways.version AS version
FROM current_way_nodes
INNER JOIN current_nodes ON current_nodes.id=current_way_nodes.node_id
def sql_find_pois_in_area(bbox)
pois = []
- sql = <<~SQL
+ sql = <<~SQL.squish
SELECT current_nodes.id,current_nodes.latitude*0.0000001 AS lat,current_nodes.longitude*0.0000001 AS lon,current_nodes.version
FROM current_nodes
LEFT OUTER JOIN current_way_nodes cwn ON cwn.node_id=current_nodes.id
def sql_find_relations_in_area_and_ways(bbox, way_ids)
# ** It would be more Potlatchy to get relations for nodes within ways
# during 'getway', not here
- sql = <<~SQL
+ sql = <<~SQL.squish
SELECT DISTINCT cr.id AS relid,cr.version AS version
FROM current_relations cr
INNER JOIN current_relation_members crm ON crm.id=cr.id
WHERE #{OSM.sql_for_area(bbox, 'cn.')}
SQL
unless way_ids.empty?
- sql += <<~SQL
+ sql += <<~SQL.squish
UNION
SELECT DISTINCT cr.id AS relid,cr.version AS version
FROM current_relations cr
def sql_get_nodes_in_way(wayid)
points = []
- sql = <<~SQL
+ sql = <<~SQL.squish
SELECT latitude*0.0000001 AS lat,longitude*0.0000001 AS lon,current_nodes.id,current_nodes.version
FROM current_way_nodes,current_nodes
WHERE current_way_nodes.id=#{wayid.to_i}
sql_for_area = QuadTile.sql_for_area(gc.bounds(radius), "home_")
sql_for_distance = gc.sql_for_distance("home_lat", "home_lon")
nearby = User.active.identifiable
- .where("id != ?", id)
+ .where.not(:id => id)
.where(sql_for_area)
.where("#{sql_for_distance} <= ?", radius)
.order(Arel.sql(sql_for_distance))
add_index "user_tokens", ["token"], :name => "user_tokens_token_idx", :unique => true
add_index "user_tokens", ["user_id"], :name => "user_tokens_user_id_idx"
- User.where("token is not null").each do |user|
+ User.where.not(:token => nil).each do |user|
UserToken.create(:user_id => user.id, :token => user.token, :expiry => 1.week.from_now)
end
def self.upgrade_table(from_table, to_table, model)
if ENV["USE_DB_FUNCTIONS"]
- execute <<-SQL
+ execute <<-SQL.squish
INSERT INTO #{to_table} (id, latitude, longitude, user_id, visible, tags, timestamp, tile)
SELECT id, ROUND(latitude * 10000000), ROUND(longitude * 10000000),
user_id, visible, tags, timestamp,
FROM #{from_table}
SQL
else
- execute <<-SQL
+ execute <<-SQL.squish
INSERT INTO #{to_table} (id, latitude, longitude, user_id, visible, tags, timestamp, tile)
SELECT id, ROUND(latitude * 10000000), ROUND(longitude * 10000000),
user_id, visible, tags, timestamp, 0
end
def self.downgrade_table(from_table, to_table)
- execute <<-SQL
+ execute <<-SQL.squish
INSERT INTO #{to_table} (id, latitude, longitude, user_id, visible, tags, timestamp)
SELECT id, latitude / 10000000, longitude / 10000000,
user_id, visible, tags, timestamp