P5-t2

Jul 20, 2023

Object Relational mapping system

The T2 module is a base for the refactoring of the now quite stable Tangram Object-Relational mapper.

In a nutshell, it lets you store objects - which have to be described to a similar level that you would describe a database to store them - into any SQL store. Currently, this is tested on PostgreSQL, MySQL, Oracle and Sybase a lot, though in general database-specific extensions to SQL, such as triggers, stored procedures, etc are avoided. So, if DBI installs and tests successfully with your database, there is a good chance that T2 will work with it too.

The only current requirement is that objects that have tables associated with them are implemented via hashes. You also have to be able to describe all of the fields for those root objects. Individual fields of stored objects may be arbitrarily complex.

If you are familiar with DBI, it is somewhat similar to bless’ing the structures returned by $dbh->fetchrow_hashref, except that references and collections to other objects in the store are loaded `on demand’ aka Lazy-loading.



Checkout these related ports:
  • Zodb3 - Z - Object Database for python
  • Zodb - Python object-oriented database
  • Zabbix22-libzbxpgsql - Zabbix agent module for comprehensive monitoring of PostgreSQL servers
  • Xtrabackup8 - Open-source backup tool for InnoDB and XtraDB
  • Xtrabackup - OpenSource version of InnoDB backup with support of Percona extensions
  • Xrootd - Framework for fast, low latency, scalable data access
  • Xls2txt - Utilities to convert spreadsheet files to text and csv formats
  • Xapian-core12 - Probabilistic text search database engine
  • Xapian-core10 - Probabilistic text search database engine
  • Xapian-core - Probabilistic text search database engine
  • Xapian-bindings12 - Bindings allowing Xapian to be used from various programming languages
  • Xapian-bindings - Bindings allowing Xapian to be used from various programming languages
  • Wfb2sql - CIA World Fact Book to SQL Conversion Utility
  • Webdis - HTTP interface for Redis
  • Vsqlite - Well designed and portable SQLite3 Wrapper for C++