Q&A: PostgreSQL: LEFT JOIN por tipo de registro

Esta publicación corresponde a una respuesta que he dado via chat en el grupo de ayuda PosgreSQL en Español en Telegram.

Un usuario tiene una tabla con dos columnas: tipo_objeto e id_objeto. Los objetos se almacenan en otras tablas, pero la tabla en la cual se almacena el objeto depende del tipo de objeto. En algunos contextos esto se denomina relaciones polimórficas.

Por ejemplo, se puede tener una tabla de recursos en la cual se almacena una lista de recursos por departamento. Los recursos pueden ser humanos o materiales. Tendríamos la tabla humanosmaterialesrecursos. Lo interesante es que en la de recursos tendríamos los campos siguientes: fk_depto_id, tipo_recurso, recurso_id. Este último campo es un identificador que se encuentra en la tabla humanos o materiales según lo que indique tipo_recurso.

¿Cómo hacer un LEFT JOIN entre la tabla que almacena la relación y las tablas con los objetos?

Sigue leyendo

Poda: finds similar directories

I invite you to try Poda. I made this to find similar directories among multiple storage locations (or hampers as I call them in the program). The typical use case is to find out whether I find whether I have duplicate or similar directories in my laptop, the other laptop, NAS, flash drives, etc. I may have made a backup of a flash drive on my laptop and not sure what has changed where. Or even within the same storage!

[Update: There was a mistake in the use of dirdupes.py below. A sort filter was missing. It is now corrected.]

The way it works is that you first get the index of each hamper. For example, you may have four hampers:

Sigue leyendo

Actualicé IPv6 Toolkit en Debian

He actualizado IPv6 Toolkit in Debian. IPv6 Toolkit es una herramienta de diagnóstico y evaluación para los protocolos de IPv6, escrito por Fernando Gont.

Principalmente, esta actualización previene que IPv6 Toolkit sea eliminado de Bullseye, pues la compilación se había roto bajo el nuevo GCC 10.

Esta es la bitácora de cambios completa (en inglés):

Sigue leyendo