--- android/TrainInfoService/src/dk/thoerup/traininfoservice/StationDAO.java 2010/05/07 15:13:07 713 +++ android/TrainInfoService/src/dk/thoerup/traininfoservice/StationDAO.java 2010/05/07 17:08:11 714 @@ -63,11 +63,16 @@ return result; } - + /* + * this code requires theses statements are run on database in order to do ILIKE searches against aliases (which is defines as array of varchar(64) ) + * create function rlike(text,text) returns bool as + * 'select $2 ilike $1' language sql strict immutable; + * create operator ~~~ (procedure = rlike, leftarg = text, rightarg = text, commutator = ~~); + */ public List getByName(String name) throws SQLException { String SQL = "SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog, stationcode_metro, address, 0.0 " + "FROM trainstations " + - "WHERE name ILIKE ? AND enabled = true " + + "WHERE (name ILIKE ? OR ? ~~~ ANY(aliases)) AND enabled = true " + "ORDER BY name "; @@ -80,6 +85,7 @@ stmt = conn.prepareStatement(SQL); stmt.setString(1, name + "%"); + stmt.setString(2, name + "%"); res = stmt.executeQuery(); result = convertResultset(res);