[SOLUCIONADO] ¿Problema al ejecutar SQL que incluye expresiones regulares?

Hola!
Tengo un problema. La siguiente consulta ejecuta sin problemas en PostgreSQL, produciendo el resultado deseado, el cual es obtener la opción dentro de la cadena que se corresponda señalado con el valor 2 = ‘Fem’.


SELECT
  trim(both '2/,' from
    substring('1/Masc,2/Fem'||','
    from '2/[[:alnum:] ]+,'
    )
  ) as cadena;

Si quisiera obtener el primer valor, solo debería realizar lo siguiente:


SELECT
  trim(both '1/,' from
    substring('1/Masc,2/Fem'||','
    from '1/[[:alnum:] ]+,'
    )
  ) as cadena;

En PostreSQL, ejecutándolo en el pgAdmin III funciona sin problemas (cualquier de los códigos).

En Toba, si un código similar lo inserto en la variable $sql
para luego realizar:
toba::db(‘unrn_encuestas’)->consultar($sql);

me devuelve para el valor 1 NULL en lugar de Masc, sin embargo no tiene problemas con cualquier otro valor (2, y Fem para este ejemplo).

[b]Teniendo en cuenta que ya tuve que cambiar {1,} por el + para que funcionara (en PostgreSQL funcionan ambas, pero en Toba solo la segunda forma de repetición).

Hay alguna otra restricción en Toba para el reconocimiento de expresiones regulares que se me esté escapando? o alguna otra forma de lograr el objetivo?
[/b]

Estoy utilizando la versión 1.5

Desde ya, mil gracias!!!

Hola Martin,

no entiendo porque pensas que toba te esta restringiendo en la SQL que colocaste?, dentro de Toba lo unico que parsea una SQL y la modifica es el perfil de datos y por lo que comentas no parece que lo estes usando.

Que version de php tenes? yo estoy en 5.3.3, coloque tus SQL literalmente en una variable dentro del proyecto toba_referencia y obtuve el resultado esperado para ambos casos.
Quizas sea un inconveniente de PDO en la version 5.2.x (en google aparecen algunos bugs con respecto a esto, pero no hay version asociada), desde toba no existe ninguna restriccion al ejecutar una consulta a la base de datos, eso te lo garantizo.

Saludos

Gracias por la pronta respuesta!!!
En realidad, se me ocurrió que podía venir por ahí porque ya no me había aceptado la cláusula de repetición {1,}, habiendo tenido que cambiarla por la equivalente +.
Pero mejor así! no se me ocurrió que podía ser por PHP.
El 5.3 está soportado por Toba 1.5 .6 (creo, ya que la tengo actualizada con el trunk)?

La version 1.5 es la primera que soporta oficialmente PHP 5.3.x, no deberias tener inconvenientes para hacer el paso de version de PHP.

Saludos

Bien, pude resolverlo.
Con PHP 5.3 sale solo.
Con PHP 5.2 salió funcionando también, pero tuve que adecuar la expresión regular:


SELECT
    substring('1/Masc,2/Fem'||','
    from '1/([^/]*),'
    )
as cadena;

Cambiando ‘1/[[:alnum:] ]+,’ por ‘1/([^/]*),’ y evitando el trim dado que esta nueva expresión regular, ya lo “hace”.

Espero le pueda servir a alguien más.
Mil gracias!!!