The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

sqltree - hierarchical data (tree) implementation in SQL

SYNOPSIS

  sqltree [DRIVER] [TABLE] [PK] [PARENT] [TYPE]

VERSION

0.0.5_2 (2013-06-12)

DESCRIPTION

sqltree generates the SQL for a herarchical data (tree) implementation using triggers, as described here:

    http://www.depesz.com/index.php/2008/04/11/my-take-on-trees-in-sql/

This implementation relies on a previously-defined table containing:

  • a single primary key column

  • a parent column that references the primary key

  • a column to hold path data [optional]

Several triggers are added to this previously-defined table, which update a new table holding in-depth tree information.

Output from sqltree can usually be piped directly to the "sqlite3" or "psql" command line tools.

ARGUMENTS

All of these argument will be prompted for if they are not provided on the command line.

DRIVER

Must be 'SQLite' or 'Pg'. Patches for other database systems are welcome.

TABLE

The name of the (existing) table holding the hierarchical data. The additional tree table will be called "table_tree".

PK

The primary key column of the (existing) table holding the hierarchical data.

PARENT

The parent column of the (existing) table holding the hierarchical data.

TYPE

The SQL column type of the (existing) primary key and parent columns.

OPTIONS

--path

An existing column in TABLE into which the tree path will be automatically calculated. This column should be defined as TEXT or VARCHAR, and should be UNIQUE.

--path-from

Required when --path is given to identify the existing column in TABLE from which path names will be built.

--order

[NOT IMPLEMENTED] An existing column in TABLE containing the object ordering information.

SEE ALSO

App::sqltree(3p)

AUTHOR

Mark Lawrence <nomad@null.net>

COPYRIGHT AND LICENSE

Copyright (C) 2010,2013 Mark Lawrence <nomad@null.net>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.