nyuuzyou/wikis huggingface dataset:
Argentina: PostgreSQL Day 2012

Las filmaciones del PgDay Argentina 2012 se encuentran en la 
Lista de Reproducción en YouTube:
* PostgreSQL Unboxing	Christophe Pettus	180' ◊◊ (Inglés)
* PostgreSQL y el desarrollo Web	Leonardo Gavidia Guerra	40' ◊◊ (Español)
* Pgpymongo y Pgpycouch: extensiones para interactuar con MongoDB y CouchDB	Anthony Sotolongo León	30' ◊◊ (Español)
* Autofailover con repmgr	Jaime Casanova Merchan	40' ◊◊ (Español)
* Autovacuum, bendición o maldición? Afrontando el reto	Jaime Casanova Merchan	40' ◊◊ (Español)
* Uso de PostgreSQL en productos para Telecomunicaciones	Maximiliano Kreiner	15' ◊ (Español)
* Experiencia PG en La Policia de la Provincia de Buenos Aires	Angel Bravo	30' ◊ (Español)
* Postgres Demystified	Craig Kerstiens	40' ◊◊ (Inglés)
* PostgreSQL 9.2 and beyond	Simon Riggs	40' ◊◊ (Inglés)
Nivel orientativo: ◊ principiante, ◊◊ intermedio, ◊◊◊ avanzado
ARM

Here's a place to collect some links on ARM-related work in PostgreSQL, as it becomes more popular... In no particular order:
Threads:
* spin_delay() for ARM
* Optimize Arm64 crc32c implementation in Postgresql (this led to a series of commits, to add the feature and later to make it work on non-Linux systems)
* \[PATCH\ audo-detect and use -moutline-atomics compilation flag for aarch64]
* Re: Inlining of couple of functions in pl_exec.c improves performance (this led to a commit)
* \[PATCH\ Enabling atomics on ARM64] (committed)
* (discussion around getting LLVM based JIT working on ARM64)
* Auto-vectorization speeds up multiplication of large-precision numerics (happens to use ARM64, probably not an ARM-specific improvement)
* valgrind versus pg_atomic_init() (on ARM64)
* lock support for aarch64
Array Index

Category:SQL
Return the index of the first occurrence of a value in an array. Kodos to Sam Mason for this one. 
CREATE OR REPLACE FUNCTION idx(anyarray, anyelement)
 RETURNS int AS 
$$
 SELECT i FROM (
 SELECT generate_series(array_lower($1,1),array_upper($1,1))
 ) g(i)
 WHERE $1[i] = $2
 LIMIT 1;
$$ LANGUAGE sql IMMUTABLE;
Can also be useful for sorting.
SELECT *
FROM foo
ORDER BY idx(array['Freshman','Sophomore','Junior','Senior'], foo.grade_level)
Array reverse

PostgreSQL provides no built-in array_reverse() function, so here's one for your use. It's not fast, but it'll do the job.
CREATE OR REPLACE FUNCTION array_reverse(anyarray) RETURNS anyarray AS $$
SELECT ARRAY(
 SELECT $1[i]
 FROM generate_series(
 array_lower($1,1),
 array_upper($1,1)
 ) AS s(i)
 ORDER BY i DESC
);
$$ LANGUAGE 'sql' STRICT IMMUTABLE;
For 8.4 or later, the more-correct code below works, as it accounts
for any skips in the subscripts.
CREATE OR REPLACE FUNCTION array_reverse(anyarray) RETURNS anyarray AS $$
SELECT ARRAY(
 SELECT $1[i]
 FROM generate_subscripts($1,1) AS s(i)
 ORDER BY i DESC
);
$$ LANGUAGE 'sql' STRICT IMMUTABLE;
Array Unnest

Category:SQL
PostgreSQL 8.4 includes a function for expanding any array of any dimension into a set of elements. It is extremely helpful when working with arrays.
Here is how to add it to 8.3 for 1-dimenstional arrays (by Scott Bailey 'Artacus'):
CREATE OR REPLACE FUNCTION unnest(anyarray)
 RETURNS SETOF anyelement AS
