Metadata-Version: 2.1
Name: tdtools
Version: 0.6.1
Summary: A Collection of assorted Teradata Tools
Home-page: https://bitbucket.org/padhia/tdtools
Author: Paresh Adhia
License: GPL
Keywords: teradata
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: End Users/Desktop
Classifier: Topic :: Database
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=3.4
Requires-Dist: tdtypes
Requires-Dist: yappt

tdtools
=======

.. image:: https://img.shields.io/pypi/v/tdtools.svg
     :target: https://pypi.python.org/pypi/tdtools
     :alt: PyPi
.. image:: https://img.shields.io/badge/License-GPL%20-blue.svg
     :target: http://www.gnu.org/licenses/gpl
     :alt: License
.. image:: https://img.shields.io/pypi/pyversions/tdtools.svg
     :alt: Python3.4+

`tdtools <https://bitbucket.org/padhia/tdtools>`_ is a collection of command-line tools and utilities to explore various Teradata related information that normallt would write custom SQL queries. Although these tools are primarily targeted towards Teradata power users and DBAs, casual users may find them useful.

*NOTES:*

- I originally developed these tools for my personal use. I am making these open-source in the hope that someone else might find them useful. These tools do not come with any expressed or implied warranty.
- These tools are not endorsed by `Teradata Inc <http://www.teradata.com/>`_.

Requirements
------------

Latest version of *Python3* series is recommended, however Python 3.6 and above should work.

**tdtools** depends on `tdtypes <https://pypi.python.org/pypi/tdtypes/>`_ (for Teradata metadata information) and `yappt <https://pypi.python.org/pypi/yappt/>`_ (for formatting output). These packages and their dependencies will be downloaded and installed automatically if you use the standard python installer ``pip`` to install **tdtools**.

Installation
------------

Use Python's ``pip`` utility to install ``tdtools``.

::

  $ pip install tdtools

Or

::

  C:\>python -m pip install tdtools

Configuration
-------------

No configuration is required except setting up the needed ODBC connections. All tools (listed below) from this package rely on ``tdtypes`` package for establishing connection to Teradata. Thus, the simplest way to invoke any tool is by supplying a valid ``ODBC`` connection string to ``--tdconn`` option. Look at ``tdtypes`` documentation if more flexibility is needed; for example, using Teradata REST interface instead of ODBC.

Tools
-----

All tools are command-line utilities that are generated automatically and installed (if installed using *pip*).

Following  is a brief description of each tool. Use ``--help`` command-line option to show detailed description of all supported options.

=============   =======
Command         Purpose
=============   =======
``dbtree``      View Teradata database hierarchy.
``vwtree``      View (or save) Teradata View hierarchy.
``tptload``     Generate (and optionally run) TPT load script.
``helpstats``   View current statistics for any Teradata objects.
``tdrights``    View Teradata permissions on objects or to users.
=============   =======

All **show\*** utilities generate DDLs for different types of Teradata objects.

=============   =======
Command         Objects
=============   =======
``showdb``      Database or user
``showgrant``   Grants to user/role
``showprof``    Profile
``showrole``    Role
``showstats``   Statistics definition
``showtvm``     Wrapper for Teradata ``SHOW <object>`` command
``showzone``    Zone
=============   =======

All **ls\*** utilities print Teradata object information from DBC tables. Currently supported commands are:

========   =======
Command    Objects
========   =======
``lstb``   Tables
``lsvw``   Views
``lsmc``   Macros
``lspr``   Stored Procedures
``lsfn``   Functions
``lsji``   Join Indexes
``lsdb``   Databases
``lsus``   Users
``lspf``   Profiles
========   =======

Known Issues
------------

#. When using ``teradata.tdrest`` as method for database connection, certain ``show*`` commands will not work correctly. This is due to an upstream `defect <https://github.com/Teradata/PyTd/issues/52>`_. Note that this error does not occur when using ODBC connections.
#. There was a defect in certain earlier releases of Teradata Database that caused views based on NOPI tables to be not detected correctly. A patch is available from Teradata that fixes this defect.

Support
-------

If you encounter an issue, report it using `issue tracker <https://bitbucket.org/padhia/tdtools/issues?status=new&status=open>`_. I'll try to provide a fix as soon as I can. If you already have a fix, send me a pull request.

Contributions
-------------

Feel free to fork this repository and enhance it in a way you see fit. If you feel your changes will benefit more people, send me a pull request.


