Skip to content

Declarar 96fa4aa5: la cadena entera de la exploracion evaluada, y el TRUNCATE cerrado - #389

Merged
frapercan merged 1 commit into
mainfrom
declarar-96fa4aa5
Nov 4, 2026
Merged

frapercan merged 1 commit into
mainfrom
declarar-96fa4aa5

Conversation

@frapercan

Copy link
Copy Markdown
Owner

Que declara

Sube el arbol servido de 96354170 a 96fa4aa5 (seis commits) y mueve schema-applied con el.

PR que anade
#1113 las rutas /v1/explorations y el servicio, con sus siete movimientos
#1116 job.started sella la maquina, el interprete y la revision
#1117 el registro de la exploracion se niega tambien al TRUNCATE
#1114 el recibo y el informe, generados de las filas y enteros en el log
#1115 la pagina /instrument/explorations
#1118 el predicado de identidad compara dobles por sus bytes

Ningun hermano se mueve: poetry.lock no cambia ni una linea. Se verifican igual los siete vcs_info.commit_id antes de reiniciar, porque en el salto anterior pip devolvio 0 sin instalar nada.

Por que el #1118 entra aqui y no despues

Razon de calendario, no de codigo. El informe de una exploracion se genera al final con el codigo que este desplegado, asi que desplegar a mitad reinicia los trabajadores y rompe la prueba que la exploracion 1 existe para hacer.

Lo que arregla: el predicado comparaba distance::text, y eso depende de extra_float_digits, un GUC de sesion. Probado con el ajuste adversario puesto:

SET extra_float_digits = 0;
(0.3::float8)::text              -> 0.3
(0.3::float8 + 1e-16)::text      -> 0.3     <- el texto los confunde
float8send de los dos            -> distintos

Ahora decide por float8send y array_send en hex, y la primera diferencia se sigue mostrando legible al lado de los bytes con que se decidio.

La puerta

  • Trabajos: 642, todos terminales (614 SUCCEEDED, 23 FAILED, 5 CANCELLED). 0 en QUEUED o RUNNING.
  • Colas: 14 de 15 a cero, 13 consumidores atados y ociosos. protea.dead-letter en 18.776, que no es trabajo en vuelo.

La migracion ya esta aplicada

c5e9a1d3f720 sobre b2f6c3d8e154: un disparador, BEFORE TRUNCATE ON exploration_event FOR EACH STATEMENT, sobre la misma funcion. Comprobado despues contra la base:

exploration_event_append_only | ROW       | DELETE,UPDATE
exploration_event_no_truncate | STATEMENT | TRUNCATE

truncate exploration_event;
ERROR: exploration_event is append only: TRUNCATE refused

Corrida desde un git worktree aparte con la ranura clavada en 96354170.

Por que hacia falta: el disparador que b2f6c3d8e154 instalo tiene tgtype 27 — ROW, BEFORE, DELETE y UPDATE. Un disparador de fila no se dispara en un TRUNCATE, asi que el registro llamado "append only" se negaba a un UPDATE y a un DELETE y dejaba vaciar la tabla entera en una sentencia.

El frontend

El #1115 lo toca, asi que va aparte y solo por scripts/deploy-frontend.sh, que respalda el .next que esta sirviendo, construye, exige un 200 y rueda atras si no lo consigue.

…TRUNCATE cerrado

Sube el arbol servido de 96354170 a 96fa4aa5, seis commits: #1113, #1116,
#1117, #1114, #1115 y #1118. Ningun hermano se mueve; poetry.lock no cambia
ni una linea en el intervalo.

schema-applied se mueve con el coordinador porque c5e9a1d3f720 ya corrio
sobre la base viva: un solo disparador, BEFORE TRUNCATE FOR EACH STATEMENT,
y comprobado despues con un TRUNCATE real que la base rechaza.

El #1118 entra en esta tanda por calendario: el informe se genera con el
codigo desplegado, asi que desplegar a mitad de la exploracion 1 reiniciaria
los trabajadores y romperia la prueba.

Puerta comprobada: 642 trabajos todos terminales, 0 en QUEUED o RUNNING, y
14 de las 15 colas a cero con 13 consumidores atados.
@frapercan
frapercan merged commit 7bf2215 into main Nov 4, 2026
7 checks passed
@frapercan
frapercan deleted the declarar-96fa4aa5 branch November 4, 2026 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant