HTSQL 2.2.1
Query language for the accidental programmer
Latest Version: 2.3.0
HTSQL ("Hyper Text Structured Query Language") is a high-level query language for relational databases. The target audience for HTSQL is the accidental programmer -- one who is not a SQL expert, yet needs a usable, comprehensive query tool for data access and reporting.
HTSQL is also a web service which takes a request via HTTP, translates it into a SQL query, executes the query against a relational database, and returns the results in a format requested by the user agent (JSON, CSV, HTML, etc.).
Use of HTSQL with open source databases (PostgreSQL, MySQL, SQLite) is royalty free under BSD-style conditions. Use of HTSQL with proprietary database systems (Oracle, Microsoft SQL) requires a commercial license. See LICENSE for details.
For installation instructions, see INSTALL. For list of new features in this release, see NEWS. HTSQL documentation is in the doc directory.
- http://htsql.org/
- The HTSQL homepage
- http://htsql.org/doc/introduction.html
- Get taste of HTSQL
- http://htsql.org/doc/tutorial.html
- The HTSQL tutorial
- http://htsql.org/doc/embed.html
- Using HTSQL in Python
- http://bitbucket.org/prometheus/htsql
- HTSQL source code
- irc://irc.freenode.net#htsql
- IRC chat in #htsql on freenode
- http://lists.htsql.org/mailman/listinfo/htsql-users
- The mailing list for users of HTSQL
HTSQL is copyright by Prometheus Research, LLC. HTSQL is written by Clark C. Evans <cce@clarkevans.com> and Kirill Simonov <xi@resolvent.net>.
Generous support for HTSQL was provided by the Simons Foundation. This material is also based upon work supported by the National Science Foundation under Grant #0944460.
Installation Instructions
Binary packages for various platforms are available at:
http://htsql.org/download.html
To install HTSQL from source, download the latest source package from:
http://pypi.python.org/pypi/HTSQL/
Unpack the archive and run:
# make install
HTSQL requires database adapters for each supported database backend. To install all the adapters, run:
# make install-deps
Installing HTSQL creates a htsql-ctl script. For general help and a list of commands, run:
$ htsql-ctl help
To start a command-line HTSQL shell, run:
$ htsql-ctl shell DBURI
To start an HTTP server running HTSQL, run:
$ htsql-ctl server DBURI [HOST [PORT]]
Here, DBURI specifies how to connect to the database and must have the form:
ENGINE://USER:PASS@HOST:PORT/DATABASE
See also:
- http://htsql.org/doc/admin/
- HTSQL Administration Guide
List of Changes
2.2.1 (2011-12-15)
- Updated API for making HTSQL requests from Python application.
- Improved error messages; added suggestions for lookup errors.
- tweak.override: added support for global functions, parameterized calculations.
2.2.0 rc 1 (2011-11-22)
- Added @ scope reset operator.
- Omit schemas when serializing table names to SQL.
- Validate configuration on startup.
- Added tweak.override: restricting access to specific tables and columns, adding database constraints, changing table, column and link labels, defining calculated fields.
- Added tweak.django: integration with Django framework.
- tweak.meta: improved the meta schema.
- tweak.cors: added origin parameter.
- tweak.shell: autocompletion by Ctrl-Space, improved layout.
- htsql-ctl shell: Tab-completion for commands and identifiers.
- Refactored database introspection and model graph.
- Refactored to use Unicode strings internally.
- Various build improvements: now building source, DEB and RPM packages.
- Updated documentation on installing, using and configuring HTSQL.
- Documentation on deploying on Heroku cloud platform.
- Added regression tests for addons.
2.2.0 beta 2 (2011-09-22)
- Rebuilt source packages to include missing resource files.
2.2.0 beta 1 (2011-09-20)
- Fixed silent data truncation bug on invalid values; users of SQLite are adviced to upgrade.
- Added support for loading application configuration from a file; option -C FILE.
- Refactored plugin architecture; added support for plugin parameters.
- Added SQLAlchemy adapter.
- Added support for statement-like functions; converted formatters to statements.
- Added plugin tweak.meta: database metadata exposed as a database.
- Added plugin tweak.shell: a simple web-based HTSQL editor.
- Removed plugin tweak.schema: functionality is implemented in the core.
2.1.1 final (2011-08-30)
- General code cleanup and refactoring.
- Improved emitted SQL for projections and aggregates.
- Changed operator precedence to avoid parentheses around filtering and projection operators.
- Added a test data generator for HTSQL regression tests (thank to Yuri Yerokhin).
- Added support for hierarchical headers for /:txt and /:html formatters.
- Updated documentation.
2.1.0 rc 1 (2011-06-21)
- Added /:tsv formatter that generates output in tab-separated format (thank to Andrey Popp).
- A lot of updates to the tutorial, the reference and other documentation.
- Minor code updates and bug fixes.
2.1.0 beta 3 (2011-05-13)
- Added a fiber linking operator: {x,y} -> T{x,y}.
- Provide named attributes for kernel expressions and the complement link in a quotient scope: (program^degree) generates attribute degree as an alias for *1 and program as an alias for ^.
- Added in-selector definitions: {attr := expr} is de-sugared to define(attr := expr){attr}.
- Added $reference syntax for inter-scope references.
- Added flow method fork(): clone the last node in the flow, e.g. /course?credits=max(fork().credits).
- Added flow methods .filter() and .select() as aliases to ? and {} operators.
- Added method distinct(): distinct(table{kernel}) produces a flow of unique values of kernel as it runs over table; it is equivalent to table^kernel. distinct() and ^ operators now filter out NULL values in the kernel.
- Changed semantics of . and {} expressions: specifier (.) now allows arbitrary expressions on both sides, selector ({}) now sets the output columns in the current scope.
- Added syntax *N, where N is an integer literal, to get the value of the N-th output column.
- Added addon tweak.cors: append Access-Control-Allow-Origin: * to every HTTP response.
- Added addon tweak.pgsql.inet: basic manipulations on values of INET data type.
- Added addon tweak.pgsql.view: determine foreign key relationships for views in Postgresql.
- Use search_path or its analogues to choose a table when the table name is ambiguous.
- Optimized introspection for Oracle.
- Added option -p to ask for a password on startup.
- Added shell command run filename.htsql to load and execute an HTSQL query from a file.
- Many other fixes and documentation updates.
2.1.0 beta 2 (2011-03-29)
- Added support for datetime and time date types.
- Added support for calculated attributes, define() and where() macros.
- Added addon tweak.pgsql.catalog: configure primary and foreign keys for pg_catalog.* tables.
- Added addon tweak.schema: allow addressing a table in a specified schema as <schema>_<table> identifier.
- Added addon tweak.autolimit: add LIMIT clause to each query.
- Added addon tweak.pgsql.timeout: set statement timeout for each query.
- Added Jinja integration demo.
- Many minor fixes and updates.
2.1.0 beta 1 (2011-03-08)
- Ported to MySQL, Oracle and MS SQL Server.
- Added support for projections (base^kernel).
2.0.1 final (2011-02-01)
- Merged /:json and /:jsonex formatters; use /:jsonex layout to avoid CSRF issues.
- Documentation updates.
2.0.0 rc 1 (2011-01-21)
- HTRAF demo is promoted to a standalone project; see http://bitbucket.org/prometheus/htraf.
- Added /:jsonex format: JSON with extra metadata.
- Documentation updates.
2.0.0 beta 5 (2010-12-14)
- Completed the SQLite backend.
- Completed the standard library.
2.0.0 beta 4 (2010-12-05)
- Refactored peep-hole optimization of the frame tree and SQL serialization; refined the generated SQL.
- Refactored the internal API for adding functions.
- Added new (experimental) syntax for infix function call.
- Added an "Examples" section to the documentation.
- Fixed compatibility with Python 2.5.
- Many minor bugfixes, documentation updates, etc.
2.0.0 beta 3 (2010-11-09)
- Refactored the translator from the term tree to the frame tree; added a new translation step to collapse nested frames and reduce SQL expressions.
- Added the HTRAF demo: use HTSQL with client-side javascript to define complex dashboards.
- Added the SSI demo: using HTSQL for web without giving direct access to the database.
- Updated the tutorial, minor bugfixes, regression test updates, etc.
2.0.0 beta 2 (2010-10-01)
- Refactored the translator from the expression graph to the term tree.
- Added Content-Disposition header to :json and :csv renderers.
- Merged the tutorial to the repository.
2.0.0 beta 1 (2010-09-21)
- Initial beta release.
- PostgreSQL and SQLite backends are (mostly) supported, the former more than the latter.
- The SQL translator needs more work, in particular, the term tree, the frame structure and the serializer.
- Lots of functions are either not implemented or missing a proper serializer, especially in the SQLite backend.
- Other areas which need more work before the final release: rendering, introspection, regression tests and documentation.
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| HTSQL-2.2.1.tar.gz (md5, pgp) | Source | 2011-12-15 | 683KB | 469 | |
| HTSQL-2.2.1.zip (md5, pgp) | Source | 2011-12-15 | 797KB | 238 | |
- Author: Clark C. Evans and Kirill Simonov; Prometheus Research, LLC
- Home Page: http://htsql.org/
- Keywords: sql http uri relational database
- License: Free To Use But Restricted
- Platform: Any
-
Categories
- Development Status :: 4 - Beta
- Environment :: Console
- Environment :: Web Environment
- Intended Audience :: Developers
- Intended Audience :: Information Technology
- Intended Audience :: Science/Research
- License :: Free To Use But Restricted
- License :: Other/Proprietary License
- Programming Language :: Python
- Programming Language :: Python :: 2.5
- Programming Language :: Python :: 2.6
- Programming Language :: Python :: 2.7
- Programming Language :: SQL
- Topic :: Database :: Front-Ends
- Topic :: Internet :: WWW/HTTP :: WSGI
- Topic :: Software Development :: Libraries
- Package Index Owner: xitology, cce
- DOAP record: HTSQL-2.2.1.xml
