Media tarde empleada en localizar un ¿ error ?

Pues más o menos sí. Estoy escribiendo un programa ETL [1] y en una determinada fase -durante las pruebas finales más concretamente- envío al servidor SQL de Multibase una consulta tal como

select * from productos where producto matches "[A-Z]*" order by producto

y no me devuelve ninguna fila. Extrañado pruebo tontamente varias veces más, como si la insistencia fuese a cambiar algo, y llego a la conclusión de que estoy en un entorno erróneo. Quizás esté conectando con la base de datos de explotación o hay algún error oculto con los caracteres especiales. Pudiera ser dado que empleo Perl como lenguaje de programación y lo mismo … pero no, sigo con pruebas y pruebas, desde el programa nuevo, desde el entorno de desarrollo de Multibase, desde otros programas antiguos que me permiten lanzar consultas directas al servidor y nada. Sigue sin retornar dato alguno hasta que se me ocurre, en un rapto de paranoia, quitar la ordenación de la instrucción y dejarla así

select * from productos where producto matches "[A-Z]*"

y todo es felicidad y maravilla y vuelvo a disponer de todas las filas que sé que existen en la tabla (y no, tampoco es una vista ni nada parecido) bajo esas condiciones.

Unas cuantas pruebas más cambiando la condición y las columnas de ordenación me convencen finalmente de que el servidor SQL me odia. Así como suena. Y es que prefiero creer absurdos como ese y pensar que el mamón tiene una mala tarde porque imaginar lo contrario, pensar tan sólo en la posibilidad de que bajo ciertas condiciones arbitrarias los datos aparezcan o desaparezcan sin condición ni señal de error alguna … buf. Es una mala tarde. Sí. Seguro.

Notes

[1] Acrónimo de Extracción de datos, transformación y carga, ¿ a que parecía más grave ?