Oleg Broytmann <[EMAIL PROTECTED]> writes: > In any case, even when I fix sqlbuilder, this > >> model.VResultadoResumo.q.nomePacienteNormalizado.startswith( >> func.f_v_texto(nome_paciente))) > > doesn't mean > >> ((neolab.v_resultados_resumo.nome_paciente_normalizado) LIKE >> (f_v_texto('jo%')))) > > It means > > ((neolab.v_resultados_resumo.nome_paciente_normalizado) LIKE > (f_v_texto('jo'))) + '%')
That's OK. My function isn't used in any direct query, it just prepares the string to be used against one specific index. I believe that you meant: ((neolab.v_resultados_resumo.nome_paciente_normalizado) LIKE (f_v_texto('jo'))) || '%') since '+' for concatenating strings throws an error: ================================================================================ neo=# SELECT neolab.v_busca_analises_toxicologia_texto.id, neolab.v_busca_analises_toxicologia_texto.mnemonico, neolab.v_busca_analises_toxicologia_texto.mnemonico_normalizado, neolab.v_busca_analises_toxicologia_texto.nome, neolab.v_busca_analises_toxicologia_texto.nome_normalizado FROM neolab.v_busca_analises_toxicologia_texto WHERE (neolab.v_busca_analises_toxicologia_texto.nome_normalizado LIKE (f_v_texto('acet')+'%'::text)) ORDER BY neolab.v_busca_analises_toxicologia_texto.nome; ERRO: operador não existe: text + text LINE 1: ...gia_texto.nome_normalizado LIKE (f_v_texto('acet')+'%'::text... ^ HINT: Nenhum operador corresponde com o nome e os tipos dos argumentos informados. Você precisa adicionar conversões de tipo explícitas. neo=# SELECT neolab.v_busca_analises_toxicologia_texto.id, neolab.v_busca_analises_toxicologia_texto.mnemonico, neolab.v_busca_analises_toxicologia_texto.mnemonico_normalizado, neolab.v_busca_analises_toxicologia_texto.nome, neolab.v_busca_analises_toxicologia_texto.nome_normalizado FROM neolab.v_busca_analises_toxicologia_texto WHERE (neolab.v_busca_analises_toxicologia_texto.nome_normalizado LIKE (f_v_texto('acet')||'%'::text)) ORDER BY neolab.v_busca_analises_toxicologia_texto.nome; id | mnemonico | mnemonico_normalizado | nome | nome_normalizado ----+-----------+-----------------------+---------+------------------ 2 | ACET | acet | ACETONA | acetona (1 row) neo=# ================================================================================ The rewritten form will make use of the special indices that I created at the database, so this will work for me. :-) -- Jorge Godoy <[EMAIL PROTECTED]> ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ sqlobject-discuss mailing list sqlobject-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss