Run Time Access
- Read and write callbacks now return a zero on success and a non-zero on failure. A failed write callback restores the table row to its initial values. No attempt is made to undo other side effects of callbacks so some care should be taken.
- Minor web site documentation clean up. Got fuse to run on the demo web server so a link to the fuse-mapped app directory is back in the "livedemo" page.
- Added support for the new psql client protocol in which the very first packet from the client is a request for an SSL encrypted session. We reply with an 'N' to indicate that SSL sessions are not yet supported. Modified api.c.
- Fixed a bug in the SQL parser by running flex and yacc under Linux (Mdk9.2) and saving the resultant .c file. Modified parse.c and parse.h. (Version 1.0.1 only. Version 0.7.3 still uses parse.y as the input file.)
- Added 0.7.3 which is a pure Makefile based version of RTA. It has the same code base as 1.0.1 but does not use automake.
- Removed empd from the distribution.
- Added autoconf, thus providing ./configure, make, make install functionality.
- Ported rta to Windows.
- Added a prototype deamon based on RTA. The daemon is called 'empty deamon' or empd. This addition prompted the addition of rta_config_dir() below. See the README in the empd directory for more details.
- Fixed a bug in the iterator for the rta_tables table.
- Fixed various typo and spelling errors.
- Added the 'rta_config_dir' to specify a directory to be prepended to table savefile names. If the savefile uses an absolute path (starting with '/') it is not prepended with the configuration directory.
- Added checks to prevent the use of our reserved SQL words as either a table name or as a column name. Reserved words are: SELECT, UPDATE, FROM, WHERE, LIMIT, OFFSET, and SET. (The words are reserved in both upper and lower case.) Changed the column name 'offset' in rta_columns to 'noff'.
- Replace "epg" with "rta" in all documents.
- Verify that the name in a column definition matches the name of the table it is defined with.
- Fixed a bug in which write callbacks were always passed a column name of NULL.
- Removed rta_init() from API. It is not needed and it's safer to do the init on the first call to rta_add_table().
- Added another parameter to the write callback which points to a copy of the unmodified row. The malloc(), memcpy(), and free() slows the system slightly but the ability to do edge detection is worth the extra CPU time.
- The length of a string field now includes space for a null at the end of the string. This bug could be a source of a buffer overflow.
- Fixed a bug in selecting which columns to save to disk for non-volatile tables.
- Added a callback function, called an 'iterator', which advances a row pointer from one row to the next. This makes it possible to have linked-lists appear as tables in Run Time Access. Previous versions required that all data be arranged as an array of struct.
- Minor bug fix in the table save function.
- Rolled shared object version to '.2'.
- Modified the table read and write callbacks to add an additional parameter. Be sure to update your callbacks.
- Converted from PostgreSQL 7.3 protocol to PostgreSQL 7.4 protocol. Version 0.6.2 is *not* compatible with the libraries or tools of PostgreSQL 7.3. Changes include removing the BEGIN and COMMIT commands and removing the pg_user table since these are no longer required for connection set up. The function command is also removed.
- dbcommand() now return RTA_NOBUF if there insufficient room in the output buffer for even an error message.
Change st_atim to st_atime in rtafs.c.
- Added virtual file system interface using the fuse package by Miklos Szeredi. The library librtafs.a adds two API routines, rtafs_init() and do_rtafs(), which mount and maintain the program's tables as files in a file system.
- This version also fixes a memory leak which occurred when the Yacc parser detected an SQL syntax error. The amount of leaked memory was about equal to the lengths of the table and columns names in the query.
- Added BEGIN and COMMIT to the SQL commands recognized in order to allow login from Posgres 7.3.X clients. The 7.3 Postgres login uses a transaction as part of the login. The commands, while not causing an error, DO NOTHING. There is no attempt in the code to implement transactions.