$BODY$
SELECT $1[i]
FROM generate_series(array_lower($1,1), array_upper($1,1)) i
$BODY$
 LANGUAGE sql IMMUTABLE;
For 2-dimensional arrays (by Erwin Brandstetter):
CREATE OR REPLACE FUNCTION unnest_2d(anyarray)
 RETURNS SETOF anyelement AS
$func$
SELECT $1[d1][d2]
FROM generate_series(array_lower($1,1), array_upper($1,1)) d1
 , generate_series(array_lower($1,2), array_upper($1,2)) d2
$func$
LANGUAGE sql IMMUTABLE;
Get 1d arrays out of a 2d array (by Erwin Brandstetter):
CREATE OR REPLACE FUNCTION unnest_2d_1d(anyarray)
 RETURNS SETOF anyarray AS
$func$
SELECT array_agg($1[d1][d2])
FROM generate_series(array_lower($1,1), array_upper($1,1)) d1
 , generate_series(array_lower($1,2), array_upper($1,2)) d2
GROUP BY d1
ORDER BY d1
$func$
LANGUAGE sql IMMUTABLE;
SQL Fiddle demo.
ArrXor

== Array XOR (Symmetric Difference) ==
Takes two arrays and returns the elements not found in both array (akin to using EXCEPT between two arrays).
Original discussion can be found here: http://markmail.org/message/o2f5hvq5vpxqzou7
Tested in PostgreSQL 9.0+
"In mathematics, the symmetric difference of two sets is the set of elements which are in either of the sets and not in their intersection. The symmetric difference of the sets A and B is commonly denoted by A Δ B". From http://en.wikipedia.org/wiki/Symmetric_difference
create or replace function arrxor(anyarray,anyarray) returns anyarray as $$
select ARRAY(
 (
 select r.elements
 from (
 (select 1,unnest($1))
 union all
 (select 2,unnest($2))
 ) as r (arr, elements)
 group by 1
 having min(arr) = max(arr)
 )
)
$$ language sql strict immutable;
ARTICLE

== Postgres Conference China 2015 筹备 ==
=== 成员分工 ===
1. 萧少聪：统筹，国外赞助，嘉宾议题及介绍收集，礼品设计联系（衣服、袋子）
2. 元佳：总协调，国内赞助，微信微博宣传组织，礼品制作跟进【媛媛官方微信协助，到京官网主页协助】
3. 赵振平：媒体接洽（报名），收款，志愿者协调
4. 阿弟：场地细节设计，嘉宾议题评审（确认评审标准，不出现商业话题如产品推广，讲产品可以，但要讲出原理性的干货）
5. 德哥：博客话题预告，嘉宾议题评审（确认评审标准，不出现商业话题如产品推广，讲产品可以，但要讲出原理性的干货）
6. 牧青：提供去年工作结节汇总，全程参与全周电话讨论，从外围指出我们的不足
Articulos

=== Artículos en blogs ===
* Trucos de PostgreSQL 3
* Trucos de PostgreSQL 2
* Trucos de PostgreSQL
* Estructura del catalogo de objetos de PostgreSQL
* Un ayuda memoria de las funciones mas usadas en PostgreSQL
* Desenmarañando las estructuras en PostgreSQL
* Emulando índices Hash manualmente
* Migración de Microsoft SQL Server a PostgreSQL por Ian Harding
Category:Español
Artwork

= 9.0 (2010-09-20) =
File:Postgres90.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-9.0.svg
File:Postgres90-alt1.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-9.0-alt1.svg
File:Postgres90-alt2.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-9.0-alt2.svg
= 9.1 (2011-09-12) =
File:Postgres91.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-9.1.svg | .ai .pdf .svg
= 9.2 (2012-09-10) =
File:Postgres-9.2.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-9.2.svg
= 9.3 (2013-09-09) =
File:Postgres-9.3.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-9.3.svg
= 9.4 (2014-12-18) =
File:Postgres-9.4.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-9.4.svg
File:Postgres-9.4-alt1.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-9.4-alt1.svg
= 10 (2017-10-05) =
File:Postgres10.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-10.svg
= 11 (2018-10-18) =
File:Postgres-11.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-11.svg
= 12 (2019-10-02) =
File:Postgres-12.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-12.svg
File:Postgres-12-alt1.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-12-alt1.svg
File:Postgres-12-alt2.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-12-alt2.svg
= 13 (2020-09-24) =
File:Postgres13.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-13.svg | .ai .eps .png .svg
= 14 (2021-09-30) =
File:Postgres-14.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-14.svg | .ai .eps .png .svg
= 15 (2022-10-13) =
File:Postgres-15.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-15.svg | .ai .png .svg
= 16 (2023-09-14) =
File:Postgres-16.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-16.svg | .ai .png .svg
= 17 (2024-09-26) =
File:Postgres-17.png | link=https://s3-us-west-2.amazonaws.com/media.postgresql.org/artwork/postgresql-17.png | .png .svg
AttemptsAtSlogans

== Slogans ==
* PostgreSQL -- Stand by, It's Hot!
* PostgreSQL: Replication made easy
* PostgreSQL: Replication Out Of The Box
* PostgreSQL Reloaded
* On Cloud 9 With PostgreSQL 9
* PostgreSQL Formula No. 9
* Make (DO) with PostgreSQL 9
* PostgreSQL 9 Inside
* Leading Geeks Rely on Postgres 9
Category:PostgreSQL 9.0
Backend killer function

Author: Emanuel Calvo Franco
This function is only useful on 8.3 and earlier; on newer PostgreSQL versions (8.4 and up), you can use the pg_terminate_backend() function.
This function sends a TERM signal to kill the server process indicated in the parameter.
Be aware that all PostgreSQL versions prior to 8.4 are known to have the potential to leave stuck locks or other corruption of shared-memory data structures if backends are killed in this way. In most cases these are low probability events; but if they do occur it will be necessary to restart the postmaster in order to clear them out. (Internally, prior to version 8.4, the postmaster only uses the TERM signal when it is in the process of shutting down anyway.)
create or replace function pg_terminate_backend(int) returns int
language plperlu security definer volatile as $$
 $pid = shift;
	my $myPid = spi_exec_query('select pg_backend_pid();');
	if ($pid == $myPid->{rows}[0]->{pg_backend_pid}){
		elog(WARNING, "this PID belongs to the current server process");
		return 1;
	}
	my $othersesions = spi_exec_query('SELECT procpid FROM pg_stat_activity');
	my $numRows = $othersesions->{processed};
	foreach my $rn (0 .. $numRows - 1) {
 	my $rs = $othersesions->{rows}[$rn];
		if ($rs->{procpid} == $pid){
			$ret = kill TERM, $pid;
			elog WARNING, "could not send signal TERM to $pid: $!" unless $ret == 1;
			return $ret;			
		}
	}
	elog(WARNING, "PID $pid is not a PostgreSQL server process");
	return 1;
$$;
(Note that this function assumes that the stats collector is running.)
=== How do I find the PID of the session I want to kill? ===
To find out the PID of the current session, run
select pg_backend_pid();
but of course you cannot kill that one with this function.
This query lists the PIDs of currently active processes, and the SQL commands they are running:
 select procpid, current_query from pg_stat_activity;
 procpid | current_query 
 ---------+------------------------------------------------------
 2033 | <IDLE>
 2478 | select procpid, current_query from pg_stat_activity;
 (2 rows)
You can also try using your operating system's process listing:
$ ps feu -C postmaster -C postgres
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
postgres 1402 0.0 0.2 63748 4960 pts/8 S 20:05 0:00 postmaster PGDATA=/pgsql/install/83
postgres 1409 0.0 0.0 63748 1272 ? Ss 20:05 0:00 \_ postgres: writer process 
postgres 1410 0.0 0.0 63748 1076 ? Ss 20:05 0:00 \_ postgres: wal writer process 
postgres 1411 0.0 0.0 63884 1508 ? Ss 20:05 0:00 \_ postgres: autovacuum launcher process 
postgres 1412 0.0 0.0 34240 1196 ? Ss 20:05 0:00 \_ postgres: stats collector process 
postgres 2033 0.0 0.2 65236 5768 ? Ss 20:12 0:00 \_ postgres: postgres postgres [local] idle idle
Banners

== Horizontal Banners ==
Image:PostgreSQL.Banner.blue.468x60.gif| Blue Banner ( GIF, 468x60 pixels )
Image:PostgreSQL.Banner.orange.468x60.gif| Orange Banner ( GIF, 468x60 pixels )
Image:PostgreSQL.Banner.blue.728x90.gif| Blue Banner ( GIF, 728x90 pixels )
Image:PostgreSQL.Banner.orange.728x90.gif| Orange Banner ( GIF, 728x90 pixels )
== Square Banners ==
== Vertical Banners ==
Category:Advocacy
Benchw

Benchw is a multidatabase benchmarking tool designed to be a very simple data warehousing application with a star schema. It's designed around ease of running its tests. The standard sizing recommendation for Benchw is to pick a scale such that the database is at least 2X the size of physical RAM in the server.
In 2004 it was used to compare PostgreSQL, MySQL, and Firebird as well as note performance changes from PostgreSQL 7.2 to 8.0. It was also used in some 2007 Sun benchmark tests featuring PostgreSQL, such as 
Solaris ZFS and Red Hat Enterprise Linux ext3 and Solaris ZFS and Microsoft Server 2003 NTFS.
Category:BenchmarkingCategory:Tool
Binary Replace

== Binary replace (replace for bytea) ==
This function is the equivalent for binary strings (bytea) of the built-in function for text:
replace(string text, from text, to text)
It searches occurrences of s1 into str and replaces them by s2.
CREATE FUNCTION binary_replace(str bytea, s1 bytea, s2 bytea)
 RETURNS bytea as $$
DECLARE
 i int:=position(s1 in str);
 j int;
 l1 int:=length(s1);
 l2 int:=length(s2);
BEGIN
 while (i>0) loop
 str:=overlay(str placing s2 from i for l1);
 j:=position(s1 in substring(str from i+l2));
 if (j>0) then
 i:=i+j-1+l2;
 else
 i:=0;
 end if;
 end loop;
 return str;
END
$$ language plpgsql immutable;
Category:PL/pgSQL
Bitweaver

Bitweaver ranks 10th in the WikiMatrix Top 25 most popular wiki CMS.
What sets Bitweaver apart among the WikiMatrix Top 10?
Datastorage 
PostgreSQL (many of the lead developers use it exclusively), MySQL, Oracle, and Firebird
Customize Without Fear 
Thanks to highly modular and easily extensible design
Speed from end-to-end 
From schema design to query utilization to software design
Style Made Easy 
Standard compliant XHTML Strict 1.0 and sophisticated tableless CSS
Extras 
Blog, Calendar, Image and File Galleries, Forums, Groups, Tags
Category:Software Ports
Bloggers84

== Blogger Feature Page for 8.4 Release ==
Bloggers: please claim a feature from the 8.4 Feature List you'd like to blog about for the release. Since there are > 200 features in this release, please let's nobody blog about the same features.
* Josh Berkus: pg_stat_statements
* Joshua D. Drake : autovacuum changes
* Andreas Scherbaum: Column Permissions
* David Fetter: Common Table Expressions
* Andrew Dunstan: parallel pg_restore
* Leo Hsu and Regina Obe: Window Functions
Category:PostgreSQL 8.4
BoothPolicies

== Booth requirements ==
If you are staffing the booth
If you are staffing the booth please wear PostgreSQL-themed clothing.
If you want to have marketing material at the booth
As the community matures we are attempting to provide a more professional
presence to newcomers and old timers alike. The first time we did this at
OSCON 2007, we were jokingly referred to as an "army of Smurfs."
The upside is that our booth was extremely popular, well organized and in
general provided a better experience to the PostgreSQL community than any
other booth (proprietary or FOSS) at the show.
Only contributors are allowed within the PostgreSQL portfolio. If you are not a contributor there are a number of ways to become a contributor:
* Help review documentation and submit patches
* Sponsor development
* Participate actively in the lists
* Financial support 
We welcome and invite all contributors to submit material to be presented to potential booth visitors. Material presented at the booths will be PostgreSQL and PostgreSQL contributors only. The material provided by contributors will be presented via a PostgreSQL
"portfolio". Essentially a folder. The folder will be PostgreSQL branded,
full color and very attractive. The requirement for submissions to the folder
are:
* (1) 8.5x11, full color is fine, duplex is fine.
Category:Advocacy
Category:Policies
BoothVols

