473,471 Members | 4,687 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

Versioning control in PostgreSQL?

I haven't used PostgreSQL for nearly a year now, and when I was last
using it there was some discussion on versioning control being
introduced as a feature. Basically, for some data, I'd like to keep
track of who changed it, when, and to what. I know I could include
multiple values in the schema, and have a view to pull out the most
recent, but I was wondering if there was something more automatic that
is a feature of PostgreSQL itself. I've looked around the documentation
with no success. Does anybody know if this is possible?

Alex
--
Mail: Alex Page <al*******@cancer.org.uk>
Real: Systems/Network Assistant, Epidemiology Unit, Oxford
Tel: 01865 302 223 (external) / 223 (internal)
PGP: 8868 21D7 3D35 DD77 9D06 BF0A 0746 2DE6 55EA 367E

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/nlZwB0Yt5lXqNn4RAl2fAJ4s2O2mrFGmcO5v/Iylx0XrdpdfiACg3P9Q
MmDuUu2UcjGap2OwLB108Zo=
=fEGa
-----END PGP SIGNATURE-----

Nov 12 '05 #1
7 5572
On Tuesday 28 October 2003 17:13, Alex Page wrote:
I haven't used PostgreSQL for nearly a year now, and when I was last
using it there was some discussion on versioning control being
introduced as a feature. Basically, for some data, I'd like to keep
track of who changed it, when, and to what. I know I could include
multiple values in the schema, and have a view to pull out the most
recent, but I was wondering if there was something more automatic that
is a feature of PostgreSQL itself. I've looked around the documentation
with no success. Does anybody know if this is possible?


No. It does have multiversion rows but rows updated in previous transaction
are not accessible to users.

The rows will remain on disk eating space till you vacuum. There is no way of
accessing them.

Actually it could be a nice feature if we could access them. For certain
applications, having entire database audited is like dream come true. Of
course it has to provide timestamps/transaction ids as well but in general
that would be pretty handy in some situation.

Alas... that is toooo much fundamental to ask for a feature..:-)

Shridhar
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match

Nov 12 '05 #2
On Tue, 2003-10-28 at 07:04, Shridhar Daithankar wrote:
On Tuesday 28 October 2003 17:13, Alex Page wrote:
I haven't used PostgreSQL for nearly a year now, and when I was last
using it there was some discussion on versioning control being
introduced as a feature. Basically, for some data, I'd like to keep
track of who changed it, when, and to what. I know I could include
multiple values in the schema, and have a view to pull out the most
recent, but I was wondering if there was something more automatic that
is a feature of PostgreSQL itself. I've looked around the documentation
with no success. Does anybody know if this is possible?


No. It does have multiversion rows but rows updated in previous transaction
are not accessible to users.

The rows will remain on disk eating space till you vacuum. There is no way of
accessing them.

Actually it could be a nice feature if we could access them. For certain
applications, having entire database audited is like dream come true. Of
course it has to provide timestamps/transaction ids as well but in general
that would be pretty handy in some situation.

Alas... that is toooo much fundamental to ask for a feature..:-)


Really? It seems like that one way to do it would be, at commit
time, to write the "before version" to "somewhere else".

--
-----------------------------------------------------------------
Ron Johnson, Jr. ro***********@cox.net
Jefferson, LA USA

"What's your genius, perfect 20 years too late Monday morning
quarterback answer to how the US should have responded to the
Soviet invasion of Afghanistan? Oh wait, you're just talking crap
- you don't have a real answer, you're just regurgitating crap
from NPR."
http://slashdot.org/comments.pl?sid=76597&cid=6839483
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Nov 12 '05 #3
Ron Johnson wrote:
On Tue, 2003-10-28 at 07:04, Shridhar Daithankar wrote:
Actually it could be a nice feature if we could access them. For certain
applications, having entire database audited is like dream come true. Of
course it has to provide timestamps/transaction ids as well but in general
that would be pretty handy in some situation.

Alas... that is toooo much fundamental to ask for a feature..:-)

Really? It seems like that one way to do it would be, at commit
time, to write the "before version" to "somewhere else".


Well, the original version is stored. Problem is how to make it accessible?

Right now, there are only two types of rows. One updated by most recent
transaction and other is earlier version of same row. Now there could be n
tuples in second catagory.

Postgresql is grounds up designed to discard tuples in second category. It won't
be easy to modify each place so that it could either discard earlier versions or
use them in some sensible fashion.

Shridhar
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Nov 12 '05 #4
On Tue, Oct 28, 2003 at 11:43:44AM +0000, Alex Page wrote:
introduced as a feature. Basically, for some data, I'd like to keep
track of who changed it, when, and to what. I know I could include
multiple values in the schema, and have a view to pull out the most


