File: ChangeLog

package info (click to toggle)
sqlrelay 1%3A0.37.1-3.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 13,084 kB
  • ctags: 6,691
  • sloc: cpp: 48,136; python: 10,118; ansic: 9,673; java: 9,195; php: 8,839; perl: 8,827; sh: 8,554; ruby: 8,516; tcl: 5,039; makefile: 3,665
file content (1164 lines) | stat: -rw-r--r-- 55,550 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
0.37.1 -
	fixed missing self before __getRow and __getRowRange in python db driver
	added test for 0 length result set to PySQLRDB's fetchmany method
	removed erroneous reference to sqlrcon_errormessage in php pear db
	some oracle unicode clob fixes
	integrated Andreas Behr's listener crash patch
	interbase/firebird dead-db/relogin works now

0.37 - integrated Charles Frank's SID code
	fixed bug in configure script where it would erroneously report that
		the MDB tools connection wouldn't be built
	uses (u)int[16|32]_t instead of short/long, etc.
	changed row count, affected rows to use a 64 bit value
	got rid of all plain "int" references in C/C++ api
	single-quotes and backslashes are escaped when using fake input binds
		now
	fixed "integer expression expected" error when running
		configure --disable-python
	changed "connections" to "instance id's" in /etc/sqlrelay
	sqlrsh's help displays help for ping/identify commands
	changed sybase installation instructions to use alien on debian
	de-supported python<2.1
	clob/lob's aren't deleted if their length is 0
	removed lago support
	fixed some bugs in tcl api
	added tcl tests
	implemented native binds for postgresql8, added "fakebinds"
		connectstring parameter to provide back-compatibility
	added configure test for -Wall
	switched lots of:
			char	a[charstring::length(b)];
		to:
			char	*a=new char[charstring::length(b)];
			...
			delete[] a;
		to improve compiler compatibility
	removed #ifdef __GNUC__ around static variable definitions, I'll add
		#ifndefs for compilers that don't allow them (like SCO's) if
		necessary
	fixed bugs where getRow(),getRowAssoc(),getOutputBind(),etc. in various
		api's wouldn't return binary data correctly
	updated mysql dropin api so unsupported functions return unknown-error
		and mysql_error/mysql_errorno work when they do
	updated php pear db code with david forums' patches
	removed references to prepare_tokens/types/etc. and overrode
		freePrepared()
	python api pays attention to retrytime/tries now
	fixed a hang when username/password are wrong
	fixed a crash when too many cursors were requested
	switched most sprintf's for snprintf's
	made maxquerysize, maxstring/lob/clobbindvaluelength configurable
	added configurable idle client timeout
	removed broken sybase/freetds encryption connect string option for now
	added --with-initscript-prefix configure option to make init script
		location configurable
	php module should compile against php 4.0 again, though without
		cleanup functions
	added -pthread when compiling as well as linking
	sqlr-start links against -lm now
	uses file::generateKey() rather than ftok now, uses project 1, not 0
	added loadbalanced as a connection parameter, with default of false,
		if the db is load balanced, then if one connection determines
		that it has gone down, only that connection will re-login
	added /usr/local/lib to list of base dirs to find zope in, for
		OpenBSD 3.7
	fixed a bug where bind cursors weren't getting cleaned up
	java api build creates a jar file
	oracle 8 connection's fetchatonce/maxselectlistsize/maxitembuffersize
		are configurable at run time now
	fixed a bug where the null indicator wasn't being set to 0 for lob's
	updated docs to indicate that getConnectionPort/Socket() are only
		valid after suspendSession() and getResultSetId() is only
		valid after suspendResultSet()
	updated php docs; fixed some typo's
	sorted out some lob length issues in mysql
	updated inputBind to take an int64_t
	fixed a bug where DB2 connections wouldn't reconnect if the db went down
	fixed a bug where DB2 update/delete with no affected rows was returning
		an error
	added nls_lang connection string option to oracle7/8 connections
	added getOutputBindBlob/Clob() methods
	for perl/php/python/ruby api's if a bind variable or substitution
		variable isn't a string,long or double (or if prec/scale aren't
		specified for a double) then the inputBind(s)/substitution(s)
		functions return false
	PHP Pear db's query() returns a result set for "SHOW TABLES" now
	Got perl dbi clob/blob binds working again, documented how to use them
	freetds connection funnels everything through a single cursor, although
		it appears to higher levels that there is more than 1 cursor,
		so nested queries won't work if a result set buffer size is
		used, but errors no longer occur
	fixed a bug where fetching a clob from oracle containing utf8 data
		could cause a buffer overrun and subsequent crash
	applied Gena01's php pear db patches, some other fixes
	made SID code work for all databases, use other instances of SQL Relay
		rather than a mysql database
	started on query router code
	implemented php pear DB sequence functions for oracle
	all programs create pid files now, sqlr-stop stops them by iterating
		over the pid files and killing the pid's in the files rather
		than using ps
	added some checks for tcl functions/types in configure script
	configure script filters out non-g++ CFLAGS from mysql_config if
		using g++
	lots of configure script updates for cygwin
	java api uses jlong instead of jint now for cursor/connection

0.36.4 - fixed mdbsql detection
	fixed const error in mdbtools connection
	added const to *connection::identify()/pingQuery() methods
	improved efficency of sending lob's
	added Py_INCREF(Py_None) before returning Py_None's or adding them
		to an array
	fixed php pear db bug that caused NULL values not to be inserted

0.36.3 - added allowShortReads option to non-readline sqlrsh build
	fixes to php pear db driver for autoExecute
	sqlrsh uses libreadline even on systems that don't have libhistory now
	changed test -n -r "${sysconfdir}/sqlrelay.conf" to 
		test ! -r "${sysconfdir}/sqlrelay.conf" in init scripts

0.36.2 - added -lnnz10 to instantclient configuration

0.36.1 - added support for oracle instantclient
	added python 2.4 to spec file

