PGObject::Simple::Role provides an interface to the PGObject service locator for Moo and Moose Perl classes. This service locator is intended to integrate Perl objects with PostgreSQL user-defined functions, and this uses the "simple" mapping approach. Between PGObject::Simple::Rrole and PGObject::Util::DBMethod, it is possible to write fully-declarative classes in which all calculation logic is handed off to database functions.
RecDB is a recommendation engine built entirely inside PostgreSQL 9.2. It allows application developers to build recommendation applications using a wide variety of built-in recommendation algorithms such as user-user collaborative filtering, item-item collaborative filtering, and singular value decomposition. Applications powered by RecDB can produce online and flexible personalized recommendations to end-users. It is easily used and configured and allows novice developers to define a variety of recommenders that fits their application's needs in few lines of SQL. It can seamlessly integrate recommendation functionality with traditional database operations.
The psycogreen package makes it possible for psycopg2 to work with coroutine libraries, using asynchronous calls internally but offering a blocking interface so that regular code can run unmodified. While Psycopg offers coroutine support, the main module is a C extension that cannot be monkey-patched to become coroutine-friendly. Instead it exposes a hook that coroutine libraries can use to install a function integrating with their event scheduler. Psycopg will call the function whenever it executes a libpq call that may block. psycogreen is a collection of "wait callbacks" that can be used to integrate Psycopg with different coroutine libraries. psycogreen is currently mainly useful for integration with gevent.
The YB.ORM library aims to simplify writing C++ code that has to deal with SQL databases. The goal is to provide a convenient interface like SQLAlchemy (Python) or Hibernate (Java). The library itself is cross-platform and supports a variety of SQL dialects: SQLite3, MySQL, Postgres, Oracle, and Firebird. Integration with Boost, Qt4, and wxWidgets is built-in. In a typical usage scenario, you would describe your database schema and table relationships in a simple XML-based format, generate SQL code to populate database schema with tables, generate C++ classes, add application-specific logic to the classes, and use these classes in cooperation with the Session object to query objects from the database, create new or modify/delete existing objects, or link and unlink objects using relations. Simple serialization to XML is supported along with connection pooling.
Barman (backup and recovery manager) for PostgreSQL is an administration tool for disaster recovery of PostgreSQL servers. It allows remote backups of multiple servers in business-critical environments and helps DBAs during the recovery phase. Barman's most-wanted features include backup catalogs, retention policies, remote recovery, archiving, and compression of WAL files and backups.
Datum is a Web application which shares data from databases and information related to these databases. The core of the software provides user management and permissions, news, file sharing, visualisation of the database schema through WWWSQLDesigner, data reports with charts, dynamic charts, an asynchronous daemon, internationalization, a help system, database management with optimization and triggers, and user history. Modules can be added to add special functionalities or interfaces for a database.
pgnotifyd connects to a PostgreSQL database, listening for the named asynchronous notification. When notification is received, it executes the given command. It can work as a drop-in replacement for polling a PostgreSQL database for changes (e.g., using crontab(5)), and is typically a cleaner and more efficient alternative.
pgDynamicPartitions is a script that allows you to maintain a rolling window of daily table partitions under PostgreSQL. When called daily via cron, it will create x empty partitions into the future and keep only n partitions from the past 30 days, for example, and drop any that are older. It can be used with multiple tables, and each can be treated differently by calling it with different parameters via cron.
pg-python provides access to Python from PostgreSQL. It contrasts with the built-in procedural language by interfacing with PostgreSQL types rather than converting them. This allows large instances of data types to be handled with greater efficiency while also allowing reasonable support for arbitrary data types without the need for a specialized implementation. Procedures are managed as entire modules so that initialization can be performed naturally by a stored procedure (each PostgreSQL function has a "main" entry point). Import statements may exist in a more natural position, and the "main" entry point may be decorated.