

	PQL Version 0.8
	---------------
	by Bjoern Lemke

	(C)opyright by Lemke & Fuerst  1995
	All stuff comes under the GNU Copyleft

----------------------------------------------------------------------
This package contains the full implementation of the PQL-Database system
All of the stuff comes without any warranty as is shipped "as it is".
So you may feel free to modify and improve the code as you like. If you 
think you modifications can be useful for other people working with PQL,
please make them public.

The development of the system has begun in the middle of September 1994 
and the is still in progress.
PQL is an attempt to perform a quick and useful implementation
of a database system that includes the most important features of SQL.

In the following I would like to answer some questions that may appear while
reading this file.

What does PQL mean?
-------------------
PQL stands for "Plain Query Language" which means a subset of the SQL database
query language. Some of the SQL language constructs have been modified, because
the original ones seem to me too complicated. Other reasons for my 
modifications are motivated by PQL grammer reasons to avoid ugly conflicts.
None of the modifications do influence the functionality of the query
language as provided by a standard SQL-Interpreter, so you should forgive me
for the freedom of these changes. 

The PQL-interpreter has been developed on a standard UNIX-System (SunOS 4.1.1)
but should work on every UNIX system, that fits the described requirements.

How could find PQL useful ?
---------------------------
If you would like to play with a database interpreter (perhaps you are a 
student of computer science ...) this is the right package for you.
Or if you are planning to migrate some of your data stored in 
plain files to a private database, you also will find this package useful.
You should be familiar with the a standard UNIX operation system, the
standard UNIX-Tools and the standard installation procedures.
The installation procedure of the interpreter is NOT very comfortable. 


Who should not use this package?
--------------------------------
People who like to use PQL for commercial use are warned.
The package is still nearly untested and may be result in corrupted
or lost user data. Especially if you would like to use the interpreter 
in terminal mode for multiple users, you should be warned. The unserlying
database supports locking of relations and tuples, but this is completely
untested in combination with the interpreter. During the development, I 
detected a bug in the database engine, that I could fix, but ... you are
warned.

What is shipped within this package?
------------------------------------
The PQL package includes the complete source of the PQL-database system and
some documentation about it, including a man page.

What else do you need to run PQL?
---------------------------------
To build up a running PQL-interpreter, you also need the following tools:
(all of them are available via anonymous ftp on public ftp-servers)

	- lex (a lexical analyser, should be available on a standard Unix 
	       system)
	- yacc (a compiler generator, also should be available)
	- GDBM, the the GNU low level database engine	 
	- readline, the GNU command line tool

What platforms are supported ?
------------------------------

PQL has been developed on a standard UNIX system (SunOS 4.1.1).
Furthermore PQL has been tested on AIX and LINUX.
No system specific features are used, so it should be easy to install 
teh package on a different Unix System.


How do I install?
-----------------
Here are the installation steps you should take:

1. Getting all the required tools and install them on the local system.
2. Edit src/Makefile to define the location of the required Tool-Headers and 
   Libs.
3. Have a look at the header file pql_config.h. Here are defined some trigger
   values, that will influence the behaviour of the interpreter.
4. run "make" in the src directory.

If all went good, the interpreter should be available now as "pql" in the
src subdir. If you do not like to make any debugging, you may strip the binary
to shrink the size of the program. 

If you have reached this stage, you have a running PQL interpreter.

How do I use the interpreter?
-----------------------------

After you have performed a succesful installation, of course you want to use
it. Go to the directory "test". There is a script called pqltest. 
You can test your interpreter using this script. Simply type

	$ pqltest

from your shell and some basic PQL tests will be performed.

To get familiar with the interpreter, please read the manpage pql.1 in ../man 
for further information.


What are the difference between SQL and PQL in detail ?
-------------------------------------------------------
Here is a list of what are the main differences and limitiations of PQL.

Main differences:
- use of lower case keywords
- modified group clause (see the syntax table)
- modified update operation (see syntax table)

Main limits:
- still no support for views
- limited predicate rules (some missing subquery constructs)
- limited support of datatypes (just T_CHAR, T_DOUBLE, T_FLOAT, T_LONG)

If you find PQL useful
----------------------
If you have tested PQL, please let me know about your experiences. 
I know there are still a lot of known and unknown bugs
and if I'll find time to work on it, I'll do. 

And now have fun with PQL!

----------------------------------------------------------------------
Bug reports, fixes, flames and advices please send to 

	Lemke & Fuerst GbR
	Bjoern Lemke
	Kleinknechtstr. 35
	70567 Stuttgart
	Email: lemke@LF.net
	Phone: +49 711 / 7189647
	Fax: +49 711 / 7189648

