--- android/TrainInfoService/src/dk/thoerup/traininfoservice/db/StationDAO.java 2012/04/11 10:05:41 1789 +++ android/TrainInfoService/src/dk/thoerup/traininfoservice/db/StationDAO.java 2012/04/11 10:11:38 1790 @@ -47,6 +47,14 @@ station.setIsRegional( station.getRegional() != null ); station.setIsStrain( station.getStrain() != null ); station.setIsMetro( station.getMetro() != null ); + + Array aliases = res.getArray( 10); + if (aliases != null) { + station.setAliases( (String[]) aliases.getArray() ); + } else { + String[] emptyArray = {}; + station.setAliases( emptyArray ); + } return station; } @@ -87,7 +95,7 @@ } public StationEntry getById(int id) throws SQLException,NostationException { - String SQL = "SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog,stationcode_metro,address,0.0 " + + String SQL = "SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog,stationcode_metro,address,0.0,aliases " + "FROM trainstations WHERE id=" + id + " AND enabled=true"; StationBean stations = fetchStations(SQL, new NullSetter() ); @@ -108,7 +116,7 @@ * create operator ~~~ (procedure = rlike, leftarg = text, rightarg = text, commutator = ~~); */ public StationBean getByNameNormal(final String name) throws SQLException { - String SQL = "SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog, stationcode_metro, address, 0.0 " + + String SQL = "SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog, stationcode_metro, address, 0.0,aliases " + "FROM trainstations " + "WHERE (name ILIKE ? OR ? ~~~ ANY(aliases)) AND enabled = true " + "ORDER BY name "; @@ -127,7 +135,7 @@ public StationBean getByNameFuzzy(final String name) throws SQLException { String SQL = "SELECT * FROM (" + - " SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog, stationcode_metro, address, 0.0, " + + " SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog, stationcode_metro, address, 0.0, aliases, " + " levenshtein(lower(name),lower(?) ) as leven " + " FROM trainstations " + " WHERE enabled = true ) as lev2 " + @@ -190,7 +198,7 @@ String limitExpression = (geolimit == true) ? "AND abs(latitude-?)<0.4 AND abs(longitude-?)<0.75 " : ""; String SQL = "SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog, stationcode_metro, address, " + - "earth_distance( earth_coord, ll_to_earth(?,?))::int AS calcdist " + + "earth_distance( earth_coord, ll_to_earth(?,?))::int AS calcdist,aliases " + "FROM trainstations " + "WHERE enabled = true " + limitExpression + "ORDER BY calcdist ASC " + @@ -227,7 +235,7 @@ public StationBean getByList(String list) throws SQLException { - String SQL = "SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog,stationcode_metro, address,0.0 " + + String SQL = "SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog,stationcode_metro, address,0.0,aliases " + "FROM trainstations " + "WHERE id IN " + list + " AND enabled = true " + "ORDER BY name "; @@ -238,7 +246,7 @@ public StationEntry getSimpleByName(final String name) throws SQLException { - String SQL = "SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog, stationcode_metro, address, 0.0 " + + String SQL = "SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog, stationcode_metro, address, 0.0,aliases " + "FROM trainstations " + "WHERE name = ? AND enabled = true " + "LIMIT 1 ";