#46348
Fabrizio Ravagli
Participante

Estimados,
encontré la falla.

En mi PostgreSQL tenia 1 Database (libertya) con 2 Schemas (libertya y libertya_old). De esta manera es fácil ver que cambio, que falta etc.
El problema se origina en el código de MSequence.java en donde se ejecuta la siguiente sentencia SQL:

if (sequences_cache.contains(secuencia))
existeSeq = true;
else if (1 == DB.getSQLValue(trxName, “select count(1) from pg_class where relkind = ‘S’ and relname = ‘” + secuencia + “‘”))
{
existeSeq = true;
sequences_cache.add(secuencia);
}

Al tener 2 schemas el count devuelve 2 y como el control es por “== 1” y no por “>= 1” el código interpreta que No existe la secuencia, procede en crearla y falla por tenerla ya creada.

Sugiero modificar la sentencia SQL con la siguiente:

SELECT count(1) FROM information_schema.sequences WHERE sequence_schema =’libertya’ and sequence_name = ‘seq_ad_componentversion’;

en donde se tiene en cuenta del schema. Esta probada en PostgreSQL 8.3 y funciona.

Saludos.