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.
|