You will need volunteers to help with:
* setting up the booth (probably the day before the event)
* staffing the booth
* tearing down the booth (probably immediately after the event closes)
Places to find volunteers:
* your local PUG
* ask on pg-advocacy for volunteers from event attendees
Incentives:
* since volunteers are required to wear the current PostgreSQL uniform, make sure you have shirts available for them
Category:Advocacy
Bruce's Patch Queue

Patch 	URL	Author 	Reviewer 	Status	
updated hash functions for postgresql v1	1 	Kenneth Marshall <ktm@rice.edu>	Alvaro Herrera	? 	
Tom Lane:
{| border=1 cellpadding=1 cellspacing=0 style="font-size: 70%; border: gray solid 1px;"	
Tom Lane:
{| border=1 cellpadding=1 cellspacing=0 style="font-size: 70%; border: gray solid 1px;"	
Tom Lane:
{| border=1 cellpadding=1 cellspacing=0 style="font-size: 70%; border: gray solid 1px;"	
Tom Lane:
{| border=1 cellpadding=1 cellspacing=0 style="font-size: 70%; border: gray solid 1px;"	
Tom Lane:
{| border=1 cellpadding=1 cellspacing=0 style="font-size: 70%; border: gray solid 1px;"	I think it's a large patch with a small patch struggling to get out :-(. Surely we don't need so many variants of the same code.
--------------------------------
Category:Closed Commitfests
Bulk Loading and Restores

The manual section Populating a Database covers bulk-loading and includes good guidance on the DDL side of things. In addition to that, you should follow the general guidelines from Tuning Your PostgreSQL Server, particularly those about checkpoint_segments.
One additional option you might consider for restores is using just synchronous commits (8.3+) or even changing fsync=off. The usual reason you can't do that, concerns about corruption, are less important if the database is just being populated for the first time. Note that if your data is really large, though, a crash in the middle of loading might cause a significant time loss. If you can't afford to start over again, playing with fsync is a bit dangerous.
Additional articles on this topic:
* Getting faster database restores on postgresql 8.1
* Measuring database restore times
Another area to watch carefully is vacuuming. You probably want to turn autovacuum off during the load itself, as that will compete for resources. If you do that, once the load is finished a manual ANALYZE is needed to sort out table statistics. Also, you might consider running a regular VACUUM at that point in order to update all the Hint Bits; this can take a fairly long time to execute however.
Category:Performance
Bulk Loading and Restores/ja

マニュアルのPopulating a Databaseではバルクロードについて、DDLの側面からの優れたガイドラインを説明しています。
これに加え、Tuning Your PostgreSQL Serverの一般的なガイドライン、特にcheckpoint_segmentsについてのものにも従うべきです。
リストアの際に考慮する可能性がある追加の選択肢は、単に同期コミット（8.3以上）を使用すること、あるいはfsync=offに変更することです。
これを行うことができないよくある理由は破損を恐れることですが、データベースに初めてデータを投入する場合であればあまり重要ではありません。
しかし、データが実際に大規模であれば、ロード中のクラッシュは大きな時間損失となることには注意してください。
やり直す余裕を取ることができなければ、fsyncをいじることは危険です。
この話題に関する他の記事：
* Getting faster database restores on postgresql 8.1
* Measuring database restore times
他にも注意深く注視する領域としてバキューム処理があります。
リソースが競合しますので、おそらくロード中は自動バキュームを無効にしたいと考えるでしょう。
こうした場合、ロードが完了した後、テーブルの統計情報を整理するために、手作業でANALYZEを行う必要があります。
また、すべてのHint Bitsを更新するために、この時点で通常のVACUUMを実行することも検討してください。
しかし実行にはかなりの時間がかかることがあり得ます。
Category:PerformanceCategory:Japanese
Buttons

== Brilliant Buttons ==
Image:PostgreSQL.BrilliantButton.80x15.png| Brilliant Button (PNG, 80x15 pixels)
Image:PostgreSQL.BrilliantButton.blue.80x16.gif| Brilliant Button (GIF, 80x16 pixels)
Image:PostgreSQL.BrilliantButton.orange.80x16.png| Brilliant Button (GIF, 80x16 pixels)
Image:PostgreSQL.BrilliantButton.grey.80x16.gif| Brilliant Button (GIF, 80x16 pixels)
== PostgreSQL Powered ==
== Square buttons ==
Image:PostgreSQL square button.blue elephant.32x32.gif| Square Button (GIF, 32x32 pixels)
Image:PostgreSQL square button.orange elephant.32x32.gif| Square Button (GIF, 32x32 pixels)
Image:PostgreSQL square button.grey elephant.32x32.gif| Square Button (GIF, 32x32 pixels)
Category:Advocacy
CacheEstimateDraft

== Cache Estimates ==
Several workloads impact the PostgreSQL buffer cache and the Operating System page cache in different ways.
Here is an attempt to track the real-life cases where the *_cost GUC are abused to make a workload perform well. Some hypothetical scenarios are also described to illustrate possible corner-case situation or common workloads.
=== Hypothesis ===
Cached data may not be re-used vs Cached data may be re-used.
Query trash cache vs Query build cache vs Query use cache
Server is not dedicated to PostgrSQL vs server is dedicated.
=== Real-Life issues ===
Add Kevin case if possible.
=== Corner-Cases ===
One query to trash them all. (but the kernel is not stupid)
=== Known Patterns ===
Day vs Night workload
Small server, small usage.
Category:Development
Cacti

Cacti is a GUI wrapper for the RRDTool program, and is used to create graphs of network and other system activity.
=== Monitoring PostgreSQL Databases ===
Currently there is an early Host Template for Cacti available from their forums. It's also possible to use the check_postgres monitoring tool with cacti; see Cacti + PostgreSQL Graphing for notes on doing that.
=== Supporting PostgreSQL data storage ===
Cacti is written in PHP and supports MySQL only for storing the RRDTool data. There is a generic bug report named Support Multiple Databases for Cacti Engine. There seems to be support from the users as well as the developers to having Postgres support:
* Thread 1
* Thread 2
* Thread 3
Category: Software Ports
Category:Monitoring
Case Study Links

== Governments ==
=== United States ===
* NOAA migration to PostgreSQL (2005)
* Examples of government agencies and open source use, includes PostgreSQL mentions (2003)
* Monitoring Ozone Levels with Postgresql (2012)
=== Brazil ===
* PostgreSQL 9.0, pgBouncer e escalabilidade no SISREG do Datasus (2011 -- Portuguese)
* Como o PostgreSQL deu e dá sustentabilidade ao projeto e-cidade (2011 -- Portuguese)
== PostGIS ==
* PostGIS Case Studies
== Migrating to PostgreSQL ==
* Large Scale MySQL Migration to PostgreSQL (2012)
* Moving Day: Migrating Big Data from A to B (2012)
* Migration to PostgreSQL - preparation and methodology (2011)
* Port databases from MySQL to PostgreSQL (2011)
* The PostgreSQL migration project at CNAF (France) (2010)
== Telecommunications ==
* 12 Calm Years of PostgreSQL in Critical Messaging (2012)
* Ram Mohan Keynote: Afilias Winning Bet on Open Source (2011)
* Billing System for a TELCO based on PostgreSQL (2011)
* Gateway de Mensagens SMS com PostgreSQL (2011 -- Portuguese)
== Finance ==
* PostgreSQL in Mission-Critical Financial Systems (2010) - audio
* Online financial services & Postgres (2010)
== Retail ==
* Disponibilidade total com replicação bidirecional e PostgreSQL (2011 -- Portuguese)
== Large Deployments ==
* HP Performs Large-scale Deployment of Postgres with its Remote Support Software (2011)
* O Elefante municipal (2011 -- in Portuguese)
== Startups ==
* Postgres at Urban Airship (2011)