Hola listeros,
estoy tratando de replicar particiones basándome en el ejemplo que hay en
[cvs] / slony1-engine / tests / testpartition / gen_ddl_sql.sh
En el script, aparece la línea
tableid=`printf "%04d%02d" ${year} ${month}`
pero no entiendo lo que significa. Esto hace que tableid sea por ejemplo
'200907' y luego se usa en el echo para obtener la consulta en la línea de
comandos:
echo "
create table sales_txns_${year}_${month} (
check (trans_on >= '${year}-${month}-01' and trans_on <
'${nextmonthsyear}-${nextmonth}-01'),
primary key(id)
) inherits (sales_txns);
create rule sales_${year}_${month} as on insert to sales_txns where trans_on >=
'${year}-${month}-01' and trans_on < '${nextmonthsyear}-${nextmonth}-01'
do instead (
insert into sales_txns_${year}_${month} select new.id, new.trans_on,
new.region_code, new.product_id, new.quantity, new.amount;
);
select \"_${cluster}\".replicate_partition(${tableid}, 'public'::text,
'sales_txns_${year}_${month}'::text, NULL::text, 'Sales Partition for ${year}
${month}'::text);
"
En la documentación tampoco explica lo que es exactamente este tableid que se
usa en la llamada a replicate_partition. No se si es el OID de la tabla, en
cuyo caso que coincida 200907 con el OID de la tabla será muy raro (OID se
asigna aleatoriamente ¿no?). Además del tableid necesita el nombre de la
tabla... no estoy seguro, pero ¿no se podría obtener el nombre a partir del OID?
Espero que alguien pueda aclararme este tema, ya que la documentación de
slony-i no me ha ayudado mucho (a lo mejor miré mal, quien sabe).
Saludos,
Jorge