
	PQL - Developemnt Log
	=====================
	by Bjoern Lemke

Fr, 16.09.94
------------
- got closer with the lex/yacc tools
- written down the lexical defintions for PQL derived from O'Reilly's  
  "lex and yacc" (pql.l)
- written down the PQL grammer (pql.y) also derived from "lex and yacc"
  and eliminated some s/r and r/r conflicts

Sa, 17.09.94
------------
- started with the implementation of the semantic actions
  (syntax tree build up)

Mo, 19.09.94
------------
- finished syntax tree build up
- rewritten some yacc-productions after ther occur new s/r and r/r conflicts

Tu, 20.09.94
------------
- implementation of join (basically works)

We, 21.09.94
------------
- implementation of where clause

Th, 22.09.94
------------
- implementation of projection (no "select *")
- implementaion of insert operation

Fr, 23.09.94
------------
-implementation of update, delete, invoke, "select *"

Mo, 26.09.94
------------
- integrated readline

Tu, 27.09.94
------------
- join redesign for optimized join
- implementation of optimized join part I (join buffer ops)

We, 28.09.94
------------
- implementation of optimized join part II (DNF, De Morgan, other)

Th, 29.09.94
------------
- implementation of optimized join part III (debugging)

Fr, 30.09.94
------------
- optimized join works !!!

Sa, 01.10.94
------------
- debugging
- written down pql_clean.c

So, 02.10.94
------------
- fixed the damned rec_len (+2) bug
 
Mo, 03.10.94
------------
- implemented "select *" for optimized join
- fixed some other bugs (table alias bug)
- implemented file input

Tu, 04.10.94
------------
- implemented "select a,b,..." for optimized join
- fixed the rec_len boundary bug *grumpf*

We, 05.10.94
------------
- implementation of agregate functions
- bugfixing
- source cleanup 

Th, 06.10.94
------------
- implementation of group clause

Fr, 07.10.94
------------
- added "like" operation 
- added type T_DOUBLE
- fixed mbase close-lockfile bug

Tu, 11.10.94
------------
- added stin mode

*here comes a pause, because there was a lot of other work to do .....*

Mo, 24.10.94
------------
- implementation of subquery part I

Tu, 25.10.94
------------
- implementation of subquery part II

We, 26.10.94
------------
- implementation of subquery part III

Th, 27.10.94
------------
- implementation of subquery part IV

Fr, 28.10.94
------------
- added the commmand line argument feature for PQL-scripts
- hacked some dokumentation out of the brain

Fr, 16.12.94
------------
- in the meantime, LOTS of bugs have been fixed and some new features
  have been added. Here are some highligths:
		
	- heavy fix of the nested query feature
	- support of a PQL environment, several environment variables may
	  be set by the user
	- further bug fixes have been fixed

  Today Version 0.6 will be released, the last version of PQL
  with the MBase Database engine. A new engine already has been written 
  and must be tested and integrated into the PQL package.

Mo, 19-12-94
------------
- hacked some structure stuff for NULL-value handling (pql_insert, 
  pql_print, pql_query) 
- added create, extend and shrink function to PQL (Subset II)


Tue, 20-12-94
-------------
- addition of the pql_create and pql_vars module.
- semantic operation of create, extend and shrink
- some code cleanup
- first testings (create , invoke, insert)

Wed, 21-12-94
-------------
- general bug fixing (puuuuhh) including memory leaks
  especially the f... NULL values
  now this works with the new engine:

	* create
	* invoke
	* select (agregation and grouping still untestet)
	* insert
	* update
	* delete

- some yacc rules rewritten for proper return values

