NoSQL: a non-SQL RDBMS
Recent Pages

Commands at a glance
edittable: trivial tabl ...
indextable: generate ta ...
NoSQL Utilities
Text Formatting Rules
Site SandBox
Change Management
Wiki Editor's How-To
Site Terms of Use
Site Copyright

Links

NoSQL Home
Table of Contents
Wiki Editor's How-To
Text Formatting Rules
Wiki SandBox

www.strozzi.it on Twitter


GeoURL

Google Ads

Please Support NoSQL !


Session

User ID
Password



Campaigns

stopsoftwarepatents.eu petition banner

Operators

The NoSQL system comprises a set of programs called operators.

Each operator is a separate program module that performs a unique function on the data, usually reading from STDIN and writing the result to STDOUT. By contrast, NoSQL utilities are programs that usually do not read from STDIN not write to STDOUT. An example is the edittable utility. Operators and utilities are hereafter collectively referred to as programs.

At one time NoSQL used to have extra operators, like body, see, etc. At some point I realized how useless they were, so I dropped them. After all they were just calls to ordinary UNIX utilities. There was really no point in providing special operators just for them, as their function could be done by applying those system commands directly. For instance:

body
Same as: tail +2 < table
see
Same as: cat -vte < table

Once again, this shows how powerful the UNIX operating system already is of its own, and how handy it can be for an additional package like NoSQL to be able to tap into this power without having to reinvent the wheel.

Invoking NoSQL operators is straightforward:

         program [options] [arguments]

where program is the name of the desired NoSQL program. Make sure the directory containing the NoSQL executables, usually /usr/local/nosql/bin/, is in your PATH.

Most programs take a --help switch that will show the available command line options and arguments and provide some usage notes.

As an alternative to extending your shell PATH you may prefer to use the nosql command-line wrapper, whereby every NoSQL program can be invoked by typing

         nosql program [options] [arguments]

and likewise for a pipeline of NoSQL operators:

         nosql operator1 | nosql operator2 | ...

This comes at the price of an extra exec() system call for each operator in the pipeline, an irrelevant penalty when using NoSQL at the command-line, but somewhat more significant if NoSQL is used to back a busy web server or other heavily loaded system. Using the "nosql" shell wrapper instead of adding NoSQL directly to your path may be a necessity if you also need to use other system utilities which names conflict with those of certain NoSQL operators. For instance, column is both the "historical" name of NoSQL's getcolumn operator and a standard shell utility found on many UNIX boxes. So, if you need to use both the "column" shell utility and NoSQL's "column" operator you need to decide whether to put NoSQL first in your PATH, and thus running NoSQL's "column" whenever you type "column" at the command-line, or rather put it last in your PATH, thus loosing the ability to call NoSQL's getcolumn with its historical name of "column". If that's the case, then using the "nosql" shell wrapper may be preferable than placing the NoSQL executables in your PATH. Another property of the "nosql" wrapper is that it allows the use of shorthands for certainly NoSQL programs, such as:

ShorthandProgram
colgetcolumn
editedittable
joinjointable
rmcolnotcolumn
sortsorttable

Such shorthands predates also on the corresponding commands of the orginal Hobbs' RDB system.

Sample use cases for every NoSQL operator will eventually be provided in section Operators.


Trackbacks (1) | New trackback | Comments (0) | Print

This Web Site is Copyright © 2007,2008,2009,2010 Carlo Strozzi, Some Rights Reserved
site map | recent changes | terms of use