On Sun, Apr 28, 2013 at 1:06 AM, Atri Sharma <atri.j...@gmail.com> wrote: > Inspired by the awesome work done by Oleg sir in HStore, I have been thinking > about making a graph data type as an extension in postgres. > > I have been reading about graph databases and how storing data in graphs can > lead to some really awesome functionalities such as social network analysis, > recommender systems, network management. > > Essentially, connected data can be represented effectively as a single data > item, which can be used for further analysis. > > This is in line with my agenda of adding more analytics functionalities in > postgres. > > I have been thinking about designing the data type as adjacency sets, > associating the adjacency list for each node as a value with node identifier > as the key. > > This should be able to build over HStore, using HStore to associate adjacency > list with its node identifier. > > The format could be: > > <node identifier> => <adjacency list> <node identifier> => <adjacency list> > '\0' > > So, > > "node1" => "node2/node3/node4","node2" => "node1/node5/node6","node3" => > "node1/node4/node5" '\0' > > This can be for unweighted graphs, we can add support for weighted graphs as > well. > > Thoughts/comments/advice please?
It's probably pretty easy to add this, but I think the question is what would make it better than storing the same representation in a text field. Obviously you get validation that the input is in the correct format, but you could do that with a CHECK constraint, too, or otherwise handle it in the application. So I think the really interesting question is: what operations would you support on this data type? One of the problems you're likely to run into if you store the whole graph as a single object is that it may make many of the things you want to do with it not very efficient. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers