Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
jonahharris committed Jan 28, 2018
0 parents commit 95fab56
Show file tree
Hide file tree
Showing 106 changed files with 20,755 additions and 0 deletions.
21 changes: 21 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Release 1.11.0 (Sun Oct 3 1999)

1. Cleanup release based on 1.10.3. (See ``ChangeLog''). Many, many
problems were fixed:
- use of implicit int in declarations;
- undeclared functions being called---many headers added;
- parameters not being converted to the correct type
if compiling without ANSI C prototypes;
- broken configure script not making correct decisions---for example
disabling prototypes even though GCC is being used;
- preference given to GNU tools, like bison over yacc;
- tools falling out of main() without returning exit status;
- use of invalid void main() construct;
- mismatched types in printf() calls;
2. Fixed bug in tyexport and tyimport programs caused by
calling fclose on the wrong FILE * pointer. These tools were
totally broken because of this and wouldn't export or import;
they would crash after parsing the import or export spec.
3. Added support for POSIX fcntl() locking, which is used in
preference to lockf(). The lockf() emulation on Linux using flock()
is gone.
84 changes: 84 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
This is Thomas B. Pedersen's original Changelog up to version 1.10.3. The
CHANGES file summarized changes done by Kaz Kylheku.
-------------------------------------------------------------------------------
Version 1.10.3

o A calloc() call in ddlp.c had only one argument.

Version 1.10.2

o d_getsequence() would generate a SIGSEGV if the database was
closed and opened in between calls.

Version 1.10.1

o Apparently, there was still a problem with variable length records.

Version 1,10

o After moving global variables to the typhoon structure, foreign keys
didn't work properly.
o When the number of open files was 0, e.g. after closing a database,
an error message 'could not close a file' was printed on the screen.
o Added support for sequences.
o d_close() was not protected by ty_lock/ty_unlock calls.
o btree_close() wrote header which could corrupt the delete chain.
o vlr_close() wrote header which could corrupt the delete chain.
o ddlp now expands its tables dynamically.

Version 1.09

o d_fillnew() wrote mostly zeros when writing variable length records
that spanned more than one page.

Version 1.08

o Oops. Forgot to incorporate bug reported by [email protected]. When multiple
databases were open, ty_closeafile() would only search the first
database in dbtab. This bug could cause inconsistent indexes.

Version 1.07

o Fixed a couple of documentation errors.
o btree_add() was missing a call to btree_getheader() which could cause
indexes to get corrupted. This only happened when multiple processes
were doing heavy insert/delete operations on the same index.
o Many have requested that man pages be moved to section 3. This has now
been done.

Version 1.06

o Added ASCII manual.
o In a variable length record table with foreign keys, the last few bytes
of each record would be lost.

Version 1.05

o Added OS/2 makefiles.

Version 1.04

o Minor modifications to configure script.
o typhoon.h no longer requires inclusion of sys/types.h.
o Corrected syntax error in RISC alignment code.

Version 1.03

o Added configure script.
o Torsten Liermann reported a memory access error found with purify. The
error only occurred when closing a database, so it rarely occurred.
o The demonstration program in ./examples forgot to set the length
determinator of product.description.
o Support for platforms with sizeof(long)=8, e.g. Alpha.
o Tricky construct in sym_addmember() made calloc() return NULL on
some platforms.

Version 1.02

o New makefiles by George Sipe should fix a lot of conflicts on platforms
I haven't been able to compile the code on.

Version 1.01

o Just after releasing version 1.0 I was informed about two missing
include files. Stupid mistake which has now been fixed.
45 changes: 45 additions & 0 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
The Typhoon RDBMS has been compiled and tested on the following platforms:

IBM RS/6000 running AIX
386/486 running Linux 0.99,1.72
386/486 running OS/2 2.0, 2.1, 2.99
386/486 running SCO UNIX SVR3.2 Version 4.2
Sun Solaris 2.3, 2.4
Tandem S2 running NonStop Unix SVR4 B.22

The library has been compiled on the following platforms:

UnixWare
HP-UX 9.01
Digital OSF/1 AXP
SunOS 4.1.3
Data General AViiON running DG/UX 5.4.2
SGI

-------------------------------------------------------------------------------

Installation:

Type 'configure' in the typhoon directory and then 'make'. The output from
the compilation consists of the following files.

./include/typhoon.h
./include/ansi.h
./src/libtyphoon.a
./util/ddlp
./util/dbdview
./util/tyexport
./util/tyimport
./man/...

If you are installing under OS/2 you must rename the file include/env_os2.h
to include/environ.h before making. To make enter the following:

cd src
nmake -f makefile.os2
cd ../util
nmake -f makefile.os2
cd ../examples
nmake -f makefile.os2

Remember to place typhoon.dll in a directory that is in LIBPATH.
34 changes: 34 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Makefile for: typhoon - top level makefile

MANEXT = l
PREFIX = /usr/local
DESTMAN = $(PREFIX)/man/man$(MANEXT)
DESTCAT = $(PREFIX)/man/cat$(MANEXT)
DESTOWN = root
DESTGRP = local
SHELL = /bin/sh
MAKE = make

.PHONY: all install uninstall clean distclean

all install uninstall: include/ansi.h include/environ.h
cd src; $(MAKE) $@
cd util; $(MAKE) $@
cd examples; $(MAKE) $@
cd man; $(MAKE) $@

include/ansi.h include/environ.h:
./configure

clean:
cd src; $(MAKE) $@
cd util; $(MAKE) $@
cd examples; $(MAKE) $@
cd man; $(MAKE) $@

distclean: clean
-rm -f include/ansi.h include/environ.h
cd src; $(MAKE) $@
cd util; $(MAKE) $@
cd examples; $(MAKE) $@
cd man; $(MAKE) $@
132 changes: 132 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
Dear programmer,

I have decided to make new releases of the Typhoon library, using
release Thomas Pedersen's 1.10.3 release as my starting point. Below is the
original copyright message which should be retained in all derived works at the
request of the original author, Thomas B. Pedersen.

A number of years ago I used Typhoon successfully in a project that needed a
database. Recently, I did some searching around the net hoping to find a new
improved Typhoon library. To my dismay, nothing new had been released in about
four years. After trying to contact the author to no avail, I decided to take
over maintenance of the software. I'm numbering my releases 1.11.x for now.
The first one is 1.11.0 and is purely cleanup related. My aim was to produce a
clean build on modern GNU systems, like Linux with glibc2. I fixed up errors in
the configure script and many issues arising out of using crusty K&R C. I'm
contemplating converting everything to ANSI C, but I've decided not to do this
in the first cleanup release.

Bug reports and other e-mail related to this software should be sent to
<[email protected]>.

Yours,

Kaz Kylheku

October 3, 1999.

Original README text follows
-------------------------------------------------------------------------------


Typhoon Relational Database Management System v1.0

Copyright (c) 1994 Thomas B. Pedersen. All rights reserved.

Permission is hereby granted, without written agreement and without
license or royalty fees, to use, copy, modify, and distribute this
software and its documentation for any purpose, provided that the above
copyright notice and the following two paragraphs appear (1) in all
source copies of this software and (2) in accompanying documentation
wherever the programatic interface of this software, or any derivative
of it, is described.

IN NO EVENT SHALL THOMAS B. PEDERSEN BE LIABLE TO ANY PARTY FOR DIRECT,
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF
THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF HE HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THOMAS B. PEDERSEN SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS"
BASIS, AND THOMAS B. PEDERSEN HAS NO OBLIGATION TO PROVIDE MAINTENANCE,
SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

-------------------------------------------------------------------------------

Typhoon is a freely available relational database management system for
the UNIX and OS/2 environments.

This release has been prepared in a hurry to get it out as quickly as
possible. This means that the documentation is rather sparse, since I
haven't had the time to write extensive documentation yet. However, most
of you out there are pretty clever, so you'll probably do fine with the
man pages and the examples.

The system works fine and is currently used in a number of professional
applications in Denmark, some of them mission critical.

The system was originally inspired by Raima's db_VISTA (today Raima Data
Manager) but is relational rather than network based. Typhoon lacks some of
db_VISTA's features, but also contains a number of nice features not found in
db_VISTA.

All relations are defined in a so called Data Definition Language (ddl) file.
You define the database relations like you would write a C structure with
chars, ints, strings, multidimensional arrays, nested union and structures,
etc. Then you define primary, alternate and foreign keys for each relation.
The Data Definition Language Processor (ddlp) compiles the database defintion
into a binary file which constitutes the database description. The database
relations are accessed via C subroutines which manipulate individual records
within a table.

- Multiple open database
- Multi-field keys
- Nested structures in records
- Controlled unions
- Referential integrity
- Variable length fields
- Null keys (optional keys in db_VISTA, but easier to use)
- Dynamic opening and closing of database files

At present the database has no locking mechanism, believe it or not! The
projects I have used it in, simply didn't need it, even though they were
multi-user environments. But it's in the works!

I am currently working on extending the library to support the following:

- Locking
- Logging
- Transactions
- Paging (to improve performance)

The library functions will remain intact, except for a number of new functions.
I expect these things to be ready before the end of the year. Beta testers
are welcome.

The library comes with three additional utilities:

dbdview - Displays database definitions.
tyexport - Exports tables from a database.
tyimport - Imports tables into a database.

Originally the library also contained online backup, restore and a replication
server. These tools would need a lot of extra documentation, so I have left
them out for now (the code still contains support for these utilities).
However, if enough people show interest I will probably release them also.


-------------------------------------------------------------------------------

Bug reports and mail should be sent to

Thomas B. Pedersen
[email protected]

Also, if you have any suggestions as to how I can improve the library,
documentation or anything else, please don't hesitate to mail me.


Regards,

Thomas B. Pedersen
8 changes: 8 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
This is Thomas B. Pedersen's original TODO from release 1.10.3.
-------------------------------------------------------------------------------
This list contains a lot of things that needs to be done. The major goal of
the library has been functionality more than performance. I am working on the
last goal now.

1.

Loading

0 comments on commit 95fab56

Please sign in to comment.