XMLTABLE en PostgreSQL 10

La versión 10 PostgreSQL trae entre sus funcionalidades la función XMLTBABLE para procesar XML y retornar una tabla como resultado, actividad que para hacerla antes de la versión 10 podía ser algo complejo y  lenta, pero gracias a la evolución del motor ya no es tan así :D.

Según la documentación, la sintaxis que muestra es muy limpia y en realidad luego de probarla te das cuenta que es muy beneficiosa, a continuación se muestra un ejemplo de su uso con el set de datos XML que puede encontrar aquí.

Ese set de datos XML se carga es una tabla llamada “tabla” con la estructura siguiente:


CREATE TABLE tabla (dato xml);

Sigue leyendo

Casteos en PostgreSQL

PostgreSQL como otros motores de bases de datos, también soporta el casteo de tipos de datos, con el objetivo de hacer operaciones y comparaciones entre valores de distintos tipos de datos. El principio  del casteo es hacer que los  valores que se están operando sean tratado de un único o mismo tipo y así evitar errores. Para hacer casteo en PostgreSQL existen varias sintaxis las cuales se muestran a continuación:

La más común en PostgreSQL es el casteo con ‘::’ ;

SELECT '100'::numeric + 1 as resultado;
 resultado 
-----------
 101
(1 row)

Sigue leyendo

Peticiones http desde PostgreSQL

Hola a todos, pues si como se lee en el título de la entrada, hacer peticiones http desde dentro del motor de base de datos de código abierto más avanzado del mundo es posible, y todo gracias al mecanismo de extensiones que posee PostgreSQL, del cual ya he dicho que soy FAN. Que podemos hacer un un cliente http desde dentro de PostgreSQL, pues hacer peticiones WEB a sitios o servicios  restful, etc. Por ejemplo, puede que necesitemos hacer desde el motor la descarga de un sitio web para su posterior procesamiento y simplemente leer un JSON que retorna una petición restful. Para todo esto se puede utilizar la extensión pgsql-http, desarrollada por Paul Ramsey, que también tiene otras contribuciones a PostgreSQL.

Pues manos a la obra, instalaremos y probemos que tal Sigue leyendo

DIAGRAMA RELACIONAL desde PostgreSQL(Ingeniería Inversa)–parte 3: pg-table-markdown

Ya hemos tenido otras entradas de como obtener la documentación o ingeniería inversa de una bases de datos PostgreSQL en las siguientes entradas  script personalizado ,  postgresql_autodoc, en esta les traigo otra forma de hacerlo ahora con una herramienta muy sencilla que me encontré llamada  pg-table-markdown que a diferencia de las otras no me genera una imagen, sino un archivo en el formato conocido markdown, es bien sencilla como las anteriores y a continuación les muestro como se utiliza:

Primero la instalamos: Sigue leyendo

Trabajando con unidades de medida en PostgreSQL

En ocasiones necesitamos realizar algunas operaciones o  conversiones con unidades de medidas, lo cual puede ser un poco engorroso pues se tienen que hacer casteos, concatenaciones o fórmulas matemáticas, por ejemplo:

Tenemos un atributo que almacena el valor en bytes:

CREATE TABLE bytes (i int8);
INSERT INTO bytes VALUES(2000), (3000), (40000);

Necesitamos mostrar el valor en kB y además con la unidad de medidas, pues diran es simple, se castea a numeric,  se divide entre 1024, se redondea, se convierte a texto, y se concatena con ‘kB’

select round((i::numeric/1024),2)::text || 'kB' as en_Kb from bytes ;
en_kb
 ---------
 1.95kB
 2.93kB
 39.06kB
(3 rows)

Y si por casualidad se tiene almacenado el valor en texto como por ejemplo ‘1000 B’ como mil bytes, es un dolor de cabeza hacer la conversión, el casteo u operaciones matemáticas 😦

postgresql-unit al rescate

Sigue leyendo

Introducción e instalación de pgadmin 4

Hace unos meses estaba siguiendo el desarrollo de pgadmin4 con las noticias publicadas por Dave Page, el cual es parte del equipo desarrolladores de pgadmin y la versión 4 se liberó hace muy poco. En realidad había probado el pgadmin4 en sus versiones betas con mi amiga y colega(Francis :-P), pero ahora que ya está liberado le vamos a echar una mirada un poco más profunda y sobre todo pues una amiga(Gabriela) me escribió y me dijo que había visto el pgadmin4 y que le gustaba (muy bien por ella).

Primero que todo comentaré que es una versión WEB y desarrollada en python(flask) y que su sitio de documentación en la versión 1.x es este

Bueno a instalar y probar  a ver que tal, de paso se usará con PostgreSQL 9.6 que es la versión más reciente de motor

Instalación en Centos 7.2 Sigue leyendo

Tipo de dato UUID en PostgreSQL

Aunque el tipo de dato UUID existe en PostgreSQL desde la versión 8.3, a veces los desarrolladores no lo utilizan mucho y prefieren usar Serial para generar PK o codificar el UUID en texto, desconociendo las utilidades y ventajas de usar UUID nativo, sobre todo en el tema de espacio como lo muestra en este blog. En esta entrada veremos algunas características y funciones para trabajar con dicho tipo de dato en PostgreSQL.

Para conocer generalidades de lo que es UUID en PostgreSQL puede ver en la documentación,

Ejemplos de uso y funciones:

Sigue leyendo