{"id":9981,"date":"2013-09-09T10:00:04","date_gmt":"2013-09-09T08:00:04","guid":{"rendered":"https:\/\/www.credativ.de\/blog\/credativ-inside\/postgresql-9-3-2\/"},"modified":"2013-09-09T10:00:04","modified_gmt":"2013-09-09T08:00:04","slug":"postgresql-9-3-2","status":"publish","type":"post","link":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/","title":{"rendered":"PostgreSQL\u00ae 9.3"},"content":{"rendered":"<div class=\"field field-name-body field-type-text-with-summary field-label-hidden\">\n<div class=\"field-items\">\n<div class=\"field-item even\">\n<p><a title=\"PostgreSQL\u00ae 9.3\" href=\"http:\/\/www.postgresql.org\/about\/news\/1481\/\">PostgreSQL<sup>\u00ae<\/sup> 9.3<\/a> is here! The new major version brings many improvements and new functions. This article introduces some of the interesting innovations.  <\/p>\n<h2>Improved Locking with Foreign Keys<\/h2>\n<p><a title=\"Foreign Keys\" href=\"http:\/\/www.postgresql.org\/docs\/9.3\/static\/ddl-constraints.html#DDL-CONSTRAINTS-FK\" target=\"_blank\" rel=\"noopener noreferrer\">Foreign keys<\/a> are indispensable for the referential integrity of the data. However, up to and including PostgreSQL<sup>\u00ae<\/sup> 9.2, these also caused locking problems under certain conditions when UPDATE was performed on columns with foreign keys. Especially with overlapping updates of several transactions via a foreign key, deadlocks can even occur. The following example is problematic in PostgreSQL<sup>\u00ae<\/sup> 9.2, exemplified by this simple data model:   <\/p>\n<div class=\"geshifilter\">\n<pre class=\"postgresql geshifilter-postgresql\">CREATE TABLE parent(id integer, value text);\nALTER TABLE parent ADD PRIMARY KEY(id);\nCREATE TABLE child(id integer, parent_id integer REFERENCES parent(id), value text);\nINSERT INTO parent VALUES(1, 'bob');\nINSERT INTO parent VALUES(2, 'andrea');<\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Two transactions, called Session 1 and Session 2, are started simultaneously in the database:<\/p>\n<p>Session 1<\/p>\n<div class=\"geshifilter\">\n<pre class=\"postgresql geshifilter-postgresql\">BEGIN;\nINSERT INTO child VALUES(1, 1, 'abcdef');\nUPDATE parent SET value = 'thomas' WHERE id = 1;<\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Session 2<\/p>\n<div class=\"geshifilter\">\n<pre class=\"postgresql geshifilter-postgresql\">BEGIN;\nINSERT INTO child VALUES(2, 1, 'ghijkl');\nUPDATE parent SET value = 'thomas' WHERE id = 1;\n<\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Session 1 and Session 2 both execute the INSERT successfully, but the UPDATE blocks in Session 1 because the INSERT in Session 2 holds a so-called <em>SHARE LOCK<\/em> on the tuple with the foreign key. This conflicts with the lock that the UPDATE wants to have on the foreign key. Now Session 2 tries to execute its UPDATE, but this in turn creates a conflict with the UPDATE from Session 1; A deadlock has occurred and is automatically resolved in PostgreSQL<g id=\"gid_1\">\u00ae<\/g> 9.2. In this case, however, the transaction in Session 2 is aborted:   <\/p>\n<div class=\"geshifilter\">\n<pre class=\"text geshifilter-text\">ERROR: deadlock detected\nDETAIL: Process 88059 waits for ExclusiveLock on tuple (0,1) of relation 1144033 of database 1029038; blocked by process 88031.\nProcess 88031 waits for ShareLock on transaction 791327; blocked by process 88059.<\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p>In PostgreSQL<sup>\u00ae<\/sup> 9.3, there is now a significantly refined locking mechanism for updates on rows and tables with foreign keys, which alleviates the problem mentioned. Here, tuples that do not represent a targeted UPDATE to a foreign key (i.e. the value of a foreign key is not changed) are locked with a weaker lock (<a title=\"FOR NO KEY UPDATE\" href=\"http:\/\/www.postgresql.org\/docs\/9.3\/static\/sql-select.html#SQL-FOR-UPDATE-SHARE\" target=\"_blank\" rel=\"noopener noreferrer\">FOR NO KEY UPDATE)<\/a>. For the simple checking of a foreign key, PostgreSQL<sup>\u00ae<\/sup> also uses the new <a title=\"FOR KEY SHARE\" href=\"http:\/\/www.postgresql.org\/docs\/9.3\/static\/sql-select.html#SQL-FOR-UPDATE-SHARE\" target=\"_blank\" rel=\"noopener noreferrer\">FOR KEY SHARE<\/a> lock, which does not conflict with it. In the example shown, this prevents a deadlock; the UPDATE in Session 1 is executed first, and the conflicting UPDATE in Session 2 must wait until Session 1 successfully confirms or rolls back the transaction.   <\/p>\n<h2>Parallel pg_dump<\/h2>\n<p>With the new command line option -j, <a title=\"pg_dump\" href=\"http:\/\/www.postgresql.org\/docs\/9.3\/static\/app-pgdump.html\" target=\"_blank\" rel=\"noopener noreferrer\">pg_dump<\/a> has the ability to back up tables and their data in parallel. This function can significantly speed up a dump of very large databases, as tables can be backed up simultaneously. This only works with the <em>Directory<\/em> output format (-Fd) of pg_dump. These dumps can then also be restored simultaneously with multiple restore processes using pg_restore.   <\/p>\n<h2>Updatable Foreign Data Wrapper and postgres_fdw<\/h2>\n<p>With PostgreSQL<sup>\u00ae<\/sup> 9.3, the API for <a title=\"Foreign Data Wrapper\" href=\"http:\/\/www.postgresql.org\/docs\/9.3\/static\/sql-createforeigndatawrapper.html\" target=\"_blank\" rel=\"noopener noreferrer\">Foreign Data Wrapper<\/a> (FDW) for DML commands has been extended. This enables the implementation of updatable FDW modules. At the same time, the Foreign Data Wrapper for PostgreSQL<g id=\"gid_2\">\u00ae<\/g> (postgres_fdw) was integrated as an extension. This now allows transparent access to remote PostgreSQL<g id=\"gid_3\">\u00ae<\/g> instances. Tables appear in the database as local tables and can easily be used, for example, in complex SQL constructs such as JOINs or Views. FDWs will be explained in more detail in a later article at this point.     <\/p>\n<h2>Event Trigger<\/h2>\n<p>A feature that users have been requesting for some time are <a title=\"Event Trigger\" href=\"http:\/\/www.postgresql.org\/docs\/9.3\/static\/event-triggers.html\" target=\"_blank\" rel=\"noopener noreferrer\">Event Trigger<\/a> for DDL (Data Definition Language) operations, such as ALTER TABLE or CREATE TABLE. This enables automatic reactions to certain events via DDL, such as logging certain actions. Currently, actions for <em>ddl_command_start<\/em>, <em>sql_drop<\/em> and <em>ddl_command_end<\/em> are supported. Trigger functions can be created with C or PL\/PgSQL. The following example for <em>sql_drop<\/em>, for example, prevents the deletion of tables:    <\/p>\n<div class=\"geshifilter\">\n<pre class=\"postgresql geshifilter-postgresql\">CREATE OR REPLACE FUNCTION del_event_func() RETURNS event_trigger AS $$\nDECLARE\n v_item record;\nBEGIN\n FOR v_item IN SELECT * FROM pg_event_trigger_dropped_objects()\n LOOP\n RAISE EXCEPTION 'deletion of object %.% forbidden', v_item.schema_name, v_item.object_name;\n END LOOP;\nEND;\n$$ LANGUAGE plpgsql;\n \nCREATE EVENT TRIGGER delete_table_obj ON sql_drop WHEN tag IN ('drop table') EXECUTE PROCEDURE del_event_func();\n \nDROP TABLE child ;\nFEHLER: deletion of object public.child forbidden<\/pre>\n<\/div>\n<h2>Checksums in tables<\/h2>\n<p>With PostgreSQL<sup>\u00ae<\/sup> 9.3, it is now possible in environments in which the reliability of the storage solutions used cannot be guaranteed (for example, certain cloud environments) to initialize the database cluster with <a title=\"Checksums\" href=\"http:\/\/www.postgresql.org\/docs\/9.3\/static\/app-initdb.html#APP-INITDB-DATA-CHECKSUMS\" target=\"_blank\" rel=\"noopener noreferrer\">checksums<\/a>. PostgreSQL<sup>\u00ae<\/sup> organizes tuples in blocks that are 8KB in size by default. These form the smallest unit with which the database works on the storage system. Checksums now provide these blocks with additional information in order to detect storage errors such as corrupt block headers or tuple headers at an early stage. Checksums cannot be activated subsequently, but require the initialization of the physical database directory with initdb and the new command line parameter &#8211;data-checksums. This then applies to all database objects such as tables or indexes and has an impact on the speed.     <\/p>\n<h2>Materialized Views<\/h2>\n<p>The new PostgreSQL<sup>\u00ae<\/sup> version 9.3 now also contains a basic implementation for <a title=\"Materialized Views\" href=\"http:\/\/www.postgresql.org\/docs\/9.3\/static\/sql-creatematerializedview.html\" target=\"_blank\" rel=\"noopener noreferrer\">Materialized Views<\/a>. Normal views in PostgreSQL<g id=\"gid_2\">\u00ae<\/g> are not materialized objects in the sense of a table. In a figurative sense, views must be imagined as a kind of macro that PostgreSQL<sup>\u00ae<\/sup> applies to the underlying view. For example, a SELECT * FROM &lt;view&gt; is then rewritten to the actual, arbitrarily complex SELECT. However, this has the consequence that with large amounts of data, the result must be planned, executed and materialized again and again. With Materialized Views, views can be created that directly hold the materialized result set. However, the implementation in PostgreSQL<sup>\u00ae<\/sup> 9.3 is still very generic. The REFRESH MATERIALIZED VIEW command also blocks all access to the Materialized View.       <\/p>\n<p>These are just a few examples from the long list of innovations that have found their way into the new PostgreSQL<sup>\u00ae<\/sup> version. With JSON, improvements in streaming replication and some improvements in the configuration such as shared memory usage, many other new features have been added. For those who are interested in detailed explanations of all the new features, the <g id=\"gid_1\">Release Notes<\/g> are highly recommended. RPM packages for RedHat, CentOS, Scientific Linux and Fedora are available at <a title=\"PGDG yum Repository\" href=\"http:\/\/yum.postgresql.org\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/yum.postgresql.org<\/a>. The PGAPT repository is available for Debian. Exact instructions can be found at <a title=\"http:\/\/wiki.postgresql.org\/wiki\/Apt\" href=\"http:\/\/wiki.postgresql.org\/wiki\/Apt\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/wiki.postgresql.org\/wiki\/Apt<\/a>     <\/p>\n<\/div>\n<p>This article was originally written by Bernd Helmle.<\/p>\n<p><strong>Also worth reading:<\/strong> <a href=\"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/informix-foreign-data-wrapper-for-postgresql\/\">PostgreSQL Foreign Data Wrapper for Informix<\/a><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>PostgreSQL\u00ae 9.3 is here! The new major version brings many improvements and new functions. This article introduces some of the interesting innovations. Improved Locking with Foreign Keys Foreign keys are indispensable for the referential integrity of the data. However, up to and including PostgreSQL\u00ae 9.2, these also caused locking problems under certain conditions when UPDATE [&hellip;]<\/p>\n","protected":false},"author":90,"featured_media":3259,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_improvement_type_select":"improve_an_existing","_thumb_yes_seoaic":false,"_frame_yes_seoaic":false,"seoaic_generate_description":"","seoaic_improve_instructions_prompt":"","seoaic_rollback_content_improvement":"","seoaic_idea_thumbnail_generator":"","thumbnail_generated":false,"thumbnail_generate_prompt":"","seoaic_article_description":"","seoaic_article_subtitles":[],"footnotes":""},"categories":[1708],"tags":[1801],"class_list":["post-9981","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-postgresql-en","tag-postgresql-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL\u00ae 9.3 - credativ\u00ae<\/title>\n<meta name=\"description\" content=\"PostgreSQL 9.3 brings exciting innovations! Discover the advantages and improvements in this version.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL\u00ae 9.3\" \/>\n<meta property=\"og:description\" content=\"PostgreSQL 9.3 brings exciting innovations! Discover the advantages and improvements in this version.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/\" \/>\n<meta property=\"og:site_name\" content=\"credativ\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/credativDE\/\" \/>\n<meta property=\"article:published_time\" content=\"2013-09-09T08:00:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/07\/postgresql-services.jpg\" \/>\n<meta name=\"author\" content=\"credativ Redaktion\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@credativde\" \/>\n<meta name=\"twitter:site\" content=\"@credativde\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"credativ Editorial Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/\"},\"author\":{\"name\":\"credativ Redaktion\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#\\\/schema\\\/person\\\/63430ac9e022ccceba0f8d53ffe6db12\"},\"headline\":\"PostgreSQL\u00ae 9.3\",\"datePublished\":\"2013-09-09T08:00:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/\"},\"wordCount\":918,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/postgresql-services.jpg\",\"keywords\":[\"PostgreSQL\u00ae\"],\"articleSection\":[\"PostgreSQL\u00ae\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#respond\"]}],\"copyrightYear\":\"2013\",\"copyrightHolder\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/\",\"url\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/\",\"name\":\"PostgreSQL\u00ae 9.3 - credativ\u00ae\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/postgresql-services.jpg\",\"datePublished\":\"2013-09-09T08:00:04+00:00\",\"description\":\"PostgreSQL 9.3 brings exciting innovations! Discover the advantages and improvements in this version.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/postgresql-services.jpg\",\"contentUrl\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/postgresql-services.jpg\",\"width\":500,\"height\":300,\"caption\":\"PostgreSQL\u00ae Services\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL\u00ae 9.3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/\",\"name\":\"credativ GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Organization\",\"Place\"],\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#organization\",\"name\":\"credativ\u00ae\",\"url\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/\",\"logo\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#local-main-organization-logo\"},\"image\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#local-main-organization-logo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/credativDE\\\/\",\"https:\\\/\\\/x.com\\\/credativde\",\"https:\\\/\\\/mastodon.social\\\/@credativde\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/credativ-gmbh\",\"https:\\\/\\\/www.instagram.com\\\/credativ\\\/\"],\"description\":\"Die credativ GmbH ist ein f\u00fchrendes, auf Open Source Software spezialisiertes IT-Dienstleistungs- und Beratungsunternehmen. Wir bieten umfassende und professionelle Services, von Beratung und Infrastruktur-Betrieb \u00fcber 24\\\/7 Support bis hin zu individuellen L\u00f6sungen und Schulungen. Unser Fokus liegt auf dem ganzheitlichen Management von gesch\u00e4ftskritischen Open-Source-Systemen, darunter Betriebssysteme (z.B. Linux), Datenbanken (z.B. PostgreSQL), Konfigurationsmanagement (z.B. Ansible, Puppet) und Virtualisierung. Als engagierter Teil der Open-Source-Community unterst\u00fctzen wir unsere Kunden dabei, die Vorteile freier Software sicher, stabil und effizient in ihrer IT-Umgebung zu nutzen.\",\"legalName\":\"credativ GmbH\",\"foundingDate\":\"2025-03-01\",\"duns\":\"316387060\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"},\"address\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#local-main-place-address\"},\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":\"51.1732374\",\"longitude\":\"6.392010099999999\"},\"telephone\":[\"+4921619174200\",\"08002733284\"],\"contactPoint\":{\"@type\":\"ContactPoint\",\"telephone\":\"08002733284\",\"email\":\"vertrieb@credativ.de\"},\"openingHoursSpecification\":[{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\"],\"opens\":\"09:00\",\"closes\":\"17:00\"},{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":[\"Saturday\",\"Sunday\"],\"opens\":\"00:00\",\"closes\":\"00:00\"}],\"email\":\"info@credativ.de\",\"areaServed\":\"D-A-CH\",\"vatID\":\"DE452151696\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#\\\/schema\\\/person\\\/63430ac9e022ccceba0f8d53ffe6db12\",\"name\":\"credativ Redaktion\",\"description\":\"Dieser Account dient als Sammelpunkt f\u00fcr die wertvollen Beitr\u00e4ge ehemaliger Mitarbeiter von credativ. Wir bedanken uns f\u00fcr ihre gro\u00dfartigen Inhalte, die das technische Wissen in unserem Blog \u00fcber die Jahre hinweg bereichert haben. Ihre Artikel bleiben hier weiterhin f\u00fcr unsere Leser zug\u00e4nglich.\"},{\"@type\":\"PostalAddress\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#local-main-place-address\",\"streetAddress\":\"Hennes-Weisweiler-Allee 23\",\"addressLocality\":\"M\u00f6nchengladbach\",\"postalCode\":\"41179\",\"addressRegion\":\"Deutschland\",\"addressCountry\":\"DE\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/postgresql-en\\\/postgresql-9-3-2\\\/#local-main-organization-logo\",\"url\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/credativ-logo-right.svg\",\"contentUrl\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/credativ-logo-right.svg\",\"caption\":\"credativ\u00ae\"}]}<\/script>\n<meta name=\"geo.placename\" content=\"M\u00f6nchengladbach\" \/>\n<meta name=\"geo.position\" content=\"51.1732374;6.392010099999999\" \/>\n<meta name=\"geo.region\" content=\"Germany\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL\u00ae 9.3 - credativ\u00ae","description":"PostgreSQL 9.3 brings exciting innovations! Discover the advantages and improvements in this version.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/","og_locale":"en_US","og_type":"article","og_title":"PostgreSQL\u00ae 9.3","og_description":"PostgreSQL 9.3 brings exciting innovations! Discover the advantages and improvements in this version.","og_url":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/","og_site_name":"credativ\u00ae","article_publisher":"https:\/\/www.facebook.com\/credativDE\/","article_published_time":"2013-09-09T08:00:04+00:00","og_image":[{"url":"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/07\/postgresql-services.jpg","type":"","width":"","height":""}],"author":"credativ Redaktion","twitter_card":"summary_large_image","twitter_creator":"@credativde","twitter_site":"@credativde","twitter_misc":{"Written by":"credativ Editorial Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#article","isPartOf":{"@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/"},"author":{"name":"credativ Redaktion","@id":"https:\/\/www.credativ.de\/en\/#\/schema\/person\/63430ac9e022ccceba0f8d53ffe6db12"},"headline":"PostgreSQL\u00ae 9.3","datePublished":"2013-09-09T08:00:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/"},"wordCount":918,"commentCount":0,"publisher":{"@id":"https:\/\/www.credativ.de\/en\/#organization"},"image":{"@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/07\/postgresql-services.jpg","keywords":["PostgreSQL\u00ae"],"articleSection":["PostgreSQL\u00ae"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#respond"]}],"copyrightYear":"2013","copyrightHolder":{"@id":"https:\/\/www.credativ.de\/#organization"}},{"@type":"WebPage","@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/","url":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/","name":"PostgreSQL\u00ae 9.3 - credativ\u00ae","isPartOf":{"@id":"https:\/\/www.credativ.de\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#primaryimage"},"image":{"@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/07\/postgresql-services.jpg","datePublished":"2013-09-09T08:00:04+00:00","description":"PostgreSQL 9.3 brings exciting innovations! Discover the advantages and improvements in this version.","breadcrumb":{"@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#primaryimage","url":"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/07\/postgresql-services.jpg","contentUrl":"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/07\/postgresql-services.jpg","width":500,"height":300,"caption":"PostgreSQL\u00ae Services"},{"@type":"BreadcrumbList","@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.credativ.de\/en\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL\u00ae 9.3"}]},{"@type":"WebSite","@id":"https:\/\/www.credativ.de\/en\/#website","url":"https:\/\/www.credativ.de\/en\/","name":"credativ GmbH","description":"","publisher":{"@id":"https:\/\/www.credativ.de\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.credativ.de\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Organization","Place"],"@id":"https:\/\/www.credativ.de\/en\/#organization","name":"credativ\u00ae","url":"https:\/\/www.credativ.de\/en\/","logo":{"@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#local-main-organization-logo"},"image":{"@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#local-main-organization-logo"},"sameAs":["https:\/\/www.facebook.com\/credativDE\/","https:\/\/x.com\/credativde","https:\/\/mastodon.social\/@credativde","https:\/\/www.linkedin.com\/company\/credativ-gmbh","https:\/\/www.instagram.com\/credativ\/"],"description":"Die credativ GmbH ist ein f\u00fchrendes, auf Open Source Software spezialisiertes IT-Dienstleistungs- und Beratungsunternehmen. Wir bieten umfassende und professionelle Services, von Beratung und Infrastruktur-Betrieb \u00fcber 24\/7 Support bis hin zu individuellen L\u00f6sungen und Schulungen. Unser Fokus liegt auf dem ganzheitlichen Management von gesch\u00e4ftskritischen Open-Source-Systemen, darunter Betriebssysteme (z.B. Linux), Datenbanken (z.B. PostgreSQL), Konfigurationsmanagement (z.B. Ansible, Puppet) und Virtualisierung. Als engagierter Teil der Open-Source-Community unterst\u00fctzen wir unsere Kunden dabei, die Vorteile freier Software sicher, stabil und effizient in ihrer IT-Umgebung zu nutzen.","legalName":"credativ GmbH","foundingDate":"2025-03-01","duns":"316387060","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"},"address":{"@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#local-main-place-address"},"geo":{"@type":"GeoCoordinates","latitude":"51.1732374","longitude":"6.392010099999999"},"telephone":["+4921619174200","08002733284"],"contactPoint":{"@type":"ContactPoint","telephone":"08002733284","email":"vertrieb@credativ.de"},"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"],"opens":"09:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":["Saturday","Sunday"],"opens":"00:00","closes":"00:00"}],"email":"info@credativ.de","areaServed":"D-A-CH","vatID":"DE452151696"},{"@type":"Person","@id":"https:\/\/www.credativ.de\/en\/#\/schema\/person\/63430ac9e022ccceba0f8d53ffe6db12","name":"credativ Redaktion","description":"Dieser Account dient als Sammelpunkt f\u00fcr die wertvollen Beitr\u00e4ge ehemaliger Mitarbeiter von credativ. Wir bedanken uns f\u00fcr ihre gro\u00dfartigen Inhalte, die das technische Wissen in unserem Blog \u00fcber die Jahre hinweg bereichert haben. Ihre Artikel bleiben hier weiterhin f\u00fcr unsere Leser zug\u00e4nglich."},{"@type":"PostalAddress","@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#local-main-place-address","streetAddress":"Hennes-Weisweiler-Allee 23","addressLocality":"M\u00f6nchengladbach","postalCode":"41179","addressRegion":"Deutschland","addressCountry":"DE"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.credativ.de\/en\/blog\/postgresql-en\/postgresql-9-3-2\/#local-main-organization-logo","url":"https:\/\/www.credativ.de\/wp-content\/uploads\/2025\/04\/credativ-logo-right.svg","contentUrl":"https:\/\/www.credativ.de\/wp-content\/uploads\/2025\/04\/credativ-logo-right.svg","caption":"credativ\u00ae"}]},"geo.placename":"M\u00f6nchengladbach","geo.position":{"lat":"51.1732374","long":"6.392010099999999"},"geo.region":"Germany"},"_links":{"self":[{"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/posts\/9981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/users\/90"}],"replies":[{"embeddable":true,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/comments?post=9981"}],"version-history":[{"count":0,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/posts\/9981\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/media\/3259"}],"wp:attachment":[{"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/media?parent=9981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/categories?post=9981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/tags?post=9981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}