Skip to content

Hierarchical data (tree) implementation in SQL

Notifications You must be signed in to change notification settings

mlawren/sqltree

Repository files navigation

NAME
    sqltree - hierarchical data (tree) implementation in SQL

VERSION
    0.06 (yyyy-mm-dd)

SYNOPSIS
      sqltree DRIVER TABLE [OPTIONS]

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
    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 postfixed with the value of
        the "--postfix" option.

OPTIONS
    --id, -i STR
        The primary key of the source table holding the hierarchical
        data. Defaults to "id".

    --no-comments, -C
        Do not include descriptive comments.

    --drop, -d
        Include DROP TABLE/TRIGGER statements.

    --name, -n STR
        When "--path" is used this option identifies the source column
        from which path names will be built. Defaults to "name".

    --parent_id, -I STR
        The parent column of the source table holding the hierarchical
        data. Defaults to "parent_id".

    --path, -p STR
        The destination column into which the tree path will be
        automatically calculated. This column would usually be defined
        as TEXT or VARCHAR, and should be UNIQUE.

    --postfix, -f STR
        The string postfixed to "TABLE" to name the additional table.
        Defaults to "_tree".

    --separator, -s CHAR
        The string that separates components in the "--path" column.
        Defaults to "/".

    --type, -t TYPE
        The SQL column type of the source table primary key and parent
        columns. Defaults to "INTEGER".

SEE ALSO
    SQL::Tree(3pm)

AUTHOR
    Mark Lawrence <nomad@null.net>

COPYRIGHT AND LICENSE
    Copyright (C) 2010-2021 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.

About

Hierarchical data (tree) implementation in SQL

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages