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

Reply via email to