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 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789
|
2023-01-13 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: bumped version to 1.9.0.
2022-06-08 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Declare new (-committed) method.
* SQLClient.m:
* SQLClientPool.m:
Implement -committed to return the count of transactions committed by
a client or pool. Update -description to report that too.
2022-06-08 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Declare new (-setOptions:) method.
* SQLClient.m: Implement stub for new method and add code to call it
to register any optional configuration, passing the configuration
dictionary as a parameter.
* Postgres.m: Implement new method to store configuration information
and use sslmode option if (and only if) it is set to require an
encrypted connection.
2020-09-01 Wolfgang Lux <wolfgang.lux@gmail.com>
* SQLClient.m (release): Reinstate fix to avoid deadlock while
purging pool.
2020-04-21 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Change notification code to de-duplicate notifications
if/when postgres sends many copies of the same notification at the
same time. Also change the code to queue notifications in the thread
that received them (as documented) and only queue them in the main
thread if the receiving thread does not have an active run loop.
2020-04-13 Wolfgang Lux <wolfgang.lux@gmail.com>
* MySQL.m (backendQuery:recordType:listType:):
Change argument types to match those of the overridden base class
implementation to make the override work with the GNUstep
Objective-C runtime.
2020-04-08 Wolfgang Lux <wolfgang.lux@gmail.com>
* SQLClient.m (clientWithConfiguration:name:):
* SQLClient.m (initWithConfiguration:name:pool:):
Eventually reconfigure a client connection that gets reused.
2020-03-21 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Don't attempt to establish connection before query or
execute (the superclass should do it).
* SQLClient.m: Ensure connection is established before calling backend
methods where possible. Add timing to establishment of connection.
2020-02-27 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Make the code aware of the tiny string class used by
the gnustep base library. Treat tiny strings as literal strings
because, unfortunately, we can't tell if they were created at
compile time or at run time.
2020-02-25 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Changes to -release to avoid deadlock purging pool.
2020-02-14 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Re-implement SQLString as a true subclass rather than
using trick depending on internals of gnustep-base (which change with
the ObjC-2.0 ABI and would break).
2020-02-11 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Remove redundant -prepareQuery: method.
* SQLClient.m: Remove redundant -prepareQuery: method and redundant
code from query building methods.
* SQLClientPool.m: Remove redundant -prepareQuery: method and redundant
code from query building methods.
2020-01-22 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Fix notification posting to refrain from coalescing.
2019-12-11 Wolfgang Lux <wolfgang.lux@gmail.com>
* Postgres.m: Hide database connection password from debug logs.
2019-08-06 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClientPool.m: Fix error specifying query string in exceptions
2019-07-29 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Improve logging of cache queries to indicate that
the query was from the cache and whether it was a it or a miss.
2019-07-14 Wolfgang Lux <wolfgang.lux@gmail.com>
* SQLClient.h
* SQLClientPool.m:
Hide definition of SQLClientPoolItem from the public interface,
as it is incompatible with automatic reference counting.
2019-05-03 Wolfgang Lux <wolfgang.lux@gmail.com>
* SQLClient.m:
Rewrite release method to work with version 1.9 of the GNUstep
Objective-C runtime system and also Apple's runtime.
2019-03-07 Wolfgang Lux <wolfgang.lux@gmail.com>
* SQLClient.m:
Fix insertTransaction:atIndex: to work as advertised and insert at
the specified index.
2019-03-07 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: fix to make the result of a prepare method contain
'literal' strings.
In -begin do not set the flag to say we are in a transaction until
the statement has actually executed.
2019-02-28 Wolfgang Lux <wolfgang.lux@gmail.com>
* Postgres.m:
Fix minor space leak in the Postgres backendConnect method.
2019-02-28 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* SQLClientPool.m:
Add -prepareQuery:... method and make simpleQuery methods check that
they are given a literal (or proxy);
2019-02-19 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Remove transaction merging (deprecated in 2015).
2019-01-24 Wolfgang Lux <wolfgang.lux@gmail.com>
* Postgres.m (backendQuery:recordType:listType:):
Fix optimization to reuse small data values in query results so
that it actually works.
2018-11-23 Wolfgang Lux <wolfgang.lux@gmail.com>
* SQLClient.h:
* SQLClient.m:
* SQLClientPool.m:
Use a double for the argument of quoteFloat: and replace the
inappropriate %f conversion by %.17g to avoid loss of precision
when quoting floating-point numbers.
2018-07-27 Yavor Doganov <yavor@gnu.org>
* SQLClient.m: Fix some spelling errors.
2018-06-28 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Make SQLTransaction thread-safe, also add -lock and -unlock methods
to allow a sequence of other methods to be called without another
thread interfering. Add -setResetOnExecute: method to configure a
transaction to be automatically reset on successful execution.
2018-04-16 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix error checking for nil values when preparing with
a dictionary. This should make the {key?default} syntax work.
2017-09-19 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Simplify observation of database notifications ... one observation per
name per observing object.
2017-07-27 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Temporarily restore earlier behavior ...
Autoquote warnings off by default.
Connection retries off by default.
In future releases the plan is to
a. have connection attempts retried forever by default
b. first turn on warnings about autoquote issues by default
c. later, rurn on autoquote by default
2017-07-27 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Have connection attempts automatically retried (blocking
indefinitely). Have queries and statements outside a transaction
automatically retried if they fail due to loss of connection.
2017-08-25 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Cache the file descriptor to fix problem in cleanup
when postgres returns -1 from PQsocket() as we are trying to remove
descriptor from run loop. Also fix error in unlisten where we would
stop monitoring the descriptor prematurely.
2017-08-15 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Add code so that if the database connection is lost
while we are listening for notifications from it, we notice that
and clean up properly rather than continuing to process/ignore a
stream of end-of-file events on the dead descriptor.
2017-07-04 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* SQLClientPool.m:
* Postgres.m:
Lots of changes introducing new concept of a 'literal' as a string
which does not need to be quoted (and must not be autoquoted).
Quoting via the -quote: method now raises an exception if the
argument is not supported, but we have a new method to allow
classes to provide a mechanism for quoting themselves (ie to add
support for them being using in SQL queries/statements).
2017-06-29 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
New method to control warnings (on by default) about strings which
would automaticaly be quoted when autoquote is turned on.
2017-04-07 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m:
Fix leak of SQLString instances caused by inheriting memory management
methods from the literal string class.
2017-03-06 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* SQLClientPool.m:
Add new +literal: and -literal: methods to make a normal string into
one recognised as suitable for use literally (ie without quoting) in
an SQL query/statement.
Add +setAutoquote: method to turn on automatic quoting of non-literal
strings as an aid to avoiding SQL injectiuon attacks.
2016-10-19 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Wolfgang spotted that the asynchronous notification
code is not thread safe ... we must not have one thread handle a
notification at the same time that another is trying to use the
database connectionto execute a query/statement.
Use the client's lock to prevent that from happening.
2016-10-18 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Make -addObserver:selector:name: raise if applied to a client in a
pool. Improve documentation to make it clear that pool clients
can't be used as observers of database notifications.
2016-06-23 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fixup to use case sensitive notification names.
2016-06-21 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* SQLClientPool.m:
Allow easy removal of all database notification observers.
Remove all observers when a client is returned to a pool.
Postgres.m:
Implement asynchronous notification by watching descriptor.
2016-05-06 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix bug in initialisation ordering.
* Postgres.m: Fix bug in array parsing.
2016-04-27 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Add -isNull helper method for testing for null fields in records
returned from the database.
2016-02-18 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: get host and cpu with more recent gnustep-make
* configure: regenerate
* JDBC.m: Update for connection pools (bug #47178)
* testJDBC.m: get rid of compiler warnings
2015-07-22 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: disconnect on fatal error, so we don't keep trying to
re-use the same connection when there's a problem with the server.
2015-07-23 Wolfgang Lux <wolfgang.lux@gmail.com>
* SQLClient.m (initialize): Restore initialization of NSDateClass
so that dates are quoted correctly irrespective of their current
format.
2015-07-22 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClientPool.m:
Change internal pool data to allow for storing reference counts and
the threads which own each client connection.
Support exclusive and non-exclusive clients in the pool, where an
exclusive client is one which is only usable by the code which
fetched it from the pool, but a non-exclusive client may be provided
to other code in the same thread.
Change behavior of -provideClient and -provideClientBeforeDate: to
provide non-exclusive clients.
Add -provideClientExclusive and -provideClientBeforeDate:exclusive:
to support the old behavior.
2015-07-17 Niels Grewe <niels.grewe@halbordnung.de>
* Postgres.m: Support for "char"[] parsing.
2015-07-16 Wolfgang Lux <wolfgang.lux@gmail.com>
* Postgres.m (newDateFromBuffer): Use local time zone instead of
GMT when parsing a date without a time zone.
2015-06-29 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* SQLClientPool.m:
Implement another missing convenience method.
Fix locking error when executing a batch.
Add -prepare:with: method for use by transactions.
Add -owner method to get a transaction's owner.
2015-06-27 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* SQLClientPool.m:
Implement -batch: method for client pools.
2015-06-26 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* SQLClientPool.m:
Implement -transaction method for client pools so that we can build
a transaction which, when executed, will use any available client
from the pool.
Support setting of the client name for clients in a pool.
2015-06-25 Niels Grewe <niels.grewe@halbordnung.de>
* SQLClient.[hm]: Add an accessor method to obtain the SQLClientPool
object owning a specific SQLClient.
2015-06-25 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Add -name method for pools.
* SQLClient.m: Match documentation and use 'Database' as default name.
* SQLClientPool.m: Add -name method and fix default name.
2015-06-19 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Fix error parsing timezone in date.
2015-06-09 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix race condition spotted by Wolfgang and change
purge operation to avoid disconnecting clients while the class lock
is locked.
2015-05-28 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Add pool purge control method.
* SQLClient.m: Fix bug finding least recently used client.
* SQLClientPool.m: Refine purging of pool. Fix autorelease bug.
Improve diagnostics. Fix bug reporting time pool has blocked.
2015-05-27 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: bugfixes
* SQLClient.m: bugfix for finding oldest idle connection
* SQLClientPool.m: implement method to disconnect idle connections
in pool. also check for clients being returned to pool while a
transaction is still in progress.
2015-04-30 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m:
* testPostgres.m:
Fix error parsing timestamps in arrays when the server quoters them.
Also optimise string allocation, and add some tests.
2015-04-28 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* Postgres.m:
Deprecate transaction merging.
Rewrite SQLRecord concrete class to use a new SQLRecordKeys object
shared between all the records produced by a query (as a performance
enhancement for large queries).
2015-04-15 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: notifications are posted in main thread.
2015-04-13 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClientPool.m:
Make sure clients provided temporarily in convenience methods are
swallowed by the pool again as soon as possible. Also trap and
re-raise exceptions after swallowing provided client, to avoid
the client being in use longer than necessary after an exception.
Also, avoid taking clients from the pool in a few cases wehere we
don't actually need to.
Add -cache method for SQLClientPool.
2015-04-12 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Expose method to add statement for insertion of data objects to
transaction.
2015-04-09 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Add array quoting method for pool. Add pool ivar.
* SQLClientPool.m: Implement array quoting and change other quoting
to use new ivar rather than expensive provide/swallow sequence.
2015-04-01 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* Postgres.m:
Fixup notification posting to be asynchronous using the default
notification queue for the thread so that the notifications do
not get delivered while the query/statement at which they were
detected is still in progress.
Add method to explicitly grab/release the client for the current
thread.
2015-03-11 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClientPool.m: Fixup for exposing prepare method
* SQLClient.h:
* SQLClient.m:
* Postgres.m:
* testPostgres.m:
Add simple array support for char/varchar/text, integer/real,
timestamp, bool and bytea. When a query returns an array of
one of these types, the resulting object is an NSArray containing
the database array elements rather than an NSString containing the
string literal representation of the database array.
Also added a method to convert an NSArray to a string literal
representation of a database array.
2015-03-02 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.h: Drop support for old versions of postgres which didn't
support standard conforming strings. This allows us to always turn
on standard conforming strings and be able to quote string and bytea
objects whether the database connection has been established or not.
* GNUmakefile:
Bumped version to 1.8.4.
2014-12-11 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* GNUmakefile:
Expose method to prepare a statement and a convenience method to
check for an existing cached value (using a prepared statement
as the cache key).
Bumped version to 1.8.3.
2014-12-11 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Fix minor thread safety issue.
* SQLClient.h:
* SQLClient.m:
* SQLClientPool.m:
Convenience methods to let a pool act as a client for any one-off op.
2014-11-19 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: bump version to 1.8.2 for bugfix release.
* Postgres.m: Fix error handling TIME fields.
2014-11-04 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: bump version to 1.8.1 for connection pool tweaks.
2014-10-13 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* SQLClientPool.m:
Keep connections in pools outside the normal count of maximum number
of concurrent connections. If we are using a pool then we must
assume we want the pool to operate to its configured capacity.
2014-10-07 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Add locking of the database client by SQLTransaction
in case another thread tries to use the client whjile the transaction
is using it (ie between an attempted transaction and a rollback if
it fails).
2014-10-02 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: On exception during SQLTransaction -execute, roll back.
2014-09-24 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: An SQL exception/error should not automatically
disconnect.
2014-09-10 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m:
Fix error in [-setUser:] ... was checking wrong instance variable
to see if the user changed.
2014-08-09 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Redesign merging to give control over the number of statements
merged and to make merging an attribute of the transaction
rather than something done by a specific method.
2014-08-08 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Add merging of insert/update statements in a transaction.
2014-07-17 Yavor Doganov <yavor@gnu.org>
Install bundles in a versioned directory.
* GNUmakefile (BUNDLE_INSTALL_DIR): Append the interface version.
* GNUmakefile.preamble (ADDITIONAL_CPPFLAGS): Define.
* SQLClient.m (-_configure:): Load bundles from the versioned
directory.
2014-07-11 Yavor Doganov <yavor@gnu.org>
* GNUmakefile (SQLClient_LIBRARIES_DEPEND_UPON): Add $(FND_LIBS)
and $(OBJC_LIBS).
2014-06-20 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: bump version to 1.8.0 for next release (will break
binary compatibility due to changes for pools adding ivars).
2014-06-20 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Add SQLClientPool, new method to check idle clients
and new initialiser.
* SQLClient.m: Changes to support pools of clients and permit a pool
to contain multiple clients with the same config.
* SQLClientPool.m: new class to provide a pool of clients with the
same config.
2014-05-27 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Warn about not using the database inside a
notification handler.
* Postgres.m: Add locking around database operations caused
by asynchronous arrival of a notification.
* GNUmakefile: new subminor version for bugfix release
* Version 1.7.3: released
2014-05-19 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: More locking to try to protect all access to the
database connection.
* GNUmakefile: new subminor version for bugfix release
* Version 1.7.2: released
2014-05-13 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m:
Fix tiny window in which a connection could be unlocked yet have
the flag set to say it is in a transaction (thus potentially
allowing a locking consistency error).
Add locking to protect setting/changing configuration.
2014-05-08 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: new subminor version for bugfix release
* Version 1.7.1: released
2014-04-12 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m:
Fix error removing database observer when last name is removed.
2014-03-05 Wolfgang Lux <wolfgang.lux@gmail.com>
* Postgres.m (backendExecute:):
Fix incorrect comparison operator.
2014-02-21 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Add mutable copy implementation so that set and dictionary builders
can be used by caching queries without raising an exception ... the
mutable copy of the helper's content is what gets cached.
2014-02-15 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Add helper for building counted set from query.
2013-09-06 Richard Frith-Macdonald <rfm@gnu.org>
* Version 1.7.0: released
2013-09-05 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Use NSUInteger for sizeInBytes:
2013-04-10 Richard Frith-Macdonald <rfm@gnu.org>
* ECPG.pgm:
* MySQL.m:
* Oracle.pm:
* Postgres.m:
* SQLClient.h:
* SQLClient.m:
* GNUmakefile:
Change behavior to no longer trim leading and trailing space from
values retrieved from database by default.
Add method to restore automatic trimming for a connection if needed.
2013-03-04 Richard Frith-Macdonald <rfm@gnu.org>
* Version 1.6.1: released
2013-03-04 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Add helper classe interfaces.
* SQLClient.m: Add helper classe implementations.
Add performance helper classes for when querying a set of records
containing single values and when querying a dataset which contains
key/value pairs more naturally haqndled as a dictionary than an array.
2013-02-11 Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
* ECPG.pgm
* testECPG.m
* testMySQL.m
* testSQLite.m
use PRIuPTR to NSLog NSUIntegers
2013-01-31 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Check for -disconnect being called when inside a
transaction and handle locking properly in that case.
Change simple execute and query methods so they don't call -debug:
inside locked regions, in case the method has been overridden to
do something not safe in such locked sections (such as trying a
query in another thread to report extra debug info).
2012-11-29 Richard Frith-Macdonald <rfm@gnu.org>
* Wrap more code in exception handlers where there is any potential
for an exception in a lock protected region.
2012-11-10 Niels Grewe <niels.grewe@halbordnung.de>
* GNUmakefile: Link against $(FND_LIBS) and $(OBJC_LIBS) instead
of -lgnustep-base and -lobjc.
2012-10-22 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* Postgres.m:
* GNUmakefile:
Add support for asynchronous notifications and bump version number.
2012-10-18 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* ECPG.pgm:
* MySQL.m:
* Postgres.m:
* Oracle.pm:
* SQLite.m:
* JDBC.m:
* testPostgres.m:
Change execute methods to return a count of the rows to which the
executed operation applies, or -1 if not supported.
Implement for postgresql and mysql.
2012-06-17 Richard Frith-Macdonald <rfm@gnu.org>
* Improve check for compatibility of transactions between clients.
2011-09-30 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: try to use pg_config if available.
* configure: regenerate
* Postgres.m: Fix to handle new bytea with \x format
* GNUmakefile: Bump to 1.5.3
2011-04-01 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Cleanup locking on -begin/-commit/-rollback
* Version 1.5.2: bump version number
2011-04-01 Richard Frith-Macdonald <rfm@gnu.org>
* Version 1.5.1: bump version number
2010-11-17 Nicola Pero <nicola.pero@meta-innovation.com>
* GNUmakefile.postamble: Uncommented .PRECIOUS for ECPG and
Oracle, so that typing 'make' does nothing when everything is
already built.
2010-08-13 Richard Frith-Macdonald <rfm@gnu.org>
* MySQL.m: Try to recognise loss of connection.
Fix bug in timezone management.
2010-07-16 Richard Frith-Macdonald <rfm@gnu.org>
* MySQL.m: Add support for TEXT data and for MySQL's failure to support
timezones. Also add support for multiple statements in a batch.
2010-07-16 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Improve check for mysql library.
2010-02-15 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Just include Foundation.h, fix minor doc errors
* GNUmakefile: Add documentation flag to avoid warning.
2010-01-29 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Fix to cope with a new date format in recent postgres.
2009-11-18 Richard Frith-Macdonald <rfm@gnu.org>
Many tweaks to build under OSX snow leopard.
2009-10-27 Richard Frith-Macdonald <rfm@gnu.org>
* ECPG.pgm:
* MySQL.m:
* Postgres.m:
* Oracle.pm:
* SQLite.m:
* JDBC.m:
Don't call -backendConnect or -backendDisconnect ... should be using
the public API so that notifications are sent properly.
2009-10-01 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: workaround autoconf bug.
* configure: regenerate
2009-09-16 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Add convenience method to convert array of rows into an array of
columns.
2009-09-08 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Add method for executing a batch of statements/transactions and
returning any failed statements/transactions to they can be
re-done. Also add methods to manipulate the statements in a
transaction so we can retry things intelligently.
2008-11-12 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Add support for tracking the number of consecutive connection failures
and imposing a delay between connection attempts.
* JDBC.m: fix typo
* GNUMmakefile: bump version
2008-07-19 Nicola Pero <nicola.pero@meta-innovation.com>
* configure.ac: Documented the --with-additional-include=,
--with-additional-lib=, --with-postgres-dir= and
--with-jre-architecture= options.
* configure: Regenerated.
* config.h.in: Regenerated.
2008-03-03 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* ECPG.pgm:
* MySQL.m:
* Postgres.m:
* SQLite.m:
* JDBC.m:
Alter to allow control of both the way records are strored and
the way they are listed ... so people can make performance
optimisations.
2008-02-21 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Experimental new method to set a thread to do all cached
queries on and to perform asynchronous updates if other
threads request information which is in the cache but
past its expiry date. Should allow threads to use
config information from a database without blocking
unnecessarily.
2008-02-15 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix memory leak when executing transaction.
2007-10-23 Richard Frith-Macdonald <rfm@gnu.org>
Postgres.m: Use E'...' syntax for bytea if it is available.
2007-09-14 Richard Frith-Macdonald <rfm@gnu.org>
Update to LGPL3
2007-07-21 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix retasin bug copying transactions.
* JDBC.m: Update for new batch code
2007-07-09 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Post notifications upon connect and disconnect.
2007-07-07 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix error causing loss of some debug output when an
exception occurs in a transaction.
Rewrite transaction code to support execution with automatic retry of
statements when batching.
* JDBC.m: Update for new transaction code
2007-04-01 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* testSQLite.m:
* testJDBC.m:
* MySQL.m:
* Postgres.m:
* GNUmakefile:
* SQLite.m:
* JDBC.m:
* testMySQL.m:
* testPostgres.m:
* testECPG.m:
Updates to build on MacOS-X with apple-apple-appple
2007-03-08 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* MySQL.m:
* ECPG.pgm:
* Postgres.m:
* Oracle.pm:
* SQLite.m:
* JDBC.m:
Add KVC support for SQLRecord. Make SQLRecord into a class cluster
with a single concrete implementation for now. Extend API to allow
specifying of an alternative SQLRecord subclass when doing a query
so that query results can be efficiently stored into custom subclasses
rather than having to first be retrieved into an SQLRecord and then
copied.
2007-02-14 Nicola Pero <nicola.pero@meta-innovation.com>
* GNUmakefile (BUNDLE_INSTALL_DIR): Set using GNUSTEP_BUNDLES,
not GNUSTEP_INSTALLATION_DIR.
2007-01-29 Richard Frith-Macdonald <rfm@gnu.org>
* JDBC.m: Add JDBC2.0 batching for when all statements in a
transaction are simple (ie no NSData arguments) and the batch
API is supported by the driver.
* testJDBC.m: Add simple transaction/batch test.
2007-01-29 Richard Frith-Macdonald <rfm@gnu.org>
* JDBC.m: Add support for SQLTransaction class to batch JDBC
operations.
2006-12-24 Richard Frith-Macdonald <rfm@gnu.org>
* JDBC.m: Don't store pointer to jni information in local variable
until after we have opened the connection to the database, or we
may be using a null pointer and generate a crash.
2006-12-22 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: save/restore LIBS after jdbc check so that other
tests don't try to link jre
2006-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
* GNUmakefile.wrapper.objc.preamble (ADDITIONAL_LIB_DIRS): Added
variable so that the wrapper compiles before the library is installed.
2006-10-02 Nicola Pero <nicola.pero@meta-innovation.com>
* configure.ac: Do not read gnustep configuration which is never
used.
* configure.ac: Added --disable-jdbc-bundle,
--disable-mysql-bundle, --disable-sqllite-bundle,
--disable-postgres-bundle flags to be able to turn some bundles
off (regardless of config results).
* configure: Regenerated.
2006-10-01 Graham J Lee <graham.lee@operatelecom.com>
* configure.ac: Fix to use GNUSTEP_CONFIG_FILE environment variable.
2006-09-14 Richard Frith-Macdonald <rfm@gnu.org>
* JDBC push and pop local frames to avoid memory leaks.
2006-08-03 Nicola Pero <nicola.pero@meta-innovation.com>
* SQLClient.m ([SQLClient -quoteString:]): Renamed local variable
that had the same name as the method argument.
2005-06-23 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: transaction efficiency tweak.
* GNUmakefile: bump version to 1.3 as the new blob marker changes and
postgres quoting changes alter behavior.
2005-06-04 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: avoid useless compiler warnings.
2005-05-25 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Check for new postgres string escaping
* configure: Regenerate
* SQLClient.h: Add quoteString method for subclasses to override
* SQLClient.m: Add new method and change marker for blobs to be
one that shouldn't occur in a quoted string.
* SQLite.m: Use new blob marker
* MySQL.m: Use new blob marker
* config.h.in: Add new postgres escaping function
* Postgres.m: Handle new escaping
* testPostgres.m: Add check for escaping odd characters.
2005-02-22 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Support quoting of NSArray and NSSet objects.
2006-01-11 Nicola Pero <nicola@brainstorm.co.uk>
* configure.ac: Do not source GNUSTEP_CONFIG_FILE if it doesn't
exist, so that the library can be used with older versions of
gnustep-make/gnustep-base too. :-)
* configure: Regenerated.
2005-11-23 Richard Frith-Macdonald <rfm@gnu.org>
Added SQLite backend support.
2005-11-14 Richard Frith-Macdonald <rfm@gnu.org>
Factor out WebServer into separate library, and timer and caching
stuff into Performance library. Make this library depend on the
Performance library.
2005-10-27 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Add more accurate timestamps and implement request
and session duration logging. Also add a unique session ID number
to each log to make it easy to track requests on a session.
2005-09-28 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile.wrapper.objc.preamble: new file
* SQLClient.jigs: new file
* GNUmakefile: Provide java wrappings for SQLClient and friends
2005-09-28 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: boost performance of quoting a little.
Provide -count method for transactions.
2005-09-26 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Clean up caching/timestamps.
* SQLClient.m: ditto.
2005-09-22 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Rewrite caching, and expose cache for external use.
* SQLClient.m: ditto.
2005-09-20 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: make SQLRecord modifieable (replace values).
* SQLClient.m: ditto.
2005-09-15 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Locate postgres 8.0 on debian
* configure: regenerate
2005-08-03 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: Add SQLClient_LIBRARIES_DEPEND_UPON for apple as
suggested by Yen-Ju Chen.
* SQLClient.m: Don't call allocation debug functions on apple,
and avoid bogus apple compiler warning.
Guard against nil object passed to NSMapRemove() ... the apple
implementation crashes on this.
2005-08-02 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: Don't build WebServer stuff on MacOS-X when using the
apple runtime (and presumably foundation).
2005-07-07 Richard Frith-Macdonald <rfm@gnu.org>
* MySQL.m:
* SQLClient.m:
* WebServer.h:
* WebServer.m:
Tweaks to keep gcc-4 happy (signedness issues) and add support for
using separate ssl conmfig for different IP addresses.
2005-06-21 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Expand tilde in paths searched for backend bundles.
2005-05-25 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Clear connection if an exception occurs while
disconnecting ... otherwise a failed disconnect can prevent
any new connection from being established.
Improve quoting of strings to be a bit more efficient and to
remove nul characters.
2005-05-09 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.[hm]: Add method to encode a form from a dictionary
into a data object ... convenience for where form data is needed.
2005-03-02 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.[hm]: Add support for basic http authentication either
via username/password pairs in property list or in database table.
* SQLClient.[hm]: Add methods to query database with local caching
of results, for use on systems needing high performance, where
database query (and/or database client-server comms) overheads are
important.
2005-02-25 Adam Fedor <fedor@gnu.org>
* Version 1.1.0:
* GNUmakefile: Add version.
* README: Add ftp location.
Sat Feb 19 04:20:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* Makefile: Build two versions of each bundle with different library
linkage for systems where dybnamic linker symbol visibility differs.
* SQLClient.m: Try alternative bundle versions.
Mon Jan 07 15:20:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* Makefile: Bump version.
* SQLClient.h: Improve documentation.
Sat Dec 18 06:00:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Fix bug in substitution of nil values into templates.
Add new method to vend static pages.
Wed Dec 15 13:10:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* MySQL.m, Postgres.m, ECPG.pgm: Do NSLog() logging of field
information only when debug level is greater than 1.
Fri Dec 10 10:50:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: Remove unnecessary libraries from link commands for
bundles. On Darwin, specifying these leads to multiply defined
symbols when an executable attempts to load the bundle.
Fri Nov 19 14:40:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: parse basic authentication infor and set it in extra
headers in request.
* WebServerBundles.m: support handling of paths longer than the
ones set for each bundle.
Tue Nov 11 14:48:05 2004 Nicola Pero <n.pero@mi.flashnet.it>
* GNUmakefile (BUNDLE_INSTALL_DIR): install bundles in
GNUSTEP_INSTALLATION_DIR, not GNUSTEP_LOCAL_ROOT.
Tue Nov 09 10:20:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.hm: add ([-append:]) method to merge transactions.
Thu Oct 28 08:45:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Don't generate alert about connection with empty
request if we have lready handled a request and reset.
Tue Oct 26 16:50:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: debug and duration logging should be turned off
by default ... a different value crept in somehow.
Sat Oct 9 14:29:35 2004 Nicola Pero <n.pero@mi.flashnet.it>
* SQLClient.m ([SQLClient -simpleExecute:]): Fixed logging
durations and statements in transactions.
Thu Oct 08 10:30:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: Add ([-quotef:,...]) to perform efficient quoting
of a string produced using printf style format and arguments.
Thu Oct 07 10:30:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: Optimise timing operations somewhat.
Wed Oct 06 15:04:23 2004 Nicola Pero <n.pero@mi.flashnet.it>
* WebServer.h: Fixed typo in parameter name.
Wed Oct 06 13:10:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: Allow a database transaction to already have been
begun when [SQLTransactiuon-execute] is called, so we can have
queries in the same database transaction as a list of statements.
Wed Oct 06 06:15:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: Make the rollback opoeration a safe no-op if
there is no transaction in progress.
* Postgres.m: Improve exception text by reporting the offending
SQL statement(s).
Fri Sep 17 16:55:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: When reporting the duration of a commit or
rollback, report text of all the statements in the transaction.
Fri Aug 28 09:30:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.[hm]: Add support for limiting maximum number of incoming
sessions permitted from mone host.
Tue Aug 24 14:30:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.[hm]: Add support for HTTP/1.1 persistent connections.
Sun Aug 22 10:35:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: Add ([SQLRecord-dictionary]) and tidy/comment the
class a bit better.
Sat Aug 07 14:25:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Add session timeouts to kill off idle sessions.
Tue Jul 27 17:30:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Give more help when postgres is not found.
* configure: regenerate
Mon Jul 26 09:50:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Add -transaction method and SQLTransaction class
* SQLClient.m: Implement -transaction method and SQLTransaction class
to provide a simple convenient mechanism for executing a sequence
of statements as a single transaction.
Thu Jul 15 09:40:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: ([_didRead:]) more informative logging upon reading
an unexpected end-of-file
Wed Jul 14 12:07:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Check for PQfformat in libpq, if it is not there
but the library is there, warn that it is too old.
Thu Jul 02 17:40:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Add control over character encoding used to
interpret form data.
Thu Jul 02 13:25:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Fix error response when an exception occurs.
Thu Jul 01 18:00:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Make ([setPort:secure:]) return a status.
* WebServerBundles.m: Check that web server is able to start.
* WebServer.h: ditto
Wed Jun 30 05:40:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: Use ./obj as location for library to link,
for initial case where we link the bundles before installing
the library.
* WebServer.m: Add casts to prevent compiler warning.
* Postgres.m: Commented out NSLog() left over from debugging.
Tue Jun 29 18:10:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix code for retrieving reference name ... look in
the config dictionary first, and in user defaults if not found
there.
* SQLClient.h: Document change.
* GNUmakefile: Link bundles with the library to ensure that they
find the SQLRecord class when loaded.
Mon Jun 28 12:55:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.h: New file.
* WebServer.m: New file.
* WebServerBundles.m: New file.
* SQLClient.h: Mention WebServer.
* GNUmakefile: Build WebServer classes.
Added framework to make it easy to use SQLClient to produce
standalone http/https applications, such as accepting POST'ed
records for addition to a database.
Fri May 07 09:15:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
Add methods to log duration of any statements over a certain
limit.
Tidy instance variables ... prefix mprivate ones with underscore.
Install header!
Thu Apr 29 15:20:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Fix URLs in documentation as suggested by Adam.
* SQLClient.html: regenerate
Mon Apr 26 16:20:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
Initial checkin of library.
2009-10-01 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: workaround autoconf bug.
* configure: regenerate
2009-09-16 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Add convenience method to convert array of rows into an array of
columns.
2009-09-08 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Add method for executing a batch of statements/transactions and
returning any failed statements/transactions to they can be
re-done. Also add methods to manipulate the statements in a
transaction so we can retry things intelligently.
2008-11-12 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Add support for tracking the number of consecutive connection failures
and imposing a delay between connection attempts.
* JDBC.m: fix typo
* GNUMmakefile: bump version
2008-07-19 Nicola Pero <nicola.pero@meta-innovation.com>
* configure.ac: Documented the --with-additional-include=,
--with-additional-lib=, --with-postgres-dir= and
--with-jre-architecture= options.
* configure: Regenerated.
* config.h.in: Regenerated.
2008-03-03 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* ECPG.pgm:
* MySQL.m:
* Postgres.m:
* SQLite.m:
* JDBC.m:
Alter to allow control of both the way records are strored and
the way they are listed ... so people can make performance
optimisations.
2008-02-21 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
Experimental new method to set a thread to do all cached
queries on and to perform asynchronous updates if other
threads request information which is in the cache but
past its expiry date. Should allow threads to use
config information from a database without blocking
unnecessarily.
2008-02-15 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix memory leak when executing transaction.
2007-10-23 Richard Frith-Macdonald <rfm@gnu.org>
Postgres.m: Use E'...' syntax for bytea if it is available.
2007-09-14 Richard Frith-Macdonald <rfm@gnu.org>
Update to LGPL3
2007-07-21 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix retasin bug copying transactions.
* JDBC.m: Update for new batch code
2007-07-09 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Post notifications upon connect and disconnect.
2007-07-07 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix error causing loss of some debug output when an
exception occurs in a transaction.
Rewrite transaction code to support execution with automatic retry of
statements when batching.
* JDBC.m: Update for new transaction code
2007-04-01 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* testSQLite.m:
* testJDBC.m:
* MySQL.m:
* Postgres.m:
* GNUmakefile:
* SQLite.m:
* JDBC.m:
* testMySQL.m:
* testPostgres.m:
* testECPG.m:
Updates to build on MacOS-X with apple-apple-appple
2007-03-08 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h:
* SQLClient.m:
* MySQL.m:
* ECPG.pgm:
* Postgres.m:
* Oracle.pm:
* SQLite.m:
* JDBC.m:
Add KVC support for SQLRecord. Make SQLRecord into a class cluster
with a single concrete implementation for now. Extend API to allow
specifying of an alternative SQLRecord subclass when doing a query
so that query results can be efficiently stored into custom subclasses
rather than having to first be retrieved into an SQLRecord and then
copied.
2007-02-14 Nicola Pero <nicola.pero@meta-innovation.com>
* GNUmakefile (BUNDLE_INSTALL_DIR): Set using GNUSTEP_BUNDLES,
not GNUSTEP_INSTALLATION_DIR.
2007-01-29 Richard Frith-Macdonald <rfm@gnu.org>
* JDBC.m: Add JDBC2.0 batching for when all statements in a
transaction are simple (ie no NSData arguments) and the batch
API is supported by the driver.
* testJDBC.m: Add simple transaction/batch test.
2007-01-29 Richard Frith-Macdonald <rfm@gnu.org>
* JDBC.m: Add support for SQLTransaction class to batch JDBC
operations.
2006-12-24 Richard Frith-Macdonald <rfm@gnu.org>
* JDBC.m: Don't store pointer to jni information in local variable
until after we have opened the connection to the database, or we
may be using a null pointer and generate a crash.
2006-12-22 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: save/restore LIBS after jdbc check so that other
tests don't try to link jre
2006-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
* GNUmakefile.wrapper.objc.preamble (ADDITIONAL_LIB_DIRS): Added
variable so that the wrapper compiles before the library is installed.
2006-10-02 Nicola Pero <nicola.pero@meta-innovation.com>
* configure.ac: Do not read gnustep configuration which is never
used.
* configure.ac: Added --disable-jdbc-bundle,
--disable-mysql-bundle, --disable-sqllite-bundle,
--disable-postgres-bundle flags to be able to turn some bundles
off (regardless of config results).
* configure: Regenerated.
2006-10-01 Graham J Lee <graham.lee@operatelecom.com>
* configure.ac: Fix to use GNUSTEP_CONFIG_FILE environment variable.
2006-09-14 Richard Frith-Macdonald <rfm@gnu.org>
* JDBC push and pop local frames to avoid memory leaks.
2006-08-03 Nicola Pero <nicola.pero@meta-innovation.com>
* SQLClient.m ([SQLClient -quoteString:]): Renamed local variable
that had the same name as the method argument.
2005-06-23 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: transaction efficiency tweak.
* GNUmakefile: bump version to 1.3 as the new blob marker changes and
postgres quoting changes alter behavior.
2005-06-04 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: avoid useless compiler warnings.
2005-05-25 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Check for new postgres string escaping
* configure: Regenerate
* SQLClient.h: Add quoteString method for subclasses to override
* SQLClient.m: Add new method and change marker for blobs to be
one that shouldn't occur in a quoted string.
* SQLite.m: Use new blob marker
* MySQL.m: Use new blob marker
* config.h.in: Add new postgres escaping function
* Postgres.m: Handle new escaping
* testPostgres.m: Add check for escaping odd characters.
2005-02-22 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Support quoting of NSArray and NSSet objects.
2006-01-11 Nicola Pero <nicola@brainstorm.co.uk>
* configure.ac: Do not source GNUSTEP_CONFIG_FILE if it doesn't
exist, so that the library can be used with older versions of
gnustep-make/gnustep-base too. :-)
* configure: Regenerated.
2005-11-23 Richard Frith-Macdonald <rfm@gnu.org>
Added SQLite backend support.
2005-11-14 Richard Frith-Macdonald <rfm@gnu.org>
Factor out WebServer into separate library, and timer and caching
stuff into Performance library. Make this library depend on the
Performance library.
2005-10-27 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Add more accurate timestamps and implement request
and session duration logging. Also add a unique session ID number
to each log to make it easy to track requests on a session.
2005-09-28 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile.wrapper.objc.preamble: new file
* SQLClient.jigs: new file
* GNUmakefile: Provide java wrappings for SQLClient and friends
2005-09-28 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: boost performance of quoting a little.
Provide -count method for transactions.
2005-09-26 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Clean up caching/timestamps.
* SQLClient.m: ditto.
2005-09-22 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Rewrite caching, and expose cache for external use.
* SQLClient.m: ditto.
2005-09-20 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: make SQLRecord modifieable (replace values).
* SQLClient.m: ditto.
2005-09-15 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Locate postgres 8.0 on debian
* configure: regenerate
2005-08-03 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: Add SQLClient_LIBRARIES_DEPEND_UPON for apple as
suggested by Yen-Ju Chen.
* SQLClient.m: Don't call allocation debug functions on apple,
and avoid bogus apple compiler warning.
Guard against nil object passed to NSMapRemove() ... the apple
implementation crashes on this.
2005-08-02 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: Don't build WebServer stuff on MacOS-X when using the
apple runtime (and presumably foundation).
2005-07-07 Richard Frith-Macdonald <rfm@gnu.org>
* MySQL.m:
* SQLClient.m:
* WebServer.h:
* WebServer.m:
Tweaks to keep gcc-4 happy (signedness issues) and add support for
using separate ssl conmfig for different IP addresses.
2005-06-21 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Expand tilde in paths searched for backend bundles.
2005-05-25 Richard Frith-Macdonald <rfm@gnu.org>
* Postgres.m: Clear connection if an exception occurs while
disconnecting ... otherwise a failed disconnect can prevent
any new connection from being established.
Improve quoting of strings to be a bit more efficient and to
remove nul characters.
2005-05-09 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.[hm]: Add method to encode a form from a dictionary
into a data object ... convenience for where form data is needed.
2005-03-02 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.[hm]: Add support for basic http authentication either
via username/password pairs in property list or in database table.
* SQLClient.[hm]: Add methods to query database with local caching
of results, for use on systems needing high performance, where
database query (and/or database client-server comms) overheads are
important.
2005-02-25 Adam Fedor <fedor@gnu.org>
* Version 1.1.0:
* GNUmakefile: Add version.
* README: Add ftp location.
Sat Feb 19 04:20:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* Makefile: Build two versions of each bundle with different library
linkage for systems where dybnamic linker symbol visibility differs.
* SQLClient.m: Try alternative bundle versions.
Mon Jan 07 15:20:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* Makefile: Bump version.
* SQLClient.h: Improve documentation.
Sat Dec 18 06:00:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Fix bug in substitution of nil values into templates.
Add new method to vend static pages.
Wed Dec 15 13:10:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* MySQL.m, Postgres.m, ECPG.pgm: Do NSLog() logging of field
information only when debug level is greater than 1.
Fri Dec 10 10:50:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: Remove unnecessary libraries from link commands for
bundles. On Darwin, specifying these leads to multiply defined
symbols when an executable attempts to load the bundle.
Fri Nov 19 14:40:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: parse basic authentication infor and set it in extra
headers in request.
* WebServerBundles.m: support handling of paths longer than the
ones set for each bundle.
Tue Nov 11 14:48:05 2004 Nicola Pero <n.pero@mi.flashnet.it>
* GNUmakefile (BUNDLE_INSTALL_DIR): install bundles in
GNUSTEP_INSTALLATION_DIR, not GNUSTEP_LOCAL_ROOT.
Tue Nov 09 10:20:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.hm: add ([-append:]) method to merge transactions.
Thu Oct 28 08:45:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Don't generate alert about connection with empty
request if we have lready handled a request and reset.
Tue Oct 26 16:50:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: debug and duration logging should be turned off
by default ... a different value crept in somehow.
Sat Oct 9 14:29:35 2004 Nicola Pero <n.pero@mi.flashnet.it>
* SQLClient.m ([SQLClient -simpleExecute:]): Fixed logging
durations and statements in transactions.
Thu Oct 08 10:30:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: Add ([-quotef:,...]) to perform efficient quoting
of a string produced using printf style format and arguments.
Thu Oct 07 10:30:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: Optimise timing operations somewhat.
Wed Oct 06 15:04:23 2004 Nicola Pero <n.pero@mi.flashnet.it>
* WebServer.h: Fixed typo in parameter name.
Wed Oct 06 13:10:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: Allow a database transaction to already have been
begun when [SQLTransactiuon-execute] is called, so we can have
queries in the same database transaction as a list of statements.
Wed Oct 06 06:15:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: Make the rollback opoeration a safe no-op if
there is no transaction in progress.
* Postgres.m: Improve exception text by reporting the offending
SQL statement(s).
Fri Sep 17 16:55:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: When reporting the duration of a commit or
rollback, report text of all the statements in the transaction.
Fri Aug 28 09:30:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.[hm]: Add support for limiting maximum number of incoming
sessions permitted from mone host.
Tue Aug 24 14:30:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.[hm]: Add support for HTTP/1.1 persistent connections.
Sun Aug 22 10:35:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.[hm]: Add ([SQLRecord-dictionary]) and tidy/comment the
class a bit better.
Sat Aug 07 14:25:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Add session timeouts to kill off idle sessions.
Tue Jul 27 17:30:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Give more help when postgres is not found.
* configure: regenerate
Mon Jul 26 09:50:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Add -transaction method and SQLTransaction class
* SQLClient.m: Implement -transaction method and SQLTransaction class
to provide a simple convenient mechanism for executing a sequence
of statements as a single transaction.
Thu Jul 15 09:40:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: ([_didRead:]) more informative logging upon reading
an unexpected end-of-file
Wed Jul 14 12:07:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Check for PQfformat in libpq, if it is not there
but the library is there, warn that it is too old.
Thu Jul 02 17:40:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Add control over character encoding used to
interpret form data.
Thu Jul 02 13:25:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Fix error response when an exception occurs.
Thu Jul 01 18:00:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.m: Make ([setPort:secure:]) return a status.
* WebServerBundles.m: Check that web server is able to start.
* WebServer.h: ditto
Wed Jun 30 05:40:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: Use ./obj as location for library to link,
for initial case where we link the bundles before installing
the library.
* WebServer.m: Add casts to prevent compiler warning.
* Postgres.m: Commented out NSLog() left over from debugging.
Tue Jun 29 18:10:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.m: Fix code for retrieving reference name ... look in
the config dictionary first, and in user defaults if not found
there.
* SQLClient.h: Document change.
* GNUmakefile: Link bundles with the library to ensure that they
find the SQLRecord class when loaded.
Mon Jun 28 12:55:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* WebServer.h: New file.
* WebServer.m: New file.
* WebServerBundles.m: New file.
* SQLClient.h: Mention WebServer.
* GNUmakefile: Build WebServer classes.
Added framework to make it easy to use SQLClient to produce
standalone http/https applications, such as accepting POST'ed
records for addition to a database.
Fri May 07 09:15:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
Add methods to log duration of any statements over a certain
limit.
Tidy instance variables ... prefix mprivate ones with underscore.
Install header!
Thu Apr 29 15:20:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
* SQLClient.h: Fix URLs in documentation as suggested by Adam.
* SQLClient.html: regenerate
Mon Apr 26 16:20:00 2004 Richard Frith-Macdonald <rfm@gnu.org>
Initial checkin of library.
|