There is a timetravel module in contrib/spi. I'm pretty sure it aims
at reproducing stuff that used to be in the main code, without all
the overhead. It's a place to start, anyway.

A
--
----
Andrew Sullivan 204-4141 Yonge Street
Afilias Canada Toronto, Ontario Canada
<an****@libertyrms.info> M2P 2A8
+1 416 646 3304 x110
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to ma*******@postgresql.org)

Nov 12 '05 #5
Alex Page wrote:> I haven't used PostgreSQL for nearly a year now, and when I
was last
using it there was some discussion on versioning control being
introduced as a feature. Basically, for some data, I'd like to keep
track of who changed it, when, and to what. I know I could include
multiple values in the schema, and have a view to pull out the most
recent, but I was wondering if there was something more automatic that
is a feature of PostgreSQL itself. I've looked around the documentation
with no success. Does anybody know if this is possible?


Wouldn't a trigger on update (and insert) that writes to a 'changes' table do
what you want?

--
Fernando Nasser
Red Hat - Toronto E-Mail: fn*****@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ma*******@postgresql.org

Nov 12 '05 #6
On Tue, 28 Oct 2003, Alex Page wrote:
I haven't used PostgreSQL for nearly a year now, and when I was last
using it there was some discussion on versioning control being
introduced as a feature. Basically, for some data, I'd like to keep
track of who changed it, when, and to what. I know I could include
multiple values in the schema, and have a view to pull out the most
recent, but I was wondering if there was something more automatic that
is a feature of PostgreSQL itself. I've looked around the documentation
with no success. Does anybody know if this is possible?


There's a nice example code in contrib/spi that might help here.
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match

Nov 12 '05 #7
There is an example and discussion of implementing
history tracking of updates to a table. It includes
the discussion of the update rule technique as well.

See http://www.varlena.com/GeneralBits/38.php

elein
el***@varlena.com

On Tue, Oct 28, 2003 at 11:43:44AM +0000, Alex Page wrote:
I haven't used PostgreSQL for nearly a year now, and when I was last
using it there was some discussion on versioning control being
introduced as a feature. Basically, for some data, I'd like to keep
track of who changed it, when, and to what. I know I could include
multiple values in the schema, and have a view to pull out the most
recent, but I was wondering if there was something more automatic that
is a feature of PostgreSQL itself. I've looked around the documentation
with no success. Does anybody know if this is possible?

Alex
--
Mail: Alex Page <al*******@cancer.org.uk>
Real: Systems/Network Assistant, Epidemiology Unit, Oxford
Tel: 01865 302 223 (external) / 223 (internal)
PGP: 8868 21D7 3D35 DD77 9D06 BF0A 0746 2DE6 55EA 367E


---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to ma*******@postgresql.org)

Nov 12 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Sandman | last post by:
Hello - I suppose this group could be suitable for my questions... I am interested in a versioning system that works good for web authoring. I don't know what differences web development might...
3
by: Alex Stevens | last post by:
Hi All, I'm trying to get around a problem that I'm having with versioning. I have a DLL called Control.dll and it is at version 1.0. I choose to inherit from one of the controls, and build my...
2
by: PatrickSA | last post by:
Hi, Am new to web services, so apologies for the basic nature of the question - and apologies in advance if this is the wrong newsgroup. We're building a new web service and I'm looking around...
5
by: Tamir Khason | last post by:
Hi, all Two classes Foo1 and Foo2 Foo1 uses Foo2 as reference Both are strong name signed with the same key pair I'm performing Binary Serialization of object inside Foo2 from Foo1 as following:...
0
by: Ahmed Qurashi | last post by:
Hey all, I am wondering if there is a simple, elegant solution for Versioning Control in VS2005 *Express* Edition? Any input is most appreciated... -- Ahmed Qurashi ..NET Architect
1
by: zacks | last post by:
Am using VB.NET 2005. I have a solution that has four projects. Two projects are standard windows applications. One is a class library that is shared by the two windows application projects, it...
4
by: =?Utf-8?B?U2NvdHQ=?= | last post by:
I have seen many articles describing why versioning web services are important. I have a scenario that I would like to propose to seek a solution. I have a publicly consumable web service. Two...
4
by: giddy | last post by:
hi , Could someone please educate me about the versioning system in .NET. Correct me if i'm wrong , the version is composed of 4 Int32 numbers : major.minor.build.revision. And if i do this :...
3
by: Pres | last post by:
Noticed that several windows API's take a size parameter. i.e. one of the members of the struct is dwSize which is supposed to be initialized by client code, by taking the sizeof of the struct. ...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
0
muto222
php
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.