0.36 - configure script defaults db2 version to 8
	configure script detects various odbc function paramters, uses them to
		build odbc connection
	applied Matthias Klose's freetds patchlevel patch
	added Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS in various places
		in CSQLRelay.C
	fixed freetds version check even more
	INSTALL is moved to INSTALL.txt for OS X now
	applied Matthias Klose's Zope configure patch
	added mdbtools connection
	fixed double-free of debug file name
	sqlrsh exits after running a script now
	ctrl-D doesn't crash sqlrsh now
	connections=0 is valid now, will start no connections
		and dynamically scale from there
	upped MAXQUERYLENGTH to 65536
	removed MAXQUERYLENGTH from sqlrdefines.h
	fixed bug where query length > MAXQUERYLENGTH could cause segfault when
		copying references
	sqlr-listener and sqlr-scaler refuse to start now if
		runasuser/runasgroup can't read the config file
	sqlr-scaler shouldn't loop up if sqlr-listener is killed now
	fixed bug where scaler's group might not be set properly
	processes don't try to set their user/group unless they're different
		from the user/group that the process is currently running as,
		should prevent "cannot switch group to nobody" messages
	per Matthias Klose's bug reports:
		set manpage section to 8 for sqlr-ipclean, sqlr-start, sqlr-stop
		fixed MDBTOOLS detection to handle includes/libs installed in
			/usr/include, /usr/lib
		fixed another odbc SQLLEN/SQLINTEGER bug
	updated config.guess
	fixed PHP api to use resource lists - cleans up itself now with no need
		to use sqlrcon/cur_free
	fixed PHP Pear DB script bug which would cause an error code to be
		returned if -1 was returned for affected rows (ie. if a
		database doesn't support affected rows)
	added -framework Python to compile python stuff on Darwin/Mac OS X
	added connectstring descriptions to PHP Pear DB docs
	added code which toggles TCP_NODELAY to flush data written to either
		side of the connection here and there rather than wait on the
		Nagle delay, improved performance over a network substantially
	added .PHONY makefile flag, removed INSTALL -> INSTALL.txt hack
	added /usr/sfw to configure script's search paths
	uses rudiments error class
	added /sw to configure script's search paths
	added -Wno-long-double if system supports it
	several macosx-related configure script changes
	fixed denied/allowed ip's
	configure script looks for some stuff under /cygdrive/c/Progrm Files now
	for php 5, the pear db driver uses PEAR::loadExtension rather than
		DB::assertExtension

0.35 - added (slightly modified) pkgconfig stuff from Dolphpower's pkgconfig
		patch
	added PHP Pear DB driver
	added --with-db2-version configure option
	STRIPPROG is set before calling install-sh now
	added fixup socket to listener so forked clients can retrieve the
		handoff socket from a newly spawned database connection, this
		makes it possible to use scaling and handoff=pass
	switched many int arguments and return values to bool
	did some code cleanup to listener, scaler, sqlrconfigfile
	fixed reversed affected rows logic for freetds 0.61
	support mysql_change_user now in mysql connection
	added mysql client api drop-in replacement library
	configure script looks around for ssl library now
	configure script doesn't look for crypto library now, instead it just
		uses ssl library flags which should include crypto library if
		ssl needs it
	fixed a few things in the perl DBI driver:
		made bind variable index 1-based for execute()
		removed clearBinds() after execute()
		initialized a few hash values when execute() fails
		added support for output bind parameters
	odbc connection uses ODBC v 3.0 column attribute names now
	added setResultSetBufferSize(100) to perl dbi, php pear db, ruby dbi
		and python db drivers
	added support for temp tables for all databases that support them
	added tests for drop-in api's
	applied a db2 version-8 specific patch from Masanori Akaishi
	added search for libgthreads to configure for SCO
	configure uses -pthread on cygwin now
	the default implementation of commit/rollback allocate a new cursor now
	applied a reexecute bug patch from Tony Fleisher and Erik Hollensbe and
		fixed a bug that it revealed
	postgresql connection uses "select 1" for ping instead of calling
		PQstatus (which doesn't actually check the connection status)
	fixed changeUser() bug where login/initCursor was done in the wrong
		order and the cursor array was getting deleted
	Oracle8 connection checks the version of the database now and uses
		proxy credentials for authtier=database only when the database
		supports it, otherwise it uses sqlrconnection::changeUser()
	added oracle 10g support
	moved some code back into sqlrconnection class from helper classes
	renamed constructor/destructor.C *ctor/*dtor.C for connection and c++
		to remove object file name collisions, between the collisions
		and a bug in strip, the static C++ api library wouldn't work
	applied a patch so varchars in oracle8 can be up to 32768 bytes long
	fixed a bug where db2 connections would return the result set of
		the previous query if the current query returned no rows
	lots of fixes to sybase/freetds connections, sybase properly uses
		cursors now
	fixed db2 connection, had confused SQL_SUCCESS/SQL_ROW_SUCCESS and
		SQL_SUCCESS_WITH_INFO/SQL_ROW_SUCCESS_WITH_INFO
	added support for sybase rpc commands
	improved support for interbase stored procedures
	DESTDIR works as expected now
	applied perl dbi patch from Tony Fleisher and Erik Hollensbe
	fixed bug where SEEK_END was used instead of SEEK_SET to lock sockseq
	lots of minor cygwin-related build fixes
	applied Srinivas Devarakonda's fake binds patch
	applied Jason Hihn's patch for sqlite3
	added ifdefs to maintain sqlite<3 compatibility
	applied Leonard Rochael Almeida's python segfault patch
	added test for python version < 2.1 and deprecation notice
	configure uses full path name instead of -L, -l for tclstubs library,
		on some platforms, libtool fails to build a shared library
		if .a files are linked into it using -L, -l
	no stripping is done at build, link or install time now

0.34.3 - updated spec file for suse 9.0
	applied a patch to fix a typo in C API
	spec file searches for zope and python paths
	uses includedir instead of incdir now
	doc's are installed in ${datadir}/doc/sqlrelay now instead of
		${prefix}/doc/sqlrelay

0.34.2 - updates for fedora core 1 compatibility
	Mac OS 10.2 compatibility improvements
	A few documentation updates

0.34.1 - fixed rpm build by upgrading to libtool 1.5 and using -inst-prefix-dir
		for postgresql client api drop-in replacement library
		
0.34 - sqlrelay.conf parameters weren't getting defaulted properly
	scaler checks to see if a DB is marked as down before it tries to	
		log into it, if it is marked as down, then it tries a
		different DB
	connection sends it's connectionid to listener along with port/socket
	listener check to see if a DB is marked as down before trying to
		hand off a client to it.  if it is, then the listener forks
		and pings the db to get it to come back up.
	php API uses RETURN_STRINGL for getField and getOutputBind now
	python API uses Py_BuildValue("s#" ...) for getField and getOutputBind
		now
	java API has getFieldAsByteArray() and getOutputBindAsByteArray()
		methods now
	ruby api uses rb_str_new() instead of rb_str_new2() for getField and
		getOutputBind now
	incorporated Vladimir Kouznetsov's code for interbase stored procedures
	perl API is binary safe now
	perl API returns empty lists for get*Row*() methods now if the row is
		beyond the end of the result set
	perl API returns undef for getField() and getOutputBind() for NULL
		values now
	netbsd init script is fixed now
	applied lots of patches from Takeshi Taguchi for typo's and compiler
		warnings
	added postgresql drop-in api
	added support for column precision/scale to core classes and all DB's
		that support it
	all databases return the number of bytes required to store the column
		on the server for getColumnLength now
	added support for determining whether a column is nullable or a primary
		key for databases that support it
	fixed a bug where supplying a NULL path in sendFileQuery() would cause
		a crash
	fixed a bug where NULL binds weren't being faked at all
	added a hack for broken glibc-2.3's
	split up sqlrconnection.C and sqlrcursor.C in connection base classes
	added support for tcl < 8.2
	inputBindBlob in java api takes a byte array now instead of a String
	postgresql connection uses PQfmod if PQfsize returns -1
	updated libtool scripts
	cleaned up and sped up unsupported signal checks in configure script
	fixed bug where failure to specify metrics caused crashing
	sqlrconfigfile class doesn't cause crashes when id isn't found anymore
	config file arguments that are less than a certain value (in most cases
		less than 1) are set to the default value now 
	sqlrconfigfile class uses list class now to store user/connectstring
		lists
	updated config.guess, config.sub, ltmain.sh
	rpath is optional for everything now
	rearranged data in shared memory segment a bit, simplified code
	use a struct for data in shared memory segment now, should alleviate
		alignment problems on sparc/ppc
	all API's are linked against appropriate thread libs now
	revamped oracle installation docs
	oracle 8i/9i are linked only against -lclntsh and `cat sysliblist` now
	added freetds/sybase libcs/ctpublic.h clash warnings
	db2, oracle, freetds, sybase use -rpath by default now
	gcc uses -pipe option if available
	configure has --enable-small code option
	.o files are stripped of .note and .comment if possible
	added LD_ASSUME_KERNEL=2.4.1 note to db2 install docs
	fixed db2inst1 -> testdb typo in db2 install docs
	updated mysql/lago/postgresql/sybase/db2/interbase docs a bit
	added oracle8i/9i-specific tests
	better ps aux/-efal detection
	-fomit-frame-pointer -fno-exceptions are used now, debugging
		build just uses -fno-exceptions
	freetds connection disables affected rows for freetds-0.61
	freetds tests use sendQuery("commit tran") instead of commit(), for
		some reason that's necessary with freetds
	libmysqlclient.so is referred to directly instead of using
		-LPATH -llib because libtool likes to append .libs to paths
		that don't end in "lib" on some platforms (notably Solaris x86)
		and libmysqlclient.so is almost always installed in
		$(somepath)/lib/mysql instead of $(somepath)/lib
	don't link directly against -lstdc++ any more, instead, set up libtool
		to use g++ to link everything
	added more verbose logIn error reporting to oracle8 connection
	0's for bind var counts aren't sent when fetching from a bind cursor now
	fixed bind cursor fetch problems

0.33.1 - fixed double-install of /etc/init.d/sqlrelay on redhat
	added -lstdc++ to libs if using gcc3
	applied fixes to commandline clients

0.33 -	configure script figures out rpm build directory better
	added sane defaults for every configfile parameter
	updated dtd
	sqlr-config-gtk fills in default values now
	"listener and connection" attribute values in config file have been
		changed to "listener_and_connection" to satify xmllint, but
		"listener and connection" still works
	updated sqlrelay.conf.example
	added sqlrclient-config and sqlrclientwrapper-config scripts
	removing rpm's removes /usr/local/firstworks/java , include/sqlrelay,
		and var if they're empty
	programs return proper exit status's now
	connection class's listen() method takes a parameter indicating whether
		to detach before/after logging in.  Detach before allows DB2
		to work, detach after allows an exit status to be returned
		if logging in fails
	query.py isn't installed anymore, it's redundant
	getRow was using row instead of whichrow, fixed that
	added sendQuery that takes a length parameter to handle binary data
	added upper/lower/mixed column name methods
	java API's are in com.firstworks.sqlrelay package now
	added init scripts
	queries with substitutions correctly reset their length after the
		substitutions are applied now
	incorporated minx's LOB-fetching bugfixes into oracle8 connection
	oracle 8.1.7's OCILobRead doesn't return OCI_NEED_DATA, worked around
		that
	oracle8 connection handles NULL LOB's correctly now as well
	query and sqlrsh programs set their result set buffer sizes to 100 now
		so huge queries don't use up all your ram
	added getOutputBindLength method to API's
	added __del__ methods to PySQLRDB classes
	several connections didn't process the correct number of connect-string
		variables
	uses rudiments' updated client/server architecture
	uses rudiments' logger class now
	renamed libauthenticator, libconfigfile, libconnection to libsqlr*
		and added support for using them as shared libraries
	libsqlrconfigfile is based on rudiments xmlsax class now
	sqlr-config-gtk is based on rudiments xmldom class now
	dependency on libxml no longer exists
	LOB and string binds use memorypool class now
	fixed init script and ruby api uninstall problems
	applied Leo Almeida's python db patches which handle closing
		cursors/connections better
	moved a bunch of sqlrconnection class code into other classes, created
		a few new classes that are used by it alone
	postgresql connection closes stdout/stderr after logging in now
	added -localstatedir command line option to redirect
		/usr/local/firstworks/var to somewhere else
	moved allocate calls into logIn() methods of connections and deallocate
		methods into logOut() methods; makes reconnect work with
		oracle8
	added support for cursor output binds
	changed the way that the clients and servers negotiate which cursor
		that the client should use
	added REEXECUTE_QUERY and FETCH_FROM_BIND_CURSOR protocol directives
	changed SENDING_QUERY directive to NEW_QUERY
	removed all iostream references, should allow sqlrelay to be
		compiled against uclibc (for all connections that can also
		be compiled against uclibc)
	added error message if ftok fails in listener
	added Paolo Dotta's liveconnection=PQstatus fix to the postgres
		connection
	added signal option to sqlr-stop
	it's possible to do negative input bind long's now
	when relogging in to a db that went down, cursors are just reset, not
		deleted/created, this allows the query to be re-executed
	fixed a memory leak in Oracle8 connection where OCIHandleFree was being
		used instead of OCIDescriptorFree
	Postgresql connection supports typemangling=lookup option now where
		the connection will query the pg_type table at startup and
		return type name values from it
	Fixed lurking memory bug in api where column buffers weren't getting
		created if dontGetColumnInfo() was called, but the longdatatype
		member was getting referenced anyway.
	def and def_lob's are properly initialized now in oracle8 connection
	api uses rudiments' file class for cache files now
	libtool is used where possible
	uses (a modified version of) Matthias Saou's spec file to build RPM's
		now
	builds tgz's for Slackware now
	supports freetds-0.61
	connection daemon drops temporary tables when a client session is ended
		for postgresql and mysql
	libtool is used to make php, python modules now
	applied Vladimir Kouznetsov's PHP api patches to fix null behaviour
	perl, php api builds are quieter now
	remove unnecessary -pedantic from CXXFLAGS
	modularized configure script
	incorporated Takeshi Taguchi's TCL API

0.32 -	affectedRows and totalRows were returning 0 instead of -1 for databases
		that don't know that value, now they return -1
	python api's suspendSession() returns 1 or 0 now
	suspendResultSet was screwing up the results of firstRowIndex() and
		rowCount() but they are fixed now
	python/ruby API's would crash if getColumnNames was called after calling
		dontGetColumnInfo
	invalid DDL caused sqlr-connection-oracle8 to crash, that's fixed now
	fixed several cached-result-set related bugs
	client automatically retries reads that were interrupted by signals now,
		this should fix lots of spurious "network error" bug reports
	client suppresses low level error messages unless debug is set on now
	complies with gcc3 now
	make rpm ignores perl/ruby if you don't have them now
	postgres database returns affected row count now
	bug fix - ruby api returns column length now instead of type when 
		getColumnLength is called
	ruby api handles nil socket now
	added ruby dbd api contributed by Michael Neuman
	updated clientapi documentation with regard to commit/rollback and
		server-side authentication
	fixed oraclentier documentation bugs
	spec files take config directories into account now
	sendRowCounts in libconnection took unsigned longs, but was being passed
		-1's if the database couldn't supply the parameter, dumb
	configure looks for libssl and links it into the python lib now
	perl getRow and getColumnNames don't segfault now when there is no row
		or columns
	fixed abortResultSet/cacheData/finishCaching-related segfault
	handoff between listener and database connection can be done by passing
		file descriptors or by instructing the client to reconnect
	congfigure looks in /opt/sfw for software now - 
		per the solaris companion CD
	configure looks for python.o and ccpython.o now
	configure looks for sybase stuff in /usr/local/sybase
	configure looks for serversocketpool.h instead of server.h to 
		find rudiments now
	connections listen on inet/unix ports only if listener is 
		configured to now
	configure script correctly determines the existence of oci.h now
	updated dtd - port not required any more, authentication -> authtier
		authentication or authtier work for compatibility now
	allowed/denied ips configuration option
	profiling libraries libsqlrclient_p.a and libsqlrclientwrapper_p.a
		are now generated
	getColumnType(char *col) wasn't returning the correct column type for
		nonstandard types
	sqlrcursor recycles column data and result set buffers now and creates
		the columnnames array on demand instead of every time
	the postgresql connection has an autocommit-yes/no option now which
		defaults to autocommit
	when in non-autocommit mode, the postgresql connection does a 
		commit/begin before ddl statements now
	added autocommit options to db2, oracle and odbc databases
	added autoCommitOn/Off() api calls
	ruby API builds against local c++ library instead of the one installed
		to the system now
	listener creates semaphore/shared memory segment now, other programs
		just attach to it
	listener checks/sets a pid file
	listener throws errors, refuses to start if the pid file is already
		out there or if it can't create a semaphore set or shared 
		memory segment
	connections, scaler refuse to start unless the listener is running
	configure detects sybase on freebsd but there seems to be a problem
		with sybase on freebsd - core dump in configure program
	configure script detects, configures for Oracle 9i now, at least on
		Linux
	configure script shouldn't put -L/usr/lib or -Wl,--rpath /usr/lib into
		compile strings any more
	include files moved to sqlrelay subdir of incdir
	perl api suspendSession returns int now
	ruby and php api inputBinds and substitutions work now
	postgresql connection correctly returns REAL datatype in typemangling 
		mode
	postgresql connection correctly returns NULL's now
	mysql connection correctly returns affected rows now
	fake binds like :var1 and :var11 are no longer screwed up
	decimal and int64 datatypes are recognized as numbers now
	msql connection correctly returns datatypes now
	lago connection correctly returns column lengths now
	lago connection correctly returns whether a column is null or not
	sybase/freetds connections correctly interpret the "db" connectstring
		parameter now
	sybase/freetds smalldatetime and smallmoney types are properly
		represented now
	bind-by-position works in sybase now
	sybase/freetds reports correct field length now
	sybase/freetds/interbase now support 256 input and 256 output bind
		vars correctly
	affected rows is enabled for freetds version > 0.52
	queries returning MONEY/SMALLMONEY columns are disabled for freetds
		version < 0.53
	freetds connection correctly supports fake bind variables now
	freetds connection doesn't spew unknown marker errors when cleaning
		up after result sets that weren't ct_describe'd
	configure script finds libxml in /opt/gnome now
	-version or --version returns version for cmdline programs now
	replaced VERSION with SQLR_VERSION throughout code to avoid conflicts
	incorporated a patch to enable php-4.1.1 compatibility
	sqlite connection rewritten to be more conventional, also supports
		transactions in sqlite 2
	sqlr-stop correctly cleans up the tempfile dir and properly figures
		out what directory that is instead of always using 
		/usr/local/firstworks/var/sqlrelay/tmp
	interbase returns correct datatypes now
	non-faked NULL binds work correctly now
	added server-side debugging
	sqlr-start can run with -strace option now to generate strace files
		for sqlr-connections
	configure script now looks for gnome-xml first and only looks for 
		libxml if it doesn't find gnome-xml
	closeCursors works correctly now
	changed server connect string parameter to db for db2
	changed database connect string parameter to db for interbase
	libconnection detaches from the controlling tty before logging into
		the database now.  This is necessary for db2 connections to 
		work.
	db2 date/time/timestamp types are reported instead of unknown now
	port connection string parameter not used in freetds/sybase anymore
	implemented ping for db2, interbase, msql
	undef as value for an input bind/substitution works in perl api now
	java/php api's handle NULL strings correctly now, especially in
		substitutions/inputBinds
	sockseq permissions get set correctly now
	interbase connection uses 1 transaction for ddl and another for non-ddl
		now, ddl is committed immediately
	transactions work in interbase now
	fields, query and sqlrsh don't crash (or act strangely) now if the -id
		command line option is used with an invalid id
	added -lcrypt to interbse compile requirements to support Firebird
	configure looks for libxml2/parser.h as well as libxml/parser.h now
	support for ruby 1.6.7
	changed python module name from CSQLRelay to SQLRelay.CSQLRelay in
		Py_InitModule call
	ruby build script replaces "CC = cc" with "CC = $(CXX)" and "CC = gcc"
		with "CC = $(CXX)" now instead of just replacing gcc with g++
	reworked the rpm-building stuff
	added -lcrypto to python api build script
	bench doesn't compile by default now
	configure checks /opt for db2 now
	incorporated Dieter Maurer's patch which aligns the port number in
		shared memory correctly for Solaris and others
	rpm build should work on non-redhat systems now
	fixed many memory leaks in C++ api
	replaced lots of strstreams with char arrays
	oracle connections print more error messages when they fail to log in
	oracle8 connection cleans up when repreparing for binds now
	connections close cursors after pings now
	for connections which check whether a result set is NULL before
		cleaning it up, the result set is set to NULL after cleaning
		it up, and also in the cursor constructor, this prevents
		calls to abort() (which in turn call cleanUpData()) from
		cleaning up a pointer that has already been cleaned up
	connections that have to set environment vars do so in a manner that
		will work with old versions of libc, putenv and setenv now
	fixed improper AC_TRY_LINK calls in configure, changed AC_TRY_RUN's to
		AC_TRY_LINK's
	everything should be compatible with autoconf 2.53 now
	added -lm to Oracle libs

0.31 -	skipped

0.30 -	replaced lingerOnClose() calls with a read that will fall through
		when the client closes it's end of the connection
	implemented the close() method for PySQLRDB's cursor class
	if a library's include files are in /usr/include, -I/usr/include is
		no longer put into the compile string, it was causing problems
		for gcc3
	use umask to set file permissions instead of doing it using fstream
		directly, works with gcc3's fstream now
	added commit/rollback methods to the API to help get around some
		ODBC databases not implementing those methods
	added support for ODBC>=3.0 when using iodbc
	renamed ruby API files to fall in line with ruby DBI naming conventions
	bug fix: had failed to NULL terminate user/password in listener
	implemented Oracle n-tier authentication for Oracle8i
	new authentication scheme - 
		listener/connection/listener and connection/database options
	support for SQLite-2.0 which doesn't need GDBM
	bug fie: Zope adapter's _finish and _abort didn't call close()
	better detection/auto-install of Zope API
	added test for gtk12-config and gtk10-config in configure
	reworked build system to configure faster
	fixed bug where an invalid query would end the session
	fixed ps -efa/ps aux bug for BSD systems

0.29 -	bind variable debug doesn't screw up <pre></pre> anymore
	added Zope detection/auto-install
	configure script finds java install from various rpms now
	explicit check for Oracle's libwtc.a/libwtc.so
	check for ld -G vs ld -shared
	looks for postgresql libs/includes in many new places
	configure checks to see if odbc or lago need threads now
	sqlr-config-gtk doesn't make libcfparse.a now, just links against
		configfile.o
	much more robust library detection in configure script now
	sqlr-stop works with systems that don't have SYSV ps command
	sqlr-config-gtk should compile against gtk-1.0 now
	ruby api should "make clean" even when ruby isn't in your PATH now
	mysql connection should compile against mysql's that dont have the
		mysql_real_connect method now
	in connection class, wherever I was setting busy=0, I call abort() now,
		this ensures that busy=0, suspendresultset=0 and cleanUpData()
		get's called
	make clean cleans up all bench dirs now
	make makes all bench dirs now
	fixed ICONVPATH/LIBICONVPATH problem in configure
	if libxml wasn't found, the query,fields and sqlrsh commands will
		compile now, just without the -id and -config options
	zope install copies python api into zope dir now instead of symlinking
		to it
	

0.28 -	sqlrsh compiles against readline version 2 now
	fixed a bug where a connection daemon would dump core if dynamic scaling
		is turned on and it fails to log into the database or create
		cursors
	support for .sqlrelay.conf
	cleaned up signed/unsigned short/long's everywhere
	c api's sqlrcur_getOutputBind didn't work, but it does now
	took care of a bunch of compiler warnings
	if you leave out the -connectionid parameter when running
		sqlr-connection-xxx it will use the first connectionid
		if one exists
	added cursors parameter to the config file and sqlr-config-gtk
	connection daemons shouldn't core dump now if they fail to log in
	implemented executemany and rowcount in pythondb api
	documented pythondb api similarly to other api's
	libconnection runs returnResultSetData immediately after handleQuery
		and resumeResultSet now.  This obviates the need for the
		client to send a FETCH_RESULT_SET command/cursor and fixes a
		bug where the client could fetch the wrong result set by
		sending the wrong cursor.
	fixed a bug that would cause previous queries to be re-executed instead
		of the current query when prepareFileQuery is used
	by default, postgresql connection returns numeric types now
	added mangletypes connect string option to postgresql connection
	made ping/identify more efficient, made them connection-based rather
		than cursor based
	configure --includedir should work now
	documented perl DBD api similarly to other api's
	client debug messages detect whether the app is a web app or not by
		checking for the DOCUMENT_ROOT environment variable and
		put <pre></pre> tags around debug messages if it's found
	sqlr-listener doesn't fork bomb any more when trying to run 2 on the
		same port, now it exits gracefully
	fixed a bug where the connection daemons weren't calling 
		disconnectClient()
	C API doesn't convert back and forth between a class pointer and a long
		anymore, now it uses a typedef struct pointer for the same
		thing, simplfies the code
	listener sockets linger on close now, for 10 seconds
	changed sqlr-stop to use awk instead of cut

0.27 -	added java API
	all API shared object libraries are linked against $(LIBSTDCPP) now
	in the C++ API, if copyrefs is turned on, cachefile name is copied now
		this is an "oops" fix
	defined getRowLengths (and friends) functions in the python api,
		this is another "oops" fix
	fixed the ruby Makefile, sometimes it wouldn't make properly
	resumeSession() wasn't copying the unix socket into the buffer when
		copyReferences() was set, but it does now

0.26 -  implemented rebinding/reexecution
	pythondb API's execute method uses its "parameters" as input binds
	pythondb API's callproc method calls execute
	pythondb api is threadsafe at level 1, not 0
	changed sqlrelay.conf.example and all docs to use port 9000 since that's
		the default port in defaults.h
	configure script now deals with sysconfdir, localstatedir, libdir, 
		etc. directives now
	sqlrsh uses gnu readline if it's available
	added ruby API

0.25 -	made relative pathnames work in --with-xxx-prefix configure arguments
	prepareFileQuery returns 1 or 0 now, depending on whether the file
		could be opened or not.  It also sets the error messsage in
		that case and no longer prints it out unless debug is set on.
	forgot to set liveconnection to 1 in a lot of cases
	modified client/server protocol so it doesn't send negative numbers
		across networks, should fix a lot of problems
	removed implicit directory for caching files in API
	added -scaninterval and -cachedirs command line parameters to 
		cachemanager
	fixed api so it won't try to substitute or execute a NULL query if 
		prepareFileQuery fails
	api returns better errors now
	added getFieldLength()'s methods/functions
	code cleanup, especially s/Header/ColumnInfo/g
	it's now possible for the API's to tell the server not to get or send
		column info
	fixed double-type bind/substitution problem in php api
	Oracle8 connection uses array fetch now
	fixed a bug that would have caused dml to possibly not be committed 
		and duplicated instead
	fixed a configure bug that wouldn't find libgds.so for interbase
	connections create/connect to semaphores, detach after logging in 
		now, should elimiate problem of semaphores/shared memory 
		segments hanging around after failed logins
	made sure to close/unlink sockets during shutdown
	made sure to lock the sockseq file, I can't believe I missed that...
	added XNETLIB to src/cmdline/Makefile.in
	added an -enable-static option to the configure script
	modified everything to allow multiple statements to be executed through
		a single connection
	fixed a bug that could cause getField() commands to return the wrong
		data (or segfault) when resuming a suspended session with a
		suspended result set
	fixed a bug that could cause cache file's to lose data when not 
		buffering the entire result set at once
	fixed a bug that would cause cached result sets to get truncated when
		ending a session
	python getRow methods don't crash on an empty result set now
	connections use the same inet/unix port for the duration of their
		existence now instead of getting a new one for each client
		session
	PHP and Python API's used to both call setResultSetBufferSize() instead
		of setCacheTtl() when their setCacheTtl method was called
	Removed all offset-related API functions, replaced them with a row
		indexing system
	caught a bug that would cause python getRowRange to potentially
		run off the end of the result set
	PySQLRDB.py uses CSQLRelay.so directly now instead of going through
		PySQLRClient yielding a reasonable performance improvement
	Moved some code from PySQLRClient.py to CSQLRelay.C
	Added bind-by-position support to oracle connections, validateBinds()
		no longer tries to validate bind-by-position variables
	Added fakeInputBinds method, call it in all connections where the
		db doesn't support binds directly
	configure script will find libxml2.a/.so now
	removed -O2 flag, was causing floor/pow functions to work improperly
		with iostreams
	postgresql connection returns UNKNOWN_DATATYPE now for all of it's
		non-standard datatypes
	postgresql connection returns 0 instead of -1 for lengths of varchar and
		char types now
	modified perl-dbd api to use input bind methods instead of substitutions
	added lots of comments to the perl-dbd api
	the user/password connect string options work for interbase now
	the python/pythondb api connection constructors take the same parameters
		as the other api's now
	added check for gethostbyname in libnsl, added it to lago compiles
	added libsocket to pthreads check
	perl API tries 3 different ways to compile instead of just trying to 
		figure out how ahead of time
	php API tries 2 different ways to compile instead of just trying to 
		figure out how ahead of time
	oops, not-connected to oracle error is 3114 not 3144, fixed that
	added a call logOut() to reLogIn() in libconnection


0.24 -  listener cleans up unix socket file on exit
	connections clean up unix socket files after use
	some cygwin compatibility tweaks
	fixed bugs in the sqlrelay.conf DTD
	changed oracle7 connection to ofen 10 rows at a time
	changed oracle8 connection to prefetch 10 rows at a time
	changed db2 connection to use fixed size, recycled buffers
	changed db2 and odbc connections to SQLFetchScroll 10 rows at a time
	changed freetds connection to use fixed size, recycled buffers
	added port argument to freetds connectstring
	configure script looks for python 1.6, 2.0 and 2.1 now
	configure script looks for libiconv and uses it with libxml if
		necessary
	added -lwtc8 to ORACLELIBS, some versions appear to need it
	improved/simplified freetds connection code and set it up to work with
		array fetches, should that ever work in freetds
	added sybase connection
	modified bind variable methods in libconnection... established 0 as
		non-null and -1 as null
	added bindVariablePrefix() method to libconnection... established : as
		the default prefix
	removed nonNullBindValue() and nullBindValue() methods from oracle
		and interbase connections since the base class methods now
		work for those datbases
	added bindVariableIsNull() methods to db2 and odbc connections which
		were missing that method
	fixed interbase bind problem
	changed sybase connection to ct_fetch 10 rows at a time
	updated the docs.
	updated the dblist.h file for the gtk config program with the current
		list of database connection types
	fixed a bug in the interbase connection that would cause it to crash
		unless a dialect was selected
	modified bench programs to use multi-row fetch like the connections do
	added @DLLIB@ to ORACLE_LIBS in config.mk.in  Solaris 2.6 appears to
		need it
	added a test for libaio.so and added it to the list of ORACLE_LIBS,
		Solaris 2.6 appears to need it
	make clean now removes the .pics directories that Konqueror makes
	changed cacheOn() to cacheToFile(), making it thread safe
	all programs use rudiments permissions class now
	Python and PHP API's use the C++ API directly now instead of going
		through the C wrapper
	Perl API should compile on any system now
	added --with-gdbm-prefix and --with-iconv-prefix to configure script
	changed order that configure searches for Perl, php-config
	removed attempt to statically link oracle connection
	better odbc detection in configure script
	restored iodbc compatibility
	added compatibility with older versions of mysql
	

0.23 -  added an interbase connection
	added a comma after LONGVARCHAR in the datatypestring array in 
		datatypes.h -- fixed misidentified column types in db2 and
		interbase
	fixed transposed configure/make in installing.html document
	changed "unixport" to "socket" in sqlrelay.conf and in sqlr-config-gtk
		in sqlrelay.conf, unixport still works for back-compatibility
	odbc connection does binds now
	found and fixed a memory leak that was causing memory associated with
		executing a statement not to be freed
	added libxml's libz dependancy back, some libxml's can read compressed
		files
	moved commitOrRollback() to after processQuery()
	fixed the python docs, the constructor syntax was really wrong
	changed parseQuery() method to prepareQuery() in libconnection

0.22 -  added #!/bin/sh to top of sqlr-stop and backupschema
	removed a bunch of strlen()'s that weren't necessary
	passed variable sizes into functions that needed them instead of 
		letting the function calculate it or using a strlen()
	initVariables only happens in copyreferences mode now
	used fixed size, recycled buffers instead of dynamic 
		allocation/destruction in lots of places
	in the api, several buffers aren't allocated now until the first time
		they're needed, then they're recycled afterwards
	client/listener authentication protocol is different
	connection catches attempts to send really large queries, bind 
		variables or bind values and shuts down the connection
	api endeavors to catch those closed connections and react with an 
		descriptive error or fail with a broken pipe error
	added db2 connection
	added precision/scale parameters to double binds
	added runasuser/runasgroup parameters
	added db2 and odbc benchmark programs
	added db2 test script
	None's in python inputBinds and substitutions work as NULL's now
	fixed bug that caused openCachedResultSet() to miscalculate the
		total number of rows in the result set and crash trying to
		access the 0'th row
	made sqlr-stop keep from trying to kill itself
	updated documentation

0.21 -  failure to read the query size, skip, or fetch sizes could cause the 
		connection daemon to crash, fixed that
	connection daemon and api use static, recycled bindvar array instead 
		of dynamic allocation
	modularized the bind/substitution var code in the api
	got rid of fakeBinds(), you just can't fake binds
	API call to validate binds rather than automatically doing it in the
		connection daemon
	insert/update with a NULL input bind inserts/updates a NULL now 
		instead of a ""
	added getNullsAsNulls() and getNullsAsEmptyStrings() methods so NULLs
		can be returned as either NULLs or empty strings

0.20 -  fixed sendQuery after openCachedResultSet API bug
	added ODBC connection
	fixed Oracle-related build bug
	tweaks for gcc-2.96
	added sqlr-config-gtk
	modified the NEWS file
	added support for input and output scalar bind variables
	eliminated Final queries
	eliminated Cache queries
	implemented new methods for caching
	implemented 4 stage (prepare, substitute, bind, execute) querying
	fixed unititalized variable problem in returnResultSet() 
		of libconnection
	made getRow() and getColumnNames() perl methods return arrays like 
		you'd expect them to
	fixed failure to delete semaphores/sharedmemory segments when
		killing listener bug
	zend-ized the php API more than it was.
	added api method allowing the programmer to override the function
		used to print debug messages
	php API can now print debug messages
	added copyReferences() method and functionality to C++ API to fix
		problems related to lost references and garbage-collecting
		in perl/python/php
	added substitution/bind support for long and double types
	added -version command line arg to all programs
	changed the NEWS file
	removed namespace from sqlrelay.conf, it wasn't done correctly anyway,
		maybe I'll add it back later...
	removed sendEndOfSession from Python API
	Perl, Python and PHP API's have type-independant functions/methods for
		getting fields, setting substitution and bind variables, etc.
	added substitutions and inputBinds functions to Perl, Python, PHP API's
	added getRowHash, getRowDict to Perl, Python API's
	renamed getarray to getrowassoc in PHP API
	reformatted the PHP API code
	updated docs
	Makefile tweakage
	input/output bind code in libconnection makes sure the variables exist
		in the query before trying to bind them now
	sqlr-stop removes temp files now
	handled NULLs better in substitutions and inputBinds
	removed sendField for int/floats from libconnection
	the listener can pass sockets to connection daemons now instead of
		requiring the client to reconnect

0.19 -	made sure to delete alarmhandler in main.C for all db connections
	made sure to delete each authstring before deleting the array itself
		in the listener
	major protocol changes, should be much faster and use much less
		memory
	made a lot of changes so the result set can be buffered in chunks 
		instead of all at once
	added functionality for getting the number of rows affected by an
		insert/update/delete if the back end database supports it
	if a connection receives a query, but the database is down, when it
		re-connects, it retries the query now
	fixed oracle float value problem
	added functions to python and php api's
	fixed perl bug with cached queries
	fixed bug where (query length)%511==0 and (query length)!=511
	added API test scripts
	added oracle8 connection (uses OCI8)
	renamed oracle connection to oracle7
	added support for LONG's in oracle7 connection
	added support for LOB's in oracle8 connection
	added ping and identify methods
	made isTransactional() return 1 by default, adjusted connection daemons
		in response
	made oracle connection daemons use OCI commit and rollback functions
	documented client-server protocol and connection daemon library
	fixed mysql,msql connections to work with suspended result sets
	ping was broken in most of the connections, fixed it
	defaulted sessiontimeout to 60 seconds
	fixed bug where next query after an error would fail
	sending auth/query strings work like sending the rest of the strings 
		now
	bug fix - connection calls cleanUpData() for non-select queries now
	bug fix - connection calls cleanUpData() when the result set is done 
		now
	made openCachedResultSet() leave the session open

0.18 -	handled PL_na/na conversion better in perl API
	removed redundant -fpic and unnecessary -DPIC
	fixed problem with Perl API that caused rudiments library not to be
		linked in at run-time
	fixed a bug in query.py that kept it from connecting
	bunch of --with-xxx-prefix build fixes
	fixed Solaris linker issues
	changed killsqlr to sqlr-stop and improved it
	allowed c++ to be used instead of forcing g++
	fixed mysql bench bug
	fixed a few memory leaks
	preliminary CYGWIN support
	added -s to executable compilation string and removed calls to strip
	changed build to detect a shared object version of libstdc++ and use 
		"ld -G -o" with it if there is one.  If there is only the
		static version of libstdc++.a then the build uses "c++ -Wl,-G"
		This is to provide generic support for systems with or without
		GNU ld, systems with or without a shared object version of
		libstdc++, systems with multiple versions of libstdc++ and
		perl Makefiles.
	removed libz dependancy from libxml
	fixed scaler to accurately scale connections without overrunning
		maxconnections
	added socket paramter to sqlrc_alloc in PHP API.
	output from sqlr-connections started by sqlr-scaler doesn't go to 
		/dev/null anymore
	made python API thread-happy
	changed configure script to look for libg++.so and use it if it
		finds it.  This is mainly for FreeBSD compatibility.
	postgresql/msql connections redirect their stdout/stderr to /dev/null
		now because both spew data now and then

0.17 -	commit/rollback only gets issued at end of session if any non-select
		queries were issued during the session since the last
		commit/rollback was issued
	fixed bug in API - sendEndOfSession followed by a query would fail
	added unix domain socket support
	got rid of extern "C" { #undef __cplusplus ... #define __cplusplus }
		it caused more problems than it solved
	spelled persistent correctly in the NEWS file
	added --with-xxx-prefix command line options to configure script
	fixed NULL number problem with oracle connections
	can now leave a session open and pass the port/socket to another
		client which can resume the session
	added dynamic connection scaling
	changed sendEndOfSession() to endSession() and sendLeaveSessionOpen()
		to suspendSession()
	blocked all signals but SIGINT and SIGTERM in listener
	blocked all signals but SIGINT, SIGTERM and SIGALRM in connection
	updated Python and PHP API's; converted sendEndOfSession to endSession

0.16 -	added debug command to sqlrsh
	bug fixes for queries longer than 511 characters
	updated query.py
	updated PHP module - fixed error handling, added documentation
	added perl DBD module
	fixed documentation errors
	updated the NEWS file
	added endofsession attribute to the sqlrelay:instance tag in the
		config file.  connection can now issue either a commit or
		a rollback when the client dies or ends it's session.
	fixed bug in mysql connection which caused random errors, I have no
		idea how it ever worked, but it almost always did.
	changed license on perl API to Artistic
	made connections advertise to listener via shared memory rather than
		a fifo
	added some minimal sqlrsh documentation
	fixed a long standing synchronization problem - actually the change
		was in the rudiments library, but the effect is most
		noticable here
	made the freetds connection sendNullField() when the ct_convert command
		returns a NULL instead of a string for the field value

0.15 -  config file parser fixes
	freetds connection, bench and testsuite
	added return values to returnData and returnHeader in libconnection
	bench directory compiles by default now
	listener hands off client to connection which sends data directly
		back to client instead of going through the listener first
	transmissions between client and daemons are done in blocks rather
		than character at a time now
	client/daemon protocol optimizations
	added getLongest() methods to C,C++,Perl API
	python/zope API reports errors correctly now
	python/zope API will reconnect if connection is dropped somehow
	added sqlrsh command line program
	added Python API docs
	added PHP API
	blocked SIGPIPE, handled broken pipes another way

0.14 -	documenation improvements and fixes
	added -fpic -fPIC -DPIC to CXXFLAGS
	added extern "C" and #undef/#define __cplusplus in various places
	added modes to install scripts
	Python API
	Zope Adapter
	bench directory with benchmark programs
	testsuite directory with test scripts
	updated connection code to handle double quotes, backslashes and
		semicolons correctly in every case
	updated API's to handle double quotes, backslashes and semicolons
		correctly too

0.13 -	build fix: calls to "test" are now more compatible with non-bash
		shells

0.12 -	if connection receives an end of session, it sends a commit to
		the database, or more precisely calls the commit() method
		of the connection class which, for transactional databases,
		sends a commit and for non-transactional databases, does
		nothing.
	build now succeeds with gnome-xml
	added support for SQLite and Lago databases
	build now detects a suitable cpp command and uses it when building
		the perl API instead of just calling cpp directly
	VERY preliminary work on FreeTDS (Sybase/MS SQL Server) connection

0.11 -	perldoc documentation for the perl API
	added warnings to indicate when default parameters are fallen back on
	cleaner build
	added extern "C"'s around c includes - fixed dynamic loading bugs
	added varargs functions to perl API

0.10 -	put LDFLAGS into Makefiles
	configure now adds -static to LDFLAGS to generate static binaries if
		possible (not possible when linking sqlr-connection-oracle on 
		linux) Ran into problems when dynamically linking a binary on 
		one OS release then trying to run it against the slightly 
		different libraries of another release.  Stripped, static 
		binaries run faster and use less memory than dynamically linked
		ones anyway.  The only price you pay is space on the 
		filesystem.  If you'd like dynamic linking though and think 
		that it will work for you, just remove -static from the 
		config.mk.in file before running configure or the config.mk 
		file after running configure.
	general Makefile maintenance
	reorganized code into libconnections and classes which inherit from it
		for each connection.  No more #IFDEF BUILD_XXX's.
		Connection classes for new databases should be easier to code
		now.
	moved commandline processing into listener and connection classes and
		out of the main.C files
	little optimizations here and there
	can send multiple Final queries per connection now
	can open connections to a cluster of databases or a set of replicated
		databases within a single id now
	multiple users/passwords per id
	if a connection detects that the database went down, the other 
		connections to that database don't advertise themselves
	C API
	Preliminary Perl API
	Connect string doesn't have to have a trailing semicolon now.
	Fixed mysql connection bug which caused it to never return a result 
		set.
	Oracle 8.1.5 compatibility (perhaps 8.1.x ?)

0.9 -	oops fix.  it's now possible to store " and \ in the database
	moved config file parsing routines from main into listener/connection 
		classes to help support a future plugin architecture
	reengineered Makefiles to be friendlier to non-gnu make

0.8 -	XML config file (requires libxml-1.8.7 or newer)
	fixed a bug where connections could fail to advertise

0.7 -	added PostgreSQL support
	added mSQL support

0.6 -	documentation installs now
	added MySQL support
	fixed some documentation typo's

0.5 -	more robust build/install/uninstall

0.4 -	configure based install. 
	Reorganization of includes.
	make install/uninstall directives.
	Got rid of RCS.

0.3 -	Stability fixes.
	Synchronization fixes.

0.2 -	First Release. Totally different from 0.1.
	
0.1 -	Not Released.