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
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss