<story><title>How Postgres is more than a relational database: Extensions</title><url>https://www.citusdata.com/blog/2018/11/27/postgres-more-than-a-relational-database/</url></story><parent_chain></parent_chain><comment><author>rleigh</author><text>I did this for the debversion datatype (on pgxn).  It&amp;#x27;s surprisingly easy to create custom types, along with all the necessary operators and hash functions for them to be efficiently indexed and compared.  And the speed is excellent, so long as you&amp;#x27;re using a natively compiled library with the C bindings.&lt;p&gt;JSONB is clearly a lot more complex and demanding, but if you&amp;#x27;re ever using PostgreSQL and hitting performance limitations with interpreted languages or PL&amp;#x2F;pgSQL, it&amp;#x27;s an option which is not as scary and inaccessible as you might imagine.&lt;p&gt;CREATE EXTENSION is what really made this stuff usable.  Before this, you had to get the user to run a bunch of raw SQL to set all the types and functions, but now it&amp;#x27;s all wrapped in a single handy SQL statement which can even handle upgrades and uninstallation.&lt;p&gt;Part of me wants the installation and upgrade mechanism to be reusable for my own application database schemas, it&amp;#x27;s so convenient and well done.</text></comment>
<story><title>How Postgres is more than a relational database: Extensions</title><url>https://www.citusdata.com/blog/2018/11/27/postgres-more-than-a-relational-database/</url></story><parent_chain></parent_chain><comment><author>just_myles</author><text>My first real foray into the new postgres that this article states is with JSONB. I needed to create a specific output for a client in JSON format. The formatting options available were pretty good and allowed me to create something quick and dirty without having to write custom code to support the output that I needed.</text></comment>