Hi Nico

This seems to be because you've got IF calls in your index definitions - and 
that's a MySQL function, whereas Heroku uses PostgreSQL.

PostgreSQL's best replacement (that I've found, but I'm no expert) is using a 
case statement - which feels a bit ugly, but it should do the job:

  "CASE WHEN companies.country = 'Deutschland' THEN '0' ELSE '1' END"

Give that a spin and see how you go.

Cheers

-- 
Pat

On 16/08/2011, at 7:47 PM, nico wrote:

> Hi there,
> 
> we used thinking sphinx for a couple of years now. Now I upgraded our
> app to Rails 3 and we like to use flying sphinx on Heroku.
> However, I get the following errors when trying to index:
> 
> Sphinx 1.10-beta (r2420)
> Copyright (c) 2001-2010, Andrew Aksyonoff
> Copyright (c) 2008-2010, Sphinx Technologies Inc (http://
> sphinxsearch.com)
> 
> using config file '/mnt/sphinx/flying-sphinx/1aa5515783a7280cc/
> sphinx.conf'...
> indexing index 'company_core'...
> ERROR: index 'company_core': sql_range_query: ERROR:  function
> if(boolean, unknown, unknown) does not exist
> LINE 1: ...sort", IF(companies.country = 'Deutschland', '0',
> IF(compani...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.164 sec, 0 bytes/sec, 0.00 docs/sec
> indexing index 'company_delta'...
> ERROR: index 'company_delta': sql_range_query: ERROR:  function
> if(boolean, unknown, unknown) does not exist
> LINE 1: ...sort", IF(companies.country = 'Deutschland', '0',
> IF(compani...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.079 sec, 0 bytes/sec, 0.00 docs/sec
> skipping non-plain index 'company'...
> indexing index 'forum_post_core'...
> ERROR: index 'forum_post_core': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ..., "users"."vorname" AS "forum_poster_first_name",
> IF(users.p...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.169 sec, 0 bytes/sec, 0.00 docs/sec
> indexing index 'forum_post_delta'...
> ERROR: index 'forum_post_delta': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ..., "users"."vorname" AS "forum_poster_first_name",
> IF(users.p...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.079 sec, 0 bytes/sec, 0.00 docs/sec
> skipping non-plain index 'forum_post'...
> indexing index 'job_core'...
> ERROR: index 'job_core': sql_range_query: ERROR:  function
> crc32(character varying) does not exist
> LINE 1: ..."name", '') AS "job_name_sort", 1 AS "activated",
> CRC32(coun...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.106 sec, 0 bytes/sec, 0.00 docs/sec
> indexing index 'job_delta'...
> ERROR: index 'job_delta': sql_range_query: ERROR:  function
> crc32(character varying) does not exist
> LINE 1: ..."name", '') AS "job_name_sort", 1 AS "activated",
> CRC32(coun...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.053 sec, 0 bytes/sec, 0.00 docs/sec
> skipping non-plain index 'job'...
> indexing index 'photo_core'...
> ERROR: index 'photo_core': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ..._description", "users"."vorname" AS "first_name",
> IF(users.p...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.090 sec, 0 bytes/sec, 0.00 docs/sec
> indexing index 'photo_delta'...
> ERROR: index 'photo_delta': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ..._description", "users"."vorname" AS "first_name",
> IF(users.p...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.149 sec, 0 bytes/sec, 0.00 docs/sec
> skipping non-plain index 'photo'...
> indexing index 'photo_album_core'...
> ERROR: index 'photo_album_core': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ..._description", "users"."vorname" AS "first_name",
> IF(users.p...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.139 sec, 0 bytes/sec, 0.00 docs/sec
> indexing index 'photo_album_delta'...
> ERROR: index 'photo_album_delta': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ..._description", "users"."vorname" AS "first_name",
> IF(users.p...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.137 sec, 0 bytes/sec, 0.00 docs/sec
> skipping non-plain index 'photo_album'...
> indexing index 'user_core'...
> ERROR: index 'user_core': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ...ies"."name" AS "company", "jobs"."name" AS "job",
> IF(privacy...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.112 sec, 0 bytes/sec, 0.00 docs/sec
> indexing index 'user_delta'...
> ERROR: index 'user_delta': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ...ies"."name" AS "company", "jobs"."name" AS "job",
> IF(privacy...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.168 sec, 0 bytes/sec, 0.00 docs/sec
> skipping non-plain index 'user'...
> indexing index 'video_core'...
> ERROR: index 'video_core': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ..._description", "users"."vorname" AS "first_name",
> IF(users.p...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.091 sec, 0 bytes/sec, 0.00 docs/sec
> indexing index 'video_delta'...
> ERROR: index 'video_delta': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ..._description", "users"."vorname" AS "first_name",
> IF(users.p...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.040 sec, 0 bytes/sec, 0.00 docs/sec
> skipping non-plain index 'video'...
> indexing index 'video_album_core'...
> ERROR: index 'video_album_core': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ..._description", "users"."vorname" AS "first_name",
> IF(users.p...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.161 sec, 0 bytes/sec, 0.00 docs/sec
> indexing index 'video_album_delta'...
> ERROR: index 'video_album_delta': sql_range_query: ERROR:  function
> if(boolean, unknown, character varying) does not exist
> LINE 1: ..._description", "users"."vorname" AS "first_name",
> IF(users.p...
>                                                             ^
> HINT:  No function matches the given name and argument types. You
> might need to add explicit type casts.
> (DSN=pgsql://lisuxygdfr:***@127.0.0.1:10323/lisuxygdfr).
> total 0 docs, 0 bytes
> total 0.077 sec, 0 bytes/sec, 0.00 docs/sec
> skipping non-plain index 'video_album'...
> total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
> total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
> 
> 
> 
> All these indexes used to work fine, has anything changed
> significantly in the way indexes are defined?
> Are there some hints somewhere, what has changed, so that i can fix
> these issues?
> 
> Best Regards,
> Nico
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Thinking Sphinx" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/thinking-sphinx?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/thinking-sphinx?hl=en.

Reply via email to