Thu, 22-12-94
-------------
- as a german slogan says: "Im Detail steckt der Teufel"
  for this project , this is true.
  There was an ugly bug in the storejoin function that causes
  the whole thing not to work (reclen was colculated wrong :( ) 
  Friday morning after waking up, someone told me ...

Fri, 23-12-94
-------------
- still fixing some bugs, also bugs that have been shipped with
  earlier releases.
  Without NULL values, the new version works in an appropriate way.
  (agregation and grouping also tested)

Wed, 28-12-94
-------------
- finished integration of the new "power" engine
  after "several" redesigns, the new engine now should
  work in an appropriate way.
- a lot of heavy work is fown into this new engine, but you
  are anywhere allowed to flame on it.
- the PQL language has been extended to support the transaction 
  oriented way of the new engine. The new supported operations
  are: begin, commit, reset.
  (yes I know, the documentation must be done URGENTLY)
- hope to release Version 0.7 still this year ...

Thu, 29-12-94
-------------
- a bug fix in eng.c (talist should be set up for readers too ..)
- adding locking via flock
- code cleanup like proper prototyping, importing, skipping old stuff...
- working on the man page 
- reached ALPHA status

Fri, 30-12-94
-------------
- tests for the  whole transaction stuff lead to
  fixes for the table hash function
  fixes for exec_delete

Sat, 07-01-95
------------- 
- update-operation fix 

Mon, 09-01-95
-------------
- adding nfield environment var and stats-operation
- fixed the ta-field bug (in eng_begin the field was not set up
  properly)

Tue, 10-01-95
-------------
- negative ints, floats, double are added in pql_scan.l
- another fix on the update operation was made: The NULL value bitmap
  was set up with wrong values during update.
- the selfjoin bug has been fixed. just a missing strcmp for talias.

Wed, 11-01-95
-------------
- fixed a stupid bug in the stats-operation involving some code cleanup
  in eng.c
- activated the count(*) operator 
- NULL value comparison corrected (.. where a = NULL ... ) 

Fri, 20-01-95
-------------
- made a little change on aborting a transaction (any failure on a stdin/filein job 
  leads to an abort of the transaction)
- releasing pql-0.7prebeta

Sun, 19-02-95
-------------
- some heavy bugs have been fixed:
  - the DNF evaluation did not work correctly
  - unknown attributes have not been detected in some cases
- some new features have been added:
  - transactions can be aborted explicitly now
  - some fundamental casts are supported now (long -> float)
  - all available tables can be listed using the 'list'-command
  - sorting has been implemented, but is still untested.
  - if all the new features work obviously correctly, 0.8 will be released

Tue, 21-02-95
-------------
- fixed another ugly bug in pql_query.c:
  while evaluating all predicates of the where condition, not all 
  necessary tables are added ( the if-first problem )
- fixed another (follow) bug in pql_query.c:
  treated tables are not checked correctly (addattrtbl) and are added
  multiple times -> leads to incorrect tuple retrievement in next_join

Wed, 22-02-95
-------------
- fixed a bug regarding the eng_extend function in eng.c
  (null-bitmask has not been copied correctly)
- with the DNF evaluation fix, the join optimization was lost *GNARF*
  (since this fix, heavy joins have been performed very poor)
  the complete structure of new_join (pql_query) has been changed in 
  a way of reactivating the optimized join.
  Now heavy joins are performed as fast as usual. Yeah.
- tested and fixed the tuple ordering (offset + jbuf have not been
  calculated correctly in compare_tuple and swop_tuple)

Thr, 23-02-95
-------------
- added the distinct feature for distinct tuple selection.
  The tuple print routines(print_all, print_projection) have been modified
  to filter clone tuples. 

Fri, 24-02-95
-------------
- fixed a locking problem: readers got no lock so I introduced
  shared locks for the synchronization of readers.
- eliminated some memory leaks in eng.c (eng_fetch)
- fixed the initialization of the distinct flag in pql_parse.y
- a PQL testscript is written

Sat, 25-02-95
-------------
- added the missing predicate features PRED_IN_ELIST, PRED_ANY_QUERY
  PRED_ALL_QUERY plus some negation stuff.
- fixed another bug in addattrtbl (pql_query.c) reagarding
  the check for added tables (in the special case of specifying
  attributes of the same table in a single predicate, the table
  has been added multiple times)
- added automatic detection of INTERACTIVE/STDINMODE
  (no -i option must be specified anymore. Thanks to Rodney)

Wed, 01-03-95
-------------
- thanks to Mr. MSOBERDO, the flex bug has been fixed. Now PQL should
  be able to build by using the flex scanner generator.
- Furthermore, the PQL grammer has been modified supporting now the
  count function in combination with the distinct operator and with
  an expression as argument.
- cleanup of some definitions (MAXSTRINGLEN, MAXSTRLEN, MAXNAMELEN)
- released Version 0.8

Thr, 02-03-95
-------------
- fixed the bmbase bug for subqueries (some lower level selection
  attribute have not been setup)
- changed some syntax stuff regarding negations
- fixed treat_neg (recursive calls were missing)
- fixed the new arised select * bug for joins > 2 tables

Fri, 03-03-95
-------------
- fixed the new arised double-not-exists bug (predicates have not
  been reset properly)
- fixed some memory bugs that came up with Linux (cleanup of sqbuf and joinbuf)
- restriction of ambigious tables added 
- bmbase bug fixed (must be set up in new_join and comp_join)
- norm_jbuf fixed

Sat, 04-03-95
-------------
- if statement in the wrong line in print_all (a line switch fixed the problem)
- PRED_N_LIKE was unknown in addtables
- treat_neg must be called recursive out of the negate condition
- append some locking stuff to eng.c (eng_reset)