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 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 15374 15375 15376 15377 15378 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 15416 15417 15418 15419 15420 15421 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 15440 15441 15442 15443 15444 15445 15446 15447 15448 15449 15450 15451 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 15470 15471 15472 15473 15474 15475 15476 15477 15478 15479 15480 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 15500 15501 15502 15503 15504 15505 15506 15507 15508 15509 15510 15511 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 15530 15531 15532 15533 15534 15535 15536 15537 15538 15539 15540 15541 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 15560 15561 15562 15563 15564 15565 15566 15567 15568 15569 15570 15571 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 15590 15591 15592 15593 15594 15595 15596 15597 15598 15599 15600 15601 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 15620 15621 15622 15623 15624 15625 15626 15627 15628 15629 15630 15631 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 15650 15651 15652 15653 15654 15655 15656 15657 15658 15659 15660 15661 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 15680 15681 15682 15683 15684 15685 15686 15687 15688 15689 15690 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 15710 15711 15712 15713 15714 15715 15716 15717 15718 15719 15720 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 15743 15744 15745 15746 15747 15748 15749 15750 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 15771 15772 15773 15774 15775 15776 15777 15778 15779 15780 15781 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 15802 15803 15804 15805 15806 15807 15808 15809 15810 15811 15812 15813 15814 15815 15816 15817 15818 15819 15820 15821 15822 15823 15824 15825 15826 15827 15828 15829 15830 15831 15832 15833 15834 15835 15836 15837 15838 15839 15840 15841 15842 15843 15844 15845 15846 15847 15848 15849 15850 15851 15852 15853 15854 15855 15856 15857 15858 15859 15860 15861 15862 15863 15864 15865 15866 15867 15868 15869 15870 15871 15872 15873 15874 15875 15876 15877 15878 15879 15880 15881 15882 15883 15884 15885 15886 15887 15888 15889 15890 15891 15892 15893 15894 15895 15896 15897 15898 15899 15900 15901 15902 15903 15904 15905 15906 15907 15908 15909 15910 15911 15912 15913 15914 15915 15916 15917 15918 15919 15920 15921 15922 15923 15924 15925 15926 15927 15928 15929 15930 15931 15932 15933 15934 15935 15936 15937 15938 15939 15940 15941 15942 15943 15944 15945 15946 15947 15948 15949 15950 15951 15952 15953 15954 15955 15956 15957 15958 15959 15960 15961 15962 15963 15964 15965 15966 15967 15968 15969 15970 15971 15972 15973 15974 15975 15976 15977 15978 15979 15980 15981 15982 15983 15984 15985 15986 15987 15988 15989 15990 15991 15992 15993 15994 15995 15996 15997 15998 15999 16000 16001 16002 16003 16004 16005 16006 16007 16008 16009 16010 16011 16012 16013 16014 16015 16016 16017 16018 16019 16020 16021 16022 16023 16024 16025 16026 16027 16028 16029 16030 16031 16032 16033 16034 16035 16036 16037 16038 16039 16040 16041 16042 16043 16044 16045 16046 16047 16048 16049 16050 16051 16052 16053 16054 16055 16056 16057 16058 16059 16060 16061 16062 16063 16064 16065 16066 16067 16068 16069 16070 16071 16072 16073 16074 16075 16076 16077 16078 16079 16080 16081 16082 16083 16084 16085 16086 16087 16088 16089 16090 16091 16092 16093 16094 16095 16096 16097 16098 16099 16100 16101 16102 16103 16104 16105 16106 16107 16108 16109 16110 16111 16112 16113 16114 16115 16116 16117 16118 16119 16120 16121 16122 16123 16124 16125 16126 16127 16128 16129 16130 16131 16132 16133 16134 16135 16136 16137 16138 16139 16140 16141 16142 16143 16144 16145 16146 16147 16148 16149 16150 16151 16152 16153 16154 16155 16156 16157 16158 16159 16160 16161 16162 16163 16164 16165 16166 16167 16168 16169 16170 16171 16172 16173 16174 16175 16176 16177 16178 16179 16180 16181 16182 16183 16184 16185 16186 16187 16188 16189 16190 16191 16192 16193 16194 16195 16196 16197 16198 16199 16200 16201 16202 16203 16204 16205 16206 16207 16208 16209 16210 16211 16212 16213 16214 16215 16216 16217 16218 16219 16220 16221 16222 16223 16224 16225 16226 16227 16228 16229 16230 16231 16232 16233 16234 16235 16236 16237 16238 16239 16240 16241 16242 16243 16244 16245 16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 16282 16283 16284 16285 16286 16287 16288 16289 16290 16291 16292 16293 16294 16295 16296 16297 16298 16299 16300 16301 16302 16303 16304 16305 16306 16307 16308 16309 16310 16311 16312 16313 16314 16315 16316 16317 16318 16319 16320 16321 16322 16323 16324 16325 16326 16327 16328 16329 16330 16331 16332 16333 16334 16335 16336 16337 16338 16339 16340 16341 16342 16343 16344 16345 16346 16347 16348 16349 16350 16351 16352 16353 16354 16355 16356 16357 16358 16359 16360 16361 16362 16363 16364 16365 16366 16367 16368 16369 16370 16371 16372 16373 16374 16375 16376 16377 16378 16379 16380 16381 16382 16383 16384 16385 16386 16387 16388 16389 16390 16391 16392 16393 16394 16395 16396 16397 16398 16399 16400 16401 16402 16403 16404 16405 16406 16407 16408 16409 16410 16411 16412 16413 16414 16415 16416 16417 16418 16419 16420 16421 16422 16423 16424 16425 16426 16427 16428 16429 16430 16431 16432 16433 16434 16435 16436 16437 16438 16439 16440 16441 16442 16443 16444 16445 16446 16447 16448 16449 16450 16451 16452 16453 16454 16455 16456 16457 16458 16459 16460 16461 16462 16463 16464 16465 16466 16467 16468 16469 16470 16471 16472 16473 16474 16475 16476 16477 16478 16479 16480 16481 16482 16483 16484 16485 16486 16487 16488 16489 16490 16491 16492 16493 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 16507 16508 16509 16510 16511 16512 16513 16514 16515 16516 16517 16518 16519 16520 16521 16522 16523 16524 16525 16526 16527 16528 16529 16530 16531 16532 16533 16534 16535 16536 16537 16538 16539 16540 16541 16542 16543 16544 16545 16546 16547 16548 16549 16550 16551 16552 16553 16554 16555 16556 16557 16558 16559 16560 16561 16562 16563 16564 16565 16566 16567 16568 16569 16570 16571 16572 16573 16574 16575 16576 16577 16578 16579 16580 16581 16582 16583 16584 16585 16586 16587 16588 16589 16590 16591 16592 16593 16594 16595 16596 16597 16598 16599 16600 16601 16602 16603 16604 16605 16606 16607 16608 16609 16610 16611 16612 16613 16614 16615 16616 16617 16618 16619 16620 16621 16622 16623 16624 16625 16626 16627 16628 16629 16630 16631 16632 16633 16634 16635 16636 16637 16638 16639 16640 16641 16642 16643 16644 16645 16646 16647 16648 16649 16650 16651 16652 16653 16654 16655 16656 16657 16658 16659 16660 16661 16662 16663 16664 16665 16666 16667 16668 16669 16670 16671 16672 16673 16674 16675 16676 16677 16678 16679 16680 16681 16682 16683 16684 16685 16686 16687 16688 16689 16690 16691 16692 16693 16694 16695 16696 16697 16698 16699 16700 16701 16702 16703 16704 16705 16706 16707 16708 16709 16710 16711 16712 16713 16714 16715 16716 16717 16718 16719 16720 16721 16722 16723 16724 16725 16726 16727 16728 16729 16730 16731 16732 16733 16734 16735 16736 16737 16738 16739 16740 16741 16742 16743 16744 16745 16746 16747 16748 16749 16750 16751 16752 16753 16754 16755 16756 16757 16758 16759 16760 16761 16762 16763 16764 16765 16766 16767 16768 16769 16770 16771 16772 16773 16774 16775 16776 16777 16778 16779 16780 16781 16782 16783 16784 16785 16786 16787 16788 16789 16790 16791 16792 16793 16794 16795 16796 16797 16798 16799 16800 16801 16802 16803 16804 16805 16806 16807 16808 16809 16810 16811 16812 16813 16814 16815 16816 16817 16818 16819 16820 16821 16822 16823 16824 16825 16826 16827 16828 16829 16830 16831 16832 16833 16834 16835 16836 16837 16838 16839 16840 16841 16842 16843 16844 16845 16846 16847 16848 16849 16850 16851 16852 16853 16854 16855 16856 16857 16858 16859 16860 16861 16862 16863 16864 16865 16866 16867 16868 16869 16870 16871 16872 16873 16874 16875 16876 16877 16878 16879 16880 16881 16882 16883 16884 16885 16886 16887 16888 16889 16890 16891 16892 16893 16894 16895 16896 16897 16898 16899 16900 16901 16902 16903 16904 16905 16906 16907 16908 16909 16910 16911 16912 16913 16914 16915 16916 16917 16918 16919 16920 16921 16922 16923 16924 16925 16926 16927 16928 16929 16930 16931 16932 16933 16934 16935 16936 16937 16938 16939 16940 16941 16942 16943 16944 16945 16946 16947 16948 16949 16950 16951 16952 16953 16954 16955 16956 16957 16958 16959 16960 16961 16962 16963 16964 16965 16966 16967 16968 16969 16970 16971 16972 16973 16974 16975 16976 16977 16978 16979 16980 16981 16982 16983 16984 16985 16986 16987 16988 16989 16990 16991 16992 16993 16994 16995 16996 16997 16998 16999 17000 17001 17002 17003 17004 17005 17006 17007 17008 17009 17010 17011 17012 17013 17014 17015 17016 17017 17018 17019 17020 17021 17022 17023 17024 17025 17026 17027 17028 17029 17030 17031 17032 17033 17034 17035 17036 17037 17038 17039 17040 17041 17042 17043 17044 17045 17046 17047 17048 17049 17050 17051 17052 17053 17054 17055 17056 17057 17058 17059 17060 17061 17062 17063 17064 17065 17066 17067 17068 17069 17070 17071 17072 17073 17074 17075 17076 17077 17078 17079 17080 17081 17082 17083 17084 17085 17086 17087 17088 17089 17090 17091 17092 17093 17094 17095 17096 17097 17098 17099 17100 17101 17102 17103 17104 17105 17106 17107 17108 17109 17110 17111 17112 17113 17114 17115 17116 17117 17118 17119 17120 17121 17122 17123 17124 17125 17126 17127 17128 17129 17130 17131 17132 17133 17134 17135 17136 17137 17138 17139 17140 17141 17142 17143 17144 17145 17146 17147 17148 17149 17150 17151 17152 17153 17154 17155 17156 17157 17158 17159 17160 17161 17162 17163 17164 17165 17166 17167 17168 17169 17170 17171 17172 17173 17174 17175 17176 17177 17178 17179 17180 17181 17182 17183 17184 17185 17186 17187 17188 17189 17190 17191 17192 17193 17194 17195 17196 17197 17198 17199 17200 17201 17202 17203 17204 17205 17206 17207 17208 17209 17210 17211 17212 17213 17214 17215 17216 17217 17218 17219 17220 17221 17222 17223 17224 17225 17226 17227 17228 17229 17230 17231 17232 17233 17234 17235 17236 17237 17238 17239 17240 17241 17242 17243 17244 17245 17246 17247 17248 17249 17250 17251 17252 17253 17254 17255 17256 17257 17258 17259 17260 17261 17262 17263 17264 17265 17266 17267 17268 17269 17270 17271 17272 17273 17274 17275 17276 17277 17278 17279 17280 17281 17282 17283 17284 17285 17286 17287 17288 17289 17290 17291 17292 17293 17294 17295 17296 17297 17298 17299 17300 17301 17302 17303 17304 17305 17306 17307 17308 17309 17310 17311 17312 17313 17314 17315 17316 17317 17318 17319 17320 17321 17322 17323 17324 17325 17326 17327 17328 17329 17330 17331 17332 17333 17334 17335 17336 17337 17338 17339 17340 17341 17342 17343 17344 17345 17346 17347 17348 17349 17350 17351 17352 17353 17354 17355 17356 17357 17358 17359 17360 17361 17362 17363 17364 17365 17366 17367 17368 17369 17370 17371 17372 17373 17374 17375 17376 17377 17378 17379 17380 17381 17382 17383 17384 17385 17386 17387 17388 17389 17390 17391 17392 17393 17394 17395 17396 17397 17398 17399 17400 17401 17402 17403 17404 17405 17406 17407 17408 17409 17410 17411 17412 17413 17414 17415 17416 17417 17418 17419 17420 17421 17422 17423 17424 17425 17426 17427 17428 17429 17430 17431 17432 17433 17434 17435 17436 17437 17438 17439 17440 17441 17442 17443 17444 17445 17446 17447 17448 17449 17450 17451 17452 17453 17454 17455 17456 17457 17458 17459 17460 17461 17462 17463 17464 17465 17466 17467 17468 17469 17470 17471 17472 17473 17474 17475 17476 17477 17478 17479 17480 17481 17482 17483 17484 17485 17486 17487 17488 17489 17490 17491 17492 17493 17494 17495 17496 17497 17498 17499 17500 17501 17502 17503 17504 17505 17506 17507 17508 17509 17510 17511 17512 17513 17514 17515 17516 17517 17518 17519 17520 17521 17522 17523 17524 17525 17526 17527 17528 17529 17530 17531 17532 17533 17534 17535 17536 17537 17538 17539 17540 17541 17542 17543 17544 17545 17546 17547 17548 17549 17550 17551 17552 17553 17554 17555 17556 17557 17558 17559 17560 17561 17562 17563 17564 17565 17566 17567 17568 17569 17570 17571 17572 17573 17574 17575 17576 17577 17578 17579 17580 17581 17582 17583 17584 17585 17586 17587 17588 17589 17590 17591 17592 17593 17594 17595 17596 17597 17598 17599 17600 17601 17602 17603 17604 17605 17606 17607 17608 17609 17610 17611 17612 17613 17614 17615 17616 17617 17618 17619 17620 17621 17622 17623 17624 17625 17626 17627 17628 17629 17630 17631 17632 17633 17634 17635 17636 17637 17638 17639 17640 17641 17642 17643 17644 17645 17646 17647 17648 17649 17650 17651 17652 17653 17654 17655 17656 17657 17658 17659 17660 17661 17662 17663 17664 17665 17666 17667 17668 17669 17670 17671 17672 17673 17674 17675 17676 17677 17678 17679 17680 17681 17682 17683 17684 17685 17686 17687 17688 17689 17690 17691 17692 17693 17694 17695 17696 17697 17698 17699 17700 17701 17702 17703 17704 17705 17706 17707 17708 17709 17710 17711 17712 17713 17714 17715 17716 17717 17718 17719 17720 17721 17722 17723 17724 17725 17726 17727 17728 17729 17730 17731 17732 17733 17734 17735 17736 17737 17738 17739 17740 17741 17742 17743 17744 17745 17746 17747 17748 17749 17750 17751 17752 17753 17754 17755 17756 17757 17758 17759 17760 17761 17762 17763 17764 17765 17766 17767 17768 17769 17770 17771 17772 17773 17774 17775 17776 17777 17778 17779 17780 17781 17782 17783 17784 17785 17786 17787 17788 17789 17790 17791 17792 17793 17794 17795 17796 17797 17798 17799 17800 17801 17802 17803 17804 17805 17806 17807 17808 17809 17810 17811 17812 17813 17814 17815 17816 17817 17818 17819 17820 17821 17822 17823 17824 17825 17826 17827 17828 17829 17830 17831 17832 17833 17834 17835 17836 17837 17838 17839 17840 17841 17842 17843 17844 17845 17846 17847 17848 17849 17850 17851 17852 17853 17854 17855 17856 17857 17858 17859 17860 17861 17862 17863 17864 17865 17866 17867 17868 17869 17870 17871 17872 17873 17874 17875 17876 17877 17878 17879 17880 17881 17882 17883 17884 17885 17886 17887 17888 17889 17890 17891 17892 17893 17894 17895 17896 17897 17898 17899 17900 17901 17902 17903 17904 17905 17906 17907 17908 17909 17910 17911 17912 17913 17914 17915 17916 17917 17918 17919 17920 17921 17922 17923 17924 17925 17926 17927 17928 17929 17930 17931 17932 17933 17934 17935 17936 17937 17938 17939 17940 17941 17942 17943 17944 17945 17946 17947 17948 17949 17950 17951 17952 17953 17954 17955 17956 17957 17958 17959 17960 17961 17962 17963 17964 17965 17966 17967 17968 17969 17970 17971 17972 17973 17974 17975 17976 17977 17978 17979 17980 17981 17982 17983 17984 17985 17986 17987 17988 17989 17990 17991 17992 17993 17994 17995 17996 17997 17998 17999 18000 18001 18002 18003 18004 18005 18006 18007 18008 18009 18010 18011 18012 18013 18014 18015 18016 18017 18018 18019 18020 18021 18022 18023 18024 18025 18026 18027 18028 18029 18030 18031 18032 18033 18034 18035 18036 18037 18038 18039 18040 18041 18042 18043 18044 18045 18046 18047 18048 18049 18050 18051 18052 18053 18054 18055 18056 18057 18058 18059 18060 18061 18062 18063 18064 18065 18066 18067 18068 18069 18070 18071 18072 18073 18074 18075 18076 18077 18078 18079 18080 18081 18082 18083 18084 18085 18086 18087 18088 18089 18090 18091 18092 18093 18094 18095 18096 18097 18098 18099 18100 18101 18102 18103 18104 18105 18106 18107 18108 18109 18110 18111 18112 18113 18114 18115 18116 18117 18118 18119 18120 18121 18122 18123 18124 18125 18126 18127 18128 18129 18130 18131 18132 18133 18134 18135 18136 18137 18138 18139 18140 18141 18142 18143 18144 18145 18146 18147 18148 18149 18150 18151 18152 18153 18154 18155 18156 18157 18158 18159 18160 18161 18162 18163 18164 18165 18166 18167 18168 18169 18170 18171 18172 18173 18174 18175 18176 18177 18178 18179 18180 18181 18182 18183 18184 18185 18186 18187 18188 18189 18190 18191 18192 18193 18194 18195 18196 18197 18198 18199 18200 18201 18202 18203 18204 18205 18206 18207 18208 18209 18210 18211 18212 18213 18214 18215 18216 18217 18218 18219 18220 18221 18222 18223 18224 18225 18226 18227 18228 18229 18230 18231 18232 18233 18234 18235 18236 18237 18238 18239 18240 18241 18242 18243 18244 18245 18246 18247 18248 18249 18250 18251 18252 18253 18254 18255 18256 18257 18258 18259 18260 18261 18262 18263 18264 18265 18266 18267 18268 18269 18270 18271 18272 18273 18274 18275 18276 18277 18278 18279 18280 18281 18282 18283 18284 18285 18286 18287 18288 18289 18290 18291 18292 18293 18294 18295 18296 18297 18298 18299 18300 18301 18302 18303 18304 18305 18306 18307 18308 18309 18310 18311 18312 18313 18314 18315 18316 18317 18318 18319 18320 18321 18322 18323 18324 18325 18326 18327 18328 18329 18330 18331 18332 18333 18334 18335 18336 18337 18338 18339 18340 18341 18342 18343 18344 18345 18346 18347 18348 18349 18350 18351 18352 18353 18354 18355 18356 18357 18358 18359 18360 18361 18362 18363 18364 18365 18366 18367 18368 18369 18370 18371 18372 18373 18374 18375 18376 18377 18378 18379 18380 18381 18382 18383 18384 18385 18386 18387 18388 18389 18390 18391 18392 18393 18394 18395 18396 18397 18398 18399 18400 18401 18402 18403 18404 18405 18406 18407 18408 18409 18410 18411 18412 18413 18414 18415 18416 18417 18418 18419 18420 18421 18422 18423 18424 18425 18426 18427 18428 18429 18430 18431 18432 18433 18434 18435 18436 18437 18438 18439 18440 18441 18442 18443 18444 18445 18446 18447 18448 18449 18450 18451 18452 18453 18454 18455 18456 18457 18458 18459 18460 18461 18462 18463 18464 18465 18466 18467 18468 18469 18470 18471 18472 18473 18474 18475 18476 18477 18478 18479 18480 18481 18482 18483 18484 18485 18486 18487 18488 18489 18490 18491 18492 18493 18494 18495 18496 18497 18498 18499 18500 18501 18502 18503 18504 18505 18506 18507 18508 18509 18510 18511 18512 18513 18514 18515 18516 18517 18518 18519 18520 18521 18522 18523 18524 18525 18526 18527 18528 18529 18530 18531 18532 18533 18534 18535 18536 18537 18538 18539 18540 18541 18542 18543 18544 18545 18546 18547 18548 18549 18550 18551 18552 18553 18554 18555 18556 18557 18558 18559 18560 18561 18562 18563 18564 18565 18566 18567 18568 18569 18570 18571 18572 18573 18574 18575 18576 18577 18578 18579 18580 18581 18582 18583 18584 18585 18586 18587 18588 18589 18590 18591 18592 18593 18594 18595 18596 18597 18598 18599 18600 18601 18602 18603 18604 18605 18606 18607 18608 18609 18610 18611 18612 18613 18614 18615 18616 18617 18618 18619 18620 18621 18622 18623 18624 18625 18626 18627 18628 18629 18630 18631 18632 18633 18634 18635 18636 18637 18638 18639 18640 18641 18642 18643 18644 18645 18646 18647 18648 18649 18650 18651 18652 18653 18654 18655 18656 18657 18658 18659 18660 18661 18662 18663 18664 18665 18666 18667 18668 18669 18670 18671 18672 18673 18674 18675 18676 18677 18678 18679 18680 18681 18682 18683 18684 18685 18686 18687 18688 18689 18690 18691 18692 18693 18694 18695 18696 18697 18698 18699 18700 18701 18702 18703 18704 18705 18706 18707 18708 18709 18710 18711 18712 18713 18714 18715 18716 18717 18718 18719 18720 18721 18722 18723 18724 18725 18726 18727 18728 18729 18730 18731 18732 18733 18734 18735 18736 18737 18738 18739 18740 18741 18742 18743 18744 18745 18746 18747 18748 18749 18750 18751 18752 18753 18754 18755 18756 18757 18758 18759 18760 18761 18762 18763 18764 18765 18766 18767 18768 18769 18770 18771 18772 18773 18774 18775 18776 18777 18778 18779 18780 18781 18782 18783 18784 18785 18786 18787 18788 18789 18790 18791 18792 18793 18794 18795 18796 18797 18798 18799 18800 18801 18802 18803 18804 18805 18806 18807 18808 18809 18810 18811 18812 18813 18814 18815 18816 18817 18818 18819 18820 18821 18822 18823 18824 18825 18826 18827 18828 18829 18830 18831 18832 18833 18834 18835 18836 18837 18838 18839 18840 18841 18842 18843 18844 18845 18846 18847 18848 18849 18850 18851 18852 18853 18854 18855 18856 18857 18858 18859 18860 18861 18862 18863 18864 18865 18866 18867 18868 18869 18870 18871 18872 18873 18874 18875 18876 18877 18878 18879 18880 18881 18882 18883 18884 18885 18886 18887 18888 18889 18890 18891 18892 18893 18894 18895 18896 18897 18898 18899 18900 18901 18902 18903 18904 18905 18906 18907 18908 18909 18910 18911 18912 18913 18914 18915 18916 18917 18918 18919 18920 18921 18922 18923 18924 18925 18926 18927 18928 18929 18930 18931 18932 18933 18934 18935 18936 18937 18938 18939 18940 18941 18942 18943 18944 18945 18946 18947 18948 18949 18950 18951 18952 18953 18954 18955 18956 18957 18958 18959 18960 18961 18962 18963 18964 18965 18966 18967 18968 18969 18970 18971 18972 18973 18974 18975 18976 18977 18978 18979 18980 18981 18982 18983 18984 18985 18986 18987 18988 18989 18990 18991 18992 18993 18994 18995 18996 18997 18998 18999 19000 19001 19002 19003 19004 19005 19006 19007 19008 19009 19010 19011 19012 19013 19014 19015 19016 19017 19018 19019 19020 19021 19022 19023 19024 19025 19026 19027 19028 19029 19030 19031 19032 19033 19034 19035 19036 19037 19038 19039 19040 19041 19042 19043 19044 19045 19046 19047 19048 19049 19050 19051 19052 19053 19054 19055 19056 19057 19058 19059 19060 19061 19062 19063 19064 19065 19066 19067 19068 19069 19070 19071 19072 19073 19074 19075 19076 19077 19078 19079 19080 19081 19082 19083 19084 19085 19086 19087 19088 19089 19090 19091 19092 19093 19094 19095 19096 19097 19098 19099 19100 19101 19102 19103 19104 19105 19106 19107 19108 19109 19110 19111 19112 19113 19114 19115 19116 19117 19118 19119 19120 19121 19122 19123 19124 19125 19126 19127 19128 19129 19130 19131 19132 19133 19134 19135 19136 19137 19138 19139 19140 19141 19142 19143 19144 19145 19146 19147 19148 19149 19150 19151 19152 19153 19154 19155 19156 19157 19158 19159 19160 19161 19162 19163 19164 19165 19166 19167 19168 19169 19170 19171 19172 19173 19174 19175 19176 19177 19178 19179 19180 19181 19182 19183 19184 19185 19186 19187 19188 19189 19190 19191 19192 19193 19194 19195 19196 19197 19198 19199 19200 19201 19202 19203 19204 19205 19206 19207 19208 19209 19210 19211 19212 19213 19214 19215 19216 19217 19218 19219 19220 19221 19222 19223 19224 19225 19226 19227 19228 19229 19230 19231 19232 19233 19234 19235 19236 19237 19238 19239 19240 19241 19242 19243 19244 19245 19246 19247 19248 19249 19250 19251 19252 19253 19254 19255 19256 19257 19258 19259 19260 19261 19262 19263 19264 19265 19266 19267 19268 19269 19270 19271 19272 19273 19274 19275 19276 19277 19278 19279 19280 19281 19282 19283 19284 19285 19286 19287 19288 19289 19290 19291 19292 19293 19294 19295 19296 19297 19298 19299 19300 19301 19302 19303 19304 19305 19306 19307 19308 19309 19310 19311 19312 19313 19314 19315 19316 19317 19318 19319 19320 19321 19322 19323 19324 19325 19326 19327 19328 19329 19330 19331 19332 19333 19334 19335 19336 19337 19338 19339 19340 19341 19342 19343 19344 19345 19346 19347 19348 19349 19350 19351 19352 19353 19354 19355 19356 19357 19358 19359 19360 19361 19362 19363 19364 19365 19366 19367 19368 19369 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 19381 19382 19383 19384 19385 19386 19387 19388 19389 19390 19391 19392 19393 19394 19395 19396 19397 19398 19399 19400 19401 19402 19403 19404 19405 19406 19407 19408 19409 19410 19411 19412 19413 19414 19415 19416 19417 19418 19419 19420 19421 19422 19423 19424 19425 19426 19427 19428 19429 19430 19431 19432 19433 19434 19435 19436 19437 19438 19439 19440 19441 19442 19443 19444 19445 19446 19447 19448 19449 19450 19451 19452 19453 19454 19455 19456 19457 19458 19459 19460 19461 19462 19463 19464 19465 19466 19467 19468 19469 19470 19471 19472 19473 19474 19475 19476 19477 19478 19479 19480 19481 19482 19483 19484 19485 19486 19487 19488 19489 19490 19491 19492 19493 19494 19495 19496 19497 19498 19499 19500 19501 19502 19503 19504 19505 19506 19507 19508 19509 19510 19511 19512 19513 19514 19515 19516 19517 19518 19519 19520 19521 19522 19523 19524 19525 19526 19527 19528 19529 19530 19531 19532 19533 19534 19535 19536 19537 19538 19539 19540 19541 19542 19543 19544 19545 19546 19547 19548 19549 19550 19551 19552 19553 19554 19555 19556 19557 19558 19559 19560 19561 19562 19563 19564 19565 19566 19567 19568 19569 19570 19571 19572 19573 19574 19575 19576 19577 19578 19579 19580 19581 19582 19583 19584 19585 19586 19587 19588 19589 19590 19591 19592 19593 19594 19595 19596 19597 19598 19599 19600 19601 19602 19603 19604 19605 19606 19607 19608 19609 19610 19611 19612 19613 19614 19615 19616 19617 19618 19619 19620 19621 19622 19623 19624 19625 19626 19627 19628 19629 19630 19631 19632 19633 19634 19635 19636 19637 19638 19639 19640 19641 19642 19643 19644 19645 19646 19647 19648 19649 19650 19651 19652 19653 19654 19655 19656 19657 19658 19659 19660 19661 19662 19663 19664 19665 19666 19667 19668 19669 19670 19671 19672 19673 19674 19675 19676 19677 19678 19679 19680 19681 19682 19683 19684 19685 19686 19687 19688 19689 19690 19691 19692 19693 19694 19695 19696 19697 19698 19699 19700 19701 19702 19703 19704 19705 19706 19707 19708 19709 19710 19711 19712 19713 19714 19715 19716 19717 19718 19719 19720 19721 19722 19723 19724 19725 19726 19727 19728 19729 19730 19731 19732 19733 19734 19735 19736 19737 19738 19739 19740 19741 19742 19743 19744 19745 19746 19747 19748 19749 19750 19751 19752 19753 19754 19755 19756 19757 19758 19759 19760 19761 19762 19763 19764 19765 19766 19767 19768 19769 19770 19771 19772 19773 19774 19775 19776 19777 19778 19779 19780 19781 19782 19783 19784 19785 19786 19787 19788 19789 19790 19791 19792 19793 19794 19795 19796 19797 19798 19799 19800 19801 19802 19803 19804 19805 19806 19807 19808 19809 19810 19811 19812 19813 19814 19815 19816 19817 19818 19819 19820 19821 19822 19823 19824 19825 19826 19827 19828 19829 19830 19831 19832 19833 19834 19835 19836 19837 19838 19839 19840 19841 19842 19843 19844 19845 19846 19847 19848 19849 19850 19851 19852 19853 19854 19855 19856 19857 19858 19859 19860 19861 19862 19863 19864 19865 19866 19867 19868 19869 19870 19871 19872 19873 19874 19875 19876 19877 19878 19879 19880 19881 19882 19883 19884 19885 19886 19887 19888 19889 19890 19891 19892 19893 19894 19895 19896 19897 19898 19899 19900 19901 19902 19903 19904 19905 19906 19907 19908 19909 19910 19911 19912 19913 19914 19915 19916 19917 19918 19919 19920 19921 19922 19923 19924 19925 19926 19927 19928 19929 19930 19931 19932 19933 19934 19935 19936 19937 19938 19939 19940 19941 19942 19943 19944 19945 19946 19947 19948 19949 19950 19951 19952 19953 19954 19955 19956 19957 19958 19959 19960 19961 19962 19963 19964 19965 19966 19967 19968 19969 19970 19971 19972 19973 19974 19975 19976 19977 19978 19979 19980 19981 19982 19983 19984 19985 19986 19987 19988 19989 19990 19991 19992 19993 19994 19995 19996 19997 19998 19999 20000 20001 20002 20003 20004 20005 20006 20007 20008 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20023 20024 20025 20026 20027 20028 20029 20030 20031 20032 20033 20034 20035 20036 20037 20038 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20051 20052 20053 20054 20055 20056 20057 20058 20059 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20071 20072 20073 20074 20075 20076 20077 20078 20079 20080 20081 20082 20083 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20098 20099 20100 20101 20102 20103 20104 20105 20106 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20120 20121 20122 20123 20124 20125 20126 20127 20128 20129 20130 20131 20132 20133 20134 20135 20136 20137 20138 20139 20140 20141 20142 20143 20144 20145 20146 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20158 20159 20160 20161 20162 20163 20164 20165 20166 20167 20168 20169 20170 20171 20172 20173 20174 20175 20176 20177 20178 20179 20180 20181 20182 20183 20184 20185 20186 20187 20188 20189 20190 20191 20192 20193 20194 20195 20196 20197 20198 20199 20200 20201 20202 20203 20204 20205 20206 20207 20208 20209 20210 20211 20212 20213 20214 20215 20216 20217 20218 20219 20220 20221 20222 20223 20224 20225 20226 20227 20228 20229 20230 20231 20232 20233 20234 20235 20236 20237 20238 20239 20240 20241 20242 20243 20244 20245 20246 20247 20248 20249 20250 20251 20252 20253 20254 20255 20256 20257 20258 20259 20260 20261 20262 20263 20264 20265 20266 20267 20268 20269 20270 20271 20272 20273 20274 20275 20276 20277 20278 20279 20280 20281 20282 20283 20284 20285 20286 20287 20288 20289 20290 20291 20292 20293 20294 20295 20296 20297 20298 20299 20300 20301 20302 20303 20304 20305 20306 20307 20308 20309 20310 20311 20312 20313 20314 20315 20316 20317 20318 20319 20320 20321 20322 20323 20324 20325 20326 20327 20328 20329 20330 20331 20332 20333 20334 20335 20336 20337 20338 20339 20340 20341 20342 20343 20344 20345 20346 20347 20348 20349 20350 20351 20352 20353 20354 20355 20356 20357 20358 20359 20360 20361 20362 20363 20364 20365 20366 20367 20368 20369 20370 20371 20372 20373 20374 20375 20376 20377 20378 20379 20380 20381 20382 20383 20384 20385 20386 20387 20388 20389 20390 20391 20392 20393 20394 20395 20396 20397 20398 20399 20400 20401 20402 20403 20404 20405 20406 20407 20408 20409 20410 20411 20412 20413 20414 20415 20416 20417 20418 20419 20420 20421 20422 20423 20424 20425 20426 20427 20428 20429 20430 20431 20432 20433 20434 20435 20436 20437 20438 20439 20440 20441 20442 20443 20444 20445 20446 20447 20448 20449 20450 20451 20452 20453 20454 20455 20456 20457 20458 20459 20460 20461 20462 20463 20464 20465 20466 20467 20468 20469 20470 20471 20472 20473 20474 20475 20476 20477 20478 20479 20480 20481 20482 20483 20484 20485 20486 20487 20488 20489 20490 20491 20492 20493 20494 20495 20496 20497 20498 20499 20500 20501 20502 20503 20504 20505 20506 20507 20508 20509 20510 20511 20512 20513 20514 20515 20516 20517 20518 20519 20520 20521 20522 20523 20524 20525 20526 20527 20528 20529 20530 20531 20532 20533 20534 20535 20536 20537 20538 20539 20540 20541 20542 20543 20544 20545 20546 20547 20548 20549 20550 20551 20552 20553 20554 20555 20556 20557 20558 20559 20560 20561 20562 20563 20564 20565 20566 20567 20568 20569 20570 20571 20572 20573 20574 20575 20576 20577 20578 20579 20580 20581 20582 20583 20584 20585 20586 20587 20588 20589 20590 20591 20592 20593 20594 20595 20596 20597 20598 20599 20600 20601 20602 20603 20604 20605 20606 20607 20608 20609 20610 20611 20612 20613 20614 20615 20616 20617 20618 20619 20620 20621 20622 20623 20624 20625 20626 20627 20628 20629 20630 20631 20632 20633 20634 20635 20636 20637 20638 20639 20640 20641 20642 20643 20644 20645 20646 20647 20648 20649 20650 20651 20652 20653 20654 20655 20656 20657 20658 20659 20660 20661 20662 20663 20664 20665 20666 20667 20668 20669 20670 20671 20672 20673 20674 20675 20676 20677 20678 20679 20680 20681 20682 20683 20684 20685 20686 20687 20688 20689 20690 20691 20692 20693 20694 20695 20696 20697 20698 20699 20700 20701 20702 20703 20704 20705 20706 20707 20708 20709 20710 20711 20712 20713 20714 20715 20716 20717 20718 20719 20720 20721 20722 20723 20724 20725 20726 20727 20728 20729 20730 20731 20732 20733 20734 20735 20736 20737 20738 20739 20740 20741 20742 20743 20744 20745 20746 20747 20748 20749 20750 20751 20752 20753 20754 20755 20756 20757 20758 20759 20760 20761 20762 20763 20764 20765 20766 20767 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 20785 20786 20787 20788 20789 20790 20791 20792 20793 20794 20795 20796 20797 20798 20799 20800 20801 20802 20803 20804 20805 20806 20807 20808 20809 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20821 20822 20823 20824 20825 20826 20827 20828 20829 20830 20831 20832 20833 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20845 20846 20847 20848 20849 20850 20851 20852 20853 20854 20855 20856 20857 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20869 20870 20871 20872 20873 20874 20875 20876 20877 20878 20879 20880 20881 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 20899 20900 20901 20902 20903 20904 20905 20906 20907 20908 20909 20910 20911 20912 20913 20914 20915 20916 20917 20918 20919 20920 20921 20922 20923 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20935 20936 20937 20938 20939 20940 20941 20942 20943 20944 20945 20946 20947 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20959 20960 20961 20962 20963 20964 20965 20966 20967 20968 20969 20970 20971 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20983 20984 20985 20986 20987 20988 20989 20990 20991 20992 20993 20994 20995 20996 20997 20998 20999 21000 21001 21002 21003 21004 21005 21006 21007 21008 21009 21010 21011 21012 21013 21014 21015 21016 21017 21018 21019 21020 21021 21022 21023 21024 21025 21026 21027 21028 21029 21030 21031 21032 21033 21034 21035 21036 21037 21038 21039 21040 21041 21042 21043 21044 21045 21046 21047 21048 21049 21050 21051 21052 21053 21054 21055 21056 21057 21058 21059 21060 21061 21062 21063 21064 21065 21066 21067 21068 21069 21070 21071 21072 21073 21074 21075 21076 21077 21078 21079 21080 21081 21082 21083 21084 21085 21086 21087 21088 21089 21090 21091 21092 21093 21094 21095 21096 21097 21098 21099 21100 21101 21102 21103 21104 21105 21106 21107 21108 21109 21110 21111 21112 21113 21114 21115 21116 21117 21118 21119 21120 21121 21122 21123 21124 21125 21126 21127 21128 21129 21130 21131 21132 21133 21134 21135 21136 21137 21138 21139 21140 21141 21142 21143 21144 21145 21146 21147 21148 21149 21150 21151 21152 21153 21154 21155 21156 21157 21158 21159 21160 21161 21162 21163 21164 21165 21166 21167 21168 21169 21170 21171 21172 21173 21174 21175 21176 21177 21178 21179 21180 21181 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197 21198 21199 21200 21201 21202 21203 21204 21205 21206 21207 21208 21209 21210 21211 21212 21213 21214 21215 21216 21217 21218 21219 21220 21221 21222 21223 21224 21225 21226 21227 21228 21229 21230 21231 21232 21233 21234 21235 21236 21237 21238 21239 21240 21241 21242 21243 21244 21245 21246 21247 21248 21249 21250 21251 21252 21253 21254 21255 21256 21257 21258 21259 21260 21261 21262 21263 21264 21265 21266 21267 21268 21269 21270 21271 21272 21273 21274 21275 21276 21277 21278 21279 21280 21281 21282 21283 21284 21285 21286 21287 21288 21289 21290 21291 21292 21293 21294 21295 21296 21297 21298 21299 21300 21301 21302 21303 21304 21305 21306 21307 21308 21309 21310 21311 21312 21313 21314 21315 21316 21317 21318 21319 21320 21321 21322 21323 21324 21325 21326 21327 21328 21329 21330 21331 21332 21333 21334 21335 21336 21337 21338 21339 21340 21341 21342 21343 21344 21345 21346 21347 21348 21349 21350 21351 21352 21353 21354 21355 21356 21357 21358 21359 21360 21361 21362 21363 21364 21365 21366 21367 21368 21369 21370 21371 21372 21373 21374 21375 21376 21377 21378 21379 21380 21381 21382 21383 21384 21385 21386 21387 21388 21389 21390 21391 21392 21393 21394 21395 21396 21397 21398 21399 21400 21401 21402 21403 21404 21405 21406 21407 21408 21409 21410 21411 21412 21413 21414 21415 21416 21417 21418 21419 21420 21421 21422 21423 21424 21425 21426 21427 21428 21429 21430 21431 21432 21433 21434 21435 21436 21437 21438 21439 21440 21441 21442 21443 21444 21445 21446 21447 21448 21449 21450 21451 21452 21453 21454 21455 21456 21457 21458 21459 21460 21461 21462 21463 21464 21465 21466 21467 21468 21469 21470 21471 21472 21473 21474 21475 21476 21477 21478 21479 21480 21481 21482 21483 21484 21485 21486 21487 21488 21489 21490 21491 21492 21493 21494 21495 21496 21497 21498 21499 21500 21501 21502 21503 21504 21505 21506 21507 21508 21509 21510 21511 21512 21513 21514 21515 21516 21517 21518 21519 21520 21521 21522 21523 21524 21525 21526 21527 21528 21529 21530 21531 21532 21533 21534 21535 21536 21537 21538 21539 21540 21541 21542 21543 21544 21545 21546 21547 21548 21549 21550 21551 21552 21553 21554 21555 21556 21557 21558 21559 21560 21561 21562 21563 21564 21565 21566 21567 21568 21569 21570 21571 21572 21573 21574 21575 21576 21577 21578 21579 21580 21581 21582 21583 21584 21585 21586 21587 21588 21589 21590 21591 21592 21593 21594 21595 21596 21597 21598 21599 21600 21601 21602 21603 21604 21605 21606 21607 21608 21609 21610 21611 21612 21613 21614 21615 21616 21617 21618 21619 21620 21621 21622 21623 21624 21625 21626 21627 21628 21629 21630 21631 21632 21633 21634 21635 21636 21637 21638 21639 21640 21641 21642 21643 21644 21645 21646 21647 21648 21649 21650 21651 21652 21653 21654 21655 21656 21657 21658 21659 21660 21661 21662 21663 21664 21665 21666 21667 21668 21669 21670 21671 21672 21673 21674 21675 21676 21677 21678 21679 21680 21681 21682 21683 21684 21685 21686 21687 21688 21689 21690 21691 21692 21693 21694 21695 21696 21697 21698 21699 21700 21701 21702 21703 21704 21705 21706 21707 21708 21709 21710 21711 21712 21713 21714 21715 21716 21717 21718 21719 21720 21721 21722 21723 21724 21725 21726 21727 21728 21729 21730 21731 21732 21733 21734 21735 21736 21737 21738 21739 21740 21741 21742 21743 21744 21745 21746 21747 21748 21749 21750 21751 21752 21753 21754 21755 21756 21757 21758 21759 21760 21761 21762 21763 21764 21765 21766 21767 21768 21769 21770 21771 21772 21773 21774 21775 21776 21777 21778 21779 21780 21781 21782 21783 21784 21785 21786 21787 21788 21789 21790 21791 21792 21793 21794 21795 21796 21797 21798 21799 21800 21801 21802 21803 21804 21805 21806 21807 21808 21809 21810 21811 21812 21813 21814 21815 21816 21817 21818 21819 21820 21821 21822 21823 21824 21825 21826 21827 21828 21829 21830 21831 21832 21833 21834 21835 21836 21837 21838 21839 21840 21841 21842 21843 21844 21845 21846 21847 21848 21849 21850 21851 21852 21853 21854 21855 21856 21857 21858 21859 21860 21861 21862 21863 21864 21865 21866 21867 21868 21869 21870 21871 21872 21873 21874 21875 21876 21877 21878 21879 21880 21881 21882 21883 21884 21885 21886 21887 21888 21889 21890 21891 21892 21893 21894 21895 21896 21897 21898 21899 21900 21901 21902 21903 21904 21905 21906 21907 21908 21909 21910 21911 21912 21913 21914 21915 21916 21917 21918 21919 21920 21921 21922 21923 21924 21925 21926 21927 21928 21929 21930 21931 21932 21933 21934 21935 21936 21937 21938 21939 21940 21941 21942 21943 21944 21945 21946 21947 21948 21949 21950 21951 21952 21953 21954 21955 21956 21957 21958 21959 21960 21961 21962 21963 21964 21965 21966 21967 21968 21969 21970 21971 21972 21973 21974 21975 21976 21977 21978 21979 21980 21981 21982 21983 21984 21985 21986 21987 21988 21989 21990 21991 21992 21993 21994 21995 21996 21997 21998 21999 22000 22001 22002 22003 22004 22005 22006 22007 22008 22009 22010 22011 22012 22013 22014 22015 22016 22017 22018 22019 22020 22021 22022 22023 22024 22025 22026 22027 22028 22029 22030 22031 22032 22033 22034 22035 22036 22037 22038 22039 22040 22041 22042 22043 22044 22045 22046 22047 22048 22049 22050 22051 22052 22053 22054 22055 22056 22057 22058 22059 22060 22061 22062 22063 22064 22065 22066 22067 22068 22069 22070 22071 22072 22073 22074 22075 22076 22077 22078 22079 22080 22081 22082 22083 22084 22085 22086 22087 22088 22089 22090 22091 22092 22093 22094 22095 22096 22097 22098 22099 22100 22101 22102 22103 22104 22105 22106 22107 22108 22109 22110 22111 22112 22113 22114 22115 22116 22117 22118 22119 22120 22121 22122 22123 22124 22125 22126 22127 22128 22129 22130 22131 22132 22133 22134 22135 22136 22137 22138 22139 22140 22141 22142 22143 22144 22145 22146 22147 22148 22149 22150 22151 22152 22153 22154 22155 22156 22157 22158 22159 22160 22161 22162 22163 22164 22165 22166 22167 22168 22169 22170 22171 22172 22173 22174 22175 22176 22177 22178 22179 22180 22181 22182 22183 22184 22185 22186 22187 22188 22189 22190 22191 22192 22193 22194 22195 22196 22197 22198 22199 22200 22201 22202 22203 22204 22205 22206 22207 22208 22209 22210 22211 22212 22213 22214 22215 22216 22217 22218 22219 22220 22221 22222 22223 22224 22225 22226 22227 22228 22229 22230 22231 22232 22233 22234 22235 22236 22237 22238 22239 22240 22241 22242 22243 22244 22245 22246 22247 22248 22249 22250 22251 22252 22253 22254 22255 22256 22257 22258 22259 22260 22261 22262 22263 22264 22265 22266 22267 22268 22269 22270 22271 22272 22273 22274 22275 22276 22277 22278 22279 22280 22281 22282 22283 22284 22285 22286 22287 22288 22289 22290 22291 22292 22293 22294 22295 22296 22297 22298 22299 22300 22301 22302 22303 22304 22305 22306 22307 22308 22309 22310 22311 22312 22313 22314 22315 22316 22317 22318 22319 22320 22321 22322 22323 22324 22325 22326 22327 22328 22329 22330 22331 22332 22333 22334 22335 22336 22337 22338 22339 22340 22341 22342 22343 22344 22345 22346 22347 22348 22349 22350 22351 22352 22353 22354 22355 22356 22357 22358 22359 22360 22361 22362 22363 22364 22365 22366 22367 22368 22369 22370 22371 22372 22373 22374 22375 22376 22377 22378 22379 22380 22381 22382 22383 22384 22385 22386 22387 22388 22389 22390 22391 22392 22393 22394 22395 22396 22397 22398 22399 22400 22401 22402 22403 22404 22405 22406 22407 22408 22409 22410 22411 22412 22413 22414 22415 22416 22417 22418 22419 22420 22421 22422 22423 22424 22425 22426 22427 22428 22429 22430 22431 22432 22433 22434 22435 22436 22437 22438 22439 22440 22441 22442 22443 22444 22445 22446 22447 22448 22449 22450 22451 22452 22453 22454 22455 22456 22457 22458 22459 22460 22461 22462 22463 22464 22465 22466 22467 22468 22469 22470 22471 22472 22473 22474 22475 22476 22477 22478 22479 22480 22481 22482 22483 22484 22485 22486 22487 22488 22489 22490 22491 22492 22493 22494 22495 22496 22497 22498 22499 22500 22501 22502 22503 22504 22505 22506 22507 22508 22509 22510 22511 22512 22513 22514 22515 22516 22517 22518 22519 22520 22521 22522 22523 22524 22525 22526 22527 22528 22529 22530 22531 22532 22533 22534 22535 22536 22537 22538 22539 22540 22541 22542 22543 22544 22545 22546 22547 22548 22549 22550 22551 22552 22553 22554 22555 22556 22557 22558 22559 22560 22561 22562 22563 22564 22565 22566 22567 22568 22569 22570 22571 22572 22573 22574 22575 22576 22577 22578 22579 22580 22581 22582 22583 22584 22585 22586 22587 22588 22589 22590 22591 22592 22593 22594 22595 22596 22597 22598 22599 22600 22601 22602 22603 22604 22605 22606 22607 22608 22609 22610 22611 22612 22613 22614 22615 22616 22617 22618 22619 22620 22621 22622 22623 22624 22625 22626 22627 22628 22629 22630 22631 22632 22633 22634 22635 22636 22637 22638 22639 22640 22641 22642 22643 22644 22645 22646 22647 22648 22649 22650 22651 22652 22653 22654 22655 22656 22657 22658 22659 22660 22661 22662 22663 22664 22665 22666 22667 22668 22669 22670 22671 22672 22673 22674 22675 22676 22677 22678 22679 22680 22681 22682 22683 22684 22685 22686 22687 22688 22689 22690 22691 22692 22693 22694 22695 22696 22697 22698 22699 22700 22701 22702 22703 22704 22705 22706 22707 22708 22709 22710 22711 22712 22713 22714 22715 22716 22717 22718 22719 22720 22721 22722 22723 22724 22725 22726 22727 22728 22729 22730 22731 22732 22733 22734 22735 22736 22737 22738 22739 22740 22741 22742 22743 22744 22745 22746 22747 22748 22749 22750 22751 22752 22753 22754 22755 22756 22757 22758 22759 22760 22761 22762 22763 22764 22765 22766 22767 22768 22769 22770 22771 22772 22773 22774 22775 22776 22777 22778 22779 22780 22781 22782 22783 22784 22785 22786 22787 22788 22789 22790 22791 22792 22793 22794 22795 22796 22797 22798 22799 22800 22801 22802 22803 22804 22805 22806 22807 22808 22809 22810 22811 22812 22813 22814 22815 22816 22817 22818 22819 22820 22821 22822 22823 22824 22825 22826 22827 22828 22829 22830 22831 22832 22833 22834 22835 22836 22837 22838 22839 22840 22841 22842 22843 22844 22845 22846 22847 22848 22849 22850 22851 22852 22853 22854 22855 22856 22857 22858 22859 22860 22861 22862 22863 22864 22865 22866 22867 22868 22869 22870 22871 22872 22873 22874 22875 22876 22877 22878 22879 22880 22881 22882 22883 22884 22885 22886 22887 22888 22889 22890 22891 22892 22893 22894 22895 22896 22897 22898 22899 22900 22901 22902 22903 22904 22905 22906 22907 22908 22909 22910 22911 22912 22913 22914 22915 22916 22917 22918 22919 22920 22921 22922 22923 22924 22925 22926 22927 22928 22929 22930 22931 22932 22933 22934 22935 22936 22937 22938 22939 22940 22941 22942 22943 22944 22945 22946 22947 22948 22949 22950 22951 22952 22953 22954 22955 22956 22957 22958 22959 22960 22961 22962 22963 22964 22965 22966 22967 22968 22969 22970 22971 22972 22973 22974 22975 22976 22977 22978 22979 22980 22981 22982 22983 22984 22985 22986 22987 22988 22989 22990 22991 22992 22993 22994 22995 22996 22997 22998 22999 23000 23001 23002 23003 23004 23005 23006 23007 23008 23009 23010 23011 23012 23013 23014 23015 23016 23017 23018 23019 23020 23021 23022 23023 23024 23025 23026 23027 23028 23029 23030 23031 23032 23033 23034 23035 23036 23037 23038 23039 23040 23041 23042 23043 23044 23045 23046 23047 23048 23049 23050 23051 23052 23053 23054 23055 23056 23057 23058 23059 23060 23061 23062 23063 23064 23065 23066 23067 23068 23069 23070 23071 23072 23073 23074 23075 23076 23077 23078 23079 23080 23081 23082 23083 23084 23085 23086 23087 23088 23089 23090 23091 23092 23093 23094 23095 23096 23097 23098 23099 23100 23101 23102 23103 23104 23105 23106 23107 23108 23109 23110 23111 23112 23113 23114 23115 23116 23117 23118 23119 23120 23121 23122 23123 23124 23125 23126 23127 23128 23129 23130 23131 23132 23133 23134 23135 23136 23137 23138 23139 23140 23141 23142 23143 23144 23145 23146 23147 23148 23149 23150 23151 23152 23153 23154 23155 23156 23157 23158 23159 23160 23161 23162 23163 23164 23165 23166 23167 23168 23169 23170 23171 23172 23173 23174 23175 23176 23177 23178 23179 23180 23181 23182 23183 23184 23185 23186 23187 23188 23189 23190 23191 23192 23193 23194 23195 23196 23197 23198 23199 23200 23201 23202 23203 23204 23205 23206 23207 23208 23209 23210 23211 23212 23213 23214 23215 23216 23217 23218 23219 23220 23221 23222 23223 23224 23225 23226 23227 23228 23229 23230 23231 23232 23233 23234 23235 23236 23237 23238 23239 23240 23241 23242 23243 23244 23245 23246 23247 23248 23249 23250 23251 23252 23253 23254 23255 23256 23257 23258 23259 23260 23261 23262 23263 23264 23265 23266 23267 23268 23269 23270 23271 23272 23273 23274 23275 23276 23277 23278 23279 23280 23281 23282 23283 23284 23285 23286 23287 23288 23289 23290 23291 23292 23293 23294 23295 23296 23297 23298 23299 23300 23301 23302 23303 23304 23305 23306 23307 23308 23309 23310 23311 23312 23313 23314 23315 23316 23317 23318 23319 23320 23321 23322 23323 23324 23325 23326 23327 23328 23329 23330 23331 23332 23333 23334 23335 23336 23337 23338 23339 23340 23341 23342 23343 23344 23345 23346 23347 23348 23349 23350 23351 23352 23353 23354 23355 23356 23357 23358 23359 23360 23361 23362 23363 23364 23365 23366 23367 23368 23369 23370 23371 23372 23373 23374 23375 23376 23377 23378 23379 23380 23381 23382 23383 23384 23385 23386 23387 23388 23389 23390 23391 23392 23393 23394 23395 23396 23397 23398 23399 23400 23401 23402 23403 23404 23405 23406 23407 23408 23409 23410 23411 23412 23413 23414 23415 23416 23417 23418 23419 23420 23421 23422 23423 23424 23425 23426 23427 23428 23429 23430 23431 23432 23433 23434 23435 23436 23437 23438 23439 23440 23441 23442 23443 23444 23445 23446 23447 23448 23449 23450 23451 23452 23453 23454 23455 23456 23457 23458 23459 23460 23461 23462 23463 23464 23465 23466 23467 23468 23469 23470 23471 23472 23473 23474 23475 23476 23477 23478 23479 23480 23481 23482 23483 23484 23485 23486 23487 23488 23489 23490 23491 23492 23493 23494 23495 23496 23497 23498 23499 23500 23501 23502 23503 23504 23505 23506 23507 23508 23509 23510 23511 23512 23513 23514 23515 23516 23517 23518 23519 23520 23521 23522 23523 23524 23525 23526 23527 23528 23529 23530 23531 23532 23533 23534 23535 23536 23537 23538 23539 23540 23541 23542 23543 23544 23545 23546 23547 23548 23549 23550 23551 23552 23553 23554 23555 23556 23557 23558 23559 23560 23561 23562 23563 23564 23565 23566 23567 23568 23569 23570 23571 23572 23573 23574 23575 23576 23577 23578 23579 23580 23581 23582 23583 23584 23585 23586 23587 23588 23589 23590 23591 23592 23593 23594 23595 23596 23597 23598 23599 23600 23601 23602 23603 23604 23605 23606 23607 23608 23609 23610 23611 23612 23613 23614 23615 23616 23617 23618 23619 23620 23621 23622 23623 23624 23625 23626 23627 23628 23629 23630 23631 23632 23633 23634 23635 23636 23637 23638 23639 23640 23641 23642 23643 23644 23645 23646 23647 23648 23649 23650 23651 23652 23653 23654 23655 23656 23657 23658 23659 23660 23661 23662 23663 23664 23665 23666 23667 23668 23669 23670 23671 23672 23673 23674 23675 23676 23677 23678 23679 23680 23681 23682 23683 23684 23685 23686 23687 23688 23689 23690 23691 23692 23693 23694 23695 23696 23697 23698 23699 23700 23701 23702 23703 23704 23705 23706 23707 23708 23709 23710 23711 23712 23713 23714 23715 23716 23717 23718 23719 23720 23721 23722 23723 23724 23725 23726 23727 23728 23729 23730 23731 23732 23733 23734 23735 23736 23737 23738 23739 23740 23741 23742 23743 23744 23745 23746 23747 23748 23749 23750 23751 23752 23753 23754 23755 23756 23757 23758 23759 23760 23761 23762 23763 23764 23765 23766 23767 23768 23769 23770 23771 23772 23773 23774 23775 23776 23777 23778 23779 23780 23781 23782 23783 23784 23785 23786 23787 23788 23789 23790 23791 23792 23793 23794 23795 23796 23797 23798 23799 23800 23801 23802 23803 23804 23805 23806 23807 23808 23809 23810 23811 23812 23813 23814 23815 23816 23817 23818 23819 23820 23821 23822 23823 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23845 23846 23847 23848 23849 23850 23851 23852 23853 23854 23855 23856 23857 23858 23859 23860 23861 23862 23863 23864 23865 23866 23867 23868 23869 23870 23871 23872 23873 23874 23875 23876 23877 23878 23879 23880 23881 23882 23883 23884 23885 23886 23887 23888 23889 23890 23891 23892 23893 23894 23895 23896 23897 23898 23899 23900 23901 23902 23903 23904 23905 23906 23907 23908 23909 23910 23911 23912 23913 23914 23915 23916 23917 23918 23919 23920 23921 23922 23923 23924 23925 23926 23927 23928 23929 23930 23931 23932 23933 23934 23935 23936 23937 23938 23939 23940 23941 23942 23943 23944 23945 23946 23947 23948 23949 23950 23951 23952 23953 23954 23955 23956 23957 23958 23959 23960 23961 23962 23963 23964 23965 23966 23967 23968 23969 23970 23971 23972 23973 23974 23975 23976 23977 23978 23979 23980 23981 23982 23983 23984 23985 23986 23987 23988 23989 23990 23991 23992 23993 23994 23995 23996 23997 23998 23999 24000 24001 24002 24003 24004 24005 24006 24007 24008 24009 24010 24011 24012 24013 24014 24015 24016 24017 24018 24019 24020 24021 24022 24023 24024 24025 24026 24027 24028 24029 24030 24031 24032 24033 24034 24035 24036 24037 24038 24039 24040 24041 24042 24043 24044 24045 24046 24047 24048 24049 24050 24051 24052 24053 24054 24055 24056 24057 24058 24059 24060 24061 24062 24063 24064 24065 24066 24067 24068 24069 24070 24071 24072 24073 24074 24075 24076 24077 24078 24079 24080 24081 24082 24083 24084 24085 24086 24087 24088 24089 24090 24091 24092 24093 24094 24095 24096 24097 24098 24099 24100 24101 24102 24103 24104 24105 24106 24107 24108 24109 24110 24111 24112 24113 24114 24115 24116 24117 24118 24119 24120 24121 24122 24123 24124 24125 24126 24127 24128 24129 24130 24131 24132 24133 24134 24135 24136 24137 24138 24139 24140 24141 24142 24143 24144 24145 24146 24147 24148 24149 24150 24151 24152 24153 24154 24155 24156 24157 24158 24159 24160 24161 24162 24163 24164 24165 24166 24167 24168 24169 24170 24171 24172 24173 24174 24175 24176 24177 24178 24179 24180 24181 24182 24183 24184 24185 24186 24187 24188 24189 24190 24191 24192 24193 24194 24195 24196 24197 24198 24199 24200 24201 24202 24203 24204 24205 24206 24207 24208 24209 24210 24211 24212 24213 24214 24215 24216 24217 24218 24219 24220 24221 24222 24223 24224 24225 24226 24227 24228 24229 24230 24231 24232 24233 24234 24235 24236 24237 24238 24239 24240 24241 24242 24243 24244 24245 24246 24247 24248 24249 24250 24251 24252 24253 24254 24255 24256 24257 24258 24259 24260 24261 24262 24263 24264 24265 24266 24267 24268 24269 24270 24271 24272 24273 24274 24275 24276 24277 24278 24279 24280 24281 24282 24283 24284 24285 24286 24287 24288 24289 24290 24291 24292 24293 24294 24295 24296 24297 24298 24299 24300 24301 24302 24303 24304 24305 24306 24307 24308 24309 24310 24311 24312 24313 24314 24315 24316 24317 24318 24319 24320 24321 24322 24323 24324 24325 24326 24327 24328 24329 24330 24331 24332 24333 24334 24335 24336 24337 24338 24339 24340 24341 24342 24343 24344 24345 24346 24347 24348 24349 24350 24351 24352 24353 24354 24355 24356 24357 24358 24359 24360 24361 24362 24363 24364 24365 24366 24367 24368 24369 24370 24371 24372 24373 24374 24375 24376 24377 24378 24379 24380 24381 24382 24383 24384 24385 24386 24387 24388 24389 24390 24391 24392 24393 24394 24395 24396 24397 24398 24399 24400 24401 24402 24403 24404 24405 24406 24407 24408 24409 24410 24411 24412 24413 24414 24415 24416 24417 24418 24419 24420 24421 24422 24423 24424 24425 24426 24427 24428 24429 24430 24431 24432 24433 24434 24435 24436 24437 24438 24439 24440 24441 24442 24443 24444 24445 24446 24447 24448 24449 24450 24451 24452 24453 24454 24455 24456 24457 24458 24459 24460 24461 24462 24463 24464 24465 24466 24467 24468 24469 24470 24471 24472 24473 24474 24475 24476 24477 24478 24479 24480 24481 24482 24483 24484 24485 24486 24487 24488 24489 24490 24491 24492 24493 24494 24495 24496 24497 24498 24499 24500 24501 24502 24503 24504 24505 24506 24507 24508 24509 24510 24511 24512 24513 24514 24515 24516 24517 24518 24519 24520 24521 24522 24523 24524 24525 24526 24527 24528 24529 24530 24531 24532 24533 24534 24535 24536 24537 24538 24539 24540 24541 24542 24543 24544 24545 24546 24547 24548 24549 24550 24551 24552 24553 24554 24555 24556 24557 24558 24559 24560 24561 24562 24563 24564 24565 24566 24567 24568 24569 24570 24571 24572 24573 24574 24575 24576 24577 24578 24579 24580 24581 24582 24583 24584 24585 24586 24587 24588 24589 24590 24591 24592 24593 24594 24595 24596 24597 24598 24599 24600 24601 24602 24603 24604 24605 24606 24607 24608 24609 24610 24611 24612 24613 24614 24615 24616 24617 24618 24619 24620 24621 24622 24623 24624 24625 24626 24627 24628 24629 24630 24631 24632 24633 24634 24635 24636 24637 24638 24639 24640 24641 24642 24643 24644 24645 24646 24647 24648 24649 24650 24651 24652 24653 24654 24655 24656 24657 24658 24659 24660 24661 24662 24663 24664 24665 24666 24667 24668 24669 24670 24671 24672 24673 24674 24675 24676 24677 24678 24679 24680 24681 24682 24683 24684 24685 24686 24687 24688 24689 24690 24691 24692 24693 24694 24695 24696 24697 24698 24699 24700 24701 24702 24703 24704 24705 24706 24707 24708 24709 24710 24711 24712 24713 24714 24715 24716 24717 24718 24719 24720 24721 24722 24723 24724 24725 24726 24727 24728 24729 24730 24731 24732 24733 24734 24735 24736 24737 24738 24739 24740 24741 24742 24743 24744 24745 24746 24747 24748 24749 24750 24751 24752 24753 24754 24755 24756 24757 24758 24759 24760 24761 24762 24763 24764 24765 24766 24767 24768 24769 24770 24771 24772 24773 24774 24775 24776 24777 24778 24779 24780 24781 24782 24783 24784 24785 24786 24787 24788 24789 24790 24791 24792 24793 24794 24795 24796 24797 24798 24799 24800 24801 24802 24803 24804 24805 24806 24807 24808 24809 24810 24811 24812 24813 24814 24815 24816 24817 24818 24819 24820 24821 24822 24823 24824 24825 24826 24827 24828 24829 24830 24831 24832 24833 24834 24835 24836 24837 24838 24839 24840 24841 24842 24843 24844 24845 24846 24847 24848 24849 24850 24851 24852 24853 24854 24855 24856 24857 24858 24859 24860 24861 24862 24863 24864 24865 24866 24867 24868 24869 24870 24871 24872 24873 24874 24875 24876 24877 24878 24879 24880 24881 24882 24883 24884 24885 24886 24887 24888 24889 24890 24891 24892 24893 24894 24895 24896 24897 24898 24899 24900 24901 24902 24903 24904 24905 24906 24907 24908 24909 24910 24911 24912 24913 24914 24915 24916 24917 24918 24919 24920 24921 24922 24923 24924 24925 24926 24927 24928 24929 24930 24931 24932 24933 24934 24935 24936 24937 24938 24939 24940 24941 24942 24943 24944 24945 24946 24947 24948 24949 24950 24951 24952 24953 24954 24955 24956 24957 24958 24959 24960 24961 24962 24963 24964 24965 24966 24967 24968 24969 24970 24971 24972 24973 24974 24975 24976 24977 24978 24979 24980 24981 24982 24983 24984 24985 24986 24987 24988 24989 24990 24991 24992 24993 24994 24995 24996 24997 24998 24999 25000 25001 25002 25003 25004 25005 25006 25007 25008 25009 25010 25011 25012 25013 25014 25015 25016 25017 25018 25019 25020 25021 25022 25023 25024 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 25039 25040 25041 25042 25043 25044 25045 25046 25047 25048 25049 25050 25051 25052 25053 25054 25055 25056 25057 25058 25059 25060 25061 25062 25063 25064 25065 25066 25067 25068 25069 25070 25071 25072 25073 25074 25075 25076 25077 25078 25079 25080 25081 25082 25083 25084 25085 25086 25087 25088 25089 25090 25091 25092 25093 25094 25095 25096 25097 25098 25099 25100 25101 25102 25103 25104 25105 25106 25107 25108 25109 25110 25111 25112 25113 25114 25115 25116 25117 25118 25119 25120 25121 25122 25123 25124 25125 25126 25127 25128 25129 25130 25131 25132 25133 25134 25135 25136 25137 25138 25139 25140 25141 25142 25143 25144 25145 25146 25147 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 25159 25160 25161 25162 25163 25164 25165 25166 25167 25168 25169 25170 25171 25172 25173 25174 25175 25176 25177 25178 25179 25180 25181 25182 25183 25184 25185 25186 25187 25188 25189 25190 25191 25192 25193 25194 25195 25196 25197 25198 25199 25200 25201 25202 25203 25204 25205 25206 25207 25208 25209 25210 25211 25212 25213 25214 25215 25216 25217 25218 25219 25220 25221 25222 25223 25224 25225 25226 25227 25228 25229 25230 25231 25232 25233 25234 25235 25236 25237 25238 25239 25240 25241 25242 25243 25244 25245 25246 25247 25248 25249 25250 25251 25252 25253 25254 25255 25256 25257 25258 25259 25260 25261 25262 25263 25264 25265 25266 25267 25268 25269 25270 25271 25272 25273 25274 25275 25276 25277 25278 25279 25280 25281 25282 25283 25284 25285 25286 25287 25288 25289 25290 25291 25292 25293 25294 25295 25296 25297 25298 25299 25300 25301 25302 25303 25304 25305 25306 25307 25308 25309 25310 25311 25312 25313 25314 25315 25316 25317 25318 25319 25320 25321 25322 25323 25324 25325 25326 25327 25328 25329 25330 25331 25332 25333 25334 25335 25336 25337 25338 25339 25340 25341 25342 25343 25344 25345 25346 25347 25348 25349 25350 25351 25352 25353 25354 25355 25356 25357 25358 25359 25360 25361 25362 25363 25364 25365 25366 25367 25368 25369 25370 25371 25372 25373 25374 25375 25376 25377 25378 25379 25380 25381 25382 25383 25384 25385 25386 25387 25388 25389 25390 25391 25392 25393 25394 25395 25396 25397 25398 25399 25400 25401 25402 25403 25404 25405 25406 25407 25408 25409 25410 25411 25412 25413 25414 25415 25416 25417 25418 25419 25420 25421 25422 25423 25424 25425 25426 25427 25428 25429 25430 25431 25432 25433 25434 25435 25436 25437 25438 25439 25440 25441 25442 25443 25444 25445 25446 25447 25448 25449 25450 25451 25452 25453 25454 25455 25456 25457 25458 25459 25460 25461 25462 25463 25464 25465 25466 25467 25468 25469 25470 25471 25472 25473 25474 25475 25476 25477 25478 25479 25480 25481 25482 25483 25484 25485 25486 25487 25488 25489 25490 25491 25492 25493 25494 25495 25496 25497 25498 25499 25500 25501 25502 25503 25504 25505 25506 25507 25508 25509 25510 25511 25512 25513 25514 25515 25516 25517 25518 25519 25520 25521 25522 25523 25524 25525 25526 25527 25528 25529 25530 25531 25532 25533 25534 25535 25536 25537 25538 25539 25540 25541 25542 25543 25544 25545 25546 25547 25548 25549 25550 25551 25552 25553 25554 25555 25556 25557 25558 25559 25560 25561 25562 25563 25564 25565 25566 25567 25568 25569 25570 25571 25572 25573 25574 25575 25576 25577 25578 25579 25580 25581 25582 25583 25584 25585 25586 25587 25588 25589 25590 25591 25592 25593 25594 25595 25596 25597 25598 25599 25600 25601 25602 25603 25604 25605 25606 25607 25608 25609 25610 25611 25612 25613 25614 25615 25616 25617 25618 25619 25620 25621 25622 25623 25624 25625 25626 25627 25628 25629 25630 25631 25632 25633 25634 25635 25636 25637 25638 25639 25640 25641 25642 25643 25644 25645 25646 25647 25648 25649 25650 25651 25652 25653 25654 25655 25656 25657 25658 25659 25660 25661 25662 25663 25664 25665 25666 25667 25668 25669 25670 25671 25672 25673 25674 25675 25676 25677 25678 25679 25680 25681 25682 25683 25684 25685 25686 25687 25688 25689 25690 25691 25692 25693 25694 25695 25696 25697 25698 25699 25700 25701 25702 25703 25704 25705 25706 25707 25708 25709 25710 25711 25712 25713 25714 25715 25716 25717 25718 25719 25720 25721 25722 25723 25724 25725 25726 25727 25728 25729 25730 25731 25732 25733 25734 25735 25736 25737 25738 25739 25740 25741 25742 25743 25744 25745 25746 25747 25748 25749 25750 25751 25752 25753 25754 25755 25756 25757 25758 25759 25760 25761 25762 25763 25764 25765 25766 25767 25768 25769 25770 25771 25772 25773 25774 25775 25776 25777 25778 25779 25780 25781 25782 25783 25784 25785 25786 25787 25788 25789 25790 25791 25792 25793 25794 25795 25796 25797 25798 25799 25800 25801 25802 25803 25804 25805 25806 25807 25808 25809 25810 25811 25812 25813 25814 25815 25816 25817 25818 25819 25820 25821 25822 25823 25824 25825 25826 25827 25828 25829 25830 25831 25832 25833 25834 25835 25836 25837 25838 25839 25840 25841 25842 25843 25844 25845 25846 25847 25848 25849 25850 25851 25852 25853 25854 25855 25856 25857 25858 25859 25860 25861 25862 25863 25864 25865 25866 25867 25868 25869 25870 25871 25872 25873 25874 25875 25876 25877 25878 25879 25880 25881 25882 25883 25884 25885 25886 25887 25888 25889 25890 25891 25892 25893 25894 25895 25896 25897 25898 25899 25900 25901 25902 25903 25904 25905 25906 25907 25908 25909 25910 25911 25912 25913 25914 25915 25916 25917 25918 25919 25920 25921 25922 25923 25924 25925 25926 25927 25928 25929 25930 25931 25932 25933 25934 25935 25936 25937 25938 25939 25940 25941 25942 25943 25944 25945 25946 25947 25948 25949 25950 25951 25952 25953 25954 25955 25956 25957 25958 25959 25960 25961 25962 25963 25964 25965 25966 25967 25968 25969 25970 25971 25972 25973 25974 25975 25976 25977 25978 25979 25980 25981 25982 25983 25984 25985 25986 25987 25988 25989 25990 25991 25992 25993 25994 25995 25996 25997 25998 25999 26000 26001 26002 26003 26004 26005 26006 26007 26008 26009 26010 26011 26012 26013 26014 26015 26016 26017 26018 26019 26020 26021 26022 26023 26024 26025 26026 26027 26028 26029 26030 26031 26032 26033 26034 26035 26036 26037 26038 26039 26040 26041 26042 26043 26044 26045 26046 26047 26048 26049 26050 26051 26052 26053 26054 26055 26056 26057 26058 26059 26060 26061 26062 26063 26064 26065 26066 26067 26068 26069 26070 26071 26072 26073 26074 26075 26076 26077 26078 26079 26080 26081 26082 26083 26084 26085 26086 26087 26088 26089 26090 26091 26092 26093 26094 26095 26096 26097 26098 26099 26100 26101 26102 26103 26104 26105 26106 26107 26108 26109 26110 26111 26112 26113 26114 26115 26116 26117 26118 26119 26120 26121 26122 26123 26124 26125 26126 26127 26128 26129 26130 26131 26132 26133 26134 26135 26136 26137 26138 26139 26140 26141 26142 26143 26144 26145 26146 26147 26148 26149 26150 26151 26152 26153 26154 26155 26156 26157 26158 26159 26160 26161 26162 26163 26164 26165 26166 26167 26168 26169 26170 26171 26172 26173 26174 26175 26176 26177 26178 26179 26180 26181 26182 26183 26184 26185 26186 26187 26188 26189 26190 26191 26192 26193 26194 26195 26196 26197 26198 26199 26200 26201 26202 26203 26204 26205 26206 26207 26208 26209 26210 26211 26212 26213 26214 26215 26216 26217 26218 26219 26220 26221 26222 26223 26224 26225 26226 26227 26228 26229 26230 26231 26232 26233 26234 26235 26236 26237 26238 26239 26240 26241 26242 26243 26244 26245 26246 26247 26248 26249 26250 26251 26252 26253 26254 26255 26256 26257 26258 26259 26260 26261 26262 26263 26264 26265 26266 26267 26268 26269 26270 26271 26272 26273 26274 26275 26276 26277 26278 26279 26280 26281 26282 26283 26284 26285 26286 26287 26288 26289 26290 26291 26292 26293 26294 26295 26296 26297 26298 26299 26300 26301 26302 26303 26304 26305 26306 26307 26308 26309 26310 26311 26312 26313 26314 26315 26316 26317 26318 26319 26320 26321 26322 26323 26324 26325 26326 26327 26328 26329 26330 26331 26332 26333 26334 26335 26336 26337 26338 26339 26340 26341 26342 26343 26344 26345 26346 26347 26348 26349 26350 26351 26352 26353 26354 26355 26356 26357 26358 26359 26360 26361 26362 26363 26364 26365 26366 26367 26368 26369 26370 26371 26372 26373 26374 26375 26376 26377 26378 26379 26380 26381 26382 26383 26384 26385 26386 26387 26388 26389 26390 26391 26392 26393 26394 26395 26396 26397 26398 26399 26400 26401 26402 26403 26404 26405 26406 26407 26408 26409 26410 26411 26412 26413 26414 26415 26416 26417 26418 26419 26420 26421 26422 26423 26424 26425 26426 26427 26428 26429 26430 26431 26432 26433 26434 26435 26436 26437 26438 26439 26440 26441 26442 26443 26444 26445 26446 26447 26448 26449 26450 26451 26452 26453 26454 26455 26456 26457 26458 26459 26460 26461 26462 26463 26464 26465 26466 26467 26468 26469 26470 26471 26472 26473 26474 26475 26476 26477 26478 26479 26480 26481 26482 26483 26484 26485 26486 26487 26488 26489 26490 26491 26492 26493 26494 26495 26496 26497 26498 26499 26500 26501 26502 26503 26504 26505 26506 26507 26508 26509 26510 26511 26512 26513 26514 26515 26516 26517 26518 26519 26520 26521 26522 26523 26524 26525 26526 26527 26528 26529 26530 26531 26532 26533 26534 26535 26536 26537 26538 26539 26540 26541 26542 26543 26544 26545 26546 26547 26548 26549 26550 26551 26552 26553 26554 26555 26556 26557 26558 26559 26560 26561 26562 26563 26564 26565 26566 26567 26568 26569 26570 26571 26572 26573 26574 26575 26576 26577 26578 26579 26580 26581 26582 26583 26584 26585 26586 26587 26588 26589 26590 26591 26592 26593 26594 26595 26596 26597 26598 26599 26600 26601 26602 26603 26604 26605 26606 26607 26608 26609 26610 26611 26612 26613 26614 26615 26616 26617 26618 26619 26620 26621 26622 26623 26624 26625 26626 26627 26628 26629 26630 26631 26632 26633 26634 26635 26636 26637 26638 26639 26640 26641 26642 26643 26644 26645 26646 26647 26648 26649 26650 26651 26652 26653 26654 26655 26656 26657 26658 26659 26660 26661 26662 26663 26664 26665 26666 26667 26668 26669 26670 26671 26672 26673 26674 26675 26676 26677 26678 26679 26680 26681 26682 26683 26684 26685 26686 26687 26688 26689 26690 26691 26692 26693 26694 26695 26696 26697 26698 26699 26700 26701 26702 26703 26704 26705 26706 26707 26708 26709 26710 26711 26712 26713 26714 26715 26716 26717 26718 26719 26720 26721 26722 26723 26724 26725 26726 26727 26728 26729 26730 26731 26732 26733 26734 26735 26736 26737 26738 26739 26740 26741 26742 26743 26744 26745 26746 26747 26748 26749 26750 26751 26752 26753 26754 26755 26756 26757 26758 26759 26760 26761 26762 26763 26764 26765 26766 26767 26768 26769 26770 26771 26772 26773 26774 26775 26776 26777 26778 26779 26780 26781 26782 26783 26784 26785 26786 26787 26788 26789 26790 26791 26792 26793 26794 26795 26796 26797 26798 26799 26800 26801 26802 26803 26804 26805 26806 26807 26808 26809 26810 26811 26812 26813 26814 26815 26816 26817 26818 26819 26820 26821 26822 26823 26824 26825 26826 26827 26828 26829 26830 26831 26832 26833 26834 26835 26836 26837 26838 26839 26840 26841 26842 26843 26844 26845 26846 26847 26848 26849 26850 26851 26852 26853 26854 26855 26856 26857 26858 26859 26860 26861 26862 26863 26864 26865 26866 26867 26868 26869 26870 26871 26872 26873 26874 26875 26876 26877 26878 26879 26880 26881 26882 26883 26884 26885 26886 26887 26888 26889 26890 26891 26892 26893 26894 26895 26896 26897 26898 26899 26900 26901 26902 26903 26904 26905 26906 26907 26908 26909 26910 26911 26912 26913 26914 26915 26916 26917 26918 26919 26920 26921 26922 26923 26924 26925 26926 26927 26928 26929 26930 26931 26932 26933 26934 26935 26936 26937 26938 26939 26940 26941 26942 26943 26944 26945 26946 26947 26948 26949 26950 26951 26952 26953 26954 26955 26956 26957 26958 26959 26960 26961 26962 26963 26964 26965 26966 26967 26968 26969 26970 26971 26972 26973 26974 26975 26976 26977 26978 26979 26980 26981 26982 26983 26984 26985 26986 26987 26988 26989 26990 26991 26992 26993 26994 26995 26996 26997 26998 26999 27000 27001 27002 27003 27004 27005 27006 27007 27008 27009 27010 27011 27012 27013 27014 27015 27016 27017 27018 27019 27020 27021 27022 27023 27024 27025 27026 27027 27028 27029 27030 27031 27032 27033 27034 27035 27036 27037 27038 27039 27040 27041 27042 27043 27044 27045 27046 27047 27048 27049 27050 27051 27052 27053 27054 27055 27056 27057 27058 27059 27060 27061 27062 27063 27064 27065 27066 27067 27068 27069 27070 27071 27072 27073 27074 27075 27076 27077 27078 27079 27080 27081 27082 27083 27084 27085 27086 27087 27088 27089 27090 27091 27092 27093 27094 27095 27096 27097 27098 27099 27100 27101 27102 27103 27104 27105 27106 27107 27108 27109 27110 27111 27112 27113 27114 27115 27116 27117 27118 27119 27120 27121 27122 27123 27124 27125 27126 27127 27128 27129 27130 27131 27132 27133 27134 27135 27136 27137 27138 27139 27140 27141 27142 27143 27144 27145 27146 27147 27148 27149 27150 27151 27152 27153 27154 27155 27156 27157 27158 27159 27160 27161 27162 27163 27164 27165 27166 27167 27168 27169 27170 27171 27172 27173 27174 27175 27176 27177 27178 27179 27180 27181 27182 27183 27184 27185 27186 27187 27188 27189 27190 27191 27192 27193 27194 27195 27196 27197 27198 27199 27200 27201 27202 27203 27204 27205 27206 27207 27208 27209 27210 27211 27212 27213 27214 27215 27216 27217 27218 27219 27220 27221 27222 27223 27224 27225 27226 27227 27228 27229 27230 27231 27232 27233 27234 27235 27236 27237 27238 27239 27240 27241 27242 27243 27244 27245 27246 27247 27248 27249 27250 27251 27252 27253 27254 27255 27256 27257 27258 27259 27260 27261 27262 27263 27264 27265 27266 27267 27268 27269 27270 27271 27272 27273 27274 27275 27276 27277 27278 27279 27280 27281 27282 27283 27284 27285 27286 27287 27288 27289 27290 27291 27292 27293 27294 27295 27296 27297 27298 27299 27300 27301 27302 27303 27304 27305 27306 27307 27308 27309 27310 27311 27312 27313 27314 27315 27316 27317 27318 27319 27320 27321 27322 27323 27324 27325 27326 27327 27328 27329 27330 27331 27332 27333 27334 27335 27336 27337 27338 27339 27340 27341 27342 27343 27344 27345 27346 27347 27348 27349 27350 27351 27352 27353 27354 27355 27356 27357 27358 27359 27360 27361 27362 27363 27364 27365 27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 27379 27380 27381 27382 27383 27384 27385 27386 27387 27388 27389 27390 27391 27392 27393 27394 27395 27396 27397 27398 27399 27400 27401 27402 27403 27404 27405 27406 27407 27408 27409 27410 27411 27412 27413 27414 27415 27416 27417 27418 27419 27420 27421 27422 27423 27424 27425 27426 27427 27428 27429 27430 27431 27432 27433 27434 27435 27436 27437 27438 27439 27440 27441 27442 27443 27444 27445 27446 27447 27448 27449 27450 27451 27452 27453 27454 27455 27456 27457 27458 27459 27460 27461 27462 27463 27464 27465 27466 27467 27468 27469 27470 27471 27472 27473 27474 27475 27476 27477 27478 27479 27480 27481 27482 27483 27484 27485 27486 27487 27488 27489 27490 27491 27492 27493 27494 27495 27496 27497 27498 27499 27500 27501 27502 27503 27504 27505 27506 27507 27508 27509 27510 27511 27512 27513 27514 27515 27516 27517 27518 27519 27520 27521 27522 27523 27524 27525 27526 27527 27528 27529 27530 27531 27532 27533 27534 27535 27536 27537 27538 27539 27540 27541 27542 27543 27544 27545 27546 27547 27548 27549 27550 27551 27552 27553 27554 27555 27556 27557 27558 27559 27560 27561 27562 27563 27564 27565 27566 27567 27568 27569 27570 27571 27572 27573 27574 27575 27576 27577 27578 27579 27580 27581 27582 27583 27584 27585 27586 27587 27588 27589 27590 27591 27592 27593 27594 27595 27596 27597 27598 27599 27600 27601 27602 27603 27604 27605 27606 27607 27608 27609 27610 27611 27612 27613 27614 27615 27616 27617 27618 27619 27620 27621 27622 27623 27624 27625 27626 27627 27628 27629 27630 27631 27632 27633 27634 27635 27636 27637 27638 27639 27640 27641 27642 27643 27644 27645 27646 27647 27648 27649 27650 27651 27652 27653 27654 27655 27656 27657 27658 27659 27660 27661 27662 27663 27664 27665 27666 27667 27668 27669 27670 27671 27672 27673 27674 27675 27676 27677 27678 27679 27680 27681 27682 27683 27684 27685 27686 27687 27688 27689 27690 27691 27692 27693 27694 27695 27696 27697 27698 27699 27700 27701 27702 27703 27704 27705 27706 27707 27708 27709 27710 27711 27712 27713 27714 27715 27716 27717 27718 27719 27720 27721 27722 27723 27724 27725 27726 27727 27728 27729 27730 27731 27732 27733 27734 27735 27736 27737 27738 27739 27740 27741 27742 27743 27744 27745 27746 27747 27748 27749 27750 27751 27752 27753 27754 27755 27756 27757 27758 27759 27760 27761 27762 27763 27764 27765 27766 27767 27768 27769 27770 27771 27772 27773 27774 27775 27776 27777 27778 27779 27780 27781 27782 27783 27784 27785 27786 27787 27788 27789 27790 27791 27792 27793 27794 27795 27796 27797 27798 27799 27800 27801 27802 27803 27804 27805 27806 27807 27808 27809 27810 27811 27812 27813 27814 27815 27816 27817 27818 27819 27820 27821 27822 27823 27824 27825 27826 27827 27828 27829 27830 27831 27832 27833 27834 27835 27836 27837 27838 27839 27840 27841 27842 27843 27844 27845 27846 27847 27848 27849 27850 27851 27852 27853 27854 27855 27856 27857 27858 27859 27860 27861 27862 27863 27864 27865 27866 27867 27868 27869 27870 27871 27872 27873 27874 27875 27876 27877 27878 27879 27880 27881 27882 27883 27884 27885 27886 27887 27888 27889 27890 27891 27892 27893 27894 27895 27896 27897 27898 27899 27900 27901 27902 27903 27904 27905 27906 27907 27908 27909 27910 27911 27912 27913 27914 27915 27916 27917 27918 27919 27920 27921 27922 27923 27924 27925 27926 27927 27928 27929 27930 27931 27932 27933 27934 27935 27936 27937 27938 27939 27940 27941 27942 27943 27944 27945 27946 27947 27948 27949 27950 27951 27952 27953 27954 27955 27956 27957 27958 27959 27960 27961 27962 27963 27964 27965 27966 27967 27968 27969 27970 27971 27972 27973 27974 27975 27976 27977 27978 27979 27980 27981 27982 27983 27984 27985 27986 27987 27988 27989 27990 27991 27992 27993 27994 27995 27996 27997 27998 27999 28000 28001 28002 28003 28004 28005 28006 28007 28008 28009 28010 28011 28012 28013 28014 28015 28016 28017 28018 28019 28020 28021 28022 28023 28024 28025 28026 28027 28028 28029 28030 28031 28032 28033 28034 28035 28036 28037 28038 28039 28040 28041 28042 28043 28044 28045 28046 28047 28048 28049 28050 28051 28052 28053 28054 28055 28056 28057 28058 28059 28060 28061 28062 28063 28064 28065 28066 28067 28068 28069 28070 28071 28072 28073 28074 28075 28076 28077 28078 28079 28080 28081 28082 28083 28084 28085 28086 28087 28088 28089 28090 28091 28092 28093 28094 28095 28096 28097 28098 28099 28100 28101 28102 28103 28104 28105 28106 28107 28108 28109 28110 28111 28112 28113 28114 28115 28116 28117 28118 28119 28120 28121 28122 28123 28124 28125 28126 28127 28128 28129 28130 28131 28132 28133 28134 28135 28136 28137 28138 28139 28140 28141 28142 28143 28144 28145 28146 28147 28148 28149 28150 28151 28152 28153 28154 28155 28156 28157 28158 28159 28160 28161 28162 28163 28164 28165 28166 28167 28168 28169 28170 28171 28172 28173 28174 28175 28176 28177 28178 28179 28180 28181 28182 28183 28184 28185 28186 28187 28188 28189 28190 28191 28192 28193 28194 28195 28196 28197 28198 28199 28200 28201 28202 28203 28204 28205 28206 28207 28208 28209 28210 28211 28212 28213 28214 28215 28216 28217 28218 28219 28220 28221 28222 28223 28224 28225 28226 28227 28228 28229 28230 28231 28232 28233 28234 28235 28236 28237 28238 28239 28240 28241 28242 28243 28244 28245 28246 28247 28248 28249 28250 28251 28252 28253 28254 28255 28256 28257 28258 28259 28260 28261 28262 28263 28264 28265 28266 28267 28268 28269 28270 28271 28272 28273 28274 28275 28276 28277 28278 28279 28280 28281 28282 28283 28284 28285 28286 28287 28288 28289 28290 28291 28292 28293 28294 28295 28296 28297 28298 28299 28300 28301 28302 28303 28304 28305 28306 28307 28308 28309 28310 28311 28312 28313 28314 28315 28316 28317 28318 28319 28320 28321 28322 28323 28324 28325 28326 28327 28328 28329 28330 28331 28332 28333 28334 28335 28336 28337 28338 28339 28340 28341 28342 28343 28344 28345 28346 28347 28348 28349 28350 28351 28352 28353 28354 28355 28356 28357 28358 28359 28360 28361 28362 28363 28364 28365 28366 28367 28368 28369 28370 28371 28372 28373 28374 28375 28376 28377 28378 28379 28380 28381 28382 28383 28384 28385 28386 28387 28388 28389 28390 28391 28392 28393 28394 28395 28396 28397 28398 28399 28400 28401 28402 28403 28404 28405 28406 28407 28408 28409 28410 28411 28412 28413 28414 28415 28416 28417 28418 28419 28420 28421 28422 28423 28424 28425 28426 28427 28428 28429 28430 28431 28432 28433 28434 28435 28436 28437 28438 28439 28440 28441 28442 28443 28444 28445 28446 28447 28448 28449 28450 28451 28452 28453 28454 28455 28456 28457 28458 28459 28460 28461 28462 28463 28464 28465 28466 28467 28468 28469 28470 28471 28472 28473 28474 28475 28476 28477 28478 28479 28480 28481 28482 28483 28484 28485 28486 28487 28488 28489 28490 28491 28492 28493 28494 28495 28496 28497 28498 28499 28500 28501 28502 28503 28504 28505 28506 28507 28508 28509 28510 28511 28512 28513 28514 28515 28516 28517 28518 28519 28520 28521 28522 28523 28524 28525 28526 28527 28528 28529 28530 28531 28532 28533 28534 28535 28536 28537 28538 28539 28540 28541 28542 28543 28544 28545 28546 28547 28548 28549 28550 28551 28552 28553 28554 28555 28556 28557 28558 28559 28560 28561 28562 28563 28564 28565 28566 28567 28568 28569 28570 28571 28572 28573 28574 28575 28576 28577 28578 28579 28580 28581 28582 28583 28584 28585 28586 28587 28588 28589 28590 28591 28592 28593 28594 28595 28596 28597 28598 28599 28600 28601 28602 28603 28604 28605 28606 28607 28608 28609 28610 28611 28612 28613 28614 28615 28616 28617 28618 28619 28620 28621 28622 28623 28624 28625 28626 28627 28628 28629 28630 28631 28632 28633 28634 28635 28636 28637 28638 28639 28640 28641 28642 28643 28644 28645 28646 28647 28648 28649 28650 28651 28652 28653 28654 28655 28656 28657 28658 28659 28660 28661 28662 28663 28664 28665 28666 28667 28668 28669 28670 28671 28672 28673 28674 28675 28676 28677 28678 28679 28680 28681 28682 28683 28684 28685 28686 28687 28688 28689 28690 28691 28692 28693 28694 28695 28696 28697 28698 28699 28700 28701 28702 28703 28704 28705 28706 28707 28708 28709 28710 28711 28712 28713 28714 28715 28716 28717 28718 28719 28720 28721 28722 28723 28724 28725 28726 28727 28728 28729 28730 28731 28732 28733 28734 28735 28736 28737 28738 28739 28740 28741 28742 28743 28744 28745 28746 28747 28748 28749 28750 28751 28752 28753 28754 28755 28756 28757 28758 28759 28760 28761 28762 28763 28764 28765 28766 28767 28768 28769 28770 28771 28772 28773 28774 28775 28776 28777 28778 28779 28780 28781 28782 28783 28784 28785 28786 28787 28788 28789 28790 28791 28792 28793 28794 28795 28796 28797 28798 28799 28800 28801 28802 28803 28804 28805 28806 28807 28808 28809 28810 28811 28812 28813 28814 28815 28816 28817 28818 28819 28820 28821 28822 28823 28824 28825 28826 28827 28828 28829 28830 28831 28832 28833 28834 28835 28836 28837 28838 28839 28840 28841 28842 28843 28844 28845 28846 28847 28848 28849 28850 28851 28852 28853 28854 28855 28856 28857 28858 28859 28860 28861 28862 28863 28864 28865 28866 28867 28868 28869 28870 28871 28872 28873 28874 28875 28876 28877 28878 28879 28880 28881 28882 28883 28884 28885 28886 28887 28888 28889 28890 28891 28892 28893 28894 28895 28896 28897 28898 28899 28900 28901 28902 28903 28904 28905 28906 28907 28908 28909 28910 28911 28912 28913 28914 28915 28916 28917 28918 28919 28920 28921 28922 28923 28924 28925 28926 28927 28928 28929 28930 28931 28932 28933 28934 28935 28936 28937 28938 28939 28940 28941 28942 28943 28944 28945 28946 28947 28948 28949 28950 28951 28952 28953 28954 28955 28956 28957 28958 28959 28960 28961 28962 28963 28964 28965 28966 28967 28968 28969 28970 28971 28972 28973 28974 28975 28976 28977 28978 28979 28980 28981 28982 28983 28984 28985 28986 28987 28988 28989 28990 28991 28992 28993 28994 28995 28996 28997 28998 28999 29000 29001 29002 29003 29004 29005 29006 29007 29008 29009 29010 29011 29012 29013 29014 29015 29016 29017 29018 29019 29020 29021 29022 29023 29024 29025 29026 29027 29028 29029 29030 29031 29032 29033 29034 29035 29036 29037 29038 29039 29040 29041 29042 29043 29044 29045 29046 29047 29048 29049 29050 29051 29052 29053 29054 29055 29056 29057 29058 29059 29060 29061 29062 29063 29064 29065 29066 29067 29068 29069 29070 29071 29072 29073 29074 29075 29076 29077 29078 29079 29080 29081 29082 29083 29084 29085 29086 29087 29088 29089 29090 29091 29092 29093 29094 29095 29096 29097 29098 29099 29100 29101 29102 29103 29104 29105 29106 29107 29108 29109 29110 29111 29112 29113 29114 29115 29116 29117 29118 29119 29120 29121 29122 29123 29124 29125 29126 29127 29128 29129 29130 29131 29132 29133 29134 29135 29136 29137 29138 29139 29140 29141 29142 29143 29144 29145 29146 29147 29148 29149 29150 29151 29152 29153 29154 29155 29156 29157 29158 29159 29160 29161 29162 29163 29164 29165 29166 29167 29168 29169 29170 29171 29172 29173 29174 29175 29176 29177 29178 29179 29180 29181 29182 29183 29184 29185 29186 29187 29188 29189 29190 29191 29192 29193 29194 29195 29196 29197 29198 29199 29200 29201 29202 29203 29204 29205 29206 29207 29208 29209 29210 29211 29212 29213 29214 29215 29216 29217 29218 29219 29220 29221 29222 29223 29224 29225 29226 29227 29228 29229 29230 29231 29232 29233 29234 29235 29236 29237 29238 29239 29240 29241 29242 29243 29244 29245 29246 29247 29248 29249 29250 29251 29252 29253 29254 29255 29256 29257 29258 29259 29260 29261 29262 29263 29264 29265 29266 29267 29268 29269 29270 29271 29272 29273 29274 29275 29276 29277 29278 29279 29280 29281 29282 29283 29284 29285 29286 29287 29288 29289 29290 29291 29292 29293 29294 29295 29296 29297 29298 29299 29300 29301 29302 29303 29304 29305 29306 29307 29308 29309 29310 29311 29312 29313 29314 29315 29316 29317 29318 29319 29320 29321 29322 29323 29324 29325 29326 29327 29328 29329 29330 29331 29332 29333 29334 29335 29336 29337 29338 29339 29340 29341 29342 29343 29344 29345 29346 29347 29348 29349 29350 29351 29352 29353 29354 29355 29356 29357 29358 29359 29360 29361 29362 29363 29364 29365 29366 29367 29368 29369 29370 29371 29372 29373 29374 29375 29376 29377 29378 29379 29380 29381 29382 29383 29384 29385 29386 29387 29388 29389 29390 29391 29392 29393 29394 29395 29396 29397 29398 29399 29400 29401 29402 29403 29404 29405 29406 29407 29408 29409 29410 29411 29412 29413 29414 29415 29416 29417 29418 29419 29420 29421 29422 29423 29424 29425 29426 29427 29428 29429 29430 29431 29432 29433 29434 29435 29436 29437 29438 29439 29440 29441 29442 29443 29444 29445 29446 29447 29448 29449 29450 29451 29452 29453 29454 29455 29456 29457 29458 29459 29460 29461 29462 29463 29464 29465 29466 29467 29468 29469 29470 29471 29472 29473 29474 29475 29476 29477 29478 29479 29480 29481 29482 29483 29484 29485 29486 29487 29488 29489 29490 29491 29492 29493 29494 29495 29496 29497 29498 29499 29500 29501 29502 29503 29504 29505 29506 29507 29508 29509 29510 29511 29512 29513 29514 29515 29516 29517 29518 29519 29520 29521 29522 29523 29524 29525 29526 29527 29528 29529 29530 29531 29532 29533 29534 29535 29536 29537 29538 29539 29540 29541 29542 29543 29544 29545 29546 29547 29548 29549 29550 29551 29552 29553 29554 29555 29556 29557 29558 29559 29560 29561 29562 29563 29564 29565 29566 29567 29568 29569 29570 29571 29572 29573 29574 29575 29576 29577 29578 29579 29580 29581 29582 29583 29584 29585 29586 29587 29588 29589 29590 29591 29592 29593 29594 29595 29596 29597 29598 29599 29600 29601 29602 29603 29604 29605 29606 29607 29608 29609 29610 29611 29612 29613 29614 29615 29616 29617 29618 29619 29620 29621 29622 29623 29624 29625 29626 29627 29628 29629 29630 29631 29632 29633 29634 29635 29636 29637 29638 29639 29640 29641 29642 29643 29644 29645 29646 29647 29648 29649 29650 29651 29652 29653 29654 29655 29656 29657 29658 29659 29660 29661 29662 29663 29664 29665 29666 29667 29668 29669 29670 29671 29672 29673 29674 29675 29676 29677 29678 29679 29680 29681 29682 29683 29684 29685 29686 29687 29688 29689 29690 29691 29692 29693 29694 29695 29696 29697 29698 29699 29700 29701 29702 29703 29704 29705 29706 29707 29708 29709 29710 29711 29712 29713 29714 29715 29716 29717 29718 29719 29720 29721 29722 29723 29724 29725 29726 29727 29728 29729 29730 29731 29732 29733 29734 29735 29736 29737 29738 29739 29740 29741 29742 29743 29744 29745 29746 29747 29748 29749 29750 29751 29752 29753 29754 29755 29756 29757 29758 29759 29760 29761 29762 29763 29764 29765 29766 29767 29768 29769 29770 29771 29772 29773 29774 29775 29776 29777 29778 29779 29780 29781 29782 29783 29784 29785 29786 29787 29788 29789 29790 29791 29792 29793 29794 29795 29796 29797 29798 29799 29800 29801 29802 29803 29804 29805 29806 29807 29808 29809 29810 29811 29812 29813 29814 29815 29816 29817 29818 29819 29820 29821 29822 29823 29824 29825 29826 29827 29828 29829 29830 29831 29832 29833 29834 29835 29836 29837 29838 29839 29840 29841 29842 29843 29844 29845 29846 29847 29848 29849 29850 29851 29852 29853 29854 29855 29856 29857 29858 29859 29860 29861 29862 29863 29864 29865 29866 29867 29868 29869 29870 29871 29872 29873 29874 29875 29876 29877 29878 29879 29880 29881 29882 29883 29884 29885 29886 29887 29888 29889 29890 29891 29892 29893 29894 29895 29896 29897 29898 29899 29900 29901 29902 29903 29904 29905 29906 29907 29908 29909 29910 29911 29912 29913 29914 29915 29916 29917 29918 29919 29920 29921 29922 29923 29924 29925 29926 29927 29928 29929 29930 29931 29932 29933 29934 29935 29936 29937 29938 29939 29940 29941 29942 29943 29944 29945 29946 29947 29948 29949 29950 29951 29952 29953 29954 29955 29956 29957 29958 29959 29960 29961 29962 29963 29964 29965 29966 29967 29968 29969 29970 29971 29972 29973 29974 29975 29976 29977 29978 29979 29980 29981 29982 29983 29984 29985 29986 29987 29988 29989 29990 29991 29992 29993 29994 29995 29996 29997 29998 29999 30000 30001 30002 30003 30004 30005 30006 30007 30008 30009 30010 30011 30012 30013 30014 30015 30016 30017 30018 30019 30020 30021 30022 30023 30024 30025 30026 30027 30028 30029 30030 30031 30032 30033 30034 30035 30036 30037 30038 30039 30040 30041 30042 30043 30044 30045 30046 30047 30048 30049 30050 30051 30052 30053 30054 30055 30056 30057 30058 30059 30060 30061 30062 30063 30064 30065 30066 30067 30068 30069 30070 30071 30072 30073 30074 30075 30076 30077 30078 30079 30080 30081 30082 30083 30084 30085 30086 30087 30088 30089 30090 30091 30092 30093 30094 30095 30096 30097 30098 30099 30100 30101 30102 30103 30104 30105 30106 30107 30108 30109 30110 30111 30112 30113 30114 30115 30116 30117 30118 30119 30120 30121 30122 30123 30124 30125 30126 30127 30128 30129 30130 30131 30132 30133 30134 30135 30136 30137 30138 30139 30140 30141 30142 30143 30144 30145 30146 30147 30148 30149 30150 30151 30152 30153 30154 30155 30156 30157 30158 30159 30160 30161 30162 30163 30164 30165 30166 30167 30168 30169 30170 30171 30172 30173 30174 30175 30176 30177 30178 30179 30180 30181 30182 30183 30184 30185 30186 30187 30188 30189 30190 30191 30192 30193 30194 30195 30196 30197 30198 30199 30200 30201 30202 30203 30204 30205 30206 30207 30208 30209 30210 30211 30212 30213 30214 30215 30216 30217 30218 30219 30220 30221 30222 30223 30224 30225 30226 30227 30228 30229 30230 30231 30232 30233 30234 30235 30236 30237 30238 30239 30240 30241 30242 30243 30244 30245 30246 30247 30248 30249 30250 30251 30252 30253 30254 30255 30256 30257 30258 30259 30260 30261 30262 30263 30264 30265 30266 30267 30268 30269 30270 30271 30272 30273 30274 30275 30276 30277 30278 30279 30280 30281 30282 30283 30284 30285 30286 30287 30288 30289 30290 30291 30292 30293 30294 30295 30296 30297 30298 30299 30300 30301 30302 30303 30304 30305 30306 30307 30308 30309 30310 30311 30312 30313 30314 30315 30316 30317 30318 30319 30320 30321 30322 30323 30324 30325 30326 30327 30328 30329 30330 30331 30332 30333 30334 30335 30336 30337 30338 30339 30340 30341 30342 30343 30344 30345 30346 30347 30348 30349 30350 30351 30352 30353 30354 30355 30356 30357 30358 30359 30360 30361 30362 30363 30364 30365 30366 30367 30368 30369 30370 30371 30372 30373 30374 30375 30376 30377 30378 30379 30380 30381 30382 30383 30384 30385 30386 30387 30388 30389 30390 30391 30392 30393 30394 30395 30396 30397 30398 30399 30400 30401 30402 30403 30404 30405 30406 30407 30408 30409 30410 30411 30412 30413 30414 30415 30416 30417 30418 30419 30420 30421 30422 30423 30424 30425 30426 30427 30428 30429 30430 30431 30432 30433 30434 30435 30436 30437 30438 30439 30440 30441 30442 30443 30444 30445 30446 30447 30448 30449 30450 30451 30452 30453 30454 30455 30456 30457 30458 30459 30460 30461 30462 30463 30464 30465 30466 30467 30468 30469 30470 30471 30472 30473 30474 30475 30476 30477 30478 30479 30480 30481 30482 30483 30484 30485 30486 30487 30488 30489 30490 30491 30492 30493 30494 30495 30496 30497 30498 30499 30500 30501 30502 30503 30504 30505 30506 30507 30508 30509 30510 30511 30512 30513 30514 30515 30516 30517 30518 30519 30520 30521 30522 30523 30524 30525 30526 30527 30528 30529 30530 30531 30532 30533 30534 30535 30536 30537 30538 30539 30540 30541 30542 30543 30544 30545 30546 30547 30548 30549 30550 30551 30552 30553 30554 30555 30556 30557 30558 30559 30560 30561 30562 30563 30564 30565 30566 30567 30568 30569 30570 30571 30572 30573 30574 30575 30576 30577 30578 30579 30580 30581 30582 30583 30584 30585 30586 30587 30588 30589 30590 30591 30592 30593 30594 30595 30596 30597 30598 30599 30600 30601 30602 30603 30604 30605 30606 30607 30608 30609 30610 30611 30612 30613 30614 30615 30616 30617 30618 30619 30620 30621 30622 30623 30624 30625 30626 30627 30628 30629 30630 30631 30632 30633 30634 30635 30636 30637 30638 30639 30640 30641 30642 30643 30644 30645 30646 30647 30648 30649 30650 30651 30652 30653 30654 30655 30656 30657 30658 30659 30660 30661 30662 30663 30664 30665 30666 30667 30668 30669 30670 30671 30672 30673 30674 30675 30676 30677 30678 30679 30680 30681 30682 30683 30684 30685 30686 30687 30688 30689 30690 30691 30692 30693 30694 30695 30696 30697 30698 30699 30700 30701 30702 30703 30704 30705 30706 30707 30708 30709 30710 30711 30712 30713 30714 30715 30716 30717 30718 30719 30720 30721 30722 30723 30724 30725 30726 30727 30728 30729 30730 30731 30732 30733 30734 30735 30736 30737 30738 30739 30740 30741 30742 30743 30744 30745 30746 30747 30748 30749 30750 30751 30752 30753 30754 30755 30756 30757 30758 30759 30760 30761 30762 30763 30764 30765 30766 30767 30768 30769 30770 30771 30772 30773 30774 30775 30776 30777 30778 30779 30780 30781 30782 30783 30784 30785 30786 30787 30788 30789 30790 30791 30792 30793 30794 30795 30796 30797 30798 30799 30800 30801 30802 30803 30804 30805 30806 30807 30808 30809 30810 30811 30812 30813 30814 30815 30816 30817 30818 30819 30820 30821 30822 30823 30824 30825 30826 30827 30828 30829 30830 30831 30832 30833 30834 30835 30836 30837 30838 30839 30840 30841 30842 30843 30844 30845 30846 30847 30848 30849 30850 30851 30852 30853 30854 30855 30856 30857 30858 30859 30860 30861 30862 30863 30864 30865 30866 30867 30868 30869 30870 30871 30872 30873 30874 30875 30876 30877 30878 30879 30880 30881 30882 30883 30884 30885 30886 30887 30888 30889 30890 30891 30892 30893 30894 30895 30896 30897 30898 30899 30900 30901 30902 30903 30904 30905 30906 30907 30908 30909 30910 30911 30912 30913 30914 30915 30916 30917 30918 30919 30920 30921 30922 30923 30924 30925 30926 30927 30928 30929 30930 30931 30932 30933 30934 30935 30936 30937 30938 30939 30940 30941 30942 30943 30944 30945 30946 30947 30948 30949 30950 30951 30952 30953 30954 30955 30956 30957 30958 30959 30960 30961 30962 30963 30964 30965 30966 30967 30968 30969 30970 30971 30972 30973 30974 30975 30976 30977 30978 30979 30980 30981 30982 30983 30984 30985 30986 30987 30988 30989 30990 30991 30992 30993 30994 30995 30996 30997 30998 30999 31000 31001 31002 31003 31004 31005 31006 31007 31008 31009 31010 31011 31012 31013 31014 31015 31016 31017 31018 31019 31020 31021 31022 31023 31024 31025 31026 31027 31028 31029 31030 31031 31032 31033 31034 31035 31036 31037 31038 31039 31040 31041 31042 31043 31044 31045 31046 31047 31048 31049 31050 31051 31052 31053 31054 31055 31056 31057 31058 31059 31060 31061 31062 31063 31064 31065 31066 31067 31068 31069 31070 31071 31072 31073 31074 31075 31076 31077 31078 31079 31080 31081 31082 31083 31084 31085 31086 31087 31088 31089 31090 31091 31092 31093 31094 31095 31096 31097 31098 31099 31100 31101 31102 31103 31104 31105 31106 31107 31108 31109 31110 31111 31112 31113 31114 31115 31116 31117 31118 31119 31120 31121 31122 31123 31124 31125 31126 31127 31128 31129 31130 31131 31132 31133 31134 31135 31136 31137 31138 31139 31140 31141 31142 31143 31144 31145 31146 31147 31148 31149 31150 31151 31152 31153 31154 31155 31156 31157 31158 31159 31160 31161 31162 31163 31164 31165 31166 31167 31168 31169 31170 31171 31172 31173 31174 31175 31176 31177 31178 31179 31180 31181 31182 31183 31184 31185 31186 31187 31188 31189 31190 31191 31192 31193 31194 31195 31196 31197 31198 31199 31200 31201 31202 31203 31204 31205 31206 31207 31208 31209 31210 31211 31212 31213 31214 31215 31216 31217 31218 31219 31220 31221 31222 31223 31224 31225 31226 31227 31228 31229 31230 31231 31232 31233 31234 31235 31236 31237 31238 31239 31240 31241 31242 31243 31244 31245 31246 31247 31248 31249 31250 31251 31252 31253 31254 31255 31256 31257 31258 31259 31260 31261 31262 31263 31264 31265 31266 31267 31268 31269 31270 31271 31272 31273 31274 31275 31276 31277 31278 31279 31280 31281 31282 31283 31284 31285 31286 31287 31288 31289 31290 31291 31292 31293 31294 31295 31296 31297 31298 31299 31300 31301 31302 31303 31304 31305 31306 31307 31308 31309 31310 31311 31312 31313 31314 31315 31316 31317 31318 31319 31320 31321 31322 31323 31324 31325 31326 31327 31328 31329 31330 31331 31332 31333 31334 31335 31336 31337 31338 31339 31340 31341 31342 31343 31344 31345 31346 31347 31348 31349 31350 31351 31352 31353 31354 31355 31356 31357 31358 31359 31360 31361 31362 31363 31364 31365 31366 31367 31368 31369 31370 31371 31372 31373 31374 31375 31376 31377 31378 31379 31380 31381 31382 31383 31384 31385 31386 31387 31388 31389 31390 31391 31392 31393 31394 31395 31396 31397 31398 31399 31400 31401 31402 31403 31404 31405 31406 31407 31408 31409 31410 31411 31412 31413 31414 31415 31416 31417 31418 31419 31420 31421 31422 31423 31424 31425 31426 31427 31428 31429 31430 31431 31432 31433 31434 31435 31436 31437 31438 31439 31440 31441 31442 31443 31444 31445 31446 31447 31448 31449 31450 31451 31452 31453 31454 31455 31456 31457 31458 31459 31460 31461 31462 31463 31464 31465 31466 31467 31468 31469 31470 31471 31472 31473 31474 31475 31476 31477 31478 31479 31480 31481 31482 31483 31484 31485 31486 31487 31488 31489 31490 31491 31492 31493 31494 31495 31496 31497 31498 31499 31500 31501 31502 31503 31504 31505 31506 31507 31508 31509 31510 31511 31512 31513 31514 31515 31516 31517 31518 31519 31520 31521 31522 31523 31524 31525 31526 31527 31528 31529 31530 31531 31532 31533 31534 31535 31536 31537 31538 31539 31540 31541 31542 31543 31544 31545 31546 31547 31548 31549 31550 31551 31552 31553 31554 31555 31556 31557 31558 31559 31560 31561 31562 31563 31564 31565 31566 31567 31568 31569 31570 31571 31572 31573 31574 31575 31576 31577 31578 31579 31580 31581 31582 31583 31584 31585 31586 31587 31588 31589 31590 31591 31592 31593 31594 31595 31596 31597 31598 31599 31600 31601 31602 31603 31604 31605 31606 31607 31608 31609 31610 31611 31612 31613 31614 31615 31616 31617 31618 31619 31620 31621 31622 31623 31624 31625 31626 31627 31628 31629 31630 31631 31632 31633 31634 31635 31636 31637 31638 31639 31640 31641 31642 31643 31644 31645 31646 31647 31648 31649 31650 31651 31652 31653 31654 31655 31656 31657 31658 31659 31660 31661 31662 31663 31664 31665 31666 31667 31668 31669 31670 31671 31672 31673 31674 31675 31676 31677 31678 31679 31680 31681 31682 31683 31684 31685 31686 31687 31688 31689 31690 31691 31692 31693 31694 31695 31696 31697 31698 31699 31700 31701 31702 31703 31704 31705 31706 31707 31708 31709 31710 31711 31712 31713 31714 31715 31716 31717 31718 31719 31720 31721 31722 31723 31724 31725 31726 31727 31728 31729 31730 31731 31732 31733 31734 31735 31736 31737 31738 31739 31740 31741 31742 31743 31744 31745 31746 31747 31748 31749 31750 31751 31752 31753 31754 31755 31756 31757 31758 31759 31760 31761 31762 31763 31764 31765 31766 31767 31768 31769 31770 31771 31772 31773 31774 31775 31776 31777 31778 31779 31780 31781 31782 31783 31784 31785 31786 31787 31788 31789 31790 31791 31792 31793 31794 31795 31796 31797 31798 31799 31800 31801 31802 31803 31804 31805 31806 31807 31808 31809 31810 31811 31812 31813 31814 31815 31816 31817 31818 31819 31820 31821 31822 31823 31824 31825 31826 31827 31828 31829 31830 31831 31832 31833 31834 31835 31836 31837 31838 31839 31840 31841 31842 31843 31844 31845 31846 31847 31848 31849 31850 31851 31852 31853 31854 31855 31856 31857 31858 31859 31860 31861 31862 31863 31864 31865 31866 31867 31868 31869 31870 31871 31872 31873 31874 31875 31876 31877 31878 31879 31880 31881 31882 31883 31884 31885 31886 31887 31888 31889 31890 31891 31892 31893 31894 31895 31896 31897 31898 31899 31900 31901 31902 31903 31904 31905 31906 31907 31908 31909 31910 31911 31912 31913 31914 31915 31916 31917 31918 31919 31920 31921 31922 31923 31924 31925 31926 31927 31928 31929 31930 31931 31932 31933 31934 31935 31936 31937 31938 31939 31940 31941 31942 31943 31944 31945 31946 31947 31948 31949 31950 31951 31952 31953 31954 31955 31956 31957 31958 31959 31960 31961 31962 31963 31964 31965 31966 31967 31968 31969 31970 31971 31972 31973 31974 31975 31976 31977 31978 31979 31980 31981 31982 31983 31984 31985 31986 31987 31988 31989 31990 31991 31992 31993 31994 31995 31996 31997 31998 31999 32000 32001 32002 32003 32004 32005 32006 32007 32008 32009 32010 32011 32012 32013 32014 32015 32016 32017 32018 32019 32020 32021 32022 32023 32024 32025 32026 32027 32028 32029 32030 32031 32032 32033 32034 32035 32036 32037 32038 32039 32040 32041 32042 32043 32044 32045 32046 32047 32048 32049 32050 32051 32052 32053 32054 32055 32056 32057 32058 32059 32060 32061 32062 32063 32064 32065 32066 32067 32068 32069 32070 32071 32072 32073 32074 32075 32076 32077 32078 32079 32080 32081 32082 32083 32084 32085 32086 32087 32088 32089 32090 32091 32092 32093 32094 32095 32096 32097 32098 32099 32100 32101 32102 32103 32104 32105 32106 32107 32108 32109 32110 32111 32112 32113 32114 32115 32116 32117 32118 32119 32120 32121 32122 32123 32124 32125 32126 32127 32128 32129 32130 32131 32132 32133 32134 32135 32136 32137 32138 32139 32140 32141 32142 32143 32144 32145 32146 32147 32148 32149 32150 32151 32152 32153 32154 32155 32156 32157 32158 32159 32160 32161 32162 32163 32164 32165 32166 32167 32168 32169 32170 32171 32172 32173 32174 32175 32176 32177 32178 32179 32180 32181 32182 32183 32184 32185 32186 32187 32188 32189 32190 32191 32192 32193 32194 32195 32196 32197 32198 32199 32200 32201 32202 32203 32204 32205 32206 32207 32208 32209 32210 32211 32212 32213 32214 32215 32216 32217 32218 32219 32220 32221 32222 32223 32224 32225 32226 32227 32228 32229 32230 32231 32232 32233 32234 32235 32236 32237 32238 32239 32240 32241 32242 32243 32244 32245 32246 32247 32248 32249 32250 32251 32252 32253 32254 32255 32256 32257 32258 32259 32260 32261 32262 32263 32264 32265 32266 32267 32268 32269 32270 32271 32272 32273 32274 32275 32276 32277 32278 32279 32280 32281 32282 32283 32284 32285 32286 32287 32288 32289 32290 32291 32292 32293 32294 32295 32296 32297 32298 32299 32300 32301 32302 32303 32304 32305 32306 32307 32308 32309 32310 32311 32312 32313 32314 32315 32316 32317 32318 32319 32320 32321 32322 32323 32324 32325 32326 32327 32328 32329 32330 32331 32332 32333 32334 32335 32336 32337 32338 32339 32340 32341 32342 32343 32344 32345 32346 32347 32348 32349 32350 32351 32352 32353 32354 32355 32356 32357 32358 32359 32360 32361 32362 32363 32364 32365 32366 32367 32368 32369 32370 32371 32372 32373 32374 32375 32376 32377 32378 32379 32380 32381 32382 32383 32384 32385 32386 32387 32388 32389 32390 32391 32392 32393 32394 32395 32396 32397 32398 32399 32400 32401 32402 32403 32404 32405 32406 32407 32408 32409 32410 32411 32412 32413 32414 32415 32416 32417 32418 32419 32420 32421 32422 32423 32424 32425 32426 32427 32428 32429 32430 32431 32432 32433 32434 32435 32436 32437 32438 32439 32440 32441 32442 32443 32444 32445 32446 32447 32448 32449 32450 32451 32452 32453 32454 32455 32456 32457 32458 32459 32460 32461 32462 32463 32464 32465 32466 32467 32468 32469 32470 32471 32472 32473 32474 32475 32476 32477 32478 32479 32480 32481 32482 32483 32484 32485 32486 32487 32488 32489 32490 32491 32492 32493 32494 32495 32496 32497 32498 32499 32500 32501 32502 32503 32504 32505 32506 32507 32508 32509 32510 32511 32512 32513 32514 32515 32516 32517 32518 32519 32520 32521 32522 32523 32524 32525 32526 32527 32528 32529 32530 32531 32532 32533 32534 32535 32536 32537 32538 32539 32540 32541 32542 32543 32544 32545 32546 32547 32548 32549 32550 32551 32552 32553 32554 32555 32556 32557 32558 32559 32560 32561 32562 32563 32564 32565 32566 32567 32568 32569 32570 32571 32572 32573 32574 32575 32576 32577 32578 32579 32580 32581 32582 32583 32584 32585 32586 32587 32588 32589 32590 32591 32592 32593 32594 32595 32596 32597 32598 32599 32600 32601 32602 32603 32604 32605 32606 32607 32608 32609 32610 32611 32612 32613 32614 32615 32616 32617 32618 32619 32620 32621 32622 32623 32624 32625 32626 32627 32628 32629 32630 32631 32632 32633 32634 32635 32636 32637 32638 32639 32640 32641 32642 32643 32644 32645 32646 32647 32648 32649 32650 32651 32652 32653 32654 32655 32656 32657 32658 32659 32660 32661 32662 32663 32664 32665 32666 32667 32668 32669 32670 32671 32672 32673 32674 32675 32676 32677 32678 32679 32680 32681 32682 32683 32684 32685 32686 32687 32688 32689 32690 32691 32692 32693 32694 32695 32696 32697 32698 32699 32700 32701 32702 32703 32704 32705 32706 32707 32708 32709 32710 32711 32712 32713 32714 32715 32716 32717 32718 32719 32720 32721 32722 32723 32724 32725 32726 32727 32728 32729 32730 32731 32732 32733 32734 32735 32736 32737 32738 32739 32740 32741 32742 32743 32744 32745 32746 32747 32748 32749 32750 32751 32752 32753 32754 32755 32756 32757 32758 32759 32760 32761 32762 32763 32764 32765 32766 32767 32768 32769 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 32780 32781 32782 32783 32784 32785 32786 32787 32788 32789 32790 32791 32792 32793 32794 32795 32796 32797 32798 32799 32800 32801 32802 32803 32804 32805 32806 32807 32808 32809 32810 32811 32812 32813 32814 32815 32816 32817 32818 32819 32820 32821 32822 32823 32824 32825 32826 32827 32828 32829 32830 32831 32832 32833 32834 32835 32836 32837 32838 32839 32840 32841 32842 32843 32844 32845 32846 32847 32848 32849 32850 32851 32852 32853 32854 32855 32856 32857 32858 32859 32860 32861 32862 32863 32864 32865 32866 32867 32868 32869 32870 32871 32872 32873 32874 32875 32876 32877 32878 32879 32880 32881 32882 32883 32884 32885 32886 32887 32888 32889 32890 32891 32892 32893 32894 32895 32896 32897 32898 32899 32900 32901 32902 32903 32904 32905 32906 32907 32908 32909 32910 32911 32912 32913 32914 32915 32916 32917 32918 32919 32920 32921 32922 32923 32924 32925 32926 32927 32928 32929 32930 32931 32932 32933 32934 32935 32936 32937 32938 32939 32940 32941 32942 32943 32944 32945 32946 32947 32948 32949 32950 32951 32952 32953 32954 32955 32956 32957 32958 32959 32960 32961 32962 32963 32964 32965 32966 32967 32968 32969 32970 32971 32972 32973 32974 32975 32976 32977 32978 32979 32980 32981 32982 32983 32984 32985 32986 32987 32988 32989 32990 32991 32992 32993 32994 32995 32996 32997 32998 32999 33000 33001 33002 33003 33004 33005 33006 33007 33008 33009 33010 33011 33012 33013 33014 33015 33016 33017 33018 33019 33020 33021 33022 33023 33024 33025 33026 33027 33028 33029 33030 33031 33032 33033 33034 33035 33036 33037 33038 33039 33040 33041 33042 33043 33044 33045 33046 33047 33048 33049 33050 33051 33052 33053 33054 33055 33056 33057 33058 33059 33060 33061 33062 33063 33064 33065 33066 33067 33068 33069 33070 33071 33072 33073 33074 33075 33076 33077 33078 33079 33080 33081 33082 33083 33084 33085 33086 33087 33088 33089 33090 33091 33092 33093 33094 33095 33096 33097 33098 33099 33100 33101 33102 33103 33104 33105 33106 33107 33108 33109 33110 33111 33112 33113 33114 33115 33116 33117 33118 33119 33120 33121 33122 33123 33124 33125 33126 33127 33128 33129 33130 33131 33132 33133 33134 33135 33136 33137 33138 33139 33140 33141 33142 33143 33144 33145 33146 33147 33148 33149 33150 33151 33152 33153 33154 33155 33156 33157 33158 33159 33160 33161 33162 33163 33164 33165 33166 33167 33168 33169 33170 33171 33172 33173 33174 33175 33176 33177 33178 33179 33180 33181 33182 33183 33184 33185 33186 33187 33188 33189 33190 33191 33192 33193 33194 33195 33196 33197 33198 33199 33200 33201 33202 33203 33204 33205 33206 33207 33208 33209 33210 33211 33212 33213 33214 33215 33216 33217 33218 33219 33220 33221 33222 33223 33224 33225 33226 33227 33228 33229 33230 33231 33232 33233 33234 33235 33236 33237 33238 33239 33240 33241 33242 33243 33244 33245 33246 33247 33248 33249 33250 33251 33252 33253 33254 33255 33256 33257 33258 33259 33260 33261 33262 33263 33264 33265 33266 33267 33268 33269 33270 33271 33272 33273 33274 33275 33276 33277 33278 33279 33280 33281 33282 33283 33284 33285 33286 33287 33288 33289 33290 33291 33292 33293 33294 33295 33296 33297 33298 33299 33300 33301 33302 33303 33304 33305 33306 33307 33308 33309 33310 33311 33312 33313 33314 33315 33316 33317 33318 33319 33320 33321 33322 33323 33324 33325 33326 33327 33328 33329 33330 33331 33332 33333 33334 33335 33336 33337 33338 33339 33340 33341 33342 33343 33344 33345 33346 33347 33348 33349 33350 33351 33352 33353 33354 33355 33356 33357 33358 33359 33360 33361 33362 33363 33364 33365 33366 33367 33368 33369 33370 33371 33372 33373 33374 33375 33376 33377 33378 33379 33380 33381 33382 33383 33384 33385 33386 33387 33388 33389 33390 33391 33392 33393 33394 33395 33396 33397 33398 33399 33400 33401 33402 33403 33404 33405 33406 33407 33408 33409 33410 33411 33412 33413 33414 33415 33416 33417 33418 33419 33420 33421 33422 33423 33424 33425 33426 33427 33428 33429 33430 33431 33432 33433 33434 33435 33436 33437 33438 33439 33440 33441 33442 33443 33444 33445 33446 33447 33448 33449 33450 33451 33452 33453 33454 33455 33456 33457 33458 33459 33460 33461 33462 33463 33464 33465 33466 33467 33468 33469 33470 33471 33472 33473 33474 33475 33476 33477 33478 33479 33480 33481 33482 33483 33484 33485 33486 33487 33488 33489 33490 33491 33492 33493 33494 33495 33496 33497 33498 33499 33500 33501 33502 33503 33504 33505 33506 33507 33508 33509 33510 33511 33512 33513 33514 33515 33516 33517 33518 33519 33520 33521 33522 33523 33524 33525 33526 33527 33528 33529 33530 33531 33532 33533 33534 33535 33536 33537 33538 33539 33540 33541 33542 33543 33544 33545 33546 33547 33548 33549 33550 33551 33552 33553 33554 33555 33556 33557 33558 33559 33560 33561 33562 33563 33564 33565 33566 33567 33568 33569 33570 33571 33572 33573 33574 33575 33576 33577 33578 33579 33580 33581 33582 33583 33584 33585 33586 33587 33588 33589 33590 33591 33592 33593 33594 33595 33596 33597 33598 33599 33600 33601 33602 33603 33604 33605 33606 33607 33608 33609 33610 33611 33612 33613 33614 33615 33616 33617 33618 33619 33620 33621 33622 33623 33624 33625 33626 33627 33628 33629 33630 33631 33632 33633 33634 33635 33636 33637 33638 33639 33640 33641 33642 33643 33644 33645 33646 33647 33648 33649 33650 33651 33652 33653 33654 33655 33656 33657 33658 33659 33660 33661 33662 33663 33664 33665 33666 33667 33668 33669 33670 33671 33672 33673 33674 33675 33676 33677 33678 33679 33680 33681 33682 33683 33684 33685 33686 33687 33688 33689 33690 33691 33692 33693 33694 33695 33696 33697 33698 33699 33700 33701 33702 33703 33704 33705 33706 33707 33708 33709 33710 33711 33712 33713 33714 33715 33716 33717 33718 33719 33720 33721 33722 33723 33724 33725 33726 33727 33728 33729 33730 33731 33732 33733 33734 33735 33736 33737 33738 33739 33740 33741 33742 33743 33744 33745 33746 33747 33748 33749 33750 33751 33752 33753 33754 33755 33756 33757 33758 33759 33760 33761 33762 33763 33764 33765 33766 33767 33768 33769 33770 33771 33772 33773 33774 33775 33776 33777 33778 33779 33780 33781 33782 33783 33784 33785 33786 33787 33788 33789 33790 33791 33792 33793 33794 33795 33796 33797 33798 33799 33800 33801 33802 33803 33804 33805 33806 33807 33808 33809 33810 33811 33812 33813 33814 33815 33816 33817 33818 33819 33820 33821 33822 33823 33824 33825 33826 33827 33828 33829 33830 33831 33832 33833 33834 33835 33836 33837 33838 33839 33840 33841 33842 33843 33844 33845 33846 33847 33848 33849 33850 33851 33852 33853 33854 33855 33856 33857 33858 33859 33860 33861 33862 33863 33864 33865 33866 33867 33868 33869 33870 33871 33872 33873 33874 33875 33876 33877 33878 33879 33880 33881 33882 33883 33884 33885 33886 33887 33888 33889 33890 33891 33892 33893 33894 33895 33896 33897 33898 33899 33900 33901 33902 33903 33904 33905 33906 33907 33908 33909 33910 33911 33912 33913 33914 33915 33916 33917 33918 33919 33920 33921 33922 33923 33924 33925 33926 33927 33928 33929 33930 33931 33932 33933 33934 33935 33936 33937 33938 33939 33940 33941 33942 33943 33944 33945 33946 33947 33948 33949 33950 33951 33952 33953 33954 33955 33956 33957 33958 33959 33960 33961 33962 33963 33964 33965 33966 33967 33968 33969 33970 33971 33972 33973 33974 33975 33976 33977 33978 33979 33980 33981 33982 33983 33984 33985 33986 33987 33988 33989 33990 33991 33992 33993 33994 33995 33996 33997 33998 33999 34000 34001 34002 34003 34004 34005 34006 34007 34008 34009 34010 34011 34012 34013 34014 34015 34016 34017 34018 34019 34020 34021 34022 34023 34024 34025 34026 34027 34028 34029 34030 34031 34032 34033 34034 34035 34036 34037 34038 34039 34040 34041 34042 34043 34044 34045 34046 34047 34048 34049 34050 34051 34052 34053 34054 34055 34056 34057 34058 34059 34060 34061 34062 34063 34064 34065 34066 34067 34068 34069 34070 34071 34072 34073 34074 34075 34076 34077 34078 34079 34080 34081 34082 34083 34084 34085 34086 34087 34088 34089 34090 34091 34092 34093 34094 34095 34096 34097 34098 34099 34100 34101 34102 34103 34104 34105 34106 34107 34108 34109 34110 34111 34112 34113 34114 34115 34116 34117 34118 34119 34120 34121 34122 34123 34124 34125 34126 34127 34128 34129 34130 34131 34132 34133 34134 34135 34136 34137 34138 34139 34140 34141 34142 34143 34144 34145 34146 34147 34148 34149 34150 34151 34152 34153 34154 34155 34156 34157 34158 34159 34160 34161 34162 34163 34164 34165 34166 34167 34168 34169 34170 34171 34172 34173 34174 34175 34176 34177 34178 34179 34180 34181 34182 34183 34184 34185 34186 34187 34188 34189 34190 34191 34192 34193 34194 34195 34196 34197 34198 34199 34200 34201 34202 34203 34204 34205 34206 34207 34208 34209 34210 34211 34212 34213 34214 34215 34216 34217 34218 34219 34220 34221 34222 34223 34224 34225 34226 34227 34228 34229 34230 34231 34232 34233 34234 34235 34236 34237 34238 34239 34240 34241 34242 34243 34244 34245 34246 34247 34248 34249 34250 34251 34252 34253 34254 34255 34256 34257 34258 34259 34260 34261 34262 34263 34264 34265 34266 34267 34268 34269 34270 34271 34272 34273 34274 34275 34276 34277 34278 34279 34280 34281 34282 34283 34284 34285 34286 34287 34288 34289 34290 34291 34292 34293 34294 34295 34296 34297 34298 34299 34300 34301 34302 34303 34304 34305 34306 34307 34308 34309 34310 34311 34312 34313 34314 34315 34316 34317 34318 34319 34320 34321 34322 34323 34324 34325 34326 34327 34328 34329 34330 34331 34332 34333 34334 34335 34336 34337 34338 34339 34340 34341 34342 34343 34344 34345 34346 34347 34348 34349 34350 34351 34352 34353 34354 34355 34356 34357 34358 34359 34360 34361 34362 34363 34364 34365 34366 34367 34368 34369 34370 34371 34372 34373 34374 34375 34376 34377 34378 34379 34380 34381 34382 34383 34384 34385 34386 34387 34388 34389 34390 34391 34392 34393 34394 34395 34396 34397 34398 34399 34400 34401 34402 34403 34404 34405 34406 34407 34408 34409 34410 34411 34412 34413 34414 34415 34416 34417 34418 34419 34420 34421 34422 34423 34424 34425 34426 34427 34428 34429 34430 34431 34432 34433 34434 34435 34436 34437 34438 34439 34440 34441 34442 34443 34444 34445 34446 34447 34448 34449 34450 34451 34452 34453 34454 34455 34456 34457 34458 34459 34460 34461 34462 34463 34464 34465 34466 34467 34468 34469 34470 34471 34472 34473 34474 34475 34476 34477 34478 34479 34480 34481 34482 34483 34484 34485 34486 34487 34488 34489 34490 34491 34492 34493 34494 34495 34496 34497 34498 34499 34500 34501 34502 34503 34504 34505 34506 34507 34508 34509 34510 34511 34512 34513 34514 34515 34516 34517 34518 34519 34520 34521 34522 34523 34524 34525 34526 34527 34528 34529 34530 34531 34532 34533 34534 34535 34536 34537 34538 34539 34540 34541 34542 34543 34544 34545 34546 34547 34548 34549 34550 34551 34552 34553 34554 34555 34556 34557 34558 34559 34560 34561 34562 34563 34564 34565 34566 34567 34568 34569 34570 34571 34572 34573 34574 34575 34576 34577 34578 34579 34580 34581 34582 34583 34584 34585 34586 34587 34588 34589 34590 34591 34592 34593 34594 34595 34596 34597 34598 34599 34600 34601 34602 34603 34604 34605 34606 34607 34608 34609 34610 34611 34612 34613 34614 34615 34616 34617 34618 34619 34620 34621 34622 34623 34624 34625 34626 34627 34628 34629 34630 34631 34632 34633 34634 34635 34636 34637 34638 34639 34640 34641 34642 34643 34644 34645 34646 34647 34648 34649 34650 34651 34652 34653 34654 34655 34656 34657 34658 34659 34660 34661 34662 34663 34664 34665 34666 34667 34668 34669 34670 34671 34672 34673 34674 34675 34676 34677 34678 34679 34680 34681 34682 34683 34684 34685 34686 34687 34688 34689 34690 34691 34692 34693 34694 34695 34696 34697 34698 34699 34700 34701 34702 34703 34704 34705 34706 34707 34708 34709 34710 34711 34712 34713 34714 34715 34716 34717 34718 34719 34720 34721 34722 34723 34724 34725 34726 34727 34728 34729 34730 34731 34732 34733 34734 34735 34736 34737 34738 34739 34740 34741 34742 34743 34744 34745 34746 34747 34748 34749 34750 34751 34752 34753 34754 34755 34756 34757 34758 34759 34760 34761 34762 34763 34764 34765 34766 34767 34768 34769 34770 34771 34772 34773 34774 34775 34776 34777 34778 34779 34780 34781 34782 34783 34784 34785 34786 34787 34788 34789 34790 34791 34792 34793 34794 34795 34796 34797 34798 34799 34800 34801 34802 34803 34804 34805 34806 34807 34808 34809 34810 34811 34812 34813 34814 34815 34816 34817 34818 34819 34820 34821 34822 34823 34824 34825 34826 34827 34828 34829 34830 34831 34832 34833 34834 34835 34836 34837 34838 34839 34840 34841 34842 34843 34844 34845 34846 34847 34848 34849 34850 34851 34852 34853 34854 34855 34856 34857 34858 34859 34860 34861 34862 34863 34864 34865 34866 34867 34868 34869 34870 34871 34872 34873 34874 34875 34876 34877 34878 34879 34880 34881 34882 34883 34884 34885 34886 34887 34888 34889 34890 34891 34892 34893 34894 34895 34896 34897 34898 34899 34900 34901 34902 34903 34904 34905 34906 34907 34908 34909 34910 34911 34912 34913 34914 34915 34916 34917 34918 34919 34920 34921 34922 34923 34924 34925 34926 34927 34928 34929 34930 34931 34932 34933 34934 34935 34936 34937 34938 34939 34940 34941 34942 34943 34944 34945 34946 34947 34948 34949 34950 34951 34952 34953 34954 34955 34956 34957 34958 34959 34960 34961 34962 34963 34964 34965 34966 34967 34968 34969 34970 34971 34972 34973 34974 34975 34976 34977 34978 34979 34980 34981 34982 34983 34984 34985 34986 34987 34988 34989 34990 34991 34992 34993 34994 34995 34996 34997 34998 34999 35000 35001 35002 35003 35004 35005 35006 35007 35008 35009 35010 35011 35012 35013 35014 35015 35016 35017 35018 35019 35020 35021 35022 35023 35024 35025 35026 35027 35028 35029 35030 35031 35032 35033 35034 35035 35036 35037 35038 35039 35040 35041 35042 35043 35044 35045 35046 35047 35048 35049 35050 35051 35052 35053 35054 35055 35056 35057 35058 35059 35060 35061 35062 35063 35064 35065 35066 35067 35068 35069 35070 35071 35072 35073 35074 35075 35076 35077 35078 35079 35080 35081 35082 35083 35084 35085 35086 35087 35088 35089 35090 35091 35092 35093 35094 35095 35096 35097 35098 35099 35100 35101 35102 35103 35104 35105 35106 35107 35108 35109 35110 35111 35112 35113 35114 35115 35116 35117 35118 35119 35120 35121 35122 35123 35124 35125 35126 35127 35128 35129 35130 35131 35132 35133 35134 35135 35136 35137 35138 35139 35140 35141 35142 35143 35144 35145 35146 35147 35148 35149 35150 35151 35152 35153 35154 35155 35156 35157 35158 35159 35160 35161 35162 35163 35164 35165 35166 35167 35168 35169 35170 35171 35172 35173 35174 35175 35176 35177 35178 35179 35180 35181 35182 35183 35184 35185 35186 35187 35188 35189 35190 35191 35192 35193 35194 35195 35196 35197 35198 35199 35200 35201 35202 35203 35204 35205 35206 35207 35208 35209 35210 35211 35212 35213 35214 35215 35216 35217 35218 35219 35220 35221 35222 35223 35224 35225 35226 35227 35228 35229 35230 35231 35232 35233 35234 35235 35236 35237 35238 35239 35240 35241 35242 35243 35244 35245 35246 35247 35248 35249 35250 35251 35252 35253 35254 35255 35256 35257 35258 35259 35260 35261 35262 35263 35264 35265 35266 35267 35268 35269 35270 35271 35272 35273 35274 35275 35276 35277 35278 35279 35280 35281 35282 35283 35284 35285 35286 35287 35288 35289 35290 35291 35292 35293 35294 35295 35296 35297 35298 35299 35300 35301 35302 35303 35304 35305 35306 35307 35308 35309 35310 35311 35312 35313 35314 35315 35316 35317 35318 35319 35320 35321 35322 35323 35324 35325 35326 35327 35328 35329 35330 35331 35332 35333 35334 35335 35336 35337 35338 35339 35340 35341 35342 35343 35344 35345 35346 35347 35348 35349 35350 35351 35352 35353 35354 35355 35356 35357 35358 35359 35360 35361 35362 35363 35364 35365 35366 35367 35368 35369 35370 35371 35372 35373 35374 35375 35376 35377 35378 35379 35380 35381 35382 35383 35384 35385 35386 35387 35388 35389 35390 35391 35392 35393 35394 35395 35396 35397 35398 35399 35400 35401 35402 35403 35404 35405 35406 35407 35408 35409 35410 35411 35412 35413 35414 35415 35416 35417 35418 35419 35420 35421 35422 35423 35424 35425 35426 35427 35428 35429 35430 35431 35432 35433 35434 35435 35436 35437 35438 35439 35440 35441 35442 35443 35444 35445 35446 35447 35448 35449 35450 35451 35452 35453 35454 35455 35456 35457 35458 35459 35460 35461 35462 35463 35464 35465 35466 35467 35468 35469 35470 35471 35472 35473 35474 35475 35476 35477 35478 35479 35480 35481 35482 35483 35484 35485 35486 35487 35488 35489 35490 35491 35492 35493 35494 35495 35496 35497 35498 35499 35500 35501 35502 35503 35504 35505 35506 35507 35508 35509 35510 35511 35512 35513 35514 35515 35516 35517 35518 35519 35520 35521 35522 35523 35524 35525 35526 35527 35528 35529 35530 35531 35532 35533 35534 35535 35536 35537 35538 35539 35540 35541 35542 35543 35544 35545 35546 35547 35548 35549 35550 35551 35552 35553 35554 35555 35556 35557 35558 35559 35560 35561 35562 35563 35564 35565 35566 35567 35568 35569 35570 35571 35572 35573 35574 35575 35576 35577 35578 35579 35580 35581 35582 35583 35584 35585 35586 35587 35588 35589 35590 35591 35592 35593 35594 35595 35596 35597 35598 35599 35600 35601 35602 35603 35604 35605 35606 35607 35608 35609 35610 35611 35612 35613 35614 35615 35616 35617 35618 35619 35620 35621 35622 35623 35624 35625 35626 35627 35628 35629 35630 35631 35632 35633 35634 35635 35636 35637 35638 35639 35640 35641 35642 35643 35644 35645 35646 35647 35648 35649 35650 35651 35652 35653 35654 35655 35656 35657 35658 35659 35660 35661 35662 35663 35664 35665 35666 35667 35668 35669 35670 35671 35672 35673 35674 35675 35676 35677 35678 35679 35680 35681 35682 35683 35684 35685 35686 35687 35688 35689 35690 35691 35692 35693 35694 35695 35696 35697 35698 35699 35700 35701 35702 35703 35704 35705 35706 35707 35708 35709 35710 35711 35712 35713 35714 35715 35716 35717 35718 35719 35720 35721 35722 35723 35724 35725 35726 35727 35728 35729 35730 35731 35732 35733 35734 35735 35736 35737 35738 35739 35740 35741 35742 35743 35744 35745 35746 35747 35748 35749 35750 35751 35752 35753 35754 35755 35756 35757 35758 35759 35760 35761 35762 35763 35764 35765 35766 35767 35768 35769 35770 35771 35772 35773 35774 35775 35776 35777 35778 35779 35780 35781 35782 35783 35784 35785 35786 35787 35788 35789 35790 35791 35792 35793 35794 35795 35796 35797 35798 35799 35800 35801 35802 35803 35804 35805 35806 35807 35808 35809 35810 35811 35812 35813 35814 35815 35816 35817 35818 35819 35820 35821 35822 35823 35824 35825 35826 35827 35828 35829 35830 35831 35832 35833 35834 35835 35836 35837 35838 35839 35840 35841 35842 35843 35844 35845 35846 35847 35848 35849 35850 35851 35852 35853 35854 35855 35856 35857 35858 35859 35860 35861 35862 35863 35864 35865 35866 35867 35868 35869 35870 35871 35872 35873 35874 35875 35876 35877 35878 35879 35880 35881 35882 35883 35884 35885 35886 35887 35888 35889 35890 35891 35892 35893 35894 35895 35896 35897 35898 35899 35900 35901 35902 35903 35904 35905 35906 35907 35908 35909 35910 35911 35912 35913 35914 35915 35916 35917 35918 35919 35920 35921 35922 35923 35924 35925 35926 35927 35928 35929 35930 35931 35932 35933 35934 35935 35936 35937 35938 35939 35940 35941 35942 35943 35944 35945 35946 35947 35948 35949 35950 35951 35952 35953 35954 35955 35956 35957 35958 35959 35960 35961 35962 35963 35964 35965 35966 35967 35968 35969 35970 35971 35972 35973 35974 35975 35976 35977 35978 35979 35980 35981 35982 35983 35984 35985 35986 35987 35988 35989 35990 35991 35992 35993 35994 35995 35996 35997 35998 35999 36000 36001 36002 36003 36004 36005 36006 36007 36008 36009 36010 36011 36012 36013 36014 36015 36016 36017 36018 36019 36020 36021 36022 36023 36024 36025 36026 36027 36028 36029 36030 36031 36032 36033 36034 36035 36036 36037 36038 36039 36040 36041 36042 36043 36044 36045 36046 36047 36048 36049 36050 36051 36052 36053 36054 36055 36056 36057 36058 36059 36060 36061 36062 36063 36064 36065 36066 36067 36068 36069 36070 36071 36072 36073 36074 36075 36076 36077 36078 36079 36080 36081 36082 36083 36084 36085 36086 36087 36088 36089 36090 36091 36092 36093 36094 36095 36096 36097 36098 36099 36100 36101 36102 36103 36104 36105 36106 36107 36108 36109 36110 36111 36112 36113 36114 36115 36116 36117 36118 36119 36120 36121 36122 36123 36124 36125 36126 36127 36128 36129 36130 36131 36132 36133 36134 36135 36136 36137 36138 36139 36140 36141 36142 36143 36144 36145 36146 36147 36148 36149 36150 36151 36152 36153 36154 36155 36156 36157 36158 36159 36160 36161 36162 36163 36164 36165 36166 36167 36168 36169 36170 36171 36172 36173 36174 36175 36176 36177 36178 36179 36180 36181 36182 36183 36184 36185 36186 36187 36188 36189 36190 36191 36192 36193 36194 36195 36196 36197 36198 36199 36200 36201 36202 36203 36204 36205 36206 36207 36208 36209 36210 36211 36212 36213 36214 36215 36216 36217 36218 36219 36220 36221 36222 36223 36224 36225 36226 36227 36228 36229 36230 36231 36232 36233 36234 36235 36236 36237 36238 36239 36240 36241 36242 36243 36244 36245 36246 36247 36248 36249 36250 36251 36252 36253 36254 36255 36256 36257 36258 36259 36260 36261 36262 36263 36264 36265 36266 36267 36268 36269 36270 36271 36272 36273 36274 36275 36276 36277 36278 36279 36280 36281 36282 36283 36284 36285 36286 36287 36288 36289 36290 36291 36292 36293 36294 36295 36296 36297 36298 36299 36300 36301 36302 36303 36304 36305 36306 36307 36308 36309 36310 36311 36312 36313 36314 36315 36316 36317 36318 36319 36320 36321 36322 36323 36324 36325 36326 36327 36328 36329 36330 36331 36332 36333 36334 36335 36336 36337 36338 36339 36340 36341 36342 36343 36344 36345 36346 36347 36348 36349 36350 36351 36352 36353 36354 36355 36356 36357 36358 36359 36360 36361 36362 36363 36364 36365 36366 36367 36368 36369 36370 36371 36372 36373 36374 36375 36376 36377 36378 36379 36380 36381 36382 36383 36384 36385 36386 36387 36388 36389 36390 36391 36392 36393 36394 36395 36396 36397 36398 36399 36400 36401 36402 36403 36404 36405 36406 36407 36408 36409 36410 36411 36412 36413 36414 36415 36416 36417 36418 36419 36420 36421 36422 36423 36424 36425 36426 36427 36428 36429 36430 36431 36432 36433 36434 36435 36436 36437 36438 36439 36440 36441 36442 36443 36444 36445 36446 36447 36448 36449 36450 36451 36452 36453 36454 36455 36456 36457 36458 36459 36460 36461 36462 36463 36464 36465 36466 36467 36468 36469 36470 36471 36472 36473 36474 36475 36476 36477 36478 36479 36480 36481 36482 36483 36484 36485 36486 36487 36488 36489 36490 36491 36492 36493 36494 36495 36496 36497 36498 36499 36500 36501 36502 36503 36504 36505 36506 36507 36508 36509 36510 36511 36512 36513 36514 36515 36516 36517 36518 36519 36520 36521 36522 36523 36524 36525 36526 36527 36528 36529 36530 36531 36532 36533 36534 36535 36536 36537 36538 36539 36540 36541 36542 36543 36544 36545 36546 36547 36548 36549 36550 36551 36552 36553 36554 36555 36556 36557 36558 36559 36560 36561 36562 36563 36564 36565 36566 36567 36568 36569 36570 36571 36572 36573 36574 36575 36576 36577 36578 36579 36580 36581 36582 36583 36584 36585 36586 36587 36588 36589 36590 36591 36592 36593 36594 36595 36596 36597 36598 36599 36600 36601 36602 36603 36604 36605 36606 36607 36608 36609 36610 36611 36612 36613 36614 36615 36616 36617 36618 36619 36620 36621 36622 36623 36624 36625 36626 36627 36628 36629 36630 36631 36632 36633 36634 36635 36636 36637 36638 36639 36640 36641 36642 36643 36644 36645 36646 36647 36648 36649 36650 36651 36652 36653 36654 36655 36656 36657 36658 36659 36660 36661 36662 36663 36664 36665 36666 36667 36668 36669 36670 36671 36672 36673 36674 36675 36676 36677 36678 36679 36680 36681 36682 36683 36684 36685 36686 36687 36688 36689 36690 36691 36692 36693 36694 36695 36696 36697 36698 36699 36700 36701 36702 36703 36704 36705 36706 36707 36708 36709 36710 36711 36712 36713 36714 36715 36716 36717 36718 36719 36720 36721 36722 36723 36724 36725 36726 36727 36728 36729 36730 36731 36732 36733 36734 36735 36736 36737 36738 36739 36740 36741 36742 36743 36744 36745 36746 36747 36748 36749 36750 36751 36752 36753 36754 36755 36756 36757 36758 36759 36760 36761 36762 36763 36764 36765 36766 36767 36768 36769 36770 36771 36772 36773 36774 36775 36776 36777 36778 36779 36780 36781 36782 36783 36784 36785 36786 36787 36788 36789 36790 36791 36792 36793 36794 36795 36796 36797 36798 36799 36800 36801 36802 36803 36804 36805 36806 36807 36808 36809 36810 36811 36812 36813 36814 36815 36816 36817 36818 36819 36820 36821 36822 36823 36824 36825 36826 36827 36828 36829 36830 36831 36832 36833 36834 36835 36836 36837 36838 36839 36840 36841 36842 36843 36844 36845 36846 36847 36848 36849 36850 36851 36852 36853 36854 36855 36856 36857 36858 36859 36860 36861 36862 36863 36864 36865 36866 36867 36868 36869 36870 36871 36872 36873 36874 36875 36876 36877 36878 36879 36880 36881 36882 36883 36884 36885 36886 36887 36888 36889 36890 36891 36892 36893 36894 36895 36896 36897 36898 36899 36900 36901 36902 36903 36904 36905 36906 36907 36908 36909 36910 36911 36912 36913 36914 36915 36916 36917 36918 36919 36920 36921 36922 36923 36924 36925 36926 36927 36928 36929 36930 36931 36932 36933 36934 36935 36936 36937 36938 36939 36940 36941 36942 36943 36944 36945 36946 36947 36948 36949 36950 36951 36952 36953 36954 36955 36956 36957 36958 36959 36960 36961 36962 36963 36964 36965 36966 36967 36968 36969 36970 36971 36972 36973 36974 36975 36976 36977 36978 36979 36980 36981 36982 36983 36984 36985 36986 36987 36988 36989 36990 36991 36992 36993 36994 36995 36996 36997 36998 36999 37000 37001 37002 37003 37004 37005 37006 37007 37008 37009 37010 37011 37012 37013 37014 37015 37016 37017 37018 37019 37020 37021 37022 37023 37024 37025 37026 37027 37028 37029 37030 37031 37032 37033 37034 37035 37036 37037 37038 37039 37040 37041 37042 37043 37044 37045 37046 37047 37048 37049 37050 37051 37052 37053 37054 37055 37056 37057 37058 37059 37060 37061 37062 37063 37064 37065 37066 37067 37068 37069 37070 37071 37072 37073 37074 37075 37076 37077 37078 37079 37080 37081 37082 37083 37084 37085 37086 37087 37088 37089 37090 37091 37092 37093 37094 37095 37096 37097 37098 37099 37100 37101 37102 37103 37104 37105 37106 37107 37108 37109 37110 37111 37112 37113 37114 37115 37116 37117 37118 37119 37120 37121 37122 37123 37124 37125 37126 37127 37128 37129 37130 37131 37132 37133 37134 37135 37136 37137 37138 37139 37140 37141 37142 37143 37144 37145 37146 37147 37148 37149 37150 37151 37152 37153 37154 37155 37156 37157 37158 37159 37160 37161 37162 37163 37164 37165 37166 37167 37168 37169 37170 37171 37172 37173 37174 37175 37176 37177 37178 37179 37180 37181 37182 37183 37184 37185 37186 37187 37188 37189 37190 37191 37192 37193 37194 37195 37196 37197 37198 37199 37200 37201 37202 37203 37204 37205 37206 37207 37208 37209 37210 37211 37212 37213 37214 37215 37216 37217 37218 37219 37220 37221 37222 37223 37224 37225 37226 37227 37228 37229 37230 37231 37232 37233 37234 37235 37236 37237 37238 37239 37240 37241 37242 37243 37244 37245 37246 37247 37248 37249 37250 37251 37252 37253 37254 37255 37256 37257 37258 37259 37260 37261 37262 37263 37264 37265 37266 37267 37268 37269 37270 37271 37272 37273 37274 37275 37276 37277 37278 37279 37280 37281 37282 37283 37284 37285 37286 37287 37288 37289 37290 37291 37292 37293 37294 37295 37296 37297 37298 37299 37300 37301 37302 37303 37304 37305 37306 37307 37308 37309 37310 37311 37312 37313 37314 37315 37316 37317 37318 37319 37320 37321 37322 37323 37324 37325 37326 37327 37328 37329 37330 37331 37332 37333 37334 37335 37336 37337 37338 37339 37340 37341 37342 37343 37344 37345 37346 37347 37348 37349 37350 37351 37352 37353 37354 37355 37356 37357 37358 37359 37360 37361 37362 37363 37364 37365 37366 37367 37368 37369 37370 37371 37372 37373 37374 37375 37376 37377 37378 37379 37380 37381 37382 37383 37384 37385 37386 37387 37388 37389 37390 37391 37392 37393 37394 37395 37396 37397 37398 37399 37400 37401 37402 37403 37404 37405 37406 37407 37408 37409 37410 37411 37412 37413 37414 37415 37416 37417 37418 37419 37420 37421 37422 37423 37424 37425 37426 37427 37428 37429 37430 37431 37432 37433 37434 37435 37436 37437 37438 37439 37440 37441 37442 37443 37444 37445 37446 37447 37448 37449 37450 37451 37452 37453 37454 37455 37456 37457 37458 37459 37460 37461 37462 37463 37464 37465 37466 37467 37468 37469 37470 37471 37472 37473 37474 37475 37476 37477 37478 37479 37480 37481 37482 37483 37484 37485 37486 37487 37488 37489 37490 37491 37492 37493 37494 37495 37496 37497 37498 37499 37500 37501 37502 37503 37504 37505 37506 37507 37508 37509 37510 37511 37512 37513 37514 37515 37516 37517 37518 37519 37520 37521 37522 37523 37524 37525 37526 37527 37528 37529 37530 37531 37532 37533 37534 37535 37536 37537 37538 37539 37540 37541 37542 37543 37544 37545 37546 37547 37548 37549 37550 37551 37552 37553 37554 37555 37556 37557 37558 37559 37560 37561 37562 37563 37564 37565 37566 37567 37568 37569 37570 37571 37572 37573 37574 37575 37576 37577 37578 37579 37580 37581 37582 37583 37584 37585 37586 37587 37588 37589 37590 37591 37592 37593 37594 37595 37596 37597 37598 37599 37600 37601 37602 37603 37604 37605 37606 37607 37608 37609 37610 37611 37612 37613 37614 37615 37616 37617 37618 37619 37620 37621 37622 37623 37624 37625 37626 37627 37628 37629 37630 37631 37632 37633 37634 37635 37636 37637 37638 37639 37640 37641 37642 37643 37644 37645 37646 37647 37648 37649 37650 37651 37652 37653 37654 37655 37656 37657 37658 37659 37660 37661 37662 37663 37664 37665 37666 37667 37668 37669 37670 37671 37672 37673 37674 37675 37676 37677 37678 37679 37680 37681 37682 37683 37684 37685 37686 37687 37688 37689 37690 37691 37692 37693 37694 37695 37696 37697 37698 37699 37700 37701 37702 37703 37704 37705 37706 37707 37708 37709 37710 37711 37712 37713 37714 37715 37716 37717 37718 37719 37720 37721 37722 37723 37724 37725 37726 37727 37728 37729 37730 37731 37732 37733 37734 37735 37736 37737 37738 37739 37740 37741 37742 37743 37744 37745 37746 37747 37748 37749 37750 37751 37752 37753 37754 37755 37756 37757 37758 37759 37760 37761 37762 37763 37764 37765 37766 37767 37768 37769 37770 37771 37772 37773 37774 37775 37776 37777 37778 37779 37780 37781 37782 37783 37784 37785 37786 37787 37788 37789 37790 37791 37792 37793 37794 37795 37796 37797 37798 37799 37800 37801 37802 37803 37804 37805 37806 37807 37808 37809 37810 37811 37812 37813 37814 37815 37816 37817 37818 37819 37820 37821 37822 37823 37824 37825 37826 37827 37828 37829 37830 37831 37832 37833 37834 37835 37836 37837 37838 37839 37840 37841 37842 37843 37844 37845 37846 37847 37848 37849 37850 37851 37852 37853 37854 37855 37856 37857 37858 37859 37860 37861 37862 37863 37864 37865 37866 37867 37868 37869 37870 37871 37872 37873 37874 37875 37876 37877 37878 37879 37880 37881 37882 37883 37884 37885 37886 37887 37888 37889 37890 37891 37892 37893 37894 37895 37896 37897 37898 37899 37900 37901 37902 37903 37904 37905 37906 37907 37908 37909 37910 37911 37912 37913 37914 37915 37916 37917 37918 37919 37920 37921 37922 37923 37924 37925 37926 37927 37928 37929 37930 37931 37932 37933 37934 37935 37936 37937 37938 37939 37940 37941 37942 37943 37944 37945 37946 37947 37948 37949 37950 37951 37952 37953 37954 37955 37956 37957 37958 37959 37960 37961 37962 37963 37964 37965 37966 37967 37968 37969 37970 37971 37972 37973 37974 37975 37976 37977 37978 37979 37980 37981 37982 37983 37984 37985 37986 37987 37988 37989 37990 37991 37992 37993 37994 37995 37996 37997 37998 37999 38000 38001 38002 38003 38004 38005 38006 38007 38008 38009 38010 38011 38012 38013 38014 38015 38016 38017 38018 38019 38020 38021 38022 38023 38024 38025 38026 38027 38028 38029 38030 38031 38032 38033 38034 38035 38036 38037 38038 38039 38040 38041 38042 38043 38044 38045 38046 38047 38048 38049 38050 38051 38052 38053 38054 38055 38056 38057 38058 38059 38060 38061 38062 38063 38064 38065 38066 38067 38068 38069 38070 38071 38072 38073 38074 38075 38076 38077 38078 38079 38080 38081 38082 38083 38084 38085 38086 38087 38088 38089 38090 38091 38092 38093 38094 38095 38096 38097 38098 38099 38100 38101 38102 38103 38104 38105 38106 38107 38108 38109 38110 38111 38112 38113 38114 38115 38116 38117 38118 38119 38120 38121 38122 38123 38124 38125 38126 38127 38128 38129 38130 38131 38132 38133 38134 38135 38136 38137 38138 38139 38140 38141 38142 38143 38144 38145 38146 38147 38148 38149 38150 38151 38152 38153 38154 38155 38156 38157 38158 38159 38160 38161 38162 38163 38164 38165 38166 38167 38168 38169 38170 38171 38172 38173 38174 38175 38176 38177 38178 38179 38180 38181 38182 38183 38184 38185 38186 38187 38188 38189 38190 38191 38192 38193 38194 38195 38196 38197 38198 38199 38200 38201 38202 38203 38204 38205 38206 38207 38208 38209 38210 38211 38212 38213 38214 38215 38216 38217 38218 38219 38220 38221 38222 38223 38224 38225 38226 38227 38228 38229 38230 38231 38232 38233 38234 38235 38236 38237 38238 38239 38240 38241 38242 38243 38244 38245 38246 38247 38248 38249 38250 38251 38252 38253 38254 38255 38256 38257 38258 38259 38260 38261 38262 38263 38264 38265 38266 38267 38268 38269 38270 38271 38272 38273 38274 38275 38276 38277 38278 38279 38280 38281 38282 38283 38284 38285 38286 38287 38288 38289 38290 38291 38292 38293 38294 38295 38296 38297 38298 38299 38300 38301 38302 38303 38304 38305 38306 38307 38308 38309 38310 38311 38312 38313 38314 38315 38316 38317 38318 38319 38320 38321 38322 38323 38324 38325 38326 38327 38328 38329 38330 38331 38332 38333 38334 38335 38336 38337 38338 38339 38340 38341 38342 38343 38344 38345 38346 38347 38348 38349 38350 38351 38352 38353 38354 38355 38356 38357 38358 38359 38360 38361 38362 38363 38364 38365 38366 38367 38368 38369 38370 38371 38372 38373 38374 38375 38376 38377 38378 38379 38380 38381 38382 38383 38384 38385 38386 38387 38388 38389 38390 38391 38392 38393 38394 38395 38396 38397 38398 38399 38400 38401 38402 38403 38404 38405 38406 38407 38408 38409 38410 38411 38412 38413 38414 38415 38416 38417 38418 38419 38420 38421 38422 38423 38424 38425 38426 38427 38428 38429 38430 38431 38432 38433 38434 38435 38436 38437 38438 38439 38440 38441 38442 38443 38444 38445 38446 38447 38448 38449 38450 38451 38452 38453 38454 38455 38456 38457 38458 38459 38460 38461 38462 38463 38464 38465 38466 38467 38468 38469 38470 38471 38472 38473 38474 38475 38476 38477 38478 38479 38480 38481 38482 38483 38484 38485 38486 38487 38488 38489 38490 38491 38492 38493 38494 38495 38496 38497 38498 38499 38500 38501 38502 38503 38504 38505 38506 38507 38508 38509 38510 38511 38512 38513 38514 38515 38516 38517 38518 38519 38520 38521 38522 38523 38524 38525 38526 38527 38528 38529 38530 38531 38532 38533 38534 38535 38536 38537 38538 38539 38540 38541 38542 38543 38544 38545 38546 38547 38548 38549 38550 38551 38552 38553 38554 38555 38556 38557 38558 38559 38560 38561 38562 38563 38564 38565 38566 38567 38568 38569 38570 38571 38572 38573 38574 38575 38576 38577 38578 38579 38580 38581 38582 38583 38584 38585 38586 38587 38588 38589 38590 38591 38592 38593 38594 38595 38596 38597 38598 38599 38600 38601 38602 38603 38604 38605 38606 38607 38608 38609 38610 38611 38612 38613 38614 38615 38616 38617 38618 38619 38620 38621 38622 38623 38624 38625 38626 38627 38628 38629 38630 38631 38632 38633 38634 38635 38636 38637 38638 38639 38640 38641 38642 38643 38644 38645 38646 38647 38648 38649 38650 38651 38652 38653 38654 38655 38656 38657 38658 38659 38660 38661 38662 38663 38664 38665 38666 38667 38668 38669 38670 38671 38672 38673 38674 38675 38676 38677 38678 38679 38680 38681 38682 38683 38684 38685 38686 38687 38688 38689 38690 38691 38692 38693 38694 38695 38696 38697 38698 38699 38700 38701 38702 38703 38704 38705 38706 38707 38708 38709 38710 38711 38712 38713 38714 38715 38716 38717 38718 38719 38720 38721 38722 38723 38724 38725 38726 38727 38728 38729 38730 38731 38732 38733 38734 38735 38736 38737 38738 38739 38740 38741 38742 38743 38744 38745 38746 38747 38748 38749 38750 38751 38752 38753 38754 38755 38756 38757 38758 38759 38760 38761 38762 38763 38764 38765 38766 38767 38768 38769 38770 38771 38772 38773 38774 38775 38776 38777 38778 38779 38780 38781 38782 38783 38784 38785 38786 38787 38788 38789 38790 38791 38792 38793 38794 38795 38796 38797 38798 38799 38800 38801 38802 38803 38804 38805 38806 38807 38808 38809 38810 38811 38812 38813 38814 38815 38816 38817 38818 38819 38820 38821 38822 38823 38824 38825 38826 38827 38828 38829 38830 38831 38832 38833 38834 38835 38836 38837 38838 38839 38840 38841 38842 38843 38844 38845 38846 38847 38848 38849 38850 38851 38852 38853 38854 38855 38856 38857 38858 38859 38860 38861 38862 38863 38864 38865 38866 38867 38868 38869 38870 38871 38872 38873 38874 38875 38876 38877 38878 38879 38880 38881 38882 38883 38884 38885 38886 38887 38888 38889 38890 38891 38892 38893 38894 38895 38896 38897 38898 38899 38900 38901 38902 38903 38904 38905 38906 38907 38908 38909 38910 38911 38912 38913 38914 38915 38916 38917 38918 38919 38920 38921 38922 38923 38924 38925 38926 38927 38928 38929 38930 38931 38932 38933 38934 38935 38936 38937 38938 38939 38940 38941 38942 38943 38944 38945 38946 38947 38948 38949 38950 38951 38952 38953 38954 38955 38956 38957 38958 38959 38960 38961 38962 38963 38964 38965 38966 38967 38968 38969 38970 38971 38972 38973 38974 38975 38976 38977 38978 38979 38980 38981 38982 38983 38984 38985 38986 38987 38988 38989 38990 38991 38992 38993 38994 38995 38996 38997 38998 38999 39000 39001 39002 39003 39004 39005 39006 39007 39008 39009 39010 39011 39012 39013 39014 39015 39016 39017 39018 39019 39020 39021 39022 39023 39024 39025 39026 39027 39028 39029 39030 39031 39032 39033 39034 39035 39036 39037 39038 39039 39040 39041 39042 39043 39044 39045 39046 39047 39048 39049 39050 39051 39052 39053 39054 39055 39056 39057 39058 39059 39060 39061 39062 39063 39064 39065 39066 39067 39068 39069 39070 39071 39072 39073 39074 39075 39076 39077 39078 39079 39080 39081 39082 39083 39084 39085 39086 39087 39088 39089 39090 39091 39092 39093 39094 39095 39096 39097 39098 39099 39100 39101 39102 39103 39104 39105 39106 39107 39108 39109 39110 39111 39112 39113 39114 39115 39116 39117 39118 39119 39120 39121 39122 39123 39124 39125 39126 39127 39128 39129 39130 39131 39132 39133 39134 39135 39136 39137 39138 39139 39140 39141 39142 39143 39144 39145 39146 39147 39148 39149 39150 39151 39152 39153 39154 39155 39156 39157 39158 39159 39160 39161 39162 39163 39164 39165 39166 39167 39168 39169 39170 39171 39172 39173 39174 39175 39176 39177 39178 39179 39180 39181 39182 39183 39184 39185 39186 39187 39188 39189 39190 39191 39192 39193 39194 39195 39196 39197 39198 39199 39200 39201 39202 39203 39204 39205 39206 39207 39208 39209 39210 39211 39212 39213 39214 39215 39216 39217 39218 39219 39220 39221 39222 39223 39224 39225 39226 39227 39228 39229 39230 39231 39232 39233 39234 39235 39236 39237 39238 39239 39240 39241 39242 39243 39244 39245 39246 39247 39248 39249 39250 39251 39252 39253 39254 39255 39256 39257 39258 39259 39260 39261 39262 39263 39264 39265 39266 39267 39268 39269 39270 39271 39272 39273 39274 39275 39276 39277 39278 39279 39280 39281 39282 39283 39284 39285 39286 39287 39288 39289 39290 39291 39292 39293 39294 39295 39296 39297 39298 39299 39300 39301 39302 39303 39304 39305 39306 39307 39308 39309 39310 39311 39312 39313 39314 39315 39316 39317 39318 39319 39320 39321 39322 39323 39324 39325 39326 39327 39328 39329 39330 39331 39332 39333 39334 39335 39336 39337 39338 39339 39340 39341 39342 39343 39344 39345 39346 39347 39348 39349 39350 39351 39352 39353 39354 39355 39356 39357 39358 39359 39360 39361 39362 39363 39364 39365 39366 39367 39368 39369 39370 39371 39372 39373 39374 39375 39376 39377 39378 39379 39380 39381 39382 39383 39384 39385 39386 39387 39388 39389 39390 39391 39392 39393 39394 39395 39396 39397 39398 39399 39400 39401 39402 39403 39404 39405 39406 39407 39408 39409 39410 39411 39412 39413 39414 39415 39416 39417 39418 39419 39420 39421 39422 39423 39424 39425 39426 39427 39428 39429 39430 39431 39432 39433 39434 39435 39436 39437 39438 39439 39440 39441 39442 39443 39444 39445 39446 39447 39448 39449 39450 39451 39452 39453 39454 39455 39456 39457 39458 39459 39460 39461 39462 39463 39464 39465 39466 39467 39468 39469 39470 39471 39472 39473 39474 39475 39476 39477 39478 39479 39480 39481 39482 39483 39484 39485 39486 39487 39488 39489 39490 39491 39492 39493 39494 39495 39496 39497 39498 39499 39500 39501 39502 39503 39504 39505 39506 39507 39508 39509 39510 39511 39512 39513 39514 39515 39516 39517 39518 39519 39520 39521 39522 39523 39524 39525 39526 39527 39528 39529 39530 39531 39532 39533 39534 39535 39536 39537 39538 39539 39540 39541 39542 39543 39544 39545 39546 39547 39548 39549 39550 39551 39552 39553 39554 39555 39556 39557 39558 39559 39560 39561 39562 39563 39564 39565 39566 39567 39568 39569 39570 39571 39572 39573 39574 39575 39576 39577 39578 39579 39580 39581 39582 39583 39584 39585 39586 39587 39588 39589 39590 39591 39592 39593 39594 39595 39596 39597 39598 39599 39600 39601 39602 39603 39604 39605 39606 39607 39608 39609 39610 39611 39612 39613 39614 39615 39616 39617 39618 39619 39620 39621 39622 39623 39624 39625 39626 39627 39628 39629 39630 39631 39632 39633 39634 39635 39636 39637 39638 39639 39640 39641 39642 39643 39644 39645 39646 39647 39648 39649 39650 39651 39652 39653 39654 39655 39656 39657 39658 39659 39660 39661 39662 39663 39664 39665 39666 39667 39668 39669 39670 39671 39672 39673 39674 39675 39676 39677 39678 39679 39680 39681 39682 39683 39684 39685 39686 39687 39688 39689 39690 39691 39692 39693 39694 39695 39696 39697 39698 39699 39700 39701 39702 39703 39704 39705 39706 39707 39708 39709 39710 39711 39712 39713 39714 39715 39716 39717 39718 39719 39720 39721 39722 39723 39724 39725 39726 39727 39728 39729 39730 39731 39732 39733 39734 39735 39736 39737 39738 39739 39740 39741 39742 39743 39744 39745 39746 39747 39748 39749 39750 39751 39752 39753 39754 39755 39756 39757 39758 39759 39760 39761 39762 39763 39764 39765 39766 39767 39768 39769 39770 39771 39772 39773 39774 39775 39776 39777 39778 39779 39780 39781 39782 39783 39784 39785 39786 39787 39788 39789 39790 39791 39792 39793 39794 39795 39796 39797 39798 39799 39800 39801 39802 39803 39804 39805 39806 39807 39808 39809 39810 39811 39812 39813 39814 39815 39816 39817 39818 39819 39820 39821 39822 39823 39824 39825 39826 39827 39828 39829 39830 39831 39832 39833 39834 39835 39836 39837 39838 39839 39840 39841 39842 39843 39844 39845 39846 39847 39848 39849 39850 39851 39852 39853 39854 39855 39856 39857 39858 39859 39860 39861 39862 39863 39864 39865 39866 39867 39868 39869 39870 39871 39872 39873 39874 39875 39876 39877 39878 39879 39880 39881 39882 39883 39884 39885 39886 39887 39888 39889 39890 39891 39892 39893 39894 39895 39896 39897 39898 39899 39900 39901 39902 39903 39904 39905 39906 39907 39908 39909 39910 39911 39912 39913 39914 39915 39916 39917 39918 39919 39920 39921 39922 39923 39924 39925 39926 39927 39928 39929 39930 39931 39932 39933 39934 39935 39936 39937 39938 39939 39940 39941 39942 39943 39944 39945 39946 39947 39948 39949 39950 39951 39952 39953 39954 39955 39956 39957 39958 39959 39960 39961 39962 39963 39964 39965 39966 39967 39968 39969 39970 39971 39972 39973 39974 39975 39976 39977 39978 39979 39980 39981 39982 39983 39984 39985 39986 39987 39988 39989 39990 39991 39992 39993 39994 39995 39996 39997 39998 39999 40000 40001 40002 40003 40004 40005 40006 40007 40008 40009 40010 40011 40012 40013 40014 40015 40016 40017 40018 40019 40020 40021 40022 40023 40024 40025 40026 40027 40028 40029 40030 40031 40032 40033 40034 40035 40036 40037 40038 40039 40040 40041 40042 40043 40044 40045 40046 40047 40048 40049 40050 40051 40052 40053 40054 40055 40056 40057 40058 40059 40060 40061 40062 40063 40064 40065 40066 40067 40068 40069 40070 40071 40072 40073 40074 40075 40076 40077 40078 40079 40080 40081 40082 40083 40084 40085 40086 40087 40088 40089 40090 40091 40092 40093 40094 40095 40096 40097 40098 40099 40100 40101 40102 40103 40104 40105 40106 40107 40108 40109 40110 40111 40112 40113 40114 40115 40116 40117 40118 40119 40120 40121 40122 40123 40124 40125 40126 40127 40128 40129 40130 40131 40132 40133 40134 40135 40136 40137 40138 40139 40140 40141 40142 40143 40144 40145 40146 40147 40148 40149 40150 40151 40152 40153 40154 40155 40156 40157 40158 40159 40160 40161 40162 40163 40164 40165 40166 40167 40168 40169 40170 40171 40172 40173 40174 40175 40176 40177 40178 40179 40180 40181 40182 40183 40184 40185 40186 40187 40188 40189 40190 40191 40192 40193 40194 40195 40196 40197 40198 40199 40200 40201 40202 40203 40204 40205 40206 40207 40208 40209 40210 40211 40212 40213 40214 40215 40216 40217 40218 40219 40220 40221 40222 40223 40224 40225 40226 40227 40228 40229 40230 40231 40232 40233 40234 40235 40236 40237 40238 40239 40240 40241 40242 40243 40244 40245 40246 40247 40248 40249 40250 40251 40252 40253 40254 40255 40256 40257 40258 40259 40260 40261 40262 40263 40264 40265 40266 40267 40268 40269 40270 40271 40272 40273 40274 40275 40276 40277 40278 40279 40280 40281 40282 40283 40284 40285 40286 40287 40288 40289 40290 40291 40292 40293 40294 40295 40296 40297 40298 40299 40300 40301 40302 40303 40304 40305 40306 40307 40308 40309 40310 40311 40312 40313 40314 40315 40316 40317 40318 40319 40320 40321 40322 40323 40324 40325 40326 40327 40328 40329 40330 40331 40332 40333 40334 40335 40336 40337 40338 40339 40340 40341 40342 40343 40344 40345 40346 40347 40348 40349 40350 40351 40352 40353 40354 40355 40356 40357 40358 40359 40360 40361 40362 40363 40364 40365 40366 40367 40368 40369 40370 40371 40372 40373 40374 40375 40376 40377 40378 40379 40380 40381 40382 40383 40384 40385 40386 40387 40388 40389 40390 40391 40392 40393 40394 40395 40396 40397 40398 40399 40400 40401 40402 40403 40404 40405 40406 40407 40408 40409 40410 40411 40412 40413 40414 40415 40416 40417 40418 40419 40420 40421 40422 40423 40424 40425 40426 40427 40428 40429 40430 40431 40432 40433 40434 40435 40436 40437 40438 40439 40440 40441 40442 40443 40444 40445 40446 40447 40448 40449 40450 40451 40452 40453 40454 40455 40456 40457 40458 40459 40460 40461 40462 40463 40464 40465 40466 40467 40468 40469 40470 40471 40472 40473 40474 40475 40476 40477 40478 40479 40480 40481 40482 40483 40484 40485 40486 40487 40488 40489 40490 40491 40492 40493 40494 40495 40496 40497 40498 40499 40500 40501 40502 40503 40504 40505 40506 40507 40508 40509 40510 40511 40512 40513 40514 40515 40516 40517 40518 40519 40520 40521 40522 40523 40524 40525 40526 40527 40528 40529 40530 40531 40532 40533 40534 40535 40536 40537 40538 40539 40540 40541 40542 40543 40544 40545 40546 40547 40548 40549 40550 40551 40552 40553 40554 40555 40556 40557 40558 40559 40560 40561 40562 40563 40564 40565 40566 40567 40568 40569 40570 40571 40572 40573 40574 40575 40576 40577 40578 40579 40580 40581 40582 40583 40584 40585 40586 40587 40588 40589 40590 40591 40592 40593 40594 40595 40596 40597 40598 40599 40600 40601 40602 40603 40604 40605 40606 40607 40608 40609 40610 40611 40612 40613 40614 40615 40616 40617 40618 40619 40620 40621 40622 40623 40624 40625 40626 40627 40628 40629 40630 40631 40632 40633 40634 40635 40636 40637 40638 40639 40640 40641 40642 40643 40644 40645 40646 40647 40648 40649 40650 40651 40652 40653 40654 40655 40656 40657 40658 40659 40660 40661 40662 40663 40664 40665 40666 40667 40668 40669 40670 40671 40672 40673 40674 40675 40676 40677 40678 40679 40680 40681 40682 40683 40684 40685 40686 40687 40688 40689 40690 40691 40692 40693 40694 40695 40696 40697 40698 40699 40700 40701 40702 40703 40704 40705 40706 40707 40708 40709 40710 40711 40712 40713 40714 40715 40716 40717 40718 40719 40720 40721 40722 40723 40724 40725 40726 40727 40728 40729 40730 40731 40732 40733 40734 40735 40736 40737 40738 40739 40740 40741 40742 40743 40744 40745 40746 40747 40748 40749 40750 40751 40752 40753 40754 40755 40756 40757 40758 40759 40760 40761 40762 40763 40764 40765 40766 40767 40768 40769 40770 40771 40772 40773 40774 40775 40776 40777 40778 40779 40780 40781 40782 40783
|
This ChangeLog file is no longer maintained - see the git repo history for
more recent changes: https://xapian.org/bleeding
Wed Sep 30 19:34:51 GMT 2015 Olly Betts <olly@survex.com>
* languages/compiler/: Merge changes from upstream snowball again.
Sun Sep 27 23:59:05 GMT 2015 Olly Betts <olly@survex.com>
* languages/compiler/: Merge changes from upstream snowball.
Sat Sep 26 04:07:35 GMT 2015 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Remove pointless call to get_database().
Sat Sep 26 03:21:45 GMT 2015 Olly Betts <olly@survex.com>
* common/pack.h,configure.ac,include/xapian/types.h,
include/xapian/version_h.cc,tests/api_backend.cc,tests/api_wrdb.cc:
Add new configure options --enable-64bit-docid and
--enable-64bit-termcount, which control the size of these types.
Currently the backends only support 32-bit docids, but using 64-bit
docids allows searching multiple database where the mapped docids
don't fit in a 32-bit type. Based heavily on patch from James
Aylett and Dylan Griffith. Fixes #385.
Sat Sep 26 00:32:31 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_table.cc: Use BLK_UNUSED constant.
Sat Sep 26 00:31:45 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc: Initialise last_readahead - was
causing testsuite failures under valgrind.
Fri Sep 25 06:28:02 GMT 2015 Olly Betts <olly@survex.com>
* net/length.cc,net/length.h: Provide overloads for unsigned, unsigned
long, and unsigned long long, rather than uint32_t and uint64_t -
this avoids overload resolution failing when we pass a type which
isn't one which uint32_t or uint64_t is a typedef to. (see #385)
Fri Sep 25 04:10:00 GMT 2015 Olly Betts <olly@survex.com>
* api/vectortermlist.cc: Check decoded length.
Sun Sep 13 08:27:53 GMT 2015 Olly Betts <olly@survex.com>
* common/socket_utils.cc: Change C-style cast to reinterpret_cast.
Wed Sep 02 03:13:45 GMT 2015 Olly Betts <olly@survex.com>
* docs/stemming.rst,languages/armenian.sbl,languages/basque.sbl,
languages/catalan.sbl: Update snowball website links to
snowballstem.org. Correct "2-clause BSD" to "3-clause BSD".
Sun Aug 30 04:43:49 GMT 2015 Olly Betts <olly@survex.com>
* net/remote_protocol.rst: Markup tweak.
Thu Aug 13 08:56:25 GMT 2015 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc: Improve error when the client and
server remote protocol versions aren't compatible.
Tue Aug 11 09:32:46 GMT 2015 Olly Betts <olly@survex.com>
* docs/: Strip out "quickstart" examples which are out of date and
rather redundant with the "simple" examples.
Tue Aug 11 08:24:48 GMT 2015 Olly Betts <olly@survex.com>
* pkgconfig/xapian-core.pc.in: Fix library name in .pc file to say
"xapian" not "xapian-core". Reported by Eric Lindblad to the
xapian-devel list.
Tue Jul 07 01:37:00 GMT 2015 Olly Betts <olly@survex.com>
* api/omenquire.cc,api/query.cc,backends/chert/,backends/database.cc,
backends/database.h,backends/glass/,common/io_utils.cc,
common/io_utils.h,configure.ac,include/xapian/enquire.h,
include/xapian/query.h,matcher/multimatch.cc: Where posix_fadvise()
is available, use it to prefetch postlist Btree blocks from the
level below the root block which will be needed for postlists of
terms in the query, and similarly for the record/docdata table
when MSet::fetch() is called. Based on patch by Will Greenberg
in #671.
Mon Jul 06 09:44:54 GMT 2015 Olly Betts <olly@survex.com>
* common/safeunistd.h,configure.ac: Don't provide our own
implementation of sleep() under __WIN32__ if there's already one -
mingw provides one, and in some situations it seems to clash with
ours. Reported to xapian-discuss by John Alveris.
Mon Jun 29 12:10:22 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_compact.cc: Need <unistd.h> for unlink() on
FreeBSD, reported by Germán M. Bravo via github PR 72.
Wed Jun 24 10:07:05 GMT 2015 Olly Betts <olly@survex.com>
* tests/harness/testutils.cc,tests/harness/testutils.h: Use
'Xapian::docid' instead of 'unsigned int' so that things work with
64 bit docids (see #385).
Tue Jun 23 13:38:54 GMT 2015 Olly Betts <olly@survex.com>
* api/snipper.cc,api/snipperinternal.h: Use appropriate typedefs
rather than unsigned int. Split out of patch by Dylan Griffith in
#385.
Tue Jun 23 13:32:36 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_types.h,
backends/glass/glass_database.cc,backends/glass/glass_defs.h: Add
constants CHERT_MAX_DOCID and GLASS_MAX_DOCID for the largest docid
which the backends support, independent of the size of type
Xapian::docid. (helps #385)
Tue Jun 23 13:19:06 GMT 2015 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Add regression test for #678.
Tue Jun 23 13:04:06 GMT 2015 Olly Betts <olly@survex.com>
* api/,backends/remote/net_postlist.cc,
backends/remote/remote-database.cc,
geospatial/latlong_posting_source.cc,net/,tests/unittest.cc: Split
decode_length() into versions which decode a 32 vs 64 bit value,
and which check that there's at least the decoded length in bytes
in the source data. (Fixes #678 and helps #385)
Tue Jun 23 11:49:15 GMT 2015 Olly Betts <olly@survex.com>
* net/remoteserver.cc: Check length of key in MSG_SETMETADATA.
Sat Jun 20 13:05:50 GMT 2015 Olly Betts <olly@survex.com>
* common/str.h,tests/,tests/harness/,tests/internaltest.cc,
tests/perftest/perftest.cc,tests/perftest/perftest_matchdecider.cc,
tests/perftest/perftest_randomidx.cc,tests/queryparsertest.cc,
tests/soaktest/soaktest_queries.cc,tests/termgentest.cc,
tests/unittest.cc: Make str() private to the library, and use
C++11 std::to_string() to convert numbers to std::string in the
testsuite. (ticket #63)
Sat Jun 20 12:32:13 GMT 2015 Olly Betts <olly@survex.com>
* tests/api_unicode.cc: Fix trailing whitespace introduced by previous
commit.
Sat Jun 20 06:31:27 GMT 2015 Olly Betts <olly@survex.com>
* tests/api_unicode.cc,unicode/Makefile.mk,
unicode/UnicodeData-README.txt,unicode/UnicodeData.txt:
Update to Unicode 8.0.0. (fixes #680)
Thu Jun 11 11:57:50 GMT 2015 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Remove XAPIAN_CONST_FUNCTION marker
from sortable_serialise_() helper, as it writes to the passed in
buffer, so it isn't const or pure. Fixes decvalwtsource2 testcase
failure when compiled with clang.
Thu Jun 11 05:05:27 GMT 2015 Olly Betts <olly@survex.com>
* examples/xapian-metadata.cc: Extend "list" subcommand to take
optional key prefix.
Sat Jun 06 11:02:50 GMT 2015 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Use C++11 auto and container
iteration for cleaner code.
Fri Jun 05 12:08:02 GMT 2015 Olly Betts <olly@survex.com>
* api/omenquire.cc,api/omenquireinternal.h,
backends/remote/remote-database.cc,backends/remote/remote-database.h,
include/xapian/matchspy.h,matcher/,net/remoteserver.cc,
tests/api_none.cc: Add support for optional reference counting of
MatchSpy objects.
Fri Jun 05 02:55:54 GMT 2015 Olly Betts <olly@survex.com>
* backends/remote/remote-database.h: Correct doxygen comment for
internal method.
Thu Jun 04 12:44:00 GMT 2015 Olly Betts <olly@survex.com>
* examples/quest.cc: Prefer pre-increment ++.
Thu Jun 04 12:42:49 GMT 2015 Olly Betts <olly@survex.com>
* tests/api_compact.cc,tests/api_posdb.cc: Remove unused variables.
Thu Jun 04 12:42:04 GMT 2015 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Fix compilation in case where S_ISSOCK() isn't
defined.
Thu Jun 04 12:41:31 GMT 2015 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Remove redundant assignment.
Thu Jun 04 12:40:52 GMT 2015 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Remove extra "break;".
Thu Jun 04 12:39:51 GMT 2015 Olly Betts <olly@survex.com>
* include/xapian/query.h: Remove bogus extra "Query::" qualifier from
fake Query constructor prototypes provided for SWIG.
Thu Jun 04 12:38:36 GMT 2015 Olly Betts <olly@survex.com>
* api/documentvaluelist.h,api/leafpostlist.h,api/matchspy.cc,
include/xapian/,net/length.cc: Mark constructors taking a
single argument as "explicit" to avoid unwanted implicit
conversions.
Mon Jun 01 13:11:02 GMT 2015 Olly Betts <olly@survex.com>
* NEWS.SKELETON: Remove section for "flint backend" from template.
Mon Jun 01 13:09:55 GMT 2015 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update for 1.3.3.
Mon May 25 04:33:15 GMT 2015 Olly Betts <olly@survex.com>
* NEWS: Update.
Sun May 24 12:52:47 GMT 2015 Olly Betts <olly@survex.com>
* tests/api_postingsource.cc: timer_create() seems to always fail on
AIX with EAGAIN, so just skip the matchtimelimit1 testcase there.
Sun May 24 11:48:30 GMT 2015 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Under __WIN32__, inet_ntop()'s second parameter
is 'void*' (to POSIX says it should be 'const void*').
Sun May 24 11:46:25 GMT 2015 Olly Betts <olly@survex.com>
* common/safenetdb.h: Under __WIN32__, MSDN says that newer platforms
need <ws2def.h> for AI_* constants. And mingw doesn't seem to
define AI_NUMERICSERV yet.
Sun May 24 10:41:39 GMT 2015 Olly Betts <olly@survex.com>
* common/safewindows.h,configure.ac: Under __WIN32__, we need to
specify Vista as the minimum supported version to get the
AI_ADDRCONFIG flag. Older versions seem to all be out of support
anyway.
Sun May 24 06:46:15 GMT 2015 Olly Betts <olly@survex.com>
* net/tcpclient.cc: Add missing declaration of variable under
__WIN32__.
Sun May 24 06:39:56 GMT 2015 Olly Betts <olly@survex.com>
* tests/harness/testsuite.h: Simplify FAIL_TEST and SKIP_TEST
slightly.
Sat May 23 11:52:03 GMT 2015 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc: Don't leave an extra fd
open when starting xapian-tcpsrv for remotetcp tests.
Sat May 23 10:12:31 GMT 2015 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc: Add spaces between literal
strings and macros which expand to literal strings for C++11
compatibility in __WIN32__-specific code.
Fri May 22 03:22:03 GMT 2015 Olly Betts <olly@survex.com>
* NEWS: Update.
Wed May 20 14:24:03 GMT 2015 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: If old and new __GXX_ABI_VERSION are
both >= 1002 (which means GCC >= 3.4), then issue a warning about
mismatching versions instead of an error. The changes in these
versions are bug fixes for corner cases, so there's a good chance of
things working - e.g. building xapian-bindings with GCC 5.1 (which
defaults to __GXX_ABI_VERSION 1008) against xapian-core built with
GCC 4.9 (1002) seems to work OK. A warning is still useful as a
clue to what is going on if linking fails due to a missing symbol.
Wed May 20 13:47:50 GMT 2015 Olly Betts <olly@survex.com>
* net/serialise.cc: Don't use encode_length() on a bool - it's
overkill, and leads to a warning from GCC 5.1 (due to the
comparison (bool_value < 255) from the template expansion
always being true).
Wed May 20 01:49:18 GMT 2015 Olly Betts <olly@survex.com>
* api/matchspy.cc: Fix comparison function not to return true for two
equal elements, which fixes matchspy4 test failure with clang and
libc++.
Wed May 20 00:20:56 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: Disable "<FUNCTION> is expected to return a value"
warning from Sun's C++ compiler, as it fires even for functions we
end in a "throw" statement. Genuine instances will be caught by
compilers with superior warning machinery.
Mon May 18 04:18:37 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: Arrange to pass command line option so that xlC
actually fails to compile the test code for typeid() when RTTI isn't
enabled.
Sun May 17 11:35:36 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_version.cc: When reporting an error that the
glass format version doesn't match, don't append an uninitialised
char[] buffer to the error string (code accidentally left behind
by the previous change in this area).
Sat May 16 12:08:17 GMT 2015 Olly Betts <olly@survex.com>
* common/socket_utils.cc: Fix casts on the 4th argument of
setsockopt() so they compile on platforms which expect
char * or const char * there.
Fri May 15 13:24:55 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: Enhance the probe for whether the test harness can use
RTTI so that it works for xlC (which defaults to not generating
RTTI).
Fri May 15 12:28:32 GMT 2015 Olly Betts <olly@survex.com>
* common/debuglog.h: Remove commented out STATIC_ASSERT() which
is conceptually flawed.
Fri May 15 12:27:45 GMT 2015 Olly Betts <olly@survex.com>
* common/omassert.h,common/pack.h,tests/api_wrdb.cc,
tests/internaltest.cc: Replace STATIC_ASSERT() with C++11's
static_assert().
Fri May 15 11:34:47 GMT 2015 Olly Betts <olly@survex.com>
* common/stringutils.cc: Use static_assert rather than an adhoc check
via a negative array size.
Fri May 15 11:16:18 GMT 2015 Olly Betts <olly@survex.com>
* common/io_utils.cc: Replace the code used on platforms without
F_DUPFD with simpler code which actually compiles.
Fri May 15 03:43:16 GMT 2015 Olly Betts <olly@survex.com>
* pkgconfig/xapian-core.pc.in: Include @ldflags@ in pkg-config .pc
file.
Fri May 15 03:33:40 GMT 2015 Olly Betts <olly@survex.com>
* pkgconfig/xapian-core.pc.in: Fix include directory reported by
pkg-config.
Fri May 15 03:31:43 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac,pkgconfig/xapian-core.pc.in,xapian-config.in: When
compiling with xlC on AIX, _LARGE_FILES gets defined by
AC_SYS_LARGEFILE to enable large file support, and defining this
changes the ABI of std::string, so include it in xapian-config
--cxxflags and the pkg-config equivalent.
Fri May 15 02:52:10 GMT 2015 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/perftest/Makefile.mk: Use $(NO_INSTALL)
rather than @NO_INSTALL@ to allow make-time overriding.
Fri May 15 02:33:11 GMT 2015 Olly Betts <olly@survex.com>
* tests/soaktest/Makefile.mk: Use -no-fast-install instead of
-no-install for linking soaktest on platforms where libtool issues
a warning for -no-install, like we already do for all the other test
programs.
Fri May 15 02:14:16 GMT 2015 Olly Betts <olly@survex.com>
* examples/simpleexpand.cc,examples/simpleindex.cc,
examples/simplesearch.cc: '#include <config.h>' in the examples, as
when compiling with xlC on AIX, _LARGE_FILES gets defined by
AC_SYS_LARGEFILE to enable large file support, and defining this
changes the ABI of std::string, so it also needs to be defined when
compiling code using Xapian.
Thu May 14 03:17:28 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.cc: Correct delete to delete [].
Tue May 12 14:33:28 GMT 2015 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Add deprecation of --preserve-nonduplicates
which happened in 1.2.4.
Tue May 12 07:38:12 GMT 2015 Olly Betts <olly@survex.com>
* Makefile.am: Actually use $(NO_UNDEFINED).
Tue May 12 06:40:38 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: Only pass -no-undefined when linking the library if
it's actually required for the current platform. Sun C++ doesn't
link the C++ runtime libraries to shared objects, so the build
fails with -no-undefined.
Tue May 12 06:39:26 GMT 2015 Olly Betts <olly@survex.com>
* INSTALL,configure.ac: Fix comment and doc typos.
Tue May 12 03:49:38 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: Add workaround for odd <cmath> issue with Sun C++.
Tue May 12 03:49:15 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: On Solaris, inet_ntop() needs -lnsl.
Tue May 12 03:48:48 GMT 2015 Olly Betts <olly@survex.com>
* api/keymaker.cc: Fix error compiling with Sun C++.
Tue May 12 03:07:06 GMT 2015 Olly Betts <olly@survex.com>
* include/xapian/attributes.h: Fix typo in definition of
XAPIAN_NOTHROW() definition for C++11 compilers other than GCC and
MSVC.
Tue May 12 01:48:19 GMT 2015 Olly Betts <olly@survex.com>
* exception_data.pm: Fix not to parse mentions of XAPIAN_THROW() in
comments.
Mon May 11 14:16:22 GMT 2015 Olly Betts <olly@survex.com>
* HACKING: libtool 2.4.6 is now used for snapshots and releases.
Mon May 11 14:14:04 GMT 2015 Olly Betts <olly@survex.com>
* common/str.cc,expand/bo1eweight.cc,geospatial/geoencode.cc,
matcher/multiandpostlist.cc,net/remoteconnection.cc,weight/:
Fixes for errors when compiling with Sun C++.
Mon May 11 10:53:47 GMT 2015 Olly Betts <olly@survex.com>
* common/log2.h,configure.ac: Change probe for log2() to check for a
declaration and '#include <cmath>' to get it to fix build on Solaris
with Sun C++. C++11 compilers should all provide log2(), but let's
not rely on that just yet as it's easy to provide a fallback
implementation.
Mon May 11 07:04:06 GMT 2015 Olly Betts <olly@survex.com>
* common/getopt.cc,net/tcpserver.cc: Fix clang warnings on OS X.
Reported by Germán M. Bravo.
Mon May 11 06:29:42 GMT 2015 Olly Betts <olly@survex.com>
* api/constinfo.cc,docs/doxygen_api.conf.in,
docs/doxygen_source.conf.in,include/xapian/: C++11's noexcept
needs to be on definitions as well as declarations, but GCC
function attributes must only be on declarations, so split
XAPIAN_NOEXCEPT off from XAPIAN_NOTHROW.
Sun May 10 13:26:24 GMT 2015 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser_internal.h,
tests/api_none.cc: Add support for optional reference counting of
FieldProcessor objects.
Sun May 10 11:07:36 GMT 2015 Olly Betts <olly@survex.com>
* include/xapian/intrusive_ptr.h,include/xapian/queryparser.h,
queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
tests/api_none.cc: Add support for optional reference counting of
ValueRangeProcessor objects.
Thu May 07 12:42:11 GMT 2015 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc,common/socket_utils.cc,common/socket_utils.h,
net/replicatetcpclient.cc,net/replicatetcpclient.h: Set SO_KEEPALIVE
for xapian-replicate's connection to the master, and add command
line option to allow setting socket-level timeouts (SO_RCVTIMEO and
SO_SNDTIMEO) on platforms that support them. Fixes #546, reported
by nkvoll.
Thu May 07 12:00:15 GMT 2015 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc: Fix connection timeout to be 10 seconds
rather than 10000 seconds which is has been since 1.2.3.
Tue May 05 02:38:37 GMT 2015 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Use inet_ntop() instead of inet_ntoa() - the
latter isn't thread-safe.
Tue May 05 02:05:27 GMT 2015 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Update documentation to reflect that
the database passed to QueryParser::set_database() is no longer
used to expand wildcards and partial terms.
Mon May 04 11:32:40 GMT 2015 Olly Betts <olly@survex.com>
* api/postlist.cc,api/postlist.h,common/remoteprotocol.h,matcher/,
net/serialise.cc,tests/api_backend.cc: Fix sort by value when
multiple databases are in use and one or more are remote. Fixes
#674, reported by Dylan Griffith.
Sun May 03 12:41:58 GMT 2015 Olly Betts <olly@survex.com>
* docs/deprecation.rst,include/xapian/queryparser.h,
queryparser/queryparser.cc,queryparser/queryparser.lemony,
queryparser/queryparser_internal.h,tests/queryparsertest.cc:
Allow setting the expansion limits and types for wildcards
and partial terms in the QueryParser independently. Partial
terms now default to the 100 most frequent matching terms.
Deprecate set_max_wildcard_expansion() in favour of new
set_max_expansion() method which can set expansion limits
for partial terms too. Completes #608.
Sat May 02 09:20:30 GMT 2015 Olly Betts <olly@survex.com>
* api/query.cc,api/queryinternal.cc,api/queryinternal.h,
include/xapian/query.h,queryparser/queryparser.lemony,
tests/api_query.cc: Add a choice of ways to apply the limit on
wildcard expansion. Fixes #608, reported by boomboo.
Fri May 01 14:53:16 GMT 2015 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Reenable replicate3 for glass, as it no
longer fails.
Fri May 01 13:38:48 GMT 2015 Olly Betts <olly@survex.com>
* common/autoptr.h: Just map AutoPtr to std::unique_ptr now we require
C++11.
Fri May 01 13:33:28 GMT 2015 Olly Betts <olly@survex.com>
* matcher/multimatch.cc,net/progclient.cc: IRIX is dead, so remove
lingering traces of support for SGI's compiler.
Fri May 01 08:59:13 GMT 2015 Olly Betts <olly@survex.com>
* HACKING,INSTALL: STLport was last released in 2008, so (a) it's no
longer actively developed and (b) it won't support C++11, so strip
out documentation which mentions it.
* configure.ac: For Sun's C++ compiler, -std=c++11 enables C++11
support, and is incompatible with -library=stlport, so remove code
to enable that later option.
Fri May 01 01:37:24 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: Tweak comment to match xapian-omega's configure.
Fri May 01 01:36:41 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: Set default value for AUTOM4TE before AC_OUTPUT so the
default will actually get used.
Fri May 01 01:36:05 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: Add explicit AC_CANONICAL_HOST.
Fri May 01 01:08:56 GMT 2015 Olly Betts <olly@survex.com>
* api/matchspy.cc,tests/api_nodb.cc: Eliminate needless uses of
AutoPtr.
Fri May 01 00:37:42 GMT 2015 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Remove self-assignment check of AutoPtr as
that doesn't work under C++11 when AutoPtr is unique_ptr, and add
other checks of reassignment which should work for both.
Fri May 01 00:37:09 GMT 2015 Olly Betts <olly@survex.com>
* tests/api_postingsource.cc: Remove C++11 specific test which doesn't
actually work with C++11.
Fri May 01 00:33:43 GMT 2015 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc,
tests/harness/backendmanager_remotetcp.cc,
tests/harness/testsuite.h,tests/harness/testutils.h: Add spaces
between literal strings and macros which expand to literal strings
for C++11 compatibility.
Thu Apr 30 14:41:59 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc,backends/glass/glass_table.cc: Remove
duplicate includes of "omassert.h".
Thu Apr 30 14:41:31 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_freelist.cc: Add missing explicit include of
"omassert.h",
Thu Apr 30 14:38:06 GMT 2015 Olly Betts <olly@survex.com>
* HACKING,backends/chert/chert_table.cc,
backends/chert/chert_version.cc,backends/glass/glass_table.cc,
common/omassert.h: Remove CompileTimeAssert() and just use
C++11's static_assert instead.
Thu Apr 30 14:28:10 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_freelist.cc: Drop conditionals for GCC >= 3.4
as we now require >= 4.4.
Thu Apr 30 14:26:13 GMT 2015 Olly Betts <olly@survex.com>
* api/omdatabase.cc,include/xapian/queryparser.h,
tests/harness/backendmanager.h: Drop workarounds for ancient Sun
C++ compilers, as we now require a recent version for C++11 support.
Thu Apr 30 14:22:46 GMT 2015 Olly Betts <olly@survex.com>
* INSTALL: IRIX is past EOL so drop information about IRIX make.
Thu Apr 30 14:22:10 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: OS X >= 10.4 apparently supports symbol visibility, so
update comment.
Thu Apr 30 14:21:37 GMT 2015 Olly Betts <olly@survex.com>
* common/unordered_map.h: No longer relevant now we require C++11.
Thu Apr 30 13:59:16 GMT 2015 Olly Betts <olly@survex.com>
* HACKING,INSTALL,configure.ac,xapian-config.in: Require a C++
compiler - the minimum required GCC version is now probably GCC 4.4.
Thu Apr 30 13:48:54 GMT 2015 Olly Betts <olly@survex.com>
* xapian-config.in: Remove superfluous comment left over from code
refactoring.
Thu Apr 30 13:47:30 GMT 2015 Olly Betts <olly@survex.com>
* xapian-config.in: Fix the include directory reported by --swigflags
for an installed copy to include the "/xapian-1.3" component for
a development version.
Thu Apr 30 12:34:14 GMT 2015 Olly Betts <olly@survex.com>
* api/omenquire.cc: Fix for C++11 where AutoPtr is unique_ptr.
Thu Apr 30 12:20:22 GMT 2015 Olly Betts <olly@survex.com>
* api/replication.cc,backends/chert/chert_database.cc,
backends/chert/chert_table.cc,backends/chert/chert_version.cc,
backends/glass/,backends/remote/remote-database.cc,bin/,
examples/copydatabase.cc,examples/quest.cc,
examples/xapian-metadata.cc,net/tcpclient.cc,
queryparser/queryparser.lemony: Add spaces between literal strings
and macros which expand to literal strings for C++11 compatibility.
Thu Apr 30 12:17:17 GMT 2015 Olly Betts <olly@survex.com>
* bin/xapian-tcpsrv.cc: Use STRINGIZE() to include defaults literally
in string for --help.
Thu Apr 30 10:48:11 GMT 2015 Olly Betts <olly@survex.com>
* HACKING: Update URL.
Thu Apr 30 10:47:10 GMT 2015 Olly Betts <olly@survex.com>
* m4/ax_cxx_compile_stdcxx_11.m4: Add support for HP's aCC (untested
as I no longer have access to this compiler).
Thu Apr 30 05:30:13 GMT 2015 Olly Betts <olly@survex.com>
* m4/ax_cxx_compile_stdcxx_11.m4: Add macro from autoconf-archive to
detect any compiler options needed to enable C++11 support (not yet
used).
Thu Apr 30 05:14:56 GMT 2015 Olly Betts <olly@survex.com>
* common/posixy_wrapper.cc: O_RDONLY, etc are better described as
"POSIX" than "ANSI".
Thu Apr 30 05:12:33 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac,xapian-config.in: Rename ANSI_CXXFLAGS to ISO_CXXFLAGS
and talk about ISO C++ in configure messages.
Thu Apr 30 05:10:40 GMT 2015 Olly Betts <olly@survex.com>
* .gitignore: Adjust for m4 subdirectory to only match files which
aren't in git.
Thu Apr 30 04:07:05 GMT 2015 Olly Betts <olly@survex.com>
* xapian-config.in: Fix typo so cached result of test in
is_uninstalled() is actually used on subsequent calls. Fixes #676,
reported (with patch) by Ryan Schmidt.
Wed Apr 29 03:00:32 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/glass/glass_database.cc:
Fix get_changeset_revisions() not to potentially read uninitialised
data if a changeset file is truncated.
Wed Apr 29 00:09:57 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_databasereplicator.cc: Use return value of
get_message_chunk() rather than ignoring it and repeating the check
in the caller.
Tue Apr 28 22:22:01 GMT 2015 Olly Betts <olly@survex.com>
* bin/xapian-progsrv.cc: Fix comment typo.
Tue Apr 28 04:51:33 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.cc,backends/chert/chert_table.cc,
backends/glass/glass_cursor.cc,backends/glass/glass_table.cc:
Potentially increment the cursor version on cancel() or when the
database is reopened, and flag the current cursor version as used
when a cursor is rebuilt. Fixes #675, reported by Germán M. Bravo.
* tests/api_backend.cc: Add regression test cursorbug1 based on
reproducer supplied by Germán.
Thu Apr 23 05:25:48 GMT 2015 Olly Betts <olly@survex.com>
* matcher/exactphrasepostlist.cc: When matching an exact phrase, if a
term doesn't occur where we want, we can advance "term 0" using
skip_to() based on where the term does next occur rather than just
calling next() on it.
Thu Apr 23 05:03:28 GMT 2015 Olly Betts <olly@survex.com>
* matcher/nearpostlist.cc: Be lazier about opening PositionList
objects, as that causes a read of all the data for that
positionlist.
Thu Apr 23 04:11:30 GMT 2015 Olly Betts <olly@survex.com>
* matcher/nearpostlist.cc: Make code for scanning window for duplicate
positions a little clearer.
Wed Apr 22 13:52:55 GMT 2015 Olly Betts <olly@tartarus.org>
* matcher/nearpostlist.cc: Fix "/*" within comment.
Wed Apr 22 12:53:37 GMT 2015 Olly Betts <olly@survex.com>
* matcher/nearpostlist.cc,matcher/nearpostlist.h: Reimplement OP_NEAR
check. The new implementation consistently requires the terms to
occur at different positions, and fixes some false negatives.
* tests/api_query.cc: Add regression tests as loosenear1.
Mon Apr 20 12:53:04 GMT 2015 Olly Betts <olly@survex.com>
* matcher/phrasepostlist.cc,matcher/phrasepostlist.h: Reimplement
OP_PHRASE check for loose phrases - the existing implementation was
buggy, giving both false positives and false negatives in rare
cases. Fixes #653, reported by Jean-Francois Dockes.
* tests/api_query.cc: Add regression test loosephrase1.
Thu Apr 16 06:51:31 GMT 2015 Olly Betts <olly@survex.com>
* common/errno_to_string.cc: Fix to build with Sun's C++ compiler.
Thu Apr 16 06:43:40 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: Fix XAPIAN_TEST_CXXFLAGS macro to append to the
existing value of the variable, not its name.
Wed Apr 15 11:36:40 GMT 2015 Olly Betts <olly@tartarus.org>
* tests/api_wrdb.cc: Just #ifdef out the problematic part of the
adddoc5 testcase for clang.
Wed Apr 15 06:25:13 GMT 2015 Olly Betts <olly@survex.com>
* common/serialise-double.cc: Fix bug in recent fix.
* tests/unittest.cc: Extend serialise_double() to provide regression
test.
Thu Apr 09 00:40:24 GMT 2015 Olly Betts <olly@survex.com>
* net/remoteconnection.h: Avoid compiler warning from clang in new
getaddrinfo() code.
Wed Apr 08 11:59:00 GMT 2015 Olly Betts <olly@survex.com>
* common/serialise-double.cc: Add missing cast to unsigned char when
we check if the value will fit in the double type. On machines with
IEEE-754 doubles (which is most current platforms), which change
makes no difference as we're checking if the value cast to a double
is > 255.<something> which is never the case.
Wed Apr 08 10:42:43 GMT 2015 Olly Betts <olly@survex.com>
* common/serialise-double.cc: Avoid reading one byte past the end of
the serialised value. In practice this was harmless on most
platforms, as dbl_max_mantissa is 255 for IEEE-754 format doubles,
and at least GCC's std::string keeps the buffer nul-terminated.
Reported by Germán M. Bravo in github PR#67.
* tests/unittest.cc: Copy the serialised value to a temporary buffer
before calling unserialise_double() so that valgrind can detect if
we read one byte past the end.
Tue Apr 07 23:02:21 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/: Fix problems with get_unique_terms() on a modified
chert database.
* tests/: Add more test coverage for get_unique_terms().
Mon Apr 06 00:22:22 GMT 2015 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_multi.cc,
tests/harness/backendmanager_remote.cc: Cleaner code for checking
the backend subtype.
Mon Mar 30 03:22:29 GMT 2015 Olly Betts <olly@survex.com>
* backends/flint_lock.cc: If available, use F_DUPFD to dup to a file
descriptor which is >= 2.
Mon Mar 30 01:16:06 GMT 2015 Olly Betts <olly@survex.com>
* api/error.cc,common/safenetdb.h,configure.ac,generate-exceptions,
net/remoteconnection.h,net/tcpclient.cc,net/tcpserver.cc: Use
getaddrinfo() instead of gethostbyname(), as a step towards
IPv6 support (currently we still only look for IPv4 addresses).
See #374.
Sun Mar 29 03:56:12 GMT 2015 Olly Betts <olly@survex.com>
* Makefile.am,docs/Makefile.am: Add missing quoting.
Mon Mar 23 06:33:39 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc,backends/glass/glass_table.cc,
common/io_utils.cc,common/io_utils.h,tests/api_backend.cc:
Avoid using fds < 3 for writable database tables, as it risks
corruption is some code in the same process tries to write to stdout
or stderr without realising it is closed. (Partly addresses #651)
Sat Mar 21 22:11:53 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_cursor.cc: Add comment warning that B can't be
used in GlassCursor's destructor.
Tue Mar 17 03:51:00 GMT 2015 Olly Betts <olly@survex.com>
* matcher/exactphrasepostlist.cc: Fixed reversed conditonal for
picking the shorter position list for an exact phrase of two terms.
The difference this fix makes isn't dramatic, but can be measured
(at least with cachegrind). Thanks to kbwt for spotting this.
Fri Mar 13 11:21:37 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_compact.cc: Make sure we open all the tables of
a database at the same revision when compacting. (Fixes #649)
Thu Mar 12 04:09:07 GMT 2015 Olly Betts <olly@survex.com>
* examples/xapian-metadata.cc: Add 'list' subcommand to list all the
metadata keys.
Mon Mar 09 03:08:14 GMT 2015 Olly Betts <olly@survex.com>
* include/xapian/constants.h,include/xapian/queryparser.h: Doxygen
comment wording tweaks.
Mon Mar 09 03:07:36 GMT 2015 Olly Betts <olly@survex.com>
* include/xapian/constants.h,include/xapian/queryparser.h,
include/xapian/weight.h: Doxygen comment formatting tweaks.
Sat Mar 07 11:27:23 GMT 2015 Olly Betts <olly@tartarus.org>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Extend the
set of characters allowed in the start of a range to be anything
except for '(' and characters <= ' '. This better matches what's
accepted for a range end (anything except for ')' and characters <=
' '). Reported by Jani Nikula.
Thu Mar 05 11:13:56 GMT 2015 Olly Betts <olly@survex.com>
* backends/dbcheck.cc: When checking a single table, handle the
".glass" extension on glass database tables, and use the extension
to guide the decision of which backend the table is from.
Thu Mar 05 04:38:21 GMT 2015 Olly Betts <olly@survex.com>
* backends/dbcheck.cc: Don't hard-code string length as number.
Mon Feb 23 04:48:24 GMT 2015 Olly Betts <olly@survex.com>
* api/emptypostlist.cc,api/emptypostlist.h: Fix handling of
OP_WILDCARD which expands to no terms when used under OP_SYNONYM.
* tests/api_query.cc: Regression test dualprefixwildcard1.
Mon Feb 23 04:26:52 GMT 2015 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Fix compilation issue with previous
change.
Thu Feb 19 08:04:17 GMT 2015 Olly Betts <olly@survex.com>
* tests/api_anydb.cc,tests/api_nodb.cc,tests/harness/testrunner.cc,
tests/harness/testsuite.cc,tests/stemtest.cc: Use std::string's
assign() or construct from substring rather than assigning or
initialising with the result of calling substr().
Tue Feb 17 18:31:25 GMT 2015 Olly Betts <olly@survex.com>
* include/Makefile.mk: Ship new file from previous commit.
Tue Feb 17 05:14:02 GMT 2015 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/constinfo.cc,api/version.cc,include/xapian.h,
include/xapian/constinfo.h,include/xapian/stem.h,languages/stem.cc:
Put the list of stemmers into the vinfo struct and renamed it to
const_info.
Mon Feb 16 10:18:51 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac,languages/: Merge generate-allsnowballheaders script
into collate-sbl.
Mon Feb 16 04:15:46 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_check.cc: Fix xapian-check on a single table.
Fri Feb 13 10:18:45 GMT 2015 Olly Betts <olly@survex.com>
* generate-exceptions: Note that the change to not negate
WSAGetLastError() values internally was backported for 1.2.20.
Fri Feb 13 05:57:13 GMT 2015 Olly Betts <olly@survex.com>
* api/,common/remoteprotocol.h,exception_data.pm,
include/xapian/query.h,include/xapian/queryparser.h,matcher/,
queryparser/queryparser.lemony,tests/api_qpbackend.cc,
tests/queryparsertest.cc,weight/weightinternal.cc,
weight/weightinternal.h: Add new OP_WILDCARD query operator, which
expands wildcards lazily, so now we create the PostList tree for a
wildcard directly, rather than creating an intermediate Query tree.
See ticket#48.
Wed Feb 11 22:45:26 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_table.cc: mid_point() should never fail to find
a split point, but just in case it does, return a usable answer.
Wed Feb 11 22:44:35 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc: mid_point() should never fail to find
a split point, but just in case it does, return a usable answer.
Mon Feb 09 02:56:54 GMT 2015 Olly Betts <olly@survex.com>
* api/queryinternal.cc,matcher/localsubmatch.cc,
matcher/localsubmatch.h,matcher/queryoptimiser.h,tests/api_query.cc:
Don't convert an unweighted term which indexes all docs to an all
docs postlist if we need positional data for it.
Sun Jan 25 23:48:34 GMT 2015 Olly Betts <olly@survex.com>
* configure.ac: Check for declaration of fdatasync() first, as OS X
has a dummy implementation in the library which is not prototyped in
any header. Reported by Vlad Shablinsky.
Fri Jan 09 05:19:20 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_freelist.cc: Fix freelist handling to allow for
the newly loaded first block of the freelist being already used up.
Fri Jan 09 04:38:03 GMT 2015 Olly Betts <olly@survex.com>
* common/debuglog.cc: Add '#include "errno_to_string.h"'.
Thu Jan 08 05:59:01 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_compact.cc: Fix compaction of position tables
for the change in key format.
Tue Jan 06 02:22:37 GMT 2015 Olly Betts <olly@survex.com>
* HACKING: Now using automake 1.15 and libtool 2.4.4.
Mon Jan 05 08:39:47 GMT 2015 Olly Betts <olly@survex.com>
* Makefile.am: Remove the generated .pc file on "make distclean".
Mon Jan 05 04:43:35 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_table.cc: In enter_key(), we know the insertion
point will be the position after the current cursor position, so
there's no need to call find_in_block() to locate it.
Mon Jan 05 04:42:17 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_table.cc: More assertions that c is valid.
Mon Jan 05 01:52:54 GMT 2015 Olly Betts <olly@survex.com>
* backends/chert/chert_dbcheck.cc,backends/glass/glass_dbcheck.cc:
Cross-check the position and postlist tables and report positional
data for non-existent documents.
Mon Jan 05 01:28:28 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_dbcheck.cc: Fix decoding of positionlist keys -
this hadn't been updated for the key format change.
Mon Jan 05 01:25:17 GMT 2015 Olly Betts <olly@survex.com>
* backends/glass/glass_check.cc: Check that dir_end is odd.
Tue Dec 23 21:26:49 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc: More assertions about c.
Tue Dec 23 04:26:38 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc: Fix assertion to allow for c being
DIR_START - D2 in leaf blocks.
Tue Dec 23 04:01:54 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc: Add more assertions that c has
suitable values.
Tue Dec 23 03:58:00 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc: In enter_key(), we know the insertion
point will be the position after the current cursor position, so
there's no need to call find_in_block() to locate it.
Tue Dec 23 03:11:12 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_check.cc: Add check that dir_end is odd.
Mon Dec 22 23:28:54 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc: Document situations in which the
cursor can be left pointing before DIR_START.
Mon Dec 22 03:39:14 GMT 2014 Olly Betts <olly@survex.com>
* backends/glass/glass_freelist.cc: Add more freelist assertions.
Mon Dec 22 03:15:50 GMT 2014 Olly Betts <olly@survex.com>
* backends/glass/glass_freelist.cc: Allow restricting the number of
freelist entries per block by setting GLASS_FREELIST_SIZE.
Sun Dec 21 20:55:47 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/weight.h: Document the enum stat_flags values.
Sun Dec 21 20:51:47 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/weight.h: Fix indentation.
Sat Dec 20 10:40:44 GMT 2014 Sébastien Debrard <sebastien.debrard@gmail.com>
* Makefile.am,configure.ac,pkgconfig/,xapian-core.spec.in: Generate a
file for pkg-config. (Fixes#540)
Fri Dec 19 22:30:39 GMT 2014 Olly Betts <olly@survex.com>
* common/errno_to_string.cc: Need stdlib.h under mingw.
Fri Dec 19 04:38:56 GMT 2014 Olly Betts <olly@survex.com>
* backends/glass/glass_check.cc: Distinguish between a block in use
and in the freelist, and a block in the freelist more than once.
Fri Dec 19 04:37:14 GMT 2014 Olly Betts <olly@survex.com>
* backends/glass/glass_freelist.cc,backends/glass/glass_freelist.h:
Avoid any mutual recursion between GlassFreeList::get_block() and
GlassFreeList::mark_block_unused().
Thu Dec 18 10:28:17 GMT 2014 Olly Betts <olly@survex.com>
* common/safesyssocket.h: Include safeerrno.h when we use errno.
Thu Dec 18 06:17:18 GMT 2014 Olly Betts <olly@survex.com>
* net/tcpclient.cc: Use POSIX O_NONBLOCK in preference to O_NDELAY
which has different semantics on BSD and System V.
Wed Dec 17 02:59:54 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Drop probe for gethostbyaddr() - we've not used it for
over 8.5 years (since e33972a5).
Wed Dec 17 02:33:36 GMT 2014 Olly Betts <olly@survex.com>
* common/internaltypes.h: Take CHAR_BIT into account when choosing
types for uint2, uint4 and uint8.
Wed Dec 17 02:30:14 GMT 2014 Olly Betts <olly@survex.com>
* api/error.cc,backends/chert/chert_btreebase.cc,
backends/chert/chert_table.cc,backends/flint_lock.cc,
backends/glass/glass_table.cc,common/,configure.ac,
net/remoteconnection.cc: Add errno_to_string() function which is
thread-safe where a suitable alternative to strerror() exists.
Tue Dec 16 06:54:32 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Add missing m4 quoting. Generated configure file is
unchanged.
Tue Dec 16 06:28:21 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Don't check for strerror - it's specified by C89, and
we weren't using the result of the check anyway.
Tue Dec 16 03:59:39 UTC 2014 Sébastien Debrard <sebastien.debrard@gmail.com>
* api/omenquire.cc,backends/multi/multi_postlist.cc,
tests/api_anydb.cc,tests/api_db.cc: Prefer ++x to x++.
Tue Dec 16 03:50:41 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Define MINGW_HAS_SECURE_API under mingw to get
_putenv_s() declared in stdlib.h.
Sun Dec 14 09:42:01 GMT 2014 Olly Betts <olly@survex.com>
* api/omdatabase.cc,include/xapian/database.h: Make overloaded forms of
Database::allterms_begin() and Database::allterms_end() use default
parameters instead.
Sat Dec 13 02:48:10 GMT 2014 Olly Betts <olly@survex.com>
* api/error.cc,generate-exceptions,net/remoteconnection.h: On
Windows, avoid defining EADDRINUSE, etc if they're already defined,
and use WSAE* constants un-negated, as they start from a high value
so won't collide with E* constants.
Fri Dec 12 03:41:02 GMT 2014 Olly Betts <olly@survex.com>
* backends/glass/glass_freelist.cc: Avoid infinite recursion when we
hit the end of the freelist block we're reading and the end of the
block we're writing at the same time.
Thu Dec 11 20:45:28 GMT 2014 Olly Betts <olly@survex.com>
* backends/glass/glass_version.cc: Use str() rather than sprintf().
Thu Dec 11 03:21:46 GMT 2014 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Fix comment.
Thu Dec 11 03:20:56 GMT 2014 Olly Betts <olly@survex.com>
* api/compactor.cc,api/error.cc,api/replication.cc,
backends/chert/chert_databasereplicator.cc,
backends/chert/chert_table.cc,
backends/glass/glass_databasereplicator.cc,
backends/glass/glass_table.cc: Remove unnecessary includes of
<cstdio> in files which used to need it for rename() but no longer
do.
Fri Dec 05 11:30:05 GMT 2014 Olly Betts <olly@survex.com>
* ChangeLog,ChangeLog.0,ChangeLog.examples,
backends/chert/chert_btreebase.cc,backends/chert/chert_database.h,
languages/compiler/driver.c,languages/turkish.sbl: Fix typos reported
by Veres Lajos.
Thu Dec 04 02:17:46 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Fix detection of fdatasync(), which appears to have
been broken practically forever - this means we've probably been
using fsync() instead, which probably isn't a big additional
overhead.
Wed Dec 03 09:38:24 GMT 2014 Olly Betts <olly@survex.com>
* docs/Makefile.am: Quote png filenames we run through pngcrush to
avoid problems if there's an oddly-named extra PNG file in the
directory.
Tue Dec 02 02:58:59 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_database.h,
backends/chert/chert_databasereplicator.cc,backends/,
backends/glass/glass_compact.cc,backends/glass/glass_database.cc,
backends/glass/glass_databasereplicator.cc,
backends/remote/remote-database.cc,backends/remote/remote-database.h,
include/xapian/constants.h,include/xapian/database.h,
include/xapian/dbfactory.h,net/,tests/api_backend.cc: Add new flag
Xapian::DB_RETRY_LOCK which allows opening a database for writing
to wait until it can get a write lock. (fixes#275)
Tue Dec 02 02:55:33 GMT 2014 Olly Betts <olly@survex.com>
* backends/glass/glass_database.h: Document parameter to internal
method
Sun Nov 30 15:55:20 GMT 2014 James Aylett <james@tartarus.org>
* HACKING: improve OS X docs build information.
Thu Nov 27 04:00:38 GMT 2014 Olly Betts <olly@survex.com>
* backends/dbcheck.cc,backends/flint_lock.cc,backends/flint_lock.h,
examples/copydatabase.cc,tests/api_backend.cc: Drop support code for
building on OS/2 with EMX - EMX was last updated in 2001 and comes
with GCC 3.2.1, which pre-dates C++11 and we're going to require
a compiler with good C++11 support in the near future.
Thu Nov 27 03:15:51 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Rename svn-ci to xapian-commit (see #621).
Thu Nov 27 03:05:18 GMT 2014 Olly Betts <olly@survex.com>
* backends/flint_lock.cc: Use F_OFD_SETLK where available, which
avoids having to fork() a child process to hold the lock. This
currently requires Linux kernel >= 3.15, but it has been submitted
to POSIX so hopefully will be widely supported eventually. Thanks
to Austin Clements for pointing out this now exists.
Wed Nov 26 04:03:45 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/geospatial.h: Drop documentation of parameter which
the method doesn't actually take.
Wed Nov 26 04:03:24 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Fix incorrect parameter name in doxygen
comment.
Wed Nov 26 03:29:28 GMT 2014 Olly Betts <olly@survex.com>
* docs/doxygen_source.conf.in: @MAKEINDEX@ isn't substituted, so just
use literal 'makeindex'.
Wed Nov 26 03:28:32 GMT 2014 Olly Betts <olly@survex.com>
* docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Update to
avoid warnings about obsolete tags from newer doxygen.
Tue Nov 25 21:13:51 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Update link to cygwin FAQ.
Tue Nov 25 01:55:17 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Update details of building Xapian packages.
Tue Nov 25 01:48:44 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Update for SVN to git migration.
Mon Nov 24 19:50:32 GMT 2014 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update for 1.3.2.
Mon Nov 24 03:59:02 GMT 2014 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Add missing '\' at end of line in previous
commit.
Mon Nov 24 03:14:22 GMT 2014 Olly Betts <olly@survex.com>
* languages/: Install the stopword lists as
${pkgdatadir}/stopwords/LANG.list.
Sun Nov 23 23:56:02 GMT 2014 Olly Betts <olly@survex.com>
* HACKING,INSTALL,NEWS,NEWS.SKELETON,api/compactor.cc,
api/replication.cc,backends/Makefile.mk,backends/brass/,
backends/databasereplicator.cc,backends/dbcheck.cc,
backends/dbfactory.cc,backends/glass/,bin/Makefile.mk,
common/Makefile.mk,common/pack.h,common/pretty.h,configure.ac,docs/,
include/xapian/,net/replication_protocol.rst,tests/,tests/harness/:
Rename 'brass' backend to 'glass'.
Sun Nov 23 22:23:00 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_freelist.cc,backends/brass/brass_freelist.h:
Set the revision in BrassFreeList::write_block().
Thu Nov 20 21:36:35 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_freelist.h: Reset flw_appending when we unpack
a freelist.
Thu Nov 20 21:36:15 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_freelist.cc: Fix comment typo.
Thu Nov 20 03:53:32 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_freelist.cc: Fix end-of-block condition when
walking the freelist during database consistency checking.
Thu Nov 20 02:32:37 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_freelist.cc: Wrap comment line.
Thu Nov 20 02:31:54 GMT 2014 Olly Betts <olly@survex.com>
* matcher/exactphrasepostlist.cc: Straighten out confusing comments.
Sun Nov 16 23:49:38 GMT 2014 Olly Betts <olly@survex.com>
* NEWS: Update.
Thu Nov 13 20:35:25 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_freelist.cc: Wrap comment line.
Tue Nov 11 22:17:48 GMT 2014 Olly Betts <olly@survex.com>
* api/queryinternal.cc,api/queryinternal.h: Move all the get_op()
definitions out of the header as they're virtual and there's not
much scope for devirtualisation.
Tue Nov 11 02:58:05 GMT 2014 Olly Betts <olly@survex.com>
* exception_data.pm: Just have one copy of the licence boilerplate.
Sun Nov 09 22:38:04 GMT 2014 Olly Betts <olly@survex.com>
* NEWS: Update.
Fri Nov 07 00:49:22 GMT 2014 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Sync change from upstream: "Modify the
%nonassoc directive in lemon so that it generates a run-time error
rather than a parsing conflict. This changes is due to a bug report
on the mailing list. SQLite does not use the %nonassoc directive in
its grammar so this change does not affect SQLite." Generated code
is identical.
Fri Nov 07 00:44:57 GMT 2014 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Sync change from upstream: "Fix harmless
compiler warning in LEMON." Generated code is identical.
Fri Nov 07 00:39:44 GMT 2014 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Sync change from upstream: "In LEMON, limit the
size of the grammar file to 100MB. This ensures that the program
will never experience integer overflow. To be doubly sure, use
calloc() instead of malloc() when allocating arrays." Generated code
is identical.
Fri Nov 07 00:34:26 GMT 2014 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Sync change from upstream: "Add the
"%token_class" directive to the LEMON parser generator. This opens
up the possibility of simplifying the parser. Also remove all calls
to sprintf(), strcpy(), and strcat() from LEMON to avoid compiler
warnings on OpenBSD. (Aside: It is this change to avoid harmless
compiler warnings that was the cause of the reason spat of bugs.)"
Generated code is identical aside from whitespace changes in
queryparser_token.h.
Fri Nov 07 00:17:18 GMT 2014 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Sync change from upstream: "In Lemon, when
comparing the output to the *.h file to see if it has changed, make
sure that the proposed new output and the preexisting output are the
same size before deciding that they are the same". Generated code
is identical, but this will fix misbehaviour in a build from a
non-clean tree if new tokens get appended to queryparser_token.h.
Thu Nov 06 22:23:27 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Now using doxygen 1.8.8.
Thu Nov 06 04:18:32 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Now using libtool 2.4.3.
Wed Nov 05 21:38:45 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_check.cc: Handle DBCHECK_FIX for a zero sized
.DB file.
Wed Nov 05 21:02:21 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_check.cc: After we successfully regenerate
baseA, remove any empty baseB file to prevent it causing problems.
Tracked down with help from Phil Hands.
Wed Nov 05 20:58:27 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_check.cc: Fix DBCHECK_FIX to be able to find a
level 0 root block (happens when a table has sufficiently little
data in that it all fits in one block).
Sun Nov 02 21:14:43 GMT 2014 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Fix typo.
Tue Oct 28 23:35:10 GMT 2014 Olly Betts <olly@survex.com>
* docs/replication.rst: Fix typo.
Tue Oct 28 02:34:54 GMT 2014 Olly Betts <olly@survex.com>
* docs/postingsource.rst: Use a modern class in postingsource example.
(Noted by James Aylett)
Mon Oct 27 21:06:55 GMT 2014 Olly Betts <olly@survex.com>
* docs/,net/Makefile.mk,net/remote_protocol.rst,
net/replication_protocol.rst: Move the protocol docs for the remote
and replication protocols into the net/ subdirectory.
Mon Oct 27 19:19:59 GMT 2014 Olly Betts <olly@survex.com>
* Makefile.am,api/Makefile.mk,api/dir_contents,backends/Makefile.mk,
backends/brass/Makefile.mk,backends/brass/dir_contents,
backends/chert/Makefile.mk,backends/chert/dir_contents,
backends/dir_contents,backends/inmemory/Makefile.mk,
backends/inmemory/dir_contents,backends/multi/Makefile.mk,
backends/multi/dir_contents,backends/remote/Makefile.mk,
backends/remote/dir_contents,bin/Makefile.mk,bin/dir_contents,
common/Makefile.mk,common/dir_contents,configure.ac,dir_contents,
docs/,examples/Makefile.mk,examples/dir_contents,expand/Makefile.mk,
expand/dir_contents,geospatial/Makefile.mk,geospatial/dir_contents,
include/Makefile.mk,include/dir_contents,include/xapian/dir_contents,
languages/Makefile.mk,languages/dir_contents,m4-macros/dir_contents,
m4/dir_contents,matcher/Makefile.mk,matcher/dir_contents,
net/Makefile.mk,net/dir_contents,preautoreconf,
queryparser/Makefile.mk,queryparser/dir_contents,tests/Makefile.am,
tests/dir_contents,tests/harness/Makefile.mk,
tests/harness/dir_contents,tests/perftest/Makefile.mk,
tests/perftest/dir_contents,tests/soaktest/Makefile.mk,
tests/soaktest/dir_contents,unicode/Makefile.mk,unicode/dir_contents,
weight/Makefile.mk,weight/dir_contents: Remove the dir_contents files
and all the machinery to handle them.
Sat Oct 25 19:25:06 GMT 2014 Olly Betts <olly@survex.com>
* api/query.cc,api/queryinternal.cc,api/smallvector.h,
include/xapian/query.h: Stop using a reference where we may end up
passing *NULL, as that's invalid. Thanks Nick Lewycky and ubsan
for helping track this down.
* tests/api_postingsource.cc: Fix testsuite to avoid passing literal
NULL - pass nullptr for C++11 and don't bother with that part of
the testcase for older C++.
Sat Oct 25 19:05:07 GMT 2014 Olly Betts <olly@survex.com>
* weight/dlhweight.cc,weight/dphweight.cc: Avoid dividing by zero when
the collection size is 0.
Fri Oct 24 23:04:24 GMT 2014 Gaurav Arora <gauravarora.daiict@gmail.com>
* api/registry.cc,include/xapian/weight.h,tests/api_backend.cc,
tests/api_nodb.cc,tests/api_weight.cc,weight/Makefile.mk,
weight/lmweight.cc: Add Unigram LMWeight class.
Tue Oct 21 19:19:32 GMT 2014 Olly Betts <olly@survex.com>
* NEWS: Update for 1.2.19 release.
Mon Oct 20 00:47:32 GMT 2014 Olly Betts <olly@survex.com>
* .gitignore,docs/.gitignore,tests/.gitignore,unicode/.gitignore:
Update to ignore new generated files.
Sat Oct 18 06:15:52 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Don't provide a default expansion scheme
name in Enquire::set_expansion_scheme().
Fri Oct 17 00:33:55 GMT 2014 Olly Betts <olly@survex.com>
* api/queryinternal.cc,matcher/: Split NearPostList out into separate
source file and header.
Wed Oct 15 04:33:31 GMT 2014 Olly Betts <olly@survex.com>
* api/queryinternal.cc,matcher/exactphrasepostlist.cc: We never try to
build an ExactPhrasePostList over 0 or 1 terms, so simply assert we
don't, rather than having an explicit check for it in the code.
Tue Oct 14 02:47:02 GMT 2014 Olly Betts <olly@survex.com>
* matcher/phrasepostlist.cc,tests/api_backend.cc: If the anchor term
for a phrase is the first or last, set the min or max to its
position respectively. Fixes the testcase in #657, but may not be
a complete fix.
Sun Oct 12 12:03:10 GMT 2014 Olly Betts <olly@survex.com>
* NEWS: Update.
Fri Oct 10 10:53:38 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc: The
table is sync-ed after the base file, so it's the last table we want
to full-sync, not the last base file.
Thu Oct 09 02:39:00 GMT 2014 Olly Betts <olly@survex.com>
* common/debuglog.h: Suppress unused typedef warnings from debugging
logging macros, which occur in functions which always exit via
throwing an exception.
Thu Oct 09 01:45:00 GMT 2014 Olly Betts <olly@survex.com>
* tests/harness/fdtracker.cc: Fix code typo in recent change to skip
apparent leaks of /dev/urandom.
Thu Oct 09 01:43:02 GMT 2014 Olly Betts <olly@survex.com>
* common/pretty.h: Fix debug logging code to compile with clang.
(fixes #657, reported by Germán M. Bravo)
Wed Oct 08 04:43:05 GMT 2014 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: If an empty RSet is specified, just handle it
as if no RSet were specified.
Mon Oct 06 21:41:58 GMT 2014 Olly Betts <olly@survex.com>
* tests/Makefile.am: Remove .replicatmp upon "make clean".
Fri Sep 19 05:31:15 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Fix compilation with clang. Reported by
Germán M. Bravo.
Fri Sep 12 17:54:34 GMT 2014 Olly Betts <olly@survex.com>
* docs/overview.rst: Add missing database path to example of using
xapian-progsrv in a stub database file.
Thu Sep 11 21:33:49 GMT 2014 Olly Betts <olly@survex.com>
* include/Makefile.mk,include/xapian/enquire.h,
include/xapian/iterator.h: Add simple API to help with creating
language-idiomatic iterator wrappers.
Wed Sep 10 17:02:18 GMT 2014 Olly Betts <olly@survex.com>
* api/queryinternal.cc: If we hit an unknown query serialisation,
report the numeric code for it in the exception thrown.
Wed Sep 10 16:59:20 GMT 2014 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Enable some disabled cases which actually
work (in some cases with slightly tweaked expected answers which are
equivalent to those that were shown).
Fri Sep 05 17:41:53 GMT 2014 Olly Betts <olly@survex.com>
* tests/harness/fdtracker.cc: Don't report apparent leaks of fds
opened on /dev/urandom - at least on Linux, something in the C
library seems to lazily open it, and the report of a possible leak
followed by assurance that it's OK really is just noise we could
do without.
Fri Sep 05 14:06:08 GMT 2014 Olly Betts <olly@survex.com>
* common/pretty.h: Add new brass-related types.
Thu Sep 04 20:51:16 GMT 2014 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: Fix incorrect return type in logging
annotations for InMemory::open().
Thu Sep 04 20:48:37 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,backends/chert/chert_database.cc:
Fix logging annotations for get_freqs() to reflect that it now has
void return type.
Thu Sep 04 20:21:32 GMT 2014 Olly Betts <olly@survex.com>
* api/,backends/brass/,backends/chert/,backends/dbfactory_remote.cc,
matcher/mergepostlist.cc,matcher/remotesubmatch.cc,
net/progclient.cc: Add missing RETURN() markup for debug logging,
highlighted by warning from recent GCC.
Thu Sep 04 18:02:38 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_freelist.cc,backends/brass/brass_freelist.h:
Make the BrassTable parameter a const pointer.
Thu Sep 04 17:13:57 GMT 2014 Olly Betts <olly@survex.com>
* common/io_utils.cc: Reading or writing a block will almost always
complete in one call, so streamline that case.
Wed Sep 03 19:30:00 GMT 2014 Olly Betts <olly@survex.com>
* common/internaltypes.h: Update comment to reflect C++11 now being
out.
Wed Sep 03 19:29:09 GMT 2014 Olly Betts <olly@survex.com>
* common/internaltypes.h,configure.ac: Make uint2 available.
Wed Sep 03 19:27:41 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_database.h: Remove method which is declared but
never defined.
Wed Sep 03 18:52:40 GMT 2014 Olly Betts <olly@survex.com>
* generate-exceptions,include/xapian/: Use XAPIAN_IN_XAPIAN_H rather
than XAPIAN_INCLUDED_XAPIAN_H in the direct inclusion of subheader
checks. Currently neither will catch the case of the user including
a sub-header after <xapian.h> since the include guard for the
subheader will stop us getting to the direct inclusion check, but
XAPIAN_IN_XAPIAN_H will work if we move the check outside the
include guard.
Wed Sep 03 18:29:41 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/constants.h: Hide internal constants from external
users.
Tue Sep 02 14:15:50 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_spellingwordslist.h: Explicit include
brass_cursor.h since we actually use BrassCursor here.
Mon Sep 01 22:03:11 GMT 2014 Olly Betts <olly@survex.com>
* tests/api_backend.cc: New testcase readonlyparentdir1 to ensure that
commit works with a read-only parent directory.
Mon Sep 01 21:51:45 GMT 2014 Olly Betts <olly@survex.com>
* tests/harness/testrunner.h: Drop "flint" flag - flint was removed
from trunk some time ago.
Mon Sep 01 21:42:31 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/: Eliminate brass_doclen_t in favour of just using
Xapian::termcount.
Mon Sep 01 21:28:39 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_check.h: Tweak to ease upcoming big merge.
Mon Sep 01 20:59:40 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/,backends/dbcheck.cc: Only create a btree entry for
the document data if it is non-empty. The table is now lazily
created, so won't exist if no documents have document data set.
Mon Sep 01 16:54:44 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_record.cc,backends/brass/brass_record.h: Remove
BrassRecordTable::get_doccount() as it is no longer used.
Mon Sep 01 16:51:04 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/: Track doccount in the database stats.
Mon Sep 01 16:27:15 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc: Update comment and exception
message not to talk about "consistent state", as that was to do
with the base files.
Mon Sep 01 14:57:02 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc: Explicitly include brass_defs.h.
Mon Sep 01 14:48:01 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/: Eliminate backends/brass/brass_types.h.
Fri Aug 29 21:06:22 GMT 2014 Olly Betts <olly@survex.com>
* backends/dbcheck.cc: Fix checking a single brass table.
Thu Aug 28 16:04:59 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_check.cc,backends/chert/chert_check.cc,
bin/xapian-check.cc,include/xapian/constants.h: Rename
DBCHECK_SHOW_BITMAP to DBCHECK_SHOW_FREELIST.
Tue Aug 26 22:31:32 GMT 2014 Olly Betts <olly@survex.com>
* NEWS: Update.
Fri Aug 22 09:09:52 GMT 2014 Gaurav Arora <gauravarora.daiict@gmail.com>
* api/,backends/brass/,backends/chert/,
backends/contiguousalldocspostlist.cc,
backends/contiguousalldocspostlist.h,backends/database.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
backends/remote/,common/remoteprotocol.h,docs/sorting.rst,
include/xapian/database.h,include/xapian/postingiterator.h,
include/xapian/weight.h,matcher/,net/remoteserver.cc,
net/remoteserver.h,tests/,weight/: Provide the number of distinct
terms in the document to weighting schemes. The current
implementation for the disk-based backends is a bit inefficient as
it has to look at the termlist table entry for the document.
Thu Aug 21 12:29:57 GMT 2014 Olly Betts <olly@survex.com>
* weight/weight.cc: Add missing parameter to debug logging for
Weight::init_().
Tue Aug 19 14:25:39 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_table.h: Don't sync handles for tables which
aren't open. Reported by Austin Clements.
Fri Aug 15 13:13:43 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: freecode no longer accepts updates, so drop that item from
the release checklist.
Wed Aug 13 23:55:24 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc:
Only full sync the final base file written.
Mon Aug 11 05:30:20 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: For Sun's C++ compiler, pass -library=Crun separately
since libtool looks for " -library=stlport4 " (with the spaces).
(fixes#650)
Mon Aug 11 03:00:15 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Rename XAPIAN_TEST_CXXFLAGS_ to XAPIAN_TEST_CXXFLAGS
(since the latter is never used) and make it take a variable to
add the flags to. Also, fix it to restore CXXFLAGS correctly if
the success case contains "break".
Wed Aug 06 10:49:46 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/compactor.h: Fix formatting of doxygen comment.
Wed Aug 06 10:49:20 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/constants.h: Whitespace tweak.
Wed Aug 06 10:08:09 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_version.cc,common/io_utils.h,
include/xapian/constants.h: Add DB_FULL_SYNC flag - if this is set
for a database, we use the Mac OS X F_FULL_SYNC instead of
fdatasync()/fsync()/etc on the version file when committing.
Mon Aug 04 05:58:13 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc: Whitespace tweak.
Mon Aug 04 05:57:27 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc: When compacting, sync all the
tables together at the end.
Mon Aug 04 05:42:21 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc,backends/brass/brass_version.cc:
Clean up temporary file in BrassVersion::sync() in all failure
cases.
Mon Aug 04 05:21:02 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/: In DB_DANGEROUS mode, update the version file
in-place.
Fri Aug 01 02:49:57 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc: Lock the target database while
we're compacting to it, which has the side effect of creating the
'flintlock' file there.
Fri Aug 01 02:35:35 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/visibility.h: Add link to GCC Visibility wiki page.
Thu Jul 31 02:54:40 GMT 2014 Olly Betts <olly@survex.com>
* tests/api_weight.cc,weight/bb2weight.cc: Avoid calculating logs of 0
or negative values by clamping the normalise wdf to at most one less
than the collection frequency, and the collection size to at least
2.
Thu Jul 31 02:48:35 GMT 2014 Olly Betts <olly@survex.com>
* tests/api_weight.cc,weight/bb2weight.cc: Fix upper bound for
BB2Weight to not be scaled twice by wqf and factor.
Wed Jul 30 05:48:46 GMT 2014 Olly Betts <olly@survex.com>
* weight/bb2weight.cc: Fix comment typo, and capitalise "Stirling" in
comments.
Wed Jul 30 05:47:31 GMT 2014 Olly Betts <olly@survex.com>
* weight/bb2weight.cc: Whitespace cleanup.
Wed Jul 30 05:43:59 GMT 2014 Aarsh Shah <aarshkshah1992@gmail.com>
* include/xapian/weight.h,weight/bb2weight.cc: Optimise BB2Weight and
fix incorrect upper bound in some cases.
Tue Jul 29 07:20:57 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_version.cc: Remove assertion that table sizes
are all the same, and redundant assertion that the unserialised
blocksize is >= 2048. Fixes set-but-not-used warning in
non-assertion build.
Mon Jul 28 06:35:45 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_databasereplicator.cc,
backends/brass/brass_databasereplicator.h,
backends/brass/brass_table.cc: Replace enum table_id with enum
Brass::table_type.
Mon Jul 28 04:28:12 GMT 2014 Olly Betts <olly@survex.com>
* NEWS: Note the freelist implementation fixed #40.
Mon Jul 28 04:26:07 GMT 2014 Olly Betts <olly@survex.com>
* api/compactor.cc,backends/brass/,backends/dbcheck.cc,
tests/api_wrdb.cc: Eliminate the base files, and instead store the
root block and freelist pointers in the "iambrass" file.
Mon Jul 28 03:22:22 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_databasereplicator.cc: Remove variable which is
set but never used.
Sun Jul 27 01:56:58 GMT 2014 Olly Betts <olly@survex.com>
* backends/dbcheck.cc: Don't try to write output when no output stream
is specified in the case where the database open fails and so we
can't check changes files.
Thu Jul 24 21:12:23 GMT 2014 Olly Betts <olly@survex.com>
* NEWS: Update.
Fri Jul 11 10:44:48 GMT 2014 Olly Betts <olly@survex.com>
* weight/bm25weight.cc: Improve BM25 upper bound in the case when our
wdf upper bound > our document length lower bound. Thanks to
Craig Macdonald for pointing out this trick.
Thu Jul 10 13:29:50 GMT 2014 Olly Betts <olly@survex.com>
* weight/bm25weight.cc: Pre-multiply termweight by (param_k1 + 1).
Sat Jun 28 11:00:49 GMT 2014 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Sort the stop.list files (since loading a
sorted list is likely to be more efficient) and remove any duplicate
entries.
Sat Jun 28 10:48:03 GMT 2014 Olly Betts <olly@survex.com>
* languages/stopwords/finnish/stop.txt,
languages/stopwords/norwegian/stop.txt: Remove duplicate entries.
Sat Jun 28 10:38:56 GMT 2014 Olly Betts <olly@survex.com>
* languages/stopwords/russian/stop.txt: Convert from KOI8-R to UTF-8.
Mon Jun 23 02:26:24 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: configure.ac: Add hints for which package to install
for rst2html
Mon Jun 23 00:54:05 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Use AS_MKDIR_P instead of test -d || mkdir.
Sun Jun 22 07:32:11 GMT 2014 Olly Betts <olly@survex.com>
* NEWS: Update.
Sat Jun 21 03:45:19 GMT 2014 Olly Betts <olly@survex.com>
* docs/Makefile.am: Use $(MKDIR_P) instead of test -d || mkdir 3
times.
Sat Jun 21 03:44:37 GMT 2014 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Generate the directories for the minimised
stopword files in a VPATH build.
Tue Jun 17 13:36:40 GMT 2014 Assem Chelli <assem.ch@gmail.com>
* include/xapian/queryparser.h: Add the example of initializing
SimpleStopper using a file as a doccomment.
Tue Jun 17 13:30:09 GMT 2014 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Remove trailing whitespace (some of which
breaks the parsing to get the lists of source files to pass to
doxygen).
Tue Jun 17 13:24:59 GMT 2014 Assem Chelli <assem.ch@gmail.com>
* languages/: Add stopwords lists from Snowball plus an Arabic one.
Tue Jun 17 11:48:12 GMT 2014 Olly Betts <olly@survex.com>
* weight/dlhweight.cc: Fix comment typo.
Tue Jun 17 11:46:40 GMT 2014 Aarsh Shah <aarshkshah1992@gmail.com>
* weight/dlhweight.cc: Improve the upper bound on DLH ~3-4 times.
Tue Jun 17 11:32:22 GMT 2014 Aarsh Shah <aarshkshah1992@gmail.com>
* include/xapian/weight.h,weight/dphweight.cc: Combine factor into
constants calculated in init(). Improve get_maxpart() a little
in the (common) case where the wdf upper bound is less than half
the document length upper bound.
Tue Jun 17 03:42:36 GMT 2014 Olly Betts <olly@survex.com>
* tests/api_unicode.cc,unicode/UnicodeData-README.txt,
unicode/UnicodeData.txt: Update to Unicode 7.0.0.
Mon Jun 16 14:13:18 GMT 2014 Aarsh Shah <aarshkshah1992@gmail.com>
* weight/dphweight.cc: Improved upper bound for DPH.
Mon Jun 16 13:58:24 GMT 2014 Aarsh Shah <aarshkshah1992@gmail.com>
* include/xapian/weight.h,weight/ifb2weight.cc,weight/ineb2weight.cc,
weight/inl2weight.cc: Include 'factor' in the constants we calculate
in init_().
Mon Jun 16 13:53:05 GMT 2014 Aarsh Shah <aarshkshah1992@gmail.com>
* include/xapian/weight.h,weight/dlhweight.cc: DLH optimization.
Mon Jun 16 13:02:24 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Need python3-sphinx to generate docs for python3.
Mon Jun 16 12:37:13 GMT 2014 Assem Chelli <assem.ch@gmail.com>
* HACKING: Note sphinx-doc now needed (for Python bindings API docs).
Mon Jun 16 05:35:03 GMT 2014 Olly Betts <olly@survex.com>
* HACKING,configure.ac,docs/Makefile.am,docs/doxygen_api.conf.in:
Don't build, ship or install PDF versions of the API docs by
default, but provide an easy way for people to build it for
themselves if they want it.
Mon Jun 16 04:20:40 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Improve the descriptions of the
stem_strategy values. (Reported by "oilap" on #xapian)
Fri Jun 13 07:52:53 GMT 2014 Olly Betts <olly@survex.com>
* weight/dphweight.cc: Fix some comment typos.
Fri Jun 13 07:47:32 GMT 2014 Aarsh Shah <aarshkshah1992@gmail.com>
* include/xapian/weight.h,weight/dphweight.cc: Optimized DPH code.
Fri Jun 13 01:39:07 GMT 2014 Olly Betts <olly@survex.com>
* examples/quest.cc: Fix ordering of "bm25" and "bool" in allegedly
sorted list, so that --weight bm25 and --weight bool work.
Thu Jun 12 13:49:19 GMT 2014 Olly Betts <olly@survex.com>
* matcher/extraweightpostlist.h: Add an assertion that get_sumextra()
returns a weight contribution which is <= the upper bound which
get_maxextra() returns.
Thu Jun 12 13:30:55 GMT 2014 Olly Betts <olly@survex.com>
* api/leafpostlist.cc,matcher/synonympostlist.cc: Add assertions that
get_sumpart() returns a weight contribution which is <= the upper
bound which get_maxpart() returns.
Wed Jun 11 05:34:16 GMT 2014 Olly Betts <olly@survex.com>
* languages/hungarian.sbl: Fix incorrect Unicode codepoints for
o-double-acute and u-double-acute in Hungarian Snowball stemmer.
Reported by Tom Lane to snowball-discuss.
Tue Jun 10 10:59:18 GMT 2014 Aarsh Shah <aarshkshah1992@gmail.com>
* include/xapian/weight.h,weight/ineb2weight.cc: Optimized IneB2:
Reduced number of calculations in get_sumpart and tightened upper
bound.
Tue Jun 10 10:23:09 GMT 2014 Olly Betts <olly@survex.com>
* weight/ineb2weight.cc: Fix closing brace indentation.
Tue Jun 10 09:58:18 GMT 2014 Olly Betts <olly@survex.com>
* examples/quest.cc: Rework the weight name lookup to use a table like
the other lookups. Change the weight names not to include "weight".
Tue Jun 10 08:15:18 GMT 2014 Aarsh Shah <aarshkshah1992@gmail.com>
* include/xapian/weight.h,weight/ifb2weight.cc: Optimized
upper bound and weighting formula in IfB2Weight.
Tue Jun 10 05:34:52 GMT 2014 Aarsh Shah <aarshkshah1992@gmail.com>
* include/xapian/weight.h,weight/inl2weight.cc: Optimized
upper bound and weighting formula in InL2Weight.
Tue Jun 10 05:09:08 GMT 2014 Olly Betts <olly@survex.com>
* examples/quest.cc: Add --weight option to allow the weighting scheme
to be specified.
Thu Jun 05 03:42:51 GMT 2014 Olly Betts <olly@survex.com>
* api/omdatabase.cc,tests/api_backend.cc: Fix
Database::get_wdf_upper_bound("") not to fail with an assertion.
Tue Jun 03 22:59:10 GMT 2014 Olly Betts <olly@survex.com>
* matcher/localsubmatch.cc: Use RETURN() instead of return in methods
with LOGCALL annotations.
Mon Jun 02 13:15:36 GMT 2014 Olly Betts <olly@survex.com>
* docs/Makefile.am: Actually ship, process and install geospatial.rst.
Mon Jun 02 11:40:27 GMT 2014 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Ship collate-sbl script.
Thu May 29 12:13:06 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Replace a link to the outdated autotools "goat book" with a
link to the "Portable Shell" chapter of the autoconf manual.
Thu May 29 03:31:10 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Allow
the user to specify how long a snippet they want. Only add "..." if
the sample was actually truncated.
Wed May 28 12:52:26 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/snipper.h: Add the standard guards to prevent user
code from including this header directly.
Tue May 27 04:19:12 GMT 2014 Olly Betts <olly@survex.com>
* include/Makefile.mk: Ship include/xapian/snipper.h in tarball.
Tue May 27 04:03:09 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc,include/xapian/snipper.h,
tests/generate-api_generated: Add missing assignment operator to
Xapian::Snipper class.
Tue May 27 03:43:03 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/snipper.h: Add missing doxygen comments.
Tue May 27 03:41:08 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/snipper.h,tests/api_snipper.cc: Whitespace tweaks.
Tue May 27 03:36:19 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc,include/xapian/snipper.h,tests/api_snipper.cc: Remove
getters for obtaining info about the relevance model, and instead
add a get_description() method which includes all such info in the
returned description.
Tue May 27 03:06:36 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc: Use an iterator instead of subscripting.
Tue May 27 03:03:33 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Use
appropriate named types rather than "int" or "unsigned int".
Tue May 27 03:02:48 GMT 2014 Olly Betts <olly@survex.com>
* api/snipperinternal.h: Remove constants which are no longer used.
Tue May 27 02:48:44 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h:
Rework Snipper methods set_smoothing_coef() and set_window_size() as
optional parameters of generate_snippet().
Tue May 27 02:33:39 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc,api/snipperinternal.h: Just pass rm_docno through to
Snipper::Internal::calculate_rm() as a parameter rather than storing
it in a member variable.
Tue May 27 02:25:41 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc: Use clear() method to empty a container.
Tue May 27 02:22:37 GMT 2014 Olly Betts <olly@survex.com>
* tests/api_snipper.cc: Drop unused <algorithm>.
Tue May 27 02:21:53 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc: Eliminate ret_value variable.
Tue May 27 02:20:25 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc: Avoid unnecessary substr operations.
Tue May 27 02:17:32 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc: Prefer ++i to i++ in loops.
Tue May 27 02:16:14 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc: Use TermIterator::positionlist_count().
Tue May 27 02:14:52 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Fix
typos in comments and variable names in new snipper code.
Tue May 27 02:13:09 GMT 2014 Olly Betts <olly@survex.com>
* tests/Makefile.am: Hook up new Snipper API tests to actually be
used.
Tue May 27 02:09:49 GMT 2014 Mihai Bivol <mm.bivol@gmail.com>
* tests/api_snipper.cc: Add Snipper API tests.
Tue May 27 02:04:26 GMT 2014 Olly Betts <olly@survex.com>
* api/snipper.cc: Add missing #include <config.h>.
Tue May 27 02:00:32 GMT 2014 Mihai Bivol <mm.bivol@gmail.com>
* api/Makefile.mk,api/snipper.cc,api/snipperinternal.h,
include/xapian.h,include/xapian/snipper.h: Add Xapian::Snipper
class.
Mon May 26 05:52:22 GMT 2014 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/brass/brass_postlist.h,
backends/chert/chert_postlist.h,backends/database.h: Fix comment
typos.
Fri May 23 11:59:26 GMT 2014 Olly Betts <olly@survex.com>
* api/matchspy.cc: Pass std::string by const reference.
Thu May 22 06:31:12 GMT 2014 Olly Betts <olly@survex.com>
* matcher/localsubmatch.cc: Fix the check for a term which matches all
documents to use the sub-db termfreq, not the combined db termfreq.
Thu May 22 06:00:47 GMT 2014 Olly Betts <olly@survex.com>
* matcher/localsubmatch.cc: If a term matches all documents and its
weight doesn't depend on its wdf, we can optimise it to MatchAll
(the previous requirement that maxpart == 0 was unnecessarily
strict).
Thu May 22 05:52:15 GMT 2014 Olly Betts <olly@survex.com>
* matcher/localsubmatch.cc,tests/api_percentages.cc: When we optimise
a postlist for a term which matches all documents to use MatchAll,
we still need to set a weight object on it to get percentages
calculated correctly.
Thu May 22 04:08:35 GMT 2014 Olly Betts <olly@survex.com>
* api/queryinternal.cc,matcher/localsubmatch.cc,
matcher/localsubmatch.h,matcher/queryoptimiser.h: Refactor to group
most of the code to create a postlist for a term and set its weight
into one place.
Mon May 19 00:08:04 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_freelist.cc,tests/api_backend.cc: When we start
to write a new freelist block, set the revision on the old one we
write out correctly, and don't "-1" out the next block pointer
before we write out the block in this case. New regression testcase
newfreelistblock1.
* backends/brass/brass_freelist.cc: Add assertions that the freelist
block has a next pointer when fl_end is a different block to fl.
Fri May 16 04:35:21 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_freelist.h: Fix BrassFreeList::swap() to also
swap the flw_appending members.
Thu May 15 12:51:15 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Add checking config/config.* are up to date to the
release checklist.
Thu May 15 12:47:28 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Now using automake 1.14.1 to bootstrap snapshots and
1.3.x releases.
Wed May 14 03:18:37 GMT 2014 Olly Betts <olly@survex.com>
* api/queryinternal.cc: Only serialise parameter where it is actually
used.
Fri May 09 01:56:48 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Now using doxygen 1.8.7 to bootstrap tarballs.
Mon May 05 05:37:32 GMT 2014 Olly Betts <olly@survex.com>
* backends/chert/chert_check.cc,backends/chert/chert_dbcheck.cc,
backends/dbcheck.cc: Improve DBCHECK_FIX - if fixing a whole
database, we now take the revision from the first table we
successfully look at, which should be correct in most cases,
and is definitely better than trying to determine the revision
of each broken table independently.
Fri May 02 02:36:05 GMT 2014 Olly Betts <olly@survex.com>
* matcher/valuestreamdocument.cc,matcher/valuestreamdocument.h: Put
the docid in the sub-database into the ValueStreamDocument object as
that's what Xapian::Document::get_docid() is documented to return.
(fixes#636, reported by Jeff Rand).
Thu May 01 13:25:35 GMT 2014 Olly Betts <olly@survex.com>
* api/omdatabase.cc,include/xapian/database.h,
matcher/valuestreamdocument.cc: Eliminate
Database::get_document_lazily_() completely.
Thu May 01 11:48:00 GMT 2014 Olly Betts <olly@survex.com>
* backends/database.cc,backends/slowvaluelist.cc,
backends/slowvaluelist.h: Don't wrap the subdatabase object in a
Xapian::Database for SlowValueList, which mean we can just call
open_document(did, true) on it instead of having to use
Xapian::Database::get_document_lazily_().
Wed Apr 30 00:31:52 GMT 2014 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Explicitly '#include <algorithm>' for std::max(),
fixing build with VS2013. (fixes#641)
Tue Apr 29 04:28:06 GMT 2014 Olly Betts <olly@survex.com>
* common/append_filename_arg.h,net/remoteconnection.h: Comment tweaks.
Tue Apr 29 04:26:26 GMT 2014 Olly Betts <olly@survex.com>
* tests/harness/unixcmds.cc: Drop code supporting Microsoft Windows 9x
which reached EOL in 2006.
Thu Apr 17 05:06:21 GMT 2014 Olly Betts <olly@survex.com>
* common/autoptr.h: Under C++11, use unique_ptr for AutoPtr.
Wed Apr 09 22:16:37 GMT 2014 Olly Betts <olly@survex.com>
* api/documentterm.h,api/omdocument.cc: Don't store the termname in
OmDocumentTerm - we were only using it in get_description() output
and an exception message. Speeds up indexing etext.txt using
simpleindex by 0.4%, and should reduce memory usage a bit too.
(Change inspired by comments from Vishesh Handa on xapian-devel).
Wed Apr 09 05:17:58 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_btreebase.cc,backends/brass/brass_table.cc:
Remove comment references to using bitmaps for freespace tracking.
Tue Apr 08 04:20:00 GMT 2014 Olly Betts <olly@survex.com>
* bin/xapian-delve.cc: Add -A <prefix> option to list all terms with
a particular prefix.
Mon Apr 07 05:45:06 GMT 2014 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/brass/,backends/chert/,
backends/database.cc,backends/database.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/remote/remote-database.cc,backends/remote/remote-database.h,
common/remoteprotocol.h,matcher/const_database_wrapper.cc,
matcher/const_database_wrapper.h,net/remoteserver.cc,
net/remoteserver.h,weight/weightinternal.cc: Fetch termfreq and
collection frequency in a single call - shaves ~0.3% off a test
search.
Thu Apr 03 23:40:45 GMT 2014 Olly Betts <olly@survex.com>
* net/serialise.cc,weight/weightinternal.h: Make Weight::Internal
track if any max_part values are set, so we don't need to
serialise them when they've not been set.
Thu Apr 03 05:50:13 GMT 2014 Olly Betts <olly@survex.com>
* weight/weightinternal.cc: Enhance
Weight::Internal::get_description() to report TermFreqs.
Thu Apr 03 05:46:44 GMT 2014 Olly Betts <olly@survex.com>
* api/omenquire.cc,api/omenquireinternal.h,common/submatch.h,matcher/,
net/remoteserver.cc,net/serialise.cc,weight/weight.cc,
weight/weightinternal.cc,weight/weightinternal.h: Eliminate the
map<string, TermFreqAndWeight> in MSet::Internal, and instead just
preserve the Weight::Internal object there as that holds all the
information we need.
Thu Apr 03 04:40:09 GMT 2014 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,net/remoteserver.cc,
net/serialise.cc,net/serialise.h: Avoid returning
Xapian::Weight::Internal by value from unserialise_stats().
Tue Apr 01 22:41:16 GMT 2014 Olly Betts <olly@survex.com>
* matcher/localsubmatch.cc,weight/weight.cc,weight/weightinternal.cc,
weight/weightinternal.h: Replace Weight::Internal methods to get
termfreq, reltermfreq and colltermfreq with a single inlined
get_stats() method, which only needs to search the map once.
Shaves ~1.6% off the time to do a wildcard query with a lot of
terms.
Tue Apr 01 22:11:52 GMT 2014 Olly Betts <olly@survex.com>
* matcher/localsubmatch.cc: Don't refetch the termfreq if we already
have it.
Sun Mar 30 22:54:22 GMT 2014 Anish Kanchan <anishgkanchan@gmail.com>
* include/xapian/termgenerator.h: Make TermGenerator flags an
anonymous enum, and typedef TermGenerator::flags to int for backward
compatibility with existing user code which uses it. (fixes #616)
Thu Mar 27 05:45:14 GMT 2014 Liu Chi <liuchi09@gmail.com>
* include/xapian/stem.h,languages/Makefile.mk,
languages/earlyenglish.sbl,languages/stem.cc,tests/api_stem.cc:
Add an early english stemmer.
Wed Mar 19 02:42:00 GMT 2014 Olly Betts <olly@survex.com>
* weight/weightinternal.cc: Fix comment typo.
Fri Mar 14 09:53:22 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: MacTeX seems to be the best option if using homebrew.
Fri Mar 07 23:17:43 GMT 2014 Olly Betts <olly@survex.com>
* matcher/maxpostlist.cc: More fixes for --enable.log.
Fri Mar 07 23:01:45 GMT 2014 Olly Betts <olly@survex.com>
* matcher/maxpostlist.cc: Fix compilation error with --enable-log on.
Reported by Anurag Soni.
Fri Mar 07 00:39:11 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Fix typo and RST markup.
Fri Mar 07 00:21:16 GMT 2014 VcamX <vcamx3@gmail.com>
* HACKING: Note packages to install from homebrew on Mac OS X.
Fri Mar 07 00:17:01 GMT 2014 VcamX <vcamx3@gmail.com>
* backends/dbcheck.cc,common/pack.h: Fix warnings with clang 5.0.
Tue Mar 04 04:25:11 GMT 2014 Olly Betts <olly@survex.com>
* api/queryinternal.cc,api/queryinternal.h: Only simplify OP_SYNONYM
with a single subquery if that subquery is a term or MatchAll.
Tue Mar 04 04:12:58 GMT 2014 Olly Betts <olly@survex.com>
* tests/api_none.cc: Test OPs with a single MatchAll subquery.
Mon Mar 03 22:59:55 GMT 2014 Mayank Chaudhary <mayankchaudhary.iitr@gmail.com>
* docs/Makefile.am,docs/bm25.rst,docs/intro_ir.rst: Convert equations
in rst docs to use LaTeX via the math role and directive.
Fri Feb 28 06:12:36 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.h,
backends/chert/chert_positionlist.h: Remove next_internal() methods
which were declared but not defined or used (left-overs from flint).
Reported by "Hurricane Tong".
Wed Feb 26 01:33:50 GMT 2014 Olly Betts <olly@survex.com>
* api/query.cc,api/queryinternal.cc,api/queryinternal.h,
examples/quest.cc,include/xapian/query.h,matcher/Makefile.mk,
matcher/maxpostlist.cc,matcher/maxpostlist.h,
queryparser/queryparser.cc,tests/api_none.cc,tests/api_opsynonym.cc:
Implement new OP_MAX query operator, which returns the maximum
weight of any of its subqueries. (see #360)
Wed Feb 26 00:48:23 GMT 2014 Olly Betts <olly@survex.com>
* matcher/localsubmatch.cc,matcher/synonympostlist.cc,
matcher/synonympostlist.h: In SynonymPostList, avoid fetching the
doclength if the weighting scheme doesn't need it and the calculated
wdf for the synonym in <= doclength_lower_bound for the current
subdatabase. (fixes #360)
Wed Feb 26 00:12:22 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_changes.cc: Fix compilation without
--enable-assertions.
Tue Feb 25 02:33:14 GMT 2014 Olly Betts <olly@survex.com>
* examples/quest.cc: Add --default-op option.
Tue Feb 25 01:56:34 GMT 2014 Olly Betts <olly@survex.com>
* examples/quest.cc: Whitespace tweak.
Mon Feb 24 06:33:37 GMT 2014 Olly Betts <olly@survex.com>
* tests/api_opsynonym.cc: Refactor symonym1 so that the test data is
specified by an array, rather than built up by code, so that the
actual testcases can be more easily seen.
Sun Feb 23 01:22:56 GMT 2014 Olly Betts <olly@survex.com>
* common/bitstream.cc,common/bitstream.h: Add comments to better
document BitReader and BitWriter. (fixes#252)
Sun Feb 23 00:35:17 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: Stop trying to explicitly list compilers which support
__builtin_expect (LLVM does too, others may as well).
Fri Feb 21 01:34:59 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/,backends/dbcheck.cc,common/,
docs/replication_protocol.rst,tests/api_backend.cc,
tests/api_replicate.cc: Keep track of unused blocks in the Btrees
using freelists rather than bitmaps.
Fri Feb 21 01:21:45 GMT 2014 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Expand crashrecovery1 to check that the expected
base files exist and ones which shouldn't exist don't.
Thu Feb 20 00:34:47 GMT 2014 Olly Betts <olly@survex.com>
* HACKING: makeindex is now in Debian package texlive-binaries.
Wed Feb 19 06:50:58 GMT 2014 Olly Betts <olly@survex.com>
* docs/sorting.rst: Fix incorrect parameter types in Xapian::Weight
subclass example.
Tue Feb 18 23:34:19 GMT 2014 Olly Betts <olly@survex.com>
* api/replication.cc: Fix conditional for enabling replication code
- if chert is disabled but brass isn't, we should still enable it.
Tue Feb 18 01:33:28 GMT 2014 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Move comment to in front of the function it
is actually talking about.
Sun Feb 16 04:53:57 GMT 2014 Olly Betts <olly@survex.com>
* xapian-config.in: Add some missing shell quoting identified by
shellcheck.
Sun Feb 16 00:53:01 GMT 2014 Olly Betts <olly@survex.com>
* docs/quickstart.rst: Split --cxxflags and --libs for portability
(noted by "Hurricane Tong" on xapian-devel).
Sat Feb 15 04:59:37 GMT 2014 Olly Betts <olly@survex.com>
* docs/glossary.rst: Add definition of "collection frequency".
Fri Feb 14 22:24:26 GMT 2014 Olly Betts <olly@survex.com>
* NEWS: Update.
Fri Jan 17 03:50:44 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_databasereplicator.cc,
backends/brass/brass_table.cc,
backends/chert/chert_databasereplicator.cc,
backends/chert/chert_table.cc,common/io_utils.cc,common/io_utils.h:
Add io_read_block() and io_write_block() as wrappers around pread()
and pwrite() (or lseek() plus read() and lseek() plus write()).
Sat Jan 11 06:32:19 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Sun C++ seems to explicitly need Crun now.
Sat Jan 11 02:23:06 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Fix checks for Sun C++.
Fri Jan 10 22:38:01 GMT 2014 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: timer_create() doesn't handle CLOCK_MONOTONIC
on Solaris, so use CLOCK_REALTIME there instead.
Fri Jan 10 11:22:37 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Improve handling of Sun's C++ compiler - trick libtool
into not adding -library=Cstd, and prefer -library=stdcxx4 if
supported.
Fri Jan 10 11:16:15 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Add XAPIAN_TEST_CXXFLAGS macro, and use it to check
the flags to cxx actually work.
Fri Jan 10 10:56:17 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Apply missing functional part of previous change.
Fri Jan 10 10:46:53 GMT 2014 Olly Betts <olly@survex.com>
* configure.ac: Avoid using grep -e as /usr/bin/grep on Solaris
doesn't support it.
Fri Jan 10 03:30:10 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_databasereplicator.cc: Whitespace tweak.
Thu Jan 09 11:06:05 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_cursor.h,backends/brass/brass_database.cc,
backends/chert/chert_database.cc,
backends/chert/chert_databasereplicator.cc,
backends/inmemory/inmemory_database.h,common/log2.h,
common/realtime.h,matcher/multimatch.cc,weight/pl2weight.cc,
weight/tradweight.cc: Fix compilations issues with Sun's C++
compiler (mostly missing library headers).
Thu Jan 09 06:00:03 GMT 2014 Olly Betts <olly@survex.com>
* backends/dbcheck.cc: Skip absent lazily created tables in the case
where out == NULL too.
Thu Jan 09 05:31:40 GMT 2014 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Use Xapian::Database::check() in cursordelbug1.
(partly addresses #238)
Thu Jan 09 05:30:45 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/database.h: Make second and third parameters to
Xapian::Database::check() optional, defaulting to a quiet check.
Thu Jan 09 02:52:54 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/,backends/chert/,backends/dbcheck.cc,
bin/xapian-check.cc,include/xapian/database.h: Alter
Database::check() to take its "out" parameter as a pointer to
std::ostream instead of a reference, and make passing NULL means "do
not produce output". Remove the form without the "out" parameter,
which used to mean "send output to stdout" - if you want this, just
pass "&std::cout" in.
Thu Jan 09 01:50:14 GMT 2014 Olly Betts <olly@survex.com>
* include/xapian/database.h: OS X SDK check() macro takes one
argument, so there's no need to protect check() methods with
more than one argument.
* include/xapian/valueiterator.h: Protect the one check() method in
our API which does take one argument.
Wed Jan 08 11:48:58 GMT 2014 Olly Betts <olly@survex.com>
* api/smallvector.cc,api/smallvector.h: Include cstddef rather than
cstring for std::size_t, as it's a simpler header. Don't assume
size_t will be available unqualified. Add SmallVector::size_type
typedef.
Mon Jan 06 11:54:53 GMT 2014 Olly Betts <olly@survex.com>
* net/progclient.cc: Fix xlC warning.
Mon Jan 06 00:31:19 GMT 2014 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/chert/chert_table.cc:
Validate dir_end when reading a block. (fixes #592)
Wed Jan 01 01:20:46 GMT 2014 Olly Betts <olly@survex.com>
* docs/Makefile.am: Fix handling of MAINTAINER_NO_DOCS.
Mon Dec 30 05:33:59 GMT 2013 Olly Betts <olly@survex.com>
* tests/api_unicode.cc: Add regression test for incorrect results
from Unicode::tolower() for 4 code points (U+01C5, U+01C8, U+01CB,
U+01F2) with Xapian 1.2.16 and earlier.
Sun Dec 29 05:46:14 GMT 2013 Olly Betts <olly@survex.com>
* docs/postingsource.rst: Clarify a couple of points (reported by
"vHanda" on IRC).
Tue Dec 24 02:00:26 GMT 2013 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/perftest/Makefile.mk: Actually use
@NO_INSTALL@.
Tue Dec 24 01:59:05 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Use -no-fast-install on platforms where -no-install
causes libtool to emit a warning.
Mon Dec 23 04:17:35 GMT 2013 Olly Betts <olly@survex.com>
* HACKING: Drop note about needing git-svn if you're using git -
bootstrap now only uses git-svn if your Xapian tree was checked out
using git-svn.
Mon Dec 23 04:16:58 GMT 2013 Olly Betts <olly@survex.com>
* HACKING: Note that Tcl is now needed to generate
unicode/unicode-data.cc.
Mon Dec 23 04:01:05 GMT 2013 Olly Betts <olly@survex.com>
* tests/api_unicode.cc: Add a test that a character due to be added in
Unicode 7.0.0 is categorised as "unassigned".
Mon Dec 23 03:50:37 GMT 2013 Olly Betts <olly@survex.com>
* unicode/Makefile.mk,unicode/uniParse.tcl: Adjust to not need a
symlink. Give the generated file a new name, since the "tcl" prefix
doesn't make much sense here, and it avoids issues with
transitioning from a file in version control to one which is
generated.
Mon Dec 23 03:32:40 GMT 2013 Olly Betts <olly@survex.com>
* unicode/: Add the source data file and scripts to generate
tclUniData.cc.
Mon Dec 23 02:20:57 GMT 2013 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Mon Dec 23 01:04:26 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Note that 1.2.17 is required for the
correct sense of the reverse parameter to Enquire methods
set_sort_by_relevance_then_value() and
set_sort_by_relevance_then_key().
Mon Dec 23 00:30:53 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_btreebase.cc: Fix comment documenting what's in
the base file (the sequential flag was missing).
Fri Dec 20 03:47:56 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_termlisttable.h,include/xapian/constants.h,
tests/api_backend.cc: Add Xapian::DB_NO_TERMLIST flag to allow
creating a database without a termlist (see #181).
Fri Dec 20 03:04:51 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
character database to 6.3.0.
* tests/api_unicode.cc: Add tests for U+061C, added in 6.3.0.
Fri Dec 20 00:20:01 GMT 2013 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: Clear any backend flag passed in before
passing the flags when opening stub databases, fixing test failure
in replicate1 caused by recent change adding
Xapian::DB_BACKEND_STUB.
Thu Dec 19 23:11:32 GMT 2013 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Simplify database creation in testcase
blocksize1.
Thu Dec 19 23:10:37 GMT 2013 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: Tweak conditionals around $XAPIAN_PREFER_BRASS
check.
Thu Dec 19 23:09:30 GMT 2013 Olly Betts <olly@survex.com>
* api/replication.cc,backends/dbfactory.cc,docs/deprecation.rst,
docs/overview.rst,include/xapian/constants.h,
include/xapian/dbfactory.h,tests/api_backend.cc,tests/api_db.cc:
Add Xapian::DB_BACKEND_STUB and deprecate Xapian::Auto::open_stub().
Thu Dec 19 06:46:15 GMT 2013 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Update example version to a more recent one.
Thu Dec 19 04:01:31 GMT 2013 Olly Betts <olly@survex.com>
* docs/deprecation.rst,include/xapian/dbfactory.h,tests/api_db.cc,
tests/harness/: Deprecate Xapian::Brass::open() and
Xapian::Chert::open() in favour of the new Xapian::DB_BACKEND_BRASS
and Xapian::DB_BACKEND_CHERT flags.
Thu Dec 19 01:17:02 GMT 2013 Olly Betts <olly@survex.com>
* api/compactor.cc,backends/brass/,backends/chert/chert_database.cc,
backends/chert/chert_database.h,backends/database.h,
backends/dbcheck.cc,backends/dbfactory.cc,include/xapian/constants.h,
include/xapian/database.h,include/xapian/dbfactory.h: Add flags
which can be bitwise OR-ed into the second argument when opening a
writable datase: DB_NO_SYNC (to disable use of fsync, etc) and
DB_DANGEROUS (to enable in-place updates). WritableDatabase
can now be constructed from just a filename (defaulting to opening
the database with DB_CREATE_OR_OPEN).
Thu Dec 19 00:11:26 GMT 2013 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_multi.cc: Fix comment typo.
Wed Dec 18 23:52:49 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/chert/chert_table.cc,
tests/api_backend.cc: Fix handling of invalid block sizes - the
size gets fixed as documented, but the uncorrected size was passed
to the base file. Also, abort() was called on 0.
Wed Dec 18 22:48:18 GMT 2013 Olly Betts <olly@survex.com>
* api/replication.cc,backends/brass/brass_check.cc,
backends/brass/brass_database.cc,backends/chert/chert_check.cc,
backends/chert/chert_database.cc,backends/database.h,
backends/dbcheck.cc,bin/xapian-tcpsrv.cc,include/Makefile.mk,
include/xapian.h,include/xapian/database.h,net/remoteserver.cc:
Move Xapian::DB_* and Xapian:DBCHECK_* constants into
xapian/constants.h.
Wed Dec 18 22:30:23 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,backends/chert/chert_database.cc:
Include xapian/*.h with "" not <> inside the library.
Wed Dec 18 22:17:15 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
Include only the needed xapian/*.h headers (rather than xapian.h) to
reduce inter-file dependencies within the library.
Wed Dec 18 03:24:22 GMT 2013 Olly Betts <olly@survex.com>
* tests/runtest.in: Report if a test is being run under eatmydata,
like we do for running under valgrind.
Wed Dec 18 02:43:47 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_version.h,backends/chert/chert_version.h:
Comment out unused set_uuid() and set_uuid_string() methods - they
may be useful in future, but we aren't currently using them. Also
make set_uuid() take a const pointer.
Wed Dec 18 02:40:18 GMT 2013 Olly Betts <olly@survex.com>
* HACKING,configure.ac,tests/runtest.in: Automatically probe for and
hook in eatmydata to the testsuite using the wrapper script it now
includes.
Wed Dec 18 01:21:07 GMT 2013 Olly Betts <olly@survex.com>
* HACKING: Update website update info.
Sat Dec 14 06:01:33 GMT 2013 Olly Betts <olly@survex.com>
* weight/dlhweight.cc,weight/dphweight.cc: Whitespace tweak.
Fri Dec 13 21:06:28 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_cursor.cc,backends/brass/brass_cursor.h,
backends/brass/brass_table.cc: Reference count blocks in the
btree cursor, so cursors can cheaply share blocks. This can
significantly reduce the amount of memory used for cursors
for queries which contain a lot of terms (e.g. wildcards which
expand to a lot of terms).
Thu Dec 12 22:37:22 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_btreebase.cc: Add assertions that we don't read
beyond the end of the freespace bitmap.
Thu Dec 12 22:25:04 GMT 2013 Olly Betts <olly@survex.com>
* matcher/msetcmp.cc: Fix sense of reverse parameter to
Enquire::set_sort_by_relevance_then_value. Reported by "boomboo" on
IRC.
* tests/api_db.cc: Fix testcase sortrel1.
Thu Dec 12 19:47:46 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/: Make Brass::Cursor members n and p private.
Thu Dec 12 19:46:23 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_check.cc,backends/brass/brass_table.cc: Add
const to a few pointers we only read through.
Thu Dec 12 09:04:13 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Improve reporting of GCC version.
Thu Dec 12 09:01:26 GMT 2013 Olly Betts <olly@survex.com>
* tests/api_query.cc,unicode/description_append.cc: Escape \x7f in
object descriptions.
Wed Dec 11 23:40:37 GMT 2013 Olly Betts <olly@survex.com>
* api/leafpostlist.cc,api/leafpostlist.h,backends/brass/,
matcher/localsubmatch.cc,matcher/localsubmatch.h,
matcher/queryoptimiser.h: Under brass, optimise the turning of a
query into a postlist to copy the cursor blocks for the previous
term's postlist. This is particularly effective for wildcard
queries which expand to a lot of terms.
Wed Dec 11 22:05:34 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_postlist.h: We don't have a
BrassModifiedPostList class, so we don't need protected members in
BrassPostList for it to use.
Wed Dec 11 04:46:58 GMT 2013 Olly Betts <olly@survex.com>
* weight/bm25weight.cc: Fix case where (k1 == 0 || b == 0) but k2 != 0.
Reported by "boomboo" on IRC.
* tests/api_weight.cc: Add regression test bm25weight5.
Wed Dec 04 05:44:29 GMT 2013 Olly Betts <olly@survex.com>
* NEWS: Update from 1.2.16 and ChangeLog.
Mon Dec 02 02:34:43 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Clarify version of MSVCRT which we require for mingw.
Fri Nov 29 04:21:46 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Fix typo in previous commit.
Fri Nov 29 03:48:24 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Report GCC version.
Wed Nov 27 04:06:32 GMT 2013 Olly Betts <olly@survex.com>
* Backport change from brass:
* backends/chert/chert_table.cc: Check if the block we want is in the
internal cursor for a read-only table too - it isn't needed for
correctness in this case, but it is more efficient not to reload a
block which we already have.
Sun Nov 24 23:05:37 GMT 2013 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Fri Nov 22 20:18:43 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_databasereplicator.cc,
backends/brass/brass_databasereplicator.h: compression_stream.h
isn't used in brass_databasereplicator.h, so move include to
brass_databasereplicator.cc.
Fri Nov 22 01:22:32 GMT 2013 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Minor tweak to structuring of tests
in check_infix().
Sat Nov 09 08:51:27 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc: Check if the block we want is in the
internal cursor for a read-only table too - it isn't needed for
correctness in this case, but it is more efficient not to reload a
block which we already have.
Sat Nov 09 08:48:02 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/: Use a separate cursor for each position list - now
we're ordering the position B-tree by term first, phrase matching was
causing the cursor to cycle between disparate areas of the B-tree,
and it would have to reread the same blocks over and over.
Fri Nov 08 09:57:52 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/chert/chert_table.cc: Add
check for the database being closed in read_block(), which fixes
pythontest.py testcase valuemods.
Fri Nov 08 08:58:48 GMT 2013 Olly Betts <olly@survex.com>
* api/maptermlist.h,api/termlist.cc,api/termlist.h,backends/brass/:
Avoid two vector copies when storing term positions in most common
cases.
Fri Nov 08 08:57:07 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Bump LIBRARY_VERSION_INFO.
Thu Nov 07 16:14:23 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,
backends/brass/brass_positionlist.cc,
backends/brass/brass_positionlist.h: There's no need to pass around
an end PositionIterator, and it's actually slightly more efficient
not to.
Thu Nov 07 16:11:27 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/: Batch up positionlist changes in memory and write
them out in key order.
Thu Nov 07 15:30:48 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.h,backends/brass/brass_version.cc:
Change positionlist keys to be ordered by term first rather than
docid first, which helps phrase searching significantly.
Wed Nov 06 17:12:29 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_values.cc,backends/brass/brass_values.h,
backends/chert/chert_values.cc,backends/chert/chert_values.h: Reuse
a cursor for reading values from valuestreams rather than creating
a new one each time. This can dramatically reduce the number of
blocks redundantly reread when sorting by value. The rereads will
generally get served from VM cache, but there's still an overhead
to that.
Tue Nov 05 16:28:08 GMT 2013 Olly Betts <olly@survex.com>
* api/query.cc,api/queryinternal.cc,api/queryinternal.h,
include/xapian/query.h,tests/api_query.cc: Having a separate 'type'
enum seems to just make for clumsier code, so merged the LEAF_*
values into the 'op' enum, add LEAF_MATCH_ALL and LEAF_MATCH_NOTHING
and return when appropriate, and add test coverage.
Tue Nov 05 15:20:15 GMT 2013 Olly Betts <olly@survex.com>
* api/query.cc,api/queryinternal.cc,api/queryinternal.h,
include/xapian/query.h: Add methods to allow introspection on
Query objects - currently you can read the type/operator, how many
subqueries there are, and get a particular subquery. For a
query which is a term, Query::get_terms_begin() allows you to
get read the term. (see #159)
Mon Nov 04 19:06:38 GMT 2013 Olly Betts <olly@survex.com>
* examples/quest.cc: Add --check-at-least option to quest.
Thu Oct 24 04:38:52 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac,tests/soaktest/soaktest.cc: If srandom() and random()
aren't available, use srand() and rand() instead.
Thu Oct 24 02:34:06 GMT 2013 Olly Betts <olly@survex.com>
* common/safewindows.h: Define WINVER to 0x0500 if not otherwise set,
so we get new interfaces like MEMORYSTATUSEX under mingw.
Thu Oct 24 02:11:36 GMT 2013 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc: Need cstdlib for free
under mingw.
Thu Oct 24 02:11:05 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac,tests/api_replicate.cc,tests/queryparsertest.cc,
tests/termgentest.cc: Probe for _putenv_s() in configure as mingw
doesn't provide it.
Thu Oct 24 01:23:14 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Don't unset CC as it's used by libtool under mingw.
Thu Oct 24 01:17:07 GMT 2013 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Fix mingw build error.
Thu Oct 24 01:00:18 GMT 2013 Olly Betts <olly@survex.com>
* common/omassert.h: Suppress "unused local typedef" warnings from
GCC 4.8.
Wed Oct 23 20:00:05 GMT 2013 Olly Betts <olly@survex.com>
* common/realtime.h: Rework RealTime::to_timeval() under __WIN32__ to
avoid having to pull in safewinsock2.h,
Wed Oct 23 12:39:53 GMT 2013 Olly Betts <olly@survex.com>
* common/realtime.h: Under __WIN32__, we need safewinsock2.h for
struct timeval.
Wed Oct 23 10:21:02 GMT 2013 Olly Betts <olly@survex.com>
* common/omassert.h: If the compiler supports C++11, use
static_assert to implement CompileTimeAssert.
Wed Oct 23 10:02:50 GMT 2013 Olly Betts <olly@survex.com>
* common/realtime.h,net/tcpclient.cc: Fix mingw build errors.
Wed Oct 23 09:50:00 GMT 2013 Olly Betts <olly@survex.com>
* common/win32_uuid.cc: Fix mingw compiler warning.
Wed Oct 23 04:19:05 GMT 2013 jiangwen jiang <jiangwen127@gmail.com>
* api/omdocument.cc,api/query.cc: Add more LOGCALL annotations.
Tue Oct 22 03:09:48 GMT 2013 Olly Betts <olly@survex.com>
* HACKING: Note we now use doxygen 1.8.5 for 1.3.x snapshots and
releases.
Mon Oct 21 01:55:48 GMT 2013 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Sync change from upstream: "Fix a harmless
compiler warning in lemon.c." Generated code is identical, at least
on x86-64 Debian wheezy.
Mon Oct 21 01:52:12 GMT 2013 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Sync change from upstream: "In the lemon parser
generator, change all hashes to unsigned to avoid potential problems
with signed integer overflow." Generated code is identical, at
least on x86-64 Debian wheezy.
Sat Oct 19 06:38:48 GMT 2013 Olly Betts <olly@survex.com>
* backends/flint_lock.cc: Under cygwin, use cygwin_conv_path() if
using a new enough cygwin version, rather than the now deprecated
cygwin_conv_to_win32_path(). Reported by "Haroogan" on the
xapian-devel mailing list.
Sat Oct 19 00:36:06 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Simplify test for uuid_unparse_lower(). (see #626)
Sat Oct 19 00:21:37 GMT 2013 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac: Split XAPIAN_LIBS out of XAPIAN_LDFLAGS.
(fixes#626)
Fri Oct 18 11:51:40 GMT 2013 Olly Betts <olly@survex.com>
* geospatial/geoencode.cc: Use lround() instead of round(), since we
want the result as an int. GCC 4.4.3 seems to optimise to use
lround() anyway, but other compilers may not.
Fri Oct 18 11:44:10 GMT 2013 Olly Betts <olly@survex.com>
* geospatial/geoencode.cc: Include <math.h> for round() (fixes #628).
Tue Oct 15 03:16:04 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/enquire.h,include/xapian/unicode.h: Mark internal
methods which are public for implementation convenience as
"@private" for doxygen where they weren't already.
Mon Oct 14 09:45:13 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian.h: Mark vinfo struct and get_vinfo_() function as
@private for doxygen.
Thu Oct 10 10:36:45 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/: Methods and functions which take a string to
unserialise now consistently call that parameter "serialised".
Mon Oct 07 04:08:14 GMT 2013 Olly Betts <olly@survex.com>
* tests/zlib-vg.c: Fix two warnings when compiled with clang.
Fri Oct 04 19:46:16 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_check.cc,backends/chert/chert_check.cc: Correct
failure message which talks above the root block when it's actually
testing a leaf key.
Fri Oct 04 04:51:39 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_check.cc,backends/chert/chert_check.cc: Escape
invalid UTF-8 data in keys and tags reported by xapian-check, using
the same code we use to clean up string in object descriptions.
Fri Oct 04 04:50:52 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_check.cc,backends/chert/chert_check.cc: Fix
xapian-check to report block numbers correctly for links within the
B-tree.
Thu Oct 03 07:35:44 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_dbcheck.cc,backends/chert/chert_dbcheck.cc: If
the METAINFO key is missing, only report it once per table.
Sat Sep 28 09:27:51 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian.h: Hide struct vinfo and get_vinfo_() from SWIG and
doxygen.
Sat Sep 28 06:25:44 GMT 2013 Olly Betts <olly@survex.com>
* api/version.cc,include/xapian.h: Reimplement version functions to
use a single function in libxapian which returns a pointer to a
static const struct containing the version information, with inline
wrappers in the API header which call this. This means we only need
one relocation instead of 4.
* tests/api_none.cc: New testcase version1 to provide coverage for the
version API functions.
Fri Sep 27 22:53:15 GMT 2013 Olly Betts <olly@survex.com>
* api/omenquire.cc,include/xapian/enquire.h,tests/api_anydb.cc: Fix
backwards compatibility get_eset() wrapper to allow for the optional
parameters which were supported before. Also, just inline it from
the API header.
Fri Sep 27 11:19:50 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* api/omenquire.cc,api/omenquireinternal.h,expand/,
include/xapian/enquire.h,tests/api_anydb.cc: Add support for the Bo1
query expansion scheme.
Thu Sep 26 04:11:49 GMT 2013 Olly Betts <olly@survex.com>
* tests/api_weight.cc: Don't pass integer arguments to log() to avoid
ambiguity errors with some compilers. (fixes #627)
Thu Sep 26 02:02:24 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/,backends/chert/,backends/dbcheck.cc: Fix database
consistency checking to always open all the tables at the same
revision, which could lead to false errors being reported after
a commit interrupted by the process being killed or the machine
crashing. Reported by Joey Hess in http://bugs.debian.org/724610
Wed Sep 25 02:21:29 GMT 2013 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add testcase for FieldProcessor on boolean
prefix with quoted contents.
Wed Sep 25 02:16:55 GMT 2013 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix comment typo.
Wed Sep 25 02:13:20 GMT 2013 Olly Betts <olly@survex.com>
* api/: Split QueryVector into a template SmallVector class and then
'typedef SmallVector<Query> QueryVector;', as it would be good to
use the same approach for Database internals.
Tue Sep 24 09:59:05 GMT 2013 Olly Betts <olly@survex.com>
* .gitignore,xapian-core.spec.in: Update two references to .tar.gz
files.
Tue Sep 24 09:54:42 GMT 2013 Olly Betts <olly@survex.com>
* docs/install.rst: Fix typo (bogus extra 'and');
Tue Sep 24 09:54:01 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac,docs/install.rst: Compress source tarballs with xz
instead of gzip.
Mon Sep 23 12:58:23 GMT 2013 Olly Betts <olly@survex.com>
* common/realtime.h,configure.ac,matcher/multimatch.cc: Implement
RealTime::sleep() using nanosleep() where it's available, since
it has a simpler API and a finer granularity than select().
Mon Sep 23 12:27:37 GMT 2013 Olly Betts <olly@survex.com>
* common/realtime.h,net/remoteconnection.cc,net/tcpclient.cc: Add
RealTime::to_timeval() helper function to break a time interval
as a double into a struct timeval. This uses modf() which gives
more compact and faster code than using fmod() as we previously
did.
Mon Sep 23 08:20:03 GMT 2013 Olly Betts <olly@survex.com>
* common/realtime.h,configure.ac: Use clock_gettime() to implement
RealTime::now() where it's available.
Mon Sep 16 11:53:28 GMT 2013 Olly Betts <olly@survex.com>
* api/,backends/brass/brass_postlist.cc,
backends/remote/net_postlist.cc,backends/slowvaluelist.cc,
expand/esetinternal.cc,include/xapian/unicode.h,
matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
tests/api_query.cc,tests/queryparsertest.cc,unicode/: Fix all
get_description() methods to always return UTF-8 text. (fixes #620)
Mon Sep 16 11:47:16 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Document how Utf8Iterator handles invalid
UTF-8.
Mon Sep 16 11:19:48 GMT 2013 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add test coverage for explicit synonym of
a term with a prefix (e.g. ~foo:search).
Fri Sep 06 07:11:29 GMT 2013 Olly Betts <olly@survex.com>
* api/valueiterator.cc,tests/api_backend.cc: Don't segfault is
skip_to() or check() are called on a ValueIterator which is already
at_end().
Fri Sep 06 06:52:49 GMT 2013 Olly Betts <olly@survex.com>
* api/positioniterator.cc,api/postingiterator.cc,api/termiterator.cc,
tests/api_backend.cc: Don't segfault if skip_to() is called on an
iterator which is already at_end(). Reported by David Bremner.
Wed Sep 04 04:52:50 GMT 2013 Olly Betts <olly@survex.com>
* weight/weightinternal.cc: TermFreqs now tracks collection frequency,
so make TermFreqs::get_description() report it.
Thu Aug 29 01:30:45 GMT 2013 Olly Betts <olly@survex.com>
* matcher/andmaybepostlist.cc,matcher/multiandpostlist.h: Fix
assertion failure for when an OrPostList decays to an AndPostList
- the ordering of the subqueries by estimated termfreq may not be
the same as it was when the OrPostList was constructed, as the
subqueries may themselves have decayed. Reported by Michel
Pelletier.
Fri Aug 23 03:17:33 GMT 2013 Olly Betts <olly@survex.com>
* m4-macros/xapian-1.3.m4: Handle empty or unset XAPIAN_CONFIG
correctly.
Mon Jul 15 12:01:17 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
tests/api_weight.cc,weight/Makefile.mk,weight/dphweight.cc: Add an
implementation of DfR weighting scheme DPH.
Sun Jul 14 07:39:37 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/weight.h,weight/pl2weight.cc: Optimise PL2Weight to
only calculate 2 logs per call to get_sumpart() instead of 4 by
precalculating three document-independent values in init().
Sun Jul 14 07:04:52 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
tests/api_weight.cc,weight/Makefile.mk,weight/pl2weight.cc: Add an
implementation of DfR weighting scheme PL2.
Sat Jul 13 11:24:20 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* weight/tfidfweight.cc: Explicitly cast argument of log() to double,
as xlC doesn't manage to chose an overloaded form to call otherwise.
Sat Jul 13 07:29:25 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* include/xapian/weight.h,tests/api_weight.cc,
tests/generate-api_generated,weight/: Fix new weighting schemes to
work with OP_SCALE_WEIGHT.
Wed Jul 10 12:57:01 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
tests/api_weight.cc,weight/Makefile.mk,weight/dlhweight.cc: Add an
implementation of DfR weighting scheme DLH.
Wed Jul 10 07:38:15 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* expand/expandweight.h: Track collection_freq and totlen restricted
to the RSet in preparation for supporting DfR query expansion
schemes.
Mon Jul 08 06:27:05 GMT 2013 Olly Betts <olly@survex.com>
* weight/Makefile.mk: Normalise whitespace in BB2 change.
Sun Jul 07 12:29:48 GMT 2013 Olly Betts <olly@survex.com>
* weight/bb2weight.cc: New file for BB2Weight which I failed to
commit.
Sun Jul 07 11:51:45 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
tests/api_weight.cc,weight/Makefile.mk: Add implementation of DfR
weighting scheme BB2.
Sat Jul 06 02:07:13 GMT 2013 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Fix add_document() to always use exactly the next
docid after get_lastdocid() in the multidatabase case.
Fri Jul 05 06:19:55 GMT 2013 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: Allow open a stub database containing
multiple subdatabases as a WritableDatabase.
Thu Jul 04 06:29:56 GMT 2013 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc,tests/harness/index_utils.cc,
tests/harness/index_utils.h: Simplify the FileIndexer class.
Thu Jul 04 06:09:06 GMT 2013 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_multi.cc,tests/harness/index_utils.cc,
tests/harness/index_utils.h: Make use of the new writable
multidatabase feature to simplify the multi-database handling in the
test harness.
Wed Jul 03 13:58:46 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
tests/api_weight.cc,weight/Makefile.mk,weight/ineb2weight.cc: Add
implementation of DfR weighting scheme IneB2.
Wed Jul 03 13:39:11 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/weight.h: "please refer:" -> "please refer to:"
Wed Jul 03 13:31:59 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
tests/api_weight.cc,weight/Makefile.mk,weight/ifb2weight.cc: Add
implementation of DfR weighting scheme IfB2.
Wed Jul 03 12:42:23 GMT 2013 Olly Betts <olly@survex.com>
* common/safeuuid.h: Make a few tweaks to support AIX.
Wed Jul 03 12:33:40 GMT 2013 Olly Betts <olly@survex.com>
* common/safeuuid.h: Remove bogus take-address-of from uuid handling
code for netbsd and openbsd.
Wed Jul 03 11:56:05 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
tests/api_weight.cc,weight/Makefile.mk,weight/inl2weight.cc: Add
implementation of DfR weighting scheme InL2.
Wed Jul 03 08:20:26 GMT 2013 Olly Betts <olly@survex.com>
* api/error.cc,common/Makefile.mk,common/safenetdb.h,net/tcpclient.cc,
net/tcpserver.cc: AIX needs _USE_IRS defined for hstrerror, so
create safenetdb.h to take care of that.
Wed Jul 03 07:34:13 GMT 2013 Olly Betts <olly@survex.com>
* common/safeuuid.h: Add missing '#include <cstdlib>' and qualify free
with std.
Tue Jul 02 23:44:48 GMT 2013 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Add support for WritableDatabase with multiple
subdatabases.
Tue Jul 02 23:40:08 GMT 2013 Olly Betts <olly@survex.com>
* api/omdatabase.cc,tests/api_none.cc: Trying to perform operations on
a database with no subdatabases now throws InvalidOperationError not
DocNotFoundError.
Tue Jul 02 13:22:31 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* tests/api_weight.cc: Extend checkstatsweight1 to check that
Weight::get_collection_freq() returns the same number as
Database::get_collection_freq().
Tue Jul 02 05:00:30 GMT 2013 Olly Betts <olly@survex.com>
* api/omenquire.cc,api/omenquireinternal.h,
backends/remote/remote-database.cc,backends/remote/remote-database.h,
common/remoteprotocol.h,configure.ac,docs/remote_protocol.rst,
include/xapian/enquire.h,matcher/multimatch.cc,matcher/multimatch.h,
net/remoteserver.cc,tests/api_postingsource.cc: Add
Enquire::set_time_limit() method which sets a timelimit after which
check_at_least will be disabled.
Mon Jul 01 23:42:33 GMT 2013 Olly Betts <olly@survex.com>
* tests/Makefile.am: Fix to actually removed cached databases before
"make check".
Mon Jul 01 22:21:41 GMT 2013 Olly Betts <olly@survex.com>
* NEWS,api/queryinternal.cc,matcher/valuestreamdocument.h: Revert
changes accidentally included in r17373.
Sat Jun 29 12:39:10 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/unicode.h,unicode/tclUniData.cc: Change
Xapian::Unicode::Internal::get_character_info() to simply return
Xapian::Unicode::UNASSIGNED for character outside unicode (ch >=
0x110000) which avoids a special check for such values before
we call get_character_info().
Sat Jun 29 09:31:12 GMT 2013 Olly Betts <olly@survex.com>
* tests/api_serialise.cc: Remove code from registry* testcases which
tries to test the consequences of throwing an exception from a
destructor - it's complex to ensure we don't leak memory while doing
this (it seems GCC doesn't release the object in this case, but
clang does), and it's generally frowned upon, plus C++11 makes
destructors noexcept by default.
Thu Jun 27 02:36:02 GMT 2013 Olly Betts <olly@survex.com>
* weight/weightinternal.h: Initialise total_term_count to zero.
Fixes failure of qp_flag_wildcard3 under valgrind in buildbot.
Wed Jun 26 05:48:21 GMT 2013 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: '# if defined' -> '#ifdef' to match
surrounding code better.
Wed Jun 26 05:47:38 GMT 2013 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: Fix 'unused label' warning when chert backend
is disabled.
Wed Jun 26 05:40:29 GMT 2013 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Fix previous change to compile.
Wed Jun 26 05:34:25 GMT 2013 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Change qp_scale1 to time 5 repetitions of
the large query to help average out variations.
Wed Jun 26 04:52:33 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Tweak to simplify diff against similar code in
xapian-omega.
Wed Jun 26 03:56:14 GMT 2013 Olly Betts <olly@survex.com>
* api/matchspy.cc: Fix get_description() to work on a
ValueCountMatchSpy with NULL internals - fixes matchspy5 testcase
with remote backends when configured with --enable-log.
* api/matchspy.cc: Add assertions that internal is non-NULL before
using it.
* include/xapian/matchspy.h: If internal is NULL, make
ValueCountMatchSpy::get_total() return 0 rather than dereferencing
NULL.
Wed Jun 26 03:10:58 GMT 2013 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc,tests/harness/testsuite.h: If
-v/--verbose is specified more than once, show the diagnostic output
for passing tests as well as failing/skipped ones.
Wed Jun 26 03:08:08 GMT 2013 Olly Betts <olly@survex.com>
* tests/api_scalability.cc: Change querypairwise1_helper to repeat the
query build 100 times, as with a fast modern machine we were
sometimes trying to so many subqueries that we would run out of
stack.
Wed Jun 26 02:55:20 GMT 2013 Olly Betts <olly@survex.com>
* weight/tfidfweight.cc: Wrap long lines.
Wed Jun 26 02:00:12 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac,m4-macros/xapian-1.3.m4: Fix stripping of _git suffix
from snapshot versions not to relying of sed having support for \|
as it doesn't on OS X.
Tue Jun 25 13:21:44 GMT 2013 Olly Betts <olly@survex.com>
* weight/tfidfweight.cc: Merge "impossible" cases in switch statements
into possible ones which contain the same code, adding assertions
that the "impossible" hasn't happened. More robust and improves
test coverage.
Tue Jun 25 06:28:00 GMT 2013 Olly Betts <olly@survex.com>
* m4-macros/xapian-1.3.m4: XO_LIB_XAPIAN now handles the user
specifying a relative path in XAPIAN_CONFIG, e.g.: "./configure
XAPIAN_CONFIG=../xapian-core/xapian-config"
Tue Jun 25 05:34:41 GMT 2013 Olly Betts <olly@survex.com>
* m4-macros/xapian-1.3.m4: Fix comment typo.
Tue Jun 25 05:33:54 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Use AC_PATH_PROG instead of AC_PATH_PROG when there's
only one name for the program to look for.
Sun Jun 23 13:12:54 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: clang doesn't support -Wstrict-null-sentinel or
-Wlogical-op, so don't pass it these options.
Sat Jun 22 13:40:40 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
Fix failure when built with -D_GLIBCXX_DEBUG - we were modifying
the top() element of a heap before calling pop(), such that the
heap comparison operation (which is called when -D_GLIBCXX_DEBUG
is on to verify the heap is valid) would read off the end of the
data. In a normal build, this issue would likely never manifest.
Sat Jun 22 11:21:22 GMT 2013 Olly Betts <olly@survex.com>
* common/bitstream.cc: Fix assertion in BitReader::decode().
Sat Jun 22 09:13:13 GMT 2013 Olly Betts <olly@survex.com>
* matcher/localsubmatch.cc: Fix assertion failure when built with
--enable-assertions. The behaviour when built without assertions
happened to be correct.
Fri Jun 21 13:10:53 GMT 2013 Olly Betts <olly@survex.com>
* tests/unittest.cc: Add simple test for log2().
Fri Jun 21 13:09:09 GMT 2013 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/log2.h,configure.ac: Add log2.h header
which provides an implementation of log2() if it isn't available in
the standard libraries.
Fri Jun 14 13:20:58 GMT 2013 Olly Betts <olly@survex.com>
* common/fd.h: Add missing header include guards.
Fri Jun 14 13:19:44 GMT 2013 Olly Betts <olly@survex.com>
* common/append_filename_arg.h,geospatial/geoencode.h: Fix header
include guard names which don't match our naming conventions.
Fri Jun 14 13:18:40 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_dbcheck.h,backends/chert/chert_dbcheck.h,
backends/multi/multi_alltermslist.h: Fix header include guard macro
names which don't match the source file names.
Fri Jun 14 12:48:14 GMT 2013 Olly Betts <olly@survex.com>
* common/compression_stream.h: Whitespace tweak.
Thu Jun 13 13:58:14 GMT 2013 Olly Betts <olly@survex.com>
* backends/chert/chert_positionlist.cc: Remove 'Assert(rd);' since rd
is no longer a pointer.
Thu Jun 13 13:28:43 GMT 2013 Olly Betts <olly@survex.com>
* tests/harness/utestsuite.cc: Add missing GPL boilerplate and
copyright statements.
Thu Jun 13 13:26:07 GMT 2013 Olly Betts <olly@survex.com>
* common/compression_stream.cc,common/compression_stream.h: Add
missing GPL boilerplate and copyright statements.
Thu Jun 13 13:24:34 GMT 2013 Olly Betts <olly@survex.com>
* common/compression_stream.cc,common/compression_stream.h: Remove
unused header includes; don't use "using namespace std;" in a
header.
Thu Jun 13 08:30:26 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc: Remove 'Assert(rd);' since rd
is no longer a pointer.
Thu Jun 13 05:07:27 GMT 2013 Olly Betts <olly@survex.com>
* common/compression_stream.h: Update include guard to match source
file name.
Thu Jun 13 02:38:20 GMT 2013 Olly Betts <olly@survex.com>
* common/,net/length.h,net/serialise.h: Fix @file markup which wasn't
actually in a doxygen comment.
Thu Jun 13 02:14:22 GMT 2013 Olly Betts <olly@survex.com>
* preautoreconf: Remove needless use of perl prototype.
Tue Jun 11 00:40:37 GMT 2013 Olly Betts <olly@survex.com>
* common/remoteprotocol.h,docs/remote_protocol.rst: Bump
remote protocol version to 38.o.
Tue Jun 11 00:37:01 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* api/leafpostlist.cc,matcher/,net/serialise.cc,weight/weight.cc,
weight/weightinternal.cc,weight/weightinternal.h: Make collection
frequency available to Xapian::Weight subclasses. Extracted from
Gaurav Arora's LM branch.
Wed May 22 10:04:25 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: When generating ABI compatibility checks in
xapian/version.h, pass $CXXFLAGS and $CPPFLAGS to $CXXCPP as they
could contain options which affect the ABI (such as -fabi-version
for GCC). (Fixes #622)
Wed May 22 04:20:39 GMT 2013 Olly Betts <olly@survex.com>
* common/win32_uuid.cc: Microsoft GUIDs in binary form have reversed
byte order in the first three components compared to standard UUIDs,
so the same database would report a different UUID on Windows to
on other platforms. With this fix, the UUIDs of existing databases
will appear to change on Windows (except in rare "palindronic" cases).
Fri May 17 05:52:43 GMT 2013 Olly Betts <olly@survex.com>
* docs/overview.rst: Correct documentation for stub files specifying
"prog" remote databases.
Thu May 16 05:47:40 GMT 2013 Olly Betts <olly@survex.com>
* backends/chert/chert_dbcheck.cc: Code tweak for clarity.
Thu May 16 05:46:42 GMT 2013 Olly Betts <olly@survex.com>
* backends/chert/chert_dbcheck.cc: Fix database check that first docid
in each doclength chunk is more than the last docid in the previous
chunk - previously this didn't actually work.
Thu May 16 05:45:04 GMT 2013 Olly Betts <olly@survex.com>
* common/bitstream.h: Fix database check not to falsely report
"position table: Junk after position data" whenever there are 7
unused bits (7 is OK, *more* than 7 isn't).
Tue May 14 12:42:11 GMT 2013 Olly Betts <olly@survex.com>
* m4-macros/xapian-1.3.m4: Adjust XO_LIB_XAPIAN to strip _gitNNN
suffix from snapshot versions.
Sun May 12 06:11:36 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Simplify previous change.
Sun May 12 06:06:47 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Handle git snapshot naming when calculating REVISION.
Wed May 08 11:56:27 GMT 2013 Olly Betts <olly@survex.com>
* HACKING,INSTALL,Makefile.am,README,docs/Makefile.am,docs/install.rst,
docs/stemming.rst,languages/Makefile.mk,queryparser/Makefile.mk,
tests/Makefile.am,tests/perftest/perftest.cc: SVN -> git.
Wed May 08 08:51:22 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_version.cc,backends/chert/chert_version.cc:
Remove unused '#include <cstdio>'.
Mon May 06 11:10:25 GMT 2013 Olly Betts <olly@survex.com>
* api/omenquire.cc,configure.ac,include/xapian/enquire.h: Merge two
Enquire::get_eset() overloaded forms into one with a default value
for parameter min_wt.
Thu May 02 12:05:28 GMT 2013 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update for 1.3.1.
Thu May 02 11:13:30 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/weight.h,tests/api_nodb.cc,tests/api_weight.cc,
weight/tfidfweight.cc: Use lowercase letters for the TfIdfWeight
descriptions to match what SMART uses.
Wed May 01 05:13:07 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/database.h: Work around Apple's OS X SDK defining a
check() macro.
Tue Apr 30 13:51:53 GMT 2013 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Mon Apr 29 03:09:16 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_dbcheck.cc,backends/chert/chert_dbcheck.cc:
Use decode_interpolative_next() when checking database consistency.
We also now complain about any junk after the position data.
* common/bitstream.cc,common/bitstream.h: Remove the old version of
decode_interpolative() which unpacks into a std::vector.
Mon Apr 29 02:16:54 GMT 2013 Olly Betts <olly@survex.com>
* backends/chert/chert_positionlist.cc,
backends/chert/chert_positionlist.h: Backport positionlist changes
from brass.
Mon Apr 29 01:58:59 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc: No need to initialise the
BitReader object in the single-entry position list case.
Mon Apr 29 01:58:10 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc: Fix bug when reaching the last
positionlist entry in skip_to().
Mon Apr 29 00:46:10 GMT 2013 Olly Betts <olly@survex.com>
* tests/api_posdb.cc: Fix comment typos.
Mon Apr 29 00:27:42 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc: Fix handling of single-entry
position lists.
Sun Apr 28 23:45:02 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc: Fix BrassPositionList for case
when there's no positional information for a term.
Sun Apr 28 10:29:59 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc: Simplify setting of
have_started in BrassPositionList::skip_to().
Sun Apr 28 10:19:52 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc,
backends/brass/brass_positionlist.h,common/bitstream.h: Make the
BitReader object a member of BrassPositionList rather than tracking
a pointer to it.
Sun Apr 28 07:22:07 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc,common/bitstream.h: Reuse the
same BitReader object for each document rather than deleting the old
one and creating a new one.
Sun Apr 28 07:06:12 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc: Move check for reaching the
end after the next() in the loop in skip_to(), as we know we aren't
at the end on the first iteration, and we've now handled the case of
termpos == last before we get here.
Sun Apr 28 07:04:54 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc: We know what the last entry in
the position list is, so special case skip_to(last_entry) to just
move there rather than calling next() a lot of times.
Sun Apr 28 07:03:57 GMT 2013 Olly Betts <olly@survex.com>
* common/bitstream.h: We don't need to stack pos_j when doing lazy
interpolative decoding.
Sun Apr 28 06:48:01 GMT 2013 Olly Betts <olly@survex.com>
* common/bitstream.h: Store j and k before pos_j and pos_k as it's
fractionally more efficient.
Sun Apr 28 06:44:32 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc,
backends/brass/brass_positionlist.h,common/bitstream.cc,
common/bitstream.h: Hook up BrassPositionList to the new lazy
interpolative decoder.
Fri Apr 26 02:09:38 GMT 2013 Marius Tibeica <mtibeica@gmail.com>
* common/bitstream.cc,common/bitstream.h: Support reading entries from
an interpolative coded list one by one.
Thu Apr 25 10:57:02 GMT 2013 Olly Betts <olly@survex.com>
* docs/remote_protocol.rst: Correct error in documentation of
REPLY_DOCDATA message.
Thu Apr 25 10:44:56 GMT 2013 Marius Tibeica <mtibeica@gmail.com>
* common/bitstream.cc: renamed my_fls to highest_order_bit.
Thu Apr 25 06:49:48 GMT 2013 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remoteprotocol.h,
docs/remote_protocol.rst,net/remoteserver.cc: Prefix compress
list of terms and metadata keys in the remote protocol.
This requires a remote protocol major version bump.
Wed Apr 24 23:14:47 GMT 2013 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Fix comment typos.
Wed Apr 24 06:27:26 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian.h: Add catch for Wt defining a macro called slots,
like we already do for Qt.
Wed Apr 24 03:40:13 GMT 2013 Olly Betts <olly@survex.com>
* NEWS: Update.
Tue Apr 23 12:34:23 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc: Use a block's revision number to
check if it was newly allocated in the current revision, and
assert that the base file shows it block_free_at_start (previously
the check and assertion were the other way around).
Tue Apr 23 12:11:21 GMT 2013 Olly Betts <olly@survex.com>
* HACKING: Note macports needed for development work.
Tue Apr 23 11:41:17 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: Fix typo in doc comment.
Tue Apr 23 11:39:30 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: Disable error for direct inclusion
of xapian/version.h for now.
Sun Apr 21 07:49:38 GMT 2013 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: Fix quotes in new #error in version.h.
Sun Apr 21 06:25:57 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac,generate-exceptions,include/xapian/: Give an error if
user code tries to include API headers other than xapian.h directly.
Sat Apr 20 10:12:23 GMT 2013 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Generate '#include <config.h>' at
the start of the stemmer code.
Fri Apr 19 23:36:25 GMT 2013 Olly Betts <olly@survex.com>
* configure.ac: Remove empty default cases.
Wed Apr 17 03:06:57 GMT 2013 Olly Betts <olly@survex.com>
* NEWS: Update from 1.2.15 and ChangeLog.
Thu Apr 11 22:17:44 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_version.cc,backends/chert/chert_version.cc:
Call io_sync() on the version file when we create it.
Tue Apr 09 11:02:35 GMT 2013 Olly Betts <olly@survex.com>
* bin/xapian-delve.cc: If -v is specified more than once, show even
more info in some cases.
Tue Apr 09 09:40:02 GMT 2013 Olly Betts <olly@survex.com>
* tests/Makefile.am: Force automake to use the serial test driver,
which requires automake 1.12 (to recognise the serial-tests driver).
Mon Apr 08 06:30:40 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* weight/: Added tfidfweight.cc containing the implementation of the
TfIdfWeight class.
* include/xapian/weight.h: Added TfIdfWeight class for the tf-idf
weighting scheme.
* tests/api_weight.cc: Added tests for TfIdfWeight.
* tests/api_nodb.cc: Added simple tests for TfIdfWeight.
Sat Apr 06 00:21:34 GMT 2013 Olly Betts <olly@survex.com>
* m4-macros/xapian-1.3.m4: XO_LIB_XAPIAN now handles the user
specifying XAPIAN_CONFIG without a path - e.g.: "./configure
XAPIAN_CONFIG=xapian-config-1.3"
Thu Apr 04 12:02:36 GMT 2013 Olly Betts <olly@survex.com>
* common/Makefile.mk: Remove random comment.
Thu Apr 04 10:06:53 GMT 2013 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,tests/Makefile.am: Remove support for
'configure --enable-quiet', 'make QUIET=' and 'make QUIET=y' -
automake now supports 'configure --enable-silent-rules', 'make V=1'
and 'make V=0' which are broadly equivalent and more standard.
Thu Apr 04 09:58:35 GMT 2013 Olly Betts <olly@survex.com>
* HACKING: Update to note that automake 1.12.2 is now a hard
requirement.
Tue Apr 02 10:22:44 GMT 2013 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Comment typo fixes.
Tue Apr 02 09:47:14 GMT 2013 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Sync with latest
upstream version of lemon. The only notable change is a bug fix for
platforms where sizeof(long) < sizeof(void*) (LLP64 model).
Tue Apr 02 05:51:12 GMT 2013 Olly Betts <olly@survex.com>
* HACKING: Tell vim to syntax highlight as rst.
Tue Apr 02 05:50:26 GMT 2013 Olly Betts <olly@survex.com>
* HACKING: Update for recent changes to bootstrap. In particular, we
now bootstrap snapshots with automake 1.13.1.
Fri Mar 29 05:18:11 GMT 2013 Olly Betts <olly@survex.com>
* net/tcpclient.cc: Fix __WIN32__ conditional, accidentally broken in
last change to this file.
Thu Mar 28 04:19:26 GMT 2013 jiangwen jiang <jiangwen127@gmail.com>
* api/expanddecider.cc,include/xapian/expanddecider.h,
tests/api_anydb.cc,tests/api_nodb.cc: Add ExpandDeciderFilterPrefix
class to only return terms with a particular prefix. (fixes #467)
Thu Mar 21 23:55:26 GMT 2013 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add test coverage for change to
QueryParser CJK handling in previous commit.
Thu Mar 21 07:21:30 GMT 2013 Greg Banks <gnb@fastmail.fm>
* queryparser/cjk-tokenizer.cc,queryparser/termgenerator_internal.cc,
tests/termgentest.cc: Some CJK codepoints are also punctuation and
hence not word characters, and should not really be used as fodder
for generating N-grams. Also fixes a pre-existing bug where every
second sequence of N-grammable CJK characters in the text failed to
generate the first 2-gram.
Sun Mar 17 20:45:48 GMT 2013 Olly Betts <olly@survex.com>
* common/pretty.h: Restore space after comma in output.
Sun Mar 17 03:59:52 GMT 2013 Dan Colish <dcolish@gmail.com>
* common/pretty.h: Correct recursion issue.
Sun Mar 17 02:58:52 GMT 2013 Dan Colish <dcolish@gmail.com>
* common/pretty.h: Resolve ambiguity by moving operator| to a member
function of PrettyOStream
Sat Mar 16 21:43:32 GMT 2013 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: std::less provides a total order over
pointers, so we can just use that to implement
filter_group_id::operator<() - we only need a consistent order so we
can use it as the key to a std::map.
Fri Mar 15 06:36:32 GMT 2013 Dan Colish <dcolish@gmail.com>
* backends/brass/brass_table.cc,backends/chert/chert_table.cc,
common/pretty.h: Avoid needlessly casting away const-ness in
debug logging.
Fri Mar 15 06:31:32 GMT 2013 Olly Betts <olly@survex.com>
* matcher/multiandpostlist.cc,matcher/multixorpostlist.cc: Add a
couple more LOGCALL annotations.
Fri Mar 15 06:27:42 GMT 2013 Dan Colish <dcolish@gmail.com>
* api/registry.cc,common/pretty.h: Fix incorrect LOGCALL return value.
Fri Mar 15 06:24:11 GMT 2013 Olly Betts <olly@survex.com>
* api/registry.cc,common/Makefile.mk,common/registryinternal.h:
common/registryinternal.h is only included by api/registry.cc so
just inline its contents.
Fri Mar 15 06:11:14 GMT 2013 Olly Betts <olly@survex.com>
* api/registry.cc: No need to explicitly default initialise std::map
members or the base class.
Fri Mar 08 04:05:31 GMT 2013 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc,backends/chert/chert_compact.cc: Fix
multipass compaction not to damage document values, and to merge the
database stats correctly. (fixes #615)
* tests/api_compact.cc: Add regression test compactmultipass1.
Thu Mar 07 00:34:46 GMT 2013 Aarsh Shah <aarshkshah1992@gmail.com>
* tests/api_anydb.cc: Added tradweight4 testcase to test TradWeight
with an RSet for weighting documents.
Wed Mar 06 08:55:12 GMT 2013 Olly Betts <olly@survex.com>
* HACKING: gs package has been replaced by ghostscript package in
current Debian and Ubuntu releases.
Tue Feb 19 04:17:19 GMT 2013 Olly Betts <olly@survex.com>
* common/Tokeniseise.pm: Add the ability to append lines to the
header.
Fri Feb 15 05:37:09 GMT 2013 Olly Betts <olly@survex.com>
* common/realtime.h: Fix RealTime::sleep() to calculate the delta to
the time we want to sleep to the right way round. Previously we
wouldn't sleep if we were before the deadline, but would sleep if
the deadline had already passed (and by the amount the deadline had
passed)! And on Windows, fix the sleep to be for the delta rather
than 43+ years (the time elapsed since the start of 1970). (Fixes
#472)
Fri Feb 15 04:09:28 GMT 2013 Olly Betts <olly@survex.com>
* api/queryinternal.cc: Need <functional> for mem_fun().
Fri Feb 15 03:56:32 GMT 2013 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Don't provide explicit template types to
make_pair - it isn't useful, and breaks with C++11. Fixes build
error with MSVC2012.
Thu Jan 31 23:39:08 GMT 2013 Olly Betts <olly@survex.com>
* common/Tokeniseise.pm: Put the binary chop tables with the larger
ones last, so the offsets to the start of them are more likely to
fit into a byte.
Wed Jan 30 04:17:07 GMT 2013 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/Tokeniseise.pm,languages/Makefile.mk,
languages/collate-sbl: Factor out the generic code to create a
string-to-enum mapping table into a perl module so we can reuse
it elsewhere.
Mon Jan 28 01:44:53 GMT 2013 Olly Betts <olly@survex.com>
* examples/quest.cc: Fix to build with Sun Studio 12 compiler.
(ticket#611)
Thu Jan 24 22:40:12 GMT 2013 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/keyword.cc,common/keyword.h: Commit new
keyword lookup function needed by previous commit.
Thu Jan 24 22:26:19 GMT 2013 Olly Betts <olly@survex.com>
* languages/: Generate a compact and efficient table to convert
language names to enum codes, which we can then use a C switch
statement to dispatch. The table first checks the token length,
and then does a binary chop on tokens of the same length. This
is both faster and smaller than the approach we were using, with
the benefit that the table is auto-generated.
Wed Jan 23 00:51:42 GMT 2013 Olly Betts <olly@survex.com>
* matcher/selectpostlist.cc,matcher/selectpostlist.h: Check document
matches weight threshold before checking positional information,
which speeds up slow phrase searches (tweaked version of
positional-query-weight-check-first.patch from #394).
Thu Jan 17 06:48:41 GMT 2013 Olly Betts <olly@survex.com>
* tests/api_stem.cc: Extend stem2 to ensure description of the stemmer
isn't the same as the description of Stem("none"). Fix description
of testcase stemlangs2.
Thu Jan 17 02:32:31 GMT 2013 Olly Betts <olly@survex.com>
* HACKING: Update link to new home of autotools tutorial.
Wed Jan 16 02:40:20 GMT 2013 Olly Betts <olly@survex.com>
* HACKING,Makefile.am: Rename CHK_SOURCES to check_sources - variables
ending _SOURCES usually have a special meaning in automake, so it's
confusing to have one which doesn't.
Wed Jan 16 01:55:50 GMT 2013 Olly Betts <olly@survex.com>
* api/omenquire.cc: Don't cache documents retrieved by
MSet::get_document() unless they were requested with fetch(). This
avoids using a lot of memory when many MSet entries are retrieved.
(Fixes #604)
Wed Jan 09 11:49:58 GMT 2013 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog and 1.2 branch.
Fri Jan 04 23:14:33 GMT 2013 Olly Betts <olly@survex.com>
* net/progclient.cc: Fix typo so we actually use SOCK_CLOEXEC.
Fri Jan 04 23:14:01 GMT 2013 Olly Betts <olly@survex.com>
* common/safesyssocket.h: We need the same workaround for socket() too.
Fri Jan 04 04:41:17 GMT 2013 Olly Betts <olly@survex.com>
* common/safesyssocket.h: On Linux at least, sometimes SOCK_CLOEXEC is
defined but the kernel doesn't handle it in socketpair(), so add a
wrapper which will retry without SOCK_CLOEXEC in this case. Noticed
on Ubuntu precise.
Sat Dec 29 17:53:30 GMT 2012 Olly Betts <olly@survex.com>
* docs/quickstart.rst: Fix seriously outdated statement that Xapian
doesn't create the database directory - that changed in 0.7.2
(release 2003-07-11), pointed out by aarsh on #xapian.
Thu Dec 27 06:06:30 GMT 2012 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Adjust handling of Unicode
opening/closing double quotes - if a quoted boolean term was started
with ASCII double quote, then only ASCII double quote can end it, as
otherwise it's impossible to quote a term containing Unicode double
quotes.
* tests/queryparsertest.cc: Update testcases.
Sun Dec 23 18:16:52 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: Fix typo in previous commit.
Sun Dec 23 18:06:45 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: Use the new flock()-based flint-compatible locking
under DJGPP, and remove special cases to disable chert and brass
under DJGPP (untested, as I no longer have a DJGPP setup or
cross-compiler).
Sun Dec 23 17:51:36 GMT 2012 Olly Betts <olly@survex.com>
* backends/flint_lock.cc,backends/flint_lock.h: Add flock() based
locking implementation, which is much simpler than using fcntl() due
to saner semantics around releasing locks when closing other
descriptors on the same file (at least on platforms where flock()
isn't just a compatibility wrapper around fcntl()). We can't simply
switch to this without breaking locking compatibility with previous
releases, though it might be useful for porting to platforms without
fcntl() locking. Also, flock() apparently doesn't work over NFS -
perhaps that's OK, but we should at least check the failure mode.
Sat Dec 22 06:29:23 GMT 2012 Olly Betts <olly@survex.com>
* backends/flint_lock.cc: Only set close-on-exec on the lockfile fd if
we are able to clear it in the child process, and clear it in the
child process if we set it when we opened it.
Sat Dec 22 06:14:40 GMT 2012 Olly Betts <olly@survex.com>
* backends/flint_lock.cc,net/progclient.cc: Use SOCK_CLOEXEC with
socketpair(), and then clear the close-on-exec flag for child process
end of the pair before we call exec.
Sat Dec 22 06:13:44 GMT 2012 Olly Betts <olly@survex.com>
* net/progclient.cc: Remove O_CLOEXEC where we open stderr on /dev/null
before calling exec as we want that fd to survive the exec!
Sat Dec 22 05:53:12 GMT 2012 Olly Betts <olly@survex.com>
* HACKING,backends/flint_lock.cc,common/Makefile.mk,
common/safesyssocket.h,net/progclient.cc,net/tcpclient.cc,
net/tcpserver.cc,tests/harness/backendmanager_remotetcp.cc:
Use SOCK_CLOEXEC where available, and try FD_CLOEXEC if SOCK_CLOEXEC
isn't available.
Sat Dec 22 04:09:23 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/,backends/chert/,backends/flint_lock.cc,
common/debuglog.cc,common/replicate_utils.cc,common/safefcntl.h,
net/progclient.cc,net/remoteconnection.cc,
tests/harness/testsuite.cc: If O_CLOEXEC is supported, pass it to
open() so fds we open are closed if the application using us calls
exec().
Fri Dec 21 03:48:36 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: Don't autodisable the remote backend if we fail to find
a required function. It's more likely the user needs to pass
LIBS=-lfoo and it's more helpful to error out so they can do that, or
pass --disable-backend-remote if they really don't want it, rather
than having them not notice the automatic disabling until after
they've built. This also matches what we do for the disk based
backends.
Fri Dec 21 03:48:11 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: Expand comment about DJGPP.
Fri Dec 21 03:47:13 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: Update comment - we've supported the prog backend on
Windows for more than 5 years now!
Fri Dec 21 03:32:13 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Use O_BINARY in replication tests.
Fri Dec 21 03:24:37 GMT 2012 Olly Betts <olly@survex.com>
* common/replicate_utils.cc: Make posixy_open() always use O_BINARY.
* backends/brass/brass_btreebase.cc,backends/brass/brass_database.cc,
backends/brass/brass_databasereplicator.cc,
backends/chert/chert_btreebase.cc,
backends/chert/chert_databasereplicator.cc,common/posixy_wrapper.cc:
Don't pass O_BINARY to posixy_open() in the places where we were
(which wasn't everywhere, probably causing replication bugs under
__WIN32__).
Fri Dec 21 02:57:56 GMT 2012 Olly Betts <olly@survex.com>
* net/remoteconnection.cc,net/remoteconnection.h: Only "outline"
RemoteConnection dtor under __WIN32__.
Fri Dec 21 02:56:28 GMT 2012 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc: Make the UnimplementedError for a
MatchSpy which doesn't implement name() clearer that it's this
particular subclass which can't be used remotely, not all MatchSpy
objects.
Thu Dec 20 22:27:40 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: Use user-specified LIBS for configure tests, which is
what's expected, and provides a way for the user to tell configure
where to find library functions which configure can't find for
itself.
Thu Dec 20 22:07:19 GMT 2012 Olly Betts <olly@survex.com>
* api/compactor.cc,api/replication.cc,backends/brass/,backends/chert/,
common/,net/remoteconnection.cc: Rename msvc_posix_rename(), etc to
posixy_rename() (avoid a posix_ prefix as that's used by some library
functions, and these aren't necessarily 100% POSIX compatible), and
provide macro versions on Unix, so we can avoid a #ifdef at every
call site.
Thu Dec 20 20:57:18 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: socketpair() needs -lnetwork on Haiku.
Thu Dec 20 02:30:12 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_databasereplicator.cc,
backends/chert/chert_databasereplicator.cc: Simplify how we open the
.DB file on the replication slave to just call open() once with
O_CREAT, rather than once without, than stat() if that fails, and
then again with O_CREAT|O_TRUNC if stat() doesn't show an ordinary
file exists.
Thu Dec 20 02:05:12 GMT 2012 Olly Betts <olly@survex.com>
* api/compactor.cc,common/,languages/compiler/syswords2.h,
tests/api_compact.cc: Remove extra blank lines at end of files.
Thu Dec 20 01:54:47 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,backends/chert/chert_database.cc:
Fix "if (fd > 0)" tests to be "if (fd >= 0)" in code related to
replication. In practice this is unlikely to actually have caused
problems in real world cases.
Sun Dec 16 23:10:13 GMT 2012 Olly Betts <olly@survex.com>
* bin/Makefile.mk: INCLUDES is always used, AM_CPPFLAGS isn't if there
are per-executable CPPFLAGS, so add AM_CPPFLAGS explicitly when we
use per-executable CPPFLAGS.
Fri Dec 14 21:25:58 GMT 2012 Olly Betts <olly@survex.com>
* Makefile.am,languages/Makefile.mk,queryparser/Makefile.mk,
tests/Makefile.am: In automake, INCLUDES is now deprecated in favour
of AM_CPPFLAGS so update to use the latter.
Tue Nov 27 05:39:30 GMT 2012 Olly Betts <olly@survex.com>
* examples/quest.cc: Need <algorithm> for lower_bound().
Mon Nov 26 23:46:43 GMT 2012 Olly Betts <olly@survex.com>
* examples/quest.cc: Align option descriptions in --help output, and
make the initial letter of such descriptions consistently lowercase.
Mon Nov 26 19:52:50 GMT 2012 Olly Betts <olly@survex.com>
* examples/quest.cc: Add --flags command line option to allow setting
arbitrary QueryParser flags.
Mon Nov 26 03:02:03 GMT 2012 Olly Betts <olly@survex.com>
* api/valuerangeproc.cc: Move 3 declarations to where we first use the
variables.
Mon Nov 26 02:59:41 GMT 2012 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: We no longer use the highest weighted
MSet entry to calculate percentages, so stop searching for it.
(Spotted by cppcheck)
Mon Nov 26 02:59:02 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
Remove unused variables (spotted by cppcheck).
Mon Nov 26 02:12:19 GMT 2012 Olly Betts <olly@survex.com>
* api/maptermlist.h,api/matchspy.cc,api/omdatabase.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_positionlist.cc,
backends/multi/multi_postlist.cc,backends/remote/net_termlist.cc,
bin/xapian-delve.cc,matcher/exactphrasepostlist.cc,
matcher/mergepostlist.cc,matcher/phrasepostlist.cc,
tests/harness/backendmanager.cc: Prefer ++i to i++.
Fri Nov 23 03:38:39 GMT 2012 Olly Betts <olly@survex.com>
* HACKING,Makefile.am: With lcov 1.10, we no longer need any of our
hacky workarounds, so make this a requirement and simplify the rules
in the makefile.
Thu Nov 22 23:34:09 GMT 2012 Olly Betts <olly@survex.com>
* Makefile.am: Pass -f to lcov, which should avoid the need for the
patch we've been applying to lcov.
Thu Nov 22 01:34:05 GMT 2012 Olly Betts <olly@survex.com>
* backends/flint_lock.cc: Close excess file handles before we get the
fcntl() lock, just in case one of those file handles is open on the
lock file.
* tests/api_backend.cc: Add regression test lockfilealreadyopen1.
Thu Nov 22 00:35:51 GMT 2012 Olly Betts <olly@survex.com>
* common/closefrom.cc,configure.ac: On platforms with the F_MAXFD
fcntl but without closefrom(), we were failing to close the highest
numbered open fd in our closefrom() replacement. We now also work
around valgrind not hiding some extra fds it has open, but then
complaining if we try to close them.
Wed Nov 21 22:50:21 GMT 2012 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: When reporting valgrind error, skip any
warnings.
Tue Nov 20 07:26:24 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: msetweights1 makes multidb1 and multidb2
redundant, so remove them.
Tue Nov 20 07:21:46 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Extend msetweights1 to test the case where
only even docids match, so in the multi_* case, only docids from
one subdatabase match.
Tue Nov 20 07:04:55 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Add testcase msetweights1 which checks we
get the weights we expect for a two term query.
Mon Nov 19 21:17:33 GMT 2012 Olly Betts <olly@survex.com>
* queryparser/termgenerator.cc: TermGenerator internal member can
never be NULL, so drop NULL test.
Sat Nov 17 20:54:50 GMT 2012 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Remove compatibility code for valgrind <
3.3.0, since we reject such old versions at configure time.
Sat Nov 17 00:05:36 GMT 2012 Olly Betts <olly@survex.com>
* matcher/localsubmatch.cc: Optimise an unweighted query term which
matches all the documents in a subdatabase to use the "MatchAll"
postlist. (ticket#387)
Fri Nov 16 23:36:34 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_weight.cc: New testcase checkstatsweight1 which checks a
weight subclass gets the correct values for all the stats.
Fri Nov 16 07:30:18 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: Generate a check for compatible _DEBUG
settings if built with MSVC. (ticket#389)
Fri Nov 16 01:28:55 GMT 2012 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Improve a couple of comments.
Fri Nov 16 01:25:28 GMT 2012 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Implicitly close any unclosed brackets
at the end of the query string. Patch from Sehaj Singh Kalra.
* tests/queryparsertest.cc: Adjust existing testcases and feature tests.
Thu Nov 15 23:57:10 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_query.cc: Add testcase xor3 to ensure that XOR handles all
remaining subqueries running out at the same time.
Thu Nov 15 10:57:32 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_query.cc: One test here does need a backend, and it seems
a more useful category, so drop the "don't need a backend" part from
the @brief documentation comment.
Thu Nov 15 09:29:47 GMT 2012 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix calculation of 0.0/0.0 in some cases.
This then got used as a minimum weight, but it seems this gives -nan
(at least on x86-64 Linux) so it may have been harmless in practice.
Thu Nov 15 05:39:47 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Eliminate workarounds for egcs 1.1.2 (certainly
we no longer support a compiler that old, but maybe some newer
compilers have the same issue, so I've rewritten the code to iterate
backwards over one MSet, which is a useful feature to have coverage
for).
Thu Nov 15 05:28:40 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Fix reversebool1 and reversebool2 to actually
use the result when they check an MSetIterator against end().
Thu Nov 15 01:55:15 GMT 2012 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc: Add --quiet option to xapian-replicate, and
be a little more verbose by default.
Thu Nov 15 01:54:14 GMT 2012 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc: xapian-replicate --force-copy now only
forces a single copy, and then attempts to replicate incrementally.
Thu Nov 15 00:51:50 GMT 2012 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc: Tweak code layout.
Wed Nov 14 21:40:45 GMT 2012 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Allow files > 32G to be be copied by
replication.
Tue Nov 13 03:44:03 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Pass 'true' or 'false' for 'bool' parameter,
not '0' or '1' (especially confusing as the two previous parameters
were integers which were often 0 or 1...)
Tue Nov 13 03:34:42 GMT 2012 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc,net/replicatetcpclient.cc,
net/replicatetcpclient.h: Add --full-copy option to xapian-replicate.
* tests/api_replicate.cc: New testcase replicate6 which tests the same
code path used by 'xapian-replicate --full-copy'.
Tue Nov 13 02:55:44 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Use '++' instead of '+= 1'. Drop superfluous
'return;' at end of function returning void.
Tue Nov 13 01:12:33 GMT 2012 Olly Betts <olly@survex.com>
* tests/harness/unixcmds.cc: Tweak to avoid default initialisation of
string.
Mon Nov 12 23:25:14 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: GCC 4.6.3 doesn't optimise the asr idion
either. Add links to the PR I filed and the GCC documentation that
signed right shift does sign extension.
Mon Nov 12 10:21:19 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
character database to 6.2.0.
* tests/api_unicode.cc: Add tests for U+20BA, added in 6.2.0.
Sat Nov 10 05:39:16 GMT 2012 Olly Betts <olly@survex.com>
* api/leafpostlist.cc,matcher/multiandpostlist.cc: Improved fix for
#590 - count all matching LeafPostList objects with a Weight object
rather than trying to prune at the MultiAndPostList level based on
max_wt (if wdf is always zero for a term, BM25 gives max_wt of 0,
which leads to us never counting that subquery.
* tests/api_percentages.cc: Add regression test topercent7.
Fri Nov 09 04:25:32 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_percentages.cc: Note bug number in regression test for
#590.
Tue Nov 06 22:42:31 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc: Restore two missing lines in database
checking where we report a block with the wrong level.
Tue Oct 16 11:19:42 GMT 2012 Olly Betts <olly@survex.com>
* api/compactor.cc,backends/dbcheck.cc,backends/dbfactory.cc,
common/Makefile.mk: Fix to build when configured with
--disable-backend-brass --disable-backend-chert. (ticket#586)
Mon Oct 15 04:07:30 GMT 2012 Olly Betts <olly@survex.com>
* HACKING: automake 1.12.4 is now used to generate snapshots and
releases.
Sat Oct 13 09:34:21 GMT 2012 Olly Betts <olly@survex.com>
* weight/weightinternal.h: Revert addition of "#include <config.h>" in
r16820.
* HACKING: Document that we don't include <config.h> from header
files, and the reason why.
Sat Oct 13 09:00:23 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Fix documentation comment typos:
"covert" -> "convert".
Thu Oct 11 12:28:30 GMT 2012 Olly Betts <olly@survex.com>
* docs/valueranges.rst: Update documentation to reflect change in
Xapian 1.1.2 - DateValueRangeProcessor and StringValueRangeProcessor
now support a prefix or suffix.
Mon Oct 01 05:05:54 GMT 2012 Olly Betts <olly@survex.com>
* HACKING: Try to make it clearer we're looking for a dual-licence
on submitted patches.
Tue Sep 25 08:09:08 GMT 2012 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/append_filename_arg.h,
tests/harness/unixcmds.cc: Split out append_filename_argument() into
its own file so it can be used elsewhere.
Tue Sep 25 06:46:03 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Mark MSetIterator::at_end() and
ESetIterator::at_end() as @private @internal so that they don't
appear in the API docs.
Tue Sep 25 06:45:07 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Remove FIXMEs about converting MSetIterator
and ESetIterator to use Internal classes - as HACKING notes, the
current implementation is that way for performance reasons.
Tue Sep 25 06:36:37 GMT 2012 Olly Betts <olly@survex.com>
* tests/harness/unixcmds.cc: Escape filenames on POSIX platforms by
wrapping in single quotes and specially handling single quotes in
the filename - previously newlines in filenames got eaten by the
shell.
Tue Sep 25 06:32:36 GMT 2012 Olly Betts <olly@survex.com>
* tests/harness/unixcmds.cc: Protect filenames which start with '-' on
MS Windows like we already do on other platforms. The built-in
commands generally only interpret '/' as the character introducing a
command line option (which we already convert to '\'), but many
ported programs understand '-' too/instead.
Sat Aug 25 16:09:50 GMT 2012 Dan Colish <dcolish@gmail.com>
* include/xapian/enquire.h: Add function to test MSetIterator and
ESetIterator exhaustion against the size of the underlying interee
since comparison against an empty Itor is not suitable for an
exhaustion test. Add FIXME that these Iterators should use an Internal
class.
Thu Aug 09 21:50:52 GMT 2012 Dan Colish <dcolish@gmail.com>
* weight/weightinternal.h: Include config.h since macros are used
from it.
Wed Aug 08 15:40:38 GMT 2012 Dan Colish <dcolish@gmail.com>
* api/queryvector.h: Backout previous fix. When compiling with -O0,
increase the stack limit to > 8M when running scalability tests.
Wed Aug 08 02:10:21 GMT 2012 Dan Colish <dcolish@gmail.com>
* api/queryvector.h: Fix SIGBUS when clearing QueryVectors
Wed Aug 01 15:25:25 GMT 2012 Dan Colish <dcolish@gmail.com>
* HACKING,Makefile.am,tests/Makefile.am: Fix non-portable warnings
from automake, add HACKING doc for check-syntax make target
Wed Aug 01 04:54:18 GMT 2012 Dan Colish <dcolish@gmail.com>
* Makefile.am,api/Makefile,backends/Makefile,backends/brass/Makefile,
backends/chert/Makefile,backends/inmemory/Makefile,
backends/multi/Makefile,backends/remote/Makefile,bin/Makefile,
common/Makefile,examples/Makefile,expand/Makefile,
geospatial/Makefile,include/Makefile,include/xapian/Makefile,
languages/Makefile,matcher/Makefile,net/Makefile,
queryparser/Makefile,tests/harness/Makefile,unicode/Makefile,
weight/Makefile: Add check-syntax target to Makefiles to support
editor syntax checks
Sun Jul 29 15:32:00 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: Bump LIBRARY_VERSION_INFO so I can package a snapshot
cleanly.
Tue Jul 24 01:35:17 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc,
queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
tests/queryparsertest.cc: Add FieldProcessor class (ticket#128) -
currently marked as an experimental API while we sort out how best
to sort out exactly how it interacts with other QueryParser features.
Tue Jul 24 01:19:03 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Add extra DateValueRangeProcessor
constructor overloaded form so that in DateValueRangeProcessor(1,
"date:"), the const char * gets interpreted as std::string rather
than bool.
* tests/queryparsertest.cc: Add regression test.
Thu Jul 19 05:32:04 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_dbcheck.h,
backends/inmemory/inmemory_alltermslist.cc,bin/xapian-delve.cc: Fix
filenames in comments which mismatch actual name of file.
Thu Jul 19 05:27:38 GMT 2012 Olly Betts <olly@survex.com>
* queryparser/termgenerator_internal.cc: Remove "FIXME: Add API to
allow control of how stemming is used?", as we have now added such
an API.
Thu Jul 19 05:24:49 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/termgenerator.h,queryparser/termgenerator.cc,
queryparser/termgenerator_internal.cc,
queryparser/termgenerator_internal.h,tests/termgentest.cc: Add new
method TermGenerator::set_max_word_length() to allow this limit to
be adjusted by the user.
Mon Jul 16 03:34:27 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Clarify that the "reverse" parameter of
set_sort_by_relevance_then_value() and
set_sort_by_relevance_then_key() only affects the ordering of the
value/key part of the sort.
Fri Jul 13 04:55:26 GMT 2012 Dan Colish <dcolish@gmail.com>
* matcher/multimatch.cc: Remove duplicate import
Thu Jul 12 05:13:57 GMT 2012 Olly Betts <olly@survex.com>
* common/debuglog.cc: Preserve errno over debug logging calls, so they
can safely be added to code which expects errno not to change.
Mon Jul 02 05:27:43 GMT 2012 Dan Colish <dcolish@gmail.com>
* backends/brass/brass_databasereplicator.cc: Use new/delete to avoid
variable length array gcc extension and comply with c++98
Mon Jul 02 05:02:14 GMT 2012 Dan Colish <dcolish@gmail.com>
* api/omdatabase.cc,tests/api_wrdb.cc: Prefer container.empty() to
container.size() == 0.
Sun Jul 01 10:46:19 GMT 2012 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog, 1.2.11 and 1.2.12.
Fri Jun 29 15:32:11 GMT 2012 Dan Colish <dcolish@>
* tests/harness/testsuite.cc: Add safeunistd.h unconditionally for
isatty, required by GCC 4.7
Wed Jun 27 10:45:13 GMT 2012 Olly Betts <olly@survex.com>
* AUTHORS: Add GSoC students.
Tue Jun 26 08:45:03 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian.h: Add check for Qt headers being included before us
and defining 'slots' as a macro - if they are, give a clear error
advising how to work around this.
Thu Jun 14 23:48:15 GMT 2012 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Correction - we don't "create a lock file", we
"lock a file".
Tue Jun 12 13:08:58 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Make sure XAPIAN_MAX_CHANGESETS gets unset
after testcases which set it, so further testcases don't waste time
generating changesets.
Tue Jun 12 12:11:51 GMT 2012 Olly Betts <olly@survex.com>
* docs/replication.rst: The value of XAPIAN_MAX_CHANGESETS does now
actually determine how many changesets we keep.
Tue Jun 12 01:20:59 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: Force link_all_deplibs_CXX=no for Solaris.
Tue Jun 12 01:08:17 GMT 2012 Olly Betts <olly@survex.com>
* xapian-config.in: Don't interpret a missing .la file as meaning that
we only have static libraries.
Sun Jun 10 12:57:16 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
backends/brass/brass_check.cc: Remove is_empty(), tweak
calculate_last_block() to calculate the bit map size correctly in
the case of an empty table, and use the bit map size instead of
is_empty() in xapian-check.
* backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h,
backends/chert/chert_check.cc: Make equivalent changes for chert.
Sun Jun 10 11:27:52 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/brass/brass_table.h: We don't
need the workaround for existing tables which were built with a 32
bit item count for brass, since that bug was fixed in 1.1.4, which
is the same version which brass was added in.
Sun Jun 10 11:20:58 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h:
Remove unused copy constructors for BrassTable_base and
ChertTable_base.
Wed Jun 06 11:10:26 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Note that STEM_ALL_Z was added in
1.2.11. Change already made on 1.2 branch.
Tue Jun 05 06:51:12 GMT 2012 Olly Betts <olly@survex.com>
* common/compression_stream.cc,common/compression_stream.h: Move the
default argument to the CompressionStream constructor to the header
and mark the constructor as explicit, since it has a single argument
form.
Tue Jun 05 06:41:22 GMT 2012 Olly Betts <olly@survex.com>
* api/queryvector.h: Fix somewhat dubious warning from clang.
Tue Jun 05 06:33:09 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: Overhaul handling of compilers which pretend to be GCC,
using a simple "case" on the preprocessed output of '__INTEL_COMPILER
__clang__' to tell which is in use. We now explicitly check for
clang, and only pass it warning flags it actually understands. GCC
4.0 is now lumped in with 3.*, since we handle it exactly the same.
Enable -Wdouble-promotion for GCC >= 4.6. Check for symbol
visibility support under any GCC-alike (which means we now run the
test with Intel's compiler). Move the check for -Bsymbolic-functions
to be run for all compilers.
Mon Jun 04 06:21:02 GMT 2012 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: Test if we fail to open a stub database file
in Xapian::Auto::open_stub() and throw an exception if so.
* tests/api_backend.cc: Add regression test stubdb7.
Sun Jun 03 11:43:44 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/query.h: Add second fake specialised form of the
templated iterator Query constructor, for use in the Java bindings.
Sat Jun 02 12:15:11 GMT 2012 Olly Betts <olly@survex.com>
* docs/scalability.rst: Update gmane size, fix a typo, tweak wording.
Sat Jun 02 12:10:55 GMT 2012 Olly Betts <olly@survex.com>
* Makefile.am,api/omdocument.cc,api/omenquire.cc,backends/brass/,
backends/chert/,bin/xapian-delve.cc,common/getopt.cc,configure.ac,
docs/,m4-macros/xapian-1.3.m4,matcher/multimatch.cc,preautoreconf,
tests/Makefile.am,tests/api_db.cc,tests/harness/testsuite.h,
tests/harness/testutils.h: Change `...' quoting in prose to '...'.
Fri Jun 01 07:40:48 GMT 2012 Olly Betts <olly@survex.com>
* HACKING,Makefile.am: If you run "make coverage-check" by hand, the
default of compressed HTML is unhelpful, so don't default to passing
--html-gzip to genhtml, but instead add support for GENHTML_ARGS.
Thu May 31 11:41:19 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_weight.cc: Add test that init() is now called for the
term-independent weight contribution.
Thu May 31 11:23:05 GMT 2012 Olly Betts <olly@survex.com>
* weight/bm25weight.cc: Avoid use of undefined values when k1 or b are
zero.
Wed May 30 21:50:54 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_matchspy.cc: Use a cached generated database for matchspy2
and matchspy4.
Wed May 30 13:22:54 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/weight.h,weight/weight.cc: We were failing to call
init() for Weight objects providing the term-independent weight.
These now get called with init(0.0).
Wed May 30 13:13:03 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/weight.h: Remove duplicate "need_stat(WDF);" calls,
accidentally added by merge of opsynonym branch in r12609.
Wed May 30 07:44:23 GMT 2012 Olly Betts <olly@survex.com>
* weight/bm25weight.cc: Fix use of uninitialised value found by new
bm25weight4 testcase.
Wed May 30 05:38:58 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_weight.cc: Add tests for BM25 parameter combinations where
doclen shouldn't affect the weights.
Wed May 30 05:11:34 GMT 2012 Olly Betts <olly@survex.com>
* tests/Makefile.am: Move api_geospatial.cc into alphabetical order.
Wed May 30 05:07:51 GMT 2012 Olly Betts <olly@survex.com>
* weight/bm25weight.cc,weight/tradweight.cc: Throw SerialisationError
not NetworkError if unserialise() fails.
* tests/.gitignore,tests/Makefile.am,tests/api_weight.cc: Add test
coverage for this.
Wed May 30 05:01:33 GMT 2012 Olly Betts <olly@survex.com>
* weight/tradweight.cc: BM25Weight -> TradWeight in exception message.
Wed May 30 04:28:43 GMT 2012 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Fix feature test added for STEM_ALL_Z.
Tue May 29 07:29:01 GMT 2012 Olly Betts <olly@survex.com>
* tests/harness/testutils.cc,tests/harness/testutils.h: Remove unused
test helper mset_range_is_same_percents() (thanks, lcov!)
Tue May 29 04:10:07 GMT 2012 Olly Betts <olly@survex.com>
* tests/generate-api_generated: Test that the string returned by a
get_description() method isn't empty.
Tue May 29 03:54:15 GMT 2012 Olly Betts <olly@survex.com>
* generate-exceptions: Use function attributes in generated error.h.
Tue May 29 02:10:23 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac,tests/runsrv.in: In the testsuite, only run remote
servers under valgrind if x87 FP instructions are in use.
Tue May 29 00:24:42 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/: Use the new function attributes on various API
methods.
* tests/api_wrdb.cc: get_termfreq() is now marked as pure, so the
testsuite needs to actually use the return value to check its
exception behaviour.
Mon May 28 22:31:21 GMT 2012 Olly Betts <olly@survex.com>
* api/query.cc,api/queryinternal.cc,api/queryinternal.h,
include/xapian/query.h: Pass vector<pair<Xapian::termpos>, string> >&
argument to Query::Internal::gather_terms() as a void* to avoid
having to include <vector> in query.h.
Mon May 28 05:07:02 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/attributes.h: Remove unused XAPIAN_NOTHROW_API_METHOD
as we're handling that a different way instead.
Mon May 28 00:41:55 GMT 2012 Olly Betts <olly@survex.com>
* docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Hide new
function attribute macros from doxygen.
Sun May 27 14:04:34 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/query.h: Use "Internal" instead of "Query::Internal"
in constructor prototype argument list for consistency with other
cosntructors, and so this constructor gets ignored by SWIG.
Sun May 27 07:38:56 GMT 2012 Olly Betts <olly@survex.com>
* exception_data.pm: Fix typo to fix warning and so that XAPIAN_NOTHROW
on a method will work.
Sun May 27 01:43:30 GMT 2012 Olly Betts <olly@survex.com>
* exception_data.pm,include/Makefile.mk,include/xapian.h,
include/xapian/attributes.h,include/xapian/unicode.h: Add
XAPIAN_CONST_FUNCTION, XAPIAN_PURE_FUNCTION, and XAPIAN_NOTHROW
macros for marking functions and methods with those attributes.
(tickets #151, #454)
Fri May 25 06:42:35 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/weight.h: Fix documentation comment typo ("k1" ->
"k").
Fri May 25 05:44:05 GMT 2012 Olly Betts <olly@survex.com>
* backends/flint_lock.h: Mark FlintLock::throw_databaselockerror() as
XAPIAN_NORETURN.
Thu May 24 12:28:35 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/termgenerator.h,queryparser/termgenerator.cc,
queryparser/termgenerator_internal.cc,
queryparser/termgenerator_internal.h: Add
TermGenerator::set_stemming_strategy() method, with strategies which
correspond to those of QueryParser. Based on patch from Sehaj Singh
Kalra, with some tweaks for adding term positions in more cases.
(Fixes ticket#563)
* tests/termgentest.cc: Add test coverage for the new features.
Thu May 24 01:37:31 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Add doc comment for stem_strategy
typedef.
Wed May 23 11:33:08 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.lemony:
Add new QueryParser::STEM_ALL_Z stemming strategy, which stems all
terms and adds a Z prefix. (Patch from Sehaj Singh Kalra, fixes
ticket#562)
* tests/queryparsertest.cc: Add test coverage for
QueryParser::STEM_ALL_Z.
Wed May 23 05:37:20 GMT 2012 Olly Betts <olly@survex.com>
* api/valuesetmatchdecider.cc,include/xapian/valuesetmatchdecider.h:
"Limited" to "Ltd" in (C) two statements, for consistency (and with
Charlie's agreement on IRC).
Wed May 23 02:25:53 GMT 2012 Olly Betts <olly@survex.com>
* api/,include/xapian/query.h: Rework QueryBranch to use a special
QueryVector class rather than std::vector<Xapian::Query>. The
special class is no bigger than std::vector<Xapian::Query>, and
handles up to two entries by holding them within the object (at
least GCC's std::vector doesn't currently do this space optimisation)
which significantly reduces the memory used by a pairwise operator,
which is very desirable as we no longer flatten a tree of the same
pairwise operator as we build the query.
Tue May 22 06:25:10 GMT 2012 Olly Betts <olly@survex.com>
* api/queryinternal.cc: Handle the left side of AND_NOT and
AND_MAYBE being MatchNothing in add_subquery() rather than
in done().
Tue May 22 02:40:45 GMT 2012 Olly Betts <olly@survex.com>
* api/queryinternal.cc: Handle QueryAndLike with a MatchNothing
subquery in add_subquery() rather than done().
Tue May 22 02:01:00 GMT 2012 Olly Betts <olly@survex.com>
* api/queryinternal.cc,api/queryinternal.h: Drop MatchNothing
subqueries in OR-like situations in add_subquery() rather than
adding them and then handling it later.
Sat May 19 00:27:23 GMT 2012 Olly Betts <olly@survex.com>
* tests/runsrv.in: Add explanation of why we have this script.
Sat May 19 00:27:10 GMT 2012 Olly Betts <olly@survex.com>
* tests/runtest.in: Fix comment typo.
Fri May 18 12:50:08 GMT 2012 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc: Check if the database is
closed when asked to iterate metadata keys. Fixes recently added
testcase closedb10 for inmemory.
Fri May 18 12:34:24 GMT 2012 Olly Betts <olly@survex.com>
* tests/Makefile.am: Pass -ldl last when compiling zlib-vg.so, as that
seems to be needed on Ubuntu 12.04.
Fri May 18 04:54:09 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_closedb.cc: We now test almost all methods of Database
and WritableDatabase after calling close(). (ticket#337)
Thu May 17 14:26:11 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/,backends/chert/: After closing the database, methods
which try to use the termlist would throw FeatureUnavailableError
with message "Database has no termlist", assuming that the termlist
table not being open meant it wasn't present. Fix to check if the
postlist_table is open to determine which case we're in.
* tests/api_closedb.cc: Improve test coverage for closed databases.
(ticket#337)
Tue May 15 11:24:34 GMT 2012 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog and 1.2.10.
Tue May 15 11:12:42 GMT 2012 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.cc: Fix incorrect use of "delete" to
"delete []". The type is POD, so I suspect this mistake didn't
actually cause any problems, and it only happens when a cursor
gets rebuilt because the B-tree has gained a level, so it's
a rather rare occurrence.
Tue May 15 11:09:44 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_cursor.cc: Fix incorrect use of "delete" to
"delete []". The type is POD, so I suspect this mistake didn't
actually cause any problems, and it only happens when a cursor
gets rebuilt because the B-tree has gained a level, so it's
a rather rare occurrence.
Thu May 10 02:16:21 GMT 2012 Olly Betts <olly@survex.com>
* HACKING: Update Debian/Ubuntu packaging instructions.
Thu May 10 02:14:48 GMT 2012 Olly Betts <olly@survex.com>
* HACKING: freshmeat -> freecode.
Wed May 09 02:54:40 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Add "safeunistd.h", required for GCC 4.7.
Wed May 09 00:09:17 GMT 2012 Olly Betts <olly@survex.com>
* api/query.cc: Construct MatchAll using constructor rather than
assignment syntax.
Wed May 09 00:08:29 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_cursor.h: Whitespace tweaks.
Tue May 08 23:51:01 GMT 2012 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Document xapian-check for fixing corrupted
databases.
Tue May 08 11:30:06 GMT 2012 Olly Betts <olly@survex.com>
* common/fileutils.cc: Add safeunistd.h for mkdir, required by GCC
4.7 (reported by Gaurav Arora).
Wed May 02 03:44:25 GMT 2012 Olly Betts <olly@survex.com>
* weight/weightinternal.cc: Using AssertEq() on NULL doesn't compile,
at least with recent GCC.
Wed May 02 02:58:37 GMT 2012 Olly Betts <olly@survex.com>
* common/omassert.cc: Fix warning with GCC in build with assertions
enabled.
Wed May 02 02:55:54 GMT 2012 Olly Betts <olly@survex.com>
* HACKING: We're now using automake 1.12 to generate snapshots and
releases.
Mon Apr 23 13:16:36 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Fix tradweight1 to test that TradWeight(0)
means that wdf and doc length don't affect the weight of a term.
Mon Apr 23 03:44:02 GMT 2012 Olly Betts <olly@survex.com>
* backends/chert/,backends/dbcheck.cc,bin/xapian-check.cc,
include/xapian/database.h: Add "fix" option to xapian-check, which
currently will regenerate iamchert if it isn't valid, and will
regenerate base files from the .DB files (only really tested on
databases which have just been compacted).
Mon Apr 23 03:40:35 GMT 2012 Olly Betts <olly@survex.com>
* common/filetests.h: Add new function file_size() to get the size
of a file from a path or file descriptor.
* backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
net/remoteconnection.cc,tests/api_replicate.cc: Use this new
function.
Wed Apr 18 01:35:21 GMT 2012 Olly Betts <olly@survex.com>
* weight/bm25weight.cc,weight/tradweight.cc: Fix comment typo.
Wed Apr 11 08:26:42 GMT 2012 Olly Betts <olly@survex.com>
* HACKING: Update section on patches to mention git (git diff and git
format-patch), and using "-r" with normal diff, and also that
ptardiff offers a nice way to diff against an unpacked tarball.
Wed Apr 04 02:22:04 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
If the output database is empty, don't write a metainfo tag out.
Take care not to divide by zero when computing the percentage
size change for a table.
* tests/api_compact.cc: Add new testcase compactempty1 to provide
regression tests.
Wed Apr 04 01:48:34 GMT 2012 Olly Betts <olly@survex.com>
* backends/dbcheck.cc: If the database couldn't be opened, don't try
to reserve space for cross-checking doclens, as that just results in
us reporting a confusing warning about there being too many documents
to cross-check doclens.
Fri Mar 30 22:23:53 GMT 2012 Olly Betts <olly@survex.com>
* backends/document.h: "An string" -> "A string" in internal doc
comment.
Fri Mar 30 22:20:11 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/weight.h: Fix switched lower and upper in doc comments
for Weight methods get_doclength_lower_bound() and
get_doclength_upper_bound(). Correct maximum to minimum in
get_doclength_lower_bound() comment and note that this excludes zero
length documents. Fix "An lower" to "A lower".
Wed Mar 28 09:54:33 GMT 2012 Olly Betts <olly@survex.com>
* NEWS: Fix typos in another old entry.
Wed Mar 28 09:53:00 GMT 2012 Olly Betts <olly@survex.com>
* NEWS: DatabaseCoruptError -> DatabaseCorruptError in old entries.
Wed Mar 28 08:05:13 GMT 2012 Olly Betts <olly@survex.com>
* tests/termgentest.cc: Add test coverage for discarding of terms > 64
bytes by TermGenerator.
Tue Mar 27 21:07:07 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/database.h: Note when Database::close() was added.
Tue Mar 27 13:03:22 GMT 2012 Olly Betts <olly@survex.com>
* api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h,
include/xapian/errorhandler.h: Deprecate Xapian::ErrorHandler.
(ticket#3)
Tue Mar 27 13:01:53 GMT 2012 Olly Betts <olly@survex.com>
* HACKING,docs/deprecation.rst,docs/doxygen_api.conf.in,
docs/doxygen_source.conf.in: Updates for addition of
XAPIAN_DEPRECATED_EX() and XAPIAN_DEPRECATED_CLASS_EX.
Tue Mar 27 10:11:23 GMT 2012 Olly Betts <olly@survex.com>
* HACKING,include/xapian.h,include/xapian/deprecated.h: Add
XAPIAN_DEPRECATED_EX() and XAPIAN_DEPRECATED_CLASS_EX macros which
mark a feature as deprecated externally but not when building the
library.
Tue Mar 27 08:46:29 GMT 2012 Olly Betts <olly@survex.com>
* api/compactor.cc: Include the xapian sub-headers we actually use
rather than xapian.h, to avoid needless rebuilds.
Tue Mar 27 08:33:28 GMT 2012 Olly Betts <olly@survex.com>
* HACKING: Add example of deprecating a pure virtual method.
Tue Mar 27 08:30:17 GMT 2012 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Sat Mar 24 12:33:44 GMT 2012 Olly Betts <olly@survex.com>
* backends/brass/brass_databasereplicator.cc: Fix signed vs unsigned
comparison warning with GCC 4.4.3.
Sat Mar 24 12:26:13 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser_internal.h:
Change the default stemming strategy to STEM_SOME, to eliminate
the API gotcha that setting a stemmer is ignored until you also
set a strategy.
* tests/queryparsertest.cc: Add testcase qp_defaultstrategysome1 to
check that the default is STEM_SOME.
Fri Mar 23 04:29:32 GMT 2012 Olly Betts <olly@survex.com>
* tests/perftest/perftest.cc: Fix comment cut-and-paste error.
Fri Mar 23 04:28:24 GMT 2012 Olly Betts <olly@survex.com>
* Makefile.am: Use git commit hash in the title of a coverage report
generated from a git tree.
Thu Mar 22 04:29:38 GMT 2012 Olly Betts <olly@survex.com>
* xapian-core.spec.in: Remove xapian-chert-update.
Mon Mar 19 05:42:50 GMT 2012 Olly Betts <olly@survex.com>
* matcher/multiandpostlist.cc: Don't count unweighted subqueries of
MultiAndPostList for percentage calculations, as OP_FILTER maps to
MultiAndPostList now. (ticket#590)
* tests/api_percentages.cc: Regression test topercent6.
Sun Mar 18 23:24:04 GMT 2012 Dan Colish <dcolish@>
* backends/brass/brass_databasereplicator.cc: size out buffer to the
incoming blocksize
Sun Mar 18 17:02:14 GMT 2012 Dan Colish <dcolish@>
* .gitignore: ignore /.deps as well
Sun Mar 18 16:46:45 GMT 2012 Dan Colish <dcolish@>
* .gitignore:Update gitignore for bump to libxapian-1.3
Sun Mar 18 04:37:37 GMT 2012 Olly Betts <olly@survex.com>
* configure.ac: Set LIBRARY_VERSION_SUFFIX to -1.3.
Sun Mar 18 00:48:05 GMT 2012 Dan Colish <dcolish@gmail.com>
* backends/brass/,common/Makefile.mk, common/compression_stream.h,
common/compression_stream.cc: Compress changesets in brass
replication. Increments the changeset version. Ticket #348
Sun Mar 18 00:39:23 GMT 2012 Dan Colish <dcolish@gmail.com>
* tests/.gitignore,tests/soaktest/.gitignore: Add additional ignores
for test artifacts
Fri Mar 16 05:23:54 GMT 2012 Olly Betts <olly@survex.com>
* common/Makefile.mk: Missing part of previous change.
Fri Mar 16 04:59:53 GMT 2012 Olly Betts <olly@survex.com>
* Makefile.am,m4-macros/xapian.m4: Rename libxapian to libxapian-1.3
and xapian.m4 to xapian-1.3.m4.
Wed Mar 14 04:58:55 GMT 2012 Olly Betts <olly@survex.com>
* NEWS,tests/api_unicode.cc,unicode/tclUniData.cc: Update
Unicode character database to 6.1.0.
Wed Mar 14 02:23:27 GMT 2012 Olly Betts <olly@survex.com>
* NEWS: Update for 1.3.0.
Tue Mar 13 07:44:32 GMT 2012 Olly Betts <olly@survex.com>
* NEWS: Update from 1.2.9 and ChangeLog.
Tue Mar 13 00:28:58 GMT 2012 Olly Betts <olly@survex.com>
* docs/geospatial.rst: Fix typo - it's LatLongCoords::append() not
LatLongCoords::insert().
Mon Mar 12 23:14:20 GMT 2012 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Fix typo - need "1.2.x" not "1.0.x" to get
both flint and chert support.
Mon Mar 12 11:54:19 GMT 2012 Olly Betts <olly@survex.com>
* docs/Makefile.am: doxygen no longer generates any GIF files, so
stop trying to ship or install them.
Thu Mar 08 10:21:51 GMT 2012 Olly Betts <olly@survex.com>
* docs/index.rst: Add link to new "getting started" guide.
Mon Mar 05 06:05:28 GMT 2012 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Fix curly double quote testcase.
Mon Mar 05 00:36:33 GMT 2012 Olly Betts <olly@survex.com>
* matcher/: Fix issue with AND, OR, and XOR queries against a database
with no documents in it - this was causing a divide by zero, which led
to MSet::get_matches_estimated() reporting 2147483648 on i386.
* tests/api_backend.cc: Add regression test emptydb1.
Sun Mar 04 23:05:17 GMT 2012 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix comment typo.
Fri Mar 02 04:00:19 GMT 2012 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Address new warnings from GCC 4.6.
Wed Feb 29 22:36:26 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/database.h: Improve documentation of Database::close()
and ~WritableDatabase().
Thu Jan 26 03:49:24 GMT 2012 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow
Unicode curly double quote characters to start and/or end phrases.
Sun Jan 22 13:28:30 GMT 2012 Olly Betts <olly@survex.com>
* bin/xapian-delve.cc: Send errors to stderr not stdout.
Sun Jan 22 13:16:21 GMT 2012 Olly Betts <olly@survex.com>
* HACKING: Update details of versions of doxygen, automake and libtool
used to bootstrap snapshots and releases.
Fri Jan 20 21:35:38 GMT 2012 Olly Betts <olly@survex.com>
* tests/Makefile.am: unittest needs getopt for non-glibc platforms.
Fri Jan 20 21:33:59 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/query.h: GCC 4.2.1 on Mac OS X seems to need a copy
ctor for InvertedQuery_ - unclear why, but it's easy to add one.
Wed Jan 18 13:13:07 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/matchspy.h,include/xapian/postingsource.h,
include/xapian/weight.h: Document that you can define a static
operator delete method in your subclass if deallocation needs to be
handled specially. (Closes ticket#554)
Wed Jan 18 12:27:20 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/geospatial.h: Mark as experimental for now.
Wed Jan 18 12:22:39 GMT 2012 Olly Betts <olly@survex.com>
* docs/geospatial.rst: Say "haversine" rather than "Haversine"
consistently.
Wed Jan 18 12:01:28 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/geospatial.h: Change empty() to return bool not
size_t.
Wed Jan 18 10:44:16 GMT 2012 Olly Betts <olly@survex.com>
* docs/geospatial.rst: Fix minor typos in geospatial docs.
Wed Jan 18 10:39:53 GMT 2012 Olly Betts <olly@survex.com>
* Makefile.am,api/postingsource.cc,api/queryinternal.cc,
api/registry.cc,common/output.h,common/registryinternal.h,
docs/geospatial.rst,geospatial/,include/Makefile.mk,include/xapian.h,
include/xapian/geospatial.h,include/xapian/postingsource.h,
include/xapian/registry.h,tests/.gitignore,tests/Makefile.am,
tests/api_geospatial.cc: Merge geotomerge2 branch from github.
Closes ticket#481.
Tue Jan 17 22:29:10 GMT 2012 Olly Betts <olly@survex.com>
* api/errorhandler.cc: Reorder header includes.
Mon Jan 16 22:59:02 GMT 2012 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.lemony: Fix
FLAG_AUTO_SYNONYMS not to enable auto multi-word synonyms too.
* tests/queryparsertest.cc: Extend testcase qp_synonym1 to include a
regression test for this bug.
Sun Jan 15 12:41:35 GMT 2012 Olly Betts <olly@survex.com>
* .gitignore,backends/Makefile.mk,backends/brass/,backends/chert/,
backends/dbcheck.cc,bin/,common/bitstream.h,
include/xapian/database.h: Add a (currently experimental) API for
checking the integrity of databases (partly addresses ticket#238).
This means we can remove XAPIAN_VISIBILITY_DEFAULT from a number of
functions which aren't in the public API (partly addresses
ticket#63).
Fri Jan 13 12:07:39 GMT 2012 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Include <xapian.h> rather than <xapian/stem.h> -
we're trying to test the public API, so including the public API
header is better.
Thu Jan 12 13:15:27 GMT 2012 Olly Betts <olly@survex.com>
* tests/unittest.cc: Add new testcases simple_exceptions_work1 and
class_exceptions_work1 which perform sanity tests of exception
handling.
* tests/internaltest.cc: Remove testcase test_except1 which is now
redundant.
Thu Jan 12 13:09:25 GMT 2012 Olly Betts <olly@survex.com>
* common/str.cc: Special cases for 0 in tostring() templates aren't
actually needed, but special casing single digit numbers may be
worthwhile anyway, so change comments to FIXME ones about checking
this.
* tests/internaltest.cc: Test str() on unsigned 0, and some negative,
signed positive, and unsigned positive single digits values.
Wed Jan 11 13:03:54 GMT 2012 Olly Betts <olly@survex.com>
* backends/multi/multi_alltermslist.h: Fix filename in @file.
Wed Jan 11 12:53:44 GMT 2012 Olly Betts <olly@survex.com>
* api/documentterm.h,api/maptermlist.h,api/omenquireinternal.h,
backends/brass/,backends/chert/,backends/database.h,
backends/document.h,backends/inmemory/inmemory_alltermslist.h,
backends/inmemory/inmemory_database.h,
backends/inmemory/inmemory_positionlist.h,
backends/multi/multi_postlist.h,backends/multi/multi_termlist.h,
backends/positionlist.h,backends/remote/net_termlist.h,
backends/valuestats.h,common/,include/xapian/query.h,matcher/,
queryparser/queryparser_internal.h,tests/harness/,
tests/perftest/freemem.h,tests/perftest/runprocess.h: Convert
comments at the start of files to @file and @brief doxygen comments.
Wed Jan 11 11:36:55 GMT 2012 Olly Betts <olly@survex.com>
* matcher/phrasepostlist.h: Remove lone "----START-LICENCE----" -
the rest got removed ages ago.
Wed Jan 11 11:23:04 GMT 2012 Olly Betts <olly@survex.com>
* common/replicate_utils.h: Fix "@raises" to "@exception".
Wed Jan 11 11:21:31 GMT 2012 Olly Betts <olly@survex.com>
* matcher/multiandpostlist.h: Fix "@parameter" to "@param".
Wed Jan 11 11:20:11 GMT 2012 Olly Betts <olly@survex.com>
* common/debuglog.h: Fix "@msg" to "@a msg" in doxygen comment.
Wed Jan 11 11:18:50 GMT 2012 Olly Betts <olly@survex.com>
* matcher/multiandpostlist.h: Correct @exceptions to @exception.
Wed Jan 11 10:48:05 GMT 2012 Olly Betts <olly@survex.com>
* HACKING: We no longer have any uses of \ to introduce doxygen
directives, so update HACKING to reflect that.
Wed Jan 11 10:46:01 GMT 2012 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Change \todo to @todo.
Wed Jan 11 10:09:29 GMT 2012 Olly Betts <olly@survex.com>
* api/replication.h,api/valuesetmatchdecider.cc,
common/output-internal.h,common/output.h,include/xapian/,
tests/harness/testrunner.cc,tests/harness/testrunner.h,
tests/perftest/perftest.cc,tests/perftest/perftest.h: Change the
instances of \file and \brief in doxygen comments to @file and
@brief.
Wed Jan 11 10:08:19 GMT 2012 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Remove serialisedoc1 from the list of
testcases to run too.
Wed Jan 11 09:50:22 GMT 2012 Olly Betts <olly@survex.com>
* matcher/multixorpostlist.h: Remove "using namespace std;" which we
don't need here.
Wed Jan 11 09:38:27 GMT 2012 Olly Betts <olly@survex.com>
* common/filetests.h: Remove "using namespace std;" which we don't
need here.
Wed Jan 11 09:36:27 GMT 2012 Olly Betts <olly@survex.com>
* common/filetests.h: Add documentation comments.
Wed Jan 11 09:28:26 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_serialise.cc: Extend serialise_document1 to test
serialising and unserialising an empty document, which is an
interesting edge case.
* tests/internaltest.cc: Remove testcase serialisedoc1, which
now doesn't add useful additional coverage over serialise_document1.
Wed Jan 11 08:29:04 GMT 2012 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Test document serialisation via the public
API (which was added after the tests were).
* net/serialise.h: Remove XAPIAN_VISIBILITY_DEFAULT from
serialise_document() and unserialise_document().
Wed Jan 11 05:57:14 GMT 2012 Olly Betts <olly@survex.com>
* api/replication.cc,common/,tests/unittest.cc: Move removedir() from
utils.{cc,h} to fileutils.{cc,h}, and remove the now empty
utils.{cc,h}.
Wed Jan 11 05:44:38 GMT 2012 Olly Betts <olly@survex.com>
* tests/harness/unixcmds.cc: Check return values from system() calls
and throw a std::string exception if non-zero.
Wed Jan 11 05:20:30 GMT 2012 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/omassert.cc,common/omassert.h,
common/utils.cc: Change the sense of the bool returned by
within_DBL_EPSILON() to match what the name suggests instead of being
the opposite, and change the use of it too. Move
within_DBL_EPSILON() implementation from utils.cc to new file
omassert.cc, only compile it when assertions are on, and prototype it
in omassert.h rather than utils.h.
Wed Jan 11 05:09:39 GMT 2012 Olly Betts <olly@survex.com>
* api/compactor.cc,api/replication.cc,backends/brass/,backends/chert/,
backends/dbfactory.cc,common/utils.cc,common/utils.h,
tests/api_backend.cc,tests/api_wrdb.cc,
tests/harness/backendmanager.cc,tests/harness/unixcmds.cc: Remove
std::string wrappers for C library functions from utils.h and just
explicitly call c_str() when we need to. These wrappers are
problematic as they suppress warnings from _FORTIFY_SOURCE about
ignored return values, and I can't see an easy way to avoid that.
Wed Jan 11 03:35:35 GMT 2012 Olly Betts <olly@survex.com>
* api/replication.cc,backends/brass/brass_databasereplicator.cc,
backends/brass/brass_table.cc,
backends/chert/chert_databasereplicator.cc,
backends/chert/chert_table.cc,backends/databasereplicator.cc,
backends/dbfactory.cc,common/utils.cc,common/utils.h: Use
file_exists() and dir_exists() from common/filetests.h everywhere and
remove the old versions in common/utils.h and common/utils.cc.
Wed Jan 11 02:20:45 GMT 2012 Olly Betts <olly@survex.com>
* common/utils.h: Remove XAPIAN_VISIBILITY_DEFAULT from old
file_exists() and dir_exists().
Wed Jan 11 02:19:58 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Convert to use filetests.h.
Wed Jan 11 02:14:07 GMT 2012 Olly Betts <olly@survex.com>
* bin/xapian-check.cc,bin/xapian-inspect.cc: Convert to use
filetests.h.
Wed Jan 11 02:13:02 GMT 2012 Olly Betts <olly@survex.com>
* common/filetests.h: Rename directory_exists() to dir_exists().
Wed Jan 11 02:10:06 GMT 2012 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/filetests.h,tests/api_replicate.cc,
tests/harness/backendmanager_multi.cc,tests/harness/testsuite.cc:
Add new inline versions of file_exists() and directory_exists() and
use these from the testsuite, as a step towards making these internal
to the library.
Tue Jan 10 23:37:36 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_serialise.cc: Change the rather odd "operator delete(p);"
to the more natural "delete p;".
Tue Jan 10 22:45:01 GMT 2012 Olly Betts <olly@survex.com>
* tests/unittest.cc: Fix message typo in recent unittest change.
Tue Jan 10 13:48:38 GMT 2012 Olly Betts <olly@survex.com>
* common/safesysstat.h: The S_ISDIR and S_ISREG macros for MSVC are
unlikely to work on other platforms (_S_IFMT vs S_IFMT, etc) so
split them. Tweak a few comments.
Tue Jan 10 13:10:25 GMT 2012 Olly Betts <olly@survex.com>
* net/: Split encode_length() and decode_length() out of
serialise.{cc,h} into new file length.{cc,h}, and remove
XAPIAN_VISIBILITY_DEFAULT from decode_length().
* api/,backends/brass/brass_database.cc,
backends/chert/chert_database.cc,backends/remote/net_postlist.cc,
backends/remote/remote-database.cc,net/: Update headers which need
to be included.
* tests/internaltest.cc,tests/unittest.cc: Move serialiselength1 and
serialiselength2 from internaltest to unittest.
Mon Jan 09 02:16:22 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Actually add test coverage for
ByteLengthPrefixedStringItor - the previous attempt didn't cause
merging of synonym lists to happen.
Mon Jan 09 00:21:25 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Fix comment typo.
Sun Jan 08 14:47:19 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Add test coverage for
ByteLengthPrefixedStringItor.
Sun Jan 08 14:05:19 GMT 2012 Olly Betts <olly@survex.com>
* common/fd.h,tests/api_db.cc,tests/harness/backendmanager.cc: Add
missing explicit header includes, uncovered by compiling with
STLport.
Sat Jan 07 11:45:00 GMT 2012 Olly Betts <olly@survex.com>
* INSTALL,configure.ac,m4/rjb_find_stlport.m4,xapian-config.in: Remove
configure's --with-stlport and --with-stlport-compiler options, as
they don't allow you to actually specify what you need (at least to
use the Debian STLport package), and instead document what to pass
to configure to enable building with STLport (though it seems to no
longer be actively maintained, and the debug mode (which is probably
the most interesting feature now) doesn't seem to work on Debian
stable).
Sat Jan 07 10:24:25 GMT 2012 Olly Betts <olly@survex.com>
* HACKING: Update STLPort URL to point to the more active fork on
SourceForge.
Fri Jan 06 20:07:06 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_sorting.cc: Add check that NeverUseMeKeyMaker::operator()
would actually cause a test failure if called.
Fri Jan 06 20:01:27 GMT 2012 Olly Betts <olly@survex.com>
* tests/api_stem.cc: Test get_description() on a user-implemented
stemmer.
Fri Jan 06 14:34:16 GMT 2012 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/harness/,tests/queryparsertest.cc,
tests/termgentest.cc,tests/unittest.cc: Make unittest use the test
harness, so it gets all the valgrind and fd leak checks, and other
handy features all the other tests have. Currently this is done in
a bit of a hacky way, but it's a starting point for abstracting out
the Xapian-specific parts of the test harness.
Fri Jan 06 08:42:26 GMT 2012 Olly Betts <olly@survex.com>
* Makefile.am: Delete generated lcov directory before running genhtml.
Pass --demangle-cpp and --html-gzip to genhtml.
Fri Jan 06 08:14:05 GMT 2012 Olly Betts <olly@survex.com>
* Makefile.am: Trim `pwd` off all paths in coverage report.
Fri Jan 06 02:29:04 GMT 2012 Olly Betts <olly@survex.com>
* common/pretty.h: Add support for AndContext and OrContext.
Fri Jan 06 02:28:07 GMT 2012 Olly Betts <olly@survex.com>
* common/pretty.h: Use XAPIAN_PRETTY_AS_CLASSNAME for classes in
namespace Xapian::Internal too.
Thu Jan 05 12:23:10 GMT 2012 Olly Betts <olly@survex.com>
* tests/internaltest.cc,tests/unittest.cc: Move tests of
serialise_double() and unserialise_double() from internaltest to
unittest.
* common/serialise-double.h: This means serialise_double() and
unserialise_double() no longer need external visibility, so make
them internal only.
Thu Jan 05 12:08:15 GMT 2012 Olly Betts <olly@survex.com>
* common/bitstream.h: BitWriter doesn't need public visibility.
Thu Jan 05 10:53:23 GMT 2012 Olly Betts <olly@survex.com>
* common/output-internal.h,common/pretty.h: Fix include paths for two
cases which are only used in a logging build.
Fri Dec 30 09:17:50 GMT 2011 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Update expected results (mostly because we
no longer flatten groups of the same operator at Query construction
time).
Thu Dec 29 13:47:04 GMT 2011 Olly Betts <olly@survex.com>
* api/Makefile.mk: Add missing backslash so various headers actually
get shipped.
Thu Dec 29 11:29:04 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/query.h: Add fake templated ctor for SWIG.
Thu Dec 29 00:23:25 GMT 2011 Olly Betts <olly@survex.com>
* tests/api_scalability.cc: Add regression test querypairwise1 for
ticket#273.
Thu Dec 29 00:03:17 GMT 2011 Olly Betts <olly@survex.com>
* api/,backends/remote/remote-database.cc,
backends/remote/remote-database.h,docs/deprecation.rst,
include/xapian/query.h,matcher/,net/remoteserver.cc,
queryparser/queryparser.lemony,tests/,weight/weightinternal.h: Merge
query-internal-reimplementation git branch which reimplements
Query::Internal. (ticket#280). These are the most notable changes:
+ Query objects are smaller and should be faster.
+ More readable format for Query::get_description().
+ More compact serialisation format for Query objects.
+ Query operators are no longer flattened as you build up a tree (but
the query optimiser still combines groups of the same operator).
This means that Query objects are truly immutable, and so we don't
need to copy Query objects when composing them. This should also
fix a few O(n*n) cases when building up an n-way query pair-wise.
(ticket#273)
+ The Query optimiser can do a few extra optimisations.
Mon Dec 26 12:13:36 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc: Change
QueryParser::set_default_op() to reject operators which don't make
sense to set, and explicitly document all the operators which are
allowed.
* tests/queryparsertest.cc: Check that bad operators are rejected in
existing testcase qp_default_op2. Add new testcase qp_default_op3 to
check that good operators can be set and work in a simple testcase.
Mon Dec 26 09:12:09 GMT 2011 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_brass.h,
tests/harness/backendmanager_chert.h: Remove superfluous "private:"
access specifiers.
Sat Dec 24 12:34:19 GMT 2011 Olly Betts <olly@survex.com>
* HACKING: Recommend installing valgrind, ccache, and eatmydata.
Sat Dec 24 12:28:44 GMT 2011 Olly Betts <olly@survex.com>
* HACKING: Make it clear "Building from SVN" applies to git too, and
mention that git-svn is needed when building from git.
Thu Dec 22 11:18:17 GMT 2011 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Initialise variable which can
be used uninitialised.
Thu Dec 22 03:14:02 GMT 2011 Olly Betts <olly@survex.com>
* bin/Makefile.mk: Link $(libxapian_la) after libbrasscheck.la and
libchertcheck.la to fix mingw build. Probably closes ticket#567.
Thu Dec 22 02:45:45 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/query.h: Document that OP_ELITE_SET with non-term
subqueries might pick subqueries which don't match anything.
Closes ticket#49.
Thu Dec 22 02:37:10 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/query.h: Improve documentation of OP_ELITE_SET.
Wed Dec 21 12:26:00 GMT 2011 Olly Betts <olly@survex.com>
* api/errorhandler.cc: Rearrange code in ErrorHandler::operator() to
be clearer.
Wed Dec 21 11:23:28 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/errorhandler.h: Fix typo: 'APU' -> 'API'.
Wed Dec 21 09:57:32 GMT 2011 Olly Betts <olly@survex.com>
* api/,backends/brass/brass_postlist.cc,
backends/brass/brass_postlist.h,backends/chert/,
backends/contiguousalldocspostlist.cc,
backends/contiguousalldocspostlist.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
backends/remote/,docs/,expand/,include/xapian/,matcher/,
net/remoteserver.cc,net/serialise.cc,tests/,weight/bm25weight.cc,
weight/boolweight.cc,weight/tradweight.cc: Deprecate Xapian::weight
typedef in favour of just using double, and make the replacement
everywhere. Closes ticket#560.
Tue Dec 20 13:31:21 GMT 2011 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Include "safesysstat.h" for fstat().
Fri Dec 16 03:05:17 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_termlisttable.cc,
backends/chert/chert_termlisttable.cc,
backends/multi/multi_postlist.cc,net/replicatetcpclient.cc,
net/serialise.cc,net/tcpserver.cc,tests/,
tests/harness/backendmanager_remoteprog.cc,tests/queryparsertest.cc,
tests/soaktest/soaktest_queries.cc,tests/termgentest.cc: Remove
unnecessary includes on "utils.h".
Fri Dec 16 02:57:49 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_btreebase.cc,backends/brass/brass_database.cc,
backends/brass/brass_databasereplicator.cc,
backends/chert/chert_btreebase.cc,backends/chert/chert_database.cc,
backends/chert/chert_databasereplicator.cc,
net/remoteconnection.cc,tests/api_replicate.cc: Replace uses of
fdcloser class with new FD class.
* common/utils.h: Remove fdcloser class.
Fri Dec 16 00:56:45 GMT 2011 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Use a const int rather than a #define for
BUFSIZE.
Fri Dec 16 00:50:57 GMT 2011 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Avoid leaking fds on exceptions in
truncated_copy().
Fri Dec 16 00:42:11 GMT 2011 Olly Betts <olly@survex.com>
* common/fd.h: Oops, fix to actually compile.
Thu Dec 15 23:54:44 GMT 2011 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/fd.h: Add new FD class which wraps a file
descriptor and ensures it gets released when we exit the scope.
Thu Dec 15 22:44:16 GMT 2011 Olly Betts <olly@survex.com>
* weight/Makefile: Add forwarding Makefile.
Thu Dec 15 22:17:18 GMT 2011 Olly Betts <olly@survex.com>
* weight/Makefile.mk: Ship dir_contents and Makefile.
Tue Dec 13 10:33:21 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog and branches/1.2.
Fri Dec 09 10:33:25 GMT 2011 Olly Betts <olly@survex.com>
* tests/soaktest/soaktest.cc,tests/soaktest/soaktest.h,
tests/soaktest/soaktest_queries.cc: "boulton" -> "Boulton" in
copyright statements.
Fri Dec 09 10:31:18 GMT 2011 Olly Betts <olly@survex.com>
* tests/soaktest/soaktest.cc: With Sun's compiler, random() and
srandom() aren't in <cstdlib> so we need to use <stdlib.h> instead.
Fri Dec 09 07:51:44 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/types.h: Set BAD_VALUENO to 0xffffffff rather than
static_cast<valueno>(-1) - it's the same value currently, but more
robust to valueno being set a wider type.
Fri Dec 09 07:49:07 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/types.h: Explicitly document which value slot numbers
are valid. Fixes ticket#555.
Sat Dec 03 09:32:55 GMT 2011 Olly Betts <olly@survex.com>
* tests/api_opsynonym.cc: Fix typo in comment.
Thu Dec 01 04:41:24 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/database.h: Remove bogus paragraph in
replace_document() documentation comment, cut and pasted from
delete_document() documentation comment. (Fixes bug#579)
Tue Nov 08 01:50:25 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Add missing doxygen @param commands.
Tue Nov 08 01:33:34 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/database.h,include/xapian/document.h: Add missing
doxygen @param commands.
Mon Nov 07 10:31:04 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Address doxygen warnings.
Mon Nov 07 02:40:50 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/postingsource.h: Document undocumented parameters,
fixing doxygen warnings.
* include/xapian/queryparser.h: Escape < and > in doxygen comments.
Mon Nov 07 02:38:18 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Enquire::get_eset() doesn't take a min_wt
parameter, so remove @param documentation for it.
Mon Nov 07 01:59:54 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/: Document lots of parameters, fixing doxygen
warnings.
Sun Nov 06 22:05:09 GMT 2011 Olly Betts <olly@survex.com>
* generate-exceptions: Document all parameters to fix doxygen
warnings.
Sun Nov 06 22:03:50 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/: Fix doxygen warnings.
Sun Nov 06 21:00:08 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Document value parameter of
sortable_serialise() and sortable_unserialise().
Sun Nov 06 17:53:31 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/document.h: Improve Document get_data() and set_data()
documentation comments.
Sun Nov 06 17:14:39 GMT 2011 Olly Betts <olly@survex.com>
* tests/Makefile.am: Add -I$(top_srcdir) so api/replication.h is found
in a VPATH build.
Sun Nov 06 16:06:52 GMT 2011 Olly Betts <olly@survex.com>
* api/,backends/database.h,backends/document.h,
backends/multi/multi_alltermslist.h,backends/positionlist.h,common/,
tests/harness/: More more headers out of common.
Sun Nov 06 14:55:25 GMT 2011 Olly Betts <olly@survex.com>
* api/maptermlist.h,backends/inmemory/Makefile.mk,
backends/inmemory/inmemory_positionlist.h,
backends/remote/Makefile.mk,backends/remote/remote-database.cc,
backends/remote/remote-database.h,common/Makefile.mk,
common/inmemory_positionlist.h,common/remote-database.h,
matcher/multimatch.cc,matcher/remotesubmatch.cc,
matcher/remotesubmatch.h,net/progclient.h,net/remotetcpclient.h:
Move two more headers out of common.
Sun Nov 06 11:56:46 GMT 2011 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Fix for VPATH build.
Sun Nov 06 11:26:18 GMT 2011 Olly Betts <olly@survex.com>
* common/,tests/api_replicate.cc: Factor internal classes out of
output.h into new output-internal.h to fix build failures in VPATH
due to move of weightinternal.h out of common (since the test harness
uses output.h).
Sun Nov 06 00:49:45 GMT 2011 Olly Betts <olly@survex.com>
* api/,backends/brass/,backends/chert/,backends/dbfactory_remote.cc,
backends/inmemory/inmemory_database.cc,
backends/multi/multi_termlist.cc,backends/remote/net_postlist.cc,
backends/remote/net_termlist.h,backends/remote/remote-database.cc,
bin/,common/,expand/,matcher/,net/,tests/internaltest.cc,
weight/Makefile.mk,weight/weightinternal.h: Move even more headers
out of common and next to their corresponding C++ file.
Sat Nov 05 23:55:55 GMT 2011 Olly Betts <olly@survex.com>
* api/replication.cc,backends/Makefile.mk,
backends/brass/brass_databasereplicator.h,
backends/chert/chert_databasereplicator.h,
backends/databasereplicator.h,common/Makefile.mk,
common/databasereplicator.h: Move databasereplicator.h from common to
backends.
Sat Nov 05 23:51:40 GMT 2011 Olly Betts <olly@survex.com>
* backends/Makefile.mk: Fix sort order of noinst_HEADERS.
Sat Nov 05 23:50:33 GMT 2011 Olly Betts <olly@survex.com>
* api/documentvaluelist.h,api/omdatabase.cc,api/valueiterator.cc,
backends/Makefile.mk,backends/brass/,backends/chert/,
backends/inmemory/inmemory_database.cc,
backends/multi/multi_valuelist.cc,backends/multivaluelist.h,
backends/valuelist.h,backends/valuestats.h,bin/xapian-check-brass.cc,
bin/xapian-check-chert.cc,common/,matcher/valuerangepostlist.h,
matcher/valuestreamdocument.h: Move multivaluelist.h, valuelist.h and
valuestats.h from common to backends.
Sat Nov 05 23:40:49 GMT 2011 Olly Betts <olly@survex.com>
* api/,backends/brass/brass_postlist.h,backends/chert/chert_postlist.h,
backends/contiguousalldocspostlist.h,backends/database.cc,
backends/inmemory/inmemory_database.h,
backends/multi/multi_postlist.h,backends/remote/net_postlist.h,
backends/remote/remote-database.cc,common/,matcher/: Move
emptypostlist.h, leafpostlist.h and postlist.h from common to api.
Sat Nov 05 23:31:14 GMT 2011 Olly Betts <olly@survex.com>
* backends/Makefile.mk,backends/brass/brass_database.cc,
backends/chert/chert_database.cc,
backends/contiguousalldocspostlist.h,common/Makefile.mk,
common/contiguousalldocspostlist.h: Move contiguousalldocspostlist.h
from common to backends.
Sat Nov 05 23:28:49 GMT 2011 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/Makefile.mk,backends/alltermslist.h,
backends/brass/,backends/chert/,
backends/inmemory/inmemory_alltermslist.h,common/Makefile.mk,
common/alltermslist.h,common/multialltermslist.h: Move alltermslist.h
from common to backends.
Sat Nov 05 23:20:05 GMT 2011 Olly Betts <olly@survex.com>
* common/safesysselect.h: Fix typo (FDSET -> FD_SET).
Sat Nov 05 23:12:09 GMT 2011 Olly Betts <olly@survex.com>
* common/safesysselect.h: Enhance to provide portability for __WIN32__
too.
* net/remoteconnection.cc,net/tcpclient.cc: Update to make use of this.
Sat Nov 05 22:39:51 GMT 2011 Olly Betts <olly@survex.com>
* common/safesysselect.h: Add wrapper around FD_SET() under __WIN32__
which casts the fd parameter to unsigned to avoid a warning on mingw.
* net/tcpclient.cc: Remove __WIN32__-specific case here which was
working around this warning.
Sat Nov 05 21:58:12 GMT 2011 Olly Betts <olly@survex.com>
* bin/.gitignore,bin/Makefile.mk,bin/xapian-delve.cc,
docs/admin_notes.rst,examples/,xapian-core.spec.in: Move delve from
examples to bin and rename to xapian-delve.
Sat Nov 05 15:18:37 GMT 2011 Olly Betts <olly@survex.com>
* docs/overview.rst: Fix a few things which were out of date and
improve wording in various places.
Sat Nov 05 12:07:14 GMT 2011 Olly Betts <olly@survex.com>
* docs/quickstart.rst: Fix some factual errors, and tweak .rst
source layout a little (":\n::\n" -> "::\n").
Thu Nov 03 20:53:49 GMT 2011 Richard Boulton <richard@tartarus.org>
* common/msvc_posix_wrapper.cc,common/safe.cc,net/tcpclient.cc:
Some fixes for warnings when cross-compiling with mingw; missing
includes to get declarations of functions in windows support
code, and change to use the windows SOCKET type to avoid a
signed/unsigned comparison warning in tcpclient.
Sun Oct 30 23:31:09 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Sun Oct 30 13:16:12 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: List which flags FLAG_DEFAULT includes
in the doxygen documentation comments.
Sat Oct 29 14:47:04 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Add note to API docs to discourage use
of percentage scores.
Sat Oct 29 14:40:39 GMT 2011 Olly Betts <olly@survex.com>
* docs/quickstart.rst,docs/quickstartexpand.cc.html,
docs/quickstartsearch.cc.html,examples/quest.cc,
examples/simpleexpand.cc,examples/simplesearch.cc: Use get_weight()
instead of get_percent() in examples, since percentages are rather
old fashioned and you probably don't want to use them in new
applications.
Sat Oct 29 13:29:37 GMT 2011 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/omenquireinternal.h,docs/deprecation.rst,
include/xapian/enquire.h,include/xapian/types.h,tests/api_anydb.cc:
Deprecate Xapian::percent and use int instead in the API and our
own code.
Sat Oct 29 12:30:05 GMT 2011 Olly Betts <olly@survex.com>
* docs/quickstart.rst: Fix indentation of example code.
Sat Oct 29 10:04:24 GMT 2011 Olly Betts <olly@survex.com>
* docs/overview.rst: Fix typo in example code.
Fri Oct 28 14:39:09 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/database.h: Note that commit() was new in 1.1.0.
Fri Oct 14 12:38:45 GMT 2011 Olly Betts <olly@survex.com>
* common/realtime.h: Use safesysselect.h.
Mon Oct 03 00:53:13 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Incorporate changes from latest upstream
version. I'm failing to follow branch structure upstream to work
out which changesets to merge so it's simpler to just compare the
latest version with what we currently have.
Sun Oct 02 23:31:52 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge http://www.sqlite.org/src/info/d8bab8cf0b:
'Added %expect directive, to consider a certain number of conflicts
"correct." This has the side effect of changing the process exit
code to never overflow.'
Sun Oct 02 23:26:34 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge http://www.sqlite.org/src/info/e6cbe1e5ee:
"Added -T option, to specify a template filename on the command
line. The default is still "lempar.c", though." Not currently
useful to us, but trying to minimise differences with upstream
lemon.
Sun Oct 02 23:14:32 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge http://www.sqlite.org/src/info/e22c090f35:
"Another attempt at fixing the table generator in lemon. Again, this
does not effect the SQLite grammar." No change to generated grammar
for QueryParser.
Sun Oct 02 22:59:28 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge http://www.sqlite.org/src/info/077a6bee2d:
"Fix an issue with lemon generating incorrect grammars. This issue
does not effect SQLite." This means we now get the same tables
generated as before the previous change.
Sun Oct 02 22:25:54 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Merge
http://www.sqlite.org/src/info/27d8e684db: Enhancements to lemon to
generate more compact action tables and to avoid making array bounds
tests that can never fail on action table calculations. This
reduces the size of QueryParser's tables a little.
Sun Oct 02 21:47:36 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge http://www.sqlite.org/src/info/d66a0f31eb:
Adjust the lemon implementation so that it always computes the same
PDA regardless of qsort() implementation on the host platform. In
other words, make all sorts in lemon stable.
Thu Sep 29 12:11:28 GMT 2011 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add cases to ensure a quoted boolean
prefix accepts an empty value or a single space.
Wed Sep 14 04:48:57 GMT 2011 Olly Betts <olly@survex.com>
* docs/quickstart.rst: Correct link which was to
quickstartsearch.cc.html but should be to quickstartindex.cc.html.
Tue Sep 13 08:51:34 GMT 2011 Olly Betts <olly@survex.com>
* backends/flint_lock.cc: Fix comment typo.
Thu Sep 01 12:50:43 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Clarify "sort by date" with BoolWeight
example.
Tue Aug 30 13:51:48 GMT 2011 Olly Betts <olly@survex.com>
* docs/index.rst: Add link to apidoc.pdf.
Wed Aug 24 14:12:05 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix memory leak (caught by existing
testcase queryparser1 when run under valgrind).
Wed Aug 24 12:47:49 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/,tests/queryparsertest.cc,tests/termgentest.cc: Add
support for indexing and searching CJK text using n-grams. Currently
this is only enabled if environmental variable XAPIAN_CJK_NGRAM is
set to a non-empty value.
Tue Aug 23 03:49:27 GMT 2011 Olly Betts <olly@survex.com>
* api/vectortermlist.cc,api/vectortermlist.h: Change so that p == NULL
represents at_end, and p == data.data() means we've yet to start.
Mon Aug 22 15:30:51 GMT 2011 Olly Betts <olly@survex.com>
* api/vectortermlist.cc: Add new source file missed from last commit.
Mon Aug 22 14:32:50 GMT 2011 Olly Betts <olly@survex.com>
* api/,backends/brass/brass_synonym.cc,backends/chert/chert_synonym.cc,
common/Makefile.mk,common/vectortermlist.h,
queryparser/queryparser.cc: Reimplement VectorTermList to store the
list of terms encoded into a single std::string, which is a lot more
memory efficient that std::vector<std::string>.
Mon Aug 22 12:22:49 GMT 2011 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/const_database_wrapper.cc,
common/const_database_wrapper.h,matcher/Makefile.mk,
matcher/const_database_wrapper.cc,matcher/const_database_wrapper.h:
Move const_database_wrapper.h and const_database_wrapper.cc from
common/ to matcher/.
Sun Aug 21 12:43:38 GMT 2011 Olly Betts <olly@survex.com>
* Makefile.am: Since we require GNU find for the coverage-check target,
make use of its -delete option, so we no longer also need GNU xargs.
Thu Aug 18 06:28:11 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Reorder header includes to be more
standard.
Thu Aug 18 01:06:00 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: <cstring> not <string.h>.
Tue Aug 16 04:56:20 GMT 2011 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Throw Xapian::FeatureUnavailableError if
backends are disabled, rather than const char *.
Tue Aug 16 04:49:05 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_check.cc,backends/brass/brass_check.h,
backends/chert/chert_check.cc,backends/chert/chert_check.h,
bin/xapian-check.cc: Instead of giving cryptic numeric codes for
B-tree errors and then throwing const char *, throw
Xapian::DatabaseError() exceptions with string descriptions.
Fri Aug 12 23:11:51 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Update from 1.2.7 and ChangeLog.
Fri Aug 12 06:38:45 GMT 2011 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc: Factor out throw_bad_message().
Fri Aug 12 06:22:14 GMT 2011 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Factor out throw_database_closed().
Fri Aug 12 06:17:43 GMT 2011 Olly Betts <olly@survex.com>
* net/remoteserver.cc: Factor out throw_read_only() function.
Fri Aug 12 06:17:01 GMT 2011 Olly Betts <olly@survex.com>
* common/noreturn.h: Add comment showing how to use XAPIAN_NORETURN
macro.
Sat Aug 06 05:15:53 GMT 2011 Olly Betts <olly@survex.com>
* api/positioniterator.cc,api/postingsource.cc,api/valueiterator.cc,
common/serialise.h,include/xapian/positioniterator.h,
include/xapian/postingsource.h: Fix new warnings from -Wshadow with
GCC 4.6. These warnings are when a variable name "shadows" a
typename, which doesn't seem problematic in general, but the only
alternative seems to be to disable -Wshadow entirely, and it is
useful in other cases.
Thu Aug 04 07:57:09 GMT 2011 Olly Betts <olly@survex.com>
* backends/dbfactory_remote.cc,docs/deprecation.rst,
include/xapian/dbfactory.h,include/xapian/types.h: Deprecate
Xapian::timeout in favour of POSIX type useconds_t.
Thu Aug 04 04:04:45 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/termgenerator.h,
queryparser/termgenerator_internal.cc: Rename weight parameter to
wdf_inc, which much better describes what it does, and avoids a
-Wshadow warning with GCC 4.6.
Thu Aug 04 04:03:37 GMT 2011 Olly Betts <olly@survex.com>
* api/registry.cc: Rename weight variable to weighting_scheme to avoid
-Wshadow warning.
Wed Aug 03 23:13:36 GMT 2011 Olly Betts <olly@survex.com>
* configure.ac: -Wshadow gives bogus warnings with 4.0 (at least on Mac
OS X), so disable it for GCC < 4.1 (like the comments suggest we
already did!)
Wed Aug 03 22:53:55 GMT 2011 Olly Betts <olly@survex.com>
* configure.ac: Enable -fshow-column for GCC - things like vim's
quickfix mode will then jump to the appropriate column for a
compiler error or warning, not just the appropriate line.
Wed Aug 03 22:13:26 GMT 2011 Olly Betts <olly@survex.com>
* api/omdocument.cc,backends/brass/brass_database.cc,
backends/chert/chert_database.cc,common/document.h: Document objects
now track if term positions might have been modified, so we can avoid
having to consider them at all if you take a document and add or
remove a boolean filter term. This gives an 18% speedup for adding
tags in notmuch.
Mon Aug 01 15:15:17 GMT 2011 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/ompostlistiterator.cc,api/postingiterator.cc,
include/xapian/postingiterator.h,tests/api_db.cc: Redo
PostingIterator based on TermIterator with efficient end iterator
checks.
Mon Aug 01 13:34:44 GMT 2011 Olly Betts <olly@survex.com>
* api/,backends/brass/brass_database.cc,
backends/chert/chert_database.cc,
backends/inmemory/inmemory_database.cc,common/positionlist.h,
examples/delve.cc,include/xapian/positioniterator.h,
include/xapian/termiterator.h,include/xapian/valueiterator.h: Take
the old SVN end-iterator-proxies branch and rework the TermIterator
and PositionIterator reimplementations there to use the same
approach as ValueIterator now uses.
Sun Jul 31 15:24:55 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/valueiterator.h: Fix comment typo.
Sun Jul 31 14:45:46 GMT 2011 Olly Betts <olly@survex.com>
* api/omenquire.cc,tests/api_anydb.cc: Previously,
Enquire::get_matching_terms_begin() threw InvalidArgumentError if
the query was empty. Now we just return an end iterator, which is
more consistent with how empty queries behave elsewhere.
Sun Jul 31 13:44:06 GMT 2011 Olly Betts <olly@survex.com>
* api/valueiterator.cc,include/xapian/valueiterator.h: Rename private
ValueIterator::deref() method to decref() (since dereference has
another meaning to the intended "remove a reference").
Sun Jul 31 11:27:33 GMT 2011 Olly Betts <olly@survex.com>
* api/valueiterator.cc,include/xapian/database.h,
include/xapian/document.h,include/xapian/valueiterator.h: Don't use
intrusive_ptr to reference count ValueIterator internals, but
instead update the reference count in hand-written code. This is
less good in itself, but it means we can inline ValueIterator's
default constructor and its destructor in the case where the
internal is NULL, which should mean a comparison with the end
iterator optimises to a NULL pointer check but without needing
the ValueIteratorEnd_ class, which doesn't work as ValueIterator()
would in templates or some cases of overload resolution.
Sat Jul 30 12:07:52 GMT 2011 Olly Betts <olly@survex.com>
* docs/doxygen_api.conf.in: Don't generate XML from doxygen for the
bindings - the bindings now do this for themselves. (ticket#262)
Fri Jul 29 01:33:37 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Just forward declare "class KeyMaker"
rather than including <xapian/keymaker.h>.
Fri Jul 29 01:28:08 GMT 2011 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/slowvaluelist.cc,
include/xapian/database.h,matcher/valuestreamdocument.cc: Change
Database::get_document_lazily_() to return void* so we don't need
to include xapian/document.h from xapian/database.h just to get
Document::Internal declared. This doesn't affect user code, but
reduces the number of files which need to be rebuilt in the library
when xapian/document.h changes.
Wed Jul 27 05:59:32 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/matchspy.h: Remove unnecessary header includes.
Wed Jul 27 02:11:08 GMT 2011 Olly Betts <olly@survex.com>
* docs/index.rst: Add links to Omega and bindings docs.
Tue Jul 26 05:36:50 GMT 2011 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Add Omega's OLDP CGI parameter.
Fri Jul 22 15:37:48 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Reword documentation of
add_boolean_prefix()'s exclusive parameter to talk about terms and
prefixes rather than values and fields (which was confusing since
"document value" has a particular meaning in Xapian).
Thu Jul 21 03:37:49 GMT 2011 Olly Betts <olly@survex.com>
* matcher/mergepostlist.cc: Another debug logging fix.
Thu Jul 21 03:16:39 GMT 2011 Olly Betts <olly@survex.com>
* api/omenquire.cc,api/ompostlistiterator.cc,
backends/brass/brass_database.cc,
backends/brass/brass_positionlist.cc,
backends/brass/brass_postlist.cc,backends/chert/chert_database.cc,
backends/chert/chert_positionlist.cc,
backends/chert/chert_postlist.cc: More debug logging fixes.
Thu Jul 21 02:55:00 GMT 2011 Olly Betts <olly@survex.com>
* api/omdatabase.cc,api/omenquire.cc,api/replication.cc,
backends/brass/brass_alldocspostlist.cc,
backends/brass/brass_database.cc,
backends/brass/brass_spellingwordslist.cc,backends/chert/,
matcher/mergepostlist.cc,matcher/msetpostlist.cc,
matcher/synonympostlist.cc: Fix various incorrect LOGCALL lines.
Thu Jul 21 02:12:25 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_postlist.cc,backends/chert/chert_postlist.cc,
common/documentterm.h,net/progclient.cc: Fix uses of LOGCALL_VOID
which should be LOGCALL_CTOR.
Wed Jul 20 07:00:48 GMT 2011 Olly Betts <olly@survex.com>
* tests/api_matchspy.cc: Remove checks for remote dbtype in matchspy2
and matchspy4 testcases - these were checking for values which would
never match, and the testcases should and do work with remote
backends.
Wed Jul 20 01:19:46 GMT 2011 Olly Betts <olly@survex.com>
* docs/facets.rst: Minor clarification.
Wed Jul 20 00:22:38 GMT 2011 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Document in --help that checking a whole
database performs additional cross-checks between the tables.
Tue Jul 19 18:29:51 GMT 2011 Richard Boulton <richard@tartarus.org>
* docs/facets.rst: Expand descriptions for indexing and finding
facets to hopefully be more helpful to newcomers.
Tue Jul 19 17:52:25 GMT 2011 Richard Boulton <richard@tartarus.org>
* docs/facets.rst: Fix example calls to add_matchspy() to be passed
pointers, and example call to get_termfreq().
Sat Jul 16 10:54:39 GMT 2011 Olly Betts <olly@survex.com>
* tests/collate-test: Now understand use of "#if 0" to disable
testcases.
* tests/api_db.cc: Remove comment in front of
"DEFINE_TESTCASE(multierrhandler1, [...]" which is no longer needed.
Wed Jul 13 15:07:27 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/database.h: Improve the documentation comment for
Database::close(). (ticket#504)
Sat Jul 09 14:00:08 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/stem.h,languages/stem.cc: Stem::operator= now returns
a reference to the assigned-to object.
Sat Jul 09 07:08:03 GMT 2011 Olly Betts <olly@survex.com>
* languages/compiler/analyser.c: Change reporting of line number for
repeated string in among to use "FILE:LINE:" prefix.
Sat Jul 09 01:04:18 GMT 2011 Olly Betts <olly@survex.com>
* common/pretty.h: Don't dereference a NULL pointer.
Fri Jul 08 14:28:42 GMT 2011 Olly Betts <olly@survex.com>
* common/output.h,common/pretty.h: Fix invalid templates in pretty.h.
Fri Jul 08 12:55:19 GMT 2011 Olly Betts <olly@survex.com>
* common/pretty.h: Fix template for pretty printing a std::list.
Thu Jul 07 10:40:53 GMT 2011 Olly Betts <olly@survex.com>
* api/omenquire.cc: Add assertions that the index is in range when
dereferencing MSetIterator and ESetIterator.
Wed Jul 06 08:20:56 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/chert/chert_table.cc: Trust
new to throw std::bad_alloc rather than returning NULL.
Wed Jul 06 05:50:38 GMT 2011 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Remove testcase serialisequery1.
* tests/api_serialise.cc: Extend serialise_query1 to cover equivalent
cases via the API.
Tue Jul 05 01:20:59 GMT 2011 Olly Betts <olly@survex.com>
* common/debuglog.h: Add QUERY category for debug logging.
Fri Jul 01 04:55:02 GMT 2011 Olly Betts <olly@survex.com>
* common/unordered_map.h: Add my <unordered_map> portability wrapper
which was used by the JNI java bindings. It's not currently used
here, but is likely to be useful (two of the GSoC projects are
using unordered_map).
Wed Jun 29 12:16:59 GMT 2011 Richard Boulton <richard@tartarus.org>
* languages/compiler/tokeniser.c: Fix memory leak (of file name) in
snowball compiler introduced by last commit.
Wed Jun 29 07:49:36 GMT 2011 Olly Betts <olly@survex.com>
* languages/compiler/: Report "FILE:LINE:" before each error so tools
like vim's quickfix mode can parse this and bring up the line with
the error automatically.
Wed Jun 29 07:49:10 GMT 2011 Olly Betts <olly@survex.com>
* languages/compiler/header.h: Add comments to note that struct input
must be a prefix of struct tokeniser.
Wed Jun 29 07:47:30 GMT 2011 Olly Betts <olly@survex.com>
* languages/basque.sbl: Use stringdef instead of literal accented
characters in the code.
Wed Jun 29 07:13:30 GMT 2011 Olly Betts <olly@survex.com>
* docs/stemming.rst,include/xapian/stem.h,languages/: Add stemmers
for Armenian (hy), Basque (eu), and Catalan (ca).
Mon Jun 27 08:16:55 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/query.h: Add a fake specialised form of the templated
ctor for SWIG.
Sat Jun 25 11:27:00 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Fix doc comment typo which reversed the
intended sense.
Sat Jun 25 06:20:34 GMT 2011 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/omenquireinternal.h: Remove unused method
Enquire::Internal::register_match_decider().
Sat Jun 25 06:05:22 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: MSet(MSet::Internal *) -> MSet(Internal *)
for consistency with other classes.
Fri Jun 24 16:15:00 GMT 2011 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/slowvaluelist.cc,
include/xapian/database.h,matcher/valuestreamdocument.cc: Rename
Database::get_document_lazily() to get_document_lazily_() to conform
to our convention for naming methods for internal use which have
"public" visibility.
Wed Jun 22 23:51:15 GMT 2011 Richard Boulton <richard@tartarus.org>
* configure.ac: Correct tiny typo in error message when zlib isn't
found.
Tue Jun 21 04:08:29 GMT 2011 Olly Betts <olly@survex.com>
* common/autoptr.h: Update comment about why we have this file. It's
no longer a concern that we might need our own AutoPtr implementation
but we are likely to want to be able to migrate to unique_ptr easily
as C++0x features become more widely available.
Tue Jun 21 02:26:36 GMT 2011 Olly Betts <olly@survex.com>
* HACKING,common/pretty.h,configure.ac,tests/internaltest.cc: Fix a
few lingering references to RefCntPtr and RefCntBase.
Tue Jun 21 02:01:25 GMT 2011 Olly Betts <olly@survex.com>
* api/,backends/brass/,backends/chert/,backends/database.cc,
backends/inmemory/inmemory_alltermslist.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/multi/multi_alltermslist.cc,
backends/multi/multi_valuelist.cc,backends/remote/,common/,
docs/doxygen_api.conf.in,include/Makefile.mk,include/xapian/,
matcher/msetpostlist.h,matcher/multimatch.cc,
queryparser/queryparser_internal.h,
queryparser/termgenerator_internal.h,tests/internaltest.cc: Convert
to use xapian/intrusive_ptr.h instead of xapian/base.h.
Mon Jun 20 23:55:10 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/intrusive_ptr.h: Unmodified version of
boost/smart_ptr/intrusive_ptr.hpp as of Boost 1.42 (committed to aid
merging changes in the future).
Mon Jun 20 12:46:47 GMT 2011 Olly Betts <olly@survex.com>
* common/databasereplicator.h,languages/steminternal.h,tests/harness/:
Remove inclusions of xapian/base.h from files which don't use
RefCntPtr or RefCntBase.
Mon Jun 20 11:33:03 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/base.h: Remove unnecessary check for self-assignment
as it isn't a common case and the current code copes gracefully with
it anyway.
Mon Jun 20 05:25:05 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_postlist.cc,backends/brass/brass_postlist.h,
backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h:
Reduce size of BrassPostList/ChertPostList objects by moving bool
members together (168->160 bytes for ChertPostList on x86-64 Linux).
Sun Jun 19 13:44:32 GMT 2011 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Fix typo in comment and verbose output.
Sun Jun 19 12:23:43 GMT 2011 Olly Betts <olly@survex.com>
* api/error.cc,generate-exceptions: Rearrange members of Xapian::Error
to reduce its size (from 48 to 40 bytes on x86-64 Linux).
Sun Jun 19 12:22:53 GMT 2011 Olly Betts <olly@survex.com>
* common/pretty.h: Fix comment typo.
Sun Jun 19 04:45:26 GMT 2011 Olly Betts <olly@survex.com>
* INSTALL: Update GCC details - we now recommend 4.3 or newer (was 4.1)
and note that while 3.1 is the hard minimum requirement, the oldest
we've tested with at all recently was 3.3.
Sat Jun 18 14:27:14 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,
queryparser/termgenerator_internal.cc: Fix warning from GCC 3.3.
Sat Jun 18 06:27:03 GMT 2011 Olly Betts <olly@survex.com>
* api/,expand/ortermlist.cc,include/xapian/: Use TermIterator() instead
of TermIterator(NULL), and similarly for other Xapian iterator
classes.
Sat Jun 18 05:16:23 GMT 2011 Olly Betts <olly@survex.com>
* tests/zlib-vg.so: Remove file committed accidentally.
Sat Jun 18 05:07:56 GMT 2011 Olly Betts <olly@survex.com>
* api/,include/xapian/positioniterator.h,
include/xapian/termiterator.h: Reimplementations of PositionIterator
and TermIterator from the end-iterator-proxies branch. Assignment
operators for these classes now return *this rather than void.
Sat Jun 18 01:49:02 GMT 2011 Olly Betts <olly@survex.com>
* tests/perftest/Makefile.mk: Make sure that perftest isn't run with
libeatmydata preloaded.
Fri Jun 17 07:39:35 GMT 2011 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Tabs to spaces.
Fri Jun 17 07:38:06 GMT 2011 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Add flush() -> commit().
Thu Jun 16 14:40:35 GMT 2011 Olly Betts <olly@survex.com>
* tests/: Add TEST( ) or TEST(! ) around existing reopen() calls to
check that we get true or false returned as we would expect.
(ticket#548)
Thu Jun 16 05:15:28 GMT 2011 Olly Betts <olly@survex.com>
* README: Note licence is GPL *2+*. Say "SVN/git". Use trac URL for
wiki.
Wed Jun 15 23:31:03 GMT 2011 Olly Betts <olly@survex.com>
* xapian-core/api/error.cc: Don't include the magic code byte at the
start of Error::get_description()'s return value.
Wed Jun 15 15:51:42 GMT 2011 Olly Betts <olly@survex.com>
* exception_data.pm,generate-exceptions,net/serialise.cc: When
propagating exceptions from a remote backend server, use a numeric
code to represent which exception is being transferred rather than
the name of the type as that can be turned back into an exception
with a simple switch statement. It's also less data to transfer.
(ticket#471)
Wed Jun 15 14:03:49 GMT 2011 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remote-database.h,
common/remoteprotocol.h,docs/remote_protocol.rst,net/remoteserver.cc:
Propagate the return value of Database::reopen() across the link.
(ticket#548)
Wed Jun 15 13:03:56 GMT 2011 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remote-database.h,
common/remoteprotocol.h,docs/remote_protocol.rst,net/remoteserver.cc:
Unify REPLY_GREETING and REPLY_UPDATE; send (last_docid - doccount)
instead of last_docid; send (doclen_ubound - doclen_lbound) instead
of doclen_ubound. This requires a remote protocol major version
bump. Fix out of date documentation for what's in a REPLY_UPDATE
message.
Wed Jun 15 12:24:07 GMT 2011 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc: Remove special check which gives
a more helpful error message when a modern client is used against a
remote server running Xapian <= 0.9.6.
Wed Jun 15 11:07:19 GMT 2011 Olly Betts <olly@survex.com>
* net/remoteserver.cc: Remove unnecessary call to reopen() - either we
just called it or we're a writable database and it doesn't do
anything.
Wed Jun 15 09:03:06 GMT 2011 Olly Betts <olly@survex.com>
* xapian-core/backends/remote/remote-database.cc,
xapian-core/common/remote-database.h: Factor out the code to decode
the returned stats into a new apply_stats_update() method.
Wed Jun 15 08:57:12 GMT 2011 Olly Betts <olly@survex.com>
* xapian-core/Makefile.am: Remove check-* from .PHONY as that doesn't
work with a pattern rule. Fix check-% pattern rule to actually work.
Tue Jun 14 15:11:38 GMT 2011 Olly Betts <olly@survex.com>
* docs/remote_protocol.rst: Fixed typo which reversed the intended
sense.
Tue Jun 14 02:01:42 GMT 2011 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac: Avoid portability warning from automake
about GNU make %-style pattern rules.
Tue Jun 14 01:42:01 GMT 2011 Olly Betts <olly@survex.com>
* configure.ac: Add unnecessary AC_LANG_SOURCE wrapper to shut up
autoconf warning.
Tue Jun 14 01:18:54 GMT 2011 Olly Betts <olly@survex.com>
* configure.ac: Reset LIBRARY_VERSION_INFO to 0:0:0 for the
development series, since the library name is different (it has a
-1.3 suffix).
Mon Jun 13 16:24:20 GMT 2011 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
docs/deprecation.rst,include/xapian/enquire.h,matcher/multimatch.cc,
net/remoteserver.cc,tests/api_backend.cc: Remove the deprecated
old-style match spy approach of using a MatchDecider.
Mon Jun 13 15:47:57 GMT 2011 Olly Betts <olly@survex.com>
* api/keymaker.cc,docs/deprecation.rst,include/xapian/keymaker.h,
tests/Makefile.am,tests/api_sortingold.cc: Remove deprecated Sorter
class and MultiValueSorter subclass.
* tests/Makefile.mk,tests/perftest/Makefile.mk,
tests/soaktest/Makefile.mk: Make the generated "*_all.h" depend on
the Makefile.am or Makefile.mk which contains the list of files it
is generated from so that it gets regenerated when a file is
removed from that list.
Mon Jun 13 13:18:29 GMT 2011 Olly Betts <olly@survex.com>
* common/omenquireinternal.h: Remove a FIXME - caching the Document
object in MSetItem isn't a replacement for storing the sort_key
now that sort_keys can be computed.
Mon Jun 13 13:07:31 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc: Fold the
two forms of QueryParser::add_boolean_prefix() into one method
with a default parameter now that changing the ABI isn't a worry.
Mon Jun 13 12:00:36 GMT 2011 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Non-pythonic iterators have been removed.
(ticket#255)
Mon Jun 13 10:40:30 GMT 2011 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Python Stem_get_available_languages() has now
been removed.
Mon Jun 13 10:38:49 GMT 2011 Olly Betts <olly@survex.com>
* docs/deprecation.rst,include/xapian/enquire.h: Remove deprecated
default value for second parameter to Enquire::set_sort_by_value()
and friends.
Mon Jun 13 09:30:15 GMT 2011 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/brass/brass_database.cc,
backends/brass/brass_database.h,backends/chert/chert_database.cc,
backends/chert/chert_database.h,backends/database.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/remote/remote-database.cc,common/,
include/xapian/database.h: Database::reopen() now returns true if
the database may have been reopened. (ticket#548)
Mon Jun 13 09:01:33 GMT 2011 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Add note about xapian-chert-update.
Mon Jun 13 08:47:06 GMT 2011 Olly Betts <olly@survex.com>
* bin/xapian-check-flint.cc,bin/xapian-check-flint.h: Remove two
flint-specific files I missed.
Mon Jun 13 08:42:11 GMT 2011 Olly Betts <olly@survex.com>
* HACKING,INSTALL,Makefile.am,api/compactor.cc,api/replication.cc,
backends/Makefile.mk,backends/brass/brass_compact.cc,
backends/chert/chert_compact.cc,backends/databasereplicator.cc,
backends/dbfactory.cc,backends/dir_contents,backends/flint/,
backends/slowvaluelist.h,bin/,common/database.h,common/pretty.h,
common/unaligned.h,configure.ac,docs/,include/xapian/dbfactory.h,
include/xapian/valueiterator.h,include/xapian/version_h.cc,tests/,
tests/harness/,tests/queryparsertest.cc,tests/termgentest.cc,
tests/testdata/flint-0.9.9/,tests/testdata/flint-1.0.1/,
tests/testdata/flint-1.0.2/: Remove flint backend.
Mon Jun 13 06:09:29 GMT 2011 Olly Betts <olly@survex.com>
* bin/Makefile.mk: Remove lingering reference to quartz (rules to
generate man pages for quartzdump, etc).
Mon Jun 13 05:46:00 GMT 2011 Olly Betts <olly@survex.com>
* Makefile.am,tests/Makefile.am: Just use a GNU-make-specific pattern
rules to forward check-* targets from the top level to the tests
subdirectory. It's clear we aren't keeping the explicit list of
target forwarding rules up to date, and this is just a convenience
so not worth a lot of maintenance effort.
Mon Jun 13 05:01:33 GMT 2011 Olly Betts <olly@survex.com>
* configure.ac: Update version to 1.3.0 and add -1.3 suffix for
library and /xapian-1.3 suffix to include file installation
directory.
Mon Jun 13 04:56:13 GMT 2011 Olly Betts <olly@survex.com>
* unicode/tclUniData.cc: Upgrade to Unicode 6.0.0 (ticket#497).
* tests/api_unicode.cc: Extend testcases to check for assorted changes
and additions in Unicode 6.0.0.
Sun Jun 12 11:54:45 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Final update for 1.2.6.
Sat Jun 11 10:11:23 GMT 2011 Olly Betts <olly@survex.com>
* api/omdocument.cc: Update LOGCALL(MATCH, ...) to LOGCALL(DB, ...).
Convert LOGLINE() at start of method to LOGCALL().
Sat Jun 11 09:57:00 GMT 2011 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Remove self-assignment check from
Database::operator= since this is an uncommon code path and
RefCntPtr ensures that self-assignment of the internals is
safe.
Sat Jun 11 08:48:10 GMT 2011 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/brass/brass_cursor.h,
backends/chert/chert_cursor.h,backends/flint/flint_cursor.h,
backends/flint/flint_table.cc,backends/flint/flint_values.cc,
backends/inmemory/inmemory_database.cc,bin/xapian-check-brass.cc,
bin/xapian-check-chert.cc,bin/xapian-chert-update.cc,
matcher/queryoptimiser.cc,matcher/valuegepostlist.h: Use string() or
std::string() rather than "".
* common/remoteconnection.h,net/tcpserver.cc: Use 2 parameter form of
Error subclass ctors when the context is "".
* api/replication.cc,backends/flint/flint_database.cc,
common/remoteconnection.h,net/replicatetcpclient.cc,
net/replicatetcpserver.cc: Make context parameter of
RemoteConnection ctor optional.
* common/leafpostlist.h: Say 'empty' rather than '""' in a
documentation comment.
* examples/simpleindex.cc: Use '.resize(0)' rather than '= ""'.
Sat Jun 11 07:01:41 GMT 2011 Olly Betts <olly@survex.com>
* api/,backends/brass/,backends/chert/,backends/flint/,
backends/remote/remote-database.cc,common/,include/xapian/,matcher/,
net/remoteserver.cc,net/serialise.cc: Consistently use "slot" in
variable names for value slots, rather than valueno, valno, valueid
or value. The only exception remaining is a protected member of
Xapian::StringValueRangeProcessor since that's really part of the
public API.
Fri Jun 10 11:55:45 GMT 2011 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update in preparation for 1.2.6.
Fri Jun 10 09:05:38 GMT 2011 Olly Betts <olly@survex.com>
* examples/NEWS,examples/TODO: Remove files which are unused since the
examples were merged into xapian-core.
Fri Jun 10 09:03:33 GMT 2011 Olly Betts <olly@survex.com>
* Makefile.am: Ship ChangeLog.0 in the tarball.
Fri Jun 10 05:19:24 GMT 2011 Olly Betts <olly@survex.com>
* tests/Makefile.am: Actually include soaktest/Makefile.mk.
Thu Jun 09 23:26:52 GMT 2011 Olly Betts <olly@survex.com>
* docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Define
XAPIAN_DEPRECATED_CLASS to empty for doxygen.
Thu Jun 09 22:21:29 GMT 2011 Olly Betts <olly@survex.com>
* docs/overview.rst: Document "remote" in stub databases.
Thu Jun 09 15:23:12 GMT 2011 Olly Betts <olly@survex.com>
* HACKING,docs/deprecation.rst,include/xapian/deprecated.h,
include/xapian/keymaker.h: Add XAPIAN_DEPRECATED_CLASS macro
for marking a class as deprecated, so we don't have to call
XAPIAN_DEPRECATED() with no parameters.
Thu Jun 09 14:03:17 GMT 2011 Olly Betts <olly@survex.com>
* HACKING: Clarify wording about PATH.
Thu Jun 09 13:04:53 GMT 2011 Olly Betts <olly@survex.com>
* docs/queryparser.rst,include/xapian/queryparser.h,
queryparser/queryparser.cc,queryparser/queryparser.lemony,
queryparser/queryparser_internal.h,tests/queryparsertest.cc: Add
QueryParser::set_max_wildcard_expansion() method to allow limiting
the number of terms a wildcard can expand to. Implementation mostly
from a patch by Adam Sjøgren in ticket#350.
Tue Jun 07 23:16:33 GMT 2011 Dan Colish <dcolish@gmail.com>
* backends/brass/brass_changesetapplier.h,
backends/chert/chert_changesetapplier.h,
backends/flint/flint_changesetapplier.h: Remove dead code
Thu Jun 02 13:21:28 GMT 2011 Olly Betts <olly@survex.com>
* AUTHORS: Add recent bug reporters.
Thu Jun 02 11:03:57 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: If default_op is OP_NEAR or
OP_PHRASE then disable stemming of the terms, since we don't index
positional information for stemmed terms by default.
* tests/queryparsertest.cc: Adjust near1 and phrase1 to act as
regression tests for this fix.
Thu Jun 02 02:58:58 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_spelling.cc,backends/brass/brass_spelling.h,
backends/chert/chert_spelling.cc,backends/chert/chert_spelling.h,
backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h:
Fix bug Nikita Smetanin spotted with adding a word which has the
same trigram in an even number of times.
* tests/api_spelling.cc: Add regression test spell8.
Wed Jun 01 14:11:38 GMT 2011 Olly Betts <olly@survex.com>
* backends/flint_lock.cc: Kill the child process which holds the lock
with SIGKILL as that can't be ignored, whereas SIGHUP can be in some
cases it seems.
Wed Jun 01 12:12:14 GMT 2011 Olly Betts <olly@survex.com>
* docs/quickstartexpand.cc.html,docs/quickstartindex.cc.html,
docs/quickstartsearch.cc.html: Reinstate the old HTML versions
of these files.
Wed Jun 01 12:09:55 GMT 2011 Olly Betts <olly@survex.com>
* docs/queryparser.rst,docs/remote_protocol.rst: Fix literal hard
spaces in input to just be spaces.
Wed Jun 01 12:06:26 GMT 2011 Olly Betts <olly@survex.com>
* docs/quickstart.rst: Fix sub-heading run in to previous paragraph.
Wed Jun 01 12:04:52 GMT 2011 Olly Betts <olly@survex.com>
* docs/remote.rst: Replace out-dated list of xapian-tcpsrv's command
line options with a reference to --help and the man page. Tweak
wording in a few places.
Wed Jun 01 11:54:37 GMT 2011 Olly Betts <olly@survex.com>
* docs/overview.rst: Change omrset to rset. Remove some bogus `` left
over from fixing definition list formatting.
Wed Jun 01 11:38:09 GMT 2011 Olly Betts <olly@survex.com>
* docs/stemming.rst: Comment out bogus claim that there are stopword
lists in xapian-data (the lack of stopword lists is already
ticket#269).
Wed Jun 01 11:29:58 GMT 2011 Olly Betts <olly@survex.com>
* docs/matcherdesign.rst,docs/stemming.rst: Convert more arrows to
Unicode.
* docs/stemming.rst: Fix some missing paragraph breaks.
Wed Jun 01 11:18:25 GMT 2011 Olly Betts <olly@survex.com>
* docs/intro_ir.rst: Use Unicode right arrow.
Wed Jun 01 10:38:27 GMT 2011 Olly Betts <olly@survex.com>
* docs/: Revert quickstart*.cc.html to being HTML rather than .rst as
the .rst version lose the syntax highlighting. Update svn:ignore.
Wed Jun 01 10:27:11 GMT 2011 Olly Betts <olly@survex.com>
* docs/intro_ir.rst: Sort out the remaining formatting issues.
Wed Jun 01 08:05:05 GMT 2011 Olly Betts <olly@survex.com>
* docs/intro_ir.rst: More markup fixes.
Wed Jun 01 06:16:56 GMT 2011 Olly Betts <olly@survex.com>
* docs/tests.rst: Use generated contents list instead of manual one.
Wed Jun 01 06:16:13 GMT 2011 Olly Betts <olly@survex.com>
* docs/index.rst,docs/internals.rst: Centre links at top; Sort out
<hr> to be full width.
Wed Jun 01 03:23:20 GMT 2011 Olly Betts <olly@survex.com>
* docs/bm25.rst: Sort out inline equations.
Tue May 31 15:21:10 GMT 2011 Olly Betts <olly@survex.com>
* docs/spelling.rst: Add link to Omega documentation.
Tue May 31 07:52:19 GMT 2011 Olly Betts <olly@survex.com>
* docs/overview.rst,docs/quickstart.rst,docs/remote_protocol.rst: More
.rst formatting fixes.
Tue May 31 05:02:48 GMT 2011 Olly Betts <olly@survex.com>
* docs/overview.rst: More .rst fixes.
Tue May 31 04:32:52 GMT 2011 Olly Betts <olly@survex.com>
* docs/: More .rst fixes.
Tue May 31 04:11:27 GMT 2011 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/code_structure.rst: Revert code_structure.html
conversion - this file is generated by a script.
Tue May 31 03:56:39 GMT 2011 Olly Betts <olly@survex.com>
* docs/install.rst,docs/stemming.rst,docs/tests.rst: Fix up some .rst
conversion issues.
Tue May 31 03:36:49 GMT 2011 Dan Colish <dcolish@gmail.com>
* docs/remote_protocol.rst docs/quickstart.rst docs/remote.rst
docs/internals.rst docs/scalability.rst
docs/quickstartsearch.cc.rst
docs/bm25.rst docs/install.rst docs/quickstartindex.cc.rst
docs/index.rst docs/matcherdesign.rst docs/quickstartexpand.cc.rst
docs/queryparser.rst docs/stemming.rst docs/intro_ir.rst
docs/code_structure.rst docs/Makefile.am docs/tests.rst
docs/overview.rst: Bulk port all remaining documentation to RST.
Sun May 29 07:04:42 GMT 2011 Olly Betts <olly@survex.com>
* docs/postingsource.rst: Add PostingSource example. (ticket#503)
Sun May 29 05:19:40 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/database.h: Add @exception InvalidArgumentError for
Database::get_document() (ticket#542).
Fri May 27 05:36:28 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Thu May 26 02:44:07 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: FIXME:1.1.3 -> FIXME:1.3.
Wed May 25 14:58:37 GMT 2011 Olly Betts <olly@survex.com>
* docs/queryparser.html: Document the precedence order of operators.
Fri May 20 04:13:54 GMT 2011 Olly Betts <olly@survex.com>
* examples/simpleindex.cc: Add short description to usage message.
Tue May 17 21:44:55 GMT 2011 Olly Betts <olly@survex.com>
* docs/scalability.html: Bring up-to-date.
Wed May 11 01:34:34 GMT 2011 Olly Betts <olly@survex.com>
* AUTHORS: Add Scott Zhang for mingw fixes.
Wed May 11 01:30:54 GMT 2011 Olly Betts <olly@survex.com>
* net/progclient.cc,net/tcpserver.cc: Need <cstdio> for sprintf on
__WIN32__ and cygwin.
Wed May 11 01:22:07 GMT 2011 Olly Betts <olly@survex.com>
* configure.ac: Define __MSVCRT_VERSION__ to 0x0601 under mingw so
we get _ftime64().
Wed May 11 01:19:14 GMT 2011 Olly Betts <olly@survex.com>
* common/closefrom.cc,common/closefrom.h: We don't need closefrom()
under __WIN32__ currently, so disable it there as it doesn't
compile under mingw.
Mon May 09 20:13:17 GMT 2011 Olly Betts <olly@survex.com>
* examples/delve.cc: Report has_positions().
Thu Apr 07 05:38:36 GMT 2011 Dan Colish <dcolish@gmail.com>
* matcher/phrasepostlist.cc, matcher/queryoptimiser.cc,
matcher/exactphrasepostlist.cc, matcher/exactphrasepostlist.h,
matcher/phrasepostlist.h: Remove temporary vector in queryoptimiser
and replace with iterators.
Wed Apr 06 10:27:41 GMT 2011 Richard Boulton <richard@tartarus.org>
* docs/admin_notes.rst: Remove the word "also", which makes sense
when read in context of the previous section, but is confusing if
the paragraph is read standalone, and isn't necessary.
Mon Apr 04 14:41:33 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Final update for 1.2.5.
Mon Apr 04 14:06:56 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_version.cc: Remove ? from comment - the brass
version change is definitely going to be in 1.2.5.
Mon Apr 04 13:57:23 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Bump release date.
Sat Mar 26 14:49:41 GMT 2011 Olly Betts <olly@survex.com>
* INSTALL: Fix typo in previous commit.
Sat Mar 26 14:03:15 GMT 2011 Olly Betts <olly@survex.com>
* INSTALL: Note how to build for a non-default arch on a multi-arch
platform.
Sat Mar 26 13:22:49 GMT 2011 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update for 1.2.5.
Sat Mar 26 12:28:38 GMT 2011 Olly Betts <olly@survex.com>
* AUTHORS: Update.
Sat Mar 26 10:33:19 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_postlist.cc,backends/brass/brass_postlist.h,
backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h,
backends/inmemory/inmemory_database.h: Address issues highlighted
by clang++ warnings.
Fri Mar 25 05:36:41 GMT 2011 Olly Betts <olly@survex.com>
* docs/tests.html: Slight tweak to improve up-to-date-ness, but more
work would be useful.
Fri Mar 25 05:30:56 GMT 2011 Olly Betts <olly@survex.com>
* docs/matcherdesign.html: Update - quite a bit has changed in the
matcher since this was last updated!
Thu Mar 24 23:31:57 GMT 2011 Olly Betts <olly@survex.com>
* api/replication.cc,common/replication.h: Pass reader_close_time as
double everywhere, rather than truncating it to int. Include
reader_close_time parameters in debug logging. Document
reader_close_time in doxygen comments.
Tue Mar 22 15:36:25 GMT 2011 Dan Colish <dcolish@gmail.com>
* backends/brass/brass_database.h:
Remove left over copyright.
Tue Mar 22 04:54:12 GMT 2011 Dan Colish <dcolish@gmail.com>
* backends/brass/brass_btreebase.cc,backends/chert/chert_btreebase.cc,
backends/flint/flint_btreebase.cc:
Correct comments for which revision is packed when writing base files
Tue Mar 22 03:18:19 GMT 2011 Dan Colish <dcolish@gmail.com>
* backends/brass/brass_database.cc,backends/chert/chert_database.cc,
backends/flint/flint_database.cc,include/xapian/database.h:
Remove FIXME and comments for DB_OVERWRITE.
Tue Mar 22 01:18:38 GMT 2011 Dan Colish <dcolish@gmail.com>
* backends/brass/,backends/chert/chert_database.cc,
backends/flint/flint_database.cc,tests/api_replicate.cc:
Clean up changesets when replicating. Add test coverage for this
feature. Allow XAPIAN_MAX_CHANGESETS to be altered without reopening
the database. Closes Ticket #278.
Mon Mar 21 01:50:41 GMT 2011 Olly Betts <olly@survex.com>
* docs/bm25.html: Add a link to the 1976 Robertson/Sparck Jones paper.
Wed Mar 16 05:56:58 GMT 2011 Dan Colish <dcolish@gmail.com>
* bin/xapian-check-flint.cc: Initialize did and current_wdf to prevent
uninitalized usage and compiler warnings.
Mon Mar 14 03:20:18 GMT 2011 Olly Betts <olly@survex.com>
* common/debuglog.cc,common/debuglog.h: Rename indent member to
indent_level so it doesn't clash with indent() method.
Mon Mar 14 02:44:24 GMT 2011 Olly Betts <olly@survex.com>
* common/debuglog.cc,common/debuglog.h: Use an integer counter for the
indent rather than a std::string which we add/remove spaces to/from.
This is cleaner, but also there seems to be an issue with having a
std::string member in a global static object on OS X.
Fri Mar 11 01:12:04 GMT 2011 Olly Betts <olly@survex.com>
* HACKING: Document using '{ }' rather than ';' for empty loop bodies.
Fri Mar 11 01:02:47 GMT 2011 Olly Betts <olly@survex.com>
* HACKING: Remove bogus ; after method definition in code example.
Fri Mar 11 00:07:22 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,backends/chert/chert_database.cc,
backends/flint/flint_database.cc: Factor out literal constant as
MAX_OPEN_RETRIES.
Wed Mar 09 14:54:06 GMT 2011 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Improve the new testcases a bit.
Wed Mar 09 14:11:59 GMT 2011 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/esetinternal.h,common/omenquireinternal.h,
expand/esetinternal.cc,expand/expandweight.cc,
include/xapian/enquire.h,tests/api_anydb.cc: Enquire::get_eset() now
accepts a min_wt argument to allow the minimum wanted weight to be
specified. Default is 0, which gives the previous behaviour.
Wed Mar 09 00:00:25 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/termiterator.h: Fix misspelling in doc comment.
Tue Mar 08 06:58:14 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/brass/brass_table.h,
backends/chert/chert_table.cc,backends/chert/chert_table.h,
backends/flint/flint_table.cc,backends/flint/flint_table.h: Use
defined constant BLOCK_CAPACITY instead of hardcoded 4 (ticket#536).
Tue Mar 08 05:56:42 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/chert/chert_table.cc,
backends/flint/flint_table.cc: If we try to delete an old base file
and it isn't there, just continue rather than throwing an exception.
We wanted to get rid of it anyway, and it may be NFS issues telling
us the wrong thing. In particular, DatabaseCoruptError was rather
a pessimistic assessment.
Tue Mar 08 05:55:48 GMT 2011 Olly Betts <olly@survex.com>
* common/io_utils.h: Note that io_unlink() may return false when it
should have returned true on NFS.
Sun Mar 06 23:25:47 GMT 2011 Olly Betts <olly@survex.com>
* common/io_utils.cc,common/io_utils.h: Add io_unlink().
* backends/brass/brass_database.cc,backends/brass/brass_table.cc,
backends/chert/chert_database.cc,backends/chert/chert_table.cc,
backends/flint/flint_database.cc,backends/flint/flint_table.cc:
Use io_unlink() instead of sys_unlink_if_exists().
Sun Mar 06 22:26:36 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,backends/chert/chert_database.cc,
backends/flint/flint_database.cc: If DANGEROUS mode is turned on,
then actually set the flag for this in replication changes files
(the reader will currently throw an exception, but that's better
than quietly handling them incorrectly).
Sat Mar 05 12:58:31 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Sat Mar 05 12:49:16 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Fix a few typos.
Sat Mar 05 06:19:25 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Fix typo in old entry.
Sat Mar 05 06:16:41 GMT 2011 Olly Betts <olly@survex.com>
* common/remoteconnection.h: Internal doc comment improvements: Fix
typo, finish truncated sentence, wrap lines to 80 columns.
Sat Mar 05 02:59:35 GMT 2011 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc: Make sure port number is specified. Add
"(required)" after --host and --port in help.
Sat Mar 05 02:50:04 GMT 2011 Olly Betts <olly@survex.com>
* docs/replication.rst: Mention new defaulting of -m.
Sat Mar 05 02:44:37 GMT 2011 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc: If --master isn't specified, default to
DATABASE.
Sat Mar 05 00:14:21 GMT 2011 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc: Give an error if the host isn't set, rather
than trying to connect to an empty hostname, which gives the error
"Couldn't resolve host (Unknown server error)", which might confuse
if you fail to notice the double space and realise what it means.
Fri Mar 04 17:20:13 GMT 2011 Richard Boulton <richard@tartarus.org>
* docs/replication.rst: Update documentation to make it clear that
users shouldn't try to create the destination directory for
replication themselves.
Thu Mar 03 11:10:10 GMT 2011 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Fix typo in author's name.
Thu Mar 03 11:06:30 GMT 2011 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Update link to a paper. Update text about book
"to be published in 2008".
Tue Mar 01 11:39:40 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Mon Feb 28 12:40:24 GMT 2011 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Avoid leaking postlist tree if an exception
is thrown during the match.
Wed Feb 23 15:26:56 GMT 2011 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/index.html: Process collapsing.rst and link
it into the documentation.
Wed Feb 23 15:22:06 GMT 2011 Olly Betts <olly@survex.com>
* docs/collapsing.rst: Add missing document (for some reason this file
was empty in SVN, but present in my tree under a different name, and
not checked in).
Mon Feb 21 14:49:06 GMT 2011 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Deprecate MSet.items and ESet.items.
Mon Feb 21 14:06:21 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,backends/chert/chert_database.cc,
backends/flint/flint_database.cc,common/remoteconnection.h,
net/remoteconnection.cc: Pass a file descriptor to
RemoteConnection::send_file() to avoid a race between the caller
checking if a file exists and send_file() trying to open it to send
it.
Mon Feb 21 13:50:06 GMT 2011 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Fix issues detected by DACA cppcheck run on the
Debian archive.
Mon Feb 21 13:30:55 GMT 2011 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Fix spaceterms1 which was never running one part
of the testcase (and had been that way for years). Fix an
off-by-one error in the enabled code.
Mon Feb 21 13:05:36 GMT 2011 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Add some test coverage for
DatabaseModifiedError in get_mset().
Mon Feb 21 12:03:35 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Fix typo in old entry.
Mon Feb 21 11:36:07 GMT 2011 Olly Betts <olly@survex.com>
* examples/quest.cc: Report any spelling correction (requires the
database contains spelling data of course).
Wed Feb 16 13:11:03 GMT 2011 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Add doxygen markup so alternative
overloaded forms of Enquire::get_mset() appear in the API
documentation.
Wed Feb 09 14:24:57 GMT 2011 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Up to darte for 1.2.5. Minor wording
improvements. Mention copydatabase --no-renumber.
Wed Feb 09 14:06:55 GMT 2011 Olly Betts <olly@survex.com>
* examples/copydatabase.cc: Add --no-renumber option.
Tue Feb 01 11:17:58 GMT 2011 Olly Betts <olly@survex.com>
* configure.ac: -Wstrict-null-sentinel was added in GCC 4.0.1 so
doesn't work with GCC 4.0.0. For simplicity, only enable it for
GCC >= 4.1.
Tue Feb 1 08:22:52 GMT 2011 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Add $set{spelling,true}.
Thu Jan 20 14:52:53 GMT 2011 Olly Betts <olly@survex.com>
* backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h,
backends/flint/flint_table.cc: Don't read the bitmaps from the base
files when opening a database for reading (cross-port of equivalent
change to chert).
Thu Jan 20 14:37:10 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
backends/brass/brass_table.cc: Don't read the bitmaps from the base
files when opening a database for reading (cross-port of equivalent
change to chert).
Thu Jan 20 14:21:10 GMT 2011 Olly Betts <olly@survex.com>
* backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h,
backends/chert/chert_table.cc: Don't read the bitmaps from the base
files when opening a database for reading.
Thu Jan 20 01:57:02 GMT 2011 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc: Optimise not to update doclength
when it hasn't changed (cross-port of equivalent change to chert).
Thu Jan 20 01:36:51 GMT 2011 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc: Optimise not to update doclength
when it hasn't changed.
Wed Jan 19 03:50:18 GMT 2011 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Close ofstream objects used to write out stub
files for testing before we run the actual compaction, to avoid
issues on Microsoft Windows (ticket#525).
Wed Jan 19 01:01:38 GMT 2011 Olly Betts <olly@survex.com>
* HACKING: Snapshots and releases are now bootstrapped with autoconf
2.68 and libtool 2.4. Prune information about reasons for needing
really old autotools versions when there's a reason to need a newer
version anyway.
Sat Jan 15 11:10:26 GMT 2011 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog and 1.0.23.
Sat Jan 15 10:28:10 GMT 2011 Olly Betts <olly@survex.com>
* bin/xapian-chert-update.cc: Fix to handle value slot entries in the
termlist table.
Wed Jan 12 23:49:21 GMT 2011 Olly Betts <olly@survex.com>
* bin/xapian-chert-update.cc: Adjust keys for doclength chunks too.
Wed Jan 12 13:37:30 GMT 2011 Olly Betts <olly@survex.com>
* AUTHORS,bin/xapian-chert-update.cc: Fix to also rewrite docids in
value chunk keys (reported by Luca Barbieri on xapian-discuss).
Tue Jan 11 08:41:02 GMT 2011 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Note removal of if idx in mset.
Tue Jan 11 08:30:29 GMT 2011 Olly Betts <olly@survex.com>
* docs/deprecation.rst: PostingSource now offers a replacement for
Enquire::set_bias().
Mon Jan 10 09:40:24 GMT 2011 Olly Betts <olly@survex.com>
* api/compactor.cc: Add missing header <ctime> for time() (ticket#530).
Sun Jan 09 23:14:02 GMT 2011 Olly Betts <olly@survex.com>
* api/compactor.cc: Use msvc_posix_rename() under __WIN32__ to
atomically update stub file after compaction (ticket#525).
Thu Dec 23 13:00:43 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Whitespace consistency tweak.
Thu Dec 23 11:01:26 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Handle
NEAR/<offset> and ADJ/<offset> where offset isn't an integer the same
way at the end of the query as in the middle.
Tue Dec 21 10:28:08 GMT 2010 Olly Betts <olly@survex.com>
* net/tcpserver.cc: If we can't bind to the specified port because it
is a privileged one, exit with code 77 (EX_NOPERM) to make it easier
to automatically handle failure when starting the server from a
script.
Tue Dec 21 07:43:52 GMT 2010 Olly Betts <olly@survex.com>
* docs/index.html: Add link to main website.
Tue Dec 21 07:40:57 GMT 2010 Olly Betts <olly@survex.com>
* docs/index.html,docs/overview.html: Update links to wiki.xapian.org
to point to trac.xapian.org/wiki instead.
Mon Dec 20 10:02:06 GMT 2010 Richard Boulton <richard@tartarus.org>
* docs/deprecation.rst: Add note about botched removal of python's
Enquire.get_matching_terms (now fully removed).
Sun Dec 19 12:40:12 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update release date.
Sat Dec 18 13:17:52 GMT 2010 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update for 1.2.4.
Wed Dec 15 11:56:22 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update.
Tue Dec 14 12:46:36 GMT 2010 Olly Betts <olly@survex.com>
* HACKING,tests/runtest.in: Add XAPIAN_TESTSUITE_LD_PRELOAD hook to
allow libeatmydata to easily be used when running the testsuite.
Mon Dec 13 14:28:19 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/: Make it more explicitly clear that PostingIterator,
PositionIterator, and TermIterator's skip_to methods advance (and
hence shouldn't be expected to allow you to "rewind" the stream).
Mon Dec 13 14:18:18 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/database.h: "network databases" -> "remote databases".
Mon Dec 13 14:10:08 GMT 2010 Olly Betts <olly@survex.com>
* net/remoteserver.cc: If the message parameter only contains a
string then we can just use it as is.
Mon Dec 13 13:34:30 GMT 2010 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remote-database.h,
common/remoteprotocol.h,common/remoteserver.h,
docs/remote_protocol.html,net/remoteserver.cc,tests/api_metadata.cc:
Add support for iterating metadata keys with the remote backend.
This change necessitated a minor version bump in the remote protocol.
Sun Dec 12 12:24:48 GMT 2010 Olly Betts <olly@survex.com>
* weight/tradweight.cc: Fix calculation order to avoid inconsistent
weights due to rounding for TradWeight(0).
* tests/api_backend.cc: Add regression test tradweight2.
Sat Dec 11 11:38:32 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS: Update thanks list with bug reporters and patch submitters.
Thu Dec 09 03:59:42 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Thu Dec 09 03:58:20 GMT 2010 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Add FIXME note about using sendfile() or
similar.
Tue Dec 07 10:16:31 GMT 2010 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Note 1.0.x version #515 was fixed in.
Mon Dec 06 05:26:01 GMT 2010 Olly Betts <olly@survex.com>
* net/replicatetcpclient.cc: Rearrange loop to avoid duplicating code.
Mon Dec 06 01:39:23 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix typo so we test for OP_NEAR or
OP_PHRASE, not twice for OP_NEAR, which fixes a bug with not setting
the correct window size for default_op of OP_PHRASE in some cases.
Factor out the "is_positional(op)" test into an inlined function to
help avoid repeating this error.
* tests/queryparsertest.cc: Add regression test coverage.
Mon Dec 06 01:01:03 GMT 2010 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add coverage for OP_PHRASE as default_op.
Sun Dec 05 12:35:32 GMT 2010 Olly Betts <olly@survex.com>
* weight/bm25weight.cc: Fix calculation order to avoid inconsistent
weights due to rounding when BM25Weight is used with certain
non-default parameter combinations.
* tests/api_backend.cc: Add regression test bm25weight2.
Sun Dec 05 12:10:36 GMT 2010 Olly Betts <olly@survex.com>
* backends/chert/chert_compact.cc: Add FIXME comment regarding
resolve_duplicate_metadata() getting called multiple times for the
same key in multipass mode.
Sun Dec 05 12:09:32 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/compactor.h: Add documentation comments.
Sun Dec 05 04:54:03 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Omega now wants libmagic-dev (though it's optional
currently).
Wed Nov 17 10:56:10 GMT 2010 Olly Betts <olly@survex.com>
* examples/quest.cc: Add command line options to allow prefixes to
be specified for the QueryParser.
Tue Nov 09 23:18:36 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
backends/flint/flint_compact.cc: Fix access to empty priority_queue
while merging synonyms (found with _GLIBCXX_DEBUG).
Tue Nov 09 03:23:49 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Drop list of platforms valgrind supports, as it takes
effort to keep up to date. People can check valgrind.org for an
accurate list of currently supported platforms.
Sun Nov 07 14:13:44 GMT 2010 Olly Betts <olly@survex.com>
* api/compactor.cc,backends/brass/brass_compact.cc,
backends/chert/chert_compact.cc,backends/flint/flint_compact.cc,
bin/xapian-compact.cc,include/xapian/compactor.h:
Compactor::resolve_duplicate_metadata() callback method is now passed
an array of std::string plus the array length, which allows for more
efficient merging that the series of pairwise merges which was
required before.
Mon Nov 01 14:47:37 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/multimatch.cc,matcher/multixorpostlist.cc,
matcher/multixorpostlist.h: Add debugging to print out the
postlist description after recalculation of maxweight, and to
MultiXorPostList methods. Fix problem shown by soaktest where
the matcher was not told to recalculate the maxweight after a
MultiXorPostList child reached end, which was causing an
assertion failure in debug builds. (This could also have been
causing some performance problems, but I have not measurements.)
Mon Nov 01 10:34:30 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/soaktest/soaktest_queries.cc: Fix compilation: call c_str()
on argument to atoi, now that util.h no longer defines a string
wrapper.
Sun Oct 31 10:51:12 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Don't delete this in TermGroup, etc
until after we have successfully constructed the Query object to
return to avoid a double free in the Query construction throws an
exception. Fixes ticket#515.
Fri Oct 29 12:46:15 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Fix comment typo in previous commit.
Fri Oct 29 12:32:47 GMT 2010 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Empty query now return MSet with firstitem
set correctly.
* tests/api_backend.cc: Extend msetfirst2 to be a regression test for
this issue too.
Fri Oct 29 12:13:51 GMT 2010 Olly Betts <olly@survex.com>
* api/omenquire.cc: If first is larger than get_doccount() then clamp
it to avid pointlessly trying to allocate far too much memory.
* tests/api_backend.cc: Regression test msetfirst2.
Thu Oct 21 09:38:44 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/Makefile.am: Add zlib-vg.c to distribution tarballs.
Wed Oct 20 11:38:13 GMT 2010 Olly Betts <olly@survex.com>
* examples/delve.cc: Add '-z' option to count zero-length documents.
Mon Oct 18 10:35:46 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Add --quiet/-q option to suppress progress
output.
Thu Oct 14 03:51:02 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_unicode.cc: Fix typo in previous change.
Thu Oct 14 01:16:31 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_unicode.cc: Expand tested cases to (hopefully) cover all
conditional combinations in unicode/utf8itor.cc.
Mon Oct 11 11:46:30 GMT 2010 Olly Betts <olly@survex.com>
* Makefile.am: Remove xapian-config on "make distclean" rather than
"make clean", since configure builds it. Never remove man pages
under "make clean".
Mon Oct 11 11:41:32 GMT 2010 Olly Betts <olly@survex.com>
* tests/Makefile.am: Fix typo - CLEAN_FILES should be CLEANFILES.
This means that where zlib-vg.so is used, it now gets cleaned up.
Sun Oct 10 11:00:31 GMT 2010 Olly Betts <olly@survex.com>
* Makefile.am: Fix so coverage-reconfigure-maintainer-mode adds
--enable-maintainer-mode rather than coverage-reconfigure!
Sun Oct 10 10:45:38 GMT 2010 Olly Betts <olly@survex.com>
* Makefile.am: Factor out COVERAGE_CONFIGURE to make future changes
easier.
Sun Oct 10 09:59:01 GMT 2010 Olly Betts <olly@survex.com>
* Makefile.am: Add coverage-reconfigure-maintainer-mode target which
is just like coverage-reconfigure except it also passes
--enable-maintainer-mode.
Sun Oct 10 07:29:23 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Check Stem("none") too. Check
Stem("").get_description(). No need to check a bogus language name
here as stemlangs2 now does that.
Sun Oct 10 07:22:41 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_stem.cc: Test an invalid languages name with each possible
byte value at the start to improve coverage of the switch in
api/stem.cc.
Sun Oct 10 06:14:42 GMT 2010 Olly Betts <olly@survex.com>
* unicode/utf8itor.cc: Correct comments and use bad_cont() in another
place (no change to code once inlining is taken into account).
Sun Oct 10 06:11:05 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_unicode.cc: Improve test coverage for
Utf8Iterator::calculate_sequence_length().
Sun Oct 10 00:33:49 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_unicode.cc: Tweak testcase utf8iterator2 to add coverage
for Utf8Iterator(const char *).
Fri Oct 08 13:10:08 GMT 2010 Olly Betts <olly@survex.com>
* matcher/selectpostlist.cc,matcher/selectpostlist.h: Implement
SelectPostList::check() so that check() on OP_NEAR and OP_PHRASE
subqueries won't end up checking potentially huge numbers of
documents.
Fri Oct 08 12:29:50 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Add testcase phrase3 to provide coverage for
SelectPostList::skip_to().
Fri Oct 08 10:36:18 GMT 2010 Olly Betts <olly@survex.com>
* matcher/orpostlist.cc,matcher/orpostlist.h: Fix performance
regression in some cases caused by the introduction of
OrPostList::check().
Thu Oct 07 03:53:11 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Clear tout before each iteration in scaleweight1.
Wed Oct 06 14:30:34 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update from 1.0.22 and ChangeLog.
Wed Oct 06 12:39:36 GMT 2010 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add two more testcases for having a phrase
generator between prefix and term.
Wed Oct 06 12:37:32 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/matchspy.h,include/xapian/postingsource.h: Remove
"experimental" marker from PostingSource and ValueCountMatchSpy.
Wed Oct 06 12:31:01 GMT 2010 Olly Betts <olly@survex.com>
* docs/index.html: Add links to replication and facets documents, and
fix typo in serialistion document link.
Wed Oct 06 12:12:51 GMT 2010 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/categorisation.rst,docs/facets.rst: Change the
categorisation document to talk about facets, since that's the
terminology that seems to be most widely used these days, and
"categorisation" can also mean automatically assigning categories to
documents. Fix up references to features which were removed or
changed during development.
Wed Oct 06 12:11:21 GMT 2010 Olly Betts <olly@survex.com>
* docs/internals.html: Add link to replication protocol.
Wed Oct 06 08:36:50 GMT 2010 Olly Betts <olly@survex.com>
* examples/simplesearch.cc: Fix cut and paste error in usage message.
Wed Oct 06 00:12:40 GMT 2010 Olly Betts <olly@survex.com>
* api/emptypostlist.cc,matcher/queryoptimiser.cc: In the query
optimiser, use value range bounds to check for value ranges which
must be empty.
* tests/api_opvalue.cc: Add testcase valuerange5 to check this
optimisation actually fires.
Tue Oct 05 03:43:02 GMT 2010 Olly Betts <olly@survex.com>
* examples/simplesearch.cc: Fix cut-and-paste error - --version now
reports simplesearch not simpleexpand.
Tue Oct 05 03:41:48 GMT 2010 Olly Betts <olly@survex.com>
* docs/categorisation.rst: Update to use the current ValueCountMatchSpy
API.
Fri Oct 01 09:53:50 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Simplify defaulting enable_documentation a little.
Fri Oct 01 09:29:03 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Default enable_sse to yes to fix build on x86.
Fri Oct 01 09:10:34 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Fix typo in SSE handling code which stopped it
defaulting as intended.
Fri Oct 01 02:00:49 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Fri Oct 01 01:54:41 GMT 2010 Olly Betts <olly@survex.com>
* backends/Makefile.mk,backends/brass/brass_compact.cc,
backends/byte_length_strings.h,backends/chert/chert_compact.cc,
backends/flint/flint_compact.cc: Factor out 3 copies of
ByteLengthPrefixedStringItor and ByteLengthPrefixedStringItorGt into
their own file.
Fri Oct 01 01:28:57 GMT 2010 Olly Betts <olly@survex.com>
* backends/Makefile.mk,backends/brass/brass_compact.cc,
backends/brass/brass_spelling.cc,backends/chert/chert_compact.cc,
backends/chert/chert_spelling.cc,backends/flint/flint_compact.cc,
backends/flint/flint_spelling.cc,
backends/prefix_compressed_strings.h: Factor out 6 copies of
PrefixCompressedStringItor and PrefixCompressedStringWriter and 3
copies of PrefixCompressedStringItorGt into their own file.
Thu Sep 30 15:28:49 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Thu Sep 30 15:26:52 GMT 2010 Olly Betts <olly@survex.com>
* api/compactor.cc: Need utils.h for stat with a std::string argument.
Thu Sep 30 15:23:50 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Remove unwanted check left over from cut and
pasting code from a previous testcase.
Thu Sep 30 15:21:02 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Convert compaction tests to use the new API.
Thu Sep 30 14:54:27 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
backends/flint/flint_compact.cc: Correct filenames in @file doxygen
comments.
Thu Sep 30 14:46:02 GMT 2010 Olly Betts <olly@survex.com>
* api/compactor.cc: Use the ChertVersion, etc classes to make sure that
the new database has a new UUID rather than creating a "donor"
database and then stealing its version/uuid file.
Thu Sep 30 14:33:46 GMT 2010 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/compactor.cc,backends/brass/Makefile.mk,
backends/brass/brass_compact.cc,backends/brass/brass_compact.h,
backends/chert/Makefile.mk,backends/chert/chert_compact.cc,
backends/chert/chert_compact.h,backends/flint/Makefile.mk,
backends/flint/flint_compact.cc,backends/flint/flint_compact.h,bin/,
include/Makefile.mk,include/xapian.h,include/xapian/compactor.h:
Convert compaction code into a Xapian::Compactor class, and make
xapian-compact a simple wrapper around this new class. (ticket#175)
Thu Sep 30 06:16:11 GMT 2010 Olly Betts <olly@survex.com>
* bin/: Eliminate uses of <iostream> in bin/xapian-compact-*.cc.
Thu Sep 30 05:44:06 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc,
bin/xapian-compact-flint.cc: Fix indentation of table data
arrays.
Thu Sep 30 05:32:44 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Only
skip producing an output table when there are only some inputs
for the termlist - for spellings and synonyms, we want to produce
an output in this case.
* tests/api_compact.cc: Add regression test compactmissingtables1.
Wed Sep 29 11:13:18 GMT 2010 Olly Betts <olly@survex.com>
* common/document.h: Initialise docid to 0 when creating a document
from scratch, as documented.
* tests/api_none.cc: Add regression test document2.
* include/xapian/document.h: Document that return value is unreliable
in this case prior to the next 1.0 and 1.2 releases.
Wed Sep 29 07:06:10 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: FreeBSD and OpenBSD don't need explicit dependency
libraries, so set link_all_deplibs_CXX=no there.
Wed Sep 29 07:04:20 GMT 2010 Olly Betts <olly@survex.com>
* xapian-config.in: Just check @link_all_deplibs_CXX@ which we adjust
in configure rather than duplicating configure's list of platforms
where explicit dependencies aren't required.
Mon Sep 27 04:28:46 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Convert error messages to stdout/stderr to
exceptions, in preparation for turning this into an API class.
Mon Sep 27 03:50:54 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Add support for compacting to a stub database,
which can be one of the inputs (for atomic update).
* tests/api_compact.cc: Add testcases compactstub3 and compactstub4 as
feature tests for this.
Mon Sep 27 03:50:00 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Suppress output from xapian-compact in
compactstub2 (which I'd disabled for debugging).
Sun Sep 26 13:59:20 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Extend to work on stub database files too.
* tests/api_compact.cc: Add feature test compactstub2.
Sun Sep 26 13:28:45 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Inputs can now be stub database directories,
in which case the databases in the stub are used as inputs.
* tests/api_compact.cc: Add feature test compactstub1.
Sun Sep 26 11:11:49 GMT 2010 Olly Betts <olly@survex.com>
* xapian-config.in: Add --static option which makes other options
report values for static linking.
Tue Sep 21 10:43:17 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow phrase
generators between a probabilistic prefix and the term itself.
Thu Sep 09 11:18:47 GMT 2010 Olly Betts <olly@survex.com>
* INSTALL: Raise recommended GCC version from 3.3 to 4.1, since that's
the oldest we regularly test with.
Thu Sep 09 11:14:03 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Debian etch was discontinued 6 months ago, so it's no longer
useful to document packages for developing Xapian on it.
Thu Sep 09 03:15:00 GMT 2010 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Actually write down our guidelines for
supporting other software.
Thu Sep 09 00:20:16 GMT 2010 Olly Betts <olly@survex.com>
* docs/replication.rst: Adjust text to reflect conclusions about the
issues in ticket#434.
Thu Sep 09 00:10:03 GMT 2010 Olly Betts <olly@survex.com>
* docs/replication.rst: Don't suggest using a symlink to switch between
databases - a stub database is much better.
Thu Sep 09 00:07:02 GMT 2010 Olly Betts <olly@survex.com>
* docs/replication.rst: Assume xapian tools are installed on PATH not
in the current directory for example commands.
Thu Sep 09 00:05:22 GMT 2010 Olly Betts <olly@survex.com>
* docs/replication.rst: Fix a typo.
Mon Sep 06 07:10:02 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Add support for --enable-sse=sse and --enable-sse=sse2
to allow control of which SSE instructions to use.
Fri Sep 03 13:08:53 GMT 2010 Richard Boulton <richard@tartarus.org>
* bin/xapian-replicate.cc: If a fullcopy was attempted, but was not
put live, display an explanatory message (if verbose is true).
Fri Sep 03 05:54:09 GMT 2010 Olly Betts <olly@survex.com>
* backends/chert/chert_modifiedpostlist.h,
backends/flint/flint_modifiedpostlist.h,tests/: Fixes required to
build on OpenBSD 4.5 with GCC 3.3.5.
Tue Aug 31 14:37:44 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Document cases where FLAG_WILDCARD and
FLAG_PARTIAL aren't currently supported.
Mon Aug 30 06:27:46 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Actaully make autoconf 2.64 a hard minimum requirement
(as HACKING already documented).
* HACKING,NEWS,configure.ac: autoconf 2.67 is now used to bootstrap.
Mon Aug 30 06:26:03 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Mon Aug 30 06:04:13 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Enable use of SSE maths on x86 by default with Sun's
compiler.
Sat Aug 28 16:04:45 GMT 2010 Olly Betts <olly@survex.com>
* api/omdatabase.cc,include/xapian/queryparser.h,
tests/harness/backendmanager.h: None of the workarounds we have
which are conditional on __SUNPRO_CC are needed with Sun C++
version 5.8, so only enable them for older versions (which will
mean we can drop these workarounds with confidence once older
versions are dropped by Sun/Oracle, or once we can find out that
they have been - currently all I've managed to discover is that
version 5.0 reached "end of service life" in 6/2006).
Sat Aug 28 15:33:14 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac,tests/api_replicate.cc: Solaris < 10 doesn't have
setenv() so we have to use putenv() there. And the value we set
XAPIAN_MAX_CHANGESETS to is always constant currently, so set it
using constant strings generated by a macro.
Sat Aug 28 12:35:25 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Beef up the test for whether -lm is required and add
a special case to force it to be for Sun's C++ compiler - there's
some interaction with libtool and/or shared objects which means
that the configure test doesn't think -lm is needed here when it
is.
Sat Aug 28 10:59:11 GMT 2010 Olly Betts <olly@survex.com>
* api/matchspy.cc,common/const_database_wrapper.cc,net/tcpclient.cc,
tests/api_replicate.cc,tests/harness/backendmanager_remotetcp.cc,
tests/harness/testsuite.cc,tests/perftest/runprocess.cc,
unicode/utf8itor.cc: Fix to compile with Sun C++.
Sat Aug 28 10:30:08 GMT 2010 Olly Betts <olly@survex.com>
* HACKING,PLATFORMS: Move PLATFORMS information to the wiki and replace
with a pointer.
Sat Aug 28 03:15:47 GMT 2010 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Need to avoid excess precision on m68k
when targeting models 68010, 68020, 68030 as well as 68000.
Tue Aug 24 05:54:27 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Update for 1.2.3.
Tue Aug 24 05:52:47 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Mon Aug 16 16:46:19 GMT 2010 Olly Betts <olly@survex.com>
* common/closefrom.cc: Use /dev/fd on Mac OS X.
Mon Aug 16 16:18:26 GMT 2010 Olly Betts <olly@survex.com>
* common/closefrom.cc: Need safeerrno.h and safeunistd.h on non-Linux
platforms too.
Mon Aug 16 15:47:48 GMT 2010 Olly Betts <olly@survex.com>
* backends/flint_lock.cc,common/Makefile.mk,common/closefrom.cc,
common/closefrom.h,configure.ac,net/progclient.cc: Use closefrom()
if available, otherwise provide our own implementation (optimised
to some extent for many platforms).
Sun Aug 15 12:43:04 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS: Update.
Sun Aug 15 12:11:26 GMT 2010 Olly Betts <olly@survex.com>
* xapian-core.spec.in: Update BuildRequires to specify libuuid-devel
instead of e2fsprogs-devel.
Sun Aug 15 11:30:05 GMT 2010 Olly Betts <olly@survex.com>
* HACKING,INSTALL,common/safeuuid.h,common/win32_uuid.cc,
common/win32_uuid.h,configure.ac: libuuid moved from e2fsprogs to
util-linux-ng about a year ago, so update documentation, comments,
and configure error messages to reflect this. Issue reported by
David Jeske on xapian-devel list.
Sun Aug 15 07:58:51 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc: Under __WIN32__, we need
<io.h> for _open_osfhandle() (ticket#495).
Sun Aug 15 07:10:25 GMT 2010 Olly Betts <olly@survex.com>
* common/realtime.h: MSVC doesn't cope with a prototype at function
scope with a global namespace qualification (ticket#495).
Wed Aug 04 10:44:08 GMT 2010 Olly Betts <olly@survex.com>
* backends/flint_lock.cc,backends/multi/multi_alltermslist.cc,
bin/xapian-chert-update.cc,queryparser/termgenerator.cc,
queryparser/termgenerator_internal.cc: Fix more incorrect @file
directives.
Wed Aug 04 09:19:10 GMT 2010 Olly Betts <olly@survex.com>
* matcher/localsubmatch.h,queryparser/termgenerator_internal.h: Fix
incorrect @file doxygen directives.
Tue Aug 03 14:42:56 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/fdtracker.h: Fix filename in @file.
Tue Aug 03 14:32:45 GMT 2010 Olly Betts <olly@survex.com>
* common/contiguousalldocspostlist.h,common/unaligned.h: Fix include
guards to match header filename (cosmetic issues only).
Mon Aug 02 12:38:59 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/brass/brass_values.cc,
backends/chert/chert_table.cc,backends/chert/chert_values.cc,
backends/flint/flint_alldocspostlist.cc,
backends/remote/remote-document.cc,matcher/multimatch.cc,
matcher/remotesubmatch.cc,net/progclient.cc: Use new Literal()
feature in debug logging of function calls.
Mon Aug 02 12:08:42 GMT 2010 Olly Betts <olly@survex.com>
* common/pretty.h: Add Literal() class to allow bypassing the pretty
printer for interspersing literal strings.
Sun Aug 01 10:19:38 GMT 2010 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Database::get_spelling_suggestion() will now
suggest a correction even if the passed word is in the dictionary,
provided the correction has at least the same frequency. Partly
addresses #225.
* queryparser/queryparser.lemony: Check spelling even if term is in
the database.
* docs/spelling.rst: Update to reflect these changes.
* tests/api_spelling.cc,tests/queryparsertest.cc: Add test coverage for
these changes.
Tue Jul 27 15:24:56 GMT 2010 Tim Brody <tdb2@ecs.soton.ac.uk>
* xapian-core.spec.in: Add xapian-metadata and cmake related files to
RPM packaging.
Thu Jul 22 07:13:12 GMT 2010 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Wrap line.
Thu Jul 22 07:11:23 GMT 2010 Olly Betts <olly@survex.com>
* common/remoteserver.h,net/remoteserver.cc: Pass 1.0 for the end time
when relaying a NetworkTimeoutError, not RealTime::now() - any time
in the past will do, we just want the operation to time out if it
would block. Removed related FIXME which is already resolved.
Wed Jul 21 18:00:08 GMT 2010 Olly Betts <olly@survex.com>
* unicode/tclUniData.cc: Fix comment - this is Unicode 5.2 data, not
5.1.
Thu Jul 15 13:45:05 GMT 2010 Olly Betts <olly@survex.com>
* common/realtime.h:Explicitly specify global namespace for
xapian_sleep_milliseconds prototype as MSVC seems to need this.
Thu Jul 15 13:03:13 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix handling of groups of terms which
are all stopwords - in situations where this causes a problem we now
disable stopword checks for such groups. (ticket#245)
* tests/queryparsertest.cc: Add regression testcases.
Thu Jul 15 08:13:03 GMT 2010 Olly Betts <olly@survex.com>
* common/fileutils.cc: Fix reversed memcmp() test.
Sun Jul 11 14:59:06 GMT 2010 Olly Betts <olly@survex.com>
* common/fileutils.cc: Factor out UNCW path check into a helper
function.
Sun Jul 11 14:56:27 GMT 2010 Olly Betts <olly@survex.com>
* common/fileutils.cc,tests/Makefile.am,tests/unittest.cc: Move the
tests of resolve_relative_path() into a new "unittest" program so
they actually are run by "make check". (ticket#243)
Sun Jul 11 13:14:24 GMT 2010 Olly Betts <olly@survex.com>
* common/fileutils.cc: Support the \\?\ path syntax.
Sat Jul 10 15:49:08 GMT 2010 Olly Betts <olly@survex.com>
* common/fileutils.cc,common/fileutils.h: Fix resolve_relative_path()
to handle UNC paths.
Sat Jul 10 15:27:48 GMT 2010 Olly Betts <olly@survex.com>
* common/fileutils.cc: -D__WIN32__ on the g++ command line works for
testing on Linux, so no need to have that in the code. Add a couple
of UNC path test cases which pass, and a commented-out one which
fails.
Sat Jul 10 14:58:35 GMT 2010 Olly Betts <olly@survex.com>
* common/fileutils.cc,common/fileutils.h: We use these routines to
resolve a relative path (in a stub database file) in terms of a
second path (the filename of that file), so just instead a
routine to do exactly that, which is easier to code and more
efficient. The new implementation fixes several bugs with
Microsoft Windows paths. Some testcases (currently not used)
are now present in fileutils.cc (ticket#243).
* backends/dbfactory.cc: Use the new API.
Fri Jul 09 07:42:31 GMT 2010 Olly Betts <olly@survex.com>
* tests/perftest/perftest.cc: I missed a use of atoi() on std::string
but just call .cstr() on the string instead of dragging in utils.h.
Fri Jul 09 04:39:40 GMT 2010 Olly Betts <olly@survex.com>
* common/utils.cc,common/utils.h: Remove unused std::string to const
char * wrappers for standard functions, and remove the only use of
rmdir()'s wrapper.
Thu Jul 08 15:18:04 GMT 2010 Olly Betts <olly@survex.com>
* api/omenquire.cc: Xapian::ESet is a reference counted handle, so it
is efficient to return by value - remove FIXME which suggests we
should avoid doing so.
Thu Jul 08 15:17:20 GMT 2010 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Update FIXMEs - it's too late to fix stuff
in 1.1.x!
Thu Jul 08 15:13:47 GMT 2010 Olly Betts <olly@survex.com>
* api/omenquire.cc: Remove FIXMEs about debug logging which have been
addressed by the fairly recent debug logging improvements.
Thu Jul 08 15:07:07 GMT 2010 Olly Betts <olly@survex.com>
* api/keymaker.cc: Fix comment typos.
Thu Jul 08 14:50:59 GMT 2010 Olly Betts <olly@survex.com>
* api/replication.cc,backends/brass/,backends/chert/,
backends/dbfactory_remote.cc,backends/flint/,
backends/remote/remote-database.cc,bin/xapian-progsrv.cc,
bin/xapian-tcpsrv.cc,common/,net/,tests/perftest/perftest.cc,
tests/perftest/perftest.h: Replace use of OmTime with a double
holding a count in seconds since the epoch.
Thu Jul 08 12:35:40 GMT 2010 Olly Betts <olly@survex.com>
* net/tcpclient.cc: Retry select() if it fails with EINTR while waiting
for connect(), and discriminate cases with same failure message to
aid debugging.
Thu Jul 08 05:09:18 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Remove comment left over from the
"boolean exclusive" work.
Wed Jul 07 13:18:17 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/types.h: Fix documentation comment for Xapian::timeout
type - it holds a time interval in milliseconds not microseconds
(the API docs for the methods which use it explicitly document this
correctly).
Tue Jul 06 15:17:09 GMT 2010 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Fix formatting.
Tue Jul 06 14:13:03 GMT 2010 Olly Betts <olly@survex.com>
* tests/perftest/perftest.cc: Use str(OmTime::as_double()) rather than
trying to assemble a string of a floating point number from strings
of the sec and usec values.
Tue Jul 06 14:03:30 GMT 2010 Olly Betts <olly@survex.com>
* common/debuglog.h,common/remote-database.h: Remove unused '#include
"omtime.h"'.
* backends/remote/remote-database.cc: Add explicit '#include
"omtime.h"'.
Mon Jul 05 11:40:42 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Restore iterator to start of
where we tried to parse a range if we decide it might be a filter
term instead. Clear the error if we decide it is a filter.
* tests/queryparsertest.cc: Fix expected test output from
qp_value_range4 testcase.
Mon Jul 05 06:46:16 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix to be smarter about handling a
boolean filter term containing ".." in the presence of
valuerangeprocessors.
* tests/queryparsertest.cc: Add regression test qp_value_range4.
Mon Jul 05 04:10:08 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,queryparser/queryparser.lt: Clean up
how value ranges are handled to do the checking of the range in the
lexer, which then passes a single token (RANGE) to the parser
(instead of a RANGE_START token which is always followed by a
RANGE_END token).
Fri Jul 02 12:32:37 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Don't pass -mtune=generic unless GCC >= 4.2 is in use
(ticket#492).
Wed Jun 30 10:54:15 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_postlist.cc: Remove unnecessary NULL check.
Identified by Coverity's Scan.
* backends/chert/chert_postlist.cc: Same change for chert.
Tue Jun 29 12:17:16 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_chunkedlisttable.h,
backends/chert/chert_chunkedlisttable.h: Remove unused files.
Sun Jun 27 04:31:06 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update for 1.2.2.
Sun Jun 27 04:22:28 GMT 2010 Olly Betts <olly@survex.com>
* examples/delve.cc: Show the database's UUID.
Sun Jun 27 03:30:16 GMT 2010 Olly Betts <olly@survex.com>
* NEWS.SKELETON: Add "tools" section.
Sun Jun 27 03:03:57 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Update for 1.2.2.
Sat Jun 26 15:55:45 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Create from ChangeLog.
Sat Jun 26 15:36:37 GMT 2010 Olly Betts <olly@survex.com>
* NEWS.SKELETON: Add template for NEWS entry.
Sat Jun 26 11:09:03 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc: Sync the table right after the base
file, which allows more time for the table changes to be written,
and doing the sync together may be more efficient with some Linux
kernel versions.
* backends/chert/chert_table.cc: Same change for chert.
Sat Jun 26 06:46:39 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Reorder the release checklist.
Thu Jun 24 08:03:18 GMT 2010 Olly Betts <olly@survex.com>
bin/xapian-check.cc: Don't try to check doclengths are consistent
between the postlist and termlist tables if it would use more than
1GB of memory, and handle std::bad_alloc or std::length_error. This
issue affects sup users, as sup allocates docids such that they are
sparse and large docids can easily occur.
Wed Jun 23 15:38:25 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/weight.h: Revert Xapian::Weight's copy ctor back
to protected as GCC 4.1 fails to compile subclasses when it is
private (this appears to be a compiler bug).
Wed Jun 23 07:31:19 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS: Thank people who reported bugs fixed in 1.2.1.
Wed Jun 23 06:52:54 GMT 2010 Olly Betts <olly@survex.com>
* xapian-core.spec.in: Update for 1.2.x - add e2fsprogs-devel to
BuildRequires and add new files.
Wed Jun 23 05:00:34 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Wording tweak.
Wed Jun 23 04:11:30 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Need <cstdio> for sprintf(). Fixes
compilation error for some platforms and/or compilers (my guess would
be GCC 4.5 - it builds OK with GCC 4.4). (ticket#489)
Tue Jun 22 14:45:37 GMT 2010 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update for 1.2.1.
Mon Jun 21 16:00:22 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Sync with 1.0.21 and update from ChangeLog.
Mon Jun 21 15:15:50 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Unix putenv() requires the buffer passed to
remain valid, as it stores it directly in the environment. It's
unclear from MSDN if _putenv() does the same, but _putenv_s() must
allocate a copy since it needs to have an '=' in, so use that
instead. It also has an interface much like setenv(), so the code
looks more similar.
Mon Jun 21 06:07:42 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.cc: Add missing const.
Mon Jun 21 05:21:32 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.cc: Update to match header ABI fix.
Mon Jun 21 03:52:41 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: QueryParser::add_boolean_prefix() now
uses two overloaded forms instead of a default parameter so that we
don't break the ABI.
Fri Jun 18 16:56:59 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS: Add 1.0.21 bug reporters.
Fri Jun 18 05:52:00 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc,
queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
Add new optional parameter to QueryParser::add_boolean_prefix() to
allow the user to indicate a prefix isn't "exclusive" and that
OP_AND should be used to combine multiple instances. Fixes
ticket#402. This change should also improve efficiency as it
avoids copying the lists of prefixes and compares them more
efficiently.
Fri Jun 18 02:51:11 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Fix doccomment typo.
Thu Jun 17 14:04:35 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/weight.h: Xapian::Weight's copy ctor is now
private rather than protected. This is an API and ABI compatible
change since there's no definition so a subclass which tried to
access it before would fail to link.
Thu Jun 17 13:00:47 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Missing changes from previous commit.
Thu Jun 17 11:37:30 GMT 2010 Olly Betts <olly@survex.com>
* api/valuerangeproc.cc: Add support for open-ended ranges
(ticket#480).
* docs/queryparser.html,docs/valueranges.rst: Document.
* tests/queryparsertest.cc: Add feature tests.
Thu Jun 17 06:15:24 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Switch out of IN_GROUP mode when we
emit a WILDCARD. Fixeds bug#484.
* tests/queryparsertest.cc: Add regression testcase to wildcard1.
Thu Jun 17 02:42:16 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Rename failedadd1 to failedreplace1 as it's the
replace which fails really. Add failedreplace2 which adds explicit
coverage for the case of a failed replace when the database isn't
empty to start with.
Tue Jun 15 12:45:36 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Note in the description of
set_database() what the database is used for.
Tue Jun 15 12:26:12 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Fix formatting of bullet list.
Mon Jun 14 17:02:10 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/chert/chert_table.cc,
backends/flint/flint_table.cc: cancel() now marks the Btree as
unmodified.
* tests/api_backend.cc: Add regression test failedadd1.
Sun Jun 13 16:07:49 GMT 2010 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/safeuuid.h,configure.ac: Fix mingw build to
use __WIN32__ UUID API.
Sun Jun 13 12:25:24 GMT 2010 Olly Betts <olly@survex.com>
* tests/perftest/freemem.cc: Fix whitespace to match Omega's version.
Sun Jun 13 11:52:24 GMT 2010 Olly Betts <olly@survex.com>
* tests/perftest/freemem.cc: Merge in changes from omega's version.
Clean up whitespace issues. Put the __WIN32__ case last, as we
tend to elsewhere (since most people reading the code probably
want to see the other version).
Sun Jun 13 11:32:30 GMT 2010 Olly Betts <olly@survex.com>
* tests/perftest/perftest.cc: "MSWin32" isn't the OS name. Also,
prefer += to build up a string.
Sat Jun 12 09:31:28 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_percentages.cc: Note that 1.0.x returned 4% for the top hit
in topercent5, so checking it gets at least 50% is a regression test
for that issue.
Fri Jun 11 15:38:26 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: -march=pentium4 doesn't seem to give a measurable
speed-up or size reduction (from Richard's tests) and it carries a
small risk of introducing instructions which don't work on some
obscure CPU which implements SSE2, so drop it.
Fri Jun 11 15:25:16 GMT 2010 Olly Betts <olly@survex.com>
* weight/bm25weight.cc: Stop forcing the wdf_max value to be at least
one in BM25Weight::get_maxpart() - this is no longer needed now we
calculate percentages based on the number of matching subqueries, and
it is more natural for a non-existent term to get zero weight (ditto
for a term which always has wdf = 0.
* tests/api_anydb.cc: Change qterminfo1 to check that a non-existent
term gets zero weight (previously we checked that it got a non-zero
weight, but really we want to ensure that it contributes to
percentage calculations, which new test topercent5 now does).
Fri Jun 11 15:19:29 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_percentages.cc: Add topercent5 testcase which checks that
an OR search including an non-existent term doesn't get 100%, and
that the non-existent term doesn't score more than terms which do
exist.
Fri Jun 11 14:15:07 GMT 2010 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: When using SSE FP instructions on x86 we
can disable the use of volatile since there are no excess precision
issues to work around.
Fri Jun 11 08:21:04 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Put SSE flags in AM_CXXFLAGS not CXXFLAGS.
Fri Jun 11 07:08:01 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Default to building with SSE FP instructions for x86.
This avoids issues with excess precision and it a bit faster too.
Should fix ticket#487.
Thu Jun 10 15:15:33 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Thu Jun 10 15:00:12 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Capitalise "Fedora".
Thu Jun 10 11:27:18 GMT 2010 Olly Betts <olly@survex.com>
* INSTALL: Reword UUID section - list platforms where we make use of
built-in APIs first, give the URL for e2fsprogs home page, and
give the package name for Debian and Ubuntu.
Thu Jun 10 01:08:21 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: libtool 2.2.10 used for snapshots and releases now.
Thu Jun 10 00:21:49 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac,include/xapian/version_h.cc,
include/xapian/visibility.h: We do need to have the visibility
annotations on for code compiling against the library, so substitute
the probed value of XAPIAN_ENABLE_VISIBILITY into <xapian/version.h>
so it is available.
Wed Jun 09 11:31:14 GMT 2010 Olly Betts <olly@survex.com>
* INSTALL,configure.ac,include/xapian/visibility.h: Control use of
GCC's visibility support with defined(XAPIAN_ENABLE_VISIBILITY)
instead of !defined(XAPIAN_DISABLE_VISIBILITY), so it is only used
when building the library, not when building code which uses it.
Add check to configure that GCC actually supports visibility for
the platform being built for, which fixes compiler warnings with
platforms which don't (such as Mac OS X and mingw).
Wed Jun 09 11:17:58 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: "private", etc as "access specifiers", not "visibility
specifiers".
Wed Jun 09 11:04:55 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Note flex and bison needed to build doxygen.
Wed Jun 09 05:25:10 GMT 2010 Olly Betts <olly@survex.com>
* common/win32_uuid.cc: Fix signed/unsigned comparison warning on
mingw.
Tue Jun 08 16:56:26 GMT 2010 Olly Betts <olly@survex.com>
* common/safewinsock2.h: Reword #error to avoid single quote which
gives compilation warning with some GCC 4.2.1 on mingw.
Tue Jun 08 14:32:28 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_check.h,backends/chert/chert_check.h,
backends/flint/flint_check.h: Remove mutable from std::ostream &
member - mutable doesn't make sense for a reference.
Tue Jun 08 13:03:56 GMT 2010 Olly Betts <olly@survex.com>
* common/,matcher/,weight/weightinternal.cc: Replace the still rather
contorted mechanism for accumulating rel termfreqs for local
databases with a simpler mechanism which is more efficient in both
space and time.
Mon Jun 07 16:31:24 GMT 2010 Olly Betts <olly@survex.com>
* api/maptermlist.h,api/matchspy.cc,api/termlist.cc,backends/brass/,
backends/chert/,backends/flint/,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
backends/remote/net_termlist.cc,backends/remote/net_termlist.h,
common/ortermlist.h,common/termlist.h,expand/ortermlist.cc: Remove
default OrTermList::skip_to() implementation and implement skip_to()
in each class instead, as this allows a slightly more efficient
implementation, and also avoids problems with calling skip_to() as
the first operation for the many subclasses which have a "started"
flag, which OrTermList::skip_to() won't set.
Mon Jun 07 06:08:53 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Rename TermList class to Terms to
avoid confusion with the TermList typedef used elsewhere. Add
documentation comments for Terms and TermGroup classes.
Mon Jun 07 02:18:05 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/: Switch to using io_utils instead of brass_io.
Mon Jun 07 02:16:30 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS: Add Arvid Ephraim Picciani for help fixing bootstrap for
BusyBox sha1sum.
Mon Jun 07 01:16:57 GMT 2010 Olly Betts <olly@survex.com>
* common/io_utils.cc: Whitespace tweak.
Mon Jun 07 00:58:26 GMT 2010 Olly Betts <olly@survex.com>
* common/io_utils.h: Fix header guard macro name to follow convention.
Sun Jun 06 15:07:55 GMT 2010 Olly Betts <olly@survex.com>
* HACKING,configure.ac: Upgrade to using libtool 2.2.8.
Sun Jun 06 04:34:13 GMT 2010 Olly Betts <olly@survex.com>
* bin/Makefile.mk,configure.ac: Fix build failures with some
combinations of backends disabled (partially addresses ticket#361).
Sat Jun 05 16:30:57 GMT 2010 Olly Betts <olly@survex.com>
* matcher/remotesubmatch.cc: Add missing parameter of
RemoteSubMatch::start_match() to debug logging.
Sat Jun 05 15:03:56 GMT 2010 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.h: Make QueryOptimiser::optimise_query()'s
argument const pointer, since we only pass it to do_subquery() which
takes a const pointer.
Fri Jun 04 16:05:01 GMT 2010 Olly Betts <olly@survex.com>
* common/rset.h: Just keep a reference to the set<docid> from the
Xapian::RSet object rather than copying it (since we now only
create the RSetI object transiently, so the Xapian::RSet object
is definitely valid for its whole lifetime).
Fri Jun 04 15:57:50 GMT 2010 Olly Betts <olly@survex.com>
* api/omenquire.cc,matcher/localmatch.cc,matcher/localmatch.h: Keep
a Xapian::RSet handle in the LocalSubMatch object and only create
an RSetI object briefly in LocalSubMatch::prepare_match().
Fri Jun 04 15:36:45 GMT 2010 Olly Betts <olly@survex.com>
* common/pretty.h: RSetI objects are no longer passed as parameters
or return values, so we no longer need to handle them.
Fri Jun 04 15:28:21 GMT 2010 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/esetinternal.h,common/omenquireinternal.h,
common/rset.h,expand/esetinternal.cc,matcher/rset.cc: RSetI is used
when collating statistics prior to performing the match, and when
generating an ESet. The second use is entirely unnecessary and just
ends up with us copying the std::set<Xapian::docid> from inside the
Xapian::RSet object, so eliminate it and just use the Xapian::RSet
object directly. This allows RSetI to be simplified somewhat too.
Fri Jun 04 14:22:38 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Make arrays static const.
Fri Jun 04 13:25:20 GMT 2010 Olly Betts <olly@survex.com>
* backends/Makefile.mk: Note need to update include/xapian/version_h.cc
when adding a new backend.
* AUTHORS: Thanks to Conrad Hoffmann for pointing this omission out.
Thu Jun 03 15:01:44 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/soaktest/soaktest_queries.cc: Add missing include of str.h
Thu Jun 03 12:09:35 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/Makefile.am: Fix building of zlib-vg.so in VPATH builds.
Thu Jun 03 11:49:31 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/orpostlist.cc,tests/api_backend.cc: Fix several bugs in
OrPostList::check() (introduced since 1.2.0). Fixes ticket #485.
Specifically, we have to check a sub-postlist even if head=did,
because we need to know if that sub-postlist is valid. Also, if
a sub-postlist is not valid, set its head to did+1, since we know
that we're no longer interested in matches before did, and this
allows the OrPostList to assume that the minimum docid of its
children is the current docid.
Thu Jun 03 07:15:24 GMT 2010 Olly Betts <olly@survex.com>
* matcher/: Implement MultiXorPostList which returns correct weights
for XOR of more than 2 subqueries, and drop XorPostList completely.
(ticket#475)
* tests/api_anydb.cc: Add regression test xor2.
Thu Jun 03 04:38:56 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Tweak loop end test to be a normal while.
Thu Jun 03 01:22:20 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_stem.cc: Note stem2's feature was backported to 1.0.21.
Tue Jun 01 13:49:44 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,backends/brass/brass_termlist.cc,
backends/chert/chert_database.cc,backends/chert/chert_termlist.cc,
backends/flint/flint_database.cc,backends/flint/flint_document.cc,
backends/flint/flint_termlist.cc,matcher/: Fix LOGCALL_VOID uses
for ctors and dtors to be LOGCALL_CTOR and LOGCALL_DTOR respectively.
Tue Jun 01 13:33:07 GMT 2010 Olly Betts <olly@survex.com>
* api/omdocument.cc: Use LOGCALL_VOID instead of LOGCALL with a void
return type.
Tue Jun 01 13:08:02 GMT 2010 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: The debug logging now copes with being passed
RSet* so remove special casing with ?:.
Tue Jun 01 10:17:27 GMT 2010 Olly Betts <olly@survex.com>
* HACKING,configure.ac: Drop support for --enable-log=profile -
dedicated profiling tools are likely to return more useful results.
* common/debuglog.cc,common/debuglog.h: Rename xapian_debuglogger__
global to xapian_debuglogger_ to avoid reserved __ in the name.
* common/omdebug.cc,common/omdebug.h: Remove in favour of debuglog.h.
* common/pretty.h: New PrettyOStream<> template class for pretty
printing types in debug logs (and eventually the testsuite).
* api/,backends/brass/,backends/chert/,
backends/dbfactory_remote.cc,backends/flint/,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_document.cc,
backends/inmemory/inmemory_positionlist.cc,
backends/multi/multi_postlist.cc,backends/multi/multi_termlist.cc,
common/,expand/esetinternal.cc,expand/expandweight.cc,
expand/ortermlist.cc,matcher/,net/progclient.cc,
net/remoteconnection.cc: Migrate all remaining uses of omdebug.h to
debuglog.h. Write more parameters to the debug log. Retire the
barely used APICALL category and use API instead (reflecting actual
current use). Add new REPLICA category. Fix names logged for ctors
and dtors which have "::" in the class name.
Sun May 30 13:45:12 GMT 2010 Olly Betts <olly@survex.com>
* api/omenquire.cc: Remove bogus "Data::" from debug logging for two
methods.
Sun May 30 08:49:22 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/stem.h,languages/stem.cc: Xapian::Stem now recognises
"nb" and "nn" as codes for the Norwegian stemmer.
* tests/api_stem.cc: Add feature test stem2 to check that these new
codes work.
Sat May 29 10:12:40 GMT 2010 Olly Betts <olly@survex.com>
* common/debuglog.h: Add overload of operator| which writes ", " and
then a value to std::ostream.
* api/omdatabase.cc,api/replication.cc,
backends/brass/brass_alldocspostlist.cc,
backends/brass/brass_metadata.cc,backends/brass/brass_table.cc,
backends/chert/,backends/dbfactory.cc,
backends/flint/flint_alldocspostlist.cc,expand/esetinternal.cc,
expand/expandweight.cc,matcher/,net/remoteconnection.cc,
weight/bm25weight.cc,weight/weight.cc: Use this in LOGCALL uses to
make them shorter and more readable.
Fri May 28 06:47:57 GMT 2010 Olly Betts <olly@survex.com>
* api/leafpostlist.cc,api/omdatabase.cc,backends/brass/brass_table.cc,
backends/chert/chert_table.cc,backends/dbfactory.cc,
backends/flint/flint_alldocspostlist.cc: Put LOGCALL macro use all on
one line so we can more easily mechanise use and update.
Fri May 28 04:22:35 GMT 2010 Olly Betts <olly@survex.com>
* api/replication.cc,api/valueiterator.cc,
backends/brass/brass_alltermslist.cc,
backends/chert/chert_alltermslist.cc,backends/dbfactory.cc,
backends/inmemory/inmemory_document.cc,
backends/remote/remote-document.cc,matcher/synonympostlist.cc,
net/remoteconnection.cc,weight/bm25weight.cc: Use NO_ARGS instead of
"" and LOGCALL_VOID instead of LOGCALL with void return type.
Fri May 28 04:12:35 GMT 2010 Olly Betts <olly@survex.com>
* matcher/valuerangepostlist.cc: Add missing inclusions of
"debuglog.h".
* backends/brass/brass_metadata.h,backends/brass/brass_postlist.h,
backends/brass/brass_synonym.h,backends/chert/chert_metadata.h,
backends/chert/chert_postlist.h,backends/chert/chert_synonym.h,
backends/dbfactory_remote.cc,backends/flint/flint_metadata.h,
backends/flint/flint_synonym.h,common/database.h,common/rset.h:
Remove unused inclusions of "omassert.h" and "omdebug.h".
* common/rset.h: Remove unused inclusion of "weightinternal.h".
* api/omdatabase.cc,api/registry.cc,api/replication.cc,backends/brass/,
backends/chert/,backends/dbfactory.cc,backends/flint/: Add missing
explicit inclusions of "debuglog.h". Fix LOGCALL markup of ctors and
dtors. Use LOGCALL instead of DEBUGCALL.
Fri May 28 04:06:08 GMT 2010 Olly Betts <olly@survex.com>
* backends/flint/flint_alldocspostlist.h: Add missing explicit
inclusions of "autoptr.h", "flint_database.h", and forward
declaration of class FlintCursor.
Fri May 28 03:52:40 GMT 2010 Olly Betts <olly@survex.com>
* common/const_database_wrapper.h,common/databasereplicator.h,
common/gnu_getopt.h: Add "(C)" to copyright statements for
consistency with other files.
Fri May 28 03:45:26 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Include "debuglog.h" instead of
"omdebug.h".
Fri May 28 03:45:03 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.cc: Remove unused inclusion of "omdebug.h".
Fri May 28 03:40:50 GMT 2010 Olly Betts <olly@survex.com>
* expand/esetinternal.cc,matcher/localmatch.cc,matcher/multimatch.cc,
matcher/rset.cc: Add missing explicit inclusions of "omassert.h".
Thu May 27 23:39:57 GMT 2010 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/expand.h: Remove unused header.
Thu May 27 06:45:27 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/stem.h: Update the list of languages that the
Xapian::Stem constructor recognises.
Thu May 27 05:20:42 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/stem.h,languages/Makefile.mk,
languages/compiler/generator.c,languages/stem.cc,
languages/steminternal.cc,languages/steminternal.h,tests/Makefile.am,
tests/api_stem.cc: Add the ability to specify your own stemming
algorithm by subclassing Xapian::StemImplementation, mostly based on
patch from Evgeny Sizikov in ticket#448.
Thu May 27 04:50:31 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_opvalue.cc: Use TEST_REL() instead of tout and TEST() with
an inequality.
Thu May 27 04:28:07 GMT 2010 Olly Betts <olly@survex.com>
* api/replication.cc,backends/databasereplicator.cc,common/debuglog.h,
common/omdebug.h,expand/esetinternal.cc,expand/ortermlist.cc,
matcher/,net/remoteconnection.cc: Partial mass conversion of files
from omdebug.h to debuglog.h (this takes care off all the files
without BSN copyright).
Thu May 27 04:24:36 GMT 2010 Olly Betts <olly@survex.com>
* common/output.h: Use <ostream> not <fstream>.
Thu May 27 04:09:25 GMT 2010 Olly Betts <olly@survex.com>
* matcher/orpostlist.cc: Prefer ++x to x += 1 for consistency.
Wed May 26 13:32:20 GMT 2010 Olly Betts <olly@survex.com>
* matcher/exactphrasepostlist.cc: Separate (C) notice from @file
doccomment.
Wed May 26 13:11:57 GMT 2010 Olly Betts <olly@survex.com>
* backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h:
Move virtual method FlintPostList::get_doclength() definition out
of header, which also means the header no longer needs omdebug.h.
Wed May 26 13:03:22 GMT 2010 Olly Betts <olly@survex.com>
* common/debuglog.h: Strip out commented out RETURN_VOID machinery.
This case is automatically handled provided LOGCALL_VOID is used.
Wed May 26 12:33:04 GMT 2010 Olly Betts <olly@survex.com>
* common/debuglog.h: Don't check the category more than once in ctors
and dtors. Don't convert the return value to a string in RETURN()
unless we want to log it.
Wed May 26 02:33:00 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_opvalue.cc: Convert file description to doccomment.
Remove unused headers and reorder remainder more standardly.
Tue May 25 10:17:42 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Note ordecay1 and ordecay2 fixes now also in
1.0.21. Whitespace tweak.
Tue May 25 04:11:53 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_backend.cc: make_ordecay1_db and make_ordecay2_db end up
looping over at least 4 billion values (or possibly infinitely) on
platforms where sizeof(long) == 8. The two databases are very
similar and the latter one works for the former test, so use the
same db for both tests, and rewrite the generator to work
portably.
Sun May 23 07:30:58 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Note XOR decay bug also fixed in 1.0.21.
Sat May 22 13:31:38 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac,tests/Makefile.am: Only try to build zlib-vg.so if we
are found a suitable valgrind installed (otherwise it's a waste of
effort to build it, and the build will fail without the valgrind
headers).
Sat May 22 13:18:33 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac,tests/Makefile.am,tests/runtest.in,tests/zlib-vg.c: zlib
can produce "uninitialised" output from "initialised" input - the
output does decode to the input, so this is presumably just some
unused bits in the output, so we use an LD_PRELOAD hack to get
valgrind to check the input is initialised and then tell it that the
output is initialised.
Wed May 19 14:34:52 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/andmaybepostlist.cc,matcher/andmaybepostlist.h,
matcher/orpostlist.cc: Fix a bug causing documents to be skipped
when OR decayed to AND_MAYBE, if the new RHS was behind the LHS
at the time of the decay. Fixes #476.
* tests/api_backend.cc: Add test case ordecay2 as a regression test
of this. Also, remove some debug output in ordecay1, to speed it
up quite a bit.
Wed May 19 11:48:07 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/orpostlist.cc,tests/api_backend.cc: Fix a bug in the
decay from OR to AND: if the decay happened when the two
sub-postlists were on different docids, but the higher of those
docids actually occurred in both postlists, the higher docid
would be incorrectly skipped. Add regression test ordecay1 to
test this.
Wed May 19 10:36:55 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_backend.cc,tests/api_compact.cc,
tests/harness/testrunner.cc,tests/harness/testrunner.h: Add new
test backend selection flag "generated", to select only backends
which support generated test databases.
Wed May 19 03:14:15 GMT 2010 Olly Betts <olly@survex.com>
* api/,backends/brass/,backends/chert/,
backends/contiguousalldocspostlist.cc,backends/flint/,
backends/inmemory/inmemory_database.cc,
backends/remote/remote-database.cc,backends/slowvaluelist.cc,
common/utils.h,expand/esetinternal.cc,matcher/phrasepostlist.cc,
net/remoteserver.cc,net/remotetcpclient.cc,
queryparser/termgenerator.cc,tests/,
tests/harness/backendmanager_multi.cc,
tests/harness/backendmanager_remote.cc,
tests/harness/backendmanager_remotetcp.cc,tests/internaltest.cc,
tests/perftest/perftest.cc,tests/perftest/perftest_matchdecider.cc,
tests/perftest/perftest_randomidx.cc,tests/queryparsertest.cc,
tests/termgentest.cc: Fully migrate from om_tostring() to str().
Wed May 19 03:13:43 GMT 2010 Olly Betts <olly@survex.com>
* cmake/xapian-config-version.cmake,cmake/xapian-config.cmake: Remove
generated files from SVN.
Wed May 19 02:59:47 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-inspect.cc: Add misisng explicit '#include <utils.h>'.
Tue May 18 14:24:03 GMT 2010 Olly Betts <olly@survex.com>
* bin/Makefile.mk,bin/xapian-check.cc,bin/xapian-compact.cc: Improve
building with flint, chert and/or brass disabled (partially addresses
ticket#361).
Tue May 18 00:42:08 GMT 2010 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix warnings with --disable-backend-remote
(partially addresses ticket#361).
Sat May 15 06:56:26 GMT 2010 Olly Betts <olly@survex.com>
* net/progclient.cc: Read the max fd with sysconf() instead of using
a hardcoded value of 256. Work even if stdin and stdout have been
closed.
Thu May 13 10:53:24 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/orpostlist.cc: Correct some debugging lines.
Thu May 13 09:57:12 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/xorpostlist.cc,matcher/xorpostlist.h: Pass a minweight
value of 0 to children of XOR postlists, because we need to know
about all matching documents from the children even if they have
a low weight.
* tests/api_backend.cc: Regression test for this: xordecay1.
Thu May 13 08:47:22 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/soaktest/soaktest_queries.cc: Add more code comments,
increase the number of repetitions from 100 to 10000, remove
accidentally added semicolons after some braces, remove "return
false" at end of test which was added for debugging purposes,
clear tout before testing each query, and display the query
number, the query, and the msets in the event of failure.
Tue May 11 10:16:05 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/soaktest/soaktest_queries.cc: Don't fail for empty result
sets.
Tue May 11 10:13:08 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/soaktest/: Add a "soaktest" testsuite, intended to contain
long-running tests with random data. Currently contains a single
test which builds and runs random queries, checking that the
results returned are consistent when asking for different result
ranges.
Mon May 10 16:57:29 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_opvalue.cc: Add tests for OP_VALUE_RANGE to get
coverage of the skip_to() and check() methods of
ValueRangePostList.
Mon May 10 16:51:14 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_opvalue.cc: Add a test to get coverage of
ValueGePostList::skip_to().
Sun May 09 21:22:50 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_nodb.cc,tests/api_opvalue.cc: Move test "opvaluege1"
from api_nodb.cc to api_opvalue.cc, and rename to valuege3 for
consistency with other tests of OP_VALUE_GE.
Sun May 09 21:19:43 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/Makefile.am,tests/api_anydb.cc,tests/api_opvalue.cc: Move
the tests for OP_VALUE_* query operators from api_anydb.cc to
api_opvalue.cc. Remove copyright statements earlier than 2007,
since OP_VALUE_* wasn't added until 2007.
Sun May 09 21:04:06 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/valuegepostlist.cc: Initialise valuelist in check() if
necessary.
* tests/api_anydb.cc: Add regression test for this.
Thu May 06 15:03:43 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_replicate.cc: Add some extra debugging, to help
identify the problem with ticket #472.
Thu May 06 13:38:25 GMT 2010 Olly Betts <olly@survex.com>
* common/safeuuid.h,configure.ac,INSTALL: Make use of built-in UUID API
on FreeBSD and NetBSD. (ticket#470)
Thu May 06 13:10:30 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS,Makefile.am,cmake/,configure.ac: Install files to make Xapian
easier to use with cmake. Thanks to Sune Vuorela for providing the
desired output.
Thu May 06 11:42:16 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/fdtracker.cc: Don't pass NULL to closedir().
Thu May 06 11:19:41 GMT 2010 Olly Betts <olly@survex.com
* tests/api_anydb.cc: Test UUID is 36 characters long.
Thu May 06 10:41:21 GMT 2010 Olly Betts <olly@survex.com>
* matcher/valuegepostlist.cc: Use "str.h" and str().
Thu May 06 10:01:48 GMT 2010 Olly Betts <olly@survex.com>
* matcher/valuegepostlist.cc: Remove unused headers.
Thu May 06 09:55:27 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc:
Keep return value from valuelist->get_value() as a const string &
rather than a string - could be more efficient on some compilers,
though testing with gcc 4.1 revealed no difference.
Thu May 06 09:49:12 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/valuegepostlist.cc: "while(" -> "while (" in recent patch.
Thu May 06 09:30:27 GMT 2010 Olly Betts <olly@survex.com>
* docs/replication.rst: Remove experimental warning.
Thu May 06 05:05:57 GMT 2010 Olly Betts <olly@survex.com>
* matcher/valuerangepostlist.cc: Use "str.h" and str().
Thu May 06 05:03:22 GMT 2010 Olly Betts <olly@survex.com>
* matcher/valuerangepostlist.cc: Remove '#include "leafpostlist.h"'
and '#include "document.h"' which are no longer used.
Thu May 06 04:53:07 GMT 2010 Olly Betts <olly@survex.com>
* matcher/valuerangepostlist.cc: Remove '#include "autoptr.h"' which is
no longer required.
Thu May 06 04:18:25 GMT 2010 Olly Betts <olly@survex.com>
* matcher/valuerangepostlist.cc: "while(" -> "while (" in recent patch.
Wed May 05 16:44:17 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/orpostlist.cc,matcher/orpostlist.h: Add
OrPostList::check() method, which calls check() on the
sub-postlists, rather than falling back to skip_to(). This is
particularly helpful when a sub-postlist is one for which
skip_to() can be significantly more expensive than check(), such
as a ValueRangePostList. I've observed a speedup of 10 times for
such a subquery with this change.
Wed May 05 16:34:30 GMT 2010 Richard Boulton <richard@tartarus.org>
* matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
matcher/valuerangepostlist.h: Implement ValueRangePostList and
ValueGePostList using a ValueList streaming values for the value
slot of interest, rather than using an AllDocsPostList to get all
documents, using that to open temporary documents for each
document being considered, and then using that to get the value.
I've observed a speedup of more than 70 times for range queries
in a real-world situation with this change (a 29 second search
became a 0.4 second search). (ticket#432)
Wed May 05 06:44:31 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Wed May 05 05:42:56 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_cursor.cc,backends/chert/chert_cursor.cc,
backends/flint/flint_cursor.cc: If we have to rebuild the cursor
on next() because the table changed underneath us, we need to
advance it because find_entry() will put the cursor on the entry
we were already on, or the one before if the entry we were on
has been removed. Bug uncovered by notmuch testsuite, but I'm
unable to reduce it to a sane testcase for our testsuite.
(Debian#579951)
Tue May 04 19:38:31 GMT 2010 Richard Boulton <richard@tartarus.org>
* api/replication.cc,bin/xapian-replicate.cc,
common/replicatetcpclient.h,common/replication.h,
net/replicatetcpclient.cc,tests/api_replicate.cc: Fix a bug in
replication, which triggered when multiple modifications were
made to a database while a full copy of the database was in
progress. In this situation, the client would fail to apply more
than one changeset before trying (and failing) to make the
database live, due to an incorrect assignment of the new revision
number to "offline_needed_revision" instead of
"offline_revision". Also, replication now only sleeps for a
period (to allow reader to catch up) after a changeset has been
applied to a live database - previously, it would sleep
unnecessarily after a changeset had been applied to an offline
database. Also, make the period for which replication sleeps in
this situation configurable with the "-r" command line option to
xapian-replicate.
A test for these changes will be committed to xapian-bindings
shortly.
Sat May 01 15:25:48 GMT 2010 Olly Betts <olly@survex.com>
* Merge change accidentally committed to brass-btree branch:
* tests/perftest/runprocess.cc: Use safesyswait.h, fixing build failure
on "make check" on FreeBSD.
Fri Apr 30 12:33:25 GMT 2010 Richard Boulton <richard@tartarus.org>
* backends/brass/brass_databasereplicator.cc,
backends/chert/chert_databasereplicator.cc,
backends/flint/flint_databasereplicator.cc,tests/api_replicate.cc:
If a DB file doesn't exist when applying a changeset, try
creating it - this happens with lazy tables which aren't created
in the initial revision copied. Add replicate4 test to check
that this works correctly with a lazily created position table.
Fixes ticket #468.
Fri Apr 30 07:09:31 GMT 2010 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Replication and PostingSource aren't
experimental in 1.2.x.
Fri Apr 30 00:52:22 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Fix typo in previous commit.
Thu Apr 29 23:46:09 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Check is SA_SIGINFO is defined before
using it as it isn't available everywhere. Fixes FTBFS on GNU Hurd.
Thu Apr 29 12:11:48 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Install headers under PREFIX/include not
PREFIX/include/xapian. This broke compiling code which didn't use
XO_LIB_XAPIAN or xapian-config.
Wed Apr 28 12:05:23 GMT 2010 Olly Betts <olly@survex.com>
* Makefile.am,m4-macros/xapian-1.1.m4: Remove -1.1 suffix from
xapian-1.1.m4 and libxapian-1.1.la.
Wed Apr 28 06:15:45 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Sync with 1.0.20.
* NEWS,configure.ac: 1.2.0!
Tue Apr 27 12:45:29 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS: Add bug reporter.
Mon Apr 26 08:26:26 GMT 2010 Olly Betts <olly@survex.com>
* common/getopt.cc,common/gnu_getopt.h: On Cygwin, #include <getopt.h>
for declarations of optind, etc rather than providing our own
declarations. Should fix warnings in Cygwin build reported by Reini
Urban on xapian-devel list.
Mon Apr 26 06:27:07 GMT 2010 Olly Betts <olly@survex.com>
* common/getopt.cc,common/gnu_getopt.h: Revert previous 2
getopt-related patches. The latest state was breaking on Solaris
which (contrary to what its man pages say) prototypes getopt() stuff
in stdlib.h. This seems to be a rabbit hole we don't want to head
further down.
Sat Apr 24 02:12:53 GMT 2010 Olly Betts <olly@survex.com>
* examples/delve.cc: Update --help output for -v to cover all terms
case.
Sat Apr 24 01:58:00 GMT 2010 Olly Betts <olly@survex.com>
* examples/delve.cc: Add -a option to list all terms in a database.
Sat Apr 24 01:51:01 GMT 2010 Olly Betts <olly@survex.com>
* examples/copydatabase.cc: Prefer string() to "" converted to string.
Thu Apr 22 14:21:30 GMT 2010 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix bug related to ticket#464 (the previous
fix doesn't fix some similar cases).
* tests/api_backend.cc: Add regression test msize2.
Thu Apr 22 11:02:11 GMT 2010 Olly Betts <olly@survex.com>
* tests/: Hook up --abort-on-error fix for termgentest, stemtest,
queryparsertest, and internaltest.
Thu Apr 22 06:06:53 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Add a hyphen.
Wed Apr 21 11:16:50 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/testrunner.cc: Exit with status 1 not 0 if we caught an
exception from the harness itself.
Wed Apr 21 11:11:10 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/testrunner.cc,tests/harness/testsuite.cc: Fix
--abort-on-error to actually work.
Tue Apr 20 12:53:29 GMT 2010 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Note how to disable deprecation warnings.
Tue Apr 20 07:27:23 GMT 2010 Olly Betts <olly@survex.com>
* api/omenquire.cc,matcher/multimatch.cc: Fix incorrect estimate and
bounds on matches when sorting and collapsing in a particular case
(ticket#464).
* tests/api_backend.cc: Add regression test msize1.
Mon Apr 19 01:59:59 GMT 2010 Olly Betts <olly@survex.com>
* examples/delve.cc: Use strtoul() instead of atoi() to decode document
id and value slot numbers passed on the command line. Report out of
range and invalid values.
Sat Apr 17 09:17:25 GMT 2010 Olly Betts <olly@survex.com>
* common/getopt.cc,common/gnu_getopt.h: Fix getopt code to work on
platforms without GNU getopt but with getopt().
Fri Apr 16 14:23:49 GMT 2010 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update for 1.1.5.
* NEWS: Sync changes from 1.0.19.
Fri Apr 16 12:29:14 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Handle NULL in the const char * catch.
Fri Apr 16 05:47:43 GMT 2010 Olly Betts <olly@survex.com>
* api/postingsource.cc: Fix wrapping.
Thu Apr 15 09:07:40 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_replicate.cc: Use a fixed size buffer for copying a
file, rather than a dynamically sized buffer; avoids using the
GCC extension allowing dynamically sized arrays.
Thu Apr 15 04:02:34 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS: Update with bug reporters.
Thu Apr 15 00:30:45 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/termgenerator.h: Note how TermGenerator handles
stopwords.
Wed Apr 14 23:41:55 GMT 2010 Olly Betts <olly@survex.com>
* common/getopt.cc,common/gnu_getopt.h: Put our optarg, etc in a
namespace and then pull them in to avoid linking to versions in the C
library. Fixes warnings on Cygwin.
Wed Apr 14 15:33:39 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Remove already fixed FIXME comment.
Wed Apr 14 14:13:10 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Use const reference to avoid a
needless handle copy.
Wed Apr 14 14:00:21 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_alltermslist.cc,
backends/brass/brass_alltermslist.h,
backends/chert/chert_alltermslist.cc,
backends/chert/chert_alltermslist.h,
backends/flint/flint_alltermslist.cc,
backends/flint/flint_alltermslist.h: Fix memory leak if Database
throws an exception in XXXAllTermsList constructor. Fixes bug#462.
* tests/api_backend.cc: Enable qpmemoryleak1 for non-remote backends as
a regression test for this fix.
Tue Apr 13 12:38:08 GMT 2010 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Don't memcpy() a block to itself -
it's a waste of effort, and (probably) undefined behaviour (as a
block overlaps itself).
Tue Apr 13 12:36:53 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/chert/chert_table.cc: Don't
memcpy() a block to itself - it's a waste of effort, and (probably)
undefined behaviour (as a block overlaps itself).
Tue Apr 13 08:38:40 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Add a ParserHandler class to take
care of releasing the yyParser object.
Tue Apr 13 07:49:33 GMT 2010 Olly Betts <olly@survex.com>
* common/autoptr.h: Fix comment typo.
Tue Apr 13 07:47:40 GMT 2010 Olly Betts <olly@survex.com>
* api/replication.cc: "autoptr.h" not <autoptr.h> (it's an in-tree
header).
Tue Apr 13 07:25:11 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix leak of yyParser if an exception
is thrown during parsing. Partly fixes ticket#462.
* tests/api_backend.cc: Add regression test qpmemoryleak1.
Tue Apr 13 01:37:08 GMT 2010 Olly Betts <olly@survex.com>
* common/utils.cc,common/utils.h: Revert change to make removedir()
recurse into subdirectories - it doesn't fix a bug, so isn't
appropriate when we're trying to get 1.2.0 out (backends don't
currently put files in subdirectories, which was the justification
in the commit message).
Mon Apr 12 11:50:37 GMT 2010 Olly Betts <olly@survex.com>
* Backport change from brass:
* backends/flint/: Fix to rebuild cursors if the table gains or loses a
level. Fixes ticket#455.
Mon Apr 12 09:29:39 GMT 2010 Olly Betts <olly@survex.com>
* Backport change from brass:
* backends/chert/: Fix to rebuild cursors if the table gains or loses a
level. Fixes ticket#455.
Mon Apr 12 09:26:53 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/: Fix to rebuild cursors if the table gains or loses a
level. Fixes ticket#455.
Mon Apr 12 08:27:29 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_none.cc: Work around compilation failure on OpenBSD. Fixes
ticket#458.
Fri Apr 02 04:03:04 GMT 2010 Olly Betts <olly@survex.com>
* m4-macros/xapian-1.1.m4: Give a more specific error message for the
cases where XAPIAN_CONFIG isn't found, is a directory, or isn't
executable.
Thu Mar 25 14:43:57 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Add databasemodified1 testcase to provide some
test coverage for DatabaseModifiedError.
Thu Mar 25 06:32:44 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-check-flint.cc: Report docid for doclength mismatch.
Thu Mar 25 06:23:26 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Report docid for
doclength mismatch.
Sat Mar 20 15:04:18 GMT 2010 Olly Betts <olly@survex.com>
* docs/spelling.rst: Add a note about removing automatically added
spelling dictionary entries.
Sat Mar 20 09:30:44 GMT 2010 Olly Betts <olly@survex.com>
* docs/spelling.rst: Add section on indexing. Move the "algorithm"
section to the end, as it is really just background information for
the curious.
Wed Mar 17 01:33:39 GMT 2010 Olly Betts <olly@survex.com>
* INSTALL: Add a hyphen.
Wed Mar 17 01:30:34 GMT 2010 Olly Betts <olly@survex.com>
* INSTALL: Correct description of --enable-assertions. It does NOT
enable debugging symbols, and shouldn't control checks on bad data
passed to API calls (if it does anywhere, that's a bug). Note that
Xapian will run more slowly with assertions on.
Wed Mar 17 01:10:13 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_values.cc: Put ValueUpdater in Brass namespace
to avoid cross-linking issues with ValueUpdater class in chert
(change taken from brass-btree branch).
Sun Mar 14 10:05:36 GMT 2010 Olly Betts <olly@survex.com>
* Backport change from chert:
* backends/flint/flint_database.cc,
backends/flint/flint_positionlist.cc,
backends/flint/flint_positionlist.h: When updating a document, rather
than decoding the old positions, comparing with the new, and then
encoding the new if different, we now just encode the new and then
compare the encoded forms. (ticket#428) This change also avoids
calling FlintPositionListTable::del() when we know the entry doesn't
already exist.
* backends/flint/flint_positionlist.cc: Minor refactor to improve
code clarity and to only create std::string variable when it
is needed.
Sun Mar 14 09:45:34 GMT 2010 Olly Betts <olly@survex.com>
* Backport change from brass:
* backends/chert/chert_positionlist.cc: Minor refactor to improve
code clarity and to only create std::string variable when it
is needed.
Sun Mar 14 09:29:54 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_positionlist.cc: Minor refactor to improve
code clarity and to only create std::string variable when it
is needed.
Sun Mar 14 07:37:03 GMT 2010 Olly Betts <olly@survex.com>
* api/replication.cc,tests/api_closedb.cc,tests/api_metadata.cc,
tests/internaltest.cc: Catch by const reference rather than just
reference, unless we actually need to modify the caught object.
Sun Mar 14 06:45:11 GMT 2010 Olly Betts <olly@survex.com>
* api/replication.cc: Check live_db only has a single sub-database even
if we just lazily opened it.
Sun Mar 14 05:00:21 GMT 2010 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,
backends/flint/flint_databasereplicator.cc: Add missing explicit
'#include "str.h"'.
Sat Mar 13 09:22:24 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_replicate.cc: Always use off_t to refer to the size of a
file: fixes warnings about comparting a signed value to an unsigned
value.
Thu Mar 11 16:07:10 GMT 2010 Richard Boulton <richard@tartarus.org>
* api/replication.cc: Open the livedb lazily if it gets left in a
closed state (due to an exception when applying a changeset),
rather than reopening it straight away in an exception handler.
This requires the livedb to become a mutable member, but is safer
in the event that an exception is thrown by the WritableDatabase
constructor.
Thu Mar 11 15:17:12 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_replicate.cc: Uncomment the rmtmpdir() at the end of
replicate3; it was accidentally committed debugging code.
Thu Mar 11 13:03:57 GMT 2010 Richard Boulton <richard@tartarus.org>
* api/replication.cc: If an exception is thrown, mark that the
offline revision needed is unknown (represented by being empty);
ensures that a database isn't put live incorrectly in this case.
Also, actually read the message for REPL_REPLY_END_OF_CHANGES, so
that we get an error if the message is truncated. Also, if an
attempt to apply a changeset to the live database fails with an
exception while the live database is closed, reopen the live
database before allowing the exception to propagate.
* tests/api_replicate.cc: Split replicate() helper function into
two parts, to separate getting the changeset messages, and
applying them. Add replicate3 test, which checks that
replications which are provided with truncated messages raise
appropriate errors.
Thu Mar 11 00:46:39 GMT 2010 Olly Betts <olly@survex.com>
* common/replicate_utils.cc: Avoid creating temporary string objects
to reduce bloat in compiled code. Remove explicit std:: qualifiers.
Thu Mar 11 00:38:00 GMT 2010 Olly Betts <olly@survex.com>
* common/replicate_utils.cc: The directory we're writing changesets
to will always exist, so no need to ensure it does.
Thu Mar 11 00:10:19 GMT 2010 Olly Betts <olly@survex.com>
* backends/chert/chert_databasereplicator.cc,
backends/flint/flint_databasereplicator.cc: Fix calculation of end
pointer for changes file. Since the merge, it has been off by
CONST_STRLEN(CHANGES_MAGIC_STRING).
Wed Mar 10 23:59:38 GMT 2010 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,
backends/chert/chert_databasereplicator.cc: Add missing explicit
'#include "str.h"'.
Wed Mar 10 13:07:41 GMT 2010 Richard Boulton <richard@tartarus.org>
* common/Makefile.mk,common/replicate_utils.cc,
common/replicate_utils.h: Add some utility functions for
replication to create changeset files, and append content to
them, to avoid duplicating the code in each backend.
* backends/chert/chert_database.cc,
backends/chert/chert_databasereplicator.cc,
backends/chert/chert_databasereplicator.h,
backends/flint/flint_database.cc,
backends/flint/flint_databasereplicator.cc,
backends/flint/flint_databasereplicator.h: Make the
DatabaseReplicator subclasses respect the XAPIAN_MAX_CHANGESETS
environment variable, such that they write the changesets they're
applying to disk if the value is non-zero. Enables replication
from a replicated copy.
* tests/api_replicate.cc: Refactor some common code, and add
replicate2, which tests replication from a replicated copy. Skip
this test for brass, since brass doesn't support this.
Wed Mar 10 12:11:41 GMT 2010 Richard Boulton <richard@tartarus.org>
* common/utils.cc,common/utils.h: Make removedir() recurse into
subdirectories; this ensures that replication works if backends
put some files in subdirectories of their replicas (eg, if the
replica is itself a replicated database).
Wed Mar 10 12:07:40 GMT 2010 Richard Boulton <richard@tartarus.org>
* backends/chert/,backends/flint/,common/Makefile.mk,
common/io_utils.cc,common/io_utils.h: Refactor duplicated code
from {flint,chert}_io.{cc,h} into common/io_utils.{cc,h}. Rename
flint_io_read() to io_read(); do similar for flint_io_write()
and flint_io_sync(), and for the chert versions. Leave brass
alone to avoid conflicting with the new brass backend development
branch.
Mon Mar 08 02:32:35 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-check-chert.cc: Check that the doclen initial chunk
exists.
Tue Mar 02 13:28:50 GMT 2010 Olly Betts <olly@survex.com>
* Backport change from brass:
* backends/chert/chert_database.cc,
backends/chert/chert_positionlist.cc,
backends/chert/chert_positionlist.h: When updating a document, rather
than decoding the old positions, comparing with the new, and then
encoding the new if different, we now just encode the new and then
compare the encoded forms. (ticket#428) This change also avoids
calling ChertPositionListTable::del() when we know the entry doesn't
already exist.
Tue Mar 02 04:00:22 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Harness now catches const char *
exceptions explicitly so it can show their contents.
Tue Mar 02 03:59:27 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/valueiterator.h: Comment tweak.
Tue Mar 02 03:57:55 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Add missing forward declaration of
"class Database".
Tue Mar 02 01:51:33 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update partially from ChangeLog.
Mon Mar 01 05:38:41 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,
backends/brass/brass_positionlist.cc,
backends/brass/brass_positionlist.h: When updating a document, rather
than decoding the old positions, comparing with the new, and then
encoding the new if different, we now just encode the new and then
compare the encoded forms. (ticket#428) This change also avoids
calling BrassPositionListTable::del() when we know the entry doesn't
already exist.
Mon Mar 01 02:09:40 GMT 2010 Olly Betts <olly@survex.com>
* net/serialise.cc: Don't call Document::values_count() twice when we
can trivially avoid doing so. Ditto for termlist_count() and
positionlist_count().
Mon Mar 01 01:53:58 GMT 2010 Olly Betts <olly@survex.com>
* bin/: Rename tot_off to last_docid when it is actually holding the
last_docid value.
Sun Feb 28 23:47:49 GMT 2010 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Whitespace tweak.
Sun Feb 28 23:44:58 GMT 2010 Olly Betts <olly@survex.com>
* tests/dbcheck.cc: Tweak whitespace to match standard usage. Catch
exceptions by const reference.
* HACKING: Discuss why exceptions should be caught by const reference.
Tweak markup of blockquotes.
Sun Feb 28 22:50:50 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Add note about "new SomePODType()" not being the same as
"new SomePODType".
Sun Feb 28 22:29:31 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Quote ``cat`` and ``more``.
Sun Feb 28 14:00:39 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_compact.cc: Clarify comment about regression test for
1.1.4, and remove a test line which is implicit in the following
dbcheck() line anyway.
Sun Feb 28 11:07:33 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/fdtracker.cc,tests/harness/fdtracker.h: Add GPL
boilerplate and copyright notices which I failed to do before
committing these new files.
Thu Feb 25 10:34:15 GMT 2010 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc:
Initialise z_stream members zalloc, zfree, and opaque with Z_NUL
rather than 0 cast to the appropriate type, as that's what the zlib
documentation says to do. Add missing initialisation of opaque for
the inflate z_stream which the docs say is needed, though reading
the zlib code, isn't actually for current versions.
Wed Feb 24 14:24:05 GMT 2010 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc: Fix indentation.
Wed Feb 24 14:18:25 GMT 2010 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remote-database.h,
common/remoteprotocol.h,common/remoteserver.h,
docs/remote_protocol.html,net/remoteserver.cc,tests/api_spelling.cc:
Add remote backend support for WritableDatabase::add_spelling() and
WritableDatabase::remove_spelling(). This bumps the remote protocol
to version 35.0 (so both client and servers will need updating).
Suggesting spelling corrections isn't yet supported. (ticket#178)
Wed Feb 24 09:09:27 GMT 2010 Olly Betts <olly@survex.com>
* examples/delve.cc: "lastdocid" -> "highest document id ever used"
in output so it's clearer what this number means.
Tue Feb 23 14:03:47 GMT 2010 Olly Betts <olly@survex.com>
* api/postingsource.cc: Fix incorrect classname in error message.
Tue Feb 23 13:16:11 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: For -fno-strict-aliasing for GCC 4.2 to avoid bad code
being generated due to a bug in that compiler version. Fixes
ticket#449.
Tue Feb 23 03:08:02 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac,tests/harness/testsuite.cc: Use sigsetjmp() and
siglongjmp() where available so that the set of blocked signals
get restored and the test harness can catch a second incidence
of a particular signal in a run. Use sigaction() instead of
signal() where available, which allows us to report the address
associated with SIGSEGV, SIGFPE, SIGILL, and SIGBUS.
Mon Feb 22 14:29:50 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_databasereplicator.cc,
backends/chert/chert_databasereplicator.cc,
backends/flint/flint_databasereplicator.cc: Fix exception message
if we get an unsupported changeset type.
Mon Feb 22 01:49:03 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/dbcheck.cc: Check the wdf, doclen, and value bounds
reported by the database against correct (tight) bounds
calculated by iterating through the database contents.
Mon Feb 22 01:47:20 GMT 2010 Richard Boulton <richard@tartarus.org>
* backends/brass/brass_database.cc,backends/chert/chert_database.cc:
Ensure that wdfs are reported to the stats object correctly when
replacing documents. These checks were absent entirely in chert,
and incorrectly skipped in some cases in brass.
Mon Feb 22 00:59:57 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_valuestream.cc: Reset tout before testing each interval.
Prefer string() to "".
Mon Feb 22 00:57:59 GMT 2010 Olly Betts <olly@survex.com>
* docs/deprecation.rst,examples/delve.cc: Remove delve's -k option,
accepted as an undocumented alias for -V since 0.9.10 for
compatibility with 0.9.9 and earlier. Just use -V instead.
Mon Feb 22 00:45:37 GMT 2010 Olly Betts <olly@survex.com>
* examples/delve.cc: If documents are specified, change "-V<valueno>"
to only show calues for those documents.
Sun Feb 21 14:11:58 GMT 2010 Olly Betts <olly@survex.com>
* common/stringutils.h: Factor out looking up a character in the table
into a separate inlined function. Add C_islcxdigit() to check for
an lower case hex digit.
Sun Feb 21 11:10:10 GMT 2010 Olly Betts <olly@survex.com>
* examples/Makefile.mk,examples/xapian-metadata.cc: Add new example
"xapian-metadata" which allows you to get and set individual user
metadata entries.
Sun Feb 21 10:31:56 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Belatedly update version number to 1.1.4.
Sat Feb 20 01:09:45 GMT 2010 Olly Betts <olly@survex.com>
* tests/runtest.in: Now we have fd leak checking in the test harness,
remove the ulimit as it doesn't add anything, and has caused problems
on some Debian buildds.
Fri Feb 19 02:08:25 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.h,tests/harness/testsuite.cc:
Call backendmanager->clean_up() before checking for fd leaks
to avoid finding the sockets/pipes as leaks. This means that
clean_up() needs to handle being called more than once for
a test sometimes (which the current versions do) so document
that.
Thu Feb 18 02:31:17 GMT 2010 Olly Betts <olly@survex.com>
* examples/simpleindex.cc: Explicitly call commit() on the database,
as that is good practice (since you see any exceptions).
Thu Feb 18 01:52:10 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Clear tout on each pass of the loop to avoid a
lot of irrelevant output under --verbose if the test fails.
Thu Feb 18 01:33:53 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Fix fd tracking change to work when
HAVE_VALGRIND isn't defined.
Thu Feb 18 00:46:20 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Document the possible exception
messages from QueryParser::parse_query().
Thu Feb 18 00:20:18 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Also explicitly commit after
indexing for flint and chert.
Wed Feb 17 15:58:04 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/: Add machinery to check for leaked FDs. Currently
requires /proc/self/fd to work (so it works on at least Linux), but
should do nothing on platforms without this directory.
Wed Feb 17 15:53:30 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Explicitly commit after indexing
for brass, so we see any exceptions from the commit (commit from
the dtor swallows any exceptions).
Tue Feb 16 16:23:30 GMT 2010 Richard Boulton <richard@tartarus.org>
* bin/xapian-compact.cc: Fix failure to set lastdocid to an
appropriate value when using --no-renumber.
* tests/api_compact.cc: Add regression test for this.
Tue Feb 16 16:10:49 GMT 2010 Richard Boulton <richard@tartarus.org>
* examples/delve.cc: Display the lastdocid value when displaying
general database statistics.
Tue Feb 16 15:39:50 GMT 2010 Richard Boulton <richard@tartarus.org>
* bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Correct typo
in error message.
Mon Feb 15 13:59:45 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Update for 1.1.4.
Mon Feb 15 13:58:44 GMT 2010 Olly Betts <olly@survex.com>
* PLATFORMS: We don't support GCC < 3.1, so remove discussion of
issues with GCC 2.95.
Mon Feb 15 13:55:10 GMT 2010 Olly Betts <olly@survex.com>
* PLATFORMS: Update from 1.0.18.
Mon Feb 15 11:51:15 GMT 2010 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog. Update from 1.0.18.
Sun Feb 14 05:47:30 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix QueryParser to handle an explicit
AND before a hated term (foo AND -bar). (ticket#447)
* tests/queryparsertest.cc: Add regression test cases.
Fri Feb 12 01:27:32 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/termgenerator_internal.cc: Only include trailing '+' or
'#' on a term if it isn't followed by a word character (makes more
sense and matches QueryParser's behaviour). (ticket#446)
* tests/termgentest.cc: Add regression test.
Thu Feb 11 04:30:56 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-inspect.cc: Add new "open" command to allow easy switching
between tables.
Wed Feb 10 02:40:36 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/document.h: Rewrite the note about Document being a
lazy handle to fix a few details and avoid nailing down the
exact implementation.
Wed Feb 10 00:37:54 GMT 2010 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Update for chert and other recent changes.
Wed Feb 10 00:37:04 GMT 2010 Olly Betts <olly@survex.com>
* docs/replication_protocol.rst: Update.
Mon Feb 08 12:05:05 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_version.cc: Fix comments about BRASS_VERSION
which were previously just cut-and-pasted from those about
CHERT_VERSION.
Mon Feb 08 11:54:04 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_metadata.cc: Include missing headers.
Mon Feb 08 09:23:00 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_document.h,backends/chert/chert_document.h:
Fix typos in documentation comments.
Mon Feb 08 08:27:09 GMT 2010 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Remove unused headers <streambuf> and
"omdebug.h".
Mon Feb 08 01:28:48 GMT 2010 Olly Betts <olly@survex.com>
* common/debuglog.h: Use std::boolalpha so bool is logged as "true"
or "false" (instead of "1" or "0").
Sat Feb 06 10:04:42 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS: Sync with 1.0 branch.
Sat Feb 06 08:20:31 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_closedb.cc: Avoid trying to create a database where
an already open one exists (which fails on Microsoft Windows).
(ticket#443).
Fri Feb 05 13:28:08 GMT 2010 Olly Betts <olly@survex.com>
* examples/simpleexpand.cc,examples/simpleindex.cc,
examples/simplesearch.cc: Handle --help and --version.
Fri Feb 05 13:25:37 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Fix not to assign elements off the end of a
vector (ticket#440).
Fri Feb 05 11:41:05 GMT 2010 Richard Boulton <richard@tartarus.org>
* api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
Remove ValueCountMatchSpy::get_values(). values_begin() should
be used instead to iterate over the values.
Fri Feb 05 07:39:46 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac: Enable automake's std-options feature to check all
installed programs support --help and --version.
Fri Feb 05 01:45:49 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/document.h: Add Document::add_boolean_term().
* tests/api_none.cc: Add testcase document1 as a feature test.
Fri Feb 05 00:27:52 GMT 2010 Olly Betts <olly@survex.com>
* backends/chert/chert_btreebase.cc,backends/flint/flint_btreebase.cc:
Add missing SEQUENTIAL entry to documentation of base file format.
Thu Feb 04 03:06:26 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Fix to work with MSVC makefiles (ticket#440).
Thu Feb 04 03:04:43 GMT 2010 Olly Betts <olly@survex.com>
* HACKING,common/Makefile.mk,common/safesyswait.h: Add wrapper
for <sys/wait.h> which defines macros for WEXITSTATUS and
WIFEXITED when required.
Wed Feb 03 15:01:36 GMT 2010 Richard Boulton <richard@tartarus.org>
* api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
Add ValueCountMatchSpy::values_begin() and values_end() to allow
iteration over all the values in a ValueCountMatchSpy without
needing to handle the dict. Move the contents of
ValueCountMatchSpy into a reference counted internal object, so
that the iterator can ensure that the contents aren't deleted
before it finishes.
Wed Feb 03 15:01:02 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/generate-api_generated: Add ValueCountMatchSpy to the list
of non-copyable API classes.
Wed Feb 03 13:18:03 GMT 2010 Richard Boulton <richard@tartarus.org>
* include/xapian/matchspy.h,tests/api_matchspy.cc: Provide an
iterator for accessing the top values found by a matchspy, rather
than using a method which takes a vector reference as a
parameter. Should be wrappable much more nicely (and get wrapped
automatically), and be easier to use: the testcase for this is
significantly shorter than for the old API. Remove
StringAndFrequency from API - it's now just an internal class.
* api/matchspy.cc: Test new access method for top_values.
Wed Feb 03 06:46:37 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS: Add Emmanuel Engelhart for reporting problems indexing
Burmese text.
Wed Feb 03 06:32:03 GMT 2010 Olly Betts <olly@survex.com>
* include/xapian/unicode.h,queryparser/queryparser.lemony,
queryparser/termgenerator_internal.cc: Add ENCLOSING_MARK and
COMBINING_SPACING_MARK categories to is_wordchar(). Make
TermGenerator and QueryParser ignore several zero-width space
characters.
* tests/queryparsertest.cc,tests/termgentest.cc: Add test coverage for
the changes.
Wed Feb 03 03:14:30 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix apostrophe abuse in comment.
Wed Feb 03 01:23:04 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Make TermList::as_opwindow_query()
private.
Wed Feb 03 01:19:19 GMT 2010 Olly Betts <olly@survex.com>
* common/replication.h: Use "" not <> for including API headers.
Wed Feb 03 01:08:58 GMT 2010 Olly Betts <olly@survex.com>
* common/replication.h: Remove warnings about this being an
experimental API, which no longer make sense now it is internal.
Tue Feb 02 21:59:59 GMT 2010 Olly Betts <olly@survex.com>
* tests/generate-api_generated: Remove DatabaseReplica.
Tue Feb 02 17:01:23 GMT 2010 Richard Boulton <richard@tartarus.org>
* include/xapian/document.h: Add a note to the API documentation
for the Document class about the potential issues involved in
lazy loading. Fixes ticket #421.
Tue Feb 02 16:21:39 GMT 2010 Richard Boulton <richard@tartarus.org>
* docs/categorisation.rst: Remove documentation of NumericRanges
stuff for now, since the NumericRanges is no longer on trunk.
Tue Feb 02 15:59:14 GMT 2010 Richard Boulton <richard@tartarus.org>
* common/replication.h: Put the ReplicationInfo, DatabaseMaster and
DatabaseReplica symbols back into public visibility - they're
needed for the tests, and for the command line scripts.
Tue Feb 02 15:06:44 GMT 2010 Richard Boulton <richard@tartarus.org>
* api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
Remove NumericRanges from trunk - their API is still uncertain,
so I want to do a bit more development work on them on the
matchspy branch before committing to support them for several
years.
Tue Feb 02 13:45:24 GMT 2010 Richard Boulton <richard@tartarus.org>
* api/replication.cc,backends/brass/brass_database.cc,
backends/chert/chert_database.cc,backends/flint/flint_database.cc,
common/,include/Makefile.mk,include/xapian/replication.h,
net/replicatetcpclient.cc,net/replicatetcpserver.cc,
tests/generate-api_generated: Move replication support out of the
public API headers and public symbol visibility. Access to
replication, for now, is via the command-line scripts: this is
similar to the access to running a remote database server, and
the access to database compaction and checking. See ticket #347
for some commentary.
Tue Feb 02 07:22:28 GMT 2010 Olly Betts <olly@survex.com>
* Backport change from chert:
* backends/flint/flint_alltermslist.h,backends/flint/flint_spelling.h,
backends/flint/flint_spellingwordslist.h: Add missing std::
qualifiers.
Tue Feb 02 07:12:51 GMT 2010 Olly Betts <olly@survex.com>
* docs/doxygen_api.conf.in: Add generated include/xapian/error.h so
that Xapian::Error and subclass API docs are collated for a VPATH
build.
* docs/Makefile.am: Add regression test to make sure doxygen collated
API docs for Xapian::RuntimeError.
Tue Feb 02 06:52:55 GMT 2010 Olly Betts <olly@survex.com>
* Backport change from brass:
* backends/chert/chert_alltermslist.h,backends/chert/chert_spelling.h,
backends/chert/chert_spellingwordslist.h: Add missing std::
qualifiers.
Tue Feb 02 01:34:52 GMT 2010 Richard Boulton <richard@tartarus.org>
* docs/replication.rst: Add note about not using reopen() with
databases being updated by the replication client.
Tue Feb 02 01:17:34 GMT 2010 Richard Boulton <richard@tartarus.org>
* api/matchspy.cc,docs/categorisation.rst,include/xapian/matchspy.h,
tests/api_matchspy.cc: Remove score_evenness(), since it turned
out to be of little or no use in practical situations. See
ticket #435 for more details.
Mon Feb 01 21:53:41 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/chert/chert_table.cc: Use
LOGCALL_VOID for add() methods which now return void.
Mon Feb 01 21:50:05 GMT 2010 Olly Betts <olly@survex.com>
* Backport change from brass:
* backends/flint/flint_table.cc,backends/flint/flint_table.h:
Fix documentation comments for FlintTable::add() and
FlintTable::del() - errors actually cause exceptions, not a false
return value, and del() returns true if it actually removed an entry.
Fix FlintTable::add() to throw an exception for the (hopefully never
hit) case when the tag value is too insanely large to handle. With
that FlintTable::add() always returns true, and we never check the
return value anyway, so just make it return void.
Mon Feb 01 21:37:33 GMT 2010 Olly Betts <olly@survex.com>
* Backport change from brass:
* backends/chert/chert_table.cc,backends/chert/chert_table.h:
Fix documentation comments for ChertTable::add() and
ChertTable::del() - errors actually cause exceptions, not a false
return value, and del() returns true if it actually removed an entry.
Fix ChertTable::add() to throw an exception for the (hopefully never
hit) case when the tag value is too insanely large to handle. With
that ChertTable::add() always returns true, and we never check the
return value anyway, so just make it return void.
Mon Feb 01 16:02:27 GMT 2010 Richard Boulton <richard@tartarus.org>
* bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Fix checking
of the METAINFO key in chert and brass. For small databases, the
statistics fit in few enough bytes that the trailing
unpack_uint_last() moved to end, so errors weren't being
reported, but for large databases the check was incorrectly
reporting an error.
Mon Feb 01 09:24:14 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_table.cc,backends/brass/brass_table.h:
Fix documentation comments for BrassTable::add() and
BrassTable::del() - errors actually cause exceptions, not a false
return value, and del() returns true if it actually removed an entry.
Fix BrassTable::add() to throw an exception for the (hopefully never
hit) case when the tag value is too insanely large to handle. With
that BrassTable::add() always returns true, and we never check the
return value anyway, so just make it return void.
Mon Feb 01 01:45:09 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_alltermslist.h,backends/brass/brass_spelling.h,
backends/brass/brass_spellingwordslist.h: Add missing std::
qualifiers.
Mon Feb 01 00:57:21 GMT 2010 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.h: Add missing std:: qualifier.
Mon Feb 01 00:52:27 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_spelling.h,backends/chert/chert_spelling.h:
Add missing std:: qualifier.
Sun Jan 31 23:35:52 GMT 2010 Olly Betts <olly@survex.com>
* backends/chert/chert_termlisttable.cc,
backends/chert/chert_termlisttable.h: Remove
ChertTermListTable::get_doclength() as it is no longer used.
Sun Jan 31 23:19:50 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_termlisttable.cc,
backends/brass/brass_termlisttable.h: Remove
BrassTermListTable::get_doclength() as it is no longer used.
Sun Jan 31 09:19:39 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-inspect.cc: "until" improvements:
+ No longer reports the current key and tag.
+ If passed a key before the current one, no longer silently advances
to the next key.
+ Explicitly says if the specified key doesn't exist, including where
we ended up.
Sun Jan 31 00:19:41 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Use a single Document object rather than
creating the same one 10000 times.
Sun Jan 31 00:08:38 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Move make_multichunk_db() before the testcase
which uses it, rather than between two helper functions for another
testcase.
Sun Jan 31 00:07:03 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_compact.cc: Remove confusing comment, cut-and-pasted from
elsewhere and not relevant here.
Fri Jan 29 06:13:18 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_metadata.cc,backends/chert/chert_metadata.cc,
backends/flint/flint_metadata.cc: Correct filenames in @file.
Thu Jan 28 22:34:03 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_compact.cc: Add check that xapian-compact works
correctly on a database with multiple chunks for a single term;
this is a regression test for ticket #427
Thu Jan 28 22:33:16 GMT 2010 Richard Boulton <richard@tartarus.org>
* bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Don't
cut the extra byte of doclen chunk keys.
Thu Jan 28 21:23:48 GMT 2010 Richard Boulton <richard@tartarus.org>
* bin/xapian-compact-flint.cc: Revert previous patch for flint - it
only applies to new key format used by chert and brass.
Thu Jan 28 21:13:38 GMT 2010 Richard Boulton <richard@tartarus.org>
* bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc,
bin/xapian-compact-flint.cc: Partial fix for #427: truncate
follow-on keys for postlist chunks fully (was leaving the
trailing 0-byte, causing the code for chert and brass to
incorrectly think a new chunk had started, resulting in a
truncated posting list.
Thu Jan 28 20:42:47 GMT 2010 Richard Boulton <richard@tartarus.org>
* bin/xapian-inspect.cc: Add "until" command to display keys until
a specified one. Useful for seeing all keys for a particular
posting list, etc.
Thu Jan 28 01:31:54 GMT 2010 Olly Betts <olly@survex.com>
* tests/dbcheck.cc: Whitespace tweak.
Wed Jan 27 06:29:21 GMT 2010 Olly Betts <olly@survex.com>
* tests/dbcheck.cc: <config.h> not "config.h".
Wed Jan 27 04:20:42 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_inverter.h: Make two getters const.
Wed Jan 27 04:01:17 GMT 2010 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_database.h,
backends/flint/flint_database.cc,backends/flint/flint_database.h:
Add ChertWritableDatabase::insert_mod_plist() to handle the simpler
case where we know the document doesn't already exist, to avoid
adding extra code to that common path over the code we had before
the #250-related changes.
Tue Jan 26 03:25:59 GMT 2010 Olly Betts <olly@survex.com>
* tests/internaltest.cc: In testcase pack_uint_preserving_sort1, use
data() not c_str(), calculate the end position just once, and use
swap to copy the current packed to prev_packed.
Fri Jan 15 12:51:38 GMT 2010 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc:
Fix to use 'M' as the flag character for modified entries in
modplists (not 'U'). We never explicitly check for 'M' (we check for
'A' vs 'D' vs something else), so this isn't a functional change,
but rather making the values consistent (as they were before the
fix for #250).
Fri Jan 15 08:25:14 GMT 2010 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_database.h,
backends/flint/flint_database.cc,backends/flint/flint_database.h:
Use Xapian::termcount_diff instead of Xapian::termcount for
parameters of add_freq_delta() which can be signed. Fix parameter
docs to say "change" instead of "increase".
Fri Jan 15 06:05:28 GMT 2010 Olly Betts <olly@survex.com>
* tests/api_replacedoc.cc: Just test that begin == end when we expect
no positions rather than generating a string representation and
then testing if it is empty.
Thu Jan 14 11:17:36 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Auto-enabling of -Werror is now done for GCC 4.1 or newer.
Thu Jan 14 05:06:42 GMT 2010 Olly Betts <olly@survex.com>
* HACKING: Include the MIT licence text in HACKING itself.
* COPYING_MIT: Remove external copy of text - it could mislead users
into thinking that this is the current licence of Xapian.
Sun Jan 10 07:36:16 GMT 2010 Olly Betts <olly@survex.com>
* configure.ac:With --enable-maintainer-mode, enable -Werror for GCC
>= 4.1 rather than >= 4.0 as Apple's GCC 4.0 gives bogus
uninitialised variable warnings for pack.h.
Sat Jan 09 00:56:06 GMT 2010 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Add support for quoting boolean terms
so they can contain arbitrary characters (partly addresses
ticket#128).
* tests/queryparsertest.cc: Add test coverage.
Fri Jan 08 13:25:25 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_compact.cc: Add copyright note for my changes committed
earlier today.
Fri Jan 08 12:19:07 GMT 2010 Olly Betts <olly@survex.com>
* bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Fix merging
of databases by xapian-compact for brass and chert.
* tests/api_compact.cc: Enable test compactmerge1 for brass and chert
as a regression test.
Fri Jan 08 11:26:41 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,backends/chert/chert_database.cc,
backends/flint/flint_database.cc: Rearrange comparison between old
and new termlists to avoid double check of termlist.at_end().
Fri Jan 08 11:22:30 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/api_compact.cc: Add test of xapian-compact when merging
databases. Currently, the generated databases are broken for
chert and brass, so skipping the test for those to avoid breaking
the snapshotter.
Fri Jan 08 11:13:13 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/: Move routines for helping to check database contents and
consistency into dbcheck.cc, with headers in dbcheck.h.
Fri Jan 08 10:07:09 GMT 2010 Richard Boulton <richard@tartarus.org>
* tests/internaltest.cc: Add test_pack_uint_preserving_sort1()
which I wrote when suspicious of that function - passes fine, but
probably worth keeping the test coverage.
Fri Jan 08 00:23:06 GMT 2010 Olly Betts <olly@survex.com>
* AUTHORS: Add Henry Combrinck for Search::Xapian patches.
Thu Jan 07 15:51:57 GMT 2010 Richard Boulton <richard@tartarus.org>
* api/postingsource.cc: For ValueWeightPostingSources for which
there are no entries, the upper bound returned will be an empty
string, which translated to -inf when passed to
sortable_unserialise(). This was causing the matcher to get
confused and return no results in some queries involving such a
posting source. This commit fixes this.
* tests/api_postingsource.cc: Add emptyvalwtsource1 as a regression
test for this, and a general test of this area of code.
Thu Jan 07 09:17:58 GMT 2010 Olly Betts <olly@survex.com>
* backends/brass/brass_inverter.h: Fix comment typo.
Wed Dec 30 11:46:45 GMT 2009 Richard Boulton <richard@tartarus.org>
* backends/brass/brass_database.cc,backends/chert/chert_database.cc,
backends/flint/flint_database.cc: When updating documents, don't
update posting entries which havn't changed. Largely fixes
ticket #250.
* AUTHORS: Add Kan-Ru Chen, since his patch attached to ticket #250
was the basis of this fix.
Wed Dec 30 11:44:18 GMT 2009 Richard Boulton <richard@tartarus.org>
* backends/brass/brass_inverter.h: Add methods for updating an
existing posting, so we don't have to remove then re-add it.
Wed Dec 30 11:41:57 GMT 2009 Richard Boulton <richard@tartarus.org>
* backends/brass/brass_database.h: Remove old unused members:
total_length and lastdocid.
Wed Dec 30 01:07:04 GMT 2009 Richard Boulton <richard@tartarus.org>
* backends/chert/chert_database.h: Remove old unused members:
total_length and lastdocid.
Wed Dec 30 00:21:03 GMT 2009 Richard Boulton <richard@tartarus.org>
* backends/chert/chert_database.cc,backends/chert/chert_database.h,
backends/flint/flint_database.cc,backends/flint/flint_database.h:
Move frequently repeated code for updating the freq_deltas and
mod_plists items into separate functions. Makes the code
considerably clearer, and prepares the way for applying the patch
to fix ticket #250.
Wed Dec 30 00:07:33 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_replacedoc.cc: Add a few more sequences of operations
which look worth testing, after looking at the code implementing
replace_document().
Tue Dec 29 22:29:08 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_replacedoc.cc: Check consistency of the posting lists
with the termlists, and consistency of the statistics, at each
step of modtermwdf1. Also, add some other terms to the document,
so we can check the stored doclength for terms which haven't been
modified.
Sun Dec 27 14:56:16 GMT 2009 Richard Boulton <richard@tartarus.org>
* backends/chert/chert_modifiedpostlist.cc,
backends/flint/flint_modifiedpostlist.cc: Report the wdf from the
modifications, rather the sum of the wdf from the modifications
and the old wdf. The old behaviour was just wrong, but we had no
test coverage for this until the last commit.
Sun Dec 27 13:34:06 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_replacedoc.cc: Add test of the contents of the
postlist of a term which is being modified. Also, tidy up the
output of docterms_to_string() to skip any empty position lists.
Sat Dec 26 19:21:19 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_replacedoc.cc: Extend test to cover removing a term but
not deleting it, and finally deleting the document.
Thu Dec 24 19:18:41 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_replacedoc.cc: Expand test to cover some modification
to the positional information.
Thu Dec 24 19:06:32 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_replacedoc.cc: Add some more sets of modification
operations to the tests.
Thu Dec 24 18:55:37 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_replacedoc.cc: Add test modtermwdf1, which tests a lot
more cases where documents are modified.
Thu Dec 24 14:36:38 GMT 2009 Olly Betts <olly@survex.com>
* tests/: Canonicalise the conditions on testcases.
Thu Dec 24 14:08:59 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_closedb.cc: Fix typo in last commit.
Thu Dec 24 13:39:28 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_closedb.cc: Check WritableDatabase::close() during a
transaction does *NOT* implicitly call commit().
Thu Dec 24 13:07:09 GMT 2009 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,backends/brass/brass_database.h,
backends/chert/chert_database.cc,backends/chert/chert_database.h,
backends/flint/flint_database.cc,backends/flint/flint_database.h:
Fix WritableDatabase::close() to commit() changes (unless a
transaction is in progress).
* tests/api_closedb.cc: Add regression test closedb4.
Wed Dec 23 00:26:34 GMT 2009 Olly Betts <olly@survex.com>
* backends/brass/brass_database.cc,backends/brass/brass_inverter.cc,
backends/brass/brass_inverter.h: For allterms iteration of a
WritableDatabase, if a prefix is specified only flush changes for
terms with that prefix. Also, don't flush document lengths for
allterms iteration.
Tue Dec 22 22:48:55 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Fixed reversed checks for chert and flint being
enabled in r13781.
Tue Dec 22 14:20:24 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/testrunner.cc: Add brass variants of multi and remote
backends.
Tue Dec 22 14:15:43 GMT 2009 Olly Betts <olly@survex.com>
* bin/: Implement xapian-check and xapian-compact support for brass.
Tue Dec 22 13:41:08 GMT 2009 Olly Betts <olly@survex.com>
* bin/: Split the chert-specific checking code into a separate file
so xapian-check.cc is just the driver code.
Tue Dec 22 12:47:59 GMT 2009 Olly Betts <olly@survex.com>
* backends/brass/: Add new Inverter class to encapsulate the inversion
data structures and associated code. Instead of carefully iterating
modified posting lists and document length lists, just flush the
particular list needed to disk and iterate that. This is much
simpler and more obviously free of subtle bugs, and means we don't
need to use data structures which allow such iteration.
Tue Dec 22 12:25:04 GMT 2009 Olly Betts <olly@survex.com>
* backends/brass/,backends/dbfactory.cc,include/xapian/dbfactory.h,
include/xapian/valueiterator.h,include/xapian/version_h.cc,
tests/harness/Makefile.mk: Fix to actually build brass. Testsuite
doesn't currently all pass.
Tue Dec 22 04:26:17 GMT 2009 Olly Betts <olly@survex.com>
* HACKING,INSTALL,backends/Makefile.mk,backends/brass/,
backends/chert/dir_contents,backends/databasereplicator.cc,
backends/dbfactory.cc,common/pack.h,configure.ac,docs/,tests/,
tests/harness/: Add new development backend called "brass" and
promote "chert" to being the stable backend.
Mon Dec 21 09:41:57 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc: Update comment about
MAX_SAFE_TERM_LENGTH to reflect the key format changes.
Mon Dec 21 08:12:55 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_alldocsmodifiedpostlist.cc,
backends/chert/chert_alldocsmodifiedpostlist.h: Change reference
parameter to const reference.
Mon Dec 21 03:19:09 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc:
Replacing a document deleted since the last flush failed to update
the collection frequency and wdf, and caused an assertion failure
when assertions were enabled.
* tests/api_backend.cc: Add regression test replacedoc8.
Sun Dec 20 07:26:30 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Divert to AS_MESSAGE_LOG_FD rather than literal fd 5.
Divert more output to AS_MESSAGE_LOG_FD rather than /dev/null.
Thu Dec 17 13:53:31 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Thu Dec 17 13:36:54 GMT 2009 Olly Betts <olly@survex.com>
* Backport change from chert:
* backends/flint/flint_alltermslist.cc: Tweak to not apply the
prefix test in the "at end" case.
* backends/flint/flint_alltermslist.cc: There's no point checking
follow-on chunks match the prefix - the first chunk we'll hit
which doesn't match has to be an initial chunk for a term.
Thu Dec 17 11:57:31 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_replacedoc.cc: Fix to test the right variable.
Thu Dec 17 11:16:51 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: The regression test replacedoc5 no longer actually
checks for the situation it was written for, due to the shortcutting
we now do in flint and chert when replacing a document with itself,
so extend it with a check with that behaviour suppressed (fortunately
it still passes).
Wed Dec 16 12:03:13 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/,bin/Makefile.mk,common/pack.h: Change the packing
of uints and strings into sortable keys in chert databases, which
reduces database size by 2.5% in tests. This means an incompatible
change in the chert format.
* bin/xapian-chert-update.cc: Utility to update a chert database from
the old format to the new format. It works much like xapian-compact
so should take a similar amount of time (and results in a compact
database).
* tests/api_wrdb.cc: Adjust the test which checks a string of zero
bytes fails in the correct way - 126 zero bytes is now handled, so
we need 127 to check the failure mode.
Wed Dec 16 11:52:27 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Ensure that the resultant database has a
fresh UUID (previously chert copied the UUID from the first input,
while flint didn't set a UUID so one was generated on demand when
next requested, if the database is writable.
* tests/api_compact.cc: Add tests that a UUID is set and that it is
different from that of the input.
Wed Dec 16 09:57:27 GMT 2009 Olly Betts <olly@survex.com>
* examples/quest.cc: If no database is specified, still parse the query
and report get_description() on it as this provides a useful way to
see how a query parses.
Wed Dec 16 00:40:51 GMT 2009 Olly Betts <olly@survex.com>
* languages/german.sbl,languages/german2.sbl: Update the german and
german2 stemming algorithms to the latest versions from Snowball.
These add an extra rule for the "-nisse" ending.
Tue Dec 15 13:08:33 GMT 2009 Olly Betts <olly@survex.com>
* bin/: Split apart the flint and chert compaction code. Should be
no change in functionality.
Tue Dec 15 10:11:10 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_alltermslist.cc: Tweak to not apply the
prefix test in the "at end" case.
Tue Dec 15 09:40:19 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_alltermslist.cc: There's no point checking
follow-on chunks match the prefix - the first chunk we'll hit
which doesn't match has to be an initial chunk for a term.
Tue Dec 15 08:24:04 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/: Convert DerefStringWrapper_ to a templated
DerefWrapper_ and use it instead of DocIDWrapper and TermPosWrapper.
Tue Dec 15 08:23:08 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/query.h: Mark Query::Internal as @private for doxygen.
Tue Dec 15 03:59:44 GMT 2009 Olly Betts <olly@survex.com>
* common/pack.h: Return false not true if
unpack_string_preserving_sort() fails. Add assertions that the
source pointer isn't NULL to all the functions.
Tue Dec 15 02:30:24 GMT 2009 Olly Betts <olly@survex.com>
* examples/delve.cc: Improve phrasing ("unique terms" -> "distinct
terms").
Sat Dec 12 13:07:51 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/Makefile.am,tests/api_posdb.cc,tests/api_replacedoc.cc:
Split my recently added replacedoc test out into a new file.
Sat Dec 12 12:58:22 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_posdb.cc: Extend test of document modification to cover
removing the last term in the document, too.
Sat Dec 12 12:57:43 GMT 2009 Richard Boulton <richard@tartarus.org>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc:
Fix comparison of old term with new.
Sat Dec 12 11:30:23 GMT 2009 Richard Boulton <richard@tartarus.org>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc,
tests/api_posdb.cc: Delete old positionlist chunks in
replace_document(). Uncomment part of test which tested this.
Sat Dec 12 04:24:42 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc,
common/document.h: If a document is replaced with itself unmodified,
we no longer increase the automatic flush counter.
* tests/api_backend.cc: Add regression test replacedoc7.
Fri Dec 11 19:39:34 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_posdb.cc: Add a basic test of adding a document, and
modifying its positions. Found one bug already, but the line
which triggers this is commented out for now so that we don't
break the snapshotters until it's fixed.
Fri Dec 11 16:51:22 GMT 2009 Richard Boulton <richard@tartarus.org>
* common/documentterm.h: Fix some documentation comments which were
trivially incorrect or incomplete.
Fri Dec 11 11:05:19 GMT 2009 Richard Boulton <richard@tartarus.org>
* COPYING_MIT,HACKING: Add details of our policy for accepting
patches. This has informally been true for a while, but it
probably helps to tell people about it!
Tue Dec 08 13:15:28 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.h: Fix to build with --enable-assertions.
Tue Dec 08 13:05:36 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.cc,backends/chert/chert_cursor.h,
backends/chert/chert_postlist.cc: Add MutableChertCursor subclass of
ChertCursor and implement del() there rather than in ChertCursor.
This means we can use the C++ type system to track whether we got
a const or non-const ChertTable * and so whether it is safe to
cast away that const and delete the entry the cursor points to.
Tue Dec 08 12:03:08 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_table.cc,
backends/chert/chert_table.h,backends/flint/flint_database.cc,
backends/flint/flint_table.cc,backends/flint/flint_table.h,
bin/xapian-compact.cc,bin/xapian-inspect.cc: Add empty() method to
FlintTable and ChertTable which works completely reliably even if
the item count has wrapped.
* tests/api_closedb.cc: Add closedb3 for coverage of get_doccount() and
has_positions().
Tue Dec 08 08:23:12 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.h: Tweak whitespace in comment.
Mon Dec 07 04:56:42 GMT 2009 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_synonym.h:
Eliminate "size" private member of FlintSynonymTermList which is set
but never used.
Mon Dec 07 04:49:54 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_synonym.h:
Eliminate "size" private member of ChertSynonymTermList which is set
but never used.
Mon Dec 07 04:32:46 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/: Use > 32 bit type to keep count of items in a
table. This fixes misreporting by xapian-check, and in the very
unlikely case where the counter has just wrapped to 0, makes
xapian-compact not mistakenly think tables are empty and the
matcher ignore positional information.
Thu Dec 03 10:08:28 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_compact.cc: Cast character value in string constructor
to a char; without this we were getting a stack overflow and
general nastiness on i386, which we hypothesise was due to the
wrong overload for string() being picked.
Wed Dec 02 23:10:50 GMT 2009 Olly Betts <olly@survex.com>
* backends/flint_lock.cc: Add missing include of xapian/error.h.
This was causing the snapshot builder to fail, but worked OK
in my tree for reasons I don't understand.
Wed Dec 02 14:30:40 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,
backends/chert/chert_databasereplicator.cc,
backends/flint/flint_database.cc,
backends/flint/flint_databasereplicator.cc,backends/flint_lock.cc,
backends/flint_lock.h: Factor out 4 copies of the same code to
report why Xapian failed to get a lock.
Wed Dec 02 10:05:27 GMT 2009 Olly Betts <olly@survex.com>
* backends/Makefile.mk,backends/chert/,backends/flint/,
backends/flint_lock.cc,backends/flint_lock.h: Factor out a single
version of the "flint-compatible locking code" and use it from both
flint and chert.
Wed Dec 02 02:49:14 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_compact.cc,tests/apitest.cc,tests/apitest.h,
tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Add
get_database_path() variant which takes a generator function and use
it so that the right database names are used in compactnorenumber1.
Tue Dec 01 12:37:24 GMT 2009 Olly Betts <olly@survex.com>
* tests/apitest.cc,tests/harness/backendmanager.cc,
tests/harness/backendmanager.h: Move generator function variant of
get_database() to BackendManager, and tweak it to build the database
under a temporary path and rename it once built, to avoid leaving a
partial database in place if interrupted.
* tests/perftest/perftest_matchdecider.cc: Use this mechanism to lazily
generate test databases.
* tests/harness/: Remove the optional name parameter from various
BackendManager methods as it was only used by perftest and is no
longer needed.
Tue Dec 01 11:00:35 GMT 2009 Olly Betts <olly@survex.com>
* tests/apitest.cc,tests/apitest.h: Add mechanism for caching databases
generated by a function.
* tests/api_compact.cc: Use it for compactnorenumber1.
Tue Dec 01 10:59:50 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_db.cc: Rename matchfunctor<n> to matchdecider<n> to match
current terminology.
Tue Dec 01 10:51:23 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_db.cc: Don't run matchfunctor3 under remote backends as
MatchDecider isn't actually supported there (uncovered by recent
change to throw UnimplementedError in this case).
Tue Dec 01 09:35:53 GMT 2009 Richard Boulton <richard@tartarus.org>
* include/xapian/matchspy.h: Remove out-of-date reference to
add_slot(), which no longer exists: users are expected to use
multiple ValueCountMatchSpies if they need to monitor more than
one slot.
Tue Dec 01 08:04:17 GMT 2009 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/api_compact.cc: Add test coverage for
xapian-compact --no-renumber with multiple databases.
Tue Dec 01 06:25:47 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Clean up matchdecider4.
Tue Dec 01 06:12:29 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: A couple more std::string efficiency tips.
Tue Dec 01 05:51:52 GMT 2009 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
net/remoteserver.cc: Throw UnimplementedError if a matchdecider or
"legacy" matchspy is used with the remote backend.
* tests/api_backend.cc: Add regression test matchdecider4.
Mon Nov 30 05:42:43 GMT 2009 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remote-database.h,
common/remoteprotocol.h,common/remoteserver.h,
docs/remote_protocol.html,net/remoteserver.cc,tests/api_metadata.cc,
tests/harness/testrunner.cc: Add support for
WritableDatabase::set_metadata() and Database::get_metadata() to the
remote backend (based largely on patch in #178).
* AUTHORS: Thanks to Paul Rudin for patch.
Thu Nov 26 07:25:15 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Start to update from ChangeLog.
Thu Nov 26 02:26:43 GMT 2009 Olly Betts <olly@survex.com>
* common/str.cc: Tweak the length calculation for the buffer used by
str() when converting integers to strings so that the buffer is
exactly the minimum required size for integers of size 1, 2, 4,
and 8 bytes, and only a byte extra for 16 byte integers.
Wed Nov 25 05:59:13 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: In the --no-renumber case, just set offset[]
entries to zero to start with rather than fixing them up later.
Wed Nov 25 05:49:37 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Extend --no-renumber to support merging
databases, but only if they have disjoint ranges of used document
ids.
Wed Nov 25 04:37:38 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Fix typos in --help output.
Wed Nov 25 04:22:26 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Prune unused docids off the end of database
when merging multiple databases with renumbering.
Wed Nov 25 03:12:24 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Use string() instead of "" and string(1, '\0')
instead of string("", 1).
Wed Nov 25 02:34:10 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.cc: Fix locking code to work if stdin
and/or stdout have been closed.
* backends/flint/flint_lock.cc: Backport fix to flint.
* tests/api_backend.cc: Add regression test lockfilefd0or1.
Wed Nov 25 00:59:05 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_lock.cc,
backends/chert/chert_lock.h: Add "FDLIMIT" reason code for why
locking failing.
Tue Nov 24 12:44:56 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Factor out throwing an exception for docid 0 not
being valid.
Tue Nov 24 12:39:10 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_none.cc: Note previous fix was ticket#415.
Tue Nov 24 12:33:12 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Fix many Xapian::Database methods to behave better
on a database with no subdatabases, such as is constructed by
Database().
* tests/Makefile.am,tests/api_nodb.cc,tests/api_none.cc: Expand
emptydb_metadata1 to also regression test these other cases, and
rename to nosubdatabases1.
Mon Nov 23 14:01:51 GMT 2009 Olly Betts <olly@survex.com>
* common/debuglog.h: Add "NO_ARGS" which can be used for debug logging
when a function or method takes no arguments. The main advantage
over "" is that no extra code is generated for it.
* api/omdatabase.cc: Convert to use debuglog.h fully.
* api/matchspy.cc,api/omdatabase.cc: Make use of NO_ARGS.
Mon Nov 23 09:10:55 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc,
common/debuglog.cc,common/debuglog.h,common/omdebug.h,configure.ac,
matcher/multimatch.cc,queryparser/queryparser.lt: Rename
XAPIAN_DEBUG_VERBOSE macro to XAPIAN_DEBUG_LOG to better match the
user-visible "--enable-log" configure option which controls it.
Mon Nov 23 08:08:45 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_lock.cc,
backends/chert/chert_table.cc,backends/flint/: Use string() or
s.resize(0) instead of "". Use string(1, '\0') instead of
string("", 1).
Sun Nov 22 14:20:51 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_postlist.cc: When skipping through a chunk of
postings to find the one we want, don't bother to unpack the wdf
values we're skipping over, which should save a significant amount
of time in certain cases where the profile data shows we spend
something like 1/3 of the time in the function where this happens.
Sun Nov 22 13:12:39 GMT 2009 Olly Betts <olly@survex.com>
* api/matchspy.cc,backends/chert/chert_values.cc,
languages/steminternal.cc: Tweak whitespace after while to be
consistent.
Sat Nov 21 17:39:23 GMT 2009 Richard Boulton <richard@tartarus.org>
* backends/chert/chert_values.cc,backends/chert/chert_values.h:
Make ValueChunkReader::skip_to() assign the value to a string
only when the target has been reached. Saves a lot of
unnecessary string copying - on a benchmark of mydeco data,
improves time for 100 queries from 3.66s to 3.10s.
Sat Nov 21 01:13:26 GMT 2009 Olly Betts <olly@survex.com>
* tests/: Make arrays which don't need to be modified const.
Sat Nov 21 00:01:04 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_matchspy.cc: The default parameter for
get_writable_database() is string(), so don't explicitly pass "".
Fri Nov 20 16:19:13 GMT 2009 Richard Boulton <richard@tartarus.org>
* tests/api_matchspy.cc: Add regression test for underflow in
numeric ranges (based on python version in ticket #321).
Fri Nov 20 10:54:08 GMT 2009 Olly Betts <olly@survex.com>
* matcher/valuestreamdocument.cc: Use check() instead of skip_to() in
ValueStreamDocument.
Fri Nov 20 09:57:12 GMT 2009 Olly Betts <olly@survex.com>
* common/document.h,matcher/: Implement ValueStreamDocument subclass
of Xapian::Document::Internal which provides a way to connect up
valuestreams to uses of values during the match. Other
(non-recommended) uses of the Document passed to MatchDecider, etc
are passed through to a lazily created backend Document::Internal
subclass. This should be a lot more efficient for chert. It's
unclear how it will affect performance for backends which don't store
values in streams - profiling is required.
Fri Nov 20 02:35:14 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_document.cc: Fix closedb1 on InMemory
backend, broken by recent commit.
Thu Nov 19 12:03:52 GMT 2009 Olly Betts <olly@survex.com>
* backends/multi/multi_valuelist.cc: Fix to handle the case where all
the sublists turn out to be empty when we first call next().
Thu Nov 19 11:12:53 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/: Set the document data and values lazily for the
inmemory backend too. They're much less costly to fetch than if
a disk access may be needed, but it avoids a copy of the respective
data if they aren't needed, and either could potentially be large.
Consistency here also makes things easier to understand.
Thu Nov 19 08:47:24 GMT 2009 Olly Betts <olly@survex.com>
* api/omdocument.cc: Prefer string() to "".
Thu Nov 19 07:38:29 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/multi/Makefile.mk,
backends/multi/multi_valuelist.cc,common/Makefile.mk,
common/multivaluelist.h,tests/api_valuestream.cc: Implement support
for iterating valuestreams for multidatabases.
Thu Nov 19 06:19:05 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Rework the checking of postlist chunks into
a cleaner approach which should report errors better, and
eliminate the (probably) impossible "did might not be initialised"
path which GCC 4.2 spotted.
Thu Nov 19 01:15:03 GMT 2009 Olly Betts <olly@survex.com>
* common/pack.h: Remove incorrect assertion and document what NULL
parameter value means in this case.
Wed Nov 18 16:33:01 GMT 2009 Richard Boulton <richard@tartarus.org>
* bin/xapian-check.cc: Fix compiler warning (with gcc-4.2) that did
could be used uninitialised: it couldn't be, but it's hard for a
compiler to see that.
Wed Nov 18 12:48:17 GMT 2009 Richard Boulton <richard@tartarus.org>
* AUTHORS: Update my email address.
Wed Nov 18 12:21:09 GMT 2009 Olly Betts <olly@survex.com>
* common/valuelist.h: Fix internal documentation comment.
Wed Nov 18 10:40:54 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Use <cstdlib>, <cmath>, <cstdio>, <cstring> for
configure tests since we use these forms in the code and want
consistency between what configure tests and what the code
uses.
* NEWS,configure.ac: Update for 1.1.3.
Wed Nov 18 10:39:59 GMT 2009 Olly Betts <olly@survex.com>
* PLATFORMS: Update from 1.0.17.
Wed Nov 18 10:31:49 GMT 2009 Olly Betts <olly@survex.com>
* INSTALL: Improve text about zlib dependency.
Wed Nov 18 10:13:59 GMT 2009 Olly Betts <olly@survex.com>
* INSTALL: Note the package to install for building against libuuid on
Fedora, and note that libuuid isn't required on Microsoft Windows.
Wed Nov 18 02:34:30 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from 1.0.17 and ChangeLog.
Mon Nov 16 08:35:52 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix interaction of FLAG_PARTIAL and
FLAG_SYNONYM. (ticket#407)
* tests/Makefile.am,tests/api_qpbackend.cc: Add regression test
qpsynonympartial1.
Mon Nov 16 02:15:14 GMT 2009 Olly Betts <olly@survex.com>
* backends/flint/flint_version.cc: Add "using namespace std;" and drop
the explicit std:: qualifiers.
Fri Nov 13 02:27:48 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_spelling.h,backends/chert/chert_table.h,
backends/flint/flint_spelling.h,backends/flint/flint_table.h,
common/getopt.cc,common/stringutils.h,languages/steminternal.h:
Add missing std:: qualifiers for functions in <cstring>, <cstdlib>,
etc.
Fri Nov 13 02:25:50 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Add
"using namespace std;" and drop the explicit std:: qualifiers.
Fri Nov 13 02:11:18 GMT 2009 Olly Betts <olly@survex.com>
* common/str.cc: Use assignment to initialise a size_t - the current
code was turning a missing snprintf() prototype into a confusing
error message with Sun's C++, and is less clear anyway.
Fri Nov 13 02:03:28 GMT 2009 Olly Betts <olly@survex.com>
* HACKING,backends/chert/chert_lock.cc,backends/flint/flint_lock.cc,
backends/remote/remote-database.cc,net/remoteserver.cc,
net/tcpserver.cc,tests/harness/backendmanager_remotetcp.cc,
tests/harness/testsuite.cc: Sun C++'s <csignal> (not unreasonably)
excludes non-ISO-C functions which are in <signal.h> - for example,
kill() (which POSIX specifies). So revert <csignal> to <signal.h>
and document this as a global exception.
Thu Nov 12 08:30:07 GMT 2009 Olly Betts <olly@survex.com>
* matcher/collapser.h: Remove spurious comma after last entry in enum,
which Sun's C++ compiler warns about.
Thu Nov 12 00:24:55 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Sorter -> KeyMaker in an exception message.
Thu Nov 12 00:01:55 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/database.h: Tweak documentation comments about
committing changes.
Wed Nov 11 12:23:48 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix handling of a group of stopwords
which notably caused issues when default_op was OP_AND, but could
probably manifest in other cases too. Fixes ticket#406.
* tests/queryparsertest.cc: Add regression test qp_stopword_group1.
Wed Nov 11 10:54:58 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_version.h,common/safeuuid.h: Fix workaround for
uuid.h headers which lack const to actually work on Solaris.
Wed Nov 11 10:53:50 GMT 2009 Olly Betts <olly@survex.com>
* common/Makefile.mk: Need to ship new pack.h header.
Tue Nov 10 22:27:47 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Fix compiler warning introduced by previous
change.
Tue Nov 10 12:24:34 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/,bin/xapian-check.cc,common/pack.h: Rewrite the
packing and unpacking functions more efficiently. As well as being
generally faster, the pack functions now take a reference to a string
to append to, which avoids creating a lot of temporary string
objects. Indexing HTML files with omindex is 5-10% faster.
Searching for "The" on gmane (which results in a lot of unpacking of
postings and document lengths) is about 35% faster. (ticket#326)
Thu Nov 05 03:55:37 GMT 2009 Olly Betts <olly@survex.com>
* common/safeuuid.h: Fix to work with uuid libraries which lack const
qualifiers. Fixes build failure on Solaris.
Thu Nov 05 00:15:24 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Update details of debian packaging.
Wed Nov 04 04:11:38 GMT 2009 Olly Betts <olly@survex.com>
* common/output.h: Use C++ syntax for NULL with a type in log output.
Wed Nov 04 04:02:09 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Avoid trivial memory leak.
Wed Nov 04 00:13:00 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/database.h: Reword to avoid somewhat ambiguous "this
method".
Tue Nov 03 12:12:09 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/database.h: Make it more clear that you need to
add the unique term to the document if you want to use
replace_document() to use external unique IDs for documents.
Tue Nov 03 06:08:43 GMT 2009 Olly Betts <olly@survex.com>
* tests/generate-api_generated: Update MultiValueSorter to
MultiValueKeyMaker.
Tue Nov 03 05:51:23 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_sorting.cc,tests/api_sortingold.cc: Fix changesorter1 and
oldchangesorter1 to not be run for the remote backend where they will
now fail with UnimplementedError.
Tue Nov 03 02:43:12 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Xapian::Sorter isn't supported with the remote
backend so throw UnimplementedError rather than giving incorrect
results. (ticket#384)
* tests/api_sorting.cc: Add sortfunctorremote1 test this exception is
actually thrown.
Tue Nov 03 01:26:57 GMT 2009 Olly Betts <olly@survex.com>
* common/database.h: Fix vertical whitespace glitch.
Mon Nov 02 08:10:03 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc: Check that internal is not empty before
referencing its first element, in get_metadata() and
metadata_keys_begin(), to avoid a potential segfault.
* tests/api_nodb.cc: Add emptydb_metadata1, a regression test for
this bug.
Sun Nov 01 22:10:54 GMT 2009 Olly Betts <olly@survex.com>
* examples/delve.cc,examples/quest.cc: Extend exception handling to the
whole of main. Xapian::Stem("english") can't actually throw, but
that's not obvious to static analysis tools, and it is more robust
to wrap the whole of main, and reduces indentation.
Sun Nov 01 21:27:05 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Add missing exception catch for const char *.
The only case which currently throws this is an "impossible"
situation, but if we're going to check for it, the reporting of
failure should actually work. Identified by Coverity's Scan.
Sun Nov 01 07:56:38 GMT 2009 Olly Betts <olly@survex.com>
* examples/quest.cc: Tighten up the type of the error we catch to
detect an unknown stemming language.
Sat Oct 31 07:16:11 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Sat Oct 31 06:59:19 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Fix deprecation warnings when building with
recent GCC.
Sat Oct 31 02:46:04 GMT 2009 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add another test query string to cover a
case we didn't previously check.
Tue Oct 27 00:42:59 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Don't
try to close the fd one more than the maximum allowable.
(ticket#408)
* AUTHORS: Add Carl Worth for the patch.
Mon Oct 05 09:00:58 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Mention e2fsprogs-devel in the message thrown up by
configure, too.
Mon Oct 05 08:53:05 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Note the command needed to get the uuid library
installed on fedora, since it's rather non-obvious.
Sat Oct 03 20:11:48 GMT 2009 Olly Betts <olly@survex.com>
* unicode/tclUniData.cc: Update Unicode character database to Unicode
5.2. (ticket#351)
* tests/api_unicode.cc: Add tests for some characters added in Unicode
5.2.
Thu Oct 01 21:19:34 GMT 2009 Olly Betts <olly@survex.com>
* xapian-config.in: Need to quote ^ for Solaris /bin/sh.
Fri Sep 18 13:23:00 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Actually use any flags we determine are needed to
switch the compiler to proper ANSI C++ mode, when building
xapian-core - this stopped working in 1.0.12, breaking support for
HP's aCC, Compaq's cxx, Sun's CC, and SGI's CC.
Fri Sep 18 12:40:37 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/matchspy.h: Mark ValueCountMatchSpy, NumericRange,
NumericRanges, and score_evenness() as experimental.
Fri Sep 18 08:36:34 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/weight.h,weight/weight.cc: Remove default
implementation of Weight::clone() which returns NULL - we always
need clone() to be implemented because it's called for every term
in the query, not just used for the remote backend.
Fri Sep 18 08:02:08 GMT 2009 Olly Betts <olly@survex.com>
* api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h: Mark
and document the matchspy parameter of Enquire::get_mset() as
deprecated in favour of the new MatchSpy class and
Enquire::add_matchspy().
Fri Sep 18 07:58:11 GMT 2009 Olly Betts <olly@survex.com>
* tests/perftest/perftest_matchdecider.cc: Don't pass default values
for optional parameters to Enquire::get_mset().
Fri Sep 18 02:36:43 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: If FLAG_PARTIAL is specified, don't
try to spell correct a term at the end of the query which we attempt
to expand as partial.
* tests/queryparsertest.cc: Add regression test qp_spellpartial1.
Fri Sep 18 02:33:55 GMT 2009 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: For testcase qp_spellwild1: Fix the dbdir
to qp_spellwild1 to match the testname; Fix the ordering of
TESTCASE macros to match the order of the test functions; Note that
this is a regression test and the versions the bug will be fixed in.
Fri Sep 18 01:25:37 GMT 2009 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Fix to work with the old scoping rules for
variables declared in for().
Thu Sep 17 19:17:30 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.lemony: Don't apply spelling correction
to wildcard terms if FLAG_WILDCARD and FLAG_SPELLING_CORRECTION
are both specified.
* tests/queryparsertest.cc: Add qp_spellwild1 as a test for this.
Thu Sep 17 12:08:17 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Thu Sep 17 10:20:35 GMT 2009 Olly Betts <olly@survex.com>
* api/keymaker.cc: Implement Richard's idea of not encoding any
trailing, forward sorted, empty values which is a generalisation
of encoding all forward sorted, empty values as an empty string.
* tests/api_sorting.cc: Add new testcase multivaluekeymaker1 to
check encodings are as expected.
Thu Sep 17 07:15:10 GMT 2009 Olly Betts <olly@survex.com>
* api/,common/multimatch.h,common/omenquireinternal.h,
docs/deprecation.rst,docs/sorting.rst,include/Makefile.mk,
include/xapian.h,include/xapian/enquire.h,include/xapian/keymaker.h,
include/xapian/sorter.h,matcher/multimatch.cc,tests/Makefile.am,
tests/api_sorting.cc,tests/api_sortingold.cc: Rename Sorter to
KeyMaker, paving the way for using it to build collapse keys too.
Resolve the inconsistency in MultiValueSorter::add()'s "forward"
parameter by replacing it with MultiKeyMaker::add_value() with a
"reverse" parameter. (ticket#359)
Thu Sep 17 07:13:25 GMT 2009 Olly Betts <olly@survex.com>
* api/valuesetmatchdecider.cc,include/xapian/valuesetmatchdecider.h:
Inline trivial constructor from header. Add explicit '#include
"xapian/document.h"'.
Thu Sep 17 05:22:50 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Document how to use the XAPIAN_DEPRECATED() macro to
mark a class as deprecated.
Wed Sep 16 02:40:13 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc:
Eliminate a couple of assertions which can never fire.
Sat Sep 12 04:05:35 GMT 2009 Olly Betts <olly@survex.com>
* matcher/msetpostlist.cc: Fix MSetPostList not to read off the end of
the MSet if get_maxweight() is called when at_end(). This can
happen but the testcase was too large to send so sadly no
regression test I'm afraid.
Sat Sep 12 03:41:04 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_values.cc: Fix code to find the first docid in
the net chunk (ticket#399).
* tests/api_backend.cc: Add regression test from Rich Lane.
Fri Sep 11 11:14:49 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/,bin/xapian-check.cc,bin/xapian-compact.cc: Add
support for chert databases without a termlist table (ticket#181).
Currently the only way to create such a database is to create a
chert database and do "rm termlist.*".
Fri Sep 11 10:07:35 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Don't report an absent lazy input table as 0
size.
Fri Sep 11 03:17:17 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_table.h: Improve documentation of "handle"
member.
Thu Sep 10 13:24:29 GMT 2009 Olly Betts <olly@survex.com>
* m4-macros/xapian-1.1.m4: Report the default xapian-config
basename in configure's --help output.
Thu Sep 10 12:55:48 GMT 2009 Olly Betts <olly@survex.com>
* m4-macros/xapian-1.1.m4: Add optional third parameter to
XO_LIB_XAPIAN which specifies the basename for the "xapian-config"
script (defaults to "xapian-config" to give the current behaviour).
Thu Sep 10 06:39:17 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update with changes in 1.0.16 and from ChangeLog.
Thu Sep 10 02:17:56 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Clarify the documentation comments for
QueryParser::set_default_op() and QueryParser::get_default_op().
Wed Sep 09 13:36:58 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/andmaybepostlist.cc,tests/Makefile.am,tests/api_queryopt.cc:
Back out patch from r13440 which introduced a new optimisation
for AND_MAYBE when the maximum weight of the RHS becomes zero,
due to various undesirable side effects. I've put the patch into
ticket #400 with an explanation.
Wed Sep 09 01:54:05 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_postlist.cc,tests/api_backend.cc: Fix
WritableDatabase::get_doclength() to work properly after a call to
commit for the chert backend (ticket#397).
Wed Sep 09 00:28:09 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS: Add Dmitry Liakh for fix for #398.
Wed Sep 09 00:02:47 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Fix a
typo which stopped this fix in 1.0.12 from working (ticket #398):
If we fail to get the lock after we spawn the child lock process
(the common case is because the database is already open for
writing) then we now clean up the child process properly.
Fri Sep 04 11:24:26 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* docs/categorisation.rst: Remove out-of-date call to get_mset()
which passed a MatchSpy in - spies are now set with
add_matchspy() before get_mset() is called.
Thu Sep 03 00:29:27 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/andmaybepostlist.cc: For AndMaybe, if the RHS has a
maximum possible weight of 0, we now decay to just the LHS.
* tests/Makefile.am,tests/api_queryopt.cc: Test coverage that this
optimisation doesn't break anything.
Tue Sep 01 12:04:13 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Send stderr output from ldconfig to config.log.
Tue Sep 01 10:35:51 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS,common/safeuuid.h: Fix uuid_unparse_lower() replacement for
older libuuid to actually compile (really fixes ticket#368).
Mon Aug 31 05:58:55 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Sync with 1.0.15.
Mon Aug 31 05:48:13 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Start to format entries for 1.1.3.
Mon Aug 31 04:14:58 GMT 2009 Olly Betts <olly@survex.com>
* PLATFORMS: Sync with 1.0.15.
Mon Aug 31 01:30:01 GMT 2009 Olly Betts <olly@survex.com>
* common/getopt.cc: Use USE_GLIBC_GNUGETOPT from gnu_getopt.h rather
than repeating the conditionals used to determine it here. Rename
__getopt_initialized to getopt_initialized and make it static.
Rename _getopt_initialize() to getopt_initialize().
Mon Aug 31 01:24:29 GMT 2009 Olly Betts <olly@survex.com>
* common/gnu_getopt.h: Update (C) dates. Markup file description for
doxygen. Fix comment reference to ctype.h as we now use <cctype>.
Sun Aug 30 23:28:25 GMT 2009 Olly Betts <olly@survex.com>
* common/gnu_getopt.h: Make optarg, optind, opterr, and optopt extern
"C" to avoid linkage clash with these symbols on Mac OS X 10.6.
Thu Aug 27 03:05:33 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Add note to document the reason for any exceptions to the
rule to use C++ forms of ISO C headers.
Wed Aug 26 13:07:07 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS,INSTALL,docs/install.html: Drop .php from xapian.org URLs.
Wed Aug 26 12:58:51 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Update URLs. Remove duplicated text about updating RoadMap
from the release checklist.
Wed Aug 26 10:56:07 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Update various URLs.
Tue Aug 25 01:52:51 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Fix not to report heaps of bogus errors
under valgrind 3.5.0.
Mon Aug 24 02:19:06 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Also update the documentation comment for
set_sort_by_relevance_then_value() to mention sortable_serialise().
Fri Aug 21 14:35:35 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* Makefile.am: Add generate-exceptions to EXTRA_DIST - was missing
from tarballs.
Fri Aug 21 12:21:59 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* AUTHORS: Add Michael Vogt, who suggested adding a comment about
sortable_serialise to set_sort_by_value().
Fri Aug 21 12:14:13 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/enquire.h: Update documentation comments for
set_sort_by_value() and set_sort_by_value_then_relevance() to
mention sortable_serialise() as a good way to store values if you
want to sort by them.
Mon Aug 17 16:51:10 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: When sorting by non-pure-relevance, ensure
that the document is shown to the matchspy even if it couldn't
get in the mset.
* tests/api_matchspy.cc: Extend matchspy4 to include a regression
test for this.
Mon Aug 17 11:51:24 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/matchspy.cc,include/xapian/matchspy.h: Add overload for
score_evenness to allow a NumericRanges object to be passed to
it.
Mon Aug 17 07:36:57 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/matchspy.cc,include/xapian/matchspy.h: Replace
build_numeric_ranges() function with a NumericRanges object,
whose constructor is passed the values and which exposes the
calculated ranges via a getter.
* tests/api_matchspy.cc: Update tests to use new NumericRanges
object instead of build_numeric_ranges().
Wed Aug 12 17:33:53 GMT 2009 Olly Betts <olly@survex.com>
* Makefile.am: Fix generate-exceptions change to work in a VPATH
build.
Wed Aug 12 15:57:44 GMT 2009 Olly Betts <olly@survex.com>
* exception_data.pm: Add new SerialisationError.
* common/serialise-double.cc: Throw SerialisationError or InternalError
instead of NetworkError.
Wed Aug 12 15:19:05 GMT 2009 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,generate-exceptions,generate-exceptions.in:
It's not very useful to be able to run generate-exceptions outside
the build system, and it only gets the #! line substituted, so just
move those runes into Makefile.am and reduce the number of files that
configure needs to generate by one.
Mon Aug 10 13:25:22 GMT 2009 Olly Betts <olly@survex.com>
* api/matchspy.cc: Use <cfloat> and <cmath> rather than <float.h> and
<math.h> (regression from merging the matchspy branch).
Mon Aug 10 13:01:57 GMT 2009 Olly Betts <olly@survex.com>
* api/,bin/xapian-tcpsrv.cc,common/,docs/postingsource.rst,
docs/serialisation.rst,include/Makefile.mk,include/xapian.h,
include/xapian/,net/remoteserver.cc,tests/: Rename
SerialisationContext to Registry.
Mon Aug 10 11:23:23 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Start to update from ChangeLog.
Mon Aug 10 10:29:13 GMT 2009 Olly Betts <olly@survex.com>
* api/omenquire.cc,include/xapian/weight.h,matcher/localmatch.cc:
Make Weight::clone() public, and remove Weight::clone_() as it is
no longer required.
Mon Aug 10 07:55:04 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Add section on ordering of include files, and fix a few
formatting issues to make this file into valid restructured text
again.
Mon Aug 10 06:55:45 GMT 2009 Olly Betts <olly@survex.com>
* api/serialisationcontext.cc,common/serialisationcontextinternal.h:
Refactor to use a template function to implement the exception safe
approach I implemented for PostingSource, and use it for MatchSpy
and Weight too.
* tests/api_serialise.cc: Add tests for exception safety of MatchSpy
and Weight with SerialisationContext.
Mon Aug 10 06:15:23 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/weight.h,weight/weight.cc: Add default implementations
of Weight methods name(), serialise(), unserialise(), and clone() for
consistency with PostingSource and MatchSpy.
Mon Aug 10 03:29:12 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_postingsource.cc: Tweak header include order.
Tue Aug 04 15:49:54 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Explicitly document that an empty
prefix argument to QueryParser::add_prefix() means "no prefix".
Tue Aug 04 13:11:26 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc: Throw UnimplementedError rather than
InvalidOperationError from PostingSource::serialise() and
PostingSource::unserialise() for consistency with MatchSpy.
* include/xapian/postingsource.h: Document this behaviour (previously
we didn't say what the default implementation actually did).
* tests/api_serialise.cc: Add test coverage.
Mon Aug 03 11:40:31 GMT 2009 Olly Betts <olly@survex.com>
* api/serialisationcontext.cc: Fix to handle the clone() method or dtor
of a PostingSource subclass throwing exceptions.
* tests/api_serialise.cc: Add new testcase serialisationcontext1 as a
regression test for this.
Mon Aug 03 06:40:28 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_serialise.cc: Fix copy-and-pasted @brief.
Sun Aug 02 16:21:54 GMT 2009 Olly Betts <olly@survex.com>
* common/remoteprotocol.h: Correction: protocol version 33 will debut
in 1.1.3 not 1.1.4.
Sun Aug 02 16:20:28 GMT 2009 Olly Betts <olly@survex.com>
* docs/remote_protocol.html: Update to document protocol version 33.
Sun Aug 02 16:17:24 GMT 2009 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,net/remoteserver.cc: We were
ignoring any trailing junk after the matchspies in MSG_GETMSET, so
change to not send a count of them and just unpack until we run out
of data.
Sun Aug 02 15:47:30 GMT 2009 Olly Betts <olly@survex.com>
* common/remoteprotocol.h: Note the versions in which recent protocol
versions were introduced.
Sun Aug 02 15:09:13 GMT 2009 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/serialise.h,
net/remoteserver.cc,net/serialise.cc: Put the serialised MSet last in
REPLY_RESULTS as then it doesn't need to know its own length (so the
encoding is the same size it used to be in the non-matchspy case),
and we avoid having to check for there being "junk" data left over
after unserialising.
Sun Aug 02 14:39:18 GMT 2009 Olly Betts <olly@survex.com>
* matcher/remotesubmatch.h: Fix to build with GCC 4.4.1.
Sun Aug 02 14:27:44 GMT 2009 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc: Don't assign a temporary string
object.
Sun Aug 02 13:50:14 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/matchspy.h: Add missing documentation comments.
Sun Aug 02 12:15:43 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
Merge from matchspy branch.
* api/,backends/remote/remote-database.cc,common/,docs/Makefile.am,
docs/categorisation.rst,include/Makefile.mk,include/xapian.h,
include/xapian/enquire.h,include/xapian/matchspy.h,
include/xapian/serialisationcontext.h,matcher/multimatch.cc,
matcher/remotesubmatch.cc,matcher/remotesubmatch.h,
net/remoteserver.cc,net/serialise.cc,tests/Makefile.am,
tests/api_matchspy.cc: Add new-style Xapian::MatchSpy class,
which is a pure "spy" class, rather than being able to take a
decision on whether a spy is applied before or after a result.
This class is also designed to work with remote databases,
passing the results back in serialised form. Also, add
ValueCountMatchSpy, which counts the occurrences of each value in
a slot in the search results seen (useful for faceted or
categorisation systems).
Fri Jul 31 12:50:57 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_backend.cc,tests/api_wrdb.cc: Move new test
modifiedpostlist1 from api_wrdb.cc to api_backend.cc - we're trying
not to make api-wrdb.cc any larger. Also note the ticket number and
the release this will be fixed in.
Thu Jul 30 16:30:06 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_modifiedpostlist.cc: Fix ChertModifiedPostList
to skip added-but-then-deleted-before-flush documents. (ticket#392)
backends/flint/flint_modifiedpostlist.cc: Same fix for flint.
* tests/api_wrdb.cc: Add regression test modifiedpostlist1.
* AUTHORS: Add Rich Lane for patch.
Wed Jul 29 09:44:15 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Wed Jul 29 09:29:45 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/valueiterator.h: Fix typos ("again" -> "and").
Wed Jul 29 06:18:41 GMT 2009 Olly Betts <olly@survex.com>
* tests/Makefile.am: Actually distribute testdata/apitest_declen.txt
- new test data from the postingsources branch merge.
Tue Jul 28 16:38:55 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
Merge from postingsources branch:
* tests/generate-api_generated: Test get_description() methods of
Xapian::PostingSource subclasses.
Tue Jul 28 16:35:54 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
Merge from postingsources branch:
* api/Makefile.mk,api/decvalwtsource.cc,api/serialisationcontext.cc,
include/xapian/postingsource.h: Add
DecreasingValueWeightPostingSource class, which reads weights
from a value slot in which a significant range of the values are
in decreasing order. This functions similarly to
ValueWeightPostingSource, but can be much more efficient.
* tests/api_valuestream.cc,tests/testdata/apitest_declen.txt:
Tests, and some associated constructed test data, for
DecreasingValueWeightPostingSource.
Mon Jul 27 04:50:45 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Now using autoconf 2.64.
Mon Jul 27 04:46:17 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Add note about preferring std::string::assign(), and also
one about building up strings using +=.
Mon Jul 27 04:45:15 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.cc,backends/chert/chert_utils.h,
backends/flint/flint_lock.cc,backends/flint/flint_utils.h,
backends/remote/remote-database.cc: Use std::string::assign() rather
than constructing a temporary string object to assign.
Sun Jul 26 16:08:10 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS: Update for bugs fixed in 1.0.14.
Sun Jul 26 16:03:54 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Update the release checklist.
Sun Jul 26 14:28:25 GMT 2009 Olly Betts <olly@survex.com>
* docs/doxygen_source.conf.in: Update roughly in-line with apidoc
changes. I've not looked at the output much though.
Sun Jul 26 14:00:14 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/database.h: Remove documentation comment for namespace
Xapian - this is now documented in xapian.h.
Sun Jul 26 13:59:42 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Add documentation comment for namespace
Unicode.
Sun Jul 26 13:58:44 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/dbfactory.h: Add documentation comments for the
backend namespaces (InMemory, etc).
Sun Jul 26 13:57:29 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: Add documentation comments for the
generated version.h, and all the preprocessor defines it contains.
Sun Jul 26 13:56:15 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian.h: Consistently say "linked with" rather than "linked
to" in some cases. Put documentation comment for namespace Xapian
in this file.
Sun Jul 26 13:06:45 GMT 2009 Olly Betts <olly@survex.com>
* docs/doxygen_api.conf.in: More fettling to try to get better output:
+ Wrap long comments.
+ Quote arguments containing @...@ substitutions as they could
conceivably contain spaces.
+ ALWAYS_DETAILED_SEC = NO: since a detailed section with no extra
information is pointless.
+ STRIP_FROM_PATH, INCLUDE_PATH: Add "@top_builddir@/include" for
VPATH builds.
+ HIDE_UNDOC_MEMBERS = YES: otherwise @internal members show up
(with no documentation).
+ HIDE_FRIEND_COMPOUNDS = YES: as friend declarations in the API
headers are implementation details.
+ SHOW_INCLUDE_FILES = NO: users should just include <xapian.h>
for all their API needs.
+ GENERATE_TODOLIST, GENERATE_TESTLIST, GENERATE_BUGLIST: all set to
NO as we don't want these in the API documentation.
+ SHOW_NAMESPACES = YES: We have several sub-namespaces so these are
useful to document.
+ INPUT: Prepend "@top_builddir@/include/xapian/version.h" so that
XAPIAN_HAS_FLINT_BACKEND, etc are defined before parsing other
headers.
+ EXCLUDE: remove all entries and use EXCLUDE_PATTERNS instead.
+ EXCLUDE_PATTERNS: Include entries corresponding to those in EXCLUDE
and add */derefwrapper.h and */.* (the latter avoids trying to look
in .svn or any other hidden files or directories).
+ REFERENCES_LINK_SOURCE = NO: Improves output.
+ VERBATIM_HEADERS = NO: The verbatim headers aren't very
interesting.
+ PREDEFINED: Define XAPIAN_VISIBILITY_DEFAULT and
XAPIAN_DEPRECATED(D)=D as doxygen seem reluctant to parse included
files.
+ EXPAND_AS_DEFINED: Remove XAPIAN_VISIBILITY_DEFAULT and
XAPIAN_DEPRECATED as these are now handled by PREDEFINED.
+ EXTERNAL_GROUPS = NO, GROUP_GRAPHS = NO: We don't use groups so
disable these.
Sun Jul 26 10:14:32 GMT 2009 Olly Betts <olly@survex.com>
* docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Change
@PACKAGE@ to @PACKAGE_NAME@ and @VERSION@ to @PACKAGE_VERSION@ to
reflect modern autotools usage.
Fri Jul 24 16:23:31 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac,docs/: Rename doxygen configuration files from "_conf"
to ".conf". Rename doxygen_full.conf to doxygen_source.conf, etc.
Fri Jul 24 16:02:39 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Update to note that doxygen is now installed in-tree, and
that we now use 1.5.9 for 1.1.x snapshots and releases, and that
graphviz ">1.8.10" is now required.
Fri Jul 24 16:01:31 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/: Documentation comment tweaks.
Fri Jul 24 15:34:03 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Fix @param names to match parameter names.
Fri Jul 24 15:33:12 GMT 2009 Olly Betts <olly@survex.com>
* docs/doxygen_api_conf.in: Major doxygen config overhaul:
+ STRIP_FROM_PATH: Strip include from header names.
+ JAVADOC_AUTOBRIEF: Re-enable as we have lost most of our brief
descriptions - we can fix up the few cases where this caused
problems with an explicit @brief.
+ BUILTIN_STL_SUPPORT: Enable for slightly STL-related stuff.
+ DISTRIBUTE_GROUP_DOC: Enable so group members get the group's
comments.
+ EXTRACT_STATIC, EXTRACT_LOCAL_CLASSES: Disable since we don't
need these.
+ SHOW_NAMESPACES: Disable to hide the "Xapian" namespace.
+ QUIET: Enable for less doxygen chatter.
+ WARN_LOGFILE: Unset so warnings go to stderr to encourage us to
actually fix them!
+ EXCLUDE: Hide base.h, deprecated.h, errordispatch.h, visibility.h.
+ HTML_DYNAMIC_SECTIONS: Enable so the class diagrams are hidden by
default but can be "expanded" to be viewed.
+ COLLABORATION_GRAPH: Disable as these don't ever seem useful in
the API docs.
+ TEMPLATE_RELATIONS: Disable as we don't want to see template
instantiations in inheritance diagrams.
+ DOT_MULTI_TARGETS: Enable for faster dot processsing. Needs
graphviz ">1.8.10", but that's really old now.
Fri Jul 24 13:00:24 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-compact.cc: Fix to work with the metainfo key stored
in the latest format of chert databases.
Fri Jul 24 10:32:32 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_values.cc: Avoid doing pointless work by trying
to delete non-existent lists of values when we're just adding
documents.
Fri Jul 24 05:32:34 GMT 2009 Olly Betts <olly@survex.com>
* docs/doxygen_api_conf.in: Update with "doxygen -u" using doxygen
1.5.9 and then trim trailing whitespace.
Thu Jul 23 04:10:49 GMT 2009 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update for 1.1.2.
Wed Jul 22 13:58:13 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_databasereplicator.cc,
backends/flint/flint_databasereplicator.cc: Prefer += to + for
building up strings.
Wed Jul 22 09:01:57 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_databasereplicator.cc,
backends/flint/flint_databasereplicator.cc: Check result of
::open() for -1, and throw an error immediately if this happens,
rather than leaving it to a later call to fail with EBADF.
Should make it easier to diagnose problems, since we'll now see
the reason that the open() failed.
Tue Jul 21 17:08:41 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog and sync with 1.0.14.
Mon Jul 20 04:48:32 GMT 2009 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Fix build with assertions enabled.
Mon Jul 20 04:47:33 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/query.h: Update doc comment - OP_SYNONYM can take any
number of subqueries too.
Sun Jul 19 17:26:53 GMT 2009 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,include/xapian/query.h,matcher/localmatch.cc:
Remove wqf member of Xapian::Query::Internal and store the wqf in
the parameter member instead. (ticket#280)
Sun Jul 19 17:24:02 GMT 2009 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,include/xapian/query.h: Remove unused
method Xapian::Query::Internal::swap().
Sun Jul 19 16:22:01 GMT 2009 Olly Betts <olly@survex.com>
* api/valuerangeproc.cc,include/xapian/queryparser.h: Move support for
a prefix/suffix from NumberValueRangeProcessor to
StringValueRangeProcessor, and change NumberValueRangeProcessor and
DateValueRangeProcessor to inherit from StringValueRangeProcessor so
all three now support a prefix/suffix. (ticket#220)
* tests/queryparsertest.cc: Add test coverage for new features.
Sun Jul 19 16:05:04 GMT 2009 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Reenable tests which require the inmemory
backend to be enabled by fixing typo XAPIAN_HAS_BACKEND_INMEMORY ->
XAPIAN_HAS_INMEMORY_BACKEND.
Sun Jul 19 14:56:16 GMT 2009 Olly Betts <olly@survex.com>
* api/documentvaluelist.cc: Use str() instead of om_tostring().
Sun Jul 19 14:42:15 GMT 2009 Olly Betts <olly@survex.com>
* matcher/msetcmp.cc: Eliminate two more relocations.
Sun Jul 19 13:46:08 GMT 2009 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Factor out "is_distributable()" function.
Sun Jul 19 11:11:06 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: Fix "dummy" -> "dummy[]" so the code
here is valid C - we only preprocess it, but since the reason for
having the dummy stuff at all is to avoid problems with "smart"
preprocessors which moan if the code isn't valid, this seems worth
fixing.
Sun Jul 19 10:21:41 GMT 2009 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Backport the previous change to
flint.
Sun Jul 19 08:04:48 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc: Instead of dynamically building a
std::list of the leafnames we need to replicate, just list them in a
compact format in the source file. Results in smaller code and
should be faster and smaller at runtime.
Sat Jul 18 17:12:58 GMT 2009 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Merge among table entries which are
substrings of others in the same among. We could be much cleverer
and merge between amongs, and allow overlaps, etc, but this get us
a nice size reduction for a small amount of effort, so it'll do for
now.
Sat Jul 18 15:42:48 GMT 2009 Olly Betts <olly@survex.com>
* languages/compiler/generator.c,languages/steminternal.cc,
languages/steminternal.h: Change how snowball generates the data used
by among - instead of using pointers to the strings in struct among,
store an offset into a constant pool, as this reduces the number of
relocations from 5001 to 2706, which should decrease the time taken
by the dynamic linker when loading the library. This also results
in slightly smaller code.
Fri Jul 17 16:32:02 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Check output of Stem::get_description() for each
supported language.
Thu Jul 16 04:34:57 GMT 2009 Olly Betts <olly@survex.com>
* common/fileutils.h: Remove unnecessary XAPIAN_VISIBILITY_DEFAULT
(ticket#63).
* common/fileutils.cc,common/fileutils.h: Make isabspath() static
since it is only used by other functions in the same file.
Thu Jul 16 04:13:48 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix comment typo.
Thu Jul 16 03:59:49 GMT 2009 Olly Betts <olly@survex.com>
* api/sorter.cc,include/xapian/sorter.h: MultiValueSorter doesn't
need an explicit dtor - it's enough that Sorter has a virtual dtor.
Thu Jul 16 03:29:41 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS: Add Andreas Flöter for the Solaris package howto.
Wed Jul 15 14:37:19 GMT 2009 Olly Betts <olly@survex.com>
* matcher/rset.cc: Just pass pointer as AutoPtr constructor parameter
rather constructing a temporary AutoPtr and invoking the assignment
operator.
Wed Jul 15 03:43:35 GMT 2009 Olly Betts <olly@survex.com>
* common/omenquireinternal.h: "class" -> "object" in doc comment.
Wed Jul 15 03:38:55 GMT 2009 Olly Betts <olly@survex.com>
* tests/runtest.in: Raise the fd limit from 32 to 64 - multi_flint
tests need more than 32 fds.
Tue Jul 14 20:32:52 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/omenquire.cc,common/omenquireinternal.h: Revert r13052, which
changed Enquire::Internal::weight not to be mutable. Expand the
comment explaining why it's mutable.
Tue Jul 14 18:40:43 GMT 2009 Olly Betts <olly@survex.com>
* tests/runtest.in: Use "ulimit -n" where available to limit the
number of available file descriptors to 32 so we catch file
descriptor leaks sooner.
Tue Jul 14 16:53:48 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/omenquire.cc,common/omenquireinternal.h: Tidy up mutable
Weight member on Enquire::Internal class; make it non-mutable,
and just make a temporary BM25Weight object if the weight member
was NULL.
Tue Jul 14 12:36:46 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* common/output.h: Display a "<NULL $CLASSNAME>" message in debug
output when a pointer being output is NULL. Previously, NULL
Query::Internal pointers were causing segfaults with debug
logging for many tests (eg, emptyquery1).
Sun Jul 12 14:56:18 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc: We no longer have a "value" table
(values are now stored in the postlist and termlist tables) so fix
comments not to refer to it.
Sun Jul 12 14:47:17 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/: Add new ChertLazyTable class and subclass lazy
tables from it so that we only need to implement the common
differences once.
Sun Jul 12 13:41:27 GMT 2009 Olly Betts <olly@survex.com>
* api/replication.cc: No point using join_paths() to append a literal
leaf name, especially as we already don't elsewhere.
Sun Jul 12 12:01:25 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix memory leak accidentally
introduced in r13005.
Sun Jul 12 11:40:26 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_opsynonym.cc: Remove debug "cout" calls.
Sun Jul 12 09:43:06 GMT 2009 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Don't just skip counting subqueries which
are the RHS of OP_AND_NOT - skip based on factor == 0.0, which means
we get the RHS of OP_FILTER too.
* tests/api_percentages.cc: Add topercent4 as a regression test for
this.
Sun Jul 12 09:32:11 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/andmaybepostlist.cc: Add DEBUGCALL macro to
count_matching_subqs() to fix build with assertions.
Sun Jul 12 08:17:02 GMT 2009 Olly Betts <olly@survex.com>
* matcher/remotesubmatch.cc: Percentage scaling for remote results is
handled in a different way, so replace FIXME with comment noting
this.
Sun Jul 12 05:48:17 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix handling of percentage weights in various
cases when we're searching multiple remote databases or a mix of
local and remote databases.
* tests/api_percentages.cc: Add regression test topercent3.
Sat Jul 11 13:35:02 GMT 2009 Olly Betts <olly@survex.com>
* matcher/mergepostlist.cc: Fix file description - MergePostList can
merge any number of posting lists, not just two.
Sat Jul 11 13:09:40 GMT 2009 Olly Betts <olly@survex.com>
* matcher/extraweightpostlist.h:
ExtraWeightPostList::read_position_list() and
ExtraWeightPostList::open_position_list() aren't used, so remove
them.
Sat Jul 11 12:54:30 GMT 2009 Olly Betts <olly@survex.com>
* api/leafpostlist.cc,api/postlist.cc,common/leafpostlist.h,
common/postlist.h,common/submatch.h,matcher/,tests/api_anydb.cc,
tests/api_opsynonym.cc: Count how many leaf subqueries match for the
document with the highest weight when calculating the percentage
weights, instead of using the termlist of that document (ticket#363).
Also fixes XOR with a SYNONYM subquery which could achieve 100%
weight before.
Fri Jul 10 08:02:18 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/chert/chert_spelling.cc,
backends/flint/flint_spelling.cc,common/database.h: Deal with the
case of get_spelling_suggestion() with an empty or single character
word up front.
Thu Jul 09 16:20:47 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc: In clean_up(), only scan
through the pid_to_fd array once, and disable the signal handler
and call waitpid() for any remaining pids ourselves, rather than
calling sleep(1) and rechecking. This should avoid pointless delays
when the child hasn't exited when we first check.
Thu Jul 09 12:40:52 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/: BackendManager has a virtual dtor, so we don't need
empty virtual dtors in its subclasses.
Thu Jul 09 11:40:20 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc,
tests/harness/backendmanager_remotetcp.h: Move the
BackendManagerRemoteTcp ctor back into the header now it is trivial
again.
Wed Jul 08 16:56:53 GMT 2009 Olly Betts <olly@survex.com>
* backends/flint/flint_io.h: Backport change to use F_FULLSYNC from
chert.
Wed Jul 08 15:30:22 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Check that we can find the valgrind/memcheck.h header
as well as the valgrind binary.
Wed Jul 08 14:30:53 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc: Sort out the clash
between two different patches to fix leaking file descriptors.
Also, call clean_up() from the destructor to correctly handle the
case when a BackendManagerRemoteTcp is created by a test case
directly.
Wed Jul 08 14:17:43 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/: Rename "posttest()" method to "clean_up()" - I keep
thinking "power-on self-test".
Wed Jul 08 05:08:09 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_io.h: Use F_FULLFSYNC where available (Mac OS X
currently). (ticket#288)
Tue Jul 07 09:31:35 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: If default_op is OP_NEAR or OP_PHRASE
then make the default window size (9 + no_of_terms), like it would be
for an explicit NEAR or PHRASE without an explicit window size.
(ticket#254)
* tests/queryparsertest.cc: Add feature tests for this.
Tue Jul 07 07:18:15 GMT 2009 Olly Betts <olly@survex.com>
* HACKING,api/,backends/chert/,backends/flint/,
backends/remote/remote-database.cc,common/,languages/steminternal.h,
net/,queryparser/queryparser.cc,tests/harness/,tests/internaltest.cc,
tests/perftest/freemem.cc,tests/perftest/perftest_randomidx.cc,
tests/stemtest.cc,unicode/utf8itor.cc: Update to use C++ forms for
ISO C standard headers (ticket#330).
Tue Jul 07 05:30:58 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.h: Use "omassert.h" not
<omassert.h>.
Mon Jul 06 04:30:59 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS: Add Rolf Köhling for fixes for Omega on MS Windows.
Sun Jul 05 16:28:54 GMT 2009 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_database.h:
Backport the lazyupdate changes from chert to flint.
Sun Jul 05 13:12:53 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Move
virtual destructor definition out of the header.
Sun Jul 05 04:09:04 GMT 2009 Olly Betts <olly@survex.com>
* common/documentterm.h: Add const to OmDocumentTerm::get_wdf() method
(ticket#139).
Sat Jul 04 16:45:43 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 6757" - no
functional changes in generated code for our parser.
Sat Jul 04 16:39:41 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 6756" - no
functional changes in generated code for our parser.
Sat Jul 04 16:36:59 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
"Check-in Number: 6755" - no functional changes in generated code for
our parser.
Sat Jul 04 16:29:24 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 6754" - no
changes in generated code for our parser.
Sat Jul 04 16:24:45 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 6749" -
only changes are in code which isn't compiled due to preprocessor
conditionals.
Sat Jul 04 16:02:08 GMT 2009 Olly Betts <olly@survex.com>
* api/editdistance.cc: Add const to is_transposed() method
(ticket#139).
Sat Jul 04 15:19:55 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.h,backends/flint/flint_lock.h: Make
ChertLock::operator bool() and FlintLock::operator bool() const
(ticket#139).
Sat Jul 04 14:56:42 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_database.h,
backends/flint/flint_database.cc,backends/flint/flint_database.h:
Make ChertDatabase::get_changeset_revisions() and
FlintDatabase::get_changeset_revisions() const (ticket#139).
Sat Jul 04 14:10:55 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_changesetapplier.h,
backends/flint/flint_changesetapplier.h: "the the" -> "the" in
comments.
Sat Jul 04 14:06:39 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h:
Make ChertTable_base::do_unpack_uint() just a static non-class
function. Use string::+= to build up the error string in it, and
mark the error case as rare.
Wed Jul 01 04:12:22 GMT 2009 Olly Betts <olly@survex.com>
* docs/spelling.rst: Omega now supports spelling correction.
Mon Jun 29 08:16:13 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Reset the begin and end strings
before trying the next ValueRangeProcessor in case they've been
modified.
* tests/queryparsertest.cc: Add regression tests and general coverage
for this area.
Mon Jun 29 06:33:45 GMT 2009 Olly Betts <olly@survex.com>
* backends/remote/net_postlist.cc: Remove unused '#include
"serialise-double.h"'.
Mon Jun 29 06:32:52 GMT 2009 Olly Betts <olly@survex.com>
* backends/remote/net_postlist.cc: Build up description string using
+=.
Sun Jun 28 14:50:56 GMT 2009 Olly Betts <olly@survex.com>
* backends/remote/net_postlist.h: Fix internal doc comment.
Sat Jun 27 13:35:45 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: -Wshadow produces false positives with GCC 4.0, so
only enable it for >= 4.1 since we enable -Werror for
maintainer-mode builds for GCC >= 4.0.
Sat Jun 27 13:30:22 GMT 2009 Olly Betts <olly@survex.com>
* backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h:
Fix return type of MultiTermList::positionlist_count() to be
Xapian::termcount rather than Xapian::termpos.
Sat Jun 27 12:50:17 GMT 2009 Olly Betts <olly@survex.com>
* backends/flint/flint_alltermslist.h,backends/flint/flint_postlist.cc,
backends/flint/flint_postlist.h: Fix to use Xapian::doccount for
termfreq in flint too.
Sat Jun 27 12:28:47 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_alltermslist.cc: Prefer 'str.resize(0)' to
'str = ""'.
Sat Jun 27 12:16:17 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_alltermslist.h,backends/chert/chert_postlist.h:
Fix to use Xapian::doccount for termfreq in more places.
Sat Jun 27 11:51:25 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc: Change so add_item_to_block() can
always assume there is another contiguous space in the block
(previously it could assume that there was enough space, but not
that it was necessarily contiguous).
Sat Jun 27 09:55:19 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/postingsource.h,include/xapian/weight.h: Add note
that PostingSource and Weight objects returned by clone() and
unserialise() methods will be deallocated with "delete".
Sat Jun 27 07:26:41 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_postlist.cc: Adjust use of Xapian::doccount vs
Xapian::termcount for consistency so things work better when these
types aren't identical.
Sat Jun 27 01:48:39 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/matchspy.cc: Remove unused matchspy.cc - there is an updated
version of this on the matchspy branch; having an old copy here
is just likely to lead to confusion.
Fri Jun 26 05:42:26 GMT 2009 Olly Betts <olly@survex.com>
* api/documentvaluelist.cc,api/documentvaluelist.h: Change
DocumentValueList::skip_to()'s parameter type from Xapian::valueno
to Xapian::docid to agree with the type in ValueList::skip_to().
This is a latent bug - it doesn't matter provided the types are
actually the same (ticket#385).
Thu Jun 25 11:20:07 GMT 2009 Olly Betts <olly@survex.com>
* matcher/phrasepostlist.cc: Use Xapian::termcount(1) instead of 1u
so that the code doesn't assume Xapian::termcount is unsigned int.
Sun Jun 21 12:09:55 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_check.cc,backends/chert/chert_table.cc,
backends/chert/chert_table.h: Replace duplicated macros with
a single version in chert_table.h, and use DIR_START instead of
a literal 11 in that header.
* backends/chert/chert_table.h: Add more assertions. Use
BYTES_PER_BLOCK_NUMBER instead of a literal 4 in more places.
Sat Jun 20 07:38:56 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc: Fix
misspelling in comment (neccessary -> necessary).
Sat Jun 20 07:38:06 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc: Don't reconstruct Item(p, c) when we
already have it as a local variable.
Wed Jun 17 01:23:16 GMT 2009 Olly Betts <olly@survex.com>
* common/str.cc: Fix potential warning in signed version of str().
Tue Jun 16 11:20:43 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc,tests/harness/testsuite.h: Factor out
writing out what was sent to tout and clearing it into a new
method test_driver::write_and_clear_tout().
* tests/harness/testsuite.cc: Prefer string() to "". When sending a
colour change code, do it before the preceding space when that allows
string literals to be merged. Always give the full exception message
(was conditional on --verbose). Tidy up output for reporting the
various different exception types and other failures to give more
consistent output.
Tue Jun 16 11:01:14 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/scalability.cc: Increase the number of tests until the
first sample takes more than 0.001 seconds to avoid trying to base
calculations on a length of time we probably can't reliably measure
to start with.
Tue Jun 16 10:58:34 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/cputimer.cc: Don't bother trying to count CPU time
for child processes, as it's hard to ensure that the child processes
have finished with the current framework, and just counting time in
the current process checks most things (the local backend tests cover
much of the work done by the server part of the remote backend).
Tue Jun 16 02:15:31 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/cputimer.h: Don't need '#include <ctime>'.
Tue Jun 16 02:10:29 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/cputimer.h: Fix naming of header multiple-inclusion
protection macro.
Sun Jun 14 14:11:51 GMT 2009 Olly Betts <olly@survex.com>
* tests/internaltest.cc: In testcase serialisequery1, use a helper
function rather than wasting effort building a std::list with all the
testcases in just so we can iterate over them.
Sun Jun 14 13:52:22 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: <iomanip> isn't used so remove it.
Sun Jun 14 13:30:34 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/testsuite.h: Fix comment typo.
Sat Jun 13 06:30:57 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Fix reversed conditional in last but one change.
Sat Jun 13 04:42:27 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Use TEST_EQUAL_DOUBLE() when comparing
get_max_attained() to allow for rounding differences.
Sat Jun 13 04:39:49 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Use "startswith()" rather than comparing an
extracted substring.
Fri Jun 12 12:45:37 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc: Fix the mechanism for
closing the file descriptors used by child xapian-tcpsrv processes
once they exit, which has been broken ever since it was added nearly
two years ago (sigh). Fixes fd leaking which caused "apitest
-bremotetcp" to fail on OpenBSD (ticket#382).
Fri Jun 12 03:37:13 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc: Fix comment typo.
Wed Jun 10 04:29:43 GMT 2009 Olly Betts <olly@survex.com>
* common/serialise-double.cc,common/serialise-double.h: Relicense as
MIT/X rather than GPLv2+ as these are low level routines which other
projects may find useful.
Tue Jun 09 14:34:20 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update for 1.1.1.
Tue May 26 14:55:05 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Update version to 1.1.1.
Tue May 26 14:49:23 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Lick into shape.
Mon May 25 11:55:59 GMT 2009 Olly Betts <olly@survex.com>
* PLATFORMS: Sync with changes in 1.0 version.
Mon May 25 10:57:59 GMT 2009 Olly Betts <olly@survex.com>
* common/weightinternal.h: Remove declarations of unimplemented
constructors (ticket#379).
Sat May 23 16:06:05 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from 1.0.13 and ChangeLog.
Sat May 23 15:35:39 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: ValueIterator is now a PIMPL class like TermIterator, etc.
Sat May 23 05:24:33 GMT 2009 Olly Betts <olly@survex.com>
* docs/postingsource.rst: Since we are sticking with an recursive
maxweight recalculation for now, add back a warning about the
potential overhead from calling set_maxweight() very frequently,
with an informed estimate for the worst case overhead.
Fri May 22 11:44:04 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc: We can trivially make
Database::metadata_keys_begin() work for inmemory in the special
case when there are no keys, so do so.
* tests/api_metadata.cc: Add test coverage for this case.
Fri May 22 09:31:07 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Only bother passing -Winit-self for GCC >= 4.3, as it
doesn't do anything for GCC <= 4.4 anyway.
Fri May 22 07:00:29 GMT 2009 Olly Betts <olly@survex.com>
* backends/flint/flint_version.h: Initialise filename using + not +=.
Fix odd whitespace in recent change.
Fri May 22 05:27:56 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS: Update.
Fri May 22 05:24:19 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc,common/multimatch.h,matcher/multimatch.cc:
Replace MultiMatch::reduce_maxweight_by() with a call to
MultiMatch::recalc_maxweight() and inline the later from the header.
Fri May 22 05:16:03 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Enable more GCC warnings - "-Woverloaded-virtual" for
all versions, "-Wstrict-null-sentinel" for 4.0+, "-Wlogical-op
-Wmissing-declarations" for 4.3+. Notably "-Wmissing-declarations"
caught that consistency2 wasn't being run.
Fri May 22 05:15:08 GMT 2009 Olly Betts <olly@survex.com>
* languages/steminternal.cc,languages/steminternal.h: Inline simple
Stem::Internal::Internal() constructor from header.
Thu May 21 16:23:26 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc: Make on_SIGCHLD() static.
Thu May 21 16:22:56 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Fix testcase consistency2 to actually be run.
Thu May 21 16:22:30 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_transdb.cc: Add missing '#include "api_transdb.h"'.
Thu May 21 12:58:22 GMT 2009 Olly Betts <olly@survex.com>
* backends/databasereplicator.cc: Don't bother to check if the
database path works in stat() and is a directory - the case we want
to be fast is when the database does exist, and if path +
"/iamflint" (or "iamchert") exists, then the check for path being a
directory is redundant. If the path isn't a flint or chert database
then a generic message including the path seems sufficient.
Thu May 21 09:17:15 GMT 2009 Olly Betts <olly@survex.com>
* backends/databasereplicator.cc,common/databasereplicator.h: Inline
empty DatabaseReplicator default ctor.
Thu May 21 08:25:24 GMT 2009 Olly Betts <olly@survex.com>
* api/replication.cc: Cache the result of get_replica_path() when we
are going to need it again.
Thu May 21 08:09:51 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_databasereplicator.h,
backends/flint/flint_databasereplicator.h: Correct parent class name
in doxygen comments.
Thu May 21 08:08:06 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Update list of Debian/Ubuntu packages needed to for a
development environment.
Thu May 21 06:28:00 GMT 2009 Olly Betts <olly@survex.com>
* backends/databasereplicator.cc: Fix nested comment start introduced
by the previous commit.
Thu May 21 06:21:39 GMT 2009 Olly Betts <olly@survex.com>
* api/replication.cc,backends/databasereplicator.cc,
common/databasereplicator.h: We only keep one pointer to a
DatabaseReplicator, so use AutoPtr not RefCntPtr.
Thu May 21 05:00:17 GMT 2009 Olly Betts <olly@survex.com>
* api/replication.cc: Fix SEGV when calling get_description() on a
default constructed DatabaseReplica.
* tests/generate-api_generated: Test DatabaseReplica (regression test
for the above bug) and SerialisationContext. Fix @file in the
generated api_generated.cc. Update (C) dates in generated
api_generated.cc.
Thu May 21 03:58:59 GMT 2009 Olly Betts <olly@survex.com>
* tests/generate-api_generated: Call get_description() on the default
constructed object to make sure that works (and doesn't try to
dereference NULL, or fail some assertion, etc). All currently
checked classes are fine - this is to avoid future regressions or
such problems with new classes.
Wed May 20 14:19:54 GMT 2009 Olly Betts <olly@survex.com>
* net/tcpclient.cc,net/tcpserver.cc: Fix xapian-tcpsrv --interface
option to work on MacOS X (ticket#373).
Wed May 20 13:58:09 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc,api/sortable-serialise.cc,backends/chert/,
backends/flint/,backends/remote/remote-database.cc,
common/serialise-double.cc,common/str.cc,
matcher/exactphrasepostlist.cc,net/remoteconnection.cc,
net/remoteserver.cc: Replace C-style casts. Add a few missing casts.
Tweak types used in a few places.
Wed May 20 13:55:41 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_databasereplicator.cc,
backends/flint/flint_databasereplicator.cc: Need <cstdio> for
rename(). Replace C-style cast to off_t.
Wed May 20 13:53:25 GMT 2009 Olly Betts <olly@survex.com>
* api/editdistance.cc: Make edist_state class uncopyable and
unassignable. Initialise maxdist in the initialiser list.
Wed May 20 11:19:53 GMT 2009 Olly Betts <olly@survex.com>
* languages/steminternal.cc,languages/steminternal.h: Change C-style
casts to C++-style ones.
Wed May 20 10:40:03 GMT 2009 Olly Betts <olly@survex.com>
* common/str.h: Add static_cast<char>() to suppress bogus MSVC
warning (ticket#377).
Tue May 19 15:26:39 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/,backends/flint/,common/rset.h,tests/api_anydb.cc:
Pass std::string by const reference rather than value (except in
a few cases where we need a modifiable copy anyway) as benchmarking
shows this is better even with GCC's reference counted std::string
implementation (ticket#140).
* tests/api_anydb.cc: Use string() instead of "" for an empty string.
Tue May 19 08:47:55 GMT 2009 Olly Betts <olly@survex.com>
* api/omquery.cc,include/xapian/query.h: Make Xapian::Query::MatchAll
and Xapian::Query::MatchNothing const since they're immutable. All
the public methods are const, so this should be completely API
compatible.
Tue May 19 06:25:26 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Document what passing maxitems=0 to
get_mset() does.
Mon May 18 13:32:49 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/database.h: Correct doxygen comments for user
metadata functions: get_metadata() can't throw UnimplementedError
but set_metadata() can.
* include/xapian/database.h,tests/api_metadata.cc: Document that
metadata_keys_begin() returns an end iterator if the backend doesn't
support metadata, and add test coverage for this case.
* backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,include/xapian/database.h,
tests/api_metadata.cc,tests/harness/testrunner.cc: The test harness
didn't have the inmemory backend flagged as supporting
user-specified metadata, and so it's perhaps not a great surprise to
discover that inmemory doesn't support it fully - you can't iterate
over metadata keys, but instead get an empty iteration. Fix this
to at least throw UnimplementedError and document that this is the
situation.
Mon May 18 11:29:10 GMT 2009 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/api_metadata.cc,tests/api_wrdb.cc: Split out
tests of user metadata into their own file.
Sun May 17 12:52:41 GMT 2009 Olly Betts <olly@survex.com>
* matcher/: Add a new constructor to MultiAndPostList for the "decay
from OrPostList or AndMaybePostList" case which takes the already
know max weights to avoid having to refetch them. Also, we know
that the subpostlists of OrPostList are ordered a particular way
so can avoid needing to check the order in that case.
Sat May 16 05:02:35 GMT 2009 Olly Betts <olly@survex.com>
* backends/flint/flint_version.cc: Fix comment - this file doesn't
use memcpy() now.
Thu May 14 04:38:47 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_percentages.cc: Remove superfluous explicit std::
qualifiers.
Thu May 14 04:36:29 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_percentages.cc: Update for the PostingSource
get_maxweight() API changes.
Tue May 12 14:50:57 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Rename "max_weight" variable to "max_possible"
since that is what it is referred to via the MSet API.
Tue May 12 12:38:11 GMT 2009 Olly Betts <olly@survex.com>
* common/safeuuid.h: Fix length of buffer to lower case - it's
36, not sizeof(uuid_t).
Tue May 12 02:49:34 GMT 2009 Olly Betts <olly@survex.com>
* common/safeuuid.h,configure.ac: Older versions of libuuid don't have
uuid_unparse_lower() so probe for it in configure, and if it isn't
present provide an inline version in safeuuid.h (ticket#368).
Mon May 11 13:07:47 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_postingsource.cc: In changemaxweightsource1, set
descending docid order so that the matcher isn't able to terminate
early after 4 documents just because weight == maxweight.
Mon May 11 12:00:04 GMT 2009 Olly Betts <olly@survex.com>
* net/serialise.cc: Build up string using +=.
Mon May 11 11:39:49 GMT 2009 Olly Betts <olly@survex.com>
* docs/postingsource.rst: Improve documentation for get_maxweight().
Mon May 11 11:26:02 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/postingsource.h: Initialise max_weight_ to 0 in the
PostingSource constructor in case nobody else sets a value for it.
Mon May 11 10:54:47 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_postingsource.cc: Fix class name in FAIL_TEST message.
Mon May 11 10:41:31 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_postingsource.cc: Fix get_termfreq_min(), etc for
ChangeMaxweightPostingSource to return 4 not 5.
Mon May 11 09:03:14 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc: Remove assertion checking that set_maxweight()
doesn't set a lower weight - it legitimately can when we call init()
on a non-clone-able PostingSource for reuse.
Mon May 11 03:12:00 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc,common/multimatch.h,docs/postingsource.rst,
include/xapian/postingsource.h,matcher/externalpostlist.cc,
matcher/externalpostlist.h,matcher/msetpostlist.cc,
tests/api_postingsource.cc: Replace PostingSource's
notify_new_maxweight() and virtual get_maxweight() mechanism with a
non-virtual set_maxweight() and get_maxweight(). Currently the
plumbing at the matcher end is much as before, but this API seems
more obvious to the user and will allow the matcher to simply reduce
its maximum weight value rather than having to recursively call
recalc_maxweight() in response to this situation (ticket#340).
Mon May 11 02:38:26 GMT 2009 Olly Betts <olly@survex.com>
* docs/postingsource.rst: Fix a typo and reword to avoid "namespaced".
Mon May 11 02:30:59 GMT 2009 Olly Betts <olly@survex.com>
* matcher/msetpostlist.cc: Fix typo - MSetPostList::get_maxweight()
with a sort ordered primarily by decreasing relevance was returning
the docid for the maxweight! This could have led to wrong results
when searching multiple databases with the remote backend, but
probably usually didn't matter as with BM25 the weights are usually
small (often all < 1) while docids are inevitably >= 1. No
regression test for this (currently anyway).
Sun May 10 07:49:11 GMT 2009 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: Fix comment typo.
Sat May 09 14:15:38 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_collapse.cc,tests/perftest/runprocess.cc: Remove unused
include of <iostream>.
Sat May 09 14:03:34 GMT 2009 Olly Betts <olly@survex.com>
* api/omquery.cc,matcher/andnotpostlist.cc,
queryparser/termgenerator_internal.cc,tests/api_wrdb.cc: Remove
unused inclusions of <algorithm>.
Sat May 09 13:47:54 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Remove unused inclusion of <queue>.
Sat May 09 13:38:02 GMT 2009 Olly Betts <olly@survex.com>
* api/omquery.cc,api/omqueryinternal.cc,api/replication.cc,
backends/alltermslist.cc,backends/chert/chert_table.cc,
backends/flint/flint_table.cc,bin/xapian-compact.cc,
common/bitstream.cc,common/inmemory_positionlist.h,
common/positionlist.h,matcher/localmatch.h,matcher/queryoptimiser.cc,
matcher/queryoptimiser.h,tests/api_wrdb.cc: Remove unused inclusions
of <list>, <map>, <string>, and <vector>.
Sat May 09 12:48:18 GMT 2009 Olly Betts <olly@survex.com>
* api/documentvaluelist.cc,matcher/queryoptimiser.cc: Remove unused
'#include "autoptr.h"'.
Sat May 09 09:41:03 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,queryparser/termgenerator.cc,
weight/bm25weight.cc,weight/boolweight.cc,weight/tradweight.cc:
Remove unneeded explicit "std::" qualifiers.
Sat May 09 09:35:32 GMT 2009 Olly Betts <olly@survex.com>
* weight/weight.cc: Doesn't use '#include "autoptr.h"'.
Fri May 08 19:59:00 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Change source file which autoconf looks for, since
I've just removed the old one that it looked for!
Fri May 08 19:28:31 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/andmaybepostlist.cc,matcher/branchpostlist.h: Call
check() instead of skip_to() on the optional branch of AND_MAYBE.
This can be much faster if that branch is a posting source.
Fri May 08 18:31:01 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/: Remove AndPostList, in favour of MultiAndPostList.
AndPostList was only used as a decay product (by AndMaybePostList
and OrPostList); for most queries, MultiAnd has pretty much
indistinguishable performance as far as I can test; however, it
uses check() when possible, which makes performance much better
with searches involving external posting sources. Removal also
reduces the amount of code cluttering up the caches during a
search, so may help speed things up in some other situations.
Fri May 08 16:00:42 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc,backends/inmemory/inmemory_database.cc,
examples/delve.cc,include/xapian/postingsource.h: Don't store an
end iterator in a variable just to compare against it - it's now
definitely more efficient to compare against the return value of
the relevant _end() method.
Fri May 08 15:44:07 GMT 2009 Olly Betts <olly@survex.com>
* api/valueiterator.cc,include/xapian/database.h,
include/xapian/document.h,include/xapian/valueiterator.h: Create a
new proxy object class ValueIteratorEnd_ which is returned instead
of ValueIterator(NULL) for end iterators. This class will be
converted to ValueIterator(NULL) if assigned to or passed as
ValueIterator, but operator== and operator!= are overloaded to
handle it directly which means that the compiler no longer calls
~ValueIterator for each call which returns ValueIterator(NULL).
Fri May 08 15:42:12 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_values.cc: Swap two statements for cosmetic
reasons.
Fri May 08 14:42:49 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc,include/xapian/postingsource.h: It is actually
better not to store the end iterator in a member variable - if we
explicitly call db.postlist_end(string()) then that just gets
optimised to PostingSource(NULL).
Fri May 08 14:02:21 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_postingsource.cc: We've decided that "going back" with
skip_to() or check() should have unspecified behaviour, so stop
testing how this case behaves!
Fri May 08 12:37:33 GMT 2009 Olly Betts <olly@survex.com>
* common/Makefile.mk: Ship common/win32_uuid.cc and common/win32_uuid.h
(ticket#367).
Fri May 08 12:30:45 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/cputimer.cc: Fix typo in the "ftime" case.
Fri May 08 10:25:37 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/andpostlist.cc: Fix a swap which was the wrong way round,
so that we call next() on the subpostlist with the lower
frequency, rather than the one with the higher frequency. This
should improve performance in many situations, and I don't think
it's likely to slow anything down. It also fixes some cases
where optimisation of an AND_MAYBE to an AND results in a slower
search, such that search times went down when more hits were
requested.
Fri May 08 08:48:14 GMT 2009 Olly Betts <olly@survex.com>
* matcher/externalpostlist.cc: ExternalPostList::get_doclength()
should never get called, so make it "Assert(false)".
Fri May 08 05:16:50 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc: Another string concatention.
Fri May 08 05:04:55 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc: Use str() instead of om_tostring() and build
up strings using +=.
Fri May 08 04:37:05 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc: "using namespace std;".
Thu May 07 16:46:14 GMT 2009 Olly Betts <olly@survex.com>
* matcher/: Check for collection_size == 0 up front so we don't need
to repeatedly special case it when implementing
get_termfreq_est_using_stats().
Thu May 07 16:28:07 GMT 2009 Olly Betts <olly@survex.com>
* matcher/xorpostlist.cc: Fix typo bug - collection_size should be
rset_size. This would have lead to a floating point division by
zero when XOR was used under a synonym without an RSet, but that
would just give infinity, and so just give a bogus value for the
rel_termfreq rather than aborting instantly.
Thu May 07 16:19:52 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Update auto_ptr information. Mention constructor syntax as
an alternative replacement for some C-style casts.
Thu May 07 15:25:00 GMT 2009 Olly Betts <olly@survex.com>
* matcher/localmatch.cc,matcher/localmatch.h: Don't rebuild the
termname -> termfreq and weight map for every subdatabase - just do
it once for the first one. Also eliminate a copy of this map.
This should speed up searches a little, especially those over
multiple databases.
Thu May 07 15:01:24 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc,api/omqueryinternal.cc,
backends/remote/remote-database.cc,common/autoptr.h,
expand/esetinternal.cc,matcher/localmatch.cc: Make our AutoPtr just
a macro wrapper for std::auto_ptr. Since std::auto_ptr doesn't
allow assignment from a raw pointer, this requires changing such
assignments into calls to auto_ptr::reset().
Thu May 07 14:19:22 GMT 2009 Olly Betts <olly@survex.com>
* api/leafpostlist.cc: Add an assertion that the term in the stats.
Add "using namespace std;" so we can avoid explicit std:: qualifiers.
Thu May 07 13:26:21 GMT 2009 Olly Betts <olly@survex.com>
* matcher/: Eliminate EmptySubMatch - we can just store NULL for a
submatch which has failed but which ErrorHandler told us to continue
without.
Thu May 07 12:52:24 GMT 2009 Olly Betts <olly@survex.com>
* common/database.h: Update internal documentation comment -
Database::Internal::open_post_list() can no longer return
EmptyPostList as it is no longer a subclass of LeafPostList.
Thu May 07 12:13:50 GMT 2009 Olly Betts <olly@survex.com>
* api/leafpostlist.cc,backends/chert/chert_postlist.cc,
backends/chert/chert_postlist.h,
backends/flint/flint_alldocspostlist.h,
backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,backends/remote/net_postlist.h,
common/contiguousalldocspostlist.h,common/leafpostlist.h: Squash
TermBasedLeafPostList into LeafPostList since there are no longer
any other subclasses.
Thu May 07 11:49:06 GMT 2009 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/emptypostlist.cc,common/emptypostlist.h:
Reimplement EmptyPostList from scratch, and inherit from PostList
not LeafPostList.
Thu May 07 11:19:34 GMT 2009 Olly Betts <olly@survex.com>
* matcher/mergepostlist.cc: Add explicit '#include "omassert.h"'.
Thu May 07 10:28:33 GMT 2009 Olly Betts <olly@survex.com>
* backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
Subclass MultiPostList directly from PostList instead of from
LeafPostList. This gets rid of two unused data members per
MultiPostList in exchange for having to define 5 extra "never
called" methods, but 4 of these just tailcall.
Thu May 07 10:26:39 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_alltermslist.cc,
backends/inmemory/inmemory_database.cc: Fix assertion failures and
a SEGV in an assertion test.
Thu May 07 09:27:35 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_alltermslist.cc,
backends/inmemory/inmemory_alltermslist.h,
backends/inmemory/inmemory_database.cc:
Keep a dummy entry in InMemoryDatabase::postlists so that the
implementation of InMemoryAllTermsList doesn't need a "started"
flag, and we can use an InMemoryPostList on the dummy item for
the "term not in database" case.
Thu May 07 05:45:48 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Add tset coverage for alldocs iterator on an
empty database.
* backends/inmemory/inmemory_database.cc: No need to special case an
empty database as InMemoryAllDocsPostList handles this case
correctly.
Thu May 07 05:08:07 GMT 2009 Olly Betts <olly@survex.com>
* weight/weightinternal.cc: Use str() instead of om_tostring(), += to
build up strings, and fix a cut-and-paste comment error.
Wed May 06 13:03:40 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* net/serialise.cc: Better serialisation - don't include the
reltermfreqs if the rset_size is 0, since they'll all be 0 too.
Wed May 06 12:13:52 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* common/remoteprotocol.h,net/serialise.cc: When serialising stats,
serialise the termfreq and reltermfreq together, rather than in
separate lists. Results in a smaller serialised form, and
matches the in-memory structure now used better. Fixes ticket
#362. This is an incompatible remote protocol change, however,
so bump the major version to 32.
Wed May 06 04:02:43 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Check termfreqandwts for MatchAll queries
before we check terms from the document so that the "terminate
early once we've seen all the query terms" test when checking the
document terms can fire in this case.
Wed May 06 03:26:05 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Remove incorrect comment accidentally
committed in r12623.
Wed May 06 03:18:42 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_opsynonym.cc: Fix comment typo.
Wed May 06 01:35:14 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/api_postingsource.cc: changemaxweightsource1 uses
ChangeMaxweightPostingSource, which doesn't work with multi or
remote, so mark the test accordingly.
Wed May 06 01:11:25 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/postingsource.h,api/postingsource.cc: Add
notify_new_maxweight() method to be called by subclasses when they
want to notify the matcher that their maxweight has changed
significantly. Add ExternalPostList as a friend and add
register_externalpl() to be used to associate the ExternalPostList
with the PostingSource.
* matcher/externalpostlist.cc,matcher/externalpostlist.h,
matcher/queryoptimiser.cc: Register the externalpostlist with the
PostingSource it's iterating through. Add
ExternalPostList::notify_new_maxweight() method for
PostingSource::notify_new_maxweight() to call.
* docs/postingsource.rst: Document notify_new_maxweight() and the
reasons for calling it.
* tests/api_postingsource.cc: Test the handling of maxweight.
Tue May 05 19:37:56 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am,tests/api_db.cc,tests/api_postingsource.cc:
Split the tests of PostingSource subclasses out of api_db.cc; I'm
about to add some more, and bloating api_db.cc further is
unworkable.
Tue May 05 18:23:02 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* docs/postingsource.rst,include/xapian/postingsource.h:
Documentation updates to describe way that init() is called
again if a PostingSource is reused. Fixes #352.
Tue May 05 16:05:48 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/api_opsynonym.cc: Test that the top document has a weight
of 100%, which is should do for all the current examples here.
Tue May 05 16:03:29 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: Add logging to keep track of the weights
being added to percent_scale. If the percent_scale total is 0.0,
which can happen if the top document only matches synonym terms,
force percent_scale to 1.0, to avoid an assertion failure.
Tue May 05 13:41:57 GMT 2009 Olly Betts <olly@survex.com>
* common/str.h: Fix swapped parameters in string ctor in code for
str(bool) overload which lead to us returning 48 or 49 \x01
characters instead of "0" or "1".
* tests/internaltest.cc: Add regression test strbool1.
* AUTHORS: Thank Peter Kelm for helping us spot this.
Tue May 05 12:54:36 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
Merge from opsynonym branch:
* queryparser/queryparser.lemony: Use OP_SYNONYM instead of OP_OR
for synonyms, wildcards, and partial queries.
* tests/queryparsertest.cc: Test use of OP_SYNONYM by query parser.
Tue May 05 12:18:06 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
Merge from opsynonym branch:
* api/omqueryinternal.cc,include/xapian/query.h,matcher/,
weight/weight.cc: Implement a new OP_SYNONYM query operator,
which behaves similarly to OP_OR, but produces weights for the
combined set of terms as if they were a single term (by merging
their wdfs).
* tests/Makefile.am,tests/api_opsynonym.cc: Add tests for the
OP_SYNONYM operator.
* include/xapian/weight.h: Add a Weight::init_() method for
synonym, since there isn't a single term involved. Also,
requires a method get_sumpart_needs_wdf_() to check if wdfs are
needed, since the synonym weight calculation requires fetching
the doclength, which is potentially expensive, in order that the
wdf returned can be clamped to a sane range. Mark the weighting
methods which require WDF with need_stat(WDF).
Tue May 05 12:04:33 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* common/remoteprotocol.h: Add comment to remind use to do the
FIXME in serialise_stats() when next breaking remote protocol
compatibility.
Tue May 05 10:53:11 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* common/output.h: Add output function for TermFreqs.
Tue May 05 08:23:28 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/leafpostlist.cc,api/postlist.cc,common/emptypostlist.h,
common/leafpostlist.h,common/postlist.h,matcher/: Add
PostList::get_termfreq_est_using_stats() method, with default
implementation which raises an InvalidOperationError. Implement
this for those postlists which it makes sense for. Also,
implement get_wdf() for postlists used by the matcher for
implementing various query operators. This isn't currently used
or tested on trunk, but is used for the opsynonym branch.
Tue May 05 07:37:04 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* common/rset.h,common/weightinternal.h,matcher/rset.cc,
net/serialise.cc,weight/weightinternal.cc: Store termfreqs and
reltermfreqs in a Weight::Internal in a single map; introduce a
new struct (TermFreqs) for the values stored here.
Remove now unused Xapian::TermFreqMap typedef.
Tue May 05 07:19:19 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h,
backends/flint/flint_alldocspostlist.h,
backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,backends/remote/net_postlist.h,
common/contiguousalldocspostlist.h,common/leafpostlist.h:
Introduce TermBasedLeafPostList, as a new common base class for
postlists which are derived from a term in the query (including
alldocs postlists which are derived from the empty term).
Tue May 05 06:47:11 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/,backends/flint/flint_modifiedpostlist.cc,
backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h:
Rename "tname" parameters to LeafPostList subclasses to "term".
* backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h: Rename term parameter of
type InMemoryTerm to imterm ready for opsynonym branch changes.
Tue May 05 04:51:28 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_alldocspostlist.h,matcher/multimatch.cc:
Remove unused '#include "leafpostlist.h"'.
Tue May 05 02:15:35 GMT 2009 Olly Betts <olly@survex.com>
* common/contiguousalldocspostlist.h: Wrap comment.
Tue May 05 02:04:02 GMT 2009 Olly Betts <olly@survex.com>
* common/Makefile.mk: Move str.h into alphabetical order.
Mon May 04 12:04:16 GMT 2009 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Rename qp_stem_scale1 to qp_scale1 as it
has no connection with stemming. Factor out a helper function to
do the timing comparison, and update time_query_parse() to use
CPUTimer rather than OmTime. Tweak the "fudge factor" up from
2 to 2.15 to allow for non-equal ticks due to rounding of an
interval which isn't an exact multiple of 1/CLK_TCK (ticket#308).
Mon May 04 12:02:32 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/cputimer.cc: If we don't have rusage() or times(), but
do have ftime(), use that instead of time() so we at least get
subsecond resolution (as we do currently with OmTime).
Mon May 04 03:31:51 GMT 2009 Olly Betts <olly@survex.com>
* docs/queryparser.html: Add examples of using a prefix on a phrase
or subexpression.
Sun May 03 14:58:42 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_valuestats.cc: Testcase valuestats4 requires transactions,
so indicate that and remove the explicit SKIP for inmemory.
Sun May 03 12:34:30 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* common/rset.h,common/weightinternal.h,matcher/rset.cc,
weight/weightinternal.cc: Typedef std::map<string, Xapian::doccount>
as TermFreqMap; tidies up code a little here, but mainly useful
for keeping code tidy on branches/opsynonym.
Sun May 03 11:49:08 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* common/multimatch.h: Remove unused include of <map>
Sun May 03 05:23:32 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_db.cc: Protect tests which assume Flint is enabled with
#ifdef XAPIAN_HAS_FLINT_BACKEND.
Sat May 02 15:49:46 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac,tests/Makefile.am,tests/api_scalability.cc,
tests/api_wrdb.cc,tests/harness/: Add new "test_scalability()" helper
function which checks that an operation scales in CPU time used in
the desired way. Use this to reimplement bigoaddvalue (and rename
to bigoaddvalue1 for consistency).
Fri May 01 04:58:41 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: For chert, check value stats are the correct
format and that the streamed values are consistent with their stats
(ticket#277).
Fri May 01 04:53:22 GMT 2009 Olly Betts <olly@survex.com>
* api/omdocument.cc: Don't ever store empty values explicitly, which
eliminates an inconsistently handled corner case which was causing
the "value frequency" to be wrong from at least one point of view.
This is consistent with how user metadata works too.
* include/xapian/document.h: Explicitly document this behaviour.
* tests/api_valuestats.cc: Add regression test for the above change.
Fri May 01 03:11:25 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Chert doesn't store termlist entries for
documents without terms, which resulted in us reporting an error when
we found document ids in the doclength "postlist" which were greater
than any with an entry in the termlist. Instead compare these
entries against db.get_last_docid() if we are checking a whole db
and able to call it. If not, suppress this check.
Thu Apr 30 15:02:41 GMT 2009 Olly Betts <olly@survex.com>
* common/valuestats.h: Fix comment typo.
Tue Apr 28 14:01:41 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Use <cstdlib> rather than <stdlib.h> which means
that there's an overload for abs(long).
Tue Apr 28 13:17:48 GMT 2009 Olly Betts <olly@survex.com>
* HACKING,INSTALL,configure.ac,include/xapian/deprecated.h,
include/xapian/version_h.cc,tests/harness/testsuite.cc: Actually,
let's require GCC 3.1 as doing so eliminates some preprocessor
conditionals which we aren't able to test regularly as we don't
have easy access to such old GCC versions. GCC 3.1 is nearly 7
years old now, and GCC3 didn't get widespread use until later
versions anyway.
Tue Apr 28 12:47:11 GMT 2009 Olly Betts <olly@survex.com>
* common/debuglog.h: Add missing initialisation of uncaught_exception
in a couple of places.
Tue Apr 28 11:24:02 GMT 2009 Olly Betts <olly@survex.com>
* INSTALL: Note that Xapian 1.0.x should build with GCC 2.95.3.
Tue Apr 28 11:20:51 GMT 2009 Olly Betts <olly@survex.com>
* HACKING,INSTALL,backends/chert/chert_database.h,
backends/flint/flint_database.h,
backends/inmemory/inmemory_database.h,configure.ac,
include/xapian/version_h.cc,tests/harness/testsuite.cc: Drop support
for GCC 2.95.3 - we now require at least 3.0.
Mon Apr 27 12:20:25 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/weight.h: Add "need_stat(WDF);" for Weight subclasses
which use wdf. Currently this is never actually checked by trunk
(so a regression test for this omission isn't really feasible), but
the opsynonym branch uses it.
Sun Apr 26 14:47:57 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* weight/bm25weight.cc: Add call debugging.
Sun Apr 26 10:57:48 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_db.cc: stubdb6 is "inmemory" not "flint || chert || multi".
Sun Apr 26 10:51:50 GMT 2009 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Fix to build with the inmemory backend
disabled.
Sun Apr 26 07:28:47 GMT 2009 Olly Betts <olly@survex.com>
* tests/generate-api_generated: Fix so generated api_generated.cc
builds with the inmemory backend disabled.
Sun Apr 26 06:30:57 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Fix to build with the inmemory backend disabled.
Sat Apr 25 01:10:49 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Fix to build with the flint and/or chert
backends disabled.
Sat Apr 25 01:06:00 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix to build with the remote backend
disabled.
Sat Apr 25 00:57:41 GMT 2009 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: Fix to build with the inmemory backend
disabled.
Fri Apr 24 22:59:34 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* weight/weight.cc: Add debug logging to Weight::init_() methods.
* net/remoteserver.cc: Fix bounds returned by Weight::Internal
object in get_mset() in remote submatches, by setting the
database used to read the bounds.
Fri Apr 24 13:14:50 GMT 2009 Olly Betts <olly@survex.com>
* matcher/branchpostlist.cc,matcher/branchpostlist.h: Remove
BranchPostList::get_wdf() which isn't currently used, and isn't
wanted on branches/opsynonym.
Fri Apr 24 12:46:18 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Apply doxygen comment improvement
from branches/opsynonym.
Fri Apr 24 12:31:15 GMT 2009 Olly Betts <olly@survex.com>
* matcher/localmatch.cc: Apply assertion and debug logging
improvements from branches/opsynonym.
Thu Apr 23 06:16:05 GMT 2009 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,docs/Makefile.am,tests/Makefile.am: Fix
things up so that in a bootstrapped SVN tree, automatic regeneration
of autotools-generated files uses the in-tree versions of the
autotools.
Thu Apr 23 04:37:31 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS: Add another bug reporter.
Thu Apr 23 04:26:25 GMT 2009 Olly Betts <olly@survex.com>
* Makefile.am,languages/Makefile.mk,queryparser/Makefile.mk,
tests/Makefile.am,tests/perftest/Makefile.mk: Don't remove any
built sources in "make clean" even under --make-maintainer-mode
as that breaks switching a tree away from maintainer-mode with:
make distclean;./configure
Thu Apr 23 03:51:03 GMT 2009 Olly Betts <olly@survex.com>
* Makefile.am: Use "--coverage" instead of "-fprofile-arcs
-ftest-coverage" in the test coverage build.
Wed Apr 22 14:32:56 GMT 2009 Olly Betts <olly@survex.com>
* PLATFORMS: Sync with 1.0.12; add entry for atreus for 1.1.0.
Wed Apr 22 14:27:36 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS: Add more bug reporters and patch contributors. Remove a
duplicate entry.
Wed Apr 22 13:58:31 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Set release date.
Wed Apr 22 13:36:04 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update, perhaps even ready for release now.
Wed Apr 22 11:00:50 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: More work.
Tue Apr 21 17:59:13 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* docs/queryparser.html: Add closing <code> tag.
Tue Apr 21 11:05:17 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* NEWS: A few minor corrections and adjustments.
Tue Apr 21 07:49:49 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/weight.h: Don't use the term "term" to talk about the
extra weight component as it already has a strong meaning in Xapian.
Tue Apr 21 07:16:18 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 6451".
Tue Apr 21 06:54:00 GMT 2009 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.h: '#include <map>' isn't required.
Tue Apr 21 06:45:14 GMT 2009 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc,matcher/queryoptimiser.h: Eliminate
QueryOptimiser::do_leaf() as it is only called from one place
and if only two lines of code.
Mon Apr 20 14:10:08 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog and start to lick into shape for a
release.
Mon Apr 20 13:06:17 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: XAPIAN_DEBUG_LOG=- send output to stderr, not stdout.
Mon Apr 20 11:53:07 GMT 2009 Olly Betts <olly@survex.com>
* common/output.h: Add new macro XAPIAN_OUTPUT_FUNCTION_PTR and use it
so that debug logging of Xapian::Query::Internal* doesn't just
report the pointer value.
Mon Apr 20 06:39:42 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Apply debug logging change lifted from
branches/opsynonym.
Mon Apr 20 05:22:24 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/testutils.cc: Add FIXME comments about use of internal
macro from a different header.
Mon Apr 20 05:08:34 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Update release checklist.
Sun Apr 19 14:50:08 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/api_nodb.cc: Stick the reciprocal of "factor" into a
volatile double temporary variable to stop compiler using
extended precision calculation on x86, and coming up an answer of
exactly 1.0 when multiplying by "factor" again.
Sun Apr 19 14:26:09 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Sync with 1.0.12 and update from ChangeLog.
Sun Apr 19 12:12:19 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS: Update for 1.0 branch.
Thu Apr 16 12:08:24 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_values.cc: When copying the tail of a value
chunk because did > last_allowed_did, we don't need to check if
the docids being copied are < did, since they should all be <=
last_allowed_did, so just assert the latter.
Tue Apr 14 20:32:41 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/api_wrdb.cc: patch from james to move logging in
modifyvalues1 so it reports the values it's rewriting correctly,
rather than the empty string. Also display the expected value in
tout when checking the value. Also, pull the setting of the random
seed out to the start of the function, and set it to 7 (which
exposed the bug fixed with the previous commit, which that the old
value of 42 didn't, on my machine, at least).
Tue Apr 14 18:12:08 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_values.cc: When we move the reader to a new
chunk, write any trailing values left in it to the stream first.
Thu Apr 09 05:01:04 GMT 2009 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Document the child process used for locking
which exec-s "cat" (ticket #258).
Thu Apr 09 03:49:13 GMT 2009 Olly Betts <olly@survex.com>
* bin/: Use C++ forms of C headers in bin (ticket#330).
Thu Apr 09 03:47:42 GMT 2009 Olly Betts <olly@survex.com>
* examples/: Use C++ forms of C headers in examples (ticket#330).
Mon Apr 06 06:35:03 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Fix documentation comment typos.
Mon Apr 06 06:03:45 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS: Add Muayyad Alsadi for reporting #355.
Mon Apr 06 05:59:38 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_unicode.cc: Note which characters in the new
unicodepredicate1 testcase are new in Unicode 5.1.0.
Sun Apr 05 14:24:47 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Add NON_SPACING_MARK to is_wordchar() for
better tokenisation of Arabic, for example. (ticket#355)
* tests/queryparsertest.cc: Add test that this has the desired effect.
* tests/api_unicode.cc: Add feature tests of Unicode::is_wordchar(),
Unicode::is_currency(), and Unicode::is_whitespace().
Sat Apr 04 05:41:47 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Wed Apr 01 00:18:02 GMT 2009 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Fix totlen overflow test. Refactor lightly
to reduce indenting.
Tue Mar 31 17:01:20 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-compact.cc: Handle databases which contain no
documents (and hence have no METAINFO item), but do contain some
metadata (so the postlist table is not empty). Fixes ticket
#356.
Tue Mar 31 13:49:01 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc,include/xapian/postingsource.h: Change
return types of clone() and unserialise() methods to be of the
subclass returned; this is a bit more flexible, but the main
reason is to be consistent: previously, the clone() methods
returned the subclass, but the unserialise() methods returned
PostingSource.
Tue Mar 31 12:10:03 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/postingsource.h: Add comment on PostingSource base
class listing it as an experimental feature.
* docs/deprecation.rst: Describe what "experimental" features are,
and why replication and posting sources are currently
experimental.
Tue Mar 31 11:34:25 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/matchspy.h: Removed currently unused header to stop
doxygen from generating documentation for it.
Tue Mar 31 11:27:54 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* docs/replication.rst,include/xapian/replication.h: Note that
replication is currently "experimental".
Fri Mar 27 14:29:05 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_spelling.cc,backends/chert/chert_spelling.h,
backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h:
Fix WritableDatabase::remove_spelling() to not be very broken in
several ways.
* tests/api_spelling.cc: Add test coverage for it.
Fri Mar 27 10:43:34 GMT 2009 Olly Betts <olly@survex.com>
* xapian-config.in: Add @LIBRARY_VERSION_SUFFIX@ to -lxapian too.
Fri Mar 27 08:22:39 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/postingsource.h: Update documentation comments to
refer to init() instead of the old name of reset().
Fri Mar 27 08:10:48 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Document the lcov make targets.
Fri Mar 27 07:44:59 GMT 2009 Olly Betts <olly@survex.com>
* Makefile.am: Add two new targets to assist generating test coverage
reports with lcov: coverage-reconfigure which reruns configure in
the source tree and coverage-check which runs "make check" and
generates an HTML report in a directory called "lcov".
Thu Mar 26 23:59:36 GMT 2009 Olly Betts <olly@survex.com>
* Makefile.am,m4-macros/xapian.m4,xapian-core.spec.in: Rename
xapian.m4 to xapian-1.1.m4 to avoid clash with Xapian 1.0.x. Both
xapian.m4 and xapian-1.1.m4 will contain XO_LIB_XAPIAN, but aclocal
copes and only copies one of them. We need to avoid incompatible
changes to XO_LIB_XAPIAN though.
Thu Mar 26 14:29:54 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac,include/Makefile.mk,xapian-config.in: Install headers
in $prefix/include/xapian-1.1/ so they don't clash with 1.0.
Thu Mar 26 13:46:06 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Default program suffix to -1.1 if not specified. If
you really want no suffix, "./configure --program-suffix=" will
achieve that.
Thu Mar 26 12:49:10 GMT 2009 Olly Betts <olly@survex.com>
* Makefile.am,api/Makefile.mk,backends/Makefile.mk,
backends/chert/Makefile.mk,backends/flint/Makefile.mk,
backends/inmemory/Makefile.mk,backends/multi/Makefile.mk,
backends/remote/Makefile.mk,bin/Makefile.mk,common/Makefile.mk,
configure.ac,examples/Makefile.mk,expand/Makefile.mk,
languages/Makefile.mk,matcher/Makefile.mk,net/Makefile.mk,
queryparser/Makefile.mk,tests/Makefile.am,tests/perftest/Makefile.mk,
unicode/Makefile.mk,weight/Makefile.mk,xapian-config.in,
xapian-core.spec.in: Change library name to libxapian-1.1 as a first
step towards allowing parallel installation with 1.0.x.
Thu Mar 26 06:53:27 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Thu Mar 26 06:50:44 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_values.h: Fix class name in file doc comment.
Thu Mar 26 00:13:48 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc:
Call ChertDatabase::close() rather than repeating its code.
Wed Mar 25 17:39:01 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc:
Release the lock when the database is closed (either due to a
call to close() or due to a serious error during modifications).
Should fix ticket #354.
Wed Mar 25 16:42:58 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/testutils.cc: Use TEST_EQUAL_DOUBLE_ for comparison
of weights in mset, to fix test failures due to floating point
differences. (Currently only manifests in some tests in the
matchspy branch, but it's a generally useful fix.)
Wed Mar 25 11:44:36 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Only put ANSI_CXXFLAGS in CXXFLAGS for the duration of
configure - put it in AM_CXXFLAGS for substituting so that the user
can safely override CXXFLAGS at make-time: "make CXXFLAGS=-Os"
Wed Mar 25 10:50:44 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Fix comment typo.
Wed Mar 25 04:48:50 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/chert/chert_database.h,
backends/flint/flint_database.h,
backends/inmemory/inmemory_database.h,
backends/remote/remote-database.cc,common/const_database_wrapper.h,
common/database.h: Drop the default value of the lazy parameter to
Database::open_document() - it's better to force us to consider
whether a new call should be lazy or not.
* common/database.h: Better description of lazy parameter.
* backends/remote/remote-database.cc: Update comment about when lazy
is set to true.
Wed Mar 25 04:20:34 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc: Don't "return false" when
the return type is a pointer!
Tue Mar 24 17:42:22 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/database.cc: Open documents lazily in
collect_document().
Tue Mar 24 11:10:57 GMT 2009 Olly Betts <olly@survex.com>
* backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
MultiPostList::read_position_list() is never used, so remove it.
Tue Mar 24 10:04:03 GMT 2009 Olly Betts <olly@survex.com>
* backends/multi/multi_postlist.cc: Remove "[" and "]" from the output
of MultiPostList::get_description(). Remove excess "," from output
of MultiPostList::get_description().
* tests/api_db.cc: Add some test coverage of
PostingIterator::get_wdf() and PostingIterator::get_description().
Tue Mar 24 10:00:23 GMT 2009 Olly Betts <olly@survex.com>
* api/ompostlistiterator.cc: Remove "[" and "]" from
Xapian::PostingIterator::get_description() as they don't add
anything useful.
Tue Mar 24 09:57:39 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc: Add a space in the output
of InMemoryPostList::get_description() and
InMemoryAllDocsPostList::get_description().
Tue Mar 24 08:52:46 GMT 2009 Olly Betts <olly@survex.com>
* api/leafpostlist.cc,include/xapian/weight.h,tests/api_db.cc,weight/:
Get rid of the virtual Weight::get_sumpart_needs_doclength() method
- subclasses can call need_stat(DOC_LENGTH) in their constructor if
they need doc lengths.
Tue Mar 24 07:55:06 GMT 2009 Olly Betts <olly@survex.com>
* weight/weight.cc: Check stats_needed for stats which aren't just a
simple member variable lookup.
Tue Mar 24 06:46:24 GMT 2009 Olly Betts <olly@survex.com>
* backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
MultiPostList::get_termfreq() is never used, so remove it.
Mon Mar 23 14:09:33 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_unicode.cc: Add test coverage for
Xapian::Unicode::append_utf8().
Mon Mar 23 11:40:09 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc,docs/postingsource.rst,
include/xapian/postingsource.h,matcher/externalpostlist.cc,
tests/api_db.cc,tests/api_percentages.cc,tests/api_valuestream.cc:
Rename PostingSource::reset() to PostingSource::init().
Mon Mar 23 11:01:02 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/testsuite.h: Fix documentation comment in line with
the corrected --help output from "Sat Feb 21 08:18:21 GMT 2009".
Mon Mar 23 02:24:44 GMT 2009 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Fix handling of empty and single subquery
OP_NEAR and OP_PHRASE (was breaking queryparsertest).
Sun Mar 22 10:23:37 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_positionlist.cc,
common/inmemory_positionlist.h,docs/deprecation.rst,
tests/api_posdb.cc: Change Database::positionlist_begin() not to
throw exceptions if the term or document doesn't exist.
Sun Mar 22 09:02:46 GMT 2009 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Fix typo.
Sun Mar 22 07:54:30 GMT 2009 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,include/xapian/query.h,tests/api_nodb.cc,
tests/api_query.cc: Fix valgrind errors on nearsubqueries1
(ticket#349) and enhance distribution of OP_NEAR/OP_PHRASE over
non-leaf subqueries to work when there are multiple non-leaf
subqueries (ticket#201). Extend nearsubqueries1 to test that
trying to distribute OP_NEAR/OP_PHRASE over OP_NEAR/OP_PHRASE
throws UnimplementedError.
Fri Mar 20 08:43:20 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_query.cc: Add coverage for OP_AND with MatchNothing
subquery (new testcase matchnothing1).
Fri Mar 20 05:16:18 GMT 2009 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Fix assertions in previous check-in to
verify the right condition. And return the simplified query in
the case the assertion would have failed, as that means a small
memory leak rather than unpredictable behaviour in a non-assertion
build.
Fri Mar 20 04:26:29 GMT 2009 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Check that end_construction() returns NULL
when unserialising queries.
Fri Mar 20 02:51:32 GMT 2009 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Fix return type of
Xapian::Query::Internal::simplify_query() in a debug build. Since
RETURN() isn't used by this function, this is only a cosmetic issue
in the log file.
Wed Mar 18 09:26:02 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc,
docs/deprecation.rst: Move just returning an empty PositionIterator
from Database::positionlist_begin() when the docs or term isn't
present from 1.2.0 to 1.1.0 (has to be 1.1.0 or 1.3.0 really).
Wed Mar 18 09:24:27 GMT 2009 Olly Betts <olly@survex.com>
* docs/glossary.rst: Chert as the default backend in 1.2.0 is pretty
much definite.
Wed Mar 18 06:42:09 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Wed Mar 18 04:36:59 GMT 2009 Olly Betts <olly@survex.com>
* xapian-core.spec.in: Tweak reference to "1.1.0 branch" to make more
sense.
Wed Mar 18 04:30:18 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc,include/xapian/postingsource.h: Remove the
optional "max_weight_" parameter to ValuePostingSource's ctor.
* include/xapian/postingsource.h: Correct a few errors in
documentation comments.
Wed Mar 18 04:29:22 GMT 2009 Olly Betts <olly@survex.com>
* docs/postingsource.rst: "ctx" -> "context" in example code.
Tue Mar 17 23:45:52 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: If the
locking attempt fails after we spawn the child process, call
waitpid() in the parent process to avoid creating a zombie process.
* AUTHORS: Add Jim Spath for reporting this.
Tue Mar 17 23:34:16 GMT 2009 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/str.cc,common/str.h: New family of
overloaded str() functions for converting types to std::string.
The integer conversion are much faster than the existing
om_tostring().
* common/omassert.h,common/omdebug.h: Use str() instead of
om_tostring().
* common/utils.cc,common/utils.h: Make om_tostring() a macro wrapping
str() for now to avoid introducing a lot of conflicts with other
branches and unapplied patches.
Tue Mar 17 21:28:54 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: Fix comment typo.
Tue Mar 17 00:47:26 GMT 2009 Olly Betts <olly@survex.com>
* common/utils.cc: Fix previous change to actually compile...
Mon Mar 16 20:10:01 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* common/utils.cc,common/utils.h: Add om_tostring() version of
unsigned long long int, to fix debug build on i686.
Mon Mar 16 14:01:02 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Sync with 1.0.11.
Fri Mar 13 06:59:29 GMT 2009 Olly Betts <olly@survex.com>
* weight/weightinternal.cc: Need "utils.h" for om_tostring().
Fri Mar 13 05:47:24 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Note that QueryParser::FLAG_DEFAULT
was new in 1.0.11.
Fri Mar 13 04:36:19 GMT 2009 Olly Betts <olly@survex.com>
* weight/weightinternal.cc: Implement
Weight::Internal::get_description().
Thu Mar 12 11:57:02 GMT 2009 Olly Betts <olly@survex.com>
* common/output.h: Fix last commit.
Thu Mar 12 11:29:58 GMT 2009 Olly Betts <olly@survex.com>
* common/output.h: Define operator<< for Xapian::Weight::Internal.
Thu Mar 12 11:21:09 GMT 2009 Olly Betts <olly@survex.com>
* net/remoteserver.cc: Fix overlooked case which was still sending
REPLY_DOCLENGTH as a double.
Wed Mar 11 22:56:59 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_valuelist.cc: Fix comment typo.
Wed Mar 11 22:50:49 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/api_valuestream.cc: Enable valuestream3 for chert.
* backends/chert/chert_valuelist.cc: Fix return value of
ChertValueList::check() when it needs to move to a new chunk.
Fixes valuestream3 test.
Wed Mar 11 13:17:58 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/weight.h: Mark Weight::init_() methods as "@private
@internal" for doxygen API docs.
Wed Mar 11 13:13:32 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/weight.h,tests/api_db.cc,tests/api_nodb.cc,
weight/bm25weight.cc,weight/boolweight.cc,weight/tradweight.cc:
Make Weight::name() return std::string to allow sane wrapping
with SWIG directors.
Wed Mar 11 05:46:40 GMT 2009 Olly Betts <olly@survex.com>
* api/,backends/chert/,backends/contiguousalldocspostlist.cc,
backends/flint/,backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
backends/remote/,common/,docs/remote_protocol.html,
include/xapian/database.h,include/xapian/postingiterator.h,matcher/,
net/remoteserver.cc: Internally, pass around non-normalised document
lengths as Xapian::termcount (unsigned integer) not Xapian::doclength
(double).
Wed Mar 11 05:25:40 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Use TEST_REL; wrap long comment.
Wed Mar 11 04:52:41 GMT 2009 Olly Betts <olly@survex.com>
* Makefile.am,api/,backends/chert/,backends/database.cc,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
examples/delve.cc,include/Makefile.mk,include/xapian.h,
include/xapian/database.h,include/xapian/enquire.h,
include/xapian/weight.h,matcher/,net/remoteserver.cc,
net/serialise.cc,tests/,weight/: Reimplementation of weighting
schemes which allows user subclasses to access the same stats which
built in schemes can (bug#213) and which also can use lower and
upper bounds of doclength and upper bounds on wdf to give a tighter
maxweight, which should allow the matcher weight-based optimisations
to be more effective. Chert now tracks doclength bounds and a
global (rather than per term) bound on wdf. Other backends
return much less good bounds, but these still lead to better
maxweight bounds.
Wed Mar 11 00:13:24 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/query.h: Rename parameter name from "ctx" to the
more human-friendly "context".
Tue Mar 10 14:03:33 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/testutils.cc: If mset_range_is_same_percents() fails
because the percentages differ, report what they were to tout.
Mon Mar 09 12:27:28 GMT 2009 Olly Betts <olly@survex.com>
* matcher/localmatch.cc: Remove special case handling for empty string
being returned from the TermIterator returned by
Query::Internal::get_terms() as this should no longer happen.
Mon Mar 09 12:09:21 GMT 2009 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Don't return "" from a TermIterator from
Query::get_terms_begin() (happened when Query contained or was
Query::MatchAll).
* tests/Makefile.am,tests/api_query.cc: Add regression testcase
queryterms1.
Sun Mar 08 06:16:24 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Add check that backends don't truncate total
document length to 32 bits.
Sun Mar 08 06:02:43 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_backend.cc: Disable lockfileumask1 on Cygwin and on OS/2.
Sun Mar 08 05:36:54 GMT 2009 Olly Betts <olly@survex.com>
* matcher/extraweightpostlist.h: Add forward declaration of
Xapian::Weight since we use "Xapian::Weight *".
Sun Mar 08 04:39:22 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_types.h,backends/flint/flint_types.h,
bin/xapian-check-flint.cc,bin/xapian-check.cc,bin/xapian-compact.cc,
common/Makefile.mk,common/database.h,common/internaltypes.h:
Move totlen_t to a new header (internaltypes.h) to avoid needing to
pull in database.h in when we want to use it. Also move int4 and
uint4 there to avoid duplicated definitions and abstract out a
new uint8 from defining totlen_t.
Sun Mar 08 00:50:38 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.h,backends/chert/chert_types.h,
backends/flint/flint_database.h,backends/flint/flint_types.h,
bin/xapian-check-flint.cc,bin/xapian-check.cc,bin/xapian-compact.cc,
common/database.h: Replace flint_totlen_t and chert_totlen_t with
a common totlen_t.
Sat Mar 07 08:35:27 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc: Wrap comment.
Sat Mar 07 08:28:17 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.h: Fix file description
("multiple database" -> "inmemory database").
Sat Mar 07 08:25:11 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h: Store non-normalised document
lengths as Xapian::termcount (unsigned int) rather than
Xapian::doclength (double).
Sat Mar 07 06:56:26 GMT 2009 Olly Betts <olly@survex.com>
* common/database.h: Removed unused forward declarations of classes.
Sat Mar 07 06:52:11 GMT 2009 Olly Betts <olly@survex.com>
* common/database.h: Fix comment typo.
Sat Mar 07 05:44:18 GMT 2009 Olly Betts <olly@survex.com>
* net/serialise.cc: Fix top of file to actually be a doxygen comment.
Tweak layout of definition of serialise_stats().
Sat Mar 07 05:40:58 GMT 2009 Olly Betts <olly@survex.com>
* net/serialise.cc: c_str() -> data() since we don't need the
nul-termination.
Thu Mar 05 11:49:45 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_db.cc,tests/api_nodb.cc: Back out accidentally committed
changes 2 commits ago.
Thu Mar 05 10:28:07 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS: Add Frank J. Bruzzaniti for omindex patches.
Thu Mar 05 10:20:38 GMT 2009 Olly Betts <olly@survex.com>
* tests/Makefile.am: If both chert and flint are enabled, run
remoteprog_chert and remotetcp_flint but not the other two
combinations as they don't buy us any useful extra test
coverage, but cost a lot of extra time per testrun.
Thu Mar 05 07:51:52 GMT 2009 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Update to reflect that odd minor versions are
now development series.
Thu Mar 05 04:20:43 GMT 2009 Olly Betts <olly@survex.com>
* common/serialisationcontextinternal.h: Fix forward declarations.
Thu Mar 05 02:11:26 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc: "new_uuid" -> "sub_uuid" - it's not really new.
Wed Mar 04 22:53:13 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,include/xapian/termgenerator.h: Make
default empty std::string parameters use std::string() rather than
"".
Wed Mar 04 16:06:11 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc: If a sub-database of a multi-database has no
uuid, we cannot return a uuid for the database, so return
string() instead.
* tests/api_anydb.cc: Test for this.
Wed Mar 04 13:45:41 GMT 2009 Olly Betts <olly@survex.com>
* HACKING: Conversion to C++ names for ISO C headers will happen in
1.1.x, not 1.1.0.
Wed Mar 04 13:37:47 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/database.cc,
backends/remote/remote-database.cc,common/database.h,
include/xapian/database.h,net/remoteserver.cc,tests/api_anydb.cc:
Return an empty string from Database::get_uuid() when then backend
doesn't support UUIDs for consistency with flint when the database
has no UUID. For a multiple database, build a string from the UUIDs
of each subdatabase and return this as the UUID. If there are no
subdatabases return the empty string.
Wed Mar 04 11:34:04 GMT 2009 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remoteprotocol.h,
common/remoteserver.h,docs/remote_protocol.html,net/remoteserver.cc:
Change the remote server to always default to opening a Database and
having the client request write access explicitly. This allows a
single server to support multiple readers and one writer
simultaneously. (bug#145)
* net/remoteserver.cc,backends/remote/remote-database.cc: For constant
empty string parameters, pass string() rather than "".
* common/remoteserver.h: Remove unused '#include <map>'. Remove
'using namespace std;' and explicitly qualify the few bare mentions
of 'string'.
Wed Mar 04 07:24:39 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Sync with latest upstream lempar.c
(only changes were in code which isn't in our version).
Wed Mar 04 04:03:44 GMT 2009 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/api_percentages.cc,
tests/testdata/apitest_sortconsist.txt: Apply regression test patch
from bug#216.
Wed Mar 04 03:41:49 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/enquire.h,matcher/multimatch.cc: Fix inconsistent
percentage scores when sorting primarily by valuei, except when
a MatchDecider is also being used; document this remaining problem
case. (bug#216)
Wed Mar 04 01:58:07 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc: No need
to initialise inflate_zstream->next_out and avail_out twice.
Wed Mar 04 01:16:32 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc: If
deflateReset() or inflateReset() fails, just delete the zstream
take the initialisation codepath - that should mean we recover
if the stream does somehow end up in a bad state and is less
code than throwing an exception. Annotate tests with rare()
or usual() if they are for exceptional conditions. Fix bug
introduced by the laziness patch which was adding an int error
code to a const char * message. If deflateInit2() or inflateInit2()
fails, delete and zero the stream so there's no risk of ending up
wedged on a partly initialised stream.
Tue Mar 03 15:32:53 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc:
Check for errors from deflateReset() and inflateReset() - there
shouldn't be any if we've given them a valid stream, so just
raise InternalError if we get one.
Tue Mar 03 09:43:34 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Updated from ChangeLog.
Tue Mar 03 05:52:16 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_closedb.cc: Fix testcase closedb2 not to create a test
database named closedb3.
Tue Mar 03 04:31:48 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Add QueryParser::FLAG_DEFAULT to make
it easier to add flags to those set by default.
* tests/queryparsertest.cc: Use FLAG_DEFAULT in a few places to serve
as a feature test.
Tue Mar 03 03:45:53 GMT 2009 Olly Betts <olly@survex.com>
* docs/index.html: Add link to new serialisation topic document.
* docs/serialisation.rst: Reword to avoid pluralising class names.
Add link to postingsource document where we reference it.
Tue Mar 03 03:35:29 GMT 2009 Olly Betts <olly@survex.com>
* tests/runsrv.in: Use @top_builddir@ rather than relying on it
coming from the environment.
Tue Mar 03 03:05:47 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Clear tout regularly in modifyvalues1 as
otherwise the output builds up. Some string stream implementations
get very inefficient with large strings, and also this seems to
interact badly with valgrind's leak detection resulting in the
test having to be rerun to check if it really leaks. Prefer
tout.str(string()) to tout.str("") in existing uses too.
Tue Mar 03 01:41:07 GMT 2009 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Update handling of shutting down
the zstream objects in the dtor to match chert.
Mon Mar 02 23:57:26 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_table.h,backends/flint/flint_table.h: Add
documentation comments for the lazy allocation methods, and
separate comments for the zstream members.
Mon Mar 02 23:40:20 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* AUTHORS,backends/chert/chert_table.cc,backends/chert/chert_table.h,
backends/flint/flint_table.cc,backends/flint/flint_table.h:
Reduce allocation of zstreams by allocating them lazily, keeping
them in the table objects, and reuse them, rather than allocating
a new one each time it's wanted. Heavily based on a patch from
Todd Lipcon. Apparently improves performance significantly on
some systems; on my tests it has no perceptible negative impact,
but it makes sense that it could help in some situations, so
let's apply it. Fixes #325.
Mon Mar 02 21:10:54 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Deprecate Stem_get_available_languages()
from the python bindings.
Mon Mar 02 19:56:20 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* common/Makefile.mk,common/const_database_wrapper.cc,
common/const_database_wrapper.h,matcher/queryoptimiser.cc: Avoid
const_cast() on Database::Internal, and exposing
compiler-dependent behaviour if non-const methods are called, by
adding a ConstDatabaseWrapper class, which is a subclass of
Database::Internal, and also takes a Database::Internal as a
parameter, to be wrapped. This class proxies all const methods
to the wrapped Database::Internal, and raises
InvalidOperationError on non-const methods. Fixes #332.
Mon Mar 02 18:27:00 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/postingsource.h: Documentation comment
improvements. Be explicit that Xapian will call reset() before
various methods, and will call next, skip_to or check before
at_end.
* include/xapian/query.h: Wrap over-long line.
Mon Mar 02 18:26:37 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* docs/Makefile.am,docs/serialisation.rst: Add topic document about
serialisation.
Mon Mar 02 17:58:28 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* docs/postingsource.rst: Update documentation with new design.
Mon Mar 02 17:16:54 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/omqueryinternal.cc: Change serialisation of queries to use
encode_length() rather than om_tostring(), for a more compact and
easier to parse representation.
Mon Mar 02 14:48:08 GMT 2009 Olly Betts <olly@survex.com>
* backends/multi/multi_alltermslist.cc: Fix memory leak which
was causing allterms6 to fail.
Mon Mar 02 14:15:11 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/externalpostlist.cc: Fix memory leak in external source
postlist (fixes fixedweightsource1).
Mon Mar 02 13:41:29 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc: Don't set max_weight in
ValueMapPostingSource::set_default_weight() - it's set in
reset() before being used, and it's not been set here yet, so
accessing it in std::max() was making valgrind complain.
Mon Mar 02 12:23:01 GMT 2009 Olly Betts <olly@survex.com>
* HACKING,configure.ac,tests/runtest.in: Don't use valgrind if it's
< 3.3.0 as that's well over a year old and greatly simplifies the
configure tests. Fix options passed to valgrind so that the
testsuite harness actually reports problems detected by newer
valgrind versions.
Mon Mar 02 10:08:25 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/,bin/xapian-tcpsrv.cc,common/Makefile.mk,common/remoteserver.h,
common/serialisationcontextinternal.h,include/Makefile.mk,
include/xapian.h,include/xapian/enquire.h,include/xapian/query.h,
include/xapian/serialisationcontext.h,net/remoteserver.cc,
tests/api_serialise.cc,tests/internaltest.cc: Add
SerialisationContext. This object is used to register
PostingSource or Weight subclasses, so that they can be
serialised and unserialised, and therefore used in remote
searches. Add two-argument form for Query::unserialise() which
takes a serialisation context. Fixes #206.
Mon Mar 02 07:13:38 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/database.h: Further tweak to wording of
documentation about close().
Mon Mar 02 07:05:54 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_table.cc,backends/chert/chert_table.h,
backends/flint/flint_table.cc,backends/flint/flint_table.h:
Factor out more "throw Xapian::DatabaseError("Database has been
closed")" bits into separate functions: knocks another 20KB off
the shared library size.
Mon Mar 02 05:46:15 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Document how to get all matches from
Enquire::get_mset().
Mon Mar 02 04:52:17 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_alltermslist.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h: Factor out "throw
Xapian::DatabaseError("Database has been closed") into a separate
function which knocks over 100KB off the shared library size (just
over 0.5%).
Mon Mar 02 03:57:17 GMT 2009 Olly Betts <olly@survex.com>
* matcher/phrasepostlist.h: Remove blank line from end of file.
Mon Mar 02 03:52:10 GMT 2009 Olly Betts <olly@survex.com>
* api/replication.cc,common/msvc_posix_wrapper.cc: Cuddle braces for
"if" and "switch".
Mon Mar 02 03:32:32 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_closedb.cc: Use more conventional uppercase macro parameter
names. Wrap long comments. Remove another unused exception name.
Mon Mar 02 03:21:39 GMT 2009 Olly Betts <olly@survex.com>
* api/replication.cc,backends/chert/chert_databasereplicator.cc,
backends/flint/flint_databasereplicator.cc,net/remoteserver.cc,
tests/api_closedb.cc,tests/perftest/perftest_matchdecider.cc:
Don't name the exception being caught if we don't look at it. While
GCC doesn't currently warn "unused variable" here, I'm fairly sure
there are compilers which do.
Mon Mar 02 03:20:52 GMT 2009 Olly Betts <olly@survex.com>
* tests/perftest/perftest.cc: Wrap overlong comment.
Mon Mar 02 03:17:48 GMT 2009 Olly Betts <olly@survex.com>
* matcher/mergepostlist.cc: Change "do { ... } while (true);" to the
more usual "while (true) { ... }".
Sun Mar 01 19:41:16 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/api_closedb.cc: Merge closedb1 and closedb2 into a single
test, and add lots more checking to it. Rename closedb3 to
closedb2, to avoid leaving an odd gap. closedb1 needs more work,
but is a useful start; committing now, rather than once I've done
this work, since the old test is failing in buildbot, and I don't
want to get in the way of snapshot tarballs.
Sun Mar 01 19:27:38 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc:
Add a few guards to throw DatabaseError when the database has
been permanently closed, rather than behaving as if the table is
empty in that situation. Also, don't delete the resources in the
table when Database::close() is called, because they may still be
used to attempt to look up cached content.
Sun Mar 01 18:22:52 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/database.h: Update documentation comments for
reopen() and close() to document the API we're aiming for (ie,
that closed databases either return the right result from cache,
or raise a DatabaseError).
Sun Mar 01 18:20:19 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/inmemory/inmemory_alltermslist.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h: Add a flag to mark whether
the database is closed, and add guards before all methods which
access content which goes away when the database is closed, to
raise an exception if the database is closed.
Sun Mar 01 18:20:03 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/inmemory/inmemory_document.h: Fix a typo in a comment.
Sun Mar 01 17:49:26 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/mergepostlist.cc: Fix ticket #336 by calling
recalc_maxweight when a sub-posting list finishes (other than
after the last one, where there is no point in calling
recalc_maxweight).
Sun Mar 01 15:34:46 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/api_db.cc: Fix MyDontAskWeightPostingSource to use the
database passed to reset(), rather than one passed to its
constructor. This allows externalsource4 to be enabled for
multidatabases.
Sun Mar 01 13:07:37 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/postingsource.h: Add comments as discussed in
ticket #295 to make clear that in a multi-database search,
PostingSources are passed a single sub-database. Also mention
that the returned value of clone() will be deallocated with
delete.
Sat Feb 28 08:21:33 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/chert/chert_database.cc,
backends/chert/chert_database.h,backends/database.cc,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
examples/copydatabase.cc,include/xapian/database.h,
net/remoteserver.cc,tests/,tests/perftest/perftest_matchdecider.cc,
tests/perftest/perftest_randomidx.cc,tests/queryparsertest.cc: Add
WritableDatabase::commit() as a new, preferred alias for
WritableDatabase::flush(). (bug#266)
Fri Feb 27 01:59:31 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/database.h: WritableDatabase::flush() can't throw
DatabaseLockError. WritableDatabase's ctor can throw at least
DatabaseCorruptError or DatabaseLockError.
Thu Feb 26 14:54:28 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_db.cc,tests/api_valuestream.cc: Update comments about why
certain tests are disabled for certain backends. Enable
valueweightsource5 for multi and valuemapsource2 for remote.
Thu Feb 26 14:53:19 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multiandpostlist.cc: Use AssertRelParanoid() instead
of AssertParanoid() so the values get reported if the assertion
fails.
Thu Feb 26 14:18:21 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/postingsource.h: Tweak word order.
Thu Feb 26 12:48:16 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_db.cc: Make the PostingSource subclass ctors which are
only called from clone() private to set a good example for users.
Thu Feb 26 12:28:34 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/postingsource.h: Fix doc comment typo.
Thu Feb 26 12:08:40 GMT 2009 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,include/xapian/query.h: Avoid copying
Query::Internal objects needlessly when unserialising Query
objects.
Thu Feb 26 10:07:18 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_db.cc: A couple more uncollapsed tests.
Thu Feb 26 08:28:42 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_anydb.cc,tests/api_wrdb.cc,tests/harness/testsuite.h,
tests/perftest/perftest_matchdecider.cc,tests/queryparsertest.cc:
Update to use new TEST_REL() macro. Remove old TEST_LESSER(),
etc.
Thu Feb 26 07:51:43 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix the new
Enquire::get_uncollapsed_matches_lower_bound(), etc methods for
certain cases.
* tests/api_anydb.cc,tests/api_db.cc: Extend existing tests to also
check Enquire::get_uncollapsed_matches_lower_bound(), etc.
Thu Feb 26 07:49:23 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/Makefile.mk,tests/harness/testmacros.h,
tests/harness/testsuite.h: Add new "TEST_REL" macro which can test
for a condition using any relational operator and report a failure
clearly yet concisely.
Wed Feb 25 13:43:41 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix adjustment of the uncollapse bounds and
estimate.
Wed Feb 25 12:32:13 GMT 2009 Olly Betts <olly@survex.com>
* configure.ac: GCC --version keeps changing format, and as a result
we were currently getting "g++" as the version. So change to the
(hopefully) more robust technique of using g++ -E to pull out
__GNUC__ and __GNUC_MINOR__.
Wed Feb 25 03:14:08 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Fix for compiling with Sun's compiler
(untested as I no longer have access to it).
Mon Feb 23 14:11:12 GMT 2009 Olly Betts <olly@survex.com>
* docs/sorting.rst: Clarify meaning.
Mon Feb 23 14:04:50 GMT 2009 Olly Betts <olly@survex.com>
* docs/deprecation.rst,include/xapian/enquire.h,tests/: Rename the
wrongly named "ascending" parameter of the set_sort_by*() methods
of Enquire to "reverse" and deprecate the default value since
defaulting to "reverse=true" is confusing. (bug#311)
Mon Feb 23 01:24:23 GMT 2009 Olly Betts <olly@survex.com>
* api/omenquire.cc,backends/remote/remote-database.cc,
common/multimatch.h,common/omenquireinternal.h,
common/remote-database.h,docs/collapsing.rst,
docs/remote_protocol.html,include/xapian/enquire.h,matcher/,
net/remoteserver.cc,net/serialise.cc,tests/Makefile.am,
tests/api_collapse.cc: Replace the collapsing code in the matcher
with a separate Collapser class. This new class can keep more than
one document with each collapse key. Also track bounds and an
estimate of the total number of matches if collapsing wasn't in use.
Mon Feb 23 00:52:16 GMT 2009 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Fix AssertionError from apitest testcases
fixedweightsource2 and valueweightsource1.
Sun Feb 22 11:02:24 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Check for
fork failing *after* we check if we're now the child process.
Sun Feb 22 10:06:13 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Note
explicitly why we now have the strange empty if (not) checking the
return value of chdir("/") (it's actually newer glibc and
_FORTIFY_SOURCE rather than newer GCC). Retry closing filehandle if
it returns EINTR. Whitespace tweaks.
Sat Feb 21 11:04:08 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Fix
warning about ignoring result of chdir (with GCC 4.2)
Sat Feb 21 08:18:21 GMT 2009 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Fix option usage in --help - "-x=foo"
doesn't work - "-x foo" does.
Sat Feb 21 07:37:01 GMT 2009 Olly Betts <olly@survex.com>
* tests/perftest/perftest_randomidx.cc: Use two argument version of
rand_int() where applicable. Reserve length of result string in
gen_word(). Fix truncated comment.
Sat Feb 21 04:27:45 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: In the
locking child process, before we exec /bin/cat change directory to
/ so that we don't block unmounting of any partitions and close
any open file descriptors (apart from those we're using) so that if
the files are closed by our parent and deleted the disk space gets
released right away.
Sat Feb 21 02:06:56 GMT 2009 Olly Betts <olly@survex.com>
* api/postingsource.cc,include/xapian/postingsource.h: Pass string as
const string &; drop trailing "_" from parameters which don't clash
with member variables; fix brace formatting on a couple of for
loops.
Fri Feb 20 14:32:46 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_closedb.cc: Fix testcase closedb3 not to create a test
database named closedb2.
Fri Feb 20 01:38:32 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Documentation comment improvements.
Wed Feb 18 06:48:43 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Use AssertRel rather than Assert with an
inequality so that we see the arguments if the assertion fails.
Wed Feb 18 06:39:33 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: "items" -> "rsetitems" to distinguish from
items used elsewhere for the MSet items.
Wed Feb 18 06:20:38 GMT 2009 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Drop superfluous "std::".
Wed Feb 18 05:46:59 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Tue Feb 17 23:53:54 GMT 2009 Olly Betts <olly@survex.com>
* include/xapian/document.h,include/xapian/query.h: "xapian" ->
"Xapian".
Tue Feb 17 15:02:49 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/document.h,include/xapian/query.h: Soften comment
warning about changes in serialised format between xapian
versions; note that the format won't change unless the remote
database protocol has changed.
Tue Feb 17 14:59:29 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/omquery.cc: Return std::string() rather than "" to encourage
compilers to use special empty string representation.
Mon Feb 16 14:27:28 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc: Change the name() methods of the built-in
posting sources to return a full name (starting with Xapian:: and
ending with PostingSource), as documented in the API
documentation comments.
Mon Feb 16 13:32:39 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/omqueryinternal.cc,common/remoteserver.h,
matcher/externalpostlist.cc,matcher/externalpostlist.h,
matcher/queryoptimiser.cc,net/remoteserver.cc,
tests/api_percentages.cc,tests/api_valuestream.cc: Add some
copyright lines missed in changeset [11838].
Mon Feb 16 11:56:46 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* matcher/queryoptimiser.cc: Add another reference from a FIXME to
a ticket number.
Mon Feb 16 11:47:21 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/omqueryinternal.cc: Update two FIXMEs to reference the
appropriate ticket.
Mon Feb 16 10:11:39 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* Add support for multi and remote backends with posting sources,
from ticket #295:
* include/xapian/postingsource.h: Add some clarifying comments
about the interface of PostingSources, and add clone(), name(),
serialise() and unserialise() methods to PostingSources, for
remote and multidatabase support.
* include/xapian/query.h: Add internal member to track ownership of
external posting sources, and update some comments.
* api/postingsource.cc: Add implementations of the new methods, so
that all standard PostingSources support remote and multi
database searches.
* api/omquery.cc: Clone external PostingSources if possible.
* api/omqueryinternal.cc: Add serialisation and unserialisation
support for posting sources, and support for keeping track of
whether an external posting source is owned by the query object
or not (ie, whether it needs to be deleted by the destructor).
* matcher/externalpostlist.cc,matcher/externalpostlist.h: (Attempt
to) clone external posting sources at start, and call the reset()
method with the database in use. Delete the posting source
afterwards, if the clone was successful.
* matcher/queryoptimiser.cc: Pass the database to ExternalPostList.
Sadly, this currently requires a const_cast.
* tests/: Update tests of PostingSources to take the db parameter
on the reset() method, and to test behaviour with multi and
remote backends where appropriate. Also, add regression test for
segfault in FixedWeightPostingSource::skip_to() when database is
empty.
* net/remoteserver.cc,common/remoteserver.h: Add the built-in
posting sources to the remote server, and add
register_posting_source() to the remoteserver, for use in
xapian-tcpsrv.cc for user posting sources, analogously to
register_weighting_scheme().
Fri Feb 13 20:09:10 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc: Fix segfaults which occur if an empty
ValuePostingSource subclass has the skip_to() or check() methods
called on it first.
* tests/api_db.cc tests/api_valuestream.cc: Move valuemapsource1 to
api_valuestream.cc, since that seems like a better place (and
api_db.cc is already rather over-large). Add regression test
"valuemapsource2" to check the behaviour of ValuePostingSource
subclasses on empty lists.
Fri Feb 13 19:29:38 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc,include/xapian/postingsource.h: Add
ValuePostingSource, which is a base class for implementing
posting sources based on reading from a value slot. Convert
ValueWeightPostingSource to be a subclass of this, and add
ValueMapPostingSource, which is a posting source which uses a map
to convert values to weights.
* tests/api_db.cc: Add valuemapsource1, testing the
ValueMapPostingSource.
Fri Feb 13 15:14:53 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/index_utils.cc: Add value 13, containing the first
3 letters of the paragraph - needed for some tests I'm going to
commit shortly.
Fri Feb 13 14:05:44 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* tests/api_sorting.cc: Change slot number used to get an empty
slot from 13 to 100 - we're getting close to using slot 13 now!
Sat Feb 07 00:31:12 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc:
Return accidentally changed "XAPIAN_ASSERTIONS_VERBOSE" ifdefs to
"XAPIAN_DEBUG_VERBOSE".
Sat Feb 07 00:16:43 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* api/omdocument.cc,api/omquery.cc,include/xapian/document.h,
include/xapian/query.h: Add methods for serialising documents and
queries into strings, and unserialising back from strings. Fixes
most of ticket #206 - missing part is that serialising queries
containing PostingSources doesn't work.
* tests/Makefile.am,tests/api_serialise.cc: Add tests of document
and query serialisation.
Fri Feb 06 16:06:50 GMT 2009 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Set HAVE_PREAD and HAVE_PWRITE if pread and pwrite
are found; turns use of pread and pwrite back on. This improves
the speed of a test case of 10,000 (fully cached) searches from
1.84 seconds to 1.78 seconds for me (on ubuntu hardy) - ie, about
3% speed increase.
Tue Jan 20 06:22:20 GMT 2009 Olly Betts <olly@survex.com>
* tests/api_db.cc: Prefer value.empty() to value == "".
Mon Jan 19 05:08:48 GMT 2009 Olly Betts <olly@survex.com>
* AUTHORS,queryparser/Makefile.mk: Fix "#line" directives in generated
file queryparser/queryparser_internal.cc to give a relative path -
previously they had a full path when generated by a VPATH build, and
this confused GCC 2.95 and depcomp.
Sun Jan 18 23:34:22 GMT 2009 Olly Betts <olly@survex.com>
* api/omenquire.cc: Throw UnimplementedError from Enquire::get_mset()
if we're asked for a percentage cutoff and to sort primarily by
value - this has never been correctly supported and it's better to
warn people than give incorrect results.
* tests/api_percentages.cc: Add test that this error gets thrown.
Tue Jan 13 08:20:36 GMT 2009 Olly Betts <olly@survex.com>
* common/omenquireinternal.h: Swap the items vector into the
MSet::Internal object rather than copying it to avoid the overhead
of the copy.
Thu Jan 08 05:14:47 GMT 2009 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.cc,backends/chert/chert_postlist.cc,
backends/flint/flint_cursor.cc,backends/flint/flint_postlist.cc,
backends/multi/multi_postlist.cc,common/omassert.h,configure.ac,
matcher/multimatch.cc: Change preprocessor defines controlling
assertions from XAPIAN_DEBUG->XAPIAN_ASSERTIONS and
XAPIAN_DEBUG_PARANOID->XAPIAN_ASSERTIONS_PARANOID so their purpose
is clearer.
Thu Jan 08 02:23:21 GMT 2009 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Wed Jan 07 03:43:07 GMT 2009 Olly Betts <olly@survex.com>
* api/matchspy.cc: Fix FP rounding bug (bug#321).
* AUTHORS: Add Shane Evans for bug report.
Tue Jan 06 22:08:12 GMT 2009 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc: Fix comment typo.
Tue Jan 06 21:39:30 GMT 2009 Olly Betts <olly@survex.com>
* api/matchspy.cc: Add assertions to try to track down what's causing
bug#321.
Tue Jan 06 03:20:27 GMT 2009 Olly Betts <olly@survex.com>
* matcher/exactphrasepostlist.cc,matcher/phrasepostlist.cc: Fix
comment typos.
Mon Jan 05 04:42:04 GMT 2009 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 6016" -
only change is to comment noting the synced version as the changed
code has been deleted in our version.
Fri Dec 26 15:05:05 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/database.h: Add Database.close() method, used to
close the resources (in particular, the filehandles) held by a
database before the destructor is called. Particularly useful
for the bindings from other languages.
* api/omdatabase.cc,backends/chert/chert_database.cc,
backends/chert/chert_database.h,backends/flint/flint_database.cc,
backends/flint/flint_database.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/remote/remote-database.cc,common/database.h,
common/remote-database.h,net/remoteconnection.cc: Implementation
of close() methods.
* tests/Makefile.am,tests/api_closedb.cc: New test file, for
testing the close method. Could do with being expanded to test
many more methods of databases in the closed state, and to test
the behaviour after the close of objects created from databases
before the database was closed.
Fri Dec 26 13:42:14 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc:
Raise error if database has been closed permanently when
cursor_get() is called - a NULL return type isn't checked in
various places (for tables which are never closed temporarily),
so this is the easiest place to add a check to avoid a segfault
without incurring extra overhead.
Tue Dec 23 13:42:21 GMT 2008 Olly Betts <olly@survex.com>
* languages/compiler/analyser.c: Fix GCC 4.3 warning.
Tue Dec 23 06:35:11 GMT 2008 Olly Betts <olly@survex.com>
* PLATFORMS: Sync with 1.0 branch.
* PLATFORMS: Remove 0.9.x build reports; move 1.0.x build reports
to the "old version" section.
* INSTALL: Adapt old footnotes from PLATFORMS about HP's aCC and IRIX
into new paragraphs here.
Tue Dec 23 05:19:52 GMT 2008 Olly Betts <olly@survex.com>
* HACKING,configure.ac: Make automake 1.10.2 a hard minimum
requirement.
Tue Dec 23 04:36:27 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Mon Dec 22 16:02:58 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_databasereplicator.cc,
backends/databasereplicator.cc,
backends/flint/flint_databasereplicator.cc: Fix some missing bits
for debug compilation.
Mon Dec 22 13:30:53 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,backends/Makefile.mk,backends/chert/,
backends/database.cc,backends/databasereplicator.cc,backends/flint/,
common/Makefile.mk,common/database.h,common/databasereplicator.h:
Add DatabaseReplicator base class, and subclasses for flint and
chert, to hold parts of database replication code which need to
be applied to a partially replicated database which may not be a
valid database. Move the code for applying changesets and
comparing revision numbers into here, and add code for getting
uuids which simply returns "" if the database is too broken to
have a uuid associated with it. Update the replication code to
use DatabaseReplicator subclasses instead of Database classes
where necessary, to avoid failing if a partial database is
transmitted. Add additional checks to ensure that the UUID of a
replicated databse is equal to that sent in the replication
protocol message introducing a full database copy; if they
differ, a retry of the copy is needed, so ensure that the next
message sent is a new copy of the database.
Mon Dec 22 11:24:43 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* docs/replication.rst: Warning about a possible way to confuse the
replication process.
Sat Dec 20 14:00:34 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_percentages.cc: Update (C) too.
Sat Dec 20 13:51:35 GMT 2008 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: If we're using values for sorting and for
another purpose, cache the Document::Internal object from getting
the value for sorting like we do between other uses.
Sat Dec 20 13:09:13 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_percentages.cc: Make formatting of MyPostingSource code
more self-consistent. Remove a superfluous block scope. Wrap a
long comment.
Sat Dec 20 12:25:40 GMT 2008 Olly Betts <olly@survex.com>
* exception_data.pm: Build a hash mapping a class to a list of its
subclasses and export this as %subclasses.
Sat Dec 20 05:51:50 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Wrap a long line.
Sat Dec 20 05:28:57 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 6016".
Fri Dec 19 14:25:10 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 6015".
Fri Dec 19 14:07:52 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 6006".
Fri Dec 19 13:51:33 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 5919"
- code changes are in deleted code, so no actual code changes for
us.
Fri Dec 19 13:46:22 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 6008".
Fri Dec 19 11:15:04 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/api_replicate.cc: Fix comment describing test.
Thu Dec 18 23:38:50 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc: Tidy up
comment wrapping and indenting of code wrapped in try blocks by the
previous commit.
Thu Dec 18 14:26:30 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_database.cc,backends/chert/chert_table.cc,
backends/chert/chert_table.h,backends/flint/flint_database.cc,
backends/flint/flint_table.cc,backends/flint/flint_table.h:
Improve resilience to unexpected errors during commit. Firstly,
fix FlintTable and ChertTable to close the table if an error
occurs during commit - this avoids the table being left in an
inconsistent state (instead, the table is reopened in a
consistent state the next time it is used). Secondly, add a
"permanent" close state for tables (indicated by handle being set
to -2), which will raise an error if anything tries to do an
action which needs the table to be opened, and set the tables to
this state if we fail to recover the database after error in
commit(). This prevents further actions on the database if we
couldn't recover the state (eg, because we're out of disk space),
avoiding risk of corruption.
Thu Dec 18 01:28:06 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_database.cc,backends/chert/chert_database.h,
backends/flint/flint_database.cc,backends/flint/flint_database.h:
Improve the error reporting when modifications fail and we cannot
set the revision numbers in the table to consistent values, to
report the original error too.
Wed Dec 17 17:27:24 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc:
Fix construction of the error message when a base can't be
re-read: used to do pointer arithmetic by mistake - now does the
correct string concatenation.
Wed Dec 17 15:18:10 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_valuestream.cc: Skip valuestream3 on chert for now so that
snapshots and the tinderbox work again.
Wed Dec 17 15:17:07 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Need omassert.h for STATIC_ASSERT.
Wed Dec 17 10:45:45 GMT 2008 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,tests/api_nodb.cc: A NEAR of 2 OR subqueries
shouldn't throw AssertionError - instead throw UnimplementedError.
Addresses the worst aspect of bug#201, but this should really be
implemented.
Wed Dec 17 04:44:10 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_database.h:
Implement ChertWritableDatabase::open_value_list().
* tests/api_valuestream.cc: Add valueweightsource5 testcase which is a
regression test for bug#299 and also exercises the above method.
Tue Dec 16 13:30:47 GMT 2008 Olly Betts <olly@survex.com>
* common/expandweight.h,expand/expandweight.cc: Overhaul ExpandWeight
- now we use the "official" formula and don't return terms which it
would give a negative weight to (since that means they are expected
to be harmful not helfpul).
* tests/api_anydb.cc,tests/api_db.cc: Fix unwarranted assumptions in
existing testcases broken by this change.
Thu Dec 11 01:02:41 GMT 2008 Olly Betts <olly@survex.com>
* examples/delve.cc: Add missing "and" to --help output. Report
termfreq and collection freq for each term we're asked about.
Mon Dec 08 00:52:51 GMT 2008 Olly Betts <olly@survex.com>
* AUTHORS: Add Daniel Andersson for reporting the flintlock
permissions issue.
Sun Dec 07 22:50:32 GMT 2008 Olly Betts <olly@survex.com>
* api/sorter.cc,tests/api_sorting.cc: Fix an empty MultiValueSorter
not to SEGV/hang.
Fri Dec 05 21:08:08 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,tests/api_backend.cc: Use
"flintlock" rather than "chertlock" for the lockfile in chert.
The locking is compatible and this avoids the possibility of
creating a chert and flint database in the same directory (which
will result in one being corrupt since the Btree filenames overlap).
Thu Dec 04 09:00:04 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Create
the lockfile with permissions 0666 so that the umask is honoured
just like we do for the other files (previously we used 0600).
* tests/Makefile.am,tests/api_backend.cc: Add regression test
lockfileumask1.
Thu Dec 04 08:56:54 GMT 2008 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Use str.resize(0) instead of str = "".
Thu Dec 04 04:56:55 GMT 2008 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: No need to explicitly initialise a
std::string to "".
Thu Dec 04 04:55:47 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_db.cc: Prefer str.empty() to str == "".
Thu Dec 04 01:50:10 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Make helper function static. Use STATIC_ASSERT
to ensure a constant is coprime with 13.
Wed Dec 03 22:56:19 GMT 2008 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Fix API logging.
Wed Dec 03 03:11:45 GMT 2008 Olly Betts <olly@survex.com>
* INSTALL: Note that libuuid is required for Xapian 1.1.0 and higher.
Wed Dec 03 03:10:59 GMT 2008 Olly Betts <olly@survex.com>
* INSTALL: Remove ':' from the end of headings.
Mon Dec 01 08:59:04 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Explicitly give the commands to install the required
packages for developing on recent Debian or Ubuntu for added
convenience. Update the Debian/Ubuntu packages needed for
documentation to reflect the change from tetex to texlive. Fix
unfinished paragraph about requiring a newline at the end of a
source file and note that this is actually undefined behaviour in
C++.
Sun Nov 30 21:46:59 GMT 2008 Olly Betts <olly@survex.com>
* bin/,examples/quest.cc,tests/harness/testsuite.cc: Pull out lists of
short options next to list of long options to help make sure they
are kept in step. xapian-tcpsrv and xapian-progsrv now accept -w
as a short form of --writable, as their long option table had, but
their short option string didn't.
Sun Nov 30 20:44:48 GMT 2008 Olly Betts <olly@survex.com>
* docs/postingsource.rst: Wrap a long line. Note that the remote
backend isn't supported yet.
Wed Nov 19 11:36:00 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* docs/postingsource.rst: Make it clear that PostingSources must
always return documents in increasing document ID order.
Wed Nov 19 08:43:04 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/,examples/delve.cc,examples/quest.cc,tests/harness/testsuite.cc:
Test return type of gnu_getopt_long for being != -1, rather than
== 0, since there are a wide variety of return types other than 0
which may be returned in the successful case (with the builtin
implementation in common/getopt.cc, at least).
Tue Nov 18 23:22:09 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc: Change unknown "DATABASE" debug type to "DB".
Mon Nov 17 13:00:12 GMT 2008 Olly Betts <olly@survex.com>
* docs/queryparser.html: Add link to valueranges.html.
Fri Nov 14 22:23:10 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update revision we're current to.
Fri Nov 14 17:43:15 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_alldocsmodifiedpostlist.cc,
backends/chert/chert_modifiedpostlist.cc,
backends/flint/flint_modifiedpostlist.cc: Correct comments.
Fri Nov 14 17:38:33 GMT 2008 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Update comment about valgrind and C++
STL allocators.
Fri Nov 14 17:36:47 GMT 2008 Olly Betts <olly@survex.com>
* bin/,examples/delve.cc,examples/quest.cc,tests/harness/testsuite.cc:
Don't compare return value of gnu_getopt_long() with EOF - it's
documented to simply return -1 or 0, and EOF requires inclusion of
stdio.h.
Fri Nov 14 17:30:39 GMT 2008 Olly Betts <olly@survex.com>
* common/serialise-double.cc: Fix "#elif" with no argument to
"#else" - the former surprisingly compiles with most compilers, but
GCC 4.4 snapshots reject it.
Fri Nov 14 16:54:15 GMT 2008 Olly Betts <olly@survex.com>
* common/win32_uuid.cc: A few code clean-ups.
Fri Nov 14 13:09:16 GMT 2008 Olly Betts <olly@survex.com>
* common/Makefile.mk: Ship common/safeuuid.h to unbreak tarball
snapshot building.
Sun Nov 09 13:31:19 GMT 2008 Olly Betts <olly@survex.com>
* api/omquery.cc,api/omqueryinternal.cc,bin/xapian-tcpsrv.cc,
common/omenquireinternal.h,matcher/,net/remoteserver.cc:
Prefer "" to <> for including Xapian API headers from within the
library. Remove so unused xapian/enquire.h inclusions.
Fri Nov 07 12:50:22 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_version.cc,backends/chert/chert_version.h,
backends/flint/flint_version.cc,backends/flint/flint_version.h,
common/safeuuid.h,common/win32_uuid.cc,common/win32_uuid.h: Add
implementation of UUID functions for windows (using the built-in
UUID methods in the windows API). Fixes bug #303.
Sat Nov 01 01:47:44 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Sync with 1.0.9 release.
Fri Oct 31 18:55:03 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/database.h: Document XAPIAN_FLUSH_THRESHOLD
(bug#306).
Fri Oct 31 18:30:11 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: Fix whitespace inconsistency with omega's
configure.ac.
Fri Oct 31 10:51:06 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc,include/xapian/postingsource.h: Add a new
built-in posting source, FixedWeightSource, which returns every
document in the database, but with a fixed weight. In
particular, this is useful to add a constant weight to every item
in a subquery. Also, in ValueWeightPostingSource, refactor the
"last_docid" member to a bool "started", since this is all it's
used for.
* tests/api_db.cc: Add fixedweightsource1, to test FixedWeightSource.
Mon Oct 27 17:05:39 GMT 2008 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Skip test if the timer granularity is too
coarse in all cases.
Mon Oct 27 08:12:16 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_valuestream.cc: Disable valuestream1 for multi backends.
Sun Oct 26 00:30:54 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_valuelist.cc: Remove incorrect assertions.
Sat Oct 25 06:18:37 GMT 2008 Olly Betts <olly@survex.com>
* api/Makefile.mk: Fix typo so we once again ship editdistance.h and
maptermlist.h.
Thu Oct 23 17:34:13 GMT 2008 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Skip test if the timer granularity is too
coarse.
Tue Oct 21 05:00:59 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Sync with branches/1.0.
Tue Oct 21 02:09:18 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_valuestream.cc: Add feature test of ValueIterator::check().
Tue Oct 21 01:36:45 GMT 2008 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h: Prefer string() to "", slot
to valno, and not using else after return.
Tue Oct 21 01:32:37 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_anydb.cc,tests/api_db.cc: Remove '#include <iomanip>'
which aren't used.
Mon Oct 20 13:30:37 GMT 2008 Olly Betts <olly@survex.com>
* api/postingsource.cc,api/valueiterator.cc,
include/xapian/postingsource.h,include/xapian/valueiterator.h: Add
new API method ValueIterator::check() and use it in PostingIterator.
Mon Oct 20 12:28:16 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_valuestream.cc: Add test for skip_to() on valuestream
iterator.
Mon Oct 20 11:19:12 GMT 2008 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/api_valuestream.cc: Add a simple test of
valuestream iteration.
Mon Oct 20 11:01:26 GMT 2008 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/collate-test,tests/perftest/Makefile.mk:
Generate the header listing the collated tests so that we can avoid
updating its timestamp when the contents are unchanged, such as in
the common case where you modify tests but don't add, remove, or
change the conditions on any tests.
Mon Oct 20 10:01:56 GMT 2008 Olly Betts <olly@survex.com>
* examples/delve.cc: Use valuestream iterator to implement "-V<slot>".
Mon Oct 20 02:19:09 GMT 2008 Olly Betts <olly@survex.com>
* backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
Remove unused members of MultiPostList: tname, collfreq_initialised,
collfreq, and termweight.
Sun Oct 19 14:01:15 GMT 2008 Olly Betts <olly@survex.com>
* api/postingsource.cc,include/xapian/postingsource.h: Update
ValueWeightPostingSource to use a value stream iterator.
Sun Oct 19 13:53:51 GMT 2008 Olly Betts <olly@survex.com>
* backends/database.cc: Make use of SlowValueList by default.
Sun Oct 19 13:47:10 GMT 2008 Olly Betts <olly@survex.com>
* api/documentvaluelist.cc,api/documentvaluelist.h: Fix so that a
DocumentValueList starts before the first value.
Sun Oct 19 13:09:39 GMT 2008 Olly Betts <olly@survex.com>
* api/omdatabase.cc,api/omdocument.cc: Use ValueIterator() instead of
ValueIterator(NULL).
Sun Oct 19 11:15:15 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Sat Oct 18 01:31:25 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Fri Oct 17 15:54:57 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-compact.cc: Check that pq is not empty before calling
top() on it - if it's empty, we only have one database, so we can
use the code path which doesn't worry about merging tags. Fixes
bug #305.
Fri Oct 17 14:22:18 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_valuelist.cc: Fix ChertValueList to start on
the right key.
Fri Oct 17 14:14:14 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/database.h,include/xapian/document.h: Inline
ValueIterator end iterator as ValueIterator() rather than
ValueIterator(NULL).
* api/valueiterator.cc: Need to call next() on a ValueList to get it
to the first position, so do this in ValueIterator's constructor.
* api/valueiterator.cc,include/xapian/valueiterator.h: Add
ValueIterator::get_docid() method.
Fri Oct 17 13:53:26 GMT 2008 Olly Betts <olly@survex.com>
* backends/slowvaluelist.cc,backends/slowvaluelist.h: Add missing
SlowValueList::get_valueno() method.
Fri Oct 17 13:16:01 GMT 2008 Olly Betts <olly@survex.com>
* api/omdatabase.cc,include/xapian/database.h: Add
Database::valuestream_begin() and Database::valuestream_end() to
allow iterating over the values in a given slot for each document
in the database (untested so far).
Thu Oct 16 13:20:26 GMT 2008 Olly Betts <olly@survex.com>
* backends/multi/multi_postlist.cc: Remove unused '#include <list>'
and uninformative comment.
Thu Oct 16 12:47:00 GMT 2008 Olly Betts <olly@survex.com>
* api/omdocument.cc,include/xapian/document.h: Inline
Xapian::Document::values_end() into user code.
Thu Oct 16 12:26:29 GMT 2008 Olly Betts <olly@survex.com>
* api/,backends/chert/chert_valuelist.cc,
backends/chert/chert_valuelist.h,common/document.h,
common/valuelist.h,include/Makefile.mk,include/xapian/derefwrapper.h,
include/xapian/termiterator.h,include/xapian/valueiterator.h:
Reimplement ValueIterator to have reference counted internals. One
benefit is that Document::Internal no longer need its value_nos map
member.
Thu Oct 16 11:22:13 GMT 2008 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc: Fix incorrect method name in
debug messages.
Thu Oct 16 01:34:07 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Note preference for @ rather than \ to introduce doxygen
commands.
Thu Oct 16 01:21:19 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Expand section on public/protected/private a little.
Wed Oct 15 11:34:15 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/database.h: Use std::string() instead of "" as the
default value for std::string method parameters.
Wed Oct 15 03:20:01 GMT 2008 Olly Betts <olly@survex.com>
* backends/Makefile.mk,backends/slowvaluelist.cc,
backends/slowvaluelist.h: Support for (slowly) iterating along a
value stream for backends which don't support streamed values
internally (currently unused).
Tue Oct 14 11:43:42 GMT 2008 Olly Betts <olly@survex.com>
* api/postingsource.cc,backends/inmemory/inmemory_database.cc,
matcher/multimatch.cc: Database::get_document_lazily() now returns
NULL if the document isn't found for an inmemory database.
* include/xapian/database.h: Document the return value better.
Tue Oct 14 03:20:38 GMT 2008 Olly Betts <olly@survex.com>
* api/omdatabase.cc,api/postingsource.cc,include/xapian/database.h,
matcher/multimatch.cc: Add internal
Xapian::Database::get_document_lazily() method and use it in the
matcher and Xapian::PostingSource classes to avoid repeating the
same code lots of times.
Mon Oct 13 23:38:34 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Rename "Miscellaneous Portability Issues" to "C++
Portability Issues", and add a subsection of that for "Miscellaneous
Portability Issues" with a new note about needing to terminate the
last line of a source file, and a new subsection heading "Header
Portability Issues" for all the header-related stuff.
Sat Oct 11 12:19:38 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: If the timer for the first test for bigoaddvalue
reports 0.0 seconds, skip the test as the timer doesn't have fine
enough granularity for this test to be useful (bug#300).
Fri Oct 10 20:40:14 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Reuse XAPIAN_BIN_PATH to avoid hardcoding more
paths, and so this works in a debug build too.
Fri Oct 10 17:52:53 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/api_wrdb.cc: Patch to use a different path in win32 build
to match the different place that the compiled xapian-check is
placed in. Should fix bug #301.
Thu Oct 09 05:20:32 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Change -Wstrict-overflow level to 1 - even level 2
causes a few warnings (notably in chert_table.cc) to appear with
GCC 4.3 which are unreasonably difficult to avoid.
Thu Oct 09 05:04:49 GMT 2008 Olly Betts <olly@survex.com>
* HACKING,configure.ac: Raise autoconf requirement to 2.63.
Wed Oct 08 14:52:03 GMT 2008 Olly Betts <olly@survex.com>
* docs/valueranges.rst: Fix typos in example code.
* docs/valueranges.rst,tests/queryparsertest.cc: Drop superfluous
empty destructor from ValueRangeProcessor subclass.
Wed Oct 08 14:00:04 GMT 2008 Olly Betts <olly@survex.com>
* common/valuelist.h: Add missing get_docid() method.
Wed Oct 08 12:11:57 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Wed Oct 08 12:00:39 GMT 2008 Olly Betts <olly@survex.com>
* backends/Makefile.mk,backends/chert/,backends/database.cc,
backends/valuelist.cc,common/Makefile.mk,common/database.h,
common/valuelist.h,include/xapian/valueiterator.h: The start of
support for iterating along a value stream (currently unused).
Tue Oct 07 10:19:48 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: Disable -Wconversion for now - it's not useful for
older GCC and is buggy in GCC 4.3.
Tue Oct 07 04:53:41 GMT 2008 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.h: Query::MatchAll no longer gives match
results ranked by increasing document length.
* tests/api_db.cc: Extend matchall1 to be a regression test for this.
Tue Oct 07 01:04:51 GMT 2008 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Rewrite comment explaining the excess
precision fix. Drop unnecessary brackets from return to minimise
the diff.
Mon Oct 06 07:24:40 GMT 2008 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Change the excess precision fix to pass
both values through "volatile double" rather than "float" on
platforms where this matters since the former gives better generated
code as well as more consistent results with other platforms.
Mon Oct 06 07:24:07 GMT 2008 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Fix comment typo.
Mon Oct 06 02:46:39 GMT 2008 Olly Betts <olly@survex.com>
* api/editdistance.cc,api/editdistance.h,api/omdatabase.cc: Pass the
largest edit distance we currently care about into the edit distance
algorithm so it can terminate early once it knows the edit distance
exceeds this. This shortcut is used quite a lot, but there's no
measurable speed-up in tests on the real world data I have to hand.
Sun Oct 05 12:34:09 GMT 2008 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Adjust percent_factor instead of min_weight
so that we don't miss some cases, and make the adjustment actually
correspond with the adjustment in omenquire.cc.
Wed Oct 01 14:11:49 GMT 2008 Olly Betts <olly@survex.com>
* backends/alltermslist.cc,common/alltermslist.h: We don't need an
explicit virtual dtor for AllTermsList as it is empty and
AllTermsList inherits from TermList which has one.
Wed Oct 01 13:21:22 GMT 2008 Olly Betts <olly@survex.com>
* common/postlist.h,common/termlist.h: Fix comment typo.
Wed Oct 01 00:12:02 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Add a comment for the previous fix.
Tue Sep 30 22:41:39 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-compact.cc: Fix bug: if there are both valuestats and
metadata, don't overwrite the last metadata value with the first
valuestats tag.
Tue Sep 30 20:31:34 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Set -Wstrict-overflow to 2 instead of 5, to avoid
unreasonable warnings under GCC 4.3.
Tue Sep 30 09:45:22 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc: Add missing include, to compile on GCC 4.3.0.
Mon Sep 29 13:06:42 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Mon Sep 29 05:04:57 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_version.cc: Add VERSIONFILE_SIZE_LITERAL and
use CompileTimeAssert() to ensure it matches the expression in
VERSIONFILE_SIZE. It's very rare for the size to change (it's
happened once ever) and allows us to build the error string
literally at compile time.
Sun Sep 28 15:13:11 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_values.cc: Fix bug in lazy update - ensure
that the document has loaded its values before deleting the old
one (previously, there was an assertion to this effect, but it
didn't actually compile, and was also incorrect).
* tests/api_wrdb.cc: Check that replacing a document with itself
doesn't lose the values - regression test for the bug fixed by
this commit.
Sun Sep 28 14:04:01 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_values.cc: Fix bug in value updating -
modifyvalues1 now passes for chert.
Sun Sep 28 12:15:14 GMT 2008 Olly Betts <olly@survex.com>
* tests/collate-test: Avoid perl warning when generating files which
don't already exist.
Sat Sep 27 10:36:09 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/api_wrdb.cc: Add test "modifyvalues1" - regression test for
a bug in the streaming values implementation, and also a fairly
thorough test of adding and modifying values in databases.
Fri Sep 26 19:12:23 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc: Fix warning with gcc 4.2 about possible signed
overflow, by using an unsigned type for the total.
Fri Sep 26 15:48:39 GMT 2008 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Fixed version of: Avoid the relatively expensive
edit distance computation for a candidate spelling correction when
we can reject the candidate as less good than one we've already seen
by looking at the character frequency histograms. In a test on
real-world data, this gave an 15% speed-up in queryparsing time
with FLAG_SPELLING_CORRECTION set. The cheap check rejects 90%
of the words it handles (without the cheap check, the edit distance
check rejects 92%).
Fri Sep 26 14:40:50 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Check the structure of the value stream chunks.
Fri Sep 26 12:21:32 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_spelling.cc: Add a regression test for the bug my recently
added and reverted spelling optimisation introduced.
Fri Sep 26 11:55:18 GMT 2008 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/api_spelling.cc,tests/api_wrdb.cc: Split the
spelling tests out into a separate file.
Fri Sep 26 11:53:45 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_unicode.cc: Capitalise brief file description.
Fri Sep 26 11:31:46 GMT 2008 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_document.cc,
backends/inmemory/inmemory_document.h: New simpler InMemoryDocument
class with slightly reduced memory footprint, based on
RemoteDocument class.
Fri Sep 26 10:36:02 GMT 2008 Olly Betts <olly@survex.com>
* backends/remote/remote-document.cc,backends/remote/remote-document.h,
common/document.h: Add new files for RemoteDocument class missed
from recent commit. Pass parameter to set_all_values() by non-const
reference so we can just efficiently swap() the value maps rather
than copying.
Fri Sep 26 10:31:21 GMT 2008 Olly Betts <olly@survex.com>
* api/omdocument.cc,common/document.h: Remove unused method
Xapian::Document::Index::get_all_values().
Fri Sep 26 10:03:17 GMT 2008 Olly Betts <olly@survex.com>
* backends/remote/,common/document.h: Replace NetDocument with a new
simpler RemoteDocument class which just sets the values and data in
its Document::Internal base class.
Fri Sep 26 06:21:08 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_document.cc,
backends/chert/chert_document.h,common/document.h: Overhaul
ChertDocument: Avoid having a reference-counted pointer to the
database in the subclass as well as the one now in the base class.
Also check the lazy flag before we create a ChertDocument object to
avoid a memory allocation in that code path. And make the
now-simple constructor inline-able.
Thu Sep 25 17:38:37 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* Merge lazyupdate branch:
* api/omdocument.cc,backends/chert/chert_database.cc,
backends/chert/chert_database.h,backends/chert/chert_values.cc,
backends/database.cc,common/database.h,common/document.h: Add a
shortcut for calling replace_document() with a document which was
just read from the database. If the document terms were never
accessed, don't bother updating the termlist, postings and
position lists. If the data was never accessed, don't bother
updating the data. If the values were never accessed, don't
bother updating them. Only fires if we know that the document
hasn't been modified (or deleted) since it was read from the
database, to ensure that the lazy access of the data doesn't have
a visible effect - we enforce this by keeping track of the last
document read with open_document(), and only using the shortcut
if this is the document passed to replace_document, and that
document ID hasn't been passed to replace_document or
delete_document since.
Add a method Database::Internal::invalidate_doc_object() which is
called from the destructor of a document, so that we can reset
the pointer to modify_shortcut_document in ChertWritableDatabase
when this happens.
Document::Internal now keeps a ref-count pointer to the database,
to ensure that the database is valid when invalidate_doc_object()
is called on it.
Thu Sep 25 17:35:07 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* Forward-port from branches/lazyupdate:
* tests/api_wrdb.cc: Extend deldoc5 slightly, to check that the
DocNotFoundError for a deleted document is raised before the
flush, as well as after. Also, test a few more cases which are
relevant in the lazyupdate scenario.
Thu Sep 25 17:33:21 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* Forward-port from branches/lazyupdate:
* backends/chert/chert_document.cc,backends/chert/chert_document.h:
Check for existence of a document when opening it by searching
for the document length entry, rather than by reading the record
for the document. Probably slightly slower if the record is
going to be accessed anyway, but much faster if it isn't (though
benchmarking of this is needed).
Thu Sep 25 14:27:07 GMT 2008 Olly Betts <olly@survex.com>
* Merge valuestreams branch:
* backends/chert/,bin/xapian-check.cc,bin/xapian-compact.cc,
docs/admin_notes.rst: Change the chert backend to store values in a
chunked stream for each value slot to make access more efficient.
The chunked streams and value stats are now stored in the postlist
table while the list of used value slots for each document is stored
in the termlist table, so we no longer need a special table for
values.
* bin/xapian-check.cc,bin/xapian-check-flint.cc: Don't stop checking
a table after an error in certain cases - instead increment the
error counter and try to continue checking from the next item.
Thu Sep 25 13:50:15 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/queryoptimiser.cc,tests/api_anydb.cc: Apply fix for
platforms with excess precision - this fixes a potential segfault
on x86 architecture when doing OP_ELITE_SET queries. Also, add a
regression test.
Thu Sep 25 03:38:24 GMT 2008 Olly Betts <olly@survex.com>
* examples/copydatabase.cc: Also copy user metadata.
Wed Sep 24 17:27:33 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc: Back out, for now, Olly's change from
yesterday to avoid some edit distance checks; counting the
frequency of letters doesn't take into account the number of
substitutions, so spelling corrections which involve
substitutions are missed.
Wed Sep 24 12:48:39 GMT 2008 Olly Betts <olly@survex.com>
* unicode/tclUniData.cc: Update to Unicode 5.1 (bug#265).
* tests/api_unicode.cc: Add tests for some of the changes
in Unicode 5.1.
Tue Sep 23 14:58:54 GMT 2008 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Avoid the relatively expensive edit distance
computation for a candidate spelling correction when we can reject
the candidate as less good than one we've already seen by looking
at the character frequency histograms.
Mon Sep 22 09:21:55 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* Forward-port from branches/lazyupdate:
* backends/chert/chert_postlist.cc: Fix return value of jump_to()
to be true only if the exact item specified was found in the
doclen list (previously also returned true if an item following
the item being searched for was found in the chunk). Note that
there is no test for this fix included in this forward-port, but
an implicit test is included in the lazyupdate branch, and will
be here when that branch is merged to trunk.
Mon Sep 22 07:58:06 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Mention that setting XAPIAN_DEBUG_LOG to '-' has a
special effect.
Mon Sep 22 06:27:23 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* docs/remote_protocol.html: Update documentation of remote
protocol to mention UUID being passed in REPLY_GREETING and
REPLY_UPDATE (added in revision [11369]).
Thu Sep 18 11:52:05 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Fix cursordelbug1 to hopefully work on Microsoft
Windows.
Thu Sep 18 11:50:04 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.cc,backends/chert/chert_table.cc,
backends/chert/chert_table.h: More assertions and improved debug
logging coverage. Use rare() to mark a couple of checks which
almost always have the same result. Make an assertion about the
level of a Btree block into an always-compiled-in check which throws
an exception, as this isn't a sanity check of internal state.
Thu Sep 18 05:26:27 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_postlist.cc,backends/flint/flint_postlist.cc:
Fix comment describing format of postlist chunk (collection freq
was missing).
Wed Sep 17 12:38:51 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Fix typos in XAPIAN_DEBUG_FLAGS documentation.
Sat Sep 13 11:14:02 GMT 2008 Olly Betts <olly@survex.com>
* HACKING,configure.ac: Upgrade libtool requirement to 2.2.6a.
Fri Sep 05 11:40:55 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/api_replicate.cc: Test that the UUID of a replica is equal
to the UUID of the original database.
Fri Sep 05 09:38:35 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/database.h,api/omdatabase.cc: Add
Database.get_uuid() which returns a unique identifier for the
database.
* tests/api_anydb.cc: Add test uuid1 to test basic get_uuid()
behaviour.
* common/database.h: Extend documentation comment for get_uuid() a
bit.
* backends/remote/remote-database.cc,common/remote-database.h,
net/remoteserver.cc: Add support for get_uuid() to remote
databases.
Thu Sep 04 11:37:54 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am: Remove accidentally committed reference to
apitest_sortconsist.txt, which only exists in my local checkout
and in a patch in ticket #216.
Thu Sep 04 04:39:32 GMT 2008 Olly Betts <olly@survex.com>
* HACKING,configure.ac: We now hard require autoconf 2.62, so it's
safe to use AC_TYPE_SSIZE_T. (bug#135)
Thu Sep 04 04:26:59 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: Set version to 1.1.0.
Thu Sep 04 03:32:06 GMT 2008 Olly Betts <olly@survex.com>
* AUTHORS,NEWS,configure.ac: Sync with 1.0.8.
Wed Sep 03 15:23:54 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am,tests/api_percentages.cc: Add new test file for
tests related to percentage weights (there are a few around which
could be moved here, and there's another one in the patch in
ticket #216). Add test in this file which uses a PostingSource
with carefully constructed weights to check the rounding
behaviour for percentage cutoffs.
Wed Sep 03 07:58:29 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: Adjust min_weight values calculated for
percent_cutoff in the same manner as in omenquire.cc, to allow
for excess precision in the same way.
Wed Sep 03 07:15:49 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_version.cc: Display numerical value of
correct size of chert version file in error message if size is
incorrect, rather than a complicated expression giving the
correct size.
Tue Sep 02 10:41:46 GMT 2008 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Remove FIXME for pushing check_at_least
handling into the remote backend, which was done for 1.0.2.
Tue Sep 02 06:48:50 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-inspect.cc: Show the help message on start-up. Correct
the alias for next from ' ' to ''. Avoid reading outside of input
string when it is empty. Bug#286.
Tue Sep 02 04:19:34 GMT 2008 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Handle the new supplemental stemming data.
Tue Sep 02 03:05:10 GMT 2008 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Update for new xapian-data directory structure.
Tue Aug 26 09:26:49 GMT 2008 Olly Betts <olly@survex.com>
* common/debuglog.h: Handle logging from ctor, dtor, and
void-returning functions/methods with a separate class
(DebugLogFuncVoid). Fix outdent handling for non-logged message
types. Fix detection of active exceptions to check if the exception
was already active when we entered the current function. This
probably means that "RETURN_VOID" is no longer needed, so comment
it out.
Tue Aug 26 07:34:16 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Document explicitly that XAPIAN_DEBUG_FLAGS=- gives you all
debug messages.
Tue Aug 26 00:57:32 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Fix reversed check for whether a table is in a
flint or chert database.
Mon Aug 25 12:03:36 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_termlisttable.cc: Remove FIXME about dropping
something if we make an incompatible database version bump - that's
not going to happen now for flint. Avoid packing doclen for an
empty termlist. Add explicit cast for char for prev_term.size().
Sun Aug 24 11:42:21 GMT 2008 Olly Betts <olly@survex.com>
* common/Makefile.mk: Fix build with --enable-log=profile.
Sun Aug 24 12:41:22 BST 2008 Olly Betts <olly@survex.com>
* HACKING: Add a bit of discussion of --enable-log=profile. Tweak
formatting in one place and wording in another.
Sat Aug 23 00:48:40 GMT 2008 Olly Betts <olly@survex.com>
* tests/collate-test: Only update files which have changed to avoid
rebuilding all apitest's source files when only one has changed.
Fri Aug 22 01:02:57 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 5571"
(no code changes in our modified version).
Fri Aug 22 01:00:15 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Fix comment typo.
Fri Aug 22 00:55:26 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 5564".
Fri Aug 22 00:44:14 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
"Check-in Number: 5488" and "5563".
* queryparser/queryparser.lt: Fix compilation for previous merge
(I fixed it in the generated file before!)
Fri Aug 22 00:07:22 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 5472".
Thu Aug 21 04:15:41 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: Remove code which checks for --enable-debug and
--enable-debug-verbose (deprecated since 1.0.0) and gives an error
pointing to the replacements.
* docs/deprecation.rst: Document the replacements here.
Thu Aug 21 00:57:52 GMT 2008 Olly Betts <olly@survex.com>
* common/omdebug.h: Remove DEBUGLINE completely.
* backends/flint/flint_table.cc,backends/inmemory/inmemory_database.cc,
queryparser/queryparser.lt: Replace remaining DEBUGLINE uses.
* backends/inmemory/inmemory_database.cc: Don't need <list>.
Thu Aug 21 00:37:08 GMT 2008 Olly Betts <olly@survex.com>
* common/debuglog.h,common/omdebug.h: Define LOGLINE, etc to no-op
versions when XAPIAN_DEBUG_VERBOSE isn't defined.
* api/,backends/chert/,backends/flint/,
backends/inmemory/inmemory_database.cc,
backends/multi/multi_postlist.cc,backends/multi/multi_termlist.cc,
expand/esetinternal.cc,expand/expandweight.cc,matcher/,
net/remoteconnection.cc: Use LOGLINE or LOGVALUE instead of
DEBUGLINE.
Wed Aug 20 13:33:56 GMT 2008 Olly Betts <olly@survex.com>
* common/debuglog.h: Don't need omtime.h.
Wed Aug 20 06:11:31 GMT 2008 Olly Betts <olly@survex.com>
* examples/quest.cc: Fix to catch QueryParserError instead of const
char * which Xapian < 1.0.0 threw instead.
Wed Aug 20 05:50:26 GMT 2008 Olly Betts <olly@survex.com>
* docs/valueranges.rst: Expand on some sections.
Wed Aug 20 04:43:07 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Clarify in comments that this affected 1.0.7.
Wed Aug 20 04:33:22 GMT 2008 Olly Betts <olly@survex.com>
* api/omenquire.cc: Simplify RSet::remove_document() and
RSet::contains() a little. Fix output of RSet::get_description().
* tests/api_nodb.cc: Add regression test rset4 for
RSet::get_description() fix.
Wed Aug 20 02:45:04 GMT 2008 Olly Betts <olly@survex.com>
* common/omdebug.h: Remove DebugMsg() macro which is no longer used.
Tue Aug 12 05:03:34 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc,backends/flint/flint_table.h:
Backport elimination of find_tag() to flint.
Tue Aug 12 04:10:41 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc,backends/chert/chert_table.h:
ChertTable::find_tag() is only used by ChertTable::get_exact_entry()
so remove the former folding its code into the latter.
Mon Aug 11 03:06:10 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_spelling.h,backends/chert/chert_synonym.h:
Remove random closing bracket from a couple of comments.
Mon Aug 11 03:03:19 GMT 2008 Olly Betts <olly@survex.com>
* api/postingsource.cc: Always initialise max_value in the constructor
body for consistency.
Sat Aug 09 09:56:06 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_valuestats.cc: Add valuestats4 as a regression test for
the previous fix.
Sat Aug 09 06:10:49 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_database.h:
Write cached valuestats changes to disk when we automatically flush
changes due to the number of documents indexed.
Wed Aug 06 11:27:29 GMT 2008 Olly Betts <olly@survex.com>
* api/omdocument.cc,backends/chert/chert_document.cc,
backends/chert/chert_document.h,backends/flint/flint_document.cc,
backends/flint/flint_document.h,
backends/inmemory/inmemory_document.cc,
backends/inmemory/inmemory_document.h,
backends/remote/net_document.cc,backends/remote/net_document.h,
common/document.h: Change do_get_all_values() to pass a reference
to the std::map to return the result in rather than returning the
std::map.
Wed Aug 06 07:39:08 GMT 2008 Olly Betts <olly@survex.com>
* docs/replication.rst: Adding missing (C) for new section addded
recently.
Wed Aug 06 06:27:59 GMT 2008 Olly Betts <olly@survex.com>
* backends/alltermslist.cc,backends/chert/,backends/flint/,
backends/inmemory/inmemory_alltermslist.cc,
backends/inmemory/inmemory_alltermslist.h,
backends/multi/multi_alltermslist.cc,common/alltermslist.h,
common/multialltermslist.h: Add a default "not implemented"
implementation of AllTermsList::get_approx_size() and remove the
"not implemented" versions in all the subclasses. Remove empty
destructors for ChertSpellingTermList, and FlintSpellingTermList.
* api/maptermlist.h,api/omdocument.cc: MapTermList::get_approx_size()
should never be used, so make it "Assert(false); return 0;".
Wed Aug 06 02:24:48 GMT 2008 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/multi/multi_alltermslist.cc,
common/multialltermslist.h: Reimplement MultiAllTermsList to use a
heap rather than linearly scanning - operations during iteration
should now be O(log(n)) rather than O(n) where n is the number of
databases.
Tue Aug 05 23:50:19 GMT 2008 Olly Betts <olly@survex.com>
* tests/Makefile.am: Fix "make clean" to remove cached databases again
and "make check" to remove cached databases like the previous change
aimed to do.
Tue Aug 05 23:48:52 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_db.cc: Use TEST_EQUAL(a, b) rather than TEST(a == b).
Tue Aug 05 12:44:58 GMT 2008 Olly Betts <olly@survex.com>
* common/alltermslist.h: Fix parameter name in doxygen comment.
Tue Aug 05 06:28:15 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc:
Don't generate a changeset file for the first revision of a database
(since we might as well just send the whole database) - addresses
part of bug#278. Clean up exceptions to pass errno in the errno
parameter rather than incorporating strerror(errno) in the message
parameter.
Tue Aug 05 06:00:11 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: Remove "sleep(1);" from testcase replicate1
which is no longer required now we generate proper UUIDs.
Tue Aug 05 03:07:11 GMT 2008 Olly Betts <olly@survex.com>
* api/replication.cc,include/xapian/replication.h: Remove
DatabaseReplica::get_parameter() and set_parameter() as they're no
longer used for storing the database UUID, and Richard said the
thinking behind wanting them was "flawed".
Tue Aug 05 02:03:24 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_version.cc: Comment tweak.
Tue Aug 05 02:02:29 GMT 2008 Olly Betts <olly@survex.com>
* api/replication.cc,backends/flint/flint_database.cc,common/utils.cc,
common/utils.h: Use the UUID stored by the backend rather than
storing it ourselves as a database replica parameter.
Mon Aug 04 14:58:21 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_version.cc,
backends/flint/flint_version.h: Generate a UUID when a new flint
database is created, and lazily generate one for existing flint
databases which don't have one. Store the UUID in a new "uuid"
file in the database directory to avoid having to change the
flint database format incompatibly.
Mon Aug 04 14:13:53 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_version.cc,
backends/chert/chert_version.h,configure.ac: Generate a UUID when
a chert database is created, and store it in the version file.
Mon Aug 04 12:16:54 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_version.cc: Make exception messages more
consistent.
Mon Aug 04 12:15:14 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_version.cc,
backends/chert/chert_version.h: Remove the code to handle upgrading
flint versions >= 200704230 and < 200709120 as it's just dead code
for chert.
Sun Aug 03 14:34:31 GMT 2008 Olly Betts <olly@survex.com>
* api/replication.cc: Track the replica numbers using an int rather
than two strings. Eliminate two racey uses of file_exists().
Sun Aug 03 11:37:06 GMT 2008 Olly Betts <olly@survex.com>
* docs/replication.rst: Add section on backend support. Make FIXME a
comment. Fix erroneous reference to '"-h" parameter'.
Sun Aug 03 11:28:27 GMT 2008 Olly Betts <olly@survex.com>
* api/replication.cc,tests/harness/testrunner.cc: Make replication
work for the chert backend.
Sat Aug 02 16:47:04 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/enquire.h: Correct documentation comment (iterator
doesn't return terms, it returns mset items).
Sat Aug 02 14:16:24 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* docs/admin_notes.rst: Fix a typo.
Sat Aug 02 14:06:37 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc:
Fix comment typo in previous commit.
Sat Aug 02 13:04:05 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc: Fix
FlintCursor::del() and ChertCursor::del() to leave the cursor on the
next key when iterating over the unflushed revision (previously the
cursor would end up an extra key along in this case). (Bug#287)
* tests/api_wrdb.cc: Add regression test cursordelbug1.
Sat Aug 02 05:09:38 GMT 2008 Olly Betts <olly@survex.com>
* api/replication.cc,common/utils.cc,common/utils.h: Change
removedir() to just return if passed a non-existent path and
document this. Make use of this to avoid having to call
dir_exists() before remove_dir().
Sat Aug 02 04:43:45 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_db.cc,tests/apitest.cc: Make use of new
BackendManager::get_database_path() to eliminate knowledge of
BackendManagerFlint's implementation from test stubdb1. Put the
stubdb files in a .stub subdirectory and don't remove them after
each test to aid debugging failing tests. Also now run stubdb tests
under chert and multi backends. Add more stubdb tests for the
recently added features.
Sat Aug 02 04:39:08 GMT 2008 Olly Betts <olly@survex.com>
* tests/harness/: Adjust the BackendManager interface to reduce code
duplication in subclasses - for backends where the concept of a
path to the database makes sense, we now support a
get_database_path() method and use this in the default
implementation of get_database() in the base class.
Sat Aug 02 04:36:48 GMT 2008 Olly Betts <olly@survex.com>
* tests/apitest.h: Use std::string() in preference to "".
Sat Aug 02 04:35:13 GMT 2008 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: Fix handling of new "inmemory" type in stub
databases.
Sat Aug 02 01:49:35 GMT 2008 Olly Betts <olly@survex.com>
* tests/Makefile.am: Remove the cached test databases in before
running the testsuite by making check-local do the same as
clean-local.
Sat Aug 02 01:42:36 GMT 2008 Olly Betts <olly@survex.com>
* backends/dbfactory.cc: Add support for "inmemory" to stub database
files (it's useful now they can be writable). Don't just ignore
lines with no spaces in in stub database files.
Thu Jul 31 13:13:30 GMT 2008 Olly Betts <olly@survex.com>
* backends/Makefile.mk,backends/database.cc,backends/dbfactory.cc,
common/database.h,include/xapian/dbfactory.h: Add new
Auto::open_stub() overload which opens a stub database file
containing a single entry as a WritableDatabase. Move the
non-remote database factory API functions from backends/database.cc
to new file backends/dbfactory.cc, leaving the former solely for
methods of Database::Internal. A stub database file is now allowed
to contain no database entries, which results in an empty Database
object (this avoids user code having to special case to handle "0 or
more" databases).
* tests/api_nodb.cc: Tidy up #include directives. Enhance nosuchdb1
to check that we get a reasonable error message - previously we
got "Couldn't detect type of database".
* include/xapian/dbfactory.h: Improve doxygen comment for
InMemory::open().
Thu Jul 31 09:36:41 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_replicate.cc: This is a new file, so use <cstdlib> rather
than <stdlib.h>.
Wed Jul 30 23:10:19 GMT 2008 Olly Betts <olly@survex.com>
* backends/database.cc: Bad lines in a stub file were being ignored
after we'd seen a good entry.
* tests/api_db.cc: Add regression test.
Wed Jul 30 14:42:04 GMT 2008 Olly Betts <olly@survex.com>
* generate-exceptions.in: Use std::string() in preference to "".
Tue Jul 29 23:55:21 GMT 2008 Olly Betts <olly@survex.com>
* AUTHORS: Add Henrik Brix Andersen.
Tue Jul 22 06:01:44 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc,backends/flint/flint_table.h:
Eliminate other_base_letter member of FlintTable - its value can
always be easily determined from base_letter.
Mon Jul 21 12:33:54 GMT 2008 Olly Betts <olly@survex.com>
* xapian-config.in: Add bug report URL to xapian-config --help output.
Mon Jul 21 11:55:18 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: Put the bug report URL as the third parameter to
AC_INIT. Add proper m4 quoting in a few places (nowhere that
should actually change behaviour).
Mon Jul 21 01:03:12 GMT 2008 Olly Betts <olly@survex.com>
* tests/apitest.cc,tests/harness/testsuite.cc,
tests/harness/testsuite.h: Report subtotals per backend, rather than
per testgroup per backend to make the output much clearer to scan.
Mon Jul 21 00:36:07 GMT 2008 Olly Betts <olly@survex.com>
* tests/apitest.cc: Use startswith().
Sun Jul 20 14:16:18 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/testsuite.h: Add missing "iomanip" header needed
for setprecision calls.
Sun Jul 20 11:35:35 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/enquire.h,include/xapian/matchspy.h,
include/xapian/valueiterator.h: Remove explicit empty non-virtual
destructors since the compiler will create them by default anyway.
Sun Jul 20 10:18:52 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Sun Jul 20 10:09:36 GMT 2008 Olly Betts <olly@survex.com>
* Forward-port change from branches/1.0:
* api/omenquire.cc: Fix percentage calculation to cope with excess
precision on x86. Fix method name for convert_to_percent_internal
in debug logging.
Sun Jul 20 09:13:32 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/,bin/xapian-check-flint.cc,bin/xapian-check-flint.h,
bin/xapian-compact.cc: Store the tablename in FlintTable as a const
char * - it's a constant string and std::string adds a needless
space overhead.
Sun Jul 20 09:10:49 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Follow-on fix for last change - we need to use
strcmp() to compare C strings.
Sun Jul 20 07:09:38 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/,bin/xapian-check.cc: Store the tablename in
ChertTable as a const char * - it's a constant string and
std::string adds a needless space overhead.
Sat Jul 19 14:19:58 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_values.cc,
backends/chert/chert_values.h: Fix WritableDatabase::add_document()
and replace_document() not to be O(n*n) in the number of values in
the new document.
* backends/flint/flint_database.cc,backends/flint/flint_values.cc,
backends/flint/flint_values.h: Backport fix to flint.
* tests/api_wrdb.cc: Add testcase bigoaddvalue to make sure we don't
regress to O(n*n) (or worse!)
Fri Jul 18 13:24:43 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Rewrite lazytablebug1 testcase to avoid having
to run xapian-compact.
Fri Jul 18 11:59:42 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc: Fix handling of a table created
lazily after the database has had commits, and which is then
cursored while still in sequential mode.
* backends/flint/flint_table.cc: Backport fix to flint.
* tests/api_wrdb.cc: Add testcase lazytablebug1.
Fri Jul 18 02:52:55 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Enable test crashrecovery1 for chert. Finish off
unfinished comment.
Fri Jul 18 02:38:22 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc,tests/harness/testrunner.cc,
tests/harness/testrunner.h: Add "synonyms" test backend property
and use it to decide where to run synonym tests so they get run on
chert too. Move virtual TestRunner destructor out of the header.
Don't skip all the spelling tests on chert.
Fri Jul 18 00:56:17 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Eliminate literal top-bit-set characters.
Fri Jul 18 00:40:06 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_values.cc: Kill superfluous else tokens.
Thu Jul 17 13:00:55 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_table.cc,backends/chert/chert_table.h:
Eliminate other_base_letter member of ChertTable - its value can
always be easily determined from base_letter.
Thu Jul 17 12:24:19 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc: Add space after catch for
consistency.
Thu Jul 17 11:51:57 GMT 2008 Olly Betts <olly@survex.com>
* examples/copydatabase.cc: Use C++ forms of C headers. Only treat
'\' as a directory separator on platforms where it is. Update
counter every 13 counting up to the end so that the digits all
"rotate" and the counter ends up on the exact total.
Wed Jul 16 10:10:32 GMT 2008 Olly Betts <olly@survex.com>
* tests/perftest/perftest.cc: Use uname() or gethostname() to get the
hostname on Unix, rather than piping output from uname -n. Use
startswith() where appropriate. Prefer resize() and erase() to
assigning a string a substring of itself. Make internal functions
static. Prefer string() to "". Fold sed | sed and grep | sed into
single sed invocations.
Wed Jul 16 05:16:00 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
"Check-in Number: 5404" and "5405".
Wed Jul 16 04:48:45 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Sync with 1.0.7 release. Start to clean up ChangeLog entry
pile.
Mon Jul 14 05:13:55 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Fix a typo, remove "\n" from the end of
ErrorMsg() calls since it will get stripped anyway, and escape
literal '%' in ErrorMsg() third arguments.
Sun Jul 13 13:04:58 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Update note of upstream version we're synced
against.
Sun Jul 13 12:56:58 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Tweak previous merged patch so that we still
get #line directives for code in %include directives.
Sun Jul 13 12:54:03 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 5335".
Reduces the size of the stripped object file for
queryparser_internal.cc by about 0.5%.
Sun Jul 13 12:32:06 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Fix typo in comment.
Sun Jul 13 12:30:38 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 5334". No
change to the generated code in our case.
Sun Jul 13 12:24:13 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: Add missing hard requirement for libtool 2.2.4.
Sun Jul 13 12:09:40 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac,HACKING: Hard require autoconf 2.62 and automake 1.10.1.
Move all information about particular autoconf and automake versions
to HACKING.
* configure.ac: Use LT_INIT in preference to AC_PROG_LIBTOOL. On
Linux and k*bsd-gnu, override libtool's link_all_deplibs_CXX to
"no". On Linux, override libtool's sys_lib_dlsearch_path_spec to a
list generated in a more reliable way which includes *all* the
default directories. Remove workaround which sets docdir for
autoconf < 2.60 since we now require 2.62.
* xapian-core.spec.in: We no longer need to run autoreconf to work
around libtool's incomplete sys_lib_dlsearch_path_spec or to pick
up distro-specific patches for link_all_deplibs.
Sun Jul 13 11:33:33 GMT 2008 Olly Betts <olly@survex.com>
* Makefile.am: No need to explicitly list m4/*.m4 in EXTRA_DIST as
automake will automatically ship any such files which are needed.
Sun Jul 13 09:15:34 GMT 2008 Olly Betts <olly@survex.com>
* api/omenquire.cc: Back out the rounding of percentages change (at
least for now), as it makes percentage cut-offs work inconsistently.
* tests/api_anydb.cc: Add test pctcutoff3 which demonstrates the issue.
Sun Jul 13 07:01:02 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Fix documentation comment for
MSet::get_rank() - the 'document judged "most relevant" will have
rank of 0' only when ordering primarily by relevance.
Sun Jul 13 06:17:13 GMT 2008 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Tweak layout (makes the backport diff
much smaller and clearer, and reduces indentation by a level for a
chunk of code).
Fri Jul 11 13:44:56 GMT 2008 Olly Betts <olly@survex.com>
* tests/harness/testutils.cc: Fix typos in recent improved output.
Fri Jul 11 13:04:41 GMT 2008 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Collect up all the scaling factors we apply
to the estimated number of matches and apply them in one go to avoid
rounding the result more than once.
Fri Jul 11 12:21:11 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Add testcase for percent cutoff plus collapsing
which most likely would have failed before Richard's recent fix
for the lower bound with collapsing and a matchdecider.
Fri Jul 11 05:30:02 GMT 2008 Olly Betts <olly@survex.com>
* backends/database.cc: Add support for XAPIAN_PREFER_CHERT
environmental variable.
Thu Jul 10 22:21:46 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc: Fix skip_to() so that it doesn't advance if
it's already in a suitable position.
* include/xapian/postingsource.h: Specify that skip_to() should
stay in the same position if the current position is equal to
the docid argument of skip_to().
* tests/api_db.cc: Add valueweightsource3 to check that skip_to()
stays in the same position in this case.
Thu Jul 10 13:14:14 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc: Performance improvement - open documents
lazily (using the internal interface) so that we don't access
the record table for each one - we now just access the value
table. Leads to considerable speed up for me (of the order of 5
times faster).
Thu Jul 10 09:49:39 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Overhaul the sections on building from SVN. Remove ':'
from the end of headings.
Wed Jul 09 10:43:01 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: The workaround to avoid probe code for F77, GCJ, and
RC being added to configure is no longer required now that we're
using libtool 2.2 so remove it.
Wed Jul 09 09:40:43 GMT 2008 Olly Betts <olly@survex.com>
* Makefile.am,acinclude.m4,autoconf/dir_contents,
autoconf/rjb_find_stlport.m4,autoconf/type_socklen_t.m4,
m4/dir_contents,m4/rjb_find_stlport.m4,m4/type_socklen_t.m4: Move
the m4 macros which we ship for building configure from into the m4
subdirectory and remove acinclude.m4 - now aclocal will pull in the
required macros automatically.
Wed Jul 09 09:14:31 GMT 2008 Olly Betts <olly@survex.com>
* Makefile.am: Update for m4 -> m4-macros change.
Wed Jul 09 09:11:45 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/externalpostlist.cc: Fix segfault if get_maxweight() is
called when the postlist has reached end. This happens if the
end is reached during decay of an AND_MAYBE postlist to an AND.
* common/postlist.h,matcher/: Add comments documenting that
recalc_maxweight() may be called after the postlist has reached
the end, and noting why this is safe in various cases.
Wed Jul 09 09:02:08 GMT 2008 Olly Betts <olly@survex.com>
* m4-macros/dir_contents,m4-macros/xapian.m4,m4/dir_contents,
m4/xapian.m4: Move xapain.m4 to a new subdirectory (m4-macros) since
libtoolize now installs m4 files into subdirectory m4 which we don't
really want picking up by applications building against an
uninstalled xapian-core.
Wed Jul 09 08:03:11 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* Makefile.am,m4/dir_contents,xapian.m4: Move xapian.m4 back into
the m4 subdirectory. For uninstalled builds, we need xapian.m4
to be in a directory without any other .m4 files, or we'll be
likely to pull in the wrong versions of other macros. The top
level directory contains aclocal.m4 and acinclude.m4, so isn't
suitable for this. Also, the xapian-bindings and omega
compilations hadn't been updated with the new xapian.m4 location,
so this fixes the build for them.
Wed Jul 09 07:17:38 GMT 2008 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac: Use AC_CONFIG_MACRO_DIR and
ACLOCAL_AMFLAGS as libtoolize 2.2.4 recommends.
Wed Jul 09 06:37:21 GMT 2008 Olly Betts <olly@survex.com>
* acinclude.m4: Remove reference to definedir.m4.
Wed Jul 09 05:32:24 GMT 2008 Olly Betts <olly@survex.com>
* Makefile.am,m4/dir_contents,m4/xapian.m4,xapian.m4: Move xapian.m4
to the top level rather than devoting a whole directory to a single
file.
Wed Jul 09 05:23:02 GMT 2008 Olly Betts <olly@survex.com>
* Makefile.am,autoconf/definedir.m4,configure.ac: AC_DEFINE_DIR()
hasn't been used for years so remove it.
Wed Jul 09 02:32:38 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc,include/xapian/postingsource.h: Add an
alternative constructor for ValueWeightPostingSource which allows
the upper bound on the weights stored to be specified manually.
This is useful for database formats like flint which don't have
an upper bound available. It could conceivably also be useful if
you know that a query will only be accessing a subset of
documents for which you know a more precise upper bound than the
database-wide upper bound.
Wed Jul 09 01:59:56 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/externalpostlist.cc: Add DEBUGCALL macros to enable
easier debugging.
Mon Jul 07 12:40:20 GMT 2008 Olly Betts <olly@survex.com>
* HACKING,NEWS: Update to reflect the autotools now being in the SVN
tree, and the versions we are now bootstrapping with.
* NEWS: Update from ChangeLog.
Sun Jul 06 22:59:04 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc,matcher/remotesubmatch.cc,
matcher/remotesubmatch.h: Apply patch from ticker #279 to improve
performance of matches with multiple remote databases. This adds
a special case for the top match being from a remote database, to
avoid accessing the termlist to calculate the percentage scaling
factor.
Sun Jul 06 22:55:17 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omenquire.cc: When calculating percentages, round to the
nearest integer, rather than rounding down. There was a FIXME
about this, but no explanation of why it hadn't already been
done, and I can see no bad side effects so far. The most obvious
positive effect is that queries which should get precisely 100%
will no longer be assigned 99% due to rounding errors.
Sun Jul 06 22:48:30 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/api_anydb.cc: Add new test, topercent2, checking the
percentage values returned by standard searches, both against
known current values for some of the hits, and against a search
with a "local" backend. Also, in rsetmultidb1, test the return
value of mset_range_is_same_weights().
* tests/api_db.cc: In rsetmultidb2, test the return value of
mset_range_is_same_weights().
Sun Jul 06 22:46:23 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/testutils.cc,tests/harness/testutils.h: Add
function to test if two mset ranges have the same percentages,
and slightly improve the messages on failure of the mset range
comparison tests.
Fri Jul 04 23:31:14 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* NEWS: Swap two words to make a sentence make sense.
Fri Jul 04 11:40:13 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: Fix calculation of lower bound when
collapsing and match deciders are used. (Only tended to manifest
when the collapsing threw away a lot of documents, and when also
using a custom sort order, but I don't think that was required.)
Also, perform the adjustments due to percentage cutoffs after the
other adjustments, to avoid the lower bound setting for
collapsing overriding the lower bound from the percentage cutoff.
* tests/harness/index_utils.cc: Add a value to value slot 12, which
only has 5 different values, for testing this bug.
* tests/api_db.cc: Add regression test for calculation of the lower
bound.
Fri Jul 04 10:24:16 GMT 2008 Olly Betts <olly@survex.com>
* Makefile.am,bin/Makefile.mk,examples/Makefile.mk: Remove
extra_cleandirs as automake 1.10.1 fixes the bug which it was working
around.
Fri Jul 04 04:36:59 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Synchronise tiny change from branches/1.0 which isn't
on trunk for some reason.
Fri Jul 04 04:35:19 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Bootstrap with newer versions of the autotools:
+ autoconf 2.61 -> 2.62: faster
+ automake 1.10 -> 1.10.1: "make clean" cleans all .libs
directories.
+ libtool 1.5.24 -> 2.2.4: many improvements; faster.
Thu Jul 03 03:17:42 GMT 2008 Olly Betts <olly@survex.com>
* docs/glossary.rst,docs/intro_ir.html: Improve intro_ir a bit, and
link to the definition of RSet in the glossary.
Thu Jul 03 01:30:56 GMT 2008 Olly Betts <olly@survex.com>
* examples/quest.cc: Output get_description() of the parsed query.
Sun Jun 29 18:56:06 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: Rename percent_factor variable, used here
as part of the percent_cutoff mechanism, to make its purpose
clearer, and to avoid confusing it with percent_scale in this
file, and percent_factor used elsewhere in matcher/.
Sat Jun 28 21:51:42 GMT 2008 Olly Betts <olly@survex.com>
* docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Disable
"JAVADOC_AUTOBRIEF" since we always try to write a brief
description explicitly, and it causes problems in some cases.
Sat Jun 28 21:32:21 GMT 2008 Olly Betts <olly@survex.com>
* common/: Fix typos in doxygen comments.
Sat Jun 28 10:33:06 GMT 2008 Olly Betts <olly@survex.com>
* languages/stem.cc: Add "nl" for selecting the Dutch stemmer, which
was accidentally missing from the list of language codes recognised.
Reported by Joey Hess in Debian bug #484458.
* tests/api_nodb.cc: Extend stemlangs1 to check that all the language
codes work, and so does Stem("").
Fri Jun 27 00:27:31 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog and against 1.0 branch.
Thu Jun 26 17:17:41 GMT 2008 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: The "already done" check in do_close() is
no longer useful, so remove it. Shrink the try block to only cover
the call to send_message().
Thu Jun 26 08:19:41 GMT 2008 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Don't bother to send MSG_SHUTDOWN for a
read-only Database - just closing the connection is enough.
Thu Jun 26 04:49:06 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_btreebase.cc: Don't need <string.h> as well as
<cstring>.
* backends/flint/flint_btreebase.cc,bin/xapian-replicate-server.cc:
Prefer <cXXX> to <XXX.h>.
Tue Jun 24 04:31:10 GMT 2008 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Use resize() to truncate a string.
Tue Jun 24 04:23:59 GMT 2008 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Fill in a guess at the __WIN32__ version of
the code needed in RemoteConnection::do_close().
Tue Jun 24 04:06:02 GMT 2008 Olly Betts <olly@survex.com>
* net/progclient.cc: Fix debug logging for __WIN32__.
Tue Jun 24 03:11:09 GMT 2008 Olly Betts <olly@survex.com>
* net/remoteserver.cc: Just delete the Database * pointer db. The
Database dtor is virtual, so it's fine to delete a WritableDatabase
via a Database * pointer.
Tue Jun 24 01:29:12 GMT 2008 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remoteconnection.h,
net/remoteconnection.cc,net/replicatetcpclient.cc: Wait for the
connection to close rather than using a different shutdown message
which requires a reply. Mostly this is more backport-friendly, but
it also avoids a message reply (albeit it not in a performance
sensitive situation). Needs implementing for __WIN32__.
Tue Jun 24 01:07:16 GMT 2008 Olly Betts <olly@survex.com>
* net/remoteserver.cc: Unwrap comment.
Tue Jun 24 00:52:02 GMT 2008 Olly Betts <olly@survex.com>
* net/remoteserver.cc: Kill a blank line.
Tue Jun 24 00:49:50 GMT 2008 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remoteconnection.h,
common/remoteprotocol.h,docs/remote_protocol.html,
net/remoteconnection.cc,net/remoteserver.cc,
net/replicatetcpclient.cc: Revert r10713 in preparation for applying
an alternative fix.
Mon Jun 23 21:51:42 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Expand list of keywords for brace cuddling. Add rationale.
Mon Jun 23 01:53:03 GMT 2008 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Cuddle braces after for loops for
consistency with the rest of the code. Use string::resize() to
shrink a string rather than assigning the result of substr(0, x).
* HACKING: Explicitly document that braces should be cuddled after
control flow structures.
Mon Jun 23 01:34:39 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/perftest/perftest_matchdecider.cc: Reworked performance
test to include a test of an alldocspostingiterator, and to only
rebuild the database involved if it's not up-to-date.
Mon Jun 23 01:20:25 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/valuestats.h: Add missing #include.
Mon Jun 23 01:10:19 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-compact.cc: Add support for the valuestats which are
now held in the value table for chert.
Sun Jun 22 23:44:46 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/: Change ChertAllDocsPostList to inherit from
ChertPostList and use the doclen list from the posting table
rather than using the termlist table. This helps towards making
the termlist table optional, reduces the amount of data read in
the process of iterating through an alldocs postlist, and can
make a massive difference in performance: I've measured the time
to iterate through all the documents in a 1000000 document
database, and the patch speeds this operation up by a factor of
6.
Add `keep_reference` parameter to the ChertPostList constructor,
instead of not keeping a reference if the term is empty.
ChertAllDocsPostList uses this to keep a reference to the
database while using an empty term.
Add ChertAllDocsModifiedPostList class, inspired by
ChertModifiedPostList, (with corresponding new source files) to
handle alldocs postlist with modifications: this wasn't needed
before since the termlist is updated immediately after changes.
Sun Jun 22 21:37:00 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/: Add "name" parameter to
BackendManager::get_writable_database_as_database(), and
BackendManager::get_writable_database_again(), (and subclasses)
so that old databases can be revived. Useful for the performance
tests.
Sun Jun 22 09:30:44 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/api_anydb.cc: Expand tests for alldocspostlist, covering
iteration of modified databases.
Fri Jun 20 08:28:12 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/remote/remote-database.cc,common/remoteconnection.h,
common/remoteprotocol.h,docs/remote_protocol.html,
net/remoteconnection.cc,net/remoteserver.cc,
net/replicatetcpclient.cc: Add new message
"MSG_SHUTDOWNANDCONFIRM" which causes a reply of
"REPLY_SHUTDOWNCONFIRMATION" to be sent after the database has
been closed. Use this message when closing a writable database,
to ensure that the destructor doesn't return until the lock on
the database has been released.
Tue Jun 17 14:28:46 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/perftest/freemem.cc,tests/perftest/perftest.cc: Patches
from Charlie to allow perftest to compile on windows.
Tue Jun 17 13:23:18 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_btreebase.cc,backends/chert/chert_lock.cc,
backends/flint/flint_btreebase.cc,backends/flint/flint_lock.cc,
bin/xapian-replicate-server.cc: Add some missing includes, needed
for GCC 4.3.
Tue Jun 17 11:00:56 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/perftest/get_machine_info.in: Updates to hopefully get
useful version information on windows.
Mon Jun 16 12:13:48 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/testsuite.cc: Don't call backendmanager->posttest()
if no backendmanager is in use.
Sun Jun 15 02:19:03 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/: Wait for subprocesses to finish at end of tests,
with remotetcp backend, to avoid test failures due to final flush
of a subprocess writing to the database used for the next test.
Thu Jun 12 09:09:44 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/unaligned.h: Add some casts to make GCC 4.3.0 happy.
Thu Jun 12 09:06:21 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_btreebase.cc: Add missing #include (needed
for compilation with GCC 4.3.0).
Tue Jun 10 17:38:07 GMT 2008 Olly Betts <olly@survex.com>
* tests/harness/testrunner.cc: Use startswith(). Fix memory leak.
Fri Jun 06 11:02:56 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* Makefile.am,tests/Makefile.am: Fix make check-* targets to match
the current set of backends. Add .multichert and .multiflint to
the clean-local hook in tests/. Leave .multi there for now, to
clean up existing .multi directories in the automated build trees.
Fri Jun 06 08:26:49 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/Makefile.mk: Add valuestats.h to distribution.
Thu Jun 05 23:37:37 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_values.cc: Fix compile error in assertion in
recently added code for calculating value statistics.
Thu Jun 05 21:38:01 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Use std::vector<Term *> rather than
std::list<Term *> so that size() is O(1) with any (sane) compiler
and because a list of pointers isn't space efficient (and we don't
need to splice here). Factor out common code in if branches in
TermGroup::as_group().
Thu Jun 05 17:04:23 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Use "startswith()" to avoid creating
a new string object.
Thu Jun 05 09:09:54 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Remove variable which is set but
never otherwise used.
Thu Jun 05 09:08:22 GMT 2008 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Don't call find() twice - reuse the result
we just got. Use AssertEq() rather than Assert() on an equality
test. Clarify a comment.
Wed Jun 04 21:32:11 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.lemony: Fix more O(N*N) scaling, this
time in the way in which auto multiword synonyms are detected.
Instead of trying all possible sub-sequences of terms for
synonyms, use synonym_keys and the skip_to() method to check for
synonyms which actually exist in the synonyms table.
* tests/queryparsertest.cc: Extend the scaling test to check this
case.
Wed Jun 04 12:42:32 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.lemony: Fix various cases where queries
were constructed pair-wise within a loop, which leads to O(N*N)
scaling behaviour (because each intermediate query construction
is O(M) where M is the size of that query, and there are N of
them).
* tests/queryparsertest.cc: Add test to check that parsing of a
query scales roughly linearly with query size.
* common/omtime.h: Add method to get an OmTime as a double - used
by the new query parser test.
Wed Jun 04 12:18:35 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/testsuite.h: Fix TEST_LESSER_OR_EQUAL and
TEST_LESSER macros to compare in the right direction (these
macros are, so far, unused).
Mon Jun 02 18:19:22 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc: Make ValueWeightPostingSource use value
statistics, if they're available, to return accurate term
frequency statistics, and a better maxweight.
* tests/api_db.cc: Add valueweightsource2, to test the bounds and
maxweight returned by a ValueWeightPostingSource for backends
with valuestats support. Replace !multi condition in
valueweightsource1 with a SKIP_TEST_FOR_BACKEND invocation, since
this is a shortcoming we should fix at some point.
Mon Jun 02 18:16:52 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/testrunner.cc,tests/harness/testrunner.h: Replace
DO_TESTS_FOR_BACKEND macro with a do_tests_for_backend method;
the method version takes a BackendManager * and gets the backend
name from that, rather than requiring it to be specified.
Requires addition of a couple of extra private members to the
TestRunner class.
Mon Jun 02 10:27:45 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/database.h: Add get_value_freq(),
get_value_lower_bound() and get_value_upper_bound() methods to
Database, to get statistics about the values stored in a slot.
* api/omdatabase.cc,backends/chert/,backends/database.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/remote/remote-database.cc,common/,
net/remoteserver.cc: Add support for the value statistics methods
to chert, inmemory, multi and remote databases.
* tests/Makefile.am,tests/api_valuestats.cc,
tests/harness/testrunner.cc,tests/harness/testrunner.h: Add test
of the value statistics code, and a "valuestats" backend property
to select only backends supporting this.
Mon Jun 02 10:26:12 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
Move implementation of get_dbtype() method out of header.
Mon Jun 02 09:44:34 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* rests/harness/: Make flint and chert subtypes for the remote and
multi backend types. These are specified (on the command line
and elsewhere) by the main type (multi, remotetcp or remoteprog),
followed by an underscore, followed by the subtype (flint or
chert). Change return type of BackendManager::get_dbtype() to a
string instead of a const char *, to allow backend managers which
have subtypes to generate the result dynamically.
* tests/harness/backendmanager_remote.cc,
tests/harness/backendmanager_remote.h,
tests/harness/backendmanager_remoteprog.cc,
tests/harness/backendmanager_remoteprog.h,
tests/harness/backendmanager_remotetcp.cc,
tests/harness/backendmanager_remotetcp.h: Add new
BackendManagerRemote class as a common base for the two remote
backend managers, and move duplicated code into it. Add
parameter to its constructor, and to the constructors of the
remote backend manager subclasses, to control the type of
database to use at the remote end.
* tests/harness/backendmanager_multi.cc,
tests/harness/backendmanager_multi.h: Add parameter to
constructor of BackendManagerMulti, controlling the type of
database to use for sub databases. Put the generated database
files in ".multiflint" and ".multichert" instead of ".multi".
* tests/harness/testrunner.cc: Update list of backend properties to
contain the new subtypes. Modify use_backend() to allow either
the full backend type, or just the main part of the backend type,
to be specified, so that, for example "-b multi" will run both
the multi_chert and multi_flint tests. Add test runs for all the
subtypes now supported. Catch string exceptions thrown by the
test runner - these can currently occur when neither flint or
chert are compiled in.
* tests/apitest.cc,tests/apitest.h: Adjust return type of
get_dbtype(), implement skip_test_*_backend functions which just
check the prefix of the type, and implement SKIP_TEST_*_BACKEND
macros using these.
* tests/api_anydb.cc: Modify check for running on a multi backend
to copy with getting a string back from get_dbtype().
Sat May 31 00:55:03 GMT 2008 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/perftest/Makefile.mk: Remove unnecessary
quotes.
Thu May 29 16:04:56 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/perftest/: Update svn:ignore property for perftest changes.
Thu May 29 14:33:51 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/perftest/perftest.cc: Include the xapian version string in
the test output. For runs from SVN, also include the subversion
revision number and branch in the output.
Wed May 28 21:47:37 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
matcher/valuerangepostlist.h: Apply patch from ticket #270 to
implement ValueRangePostList::next() by using an alldocs posting
list, instead of trying docids in turn. This is much more
efficient if document IDs are sparse. Since both methods require
accessing the termlist table to check for the next document, and
some cursory performance tests don't show a measurable difference
in speed, I think this approach is at least safe, and probably
superior.
Wed May 28 21:28:38 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/perftest/perftest.cc: Log the flush threshold for indexing
runs.
* tests/perftest/perftest_randomidx.cc: Set the run size back to a
reasonably large value.
Wed May 28 20:48:10 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* configure.ac,tests/,tests/perftest/,tests/perftest_matchdecider.cc,
tests/perftest_randomidx.cc: Move performance test source files
into a subdirectory. Modify output of performance tests to
include some basic system information, and also to include
details of the parameters used to perform indexing tests.
Wed May 28 20:42:56 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Fix numbering in checklist for developers so that it
doesn't repeat section 5.
Sun May 25 14:21:40 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update to match 1.0 branch.
Sun May 25 00:24:09 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Start to update from ChangeLog, stripping out backported
changes.
Sat May 24 16:38:49 GMT 2008 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update to match 1.0 branch.
Sat May 24 16:33:19 GMT 2008 Olly Betts <olly@survex.com>
* tests/termgentest.cc: Pass Xapian::Document by const reference.
Sat May 24 14:30:59 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Only warn about duplicate user metadata keys
if the tags aren't the same.
Sat May 24 12:14:55 GMT 2008 Olly Betts <olly@survex.com>
* bin/Makefile.am: Put special -I options in foo_CPPFLAGS not
foo_CXXFLAGS. As well as being the more correct place, this also
means that AM_CXXFLAGS is now used when compiling xapian-check and
xapian-compact, which in particular enables compiler warnings.
* bin/xapian-check.cc,bin/xapian-compact.cc,bin/xapian-check-flint.cc:
Fix warnings (one unused variable and a few cases of a variable
masking another with the same name - none problematic in practice).
Fri May 23 09:22:24 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/inmemory/inmemory_database.cc: Fix bug in inmemory
database, which resulted in the values not being stored correctly
if document IDs were sparse.
* matcher/valuerangepostlist.cc: Fix the next() method not to
return document IDs which aren't present in the database - this
used to happen if the document IDs were sparse.
* tests/api_anydb.cc: Add "valuerange2", a regression test for
OP_VALUE_LE returning document IDs which aren't present in the
database, and "alldocspl1", which does a generic test of an
alldocs postlist in a sparse database (this passed before the
above changes, but might as well be added anyway).
Wed May 21 19:33:12 GMT 2008 Olly Betts <olly@survex.com>
* docs/Makefile.am: test == isn't portable - use test = instead.
Wed May 21 13:22:23 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Fix path for atreus.
Wed May 21 13:21:08 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Fix search&replace error - the CVS module is still called
www.xapian.org.
Wed May 21 13:16:39 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Reword, since environmental variable PATH isn't "set by
$PATH".
Wed May 21 13:16:21 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: ixion -> atreus.
Wed May 21 13:12:07 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/database.h: Improve documentation comment.
Sun May 18 05:20:29 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* docs/remote_protocol.html: Remove spurious "i" at end of line.
Sat May 17 11:53:54 GMT 2008 Olly Betts <olly@survex.com>
* tests/harness/testutils.h: Layout and macro parameter name tweaks.
Fri May 16 20:42:05 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Check that all source databases are the same
type (flint or chert). Copy over "iamchert" for chert. Update
terminology - the "meta file" is now called the "version file".
Fri May 16 17:33:22 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/chert/chert_version.cc:
Need <cstdio> for rename().
Fri May 16 17:27:56 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc: Correct FIXME comment and mark
as "FIXME:1.2.0".
Fri May 16 17:21:59 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/testrunner.cc,tests/harness/testrunner.h: Add
condition to test if the backend is "inmemory".
* tests/perftest_randomidx.cc: Change the run size from 1000
documents to 1000000. Disable this test for the inmemory
backend, because it will quickly use up all the memory on the
machine.
Fri May 16 16:56:25 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Add note about some more PDF generation tools which are
needed, and that doxygen requires them to be on PATH.
Fri May 16 16:38:40 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Ubuntu now needs tetex-extra too.
Fri May 16 10:05:30 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Fix to not reject chert databases during the
"up front" check.
Thu May 15 20:20:14 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* net/progclient.cc: Set namespace for close methods (to avoid
conflicting with the close method I'm working on adding to
database internal).
Wed May 14 17:14:53 GMT 2008 Olly Betts <olly@survex.com>
* backends/database.cc: Default to flint not chert for a new database.
Wed May 14 17:11:56 GMT 2008 Olly Betts <olly@survex.com>
* api/postingsource.cc,docs/postingsource.rst,
include/xapian/postingsource.h,matcher/externalpostlist.cc:
PostingSource::check() now returns the valid flag rather than
passing it in by reference to be set. Change "should" to "must"
for the get_termfreq_est() requirement at Richard's suggestion.
Add parameter names to PostingSource method prototypes and update
documentation comments to match.
Wed May 14 15:34:38 GMT 2008 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/index.html,docs/postingsource.rst: Add
topic document for PostingSource.
Mon May 12 17:27:13 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/postingsource.h: Add documentation comments for
ValueWeightPostingSource, and tweak
PostingSource::get_maxweight() comment a bit more.
Mon May 12 16:51:01 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/postingsource.h: Clarify get_maxweight() if the
maximum from now on.
Mon May 12 06:51:53 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/postingsource.cc,include/xapian/postingsource.h,tests/api_db.cc,
tests/harness/index_utils.cc: Add ValueWeightPostingSource, which
reads a value, applies sortable_unserialise() to it, and returns
that as the weight for each document.
Sun May 11 23:49:07 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Do a final sync by
comparing our versions to the latest vanilla upstream. Add a note
to each file of the latest revision sync-ed against.
* queryparser/lemon.c: Enable '#define PRIVATE static'.
Sun May 11 22:48:27 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Add a note of the speed-up that the recent QueryParser changes
have given.
Sun May 11 22:10:19 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 5053".
Sun May 11 22:01:48 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 5052".
Sun May 11 21:56:03 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Fix a comment typo.
Sun May 11 21:52:30 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 4751".
Sun May 11 21:51:18 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 4745".
Sun May 11 21:47:03 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Comment out memset() call added by
one of the earlier merged upstream changes - a later comment on
the ticket referred to notes that this was actually a bug in the
grammar of the people who reported it.
Sun May 11 21:44:46 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 4743".
Sun May 11 21:41:55 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 4738".
Sun May 11 21:33:13 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
"Check-in Number: 4736".
* queryparser/lemon.c: Add %syntax_error directive since lemon has
changed it's error recovery strategy if you don't have one.
Sun May 11 20:54:31 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: If we hit a syntax error, don't
bother feeding further tokens to the parser!
Sat May 10 21:42:44 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 4641".
Sat May 10 21:33:10 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 4473".
Sat May 10 21:31:25 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 4439".
Sat May 10 21:28:27 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 4274".
Sat May 10 21:25:35 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 4190".
Sat May 10 21:20:16 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 4160".
Sat May 10 21:07:15 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 3753".
Sat May 10 21:03:19 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
"Check-in Number: 3738".
Sat May 10 20:00:09 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 3654".
Sat May 10 19:55:32 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 3594".
Sat May 10 19:46:05 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 3593".
Sat May 10 19:44:15 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 3591".
Sat May 10 19:40:12 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 3528".
Sat May 10 19:38:36 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 3476".
Sat May 10 19:36:06 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 3333".
Sat May 10 19:33:33 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 3244".
Sat May 10 19:29:18 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 3226".
Sat May 10 19:19:48 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 3224".
Sat May 10 19:14:18 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
"Check-in Number: 3210".
Sat May 10 18:56:50 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 3181".
Sat May 10 17:05:35 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 3126".
Sat May 10 16:51:31 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 2764".
Sat May 10 16:40:48 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
"Check-in Number: 2761".
Sat May 10 16:32:45 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 2458".
Sat May 10 16:29:55 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 2345".
Sat May 10 16:08:28 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Merge upstream "Check-in Number: 2302".
Sat May 10 15:50:23 GMT 2008 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Merge upstream "Check-in Number: 2208".
Sat May 10 15:03:59 GMT 2008 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Prefer `str.assign(ptr)' to `str =
string(ptr)'.
Sat May 10 14:48:38 GMT 2008 Olly Betts <olly@survex.com>
* api/matchspy.cc,api/replication.cc: Prefer `str.assign(ptr, len)' to
`str = string(ptr, len)'.
Fri May 09 16:53:19 GMT 2008 Olly Betts <olly@survex.com>
* net/remoteserver.cc: No entries in dispatch[] are NULL, so there's
no point testing for it.
Fri May 09 16:51:10 GMT 2008 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Remove pointless conversion to size_t which
breaks GCC 2.95 build.
Fri May 09 16:22:46 GMT 2008 Olly Betts <olly@survex.com>
* api/replication.cc: Needs <cstdio> for rename().
Fri May 09 15:41:08 GMT 2008 Olly Betts <olly@survex.com>
* tests/harness/testutils.cc: No need for an explicit std::endl when
calling TEST_AND_EXPLAIN().
Fri May 09 15:38:22 GMT 2008 Olly Betts <olly@survex.com>
* api/replication.cc: Use '\n' rather than endl in the middle of
writing stuff, since endl forces a flush which just adds useless
overhead.
Fri May 09 15:24:42 GMT 2008 Olly Betts <olly@survex.com>
* common/omdebug.h: Fix RETURN macro to work on GCC 2.95 for the case
`RETURN(string())'.
Fri May 09 08:33:35 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/postingsource.h: Add a protected default ctor so that
code subclassing PostingSource actually compiles!
Thu May 08 16:41:59 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/postingsource.h: Add doxygen comments for
Xapian::PostingSource. Add private assignment operator and
copy constructor to prevent copying.
Thu May 08 16:40:49 GMT 2008 Olly Betts <olly@survex.com>
* common/postlist.h: Fix one doxygen comment and improve another.
Mon May 05 15:22:24 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am: Clean up .chert in clean-local.
Mon May 05 14:52:34 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* docs/Makefile.am: Adapt the dist-check hook to work with a VPATH
build in non-maintainer mode.
Mon May 05 13:18:19 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* docs/Makefile.am: Fix "make distcheck" by using dist-hook to
install generated files, with the appropriate dependency, instead
of wildcards in EXTRA_DIST which don't give the correct expansion
unless the files happened to be generated already by another
rule. Also, ensure that the documentation is generated before
attempting to install it.
Sun May 04 09:30:53 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_version.cc,backends/flint/flint_version.cc,
common/stringutils.h: Move CONST_STRLEN() into stringutils.h.
* backends/chert/chert_database.cc,backends/flint/flint_database.cc:
Use CONST_STRLEN().
Sat May 03 18:56:34 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omenquire.cc: Reset the internal sorter pointer to NULL when
changing to a sort by value. Fixes #256.
* tests/api_sorting.cc: Add regression test.
Sat May 03 18:52:27 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Mark internal functions as @internal.
Sat May 03 18:43:12 GMT 2008 Olly Betts <olly@survex.com>
* docs/doxygen_api_conf.in: Disable header and directory relationship
graphs in the API documentation as they aren't interesting to users.
Sat May 03 18:12:30 GMT 2008 Olly Betts <olly@survex.com>
* docs/gen_codestructure_doc.in: Link to trac instead of viewvc.
Sat May 03 17:25:02 GMT 2008 Olly Betts <olly@survex.com>
* docs/replication_protocol.rst: Fix a few typos.
Sat May 03 15:53:24 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_database.cc,backends/flint/flint_database.cc:
If Database::reopen() is called and the database revision on disk
hasn't changed, then do as little work as possible. Even if it
has changed, don't bother to recheck the version file (bug#261).
Sat May 03 10:28:30 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: Improve code to prevent probing for f77, etc.
Sat May 03 10:17:05 GMT 2008 Olly Betts <olly@survex.com>
* matcher/rset.cc: Missing change from last commit.
Sat May 03 09:25:29 GMT 2008 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/,expand/Makefile.mk,expand/esetinternal.cc,
expand/expand.cc: Rewrite class ESet::Internal, incorporating the
functionality which used to be in the internal OmExpand class. The
expand operation now uses a min heap rather than calling
nth_element() repeatedly - this should reduce the complexity of the
expand operation by a factor of n/log(n) where n is the requested
ESet size.
Fri May 02 15:51:29 GMT 2008 Olly Betts <olly@survex.com>
* common/ortermlist.h,expand/ortermlist.cc: Kill FreqAdderOrTermList's
explicit empty dtor.
Thu May 01 16:38:40 GMT 2008 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,api/replication.cc,backends/chert/,
backends/flint/,backends/inmemory/inmemory_positionlist.cc,
common/utils.cc,matcher/stats.cc,tests/perftest_matchdecider.cc,
tests/perftest_randomidx.cc: Assorted formatting tweaks.
Thu May 01 16:32:58 GMT 2008 Olly Betts <olly@survex.com>
* common/unaligned.h: Fix ";;" to ";" after AssertRel calls.
Thu May 01 16:12:05 GMT 2008 Olly Betts <olly@survex.com>
* docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Tell doxygen to
expand XAPIAN_VISIBILITY_DEFAULT so it doesn't appear in collated
API documentation.
Wed Apr 30 10:57:53 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Update bugzilla references and URLs to reflect the move
to trac. Update the "fixing a bug" checklist to mention backporting
and updating the release notes.
Wed Apr 30 10:40:30 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/remote/remote-database.cc: Fix error message displayed
when remote protocol version doesn't match to display the minor
part of the version number supplied by the server correctly.
Tue Apr 29 17:37:10 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* AUTHORS: Add Alexandre Gauthier, for supplying a method for doing
python packaging for Windows.
Tue Apr 29 16:20:47 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/fileutils.cc: Fix variable name for windows compilation.
Tue Apr 29 06:50:53 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_table.cc,backends/flint/flint_table.cc:
Remove some debugging code, left over from writing the
replication code.
Mon Apr 28 12:11:38 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc,
backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc:
Fix issue #259 - update the last_block value whenever allocating
a new value, so that next_for_sequential doesn't give up too
early. Also, in both next_for_sequential and
prev_for_sequential, for writable databases, check the built-in
cursor at all levels for the new block rather than just reading
from disk, since newly allocated blocks won't have been written
to disk yet. Also, test the return type of next() when reading
subsequent parts of tags, and raise DatabaseCorruptError if it
returns false; this prevents incorrect data being returned,
leading to a zlib error.
* tests/api_wrdb.cc: Add regression test.
Fri Apr 25 08:39:28 GMT 2008 Olly Betts <olly@survex.com>
* api/postingsource.cc: Missed change from last but one commit.
Thu Apr 24 13:44:48 GMT 2008 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Reserve size of postlists vector.
Thu Apr 24 13:38:51 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/postingsource.h,matcher/externalpostlist.cc,
matcher/externalpostlist.h,tests/api_db.cc: Add a default
PostingSource::get_description() method so users who don't care
aren't forced to define one. Make PostingSource::reset() a standard
method and call it automatically so that a PostingSource-using
Query can be run more than once without extra work.
Thu Apr 24 11:24:30 GMT 2008 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Don't need <queue>.
Thu Apr 24 04:50:43 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_db.cc: Add test that boolean branches of matches don't
cause Xapian::PostingSource to be asked for weights.
Thu Apr 24 03:27:39 GMT 2008 Olly Betts <olly@survex.com>
* matcher/externalpostlist.cc,matcher/externalpostlist.h,
matcher/queryoptimiser.cc: ExternalPostList now takes the
factor into account, so works with OP_SCALE_WEIGHT, and
doesn't call get_weight()/get_maxweight() for a boolean
branch.
* tests/api_db.cc: Add tests for OP_SCALE_WEIGHT.
Thu Apr 24 02:16:08 GMT 2008 Olly Betts <olly@survex.com>
* xapian-config.in: Back out --swigheaders.
Wed Apr 23 11:37:45 GMT 2008 Olly Betts <olly@survex.com>
* matcher/externalpostlist.h: Need to initialise current.
Wed Apr 23 07:57:35 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/termgentest.cc: Put the inclusion of "utils.h" back; needed
for om_tostring().
Wed Apr 23 04:20:55 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/replication.h: Eliminate reference to FlintDatabase
from doc comment since it's not user-visible, and chert supports
replication too. No need for '#include <xapian/database.h>' so
remove. Remove references to non-existent parameter 'remotename'.
'DatabaseCorrupt error' -> 'DatabaseCorruptError'.
Wed Apr 23 04:19:53 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/query.h: Wrap Xapian::Query::Internal class
definition in "#ifndef SWIG" ... "#endif" in preparation for getting
SWIG to directly parse it.
Wed Apr 23 02:16:53 GMT 2008 Olly Betts <olly@survex.com>
* api/omquery.cc: Prefer string() to "".
Wed Apr 23 02:16:10 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/query.h: Fix doc comment typo (doesn't affect API
docs).
Wed Apr 23 00:59:40 GMT 2008 Olly Betts <olly@survex.com>
* api/postingsource.cc: Another missing file.
Wed Apr 23 00:34:34 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/postingsource.h: New file missing from previous
commit.
Wed Apr 23 00:30:34 GMT 2008 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/omquery.cc,api/omqueryinternal.cc,
include/Makefile.mk,include/xapian.h,include/xapian/query.h,matcher/,
tests/api_db.cc: Add support for Xapian::PostingSource.
Wed Apr 23 00:21:25 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian.h: Fix misplaced comment. Tweak doxygen comments for
version functions to be more consistent with others.
Wed Apr 23 00:16:14 GMT 2008 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Remove bogus comment from cut-and-paste.
Wed Apr 23 00:14:30 GMT 2008 Olly Betts <olly@survex.com>
* common/omassert.h: Add AssertEqDoubleParanoid().
* matcher/multimatch.cc: Use it instead of home-brewed version.
Tue Apr 22 23:30:50 GMT 2008 Olly Betts <olly@survex.com>
* common/utils.h: Stop exporting internal functions needlessly.
Tue Apr 22 12:53:55 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Fix to work again (broken by the splitting of
FlintTable::commit() into flush_db() and commit() in the replication
changes). Don't bother passing tablename to functions where it
always has the same value. Tweak the user-metadata copying loop to
make it clearer. Reserve the right size for the vector used for
merging spellings.
Tue Apr 22 12:28:17 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_table.h,backends/flint/flint_table.h,
bin/xapian-compact.cc: Default commit's changes_fd parameter to -1.
Tue Apr 22 11:39:10 GMT 2008 Olly Betts <olly@survex.com>
* common/omassert.h: Fix comment typo.
Tue Apr 22 10:54:35 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/queryparsertest.cc: Add "utils.h" back - needed for
om_tostring() and mkdir().
Mon Apr 21 07:48:45 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_db.cc: Don't need <list>. Wrap comment.
Mon Apr 21 07:04:12 GMT 2008 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,backends/chert/chert_check.cc,
backends/flint/flint_check.cc,tests/: Remove various needless
inclusions of headers (especially <iostream>). Reorder headers.
Wrap a couple of comments. Append single characters to strings
using character constants.
Mon Apr 21 06:26:49 GMT 2008 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/valuerangeproccompat.cc,
include/xapian/queryparser.h: Remove the
v102::NumberValueRangeProcessor ABI-preserving machinery since it's
OK to change the ABI for 1.1.0.
Mon Apr 21 04:42:52 GMT 2008 Olly Betts <olly@survex.com>
* api/,queryparser/queryparser.cc: Remove debug log tracing from
get_description() methods since the debug log call tracing *calls*
get_description() methods on parameters, so logging these calls just
makes for more confusing debug logs. A get_description() method
should have no side-effects so it's not very interesting even when
explicitly called by the user.
* common/omdebug.h: Replace "OM_DEBUG_INTRO" class with dummy
placeholder (to preserve numbering), to help prevent accidentally
adding these back.
Sun Apr 20 09:46:11 GMT 2008 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,common/: Stop describing get_description() as
an "Introspection method" internal (matching earlier change to stop
doing so externally). This doesn't help to explain what it does,
and get_description() doesn't actually fall under any of the formal
definitions of "introspection" I can find.
Fri Apr 18 10:26:18 GMT 2008 Olly Betts <olly@survex.com>
* backends/chert/chert_metadata.cc: Fix renamed parameter in debug
logging.
Fri Apr 18 10:18:35 GMT 2008 Olly Betts <olly@survex.com>
* HACKING,INSTALL,Makefile.am,backends/Makefile.mk,backends/chert/,
backends/database.cc,backends/flint/,backends/remote/net_postlist.cc,
backends/remote/net_postlist.h,bin/,common/,configure.ac,docs/,
include/xapian/dbfactory.h,include/xapian/version_h.cc,
net/remoteserver.cc,tests/Makefile.am,tests/harness/: Start new
development backend "chert". Currently the change over flint is
that in the postlist table, doclengths are stored once in a
chunked postlist-like form, rather than once per posting.
Tue Apr 15 23:24:39 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omenquire.cc,tests/api_nodb.cc: Fix segfault introduced by
previous change when asking for the termfreq on an empty mset.
Include a regression test.
Tue Apr 15 06:02:12 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/enquire.h: Change definition of MSet::get_termfreq
such that it will fall back to looking the term frequency up in
the database rather than raising an exception if the term is not
present in the mset.
* api/omenquire.cc,common/omenquireinternal.h: Implementation of
the above.
* tests/api_anydb.cc: Test the above.
Mon Apr 14 21:29:59 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/: Use copies of freemem.cc and freemem.h from omega to report
the free physical memory at each stage of indexing. Also, add a
get_total_physical_memory() function to this, and report it's
value at the top of the results file (only tested on Linux so
far).
Mon Apr 14 19:17:22 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/api_wrdb.cc: Make skip_to() test a bit more comprehensive.
Mon Apr 14 19:08:49 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_metadata.cc,backends/flint/flint_metadata.h:
Fix a bug in the skip_to() implementation, and set the parameter
name to "key" instead of "tname", since it's not a term.
* tests/api_wrdb.cc: Add a test of the metadata iterators.
Mon Apr 14 14:22:16 GMT 2008 Olly Betts <olly@survex.com>
* backends/Makefile.mk,backends/flint/Makefile.mk,
backends/flint/contiguousalldocspostlist.cc,
backends/flint/contiguousalldocspostlist.h,common/Makefile.mk:
The ContiguousAllDocsPostList class isn't flint-specific, so move
it out of backends/flint.
Mon Apr 14 13:56:51 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Removed duplicate
'#include "flint_database.h"', ironically added by Richard's recent
change. Fix a couple of errors in alphabetical ordering, and
move autoptr.h and the "safe" headers to where the standard headers
they replace would go.
Mon Apr 14 13:44:37 GMT 2008 Olly Betts <olly@survex.com>
* Makefile.am,tests/Makefile.am: List check-perf in .PHONY.
* HACKING: Document the need to list non-file targets in .PHONY.
Mon Apr 14 07:59:56 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc: Correct return type in a DEBUGAPICALL macro.
Mon Apr 14 07:14:01 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc,backends/database.cc,backends/flint/,
common/database.h,include/xapian/database.h: Add
metadata_keys_begin() and metadata_keys_end() methods to
Database, to allow the complete list of metadata in a database to
be retrieved. Supports a prefix argument to obtain a limited
subset of the keys, since that may be useful in some situations
and is very easy to implement. Only accesses the keys in the
first database in a multidatabase situation (which corresponds
with the current behaviour of get_metadata()).
Also, reorder the includes in flint_database.cc to be largely
alphabetical, and remove a duplicated #include of
<xapian/error.h>.
Mon Apr 14 06:51:48 GMT 2008 Olly Betts <olly@survex.com>
* common/fileutils.cc: Use endswith().
Mon Apr 14 06:14:44 GMT 2008 Olly Betts <olly@survex.com>
* api/replication.cc,backends/database.cc,
backends/flint/flint_database.cc,common/fileutils.cc,
tests/queryparsertest.cc: Use empty() rather than comparing size()
to 0. Use startswith() in a couple of places. Tweak an Assert
to AssertEq.
Sun Apr 13 14:30:55 GMT 2008 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Replace uses of DEBUGLINE(SPELLING, ...) in
Database::get_spelling_suggestion() with standard
DEBUGAPICALL/RETURN tracing. Add DEBUGAPICALL/RETURN tracing to
a few Database methods which were missing it.
Sun Apr 13 14:15:00 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.cc: Use RETURN() in a few places which
weren't.
Sun Apr 13 13:59:57 GMT 2008 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc: Remove long-time commented
out uses of DebugMsg.
Sun Apr 13 13:52:32 GMT 2008 Olly Betts <olly@survex.com>
* expand/expandweight.cc: Use DEBUGLINE() instead of DEBUGMSG().
Sun Apr 13 11:23:56 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Include corresponding header right
after config.h.
Sun Apr 13 10:28:27 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Tweak brace formatting and wrap a
comment.
Fri Apr 11 16:18:14 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/fileutils.cc: Fix typo in windows specific code.
Fri Apr 11 12:44:25 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.cc: Include corresponding header right
after config.h.
Fri Apr 11 10:25:03 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.h: Fix filename in header comment.
Fri Apr 11 04:49:03 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac,tests/submitperftest.in,tests/submitperftest.py.in:
Rename submitperftest.py to submitperftest.
* HACKING: Document that scripts shouldn't generally have an
extension, and the reason for this policy.
Fri Apr 11 04:32:15 2008 Olly Betts <olly@survex.com>
* HACKING: Note that GCC 4.3 no longer supports pre-ISO forms of
standard headers, such as <list.h>. GCC on Solaris now seems
to support throwing exceptions across shared library boundaries.
Fri Apr 11 03:24:47 GMT 2008 Olly Betts <olly@survex.com>
* tests/Makefile.am: "make up" in tests now does "make" in the
top-level.
Thu Apr 10 08:33:06 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_postlist.cc: Fix debug logging message: ostList
-> FlintPostList.
Thu Apr 10 05:47:37 GMT 2008 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Remove erroneous FIXME comments talking
about ReadFile() not updating WSAOVERLAPPED's Offset/OffsetHigh
being a problem with using _get_osfhandle() - ReadFile is documented
to behave this way on MSDN. Factor out update of Offset/OffsetHigh
and tweak this code not to rely on off_t being 64 bits.
Thu Apr 10 05:24:11 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_record.cc,backends/flint/flint_utils.h: Use
the new STATIC_ASSERT family of macros instead of CASSERT and
CASSERT_TYPE_UNSIGNED.
Thu Apr 10 04:46:40 GMT 2008 Olly Betts <olly@survex.com>
* common/omassert.h: Add "compile-time assertion" macros:
STATIC_ASSERT(COND), STATIC_ASSERT_UNSIGNED_TYPE(TYPE),
STATIC_ASSERT_TYPE_DOMINATES(TYPE1, TYPE2).
* tests/internaltest.cc: Test these.
Thu Apr 10 01:07:34 GMT 2008 Olly Betts <olly@survex.com>
* common/remoteprotocol.h,net/remoteserver.cc: Clean up a couple more
things now we've moved to major protocol version 31.
Wed Apr 09 06:50:44 GMT 2008 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc: Add missing explicit include of
remote-database.h.
Wed Apr 09 04:48:54 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-check.cc,bin/xapian-compact.cc: Fix check for user
metadata key to not match other key types we may add in the future.
When compacting, we can't assume how we should handle them. When
checking, they currently shouldn't be present, so we should flag
an error for them.
Tue Apr 08 15:27:09 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Fix missing line in old entry.
Mon Apr 07 07:49:56 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_btreeutil.h: Use AssertRel rather than Assert.
Mon Apr 07 06:20:42 GMT 2008 Olly Betts <olly@survex.com>
* api/error.cc,api/valuerangeproc.cc,backends/flint/flint_table.cc,
backends/multi/multi_postlist.cc,backends/remote/net_termlist.cc,
bin/xapian-inspect.cc,common/omdebug.cc,common/utils.cc,
languages/stem.cc,languages/steminternal.cc,
tests/harness/backendmanager_multi.cc,
tests/harness/backendmanager_remotetcp.cc: Header inclusions tidying
- remove a few redundant inclusions; prefer cstdio to stdio.h, etc
in a few places; note why certain headers are required in cases
where it's less obvious; in a .cc file, include the corresponding .h
second (after <config.h>).
Mon Apr 07 04:23:30 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: Fix --enable-log=profile to be recognised.
* common/omdebug.cc,common/omdebug.h: Fix build with
--enable-log=profile.
* HACKING: Actually document --enable-log=profile.
Sat Apr 05 21:07:38 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/perftest.cc: Flush after each write, so we can monitor
progress of long running tests (we might need to remove this
again later, if profiling shows it has a noticeable impact). Fix
two calls to write() to be a single call.
* tests/perftest_randomidx.cc: Add values to different slots; I'd
added them all to slot 0 by mistake, so they were overwriting
each other.
Sat Apr 05 20:17:43 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am,tests/perftest_randomidx.cc: Add a new
performance test which builds a randomly generated index, and
times the index run. Probably wants a bit more tweaking to make
it slightly more representative, but should be a useful test to
run on systems where downloading a large amount of data is
impractical.
* ChangeLog: Add missing log message for last commit.
Sat Apr 05 20:16:58 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/perftest.cc,tests/perftest.h: Log indexing runs every 5
seconds, as well as after every 1000 documents - gives useful
information for slow index runs.
Thu Apr 03 20:58:31 GMT 2008 Olly Betts <olly@survex.com>
* backends/database.cc,include/xapian/dbfactory.h,
include/xapian/version_h.cc: Remove lingering traces of quartz.
Thu Apr 03 07:59:53 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-inspect.cc: Print top-bit-set characters as escaped
hex forms as they often won't be valid UTF-8 sequences.
Thu Apr 03 03:53:37 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-inspect.cc: Check for the user passing a database
directory and issue a special error message since this is an obvious
mistake to make.
Wed Apr 02 07:00:36 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: Modify the estimate for the number of hits
based on the rate at which a match decider has been denying
documents. Also, reduce the upper bound based on the number of
documents denied.
* tests/api_db.cc: Check that the upper bound when a match decider
is used is within the valid range, rather than a particular
value.
Tue Apr 01 22:40:19 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* configure.ac,tests/perftest.cc,tests/submitperftest.py.in,
tests/urllib2_file.py: Fix display of upper bound on number of
results of search (was showing lower bound). Fix display of
closing <repetition> tags. Add script to submit the results of a
performance test to a central server.
Tue Apr 01 11:19:58 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc,backends/flint/flint_table.h:
Gently rearrange where and how we check for overlong keys.
* tests/api_wrdb.cc: Extend termtoolong1 to test that the "term too
long" exception messages contain the length correctly.
Tue Apr 01 06:06:43 GMT 2008 Olly Betts <olly@survex.com>
* AUTHORS,HACKING,INSTALL,README,debian/control.in,debian/copyright,
docs/install.html,xapian-core.spec.in: Standardise URLs on our
website to be xapian.org not www.xapian.org.
Tue Apr 01 03:44:32 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_record.cc,backends/flint/flint_values.cc,
common/,docs/quickstartexpand.cc.html,docs/quickstartindex.cc.html,
docs/quickstartsearch.cc.html,matcher/: Update the FSF address for
the small number of files which still have the old one. Remove the
"START_LICENCE" and "END_LICENCE" markers from the small number of
files which still have them.
Tue Apr 01 02:23:27 GMT 2008 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remoteprotocol.h,
common/remoteserver.h,common/serialise.h,docs/remote_protocol.html,
net/remoteserver.cc,net/serialise.cc: Update remote protocol to
a new major version (31) and strip out all the gunk that's only
there to keep it compatible with older version 30 clients.
Tue Apr 01 00:12:38 GMT 2008 Olly Betts <olly@survex.com>
* api/ompostlistiterator.cc,include/xapian/postingiterator.h: Remove
the method Xapian::PostingIterator::get_weight() which has been
commented out almost forever. Weight-handling isn't really
appropriate here.
* api/ompostlistiterator.cc: Remove "\todo" since it's already done!
Mon Mar 31 13:24:11 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/: Remove unnecessary default dtors.
Mon Mar 31 13:21:55 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Document to prefer "new SomeClass" to "new SomeClass()".
* api/omdocument.cc,api/omenquire.cc,backends/database.cc,
backends/flint/flint_database.cc,
backends/inmemory/inmemory_database.cc,matcher/multimatch.cc,
matcher/queryoptimiser.cc,net/remoteserver.cc: Fix instances of
the latter form to use the former form.
Mon Mar 31 12:11:09 GMT 2008 Olly Betts <olly@survex.com>
* tests/: Update svn:ignore property for perftest changes and remove
quartz-related entries.
* tests/perftest.cc: Add missing '#include "utils.h"'.
Mon Mar 31 09:22:35 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* Makefile.am,tests/,tests/harness/,tests/perftest.cc,tests/perftest.h,
tests/perftest_matchdecider.cc: Rework the test collation
mechanism slightly to allow it to be used by other testsuites:
rename collate-apitest to collate-test, and add a parameter to it
naming the output file. Add new "testrunner.h" and
"testrunner.cc" which are an equivalent to the old mechanism in
apitest for running tests with various properties; the properties
for each backend are now held as member variables of a TestRunner
class, and testsuites (eg, apitest) subclass this and implement a
"run()" method, which will be called for each backend with the
appropriate properties set. Move definition of DEFINE_TESTCASE
macro into testsuite.h. Add new testsuite "perftest", which is
intended to contain potentially time consuming performance tests,
logging the results to an XML file for later analysis. Add a
simple test of the ValueSetMatchDeciders to this testsuite.
"perftest" isn't run by make check, because it is likely to take
some hours to complete in future - instead, there's a new
top-level target "check-perf" which builds and runs perftest.
Mon Mar 31 08:13:21 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Recommend using the "svn-ci" script. Update the date
command which produces the correct format timestamp for ChangeLog
entries.
Mon Mar 31 08:00:58 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_btreeutil.h: Fix some out-of-date comments.
* configure.ac: Use AC_CHECK_SIZEOF to define SIZEOF_INT and
SIZEOF_LONG.
* backends/flint/flint_types.h: Use SIZEOF_INT and SIZEOF_LONG to
determine the type of uint4 rather than always using unsigned long
(which is 64 bits on most 64 bit Unix platforms). Drop int4 for
the time being, as we don't actually use it.
Mon Mar 31 06:34:20 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Refactor BitWriter::encode()
to have a single call to write_bits(), and don't include it inline
in the class as it's really a bit big to inline (and write_bits()
should now be inlined into it, or at least tail-called).
Mon Mar 31 05:33:02 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Reorder header includes to
match our new standard more closely. Indent class definitions to
match our coding standards.
Mon Mar 31 05:31:59 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.h: Remove unnecessary default
dtor.
Mon Mar 31 04:55:59 GMT 2008 Olly Betts <olly@survex.com>
* backends/remote/net_document.cc,backends/remote/net_document.h:
Rename "doc" member to "data" since it actually holds the document
data.
Mon Mar 31 03:25:21 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_document.cc,backends/flint/flint_document.h:
Remove unnecessary default dtor.
Mon Mar 31 02:53:48 GMT 2008 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_alltermslist.cc,
backends/inmemory/inmemory_alltermslist.h: Remove unnecessary
default dtor.
* backends/inmemory/inmemory_alltermslist.h: Fix bogus cut-and-pasted
doxygen comment for ctor.
Mon Mar 31 02:33:15 GMT 2008 Olly Betts <olly@survex.com>
* common/inmemory_positionlist.h: Remove unnecessary default
destructor. Fix comment type ("inemory" -> "inmemory").
Sun Mar 30 12:47:50 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Drop explicit dtor for SimpleStopper
which does nothing.
Sun Mar 30 12:12:12 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/valuesetmatchdecider.h: Don't bother checking if an
element is present before calling std::set::erase(). Don't bother
defining an explicit dtor which does nothing.
Sat Mar 29 00:46:13 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_db.cc: Test matchfunctor bounds in combination with
collapsing and percentage cutoff. Also, range check
get_matches_estimated rather than checking it's exactly the value
currently returned.
Fri Mar 28 21:37:27 GMT 2008 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Test ValueSetMatchDecider::remove_value() for a
value which isn't in the set. Test that removing a value doesn't
affect other values in the set.
Fri Mar 28 21:03:30 GMT 2008 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Avoid needless call to pl->get_termfreq_est()
if we're using a matchdecider or matchspy.
Fri Mar 28 10:28:51 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: Set matches_lower_bound to 0 before
starting the match process if there is a match decider or spy;
previously, the lower_bound wasn't being reduced in the presence
of a match decider unless all the potential results were
retrieved.
* tests/api_db.cc: Extend matchfunctor1 to check the bounds and
estimates returned; includes a regression test for the above.
Fri Mar 28 09:09:54 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/api_nodb.cc: Extend tests to check ValueSetMatchDecider
remove_value and also ValueSetMatchDeciders holding more than one
value.
Fri Mar 28 02:41:45 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: Update version info to match 1.0.6.
Fri Mar 28 00:12:48 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omenquire.cc,include/xapian/enquire.h: Merge two of the
get_mset() variants into one, with default arguments, which has
exactly the same effect. We added the two variants to preserve
ABI compatibility, and now we're branched for 1.1 this is no
longer necessary.
Thu Mar 27 23:54:39 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/valuesetmatchdecider.cc,include/xapian.h,
include/xapian/valuesetmatchdecider.h: Add ValueSetMatchDecider,
which is a matchdecider which is intended to be passed a set of
values to look for in documents, and selects documents based on
the presence of those values.
* tests/api_db.cc,tests/api_nodb.cc: Add tests for the
ValueSetMatchDecider - both for calling it standalone, and when
passed to get_mset().
* api/Makefile.mk,include/Makefile.mk: Tell build system about new
files.
Thu Mar 27 06:18:52 GMT 2008 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Initialise term_pos in previous change to
fix valgrind-detected error.
Thu Mar 27 06:13:01 GMT 2008 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Optimise Query(OP_VALUE_GE, <n>, "") to
Query::MatchAll.
* tests/api_nodb.cc: Add testcase for this case.
Thu Mar 27 04:34:40 GMT 2008 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_document.cc,
backends/inmemory/inmemory_document.h: Rename "doc" member to
"data" since it actually holds the document data.
* backends/inmemory/inmemory_database.cc: Remove unused <stdio.h>.
Include "inmemory_database.h" right after <config.h>.
Wed Mar 26 23:44:03 GMT 2008 Olly Betts <olly@survex.com>
* api/omenquire.cc: Throw InvalidArgumentError upon
RSet::add_document(0).
* tests/api_nodb.cc: Add regression test for this.
* matcher/rset.cc: Add assertion that we don't see a zero docid when
calculating rtermfreqs.
* api/omdocument.cc: Use RETURN not return so debug logging sees the
return value.
* backends/inmemory/inmemory_database.cc,
backends/remote/remote-database.cc: Change exception throwing for
a zero docid to assertions since zero docids should be checked for
before we get to here.
Wed Mar 26 06:17:51 GMT 2008 Olly Betts <olly@survex.com>
* common/postlist.h: Decree that PostList::check() must be passed a
docid which actually exists in the database (which is always true
currently and seems unlikely to be an onerous requirement).
* matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc: Take
advantage of this new precondition to simplify the code.
* matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc: Move the
corresponding header first as our header inclusion order guidelines
recommend.
Thu Mar 13 01:58:18 GMT 2008 Olly Betts <olly@survex.com>
* common/stats.h,include/xapian/enquire.h,matcher/localmatch.cc,
matcher/weight.cc: Untangle Xapian::Weight to just initialise
internal to 0 in its ctor, which is an ABI change. Resolves
a load of FIXME:1.1 comments.
Thu Mar 13 00:50:06 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc: Remove workaround for newlib which we
don't seem to need elsewhere and was marked "FIXME:1.1".
Thu Mar 13 00:49:27 GMT 2008 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Fix footnote ids after deprecation updates.
Wed Mar 12 10:08:37 GMT 2008 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Remove support for OM_STEMTEST_SKIP_RANDOM,
OM_STEMTEST_LANGUAGES, and OM_STEMTEST_SEED.
Wed Mar 12 08:30:48 GMT 2008 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Update for bindings removals for 1.1.0.
Wed Mar 12 06:59:25 GMT 2008 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Update for Omega removals for 1.1.0.
Wed Mar 12 05:11:53 GMT 2008 Olly Betts <olly@survex.com>
* api/omenquire.cc,api/omquery.cc,api/version.cc,docs/,
generate-exceptions.in,include/xapian.h,include/xapian/enquire.h,
include/xapian/query.h,tests/api_db.cc,tests/api_wrdb.cc,
tests/apitest.cc,tests/harness/,tests/internaltest.cc: Remove all
xapian-core features marked for removal in 1.1.0.
Wed Mar 12 03:28:18 GMT 2008 Olly Betts <olly@survex.com>
* HACKING,INSTALL,Makefile.am,backends/Makefile.mk,
backends/dir_contents,backends/quartz/,bin/,configure.ac,docs/,
tests/,tests/harness/,tests/quartztest.cc,tests/testdata/,
xapian-core.spec.in: Remove the quartz backend.
Wed Mar 12 02:14:33 GMT 2008 Olly Betts <olly@survex.com>
* m4/xapian.m4: Improve wording of the error message when we can't
find xapian-config.
Wed Mar 12 02:13:32 GMT 2008 Olly Betts <olly@survex.com>
* INSTALL: Minor wording tweak.
Wed Mar 12 01:44:42 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Initialise PostlistCursor member firstdid to
avoid using it uninitialised when merging user metadata and the same
key is present in more than one source database. If the same user
metadata key is present in more than one source database, copy an
arbitrary tag value.
Wed Mar 12 00:34:04 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Fix potential SEGV (which I think can occur
when compacting database(s) with user metadata but no postings).
Fri Mar 07 09:46:38 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/serialise.h: Add missing std:: before string.
Fri Mar 07 00:47:06 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc: Tidy up a line which was wider than 80
columns, and improve the error message returned when a database
replica doesn't contain exactly one subdatabase.
Fri Mar 07 00:34:28 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/serialise.h,net/remoteconnection.cc,net/serialise.cc:
Change encode_length() to a template, to allow the full range of
off_t values to be encoded. Also, adjust
RemoteConnection::get_message_chunked() to allow the message
length to be a 64 bit quantity. Also, make a couple of type
conversions to size_t explicit, to remove some warnings on
windows.
Thu Mar 06 01:57:04 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog.
Thu Mar 06 01:44:07 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Fix terminology - "user metadata" not "user
metainfo". Fix bug - need to invoke is_user_metadata rather than
using the function pointer as the if condition!
Thu Mar 06 01:41:09 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Fix terminology - "user metadata" not "user
metainfo".
Wed Mar 05 21:17:02 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: Add some casts (in the windows-specific
code) to fix some warnings from MSVC.
Wed Mar 05 19:01:35 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Update to 1.0 branch point.
Wed Mar 05 19:00:07 GMT 2008 Olly Betts <olly@survex.com>
* common/msvc_dirent.cc: Tweak to bring comment back into 80 columns.
Wed Mar 05 16:35:33 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/msvc_dirent.cc: Fix sense of check for ENOENT after
calling _findnext() - it should be checked for when an error code
is returned, not when the call succeeds.
* tests/api_replicate.cc: Fix tiny capitalisation typo.
Wed Mar 05 16:29:47 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/fileutils.cc: Check case where a backslash isn't found in
calc_dirname, and don't replace slash with backslash in this
case.
Wed Mar 05 09:30:42 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-check.cc: Add understanding of user metainfo keys in
the postlist table. Allow the METAINFO key to be absent if the
table only contains user metainfo keys.
Wed Mar 05 09:01:48 GMT 2008 Olly Betts <olly@survex.com>
* common/msvc_dirent.cc,common/msvc_dirent.h: Move licence boilerplate
up front where we have it in every other file. Move header guards
to the usual location. Detail the fix we've made for not setting
errno to ENOENT erroneously. Push the setting of orig_errno down
a bit.
Wed Mar 05 04:57:44 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: -pedantic isn't actually very useful so just drop it
rather than testing for known problem cases and risking unknown
problem cases.
Wed Mar 05 03:10:24 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* matcher/valuegepostlist.cc,matcher/valuegepostlist.h: Implement
skip_to method for ValueGePostList. Previously, the
ValueRangePostList::skip_to method was used, which would
return incorrect documents.
Wed Mar 05 02:54:27 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/fileutils.cc: Search for \ instead of / when looking for a
backslash!
Wed Mar 05 02:51:49 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/fileutils.cc: Fix incorrect docstring.
Tue Mar 04 18:48:25 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/msvc_dirent.cc: Fix readdir() so that it doesn't change
errno to ENOENT on reaching the end of the directory, as
specified by POSIX.
Tue Mar 04 17:54:56 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: Fix for a problem with windows. Because
we're using mixed styles of windows file IO, if a file descriptor
which actually corresponds to a file was supplied to remote
connection, the file pointer wasn't being adjusted after each
call to ReadFile or WriteFile. This manifested in the test case
for replication, resulting in a (corrupt) 2048 byte changeset
file being written (instead of a considerably longer changeset).
To work around this, we explicitly move the file pointer
ourselves.
Tue Mar 04 17:41:38 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/api_replicate.cc: Close the replica before removing the
temporary directory, to allow the rmdir to work on windows.
Thu Feb 28 16:41:34 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/remoteconnection.h: Include safeunistd.h, to get correct
typedef for off_t on windows - previously, the size of the
RemoteConnection class was varying depending on the order in
which header files were included, resulting in memory corruption.
* net/remoteserver.cc: Remove incorrect comment about what the
problem was.
Sat Feb 23 23:40:56 GMT 2008 Olly Betts <olly@survex.com>
* xapian-config.in: Use globbing rather than iterating over the output
of ls.
Sat Feb 23 23:33:39 GMT 2008 Olly Betts <olly@survex.com>
* xapian-config.in: Fix not to repeated headers in --swigheaders in a
non-VPATH build.
Fri Feb 22 17:20:19 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Add note about preferring std::string().
Fri Feb 22 17:05:11 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* net/remoteserver.cc: Use std::string() instead of
std::string(""), since it's a bit cleaner.
Fri Feb 22 16:50:32 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* net/remoteserver.cc: Add workaround for bug in MSVC 2005.
Fri Feb 22 14:39:03 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_database.cc,backends/flint/flint_table.cc,
backends/quartz/btree.cc: Use msvc_posix_rename() instead of
rename() when renaming base files, so that an error isn't
returned if the destination already exists.
Thu Feb 21 17:24:14 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/msvc_dirent.cc: Include msvc_dirent.h instead of dirent.h
Thu Feb 21 17:09:01 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/database.h: ReplicationInfo is a struct, not a class, so
forward declare it as such.
Thu Feb 21 12:16:23 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/Makefile.mk: Add common/safedirent.h to distribution.
Thu Feb 21 00:25:33 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* xapian-config.in: Add swigheaders option, listing the header
files used by swig, so that we can add the appropriate
dependencies to the makefiles in the bindings.
Wed Feb 20 20:59:55 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/replication.h: Add a ReplicationInfo structure,
and use it to return information about what has been done when
the replication methods are called.
* api/replication.cc,backends/database.cc,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
common/database.h,common/replicatetcpclient.h,
common/replicatetcpserver.h,net/replicatetcpclient.cc,
net/replicatetcpserver.cc: Populate a ReplicationInfo structure
when updating a replica, or sending changes to a file descriptor.
Also, fix a bug with reading the replication parameters from a
file, which caused a full database copy to be performed on every
replication request on a newly opened DatabaseReplica object.
* bin/xapian-replicate.cc: When doing verbose logging, display the
number of database copies and changesets applied, and whether the
live database has been updated.
* tests/api_replicate.cc: Check that the information returned by
the replication methods is as is should be, and add a regression
test for always copying the database.
Wed Feb 20 11:20:55 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/: Improve reporting of failures to obtain lock due
to unexpected errors - the error messages included in the
exceptions raised are now more verbose in many situations. Also,
if the lock can't be obtained when a database is being created,
report the lock failure, not a DatabaseOpeningError - it's more
useful to know that the lock attempt failed than that the
database wasn't present before the attempt to create it.
Tue Feb 19 11:58:22 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-compact.cc: Fix compaction for database which contain
user metadata keys.
Sat Feb 16 19:53:44 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Fix incorrect example in doccomment.
Sat Feb 16 14:46:08 GMT 2008 Olly Betts <olly@survex.com>
* AUTHORS: Add Matthew Somerville for Search::Xapian patches.
Tue Feb 12 16:34:52 GMT 2008 Olly Betts <olly@survex.com>
* docs/quickstart.html: Remove information covered by INSTALL since
there's no good reason to repeat it and two copies just risks one
getting out of date (as has happened here!)
Tue Feb 12 16:27:30 GMT 2008 Olly Betts <olly@survex.com>
* AUTHORS: Add David Spencer for reporting bug#237.
Tue Feb 12 16:25:00 GMT 2008 Olly Betts <olly@survex.com>
* docs/quickstart.html: Fix very out of date reference to MSet::items
(bug#237).
Tue Feb 12 12:40:47 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-compact.cc: Fix incorrect parameters passed to
FlintTable constructor.
Sat Feb 09 11:56:40 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/socket_utils.h,net/remoteconnection.cc: More fixes for
windows.
Sat Feb 09 11:31:30 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/msvc_dirent.cc,common/msvc_dirent.h: Hopefully this is a
better implementation of dirent functions.
Sat Feb 09 10:59:50 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/: Add implementation of dirent.h for use with MSVC; this
is copied from the mingw implementation, which has been placed in
the public domain. Add "safedirent.h" header for easy inclusion
of this implementation.
Sat Feb 09 10:43:49 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/api_replicate.cc: Use _putenv instead of setenv on windows.
Sat Feb 09 09:56:08 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/socket_utils.cc,common/socket_utils.h: More fixes for
windows.
Fri Feb 08 16:40:56 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/Makefile.mk,common/socket_utils.cc,common/socket_utils.h,
net/remoteconnection.cc,net/tcpclient.cc: Move windows-specific
socket handling code from remoteconnection.cc into a separate
file, provides the inline close_fd_or_socket for unix in the
header file. Use this in tcpclient.cc instead of close to close
sockets correctly on windows.
Fri Feb 08 16:40:29 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/fileutils.cc,common/replicatetcpclient.h: Correct typos in
windows only sections of code.
Fri Feb 08 15:29:28 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: Fixes for windows - always include
"safesysselect.h", and include <io.h> on windows.
Also, remove definition of an unused variable (probably due to a
copy and paste error).
Wed Feb 06 13:45:59 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-replicate.cc: Include "safeunistd.h" - needed for
sleep, if nothing else.
Tue Feb 05 18:10:23 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Set -pedantic in CXXFLAGS not AM_CXXFLAGS when
testing for problem with it - AM_CXXFLAGS is an automake thing,
and isn't used by the autoconf test.
Tue Feb 05 17:50:55 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Cleaner patch for the test of compilation with
-pedantic - cache the result using AC_CACHE_VAL().
Tue Feb 05 17:32:11 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Check whether compilation of a cast of INFINITY to
a double, and comparison with HUGE_VAL, causes a problem if
-pedantic is specified (which it does on at least some Mac OSX
versions). If so, don't use the -pedantic compiler flag.
Tue Feb 05 09:24:36 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_cursor.cc,backends/flint/flint_database.cc,
backends/quartz/bcursor.cc: More fixes for debug logging - rename
the "hex_encode" functions used for logging to
"hex_display_encode" to avoid name clash. Fix return type
declared in flint_database.cc's DEBUGCALL macro.
Tue Feb 05 09:18:29 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc: Fix for logging compiles: don't check return
value of a void function.
Tue Feb 05 09:14:34 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc: Reopen database after replication, to fix bug
with applying a chain of changesets.
* backends/flint/flint_database.cc: Don't use O_TRUNC (or O_CREAT)
when modifying the DB files!
* tests/api_replicate.cc: Don't call function from inside
TEST_EQUAL, because that's a macro and the function will be
double-evaluated.
Tue Feb 05 02:07:08 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,backends/database.cc,backends/flint/,
common/database.h: Many fixes to the replication code. Now
parses replication changesets correctly and applies them to the
databases. Also, correct one bug with the generation of
changesets.
* docs/replication.rst,docs/replication_protocol.rst: Update.
* tests/api_replicate.cc: Add test of two changesets being applied
at once.
Sun Feb 03 13:31:10 GMT 2008 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Backport atomic base update fix from
flint.
Sat Feb 02 22:47:56 GMT 2008 Olly Betts <olly@survex.com>
* AUTHORS: Add Thomas Viehmann.
Sat Feb 02 03:39:33 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Update the base files atomically to
avoid problems with reading processes finding partially written
ones.
Sat Feb 02 03:38:00 GMT 2008 Olly Betts <olly@survex.com>
* api/replication.cc: Don't leak the RemoteConnection object.
Fri Feb 01 23:15:38 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h:
Fix assorted comment errors.
Fri Feb 01 20:20:23 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc: Fix comment.
Fri Feb 01 20:13:23 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-replicate.cc: Document the default interval in --help.
Fri Feb 01 20:05:08 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-replicate.cc: Remove the "return 0;" I added at the
end of the function - I didn't realise this, but in C++ it's not
necessary to have a return at the end of main(). Tidier without
it, so it's gone.
Fri Feb 01 19:44:05 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Add Unicode::toupper() to complement
Unicode::tolower().
* tests/api_unicode.cc: Add caseconvert1 testcase to test
Unicode::tolower() and Unicode::toupper().
Fri Feb 01 19:36:47 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-replicate.cc: Add one-shot and verbose options to
replication client.
Fri Feb 01 17:52:36 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,backends/flint/flint_database.cc,
include/xapian/replication.h,net/replicatetcpclient.cc,
tests/api_replicate.cc: Keep the RemoteConnection in the
DatabaseReplica object, so that any data which is read ahead
doesn't get lost. If an error occurs opening the database on
the server, send a FAIL message over the connection, rather than
just shutting it.
Fri Feb 01 16:51:05 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_table.cc: Fix a database corruption bug: see
bugzilla entry #232. Was caused by lazy tables not being created
at the right revision.
* tests/api_wrdb.cc: Regression test for bug.
Fri Feb 01 15:10:23 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,backends/database.cc,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
common/database.h,docs/replication_protocol.rst,
tests/api_replicate.cc: Add the UUID of the new database to the
DB_HEADER message, and move the code which compares UUIDs out of
flint_database.cc and into replication.cc. Fix testcase which
missed incorrect comparison of UUIDs. Store the UUID of the
live database which has been replicated in the config file - this
isn't an ideal place, but will do until the UUID is stored in the
iamflint file, and we can parse it from there. Remove debug
printfs.
Fri Feb 01 15:09:12 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* bin/quartzdump.cc: Rename hex_encode() to hex_display_encode() to
avoid collision. (The hex encoding produced by this doesn't
encode spaces, so isn't quite the same as the functions just
added to utils.cc).
Fri Feb 01 15:08:06 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/utils.cc,common/utils.h: Add utility functions to
hex-encode and decode a string, so we can store UUIDs in the
config file in replicated DB directories.
Fri Feb 01 12:49:34 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/backendmanager_multi.cc: Make the multi
backendmanager use relative paths in its stub databases.
Fri Feb 01 12:17:38 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/Makefile.mk: Add replicationprotocol.h to distribution.
Fri Feb 01 12:10:19 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/database.cc: Stub databases used to
assume that any relative paths were relative to the current
working directory. They now assume that relative paths are
relative to the directory holding the stub database file.
Also, lines which begin with a '#' character are ignored, so we
can place comments in the stub database files. Also, recognise a
new database type: a "stub directory", which is a directory
containing a stub database file named "XAPIANDB".
* api/replication.cc: Replica databases are now created as
directories containing a "XAPIANDB" stub file, so all the
workings are internal.
* common/Makefile.mk,common/fileutils.cc,common/fileutils.h: Add
new set of utilities to manipulate path names - extracting
directory names, and joining paths.
* tests/api_replicate.cc: Enable test properly, now that
it passes. Test needs to be expanded to check that the database
copy succeeded better.
Fri Feb 01 09:47:00 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_database.cc: Fix warning about unused
variable.
Fri Feb 01 03:49:56 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,backends/database.cc,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
common/database.h,common/replicationprotocol.h: Move replication
protocol definition into a separate file. Add (virtual) support
methods for applying changesets to Database::Internal. Sort out
atomic swapping of old database for new after a database copy.
Fri Feb 01 03:49:09 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/quartztest.cc: Rename removedir to removedir_recursive() to
avoid conflict with my new function.
Fri Feb 01 03:09:45 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* docs/replication_protocol.rst: Specify (though not in much
detail) what we mean by "packed" strings and integers.
Fri Feb 01 03:09:06 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/replication.h: Be more precise in documentation
comment.
Fri Feb 01 03:07:29 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: Remove debug printfs()
Fri Feb 01 03:03:59 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/utils.cc,common/utils.h: Add overloaded rmdir() which
works directly on C++ strings. Add removedir() method which
removes a directory and its contents (as long as the directory
only contains files, not subdirectories).
Fri Feb 01 01:51:22 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/remoteconnection.h,net/remoteconnection.cc: Add
"sniff_next_message_type" method to RemoteConnection, and replace
the hardcoded "4096" size of the chunks used for the remote
connection confersation with a #define. Fix file mode when
creating a file with receive_file(), and bugs with writing too
much data to the file.
Thu Jan 31 03:41:42 GMT 2008 Olly Betts <olly@survex.com>
* bin/Makefile.mk,bin/xapian-replicate-server.cc,
common/replicatetcpserver.h: Add xapian-replicate-server server
program.
Thu Jan 31 02:46:38 GMT 2008 Olly Betts <olly@survex.com>
* bin/Makefile.mk,bin/xapian-replicate.cc,common/replicatetcpclient.h,
net/replicatetcpclient.cc,net/replicatetcpserver.cc: Add
xapian-replicate client program.
Wed Jan 30 19:13:08 GMT 2008 Olly Betts <olly@survex.com>
* include/xapian/replication.h: Correct name of parameter in doxygen
comment.
Wed Jan 30 15:58:44 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,backends/database.cc,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
common/database.h: Hook up the apply_changeset function from the
API through to flint. (The flint layer currently doesn't work,
though.) Also, implement the get_uuid() function for flint, by
using the mtime of the iamflint file.
* tests/api_replicate.cc: Finish implementation of the "replicate"
function, and add a test of a replication of a database using
this. The return value test is commented out for now, because
the flint layer doesn't work, but this puts the machinery needed
to test this in place.
Wed Jan 30 15:10:37 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_database.cc: Implement sending of the whole
database copy.
Wed Jan 30 14:45:01 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* tests/,tests/harness/: Add new testcase file (api_replicate.cc)
to hold tests of the replication functionality. Currently has
one partially written test. Also, add new function to apitest.h:
get_named_writable_database_path(), which allows the path to a
writable database to be obtained; throws an exception for those
backend types for which that isn't meaningful. Add a new
variable for use in the conditions for tests: "replicas", which
should be set to true for all backends which support replication.
Wed Jan 30 14:42:26 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: Fix the calls to fcntl() in
send_message() and send_file() to use fdout instead of fdin.
This has probably been stopping timeouts working very well.
Tue Jan 29 15:05:09 GMT 2008 Olly Betts <olly@survex.com>
* common/remoteconnection.h,net/remoteconnection.cc: Add
receive_file() method.
Tue Jan 29 14:37:36 GMT 2008 Olly Betts <olly@survex.com>
* common/remoteconnection.h,net/remoteconnection.cc: Add the ability
to read a message in chunks.
Tue Jan 29 10:08:02 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/replication.h: Expand documentation comment.
* api/replication.cc,backends/database.cc,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
common/database.h: Add a write_changesets_to_fd() function to
Database::Internal, with a default implementation to raise an
UnimplementedError. Hook
DatabaseMaster::write_changesets_to_fd() up to this, and
implement it for flint databases (the code to send a copy of a
database still needs work).
Tue Jan 29 10:01:39 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* docs/replication_protocol.rst: Document that a FAIL message ends
the conversation.
Tue Jan 29 09:59:01 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* docs/replication_protocol.rst: Document the protocol used to
transfer the updates.
Tue Jan 29 09:57:14 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: Fix typo.
Tue Jan 29 09:48:15 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: For win32, use msvc_posix_open() to open
the file descriptor, so other things can delete the file while
the sending is in progress.
Tue Jan 29 01:23:19 GMT 2008 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Add an assertion.
Tue Jan 29 01:14:07 GMT 2008 Olly Betts <olly@survex.com>
* common/remoteconnection.h,net/remoteconnection.cc: Add send_file()
method to RemoteConnection to allow the contents of a file to be
sent as a message.
Tue Jan 29 00:28:18 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,include/xapian/replication.h: Add methods to
allow parameters to be stored associated with a DatabaseReplica.
Tue Jan 29 00:16:42 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_database.cc,backends/flint/flint_database.h:
Change write_changesets_to_fd() to take the revision information
as a string - it now includes a UUID. Add get_uuid() method to
FlintDatabase - currently always returns "FIXME", but will
eventually return an ID for the database.
Mon Jan 28 19:07:20 GMT 2008 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/replicatetcpclient.h,net/Makefile.mk,
net/replicatetcpclient.cc,net/replicatetcpserver.cc: Add
ReplicateTcpClient class implementing a replication client over
TCP/IP.
Mon Jan 28 17:13:09 GMT 2008 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/replicatetcpserver.h,net/Makefile.mk,
net/replicatetcpserver.cc: Add ReplicateTcpServer class implementing
a replication server over TCP/IP.
Mon Jan 28 17:01:02 GMT 2008 Olly Betts <olly@survex.com>
* common/remoteconnection.h,net/remoteconnection.cc: Minor tweaks
to allow unidirectional connections.
Mon Jan 28 16:26:22 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc: Fix overly hasty commit - add
get_description() method for internal class, and use that instead
of trying to access a private member.
Mon Jan 28 16:22:18 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,common/output.h,include/xapian/replication.h:
Add get_description() methods to DatabaseMaster and
DatabaseReplica, and add XAPIAN_OUTPUT_FUNCTION methods for them
so that they can be displayed in debugging methods. Should fix
build with logging enabled.
Mon Jan 28 11:52:24 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,include/xapian/replication.h: Add
DatabaseReplica::close() method, to allow the write lock to be
released easily.
Mon Jan 28 11:21:36 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,include/xapian/replication.h: Change
DatabaseReplica into a PIMPL style class, now that it has more
than one member. Add visibility annotations to DatabaseMaster
and DatabaseReplica.
Mon Jan 28 10:44:51 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,include/xapian/replication.h: Add code to swap
stub database files over atomically, and to track the current
real database path.
Mon Jan 28 04:52:12 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/replication.cc,backends/database.cc,
backends/flint/flint_changesetapplier.h,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
common/database.h: Implement opening of the database underlying
DatabaseReplica objects, and hook up the get_revision_info()
method for it.
Mon Jan 28 04:17:21 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* common/utils.cc,common/utils.h: Add "dir_exists" function, to
check for presence of a directory at a given path.
Mon Jan 28 03:48:46 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_table.cc: Change a "+= 1" to ++ - this isn't
Python!
Mon Jan 28 03:08:45 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/Makefile.mk,api/replication.cc,include/Makefile.mk,
include/xapian/replication.h: Add interface to replication
functionality. (Currently just unimplemented stubs.)
Mon Jan 28 02:01:02 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_btreebase.h: Add a missing std::
Mon Jan 28 01:59:55 GMT 2008 Olly Betts <olly@survex.com>
* common/remotetcpserver.h: Fix typo in doxygen comment: `@port' ->
`@param port'. Update comment - socket is no longer closed by
handle_one_connection().
Mon Jan 28 01:28:00 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/: Add support for recording the changes made to a
database in "changeset" files. These are currently not produced
by default - for now, the "XAPIAN_MAX_CHANGESETS" environment
variable can be set to control production of them. As part of
these changes, the FlintTable constructor now takes the
tablename, so that this can be stored in changesets produced from
the table.
* bin/xapian-check.cc,bin/xapian-compact.cc,bin/xapian-inspect.cc:
Update to match changes in FlintTable constructor.
* docs/Makefile.am,docs/replication.rst,docs/replication_protocol.rst:
Add basic documentation of the replication protocol (though this
isn't yet definitive, since the protocol isn't finished!)
Sun Jan 27 21:10:24 GMT 2008 Olly Betts <olly@survex.com>
* net/remotetcpserver.cc,net/tcpserver.cc: The job of closing the
socket connected to the client more naturally belongs to the
framework TcpServer class.
Sun Jan 27 20:32:55 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Call flint_io_sync() in commit()
rather than flush_db(), as that gives more time for written blocks
to get written to disk before we block on waiting for them to be.
This should tend to speed up WritableDatabase::flush() in I/O bound
situations.
Sun Jan 27 19:35:08 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_spelling.h,backends/flint/flint_synonym.h:
Merge changes to the spelling and synonym tables just before
calling FlintTable::flush_db(), rather than just before calling
FlintTable::commit(), so that they don't get forgotten.
Sun Jan 27 14:29:30 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_database.cc,backends/flint/flint_table.cc,
backends/flint/flint_table.h: Separate step which flushes
modified blocks from cursors to the DB file from the rest of
commit. This will allow me to insert the changeset writing code
between the two steps, so it can assume that the DB file is fully
up-to-date. Also remove an out-of-date FIXME about trying to
avoid updating the value and position tables if they're not used:
these tables are now lazily created anyway.
Sun Jan 27 12:53:51 GMT 2008 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Change explicit references to xapian-tcpsrv.
Sun Jan 27 12:26:24 GMT 2008 Olly Betts <olly@survex.com>
* common/tcpclient.h,common/tcpserver.h,net/: Make use of TCP_NODELAY
optional at the class level. No user-visible changes.
Sat Jan 26 17:18:09 GMT 2008 Olly Betts <olly@survex.com>
* backends/dbfactory_remote.cc,common/Makefile.mk,
common/remotetcpclient.h,common/tcpclient.h,net/Makefile.mk,
net/remotetcpclient.cc,net/tcpclient.cc: Split out the "open
a connection" part of TcpClient and rename the rest to
RemoteTcpClient.
Sat Jan 26 14:01:34 GMT 2008 Olly Betts <olly@survex.com>
* bin/xapian-tcpsrv.cc,common/Makefile.mk,common/remotetcpserver.h,
common/tcpserver.h,net/Makefile.mk,net/remotetcpserver.cc,
net/tcpserver.cc: Split TcpServer into a generic TCP server
class (TcpServer) and a subclass of this which implements the
remote backend TCP server (RemoteTcpServer).
Sat Jan 26 11:06:30 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_btreebase.cc,backends/quartz/btree_util.h,
common/utils.h: Move fdcloser into utils.h, since it's generally
useful, and it's better not to have multiple copies of it
scattered through the code.
Fri Jan 25 15:06:30 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_table.cc,backends/quartz/btree.cc: Use
msvc_posix_unlink() on windows in sys_unlink_if_exists()
functions, so that they will work even if the file is still open.
This probably changes no behaviour, because
sys_unlink_if_exists() is probably never called in such a
situation, but this may not be true in future.
Thu Jan 24 13:31:20 GMT 2008 Olly Betts <olly@survex.com>
* docs/overview.html: Remove commented-out comment about OP_XOR.
Thu Jan 24 13:30:04 GMT 2008 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Briefly mention how pure boolean retrieval is
supported.
Thu Jan 24 13:28:44 GMT 2008 Olly Betts <olly@survex.com>
* HACKING: Move "debian/patch" update earlier in the checklist.
Thu Jan 24 13:26:45 GMT 2008 Olly Betts <olly@survex.com>
* NEWS: Partly update from ChangeLog.
Thu Jan 17 22:32:08 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc,backends/flint/flint_lock.h,
bin/xapian-check.cc: Apply tweaked version of patch for OS/2 support
by Yuri Dario.
* AUTHORS: Add Yuri Dario.
* PLATFORMS: Mention OS/2.
Mon Jan 14 11:03:05 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_table.cc,backends/quartz/btree.cc: Fix more
assertions to avoid overflowing int.
Mon Jan 14 09:29:51 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_btreeutil.h: Fix assertions to not overflow
int.
Mon Jan 14 09:23:54 GMT 2008 Olly Betts <olly@survex.com>
* backends/quartz/btree_util.h: Fix assertions to not overflow int.
Mon Jan 14 08:47:33 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Fix test for gcc being 4.0.x or 4.1.x, so we don't
use -Wstrict-overflow with them.
Sun Jan 13 23:28:04 GMT 2008 Olly Betts <olly@survex.com>
* configure.ac: GCC warning flag overhaul. Stop passing
"-Wno-multichar" since any multi-character character literal is
bound to be a typo (I believe we were only passing it after
misinterpreting its sense!) Pass "-Wformat-security",
"-Wconversion", and "-pedantic" for all GCC versions. Add
"-Winit-self" and "-Wstrict-overflow=5" for GCC >= 4.2. The
latter may be too aggressive, but it's hard to know without
trying it more widely.
Sun Jan 13 00:25:25 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_check.h,backends/flint/flint_table.h,
backends/quartz/btree.h,net/tcpserver.cc,tests/harness/testsuite.cc:
Add XAPIAN_NORETURN() annotations to functions and non-virtual
methods which don't return.
* net/remoteserver.cc: Assign bool variable using a comparison rather
than subtraction, so the intent is clearer.
Sun Jan 13 00:23:41 GMT 2008 Olly Betts <olly@survex.com>
* backends/flint/flint_check.cc: Tweak a comparison so all the
constants are on the same side (micro-optimisation).
* backends/quartz/btreecheck.cc: Equivalent change for quartz.
Sun Jan 13 00:20:08 GMT 2008 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add a couple of testcases I wrote for a
reported problem which turned out to work correctly already. Still,
they add to our test coverage.
Thu Jan 10 02:04:55 GMT 2008 Olly Betts <olly@survex.com>
* tests/runtest.in: Cope with "@EXEEXT" extension on test programs.
Wed Jan 09 21:57:59 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omquery.cc,api/omqueryinternal.cc,common/remoteprotocol.h,
include/xapian/query.h,matcher/queryoptimiser.cc,tests/api_anydb.cc:
Add OP_VALUE_LE operator, for symmetry with OP_VALUE_GE.
Currently implemented internally using a ValueRangePostList with
an empty string as the start of the range.
Wed Jan 09 19:36:37 GMT 2008 Richard Boulton <richard@lemurconsulting.com>
* api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h: Add
new query operator OP_VALUE_GE, for performing "return documents
with a value greater than this" searches. Also add a new
constructor to go with this which takes a value number and a
single string argument.
* matcher/: Add ValueGePostList class, as a subclass of
ValueRangePostList. Change internal members of
ValueRangePostList to be protected instead of private. Add
support for making ValueGePostLists from OP_VALUE_GE queries.
* tests/api_anydb.cc: Add valuege1 testcase of OP_VALUE_GE queries.
* common/remoteprotocol.h: Bump minor protocol number, due to
additional operator being possible in serialised queries.
Wed Jan 09 15:18:16 GMT 2008 Olly Betts <olly@survex.com>
* PLATFORMS: Update from Debian buildd logs.
Wed Jan 09 13:53:34 GMT 2008 Olly Betts <olly@survex.com>
* tests/harness/backendmanager_remotetcp.cc: Fix XAPIAN_NORETURN() to
wrap a declaration, not the definition, to fix compile failure on
mingw "make check". Correct file documentation comment to refer
to "remotetcp" not "remoteprog".
Mon Jan 07 01:28:14 GMT 2008 Olly Betts <olly@survex.com>
* PLATFORMS: Remove reports for 0.8.x as they're too old to be
interesting. Separate out 0.9.x reports.
Mon Jan 07 00:23:10 GMT 2008 Olly Betts <olly@survex.com>
* PLATFORMS: Add Solaris 9 and 10 success reports from James Aylett.
Sat Jan 05 19:13:12 GMT 2008 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: In generate_call(), if the failure
case would just be "if (ret == 0) return 0;" then combine it with
the test for the called method returning signal `f'.
Sat Jan 05 18:28:31 GMT 2008 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Generate more readable code for the
inlined single ASCII character literal string check.
Sat Jan 05 18:27:07 GMT 2008 Olly Betts <olly@survex.com>
* languages/steminternal.cc: Tweak skip_utf8() to save ~0.5% on
stemtest.
Sat Jan 05 02:20:57 GMT 2008 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Optimise a single ASCII character
literalstring check by inlining the check. This makes stemtest run
about 2% faster.
Fri Dec 21 21:57:11 GMT 2007 Olly Betts <olly@survex.com>
* docs/valueranges.rst: Fix example of using multiple VRPs to come out
as a "program listing".
Fri Dec 21 15:31:35 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/stringutils.h,common/utils.h: Move declaration of
within_DBL_EPSILON back into utils.h to fix builds with
--enable-assertions, and since it's not string-related.
Fri Dec 21 02:12:49 GMT 2007 Olly Betts <olly@survex.com>
* NEWS: Note that one change was "(bug#45)". Bump release date.
Thu Dec 20 22:00:41 GMT 2007 Olly Betts <olly@survex.com>
* NEWS: Update again for 1.0.5.
Thu Dec 20 17:50:26 GMT 2007 Olly Betts <olly@survex.com>
* common/stringutils.cc: Add new file I failed to commit.
Thu Dec 20 17:17:28 GMT 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add feature tests to ensure that ':' is
inserted between prefix and term when it should be.
Thu Dec 20 13:58:18 GMT 2007 Olly Betts <olly@survex.com>
* common/,queryparser/queryparser.lemony,
queryparser/termgenerator_internal.cc,tests/harness/index_utils.cc,
tests/harness/unixcmds.cc: Move C_isupper(), C_toupper(), etc from
utils.cc/utils.h to stringutils.cc/stringutils.h, since they are
string-related.
Thu Dec 20 03:00:08 GMT 2007 Olly Betts <olly@survex.com>
* HACKING: Remove details of issues with autoconf < 2.57 and
automake < 1.5 as these versions are antiques compared to our
current requirements of autoconf >= 2.59 and automake >= 1.8.3.
Wed Dec 19 03:41:42 GMT 2007 Olly Betts <olly@survex.com>
* AUTHORS,NEWS,configure.ac: Update for 1.0.5.
Wed Dec 19 03:36:30 GMT 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Calling WritableDatabase methods when we don't
have exactly one subdatabase now throws InvalidOperationError.
* tests/termgentest.cc: Add regression test to check that we now get
InvalidOperationError (previously this case gave a segmentation
fault).
Wed Dec 19 01:39:01 GMT 2007 Olly Betts <olly@survex.com>
* PLATFORMS: Update from tinderbox.
Tue Dec 18 23:17:37 GMT 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Move lots
of headers included by flint_lock.h to flint_lock.cc since
flint_lock.h doesn't need them. Add a "FIXME:1.1:" comment about
an odd special-case for newlib.
Thu Dec 13 17:34:19 GMT 2007 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Mark undocumented OM_STEMTEST_* environmental
variables for removal in 1.1.
Thu Dec 13 01:27:15 GMT 2007 Olly Betts <olly@survex.com>
* HACKING: Need to check RPM packaging with Tim Brody too.
Thu Dec 13 01:26:16 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Note that we check for <streambuf> because GCC 2.95
only has <streambuf.h>.
Thu Dec 13 01:23:27 GMT 2007 Olly Betts <olly@survex.com>
* AUTHORS: Add Ralf Wildenhues for suggesting a way to factor out
the boilerplate in multitarget rules.
Wed Dec 12 02:02:51 GMT 2007 Olly Betts <olly@survex.com>
* NEWS: Update for ChangeLog in preparation for 1.0.5.
Wed Dec 12 01:02:29 GMT 2007 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Mark as up to date for Xapian 1.0.5. Minor
wording improvements.
Sun Dec 09 01:09:19 GMT 2007 Olly Betts <olly@survex.com>
* tests/collate-apitest: Check for sources in the build directory
first, and only if not there prepend "$srcdir/". The recently
added api_generated.cc will be in the build directory when using an
SVN checkout.
Fri Dec 07 12:37:08 GMT 2007 Olly Betts <olly@survex.com>
* docs/sorting.rst,docs/valueranges.rst: State explicitly that
Xapian::sortable_serialise() is used to encode values at index time
and give an example of how it is called.
Thu Dec 06 15:55:31 GMT 2007 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/collate-apitest,
tests/generate-api_generated: Add automatically generated tests to
ensure that API classes generally have copy ctors and assignment
operators, and also generally have a default ctor.
Thu Dec 06 15:32:23 GMT 2007 Olly Betts <olly@survex.com>
* docs/sorting.rst: Fill in the remaining items in the outline.
Thu Dec 06 12:50:46 GMT 2007 Olly Betts <olly@survex.com>
* tests/valgrind.supp: Another variant of the zlib suppression.
Wed Dec 05 18:31:12 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* Makefile.am,docs/Makefile.am,tests/Makefile.am: Add dir_contents,
docs/dir_contents and tests/dir_contents to distribution
tarballs.
Wed Dec 05 18:28:12 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Really fix handling of version.h.
Wed Dec 05 18:20:54 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Handle make pattern substitutions.
Wed Dec 05 18:11:31 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Fix special-case handling of include/xapian/version.h.
Wed Dec 05 18:01:34 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/multiandpostlist.cc,matcher/multiandpostlist.h: Implement
get_wdf() method for MultiAndPostList (by adding together the
wdfs of the subpostlists). Not currently used (but will be by
SynonymPostList).
Wed Dec 05 17:43:24 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Special-case version.h.
Wed Dec 05 17:31:47 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Fix errors in previous check-in.
Wed Dec 05 17:18:26 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Parse BUILT_SOURCES to determine which files are
generated and so need looking for in the build directory - this
won't need updating when new files are generated, or existing
ones stop being.
Wed Dec 05 16:55:26 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* preautoreconf: Fix "make doxygen_docs" with VPATH build: look for
generated code files in build dir, and make rule which re-runs
preautoreconf change to srcdir first.
Wed Dec 05 14:59:52 GMT 2007 Olly Betts <olly@survex.com>
* docs/sorting.rst: Document set_sort_by_value() and friends.
Wed Dec 05 11:31:27 GMT 2007 Olly Betts <olly@survex.com>
* docs/sorting.rst: More work.
Tue Dec 04 14:42:57 GMT 2007 Olly Betts <olly@survex.com>
* docs/bm25.html: Improve wording.
Mon Dec 03 17:11:01 GMT 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/index.html,docs/sorting.rst: Add the start of
a topic document on sorting.
Mon Dec 03 17:10:04 GMT 2007 Olly Betts <olly@survex.com>
* common/stats.h: Fix comment typos.
Sun Dec 02 14:36:47 GMT 2007 Olly Betts <olly@survex.com>
* docs/synonyms.rst: Minor wording clarification.
Sun Dec 02 14:23:37 GMT 2007 Olly Betts <olly@survex.com>
* tests/collate-apitest: Fix reversed conditional for deciding
which generated headers to update.
Sun Dec 02 03:47:44 GMT 2007 Olly Betts <olly@survex.com>
* tests/apitest.cc: Include api_all.h instead of the individual
generated headers.
Sun Dec 02 03:44:56 GMT 2007 Olly Betts <olly@survex.com>
* tests/collate-apitest: Add licence and (C). Only update .h files
which may have changed. Generate api_all.h which just includes
the generated headers corresponding to all the sources processed.
Strip spaces from conditions.
* tests/Makefile.am: Update for api_all.h.
Sun Dec 02 03:21:59 GMT 2007 Olly Betts <olly@survex.com>
* matcher/weight.cc: Wrap comment.
Sun Dec 02 03:21:25 GMT 2007 Olly Betts <olly@survex.com>
* AUTHORS: Thank Petr Ročkai.
Sun Dec 02 02:40:58 GMT 2007 Olly Betts <olly@survex.com>
* api/omenquire.cc: Oops, this file also part of previous change.
Sun Dec 02 02:14:27 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Implement copy ctor and assignment
operator for Xapian::Enquire (bug#219).
* configure.ac: Note what this means in terms of library versioning.
Sat Dec 01 02:54:51 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/: Stop describing get_description() as an
"Introspection method", as this doesn't help to explain what it
does, and get_description() doesn't actually fall under any of the
formal definitions of "introspection" I can find.
Sat Dec 01 02:45:16 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/index_utils.h: Overlooked (C) update.
Sat Dec 01 02:34:59 GMT 2007 Olly Betts <olly@survex.com>
* HACKING,INSTALL,common/,configure.ac,tests/api_anydb.cc,
tests/api_db.cc,tests/btreetest.cc,tests/harness/testsuite.cc,
tests/harness/testsuite.h,tests/harness/testutils.cc,
tests/internaltest.cc: Raise the minimum supported GCC version
to 2.95.3 and strip out om_ostringstream which is no longer
required.
Sat Dec 01 01:10:04 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_sorting.cc,tests/api_wrdb.cc: Move sortfunctor2 from
api_wrdb.cc to api_sorting.cc.
Sat Dec 01 00:43:31 GMT 2007 Olly Betts <olly@survex.com>
* tests/valgrind.supp: Add version of the valgrind zlib suppression
for 64 bit hosts.
Fri Nov 30 18:06:49 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/index_utils.cc: Workaround MSVC which doesn't clear
the fail bit when a stream is reopened.
Fri Nov 30 00:44:21 GMT 2007 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Make delete_ptr<> a functor rather than
a function. This fixes the build with SGI's compiler, and
apparently a functor allows more compilers to inline the call.
Thu Nov 29 19:24:22 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Fix previous change to work.
Thu Nov 29 18:53:09 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Assume we have <sstream> and hardwire HAVE_SSTREAM to
be 1. If this assumption proves correct for all platforms we care
about, we can rip out the old om_ostringstream code.
Thu Nov 29 17:51:11 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/index_utils.cc: Work around MSVC.
Wed Nov 28 03:17:06 GMT 2007 Olly Betts <olly@survex.com>
* api/sorter.cc: Fix reverse sorting of value strings with different
lengths.
* tests/api_wrdb.cc: Add test sortfunctor2 to check this actually
works.
Wed Nov 28 02:27:37 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/:
Add get_named_writable_database() and use it to fix spell3 on
Microsoft Windows.
Tue Nov 27 16:56:12 GMT 2007 Olly Betts <olly@survex.com>
* xapian-config.in: Factor out the code to check if we need explicit
dependencies into a function. On platforms we know don't need
explicit dependencies, --ltlibs now gives the same output as --libs.
Tue Nov 27 00:24:18 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am: Remove api_regressions.cc from list - didn't
mean to commit that (yet).
Tue Nov 27 00:17:40 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am: Use $(collated_apitest_sources) in list of
apitest_SOURCES; now a new test file can be added just by adding
it to this variable.
Mon Nov 26 23:04:00 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am: Add generated apitest .h files to targets of
rule which calls collate-apitest, since they're also generated by
it. Change the rule to use a .stamp and a .lock file as
described in HACKING, to fix parallel builds.
Mon Nov 26 18:48:20 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am: Distribute preautoreconf.
Mon Nov 26 17:24:15 GMT 2007 Olly Betts <olly@survex.com>
* HACKING,configure.ac,docs/Makefile.am: Use pngcrush to reduce the
size of PNG files in the doxygen-generated HTML docs.
Mon Nov 26 15:39:58 GMT 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Don't package or install various intermediate
files which doxygen generates.
Mon Nov 26 13:14:19 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_db.cc: Ensure that the database needed for stubdb1 is
present, by creating it first (with get_database()). This
requires that the database type is flint, but the test doesn't
depend on any particular database type anyway, so this doesn't
lose us anything.
Mon Nov 26 13:08:08 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/collate-apitest: Display the name of the backend which a
set of tests is for.
Mon Nov 26 09:45:39 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am,tests/collate-apitest: Fix with VPATH builds -
pass srcdir as the first argument to collate-apitest, so it can
find the sources. Also, use srcdir to form the path to
collate-apitest when calling it from the make rule.
Mon Nov 26 02:22:08 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc,tests/apitest.cc,tests/apitest.h: Convert the
remaining tests to be collated.
Mon Nov 26 02:08:18 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc,tests/apitest.cc,tests/apitest.h: Collate the
localdb and remotedb tests.
Mon Nov 26 01:40:59 GMT 2007 Olly Betts <olly@survex.com>
* tests/: Collate the specchar, doclendb, collfreq, allterms, and
multivalue tests.
Mon Nov 26 01:21:35 GMT 2007 Olly Betts <olly@survex.com>
* tests/: Collate the anydb tests. Remove the generated files upon
"make clean" in maintainer-mode.
Mon Nov 26 00:34:03 GMT 2007 Olly Betts <olly@survex.com>
* tests/: Collate the wrdb tests.
Mon Nov 26 00:18:18 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_posdb.cc,tests/apitest.cc: Add "writable" flag and use it
for poslist2 and poslist3.
Mon Nov 26 00:13:43 GMT 2007 Olly Betts <olly@survex.com>
* tests/: Collate the posdb tests.
Mon Nov 26 00:03:29 GMT 2007 Olly Betts <olly@survex.com>
* tests/: Collate the nodb tests.
Sun Nov 25 23:55:02 GMT 2007 Olly Betts <olly@survex.com>
* tests/: Collate the transaction tests.
Sun Nov 25 23:49:26 GMT 2007 Olly Betts <olly@survex.com>
* tests/: Collate the unicode tests.
Sun Nov 25 23:35:40 GMT 2007 Olly Betts <olly@survex.com>
* tests/: Make a start on automatically collating test cases.
Sun Nov 25 22:41:52 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* api/weightinternal.cc: Initialise all members of
Xapian::Weight::Internal, and use initialisers rather than
assignment to do so. Fixes an error reported by valgrind.
Sun Nov 25 16:48:21 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/weight.cc: Add another note of a FIXME needed for 1.1
Sun Nov 25 16:40:28 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/bm25weight.cc,matcher/tradweight.cc: Add some missing
"using namespace std;" lines which are needed due to earlier
changes in header file inclusions. Also, remove some unnecessary
std:: prefixes.
Sun Nov 25 16:35:30 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/stats.h,include/xapian/enquire.h,matcher/localmatch.cc,
matcher/weight.cc: Undo ABI change introduced in previous commit
with a nasty workaround; we can't initialise Weight::internal
reliably, because applications complied with earlier versions of
the library may have inlined the constructor of the Weight class.
Therefore, we can't delete Weight::internal in the destructor,
because we don't know if it was initialised. Instead, we
add factory methods for making Weight::Internal objects to Stats,
register all the Weight::Internal objects made by these factory
methods in a list is the Stats object, and delete them when Stats
is deleted (which conveniently happens after the match has
finished). Mark all this with FIXME:1.1: so that we can easily
convert it to nicer code once we branch for 1.1.
Sun Nov 25 15:14:04 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* api/Makefile.mk,api/weightinternal.cc,common/,
include/xapian/enquire.h,matcher/: Split Stats and
Xapian::Weight::Internal into different classes: Stats remains
with the same members (but becomes a concrete class, rather than
a typedef of another class), and Xapian::Weight::Internal becomes
a simple container for exactly those statistics which are
relevant for a weight object (ie, it holds just one termfreq and
reltermfreq, rather than a map of all of them). This is
dynamically allocated, so Xapian::Weight now owns the object
pointed to by its "internal" member, and deletes it in its
destructor. Add a new header file "weightinternal.h" so that the
full "stats.h" stuff doesn't need to be included for definitions
of weighting schemes. Replace #include "stats.h" lines with
forward declarations of Stats, where possible.
Sun Nov 25 15:09:29 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omenquire.cc: Add missing include of stats.h
* matcher/queryoptimiser.cc,net/tcpserver.cc: Remove unnecessary
include of stats.h
* net/remoteserver.cc: Include missing includes of omassert.h and
stats.h, and change an Assert to AssertEq.
* matcher/multimatch.cc: Output the contents of the stats object in
debugging code.
Sun Nov 25 04:22:05 GMT 2007 Olly Betts <olly@survex.com>
* common/multimatch.h: No longer need "autoptr.h" here.
Sun Nov 25 04:07:04 GMT 2007 Olly Betts <olly@survex.com>
* common/multimatch.h: Fix typo in documentation comment.
Sun Nov 25 03:58:21 GMT 2007 Olly Betts <olly@survex.com>
* common/remoteserver.h,matcher/localmatch.cc,matcher/multimatch.cc:
Remove lingering traces of StatsGatherer.
Sat Nov 24 20:44:03 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/stats.h,matcher/Makefile.mk,matcher/stats.cc: Add
get_description() method for Xapian::Weight::Internal, and add
stats.cc back to hold it's implementation.
* common/output.h: Add an output function for Stats (aka
Xapian::Weight::Internal) to fix the build when debug logging is
enabled.
Sat Nov 24 01:21:56 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omenquire.cc,common/,matcher/,net/remoteserver.cc: Remove
StatsGatherer and its subclasses completely. Instead of a
StatsGatherer subclass, MultiMatch is now simply passed a Stats
object, and passes this to the prepare_match() methods of the sub
matchers to be populated with statistics. OmEnquire then passes
the same Stats object to MultiMatch::get_mset(), whereas a remote
submatch sends the Stats object to the parent match, to be
combined with the global statistics, and then passes the returned
global statistics to MultiMatch::get_mset(). Remove stats.cc
since it only contained implementations of StatsGatherer methods,
and networkstats.h which only contained the definition of the
NetworkStatsGatherer.
* matcher/rset.cc: Add the rset size to the database - we now
compute the global rset size the same way as we compute the
global collection size: by adding the sizes in the sub
collections together. We have the total rset size easily
available in the code, but building the total rset size up from
the sub-databases makes the code simpler.
Sat Nov 24 01:21:18 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/andnotpostlist.cc: Add a missing #include "omdebug.h".
Fri Nov 23 23:13:12 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/stats.h,matcher/: Remove the StatsSource class entirely.
LocalSubMatch and RemoteSubMatch now contribute their stats
directly to the gatherer in the prepare_match() method, so the
gatherer doesn't need to worry about keeping track of the sources
of statistics.
Fri Nov 23 21:46:32 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/submatch.h,matcher/: Change SubMatch::start_match() (and
all start_match() methods in subclasses) to take the statistics
for the whole collection as an additional parameter. MultiMatch
now gets the statistics from the gatherer and passes it to
start_match().
Fri Nov 23 17:38:28 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/stats.h: Add set_termfreq() and set_reltermfreq()
convenience methods to Stats; and remote the take_my_stats(),
my_termfreq_is() and my_reltermfreq_is() methods from
StatsSource.
* common/rset.h,matcher/rset.cc: Rename give_stats_to_statssource()
to contribute_stats(), and give it take a Stats object instead of
a StatsSource object. Can't forward declare Stats, so we need to
#include "stats.h" in rset.h now, unfortunately.
* matcher/localmatch.cc,matcher/localmatch.h: Move register_term()
implementation inline into prepare_match(). Build up the
statistics in a local Stats object, rather than passing them
piecemeal to the StatsSource object, and then use
StatsSource::get_my_stats() to set them, just like
RemoteSubMatcher.
Fri Nov 23 14:35:49 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/localmatch.cc,matcher/localmatch.h: Get the total
statistics from the gatherer directly and store them in a new
member of LocalSubMatch, rather than getting them via the
StatsSource when we need them. This bypasses the
get_total_stats() and set_total_stats() methods of StatsSource.
* common/stats.h,matcher/stats.cc: Remove the (newly) unused
methods StatsSource::set_total_stats() and
StatsSource::get_total_stats().
Fri Nov 23 11:40:54 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/,include/xapian/enquire.h,matcher/: Rename
Xapian::Weight::Internal to StatsSource (which I hope to be able
to remove shortly), and rename the Stats class to
Xapian::Weight::Internal. Requires minimal plumbing changes -
TradWeight and BM25Weight classes now query the internals
directly for the statistics, LocalSubMatch now gets the
statistics from StatsSource and passes them to wt_factory.
common/remote-database.h and common/serialise.h now need to
#include stats.h unfortunately, because a forward declaration
can't be used for Xapian::Weight::Internal (unless I'm missing
something).
Fri Nov 23 10:15:43 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/stats.h,matcher/bm25weight.cc,matcher/localmatch.cc,
matcher/tradweight.cc: Remove the Xapian::Weight::Internal
get_total_* methods: instead, add a get_total_stats() method
which returns a Stats object representing the whole collection.
Add get_termfreq() and get_reltermfreq() convenience methods to
Stats for looking up individual term's statistics. Also, change
protected members of Xapian::Weight::Internal to private members,
since we're no longer subclassed. Also, in tradweight.cc, avoid
division by zero in the (rare) situation of the average length
being zero; in the same way as this is handled by bm25weight.cc.
Thu Nov 22 12:58:02 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/stats.h,matcher/localmatch.cc,matcher/localmatch.h,
matcher/stats.cc: Replay Xapian::Weight::Internal's
perform_request() method with set_total_stats(). The replacement
takes the stats as a parameter, rather than magically getting
them from the gatherer. The LocalSubMatch now needs to call the
gatherer to get the stats, and then pass it to set_total_stats(),
so needs to keep a reference to the gatherer. However, we are
now one step closer to decoupling the gatherer from the stats.
Thu Nov 22 11:47:56 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/stats.h,matcher/localmatch.cc: Remove automatic
just-in-time calls to statssource.perform_request() - instead,
make it public, and call it explicitly before the postlist tree
is constructed. Also, make Xapian::Weight::Internal's destructor
non-virtual, since it's no longer subclassed anywhere.
Thu Nov 22 11:02:39 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/networkstats.h,matcher/stats.cc: Remove
fetch_local_stats() method, and use of have_gathered flag for
caching result of gathering the stats - instead, simply Assert
that have_gathered is false before gathering; we currently only
call get_local_stats() once for a given gatherer.
Thu Nov 22 10:04:40 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/rset.h: Change multiline "///" comments to use "/**",
style.
Thu Nov 22 09:27:42 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/localmatch.cc,matcher/queryoptimiser.h: Update a couple
of comments.
Thu Nov 22 08:29:19 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/networkstats.h,common/stats.h,matcher/: Remove the
LocalStatsSource and NetworkStatsSource classes - just use the
base class (Xapian::Weight::Internal) instead. LocalStatsSource
had no extra members whatsoever, whereas NetworkStatsSource had
various members which weren't used, and a single method
"take_remote_stats" which simply sets the statistics held - I've
renamed this method "set_my_stats" and added it to the base
class.
Thu Nov 22 00:05:06 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/networkstats.h,common/stats.h,matcher/stats.cc: Replace
StatsGatherer::contrib_my_stats() and
StatsSource::contrib_stats() methods; instead add a
get_my_stats() method to StatsSource and simply call this.
Wed Nov 21 16:37:10 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/networkstats.h,common/remoteserver.h,matcher/stats.cc,
net/remoteserver.cc: Rework NetworkStatsGatherer - it no longer
needs to have the RemoteServer passed into it; instead, the
RemoteServer calls NetworkStatsGatherer::set_global_stats() with
the global statistics as soon as it gets them. This new method
replaces fetch_global_stats(). As a result, the RemoteServer no
longer needs to remember the global_stats received from the
network - it just passes them straight to the gatherer - so
remove the global_stats and get_global_stats() methods from
RemoteServer.
Wed Nov 21 15:42:40 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/rset.h,matcher/rset.cc: Document the member functions of
RSetI, and remove the totally unused "get_reltermfreq()" member.
Also remove an ancient, commented out, implementation of an
"add_document()" member, and add copyright lines.
Wed Nov 21 15:26:11 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/rset.h,matcher/localmatch.cc,matcher/rset.cc: Make
RSet::calculate_stats() private, and call it only from
RSet::give_stats_to_statssource(). Was previously called
directly from localmatch.cc, but this way it's clear that it's
only called once.
Wed Nov 21 14:30:17 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/remotesubmatch.h: Move implementation of constructor into
.cc file (accidentally missed this file from the last-but-one
commit, which did the necessary changes to the .cc file).
Wed Nov 21 14:28:48 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/rset.cc: Improve debugging messages.
Wed Nov 21 14:26:44 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/remotesubmatch.cc: Add some debugging, and reorder the
header includes.
Wed Nov 21 13:21:35 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: Add DEBUGCALL_STATIC macros to the new
functions, and tidy some code in the constructor slightly.
Wed Nov 21 10:00:48 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: Split the loop which calls prepare_match()
out of the constructor into a separate static function.
Tue Nov 20 18:23:53 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: Refactor code which splits the RSet into
sub RSets (one for each sub database) into a separate function.
No functional change.
Tue Nov 20 17:56:47 GMT 2007 Olly Betts <olly@survex.com>
* common/remoteserver.h: Remove unused '#include "omassert.h"'.
Tue Nov 20 12:53:06 GMT 2007 Olly Betts <olly@survex.com>
* AUTHORS: Thank Marcus Rueckert for GCC 4.3 fixes.
Tue Nov 20 10:22:28 GMT 2007 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Recent GCC 4.3 snapshots thinks cf and tf
might be used uninitialised. They won't be, but we only need to
initialise them once per run to silence the warning, so just do
that.
Tue Nov 20 10:20:13 GMT 2007 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Fix equality testing of C strings to use
strcmp() rather than '=='. In practice, using '==' often gives
the desired effect due to pooling of constant strings, but this may
have resulted in bugs on some platforms.
Tue Nov 20 01:47:16 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/backendmanager_remotetcp.cc: Add missing "#include
<cstring>".
Tue Nov 20 01:26:40 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/unixcmds.cc: Add #include of cstring, to get
strchr, needed for gcc 4.3 snapshot.
Tue Nov 20 01:25:22 GMT 2007 Olly Betts <olly@survex.com>
* api/maptermlist.h,api/termlist.cc,backends/alltermslist.cc,
backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h,
common/alltermslist.h,common/termlist.h,common/vectortermlist.h:
Provide a default implementation of accumulate_stats() in the
virtual base class TermIterator::Internal instead of repeating it
in each subclass which doesn't get used for generating an ESet, and
don't call abort() in the default implementation - an Assert(false)
is sufficient, and more consistent with how we handle other similar
cases.
Tue Nov 20 01:24:17 GMT 2007 Olly Betts <olly@survex.com>
* bin/xapian-progsrv.cc: Add missing '#include <cstdlib>'.
Mon Nov 19 23:54:53 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_postlist.cc,backends/quartz/quartz_postlist.cc:
Add NORETURN macro to report_read_error(); fixes warnings from
GCC 4.3 about possibly uninitialised values. Reorder header
includes to follow proposed policy.
* backends/flint/flint_postlist.h: Add include of omdebug.h which
previously needed to be done before including this. Tidy up
order of includes.
Mon Nov 12 14:06:38 GMT 2007 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/omenquire.cc,api/sorter.cc,common/multimatch.h,
common/omenquireinternal.h,include/Makefile.mk,include/xapian.h,
include/xapian/enquire.h,include/xapian/sorter.h,
matcher/multimatch.cc,net/remoteserver.cc,tests/: Add new functor
class to allow more sophisticated sorting options.
Mon Nov 12 14:03:06 GMT 2007 Olly Betts <olly@survex.com>
* HACKING: Improved wording.
Sun Nov 11 07:51:57 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Hide the v102 namespace from Doxygen
as it isn't user visible.
Sat Nov 10 21:53:21 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am: Remove .multi in clean-local rule; should fix
distcheck.
Sat Nov 10 15:34:25 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/testutils.cc,tests/harness/testutils.h:
mset_expect_order_begins() is never used, so remove it.
* tests/harness/testutils.cc: Don't need <iostream>, only <fstream>.
Sat Nov 10 11:09:22 GMT 2007 Olly Betts <olly@survex.com>
* docs/index.html: Add a list of documents on particular features and
include links to previously unlinked-to documents. Weed down the
top navigation bar which had grown to unwieldy length.
Sat Nov 10 10:17:42 GMT 2007 Olly Betts <olly@survex.com>
* PLATFORMS: Update for Debian buildds.
Sat Nov 10 02:13:07 GMT 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: If "first" is non-zero, then use nth_element
with vector::reverse_iterator to partition items such that the
unwanted ones are at the end not the start. This means the call
to vector::erase() no longer needs to copy all the wanted items.
Fri Nov 09 19:01:38 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc: collapsekey3 is too strict - even if the value
never occurs, lower_bound may drop as we may reject potential
matches before applying the collapse test.
Fri Nov 09 16:36:39 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/termiterator.h: Clarify get_wdf() versus
get_termfreq() in documentation comments.
Fri Nov 09 00:07:02 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc: Fix comment typo.
Fri Nov 09 00:04:45 GMT 2007 Olly Betts <olly@survex.com>
* HACKING,Makefile.am,tests/Makefile.am: New make target
'check-multi'.
Thu Nov 08 23:54:47 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Re-enable test case allpostlist1 for multi
since it works fine (presumably thanks to the multi_postlist.cc
fix).
Thu Nov 08 23:44:29 GMT 2007 Olly Betts <olly@survex.com>
* tests/,tests/harness/: Add new "multi" test backend which indexes
the specified text file(s) to two databases which will look just
like the equivalent single database when searched together. Since
writing isn't supported, a number of tests which require this are
disabled, as are any tests which explicitly use a multi-database
since a multi-of-multis isn't equivalent to a multi of equivalent
individual databases. A handful of testcases are also currently
disabled because they fail for reasons not yet fully explored.
Existing tests run with the new backend provide regression tests
for the two recent fixes.
Thu Nov 08 23:42:33 GMT 2007 Olly Betts <olly@survex.com>
* backends/multi/multi_postlist.cc: Fix PostingIterator::skip_to()
when running over multiple databases. Regression test to follow.
Thu Nov 08 23:37:51 GMT 2007 Olly Betts <olly@survex.com>
* docs/overview.html: Mention the "auto" backend.
Thu Nov 08 23:28:30 GMT 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix bug in handling a pure boolen match over
more than one database under set_docid_order(ASCENDING) - we can't
shortcut in this case because MergePostList generally doesn't return
docids in order. Regression test to follow.
Thu Nov 08 21:07:09 GMT 2007 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Fix comment typo.
Thu Nov 08 07:40:48 GMT 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Don't use MultiPostList when there's only one
subdatabase.
Thu Nov 08 05:40:17 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc: Run sortrel1 for inmemory too.
Thu Nov 08 03:43:50 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc,tests/harness/index_utils.cc,
tests/harness/index_utils.h: New class FileIndexer which acts like
an iterator returning a Xapian::Document object for each paragraph
in some specified files.
Wed Nov 07 16:30:49 GMT 2007 Olly Betts <olly@survex.com>
* common/,docs/remote_protocol.html,matcher/,net/remoteserver.cc,
net/serialise.cc: If we're doing a match with only one database
which is remote then just return the unserialised MSet from the
remote match. This requires that we include
internal->percent_factor in the MSet serialisation, which requires
a minor remote protocol version bump.
Wed Nov 07 09:47:28 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: Fix logging build (a change to the logging
code introduced in r9644 didn't compile)
Tue Nov 06 17:10:51 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/document.h: Better documentation comment for
Document::termlist_count().
Tue Nov 06 12:32:16 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,docs/Makefile.am,languages/Makefile.mk: No need to set
SUFFIXES manually for suffixes used in implicit rules.
Tue Nov 06 10:41:14 GMT 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: If we're collapsing on a value, keep track of
the number of empty collapse values seen, since that allows us to
give a better lower bound on the number of matches.
* tests/api_db.cc: This change breaks an (incorrect) assumption in
collapsekey3, so change that test case to be a regression test for
the improved estimate. Add a new test as (the previously missing)
collapsekey2, but disable it for now as we don't seem to have a
suitable existing database.
Tue Nov 06 07:58:34 GMT 2007 Olly Betts <olly@survex.com>
* matcher/tradweight.cc: Make sure lenpart has been calculated in
TradWeight::get_sumpart_needs_doclength() (this doesn't appear to
actually be a problem in current use, but it might become an issue
if the code which uses TradWeight changes.
Tue Nov 06 07:49:18 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Add simple feature test for TradWeight being
used to run a query.
Tue Nov 06 07:26:28 GMT 2007 Olly Betts <olly@survex.com>
* common/stats.h,matcher/bm25weight.cc,tests/api_anydb.cc: Fix bug in
BM25Weight - in the case where k2 is non-zero, a non-initialised
value influenced the weight calculations. By default k2 is zero, so
this bug probably won't affect most users.
Tue Nov 06 07:22:27 GMT 2007 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
net/remoteserver.cc: Modify MultiMatch::MultiMatch() to take a const
pointer to Xapian::RSet rather than a const reference. This makes
the code simpler for the case where we don't have an RSet.
Tue Nov 06 05:47:38 GMT 2007 Olly Betts <olly@survex.com>
* api/omenquire.cc: Use ".empty()" not ".size() == 0".
Mon Nov 05 21:05:45 GMT 2007 Olly Betts <olly@survex.com>
* m4/xapian.m4: Hook LT_INIT as well as AC_PROG_LIBTOOL and
AM_PROG_LIBTOOL.
Mon Nov 05 11:17:23 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/termgenerator.rst: Change a couple of instances of "terms"
to "words" for clarity; the item from the input text is a word,
and the result of processing is a term.
Mon Nov 05 09:46:53 GMT 2007 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Note that this document is up-to-date for
1.0.4. Improve the formatting a bit and fix a the odd typo.
Mon Nov 05 06:24:01 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Fix MSVC warning.
Mon Nov 05 06:21:09 GMT 2007 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.h: Forward declare PosFilter as "struct"
rather than "class", since it's defined as "struct".
Mon Nov 05 05:41:01 GMT 2007 Olly Betts <olly@survex.com>
* api/sortable-serialise.cc: Suppress MSVC warning.
Mon Nov 05 04:55:48 GMT 2007 Olly Betts <olly@survex.com>
* docs/quickstart.html: Improved.
Mon Nov 05 04:43:13 GMT 2007 Olly Betts <olly@survex.com>
* docs/overview.html: More improvements from Jenny Black.
Sun Nov 04 22:59:28 GMT 2007 Olly Betts <olly@survex.com>
* docs/overview.html: Assorted improvements to the start of this
document.
Sun Nov 04 22:54:13 GMT 2007 Olly Betts <olly@survex.com>
* api/omdocument.cc,tests/api_wrdb.cc: values_begin() didn't ensure
that values had been read. However, values_end() did (and so did
values_count()) so this wasn't generally an issue, but it shouldn't
happen anyway.
* tests/api_wrdb.cc: Extend adddoc5 to include a regression test for
this bug.
Sun Nov 04 22:44:39 GMT 2007 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Remove 'FIXME' suggesting more value tests.
* tests/api_nodb.cc: Add the suggested tests we don't already have.
Sun Nov 04 19:23:52 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_posdb.cc,tests/api_wrdb.cc: Use get_writable_database()
instead of get_writable_database("").
* tests/api_wrdb.cc: Rework test_spell3 so it works under __WIN32__
(bug#177).
Sun Nov 04 07:31:04 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.h: Make BackendManager dtor virtual as
intended.
Sun Nov 04 07:05:12 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/,
tests/quartztest.cc: Extend BackendManager to allow opening a
WritableDatabase as a Database as well, and to allow reopening a
closed WritableDatabase as a WritableDatabase. With these new
features, rework quartztest's adddoc2 and adddoc3 as apitest
testcases adddoc5 and adddoc6.
Sun Nov 04 06:08:42 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/:
Add BackendManager::get_writable_database_as_database() and use it
instead of assuming what the WritableDatabase path will be.
Sun Nov 04 05:31:30 GMT 2007 Olly Betts <olly@survex.com>
* tests/,tests/harness/: Subclass BackendManager for each database
backend supported, which should provide a better foundation on
which we can rebuild to fix the nastier bits of the test harness.
Fri Nov 02 17:39:58 GMT 2007 Olly Betts <olly@survex.com>
* INSTALL: zlib 1.2.0 apparently fixes a memory leak in deflateInit2,
which we use, so that's another reason to prefer 1.2.x.
Fri Nov 02 06:34:36 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Fix extracting of valgrind error
messages.
Fri Nov 02 05:09:05 GMT 2007 Olly Betts <olly@survex.com>
* docs/bm25.html,docs/scalability.html: Remove references to Muscat
3.6.
Thu Nov 01 18:51:20 GMT 2007 Olly Betts <olly@survex.com>
* NEWS: Fix to talk about OP_VALUE_RANGE rather than
ValueRangePostList since the later isn't user-visible.
Thu Nov 01 18:16:20 GMT 2007 Olly Betts <olly@survex.com>
* matcher/exactphrasepostlist.cc: Fix memory leak if second memory
allocation fails.
Thu Nov 01 17:54:09 GMT 2007 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Move the section on stemming to a better
location.
Thu Nov 01 17:37:40 GMT 2007 Jenny Black
* docs/glossary.rst: Fix typo.
Thu Nov 01 06:34:58 GMT 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Minor code simplification.
Wed Oct 31 16:17:08 GMT 2007 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Fix to handle the special case of a term which
is 48 characters long. Fix not to go into an infinite loop if
certain checks fail.
Wed Oct 31 15:56:45 GMT 2007 Olly Betts <olly@survex.com>
* matcher/multiandpostlist.cc: If the subpostlists are ORs and pruning
or operator decay happens within them, then get_termfreq_est() can
change such that the first postlist returns a higher value than
the second, so remove a bogus assertion which assumed this didn't
happen (bug#209).
Wed Oct 31 15:43:58 GMT 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_version.cc: I documented an increase in
FLINT_VERSION but didn't increase it - luckily the previous version
wasn't in a released version, so just adjust the comment to match
what actually happened.
Wed Oct 31 15:24:48 GMT 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Add '#include <safeunistd.h>' (bug#208).
Wed Oct 31 15:01:53 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-check.cc: Update the checking of the termlist table to
stop checking for the "has_termfreqs" flag, which is no longer
stored in termlists.
Wed Oct 31 14:31:38 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/quartz/quartz_positionlist.cc: Add missing #include,
which is needed only when configured with --enable-log and with
--disable-assertions.
Tue Oct 30 04:52:53 GMT 2007 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Update for 1.0.4.
Tue Oct 30 04:10:32 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Code tweak.
Tue Oct 30 03:04:04 GMT 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add two more test cases to improve
coverage.
Tue Oct 30 00:13:42 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: abi::__cxa_demangle() requires GCC 3.1
it seems.
Mon Oct 29 23:14:41 GMT 2007 Olly Betts <olly@survex.com>
* docs/scalability.html: Update size of gmane.
Mon Oct 29 23:13:00 GMT 2007 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Note that Quartz is now deprecated.
Mon Oct 29 21:09:12 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac,tests/harness/testsuite.cc: Demangle the name of
the std::exception subclass for GCC, and handle compilation with
-fno-rtti.
Mon Oct 29 19:50:05 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Catch std::exception subclasses
explicitly and report e.what() (which gives the method name which
threw, at least under GCC).
Mon Oct 29 18:46:57 GMT 2007 Olly Betts <olly@survex.com>
* NEWS: Updated.
Mon Oct 29 18:36:12 GMT 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Pull out old_item.wt into a variable.
Mon Oct 29 18:24:46 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.lemony: Fix problem with spelling
correction of hyphenated terms (or other terms joined with phrase
generators): the position of the start of the term wasn't being
reset for the second term in the generated phrase, resulting in
out of bounds errors when substituting the new value in the
corrected query string.
* tests/queryparsertest.cc: Test the fix.
Mon Oct 29 17:34:17 GMT 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Move "Stem::stem_word(word)" in the bindings
to the right section (it was done in 1.0.0, as already indicated).
Deprecate the non-pythonic iterators in favour of the pythonic ones.
Mon Oct 29 02:54:09 GMT 2007 Olly Betts <olly@survex.com>
* NEWS,api/Makefile.mk,docs/Makefile.am,include/Makefile.mk,
include/xapian.h,tests/api_db.cc,tests/api_nodb.cc,
tests/api_wrdb.cc: Back out match spy changes in preparation for
creating a branch for them.
Mon Oct 29 02:37:31 GMT 2007 Olly Betts <olly@survex.com>
* matcher/valuerangepostlist.cc: Fix
ValueRangeProcessor::get_termfreq_est() and get_termfreq_max() to
work when at_end() when paranoid assertions are enabled.
Mon Oct 29 01:51:07 GMT 2007 Olly Betts <olly@survex.com>
* common/omenquireinternal.h: Add ESetItem::swap() and
MSetItem::swap().
Sun Oct 28 16:33:34 GMT 2007 Olly Betts <olly@survex.com>
* PLATFORMS: Update from tinderbox and buildbot.
Sun Oct 28 06:00:23 GMT 2007 Olly Betts <olly@survex.com>
* matcher/queryoptimiser.cc: Remove unused variable.
Sun Oct 28 05:46:28 GMT 2007 Olly Betts <olly@survex.com>
* docs/remote.html: xapian-tcpsrv can handle concurrent read access
so update the out-of-date information here. Also, some new features
aren't supported by the remote backend yet.
Sun Oct 28 05:20:02 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Update documentation comment for
QueryParser::set_stemming_strategy().
Sun Oct 28 05:03:03 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix handling of STEM_ALL.
* tests/queryparsertest.cc: Update tests. Move tables of queries to
before the test functions which use them.
Sat Oct 27 20:50:57 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,include/xapian/query.h,
matcher/queryoptimiser.cc: Eliminate Query::Internal::dbl_parameter
to avoid any risk of ABI breakage.
Sat Oct 27 17:08:46 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/query.h: Pull in <xapian/deprecated.h> explicitly.
Add @deprecated note to Query::Query(Query::op, Query) explaining
why it is deprecated.
* include/xapian/queryparser.h: Wrap comment better.
Sat Oct 27 05:37:33 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Merge two "testsuite" sections in draft 1.0.4 entry.
Sat Oct 27 02:34:10 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Note specifically that std::list::size() is O(n) for GCC.
Update the debian packaging checklist.
Sat Oct 27 02:33:14 BST 2007 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Add link to the forthcoming book
"Introduction to Information Retrieval", which can be read online.
Sat Oct 27 02:22:36 BST 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: We no longer build sourcedoc.pdf so remove it from
MAINTAINERCLEANFILES.
Sat Oct 27 02:20:31 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Mostly updated for 1.0.4.
Fri Oct 26 04:57:31 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: OP_SCALE_WEIGHT applied to MatchNothing is
now handled by the Query ctor, so replace the code to handle
OP_SCALE_WEIGHT in Query::Internal::simplify_matchnothing() by an
assertion that the subquery isn't MatchNothing.
Fri Oct 26 04:50:37 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/query.h: Deprecate the essentially useless
constructor Query(Query::op, Query).
* docs/deprecation.rst: Note this deprecation, and since the feature
doesn't actually have a use, schedule it for 1.1.0. Also schedule
Enquire::register_match_decider() for 1.1.0 for the same reason.
Fri Oct 26 01:00:08 BST 2007 Olly Betts <olly@survex.com>
* api/omquery.cc,include/xapian/query.h: OP_SCALE_WEIGHT applied to
OP_VALUE_RANGE can have no effect so ignore it.
* tests/queryparsertest.cc: Update expected query descriptions.
Fri Oct 26 00:23:55 BST 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: When checkatleast is set, and we're sorting
by relevance with forward ordering by docid, and the query is pure
boolean, we were exiting before the checkatleast requirement was
satisfied. Then the adjustments made to the estimated and max
statistics based on checkatleast meant we claimed there were
exactly msize results.
Thu Oct 25 00:34:14 BST 2007 Olly Betts <olly@survex.com>
* matcher/localmatch.cc,matcher/multiandpostlist.cc,
matcher/queryoptimiser.cc,queryparser/queryparser.cc: Fix build
with --enable-assertions and --enable-log.
Wed Oct 24 06:29:03 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Drop out of IN_GROUP mode when we
generate a BOOLEAN_FILTER token.
* tests/queryparsertest.cc: Add regression test.
Wed Oct 24 06:08:29 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Drop special treatment for unmatched
')' at the start of the query, as it seems rather arbitrary and not
particularly useful. Reparsing seems a better approach here.
* tests/queryparsertest.cc: Add regression test case for bug which
dropping this special case fixes.
Wed Oct 24 05:25:40 BST 2007 Olly Betts <olly@survex.com>
* AUTHORS: Add Ron Kass for several bug reports.
Wed Oct 24 05:13:01 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix parsing of queries which consist
only of boolean filter terms and HATE-d terms.
* tests/queryparsertest.cc: Add regression tests, and a few more cases
which passed before too. Fix descriptions of queries which now give
different (but equivalent) Xapian::Query object hierarchies.
Wed Oct 24 04:51:56 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Fix warning in debug log build.
Wed Oct 24 04:41:08 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc,backends/flint/flint_table.h: Don't
use class member function pointers to implement FlintTable::next()
and FlintTable::prev() as we can just call the methods directly
based on the sequential flag. Profiling suggests this speeds up
searches a little, the two pointers take up 16 bytes each (on
x86_64) so it reduces the class size by up to 32 bytes, and the code
is simpler because we no longer need to update prev_ptr and
next_ptr.
Wed Oct 24 00:16:06 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Tweak Query::get_description() to describe
OP_SCALE_WEIGHT queries as '<factor> * <subquery>' rather than
'<subquery> * <factor>' as the former results in more readable
descriptions.
* queryparser/queryparser.lemony: Use OP_SCALE_WEIGHT with factor 0.0
for queries which should be purely boolean which resolves a FIXME
comment in the code.
* tests/queryparsertest.cc: Fix expected results for this change.
Tue Oct 23 19:13:08 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Some as_XXX() methods delete the
object they are called on, while others don't, so rename the ones
which don't to get_XXX() to make the code clearer, and make them
all return Query rather than Query *. Eliminate Term::as_query()
completely - when we actually want a new object we can just call
new in the caller. op_window_query() now takes the difference
between the number of terms and the total window size, and we now
use a std::vector to store the generated Query objects rather than
a std::list, since we know how many there will be and can reserve
the required size in advance.
Tue Oct 23 18:33:49 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Improve comment.
Mon Oct 22 21:00:05 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix handling of LOVE and HATE
following a quoted phrase.
* tests/queryparsertest.cc: Add regression test.
Mon Oct 22 05:23:23 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Refactor so Term::as_query() calls
Term::as_query_object() instead of vice versa, as this avoids
calling 'new Query' quite a bit and makes a measurable difference
to the speed of the QueryParser. Fix a call to as_query() which
can be as_query_object().
Mon Oct 22 04:10:17 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: FLAG_PARTIAL with multi-prefixes
would result in inflated wqf for the "normal" version of the term
treated as partial.
* tests/queryparsertest.cc: Add regression test.
Mon Oct 22 02:34:58 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
Rename QueryParser::Internal::prefixes to prefixmap to avoid
confusion with all the other variables which are now called
"prefixes" in queryparser.lemony. Eliminate have_prefix and
instead just set prefixinfo to NULL by default.
Sun Oct 21 23:56:57 BST 2007 Olly Betts <olly@survex.com>
* common/omenquireinternal.h,include/xapian/enquire.h,
include/xapian/query.h,matcher/: Implement a new QueryOptimiser
class which can hoist the positional filters of OP_PHRASE and
OP_NEAR higher up the tree and merge the "AND" inside them into
any neighbouring OP_AND or OP_FILTER (bug#23). This shaves 10% of
the execution time of real world queries on real world data. On
particularly slow cases, the saving can be more dramatic - it
saves 50% when tested on a log of slow cases. OP_SCALE_WEIGHT
scaling factors are now pushed down to the leaves and any leaf
we a factor other than 0.0 (boolean) or 1.0 (unscaled) has
its weights scaled using a ScaleWeight wrapper around the normal
weighting object (bug#203).
Sun Oct 21 23:46:11 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/query.h: Fix documentation of OP_SCALE_WEIGHT.
Negative scaling factors aren't now clipped to 0, instead we
throw Xapian::InvalidArgumentError. Remove the explicit setting of
OP_ELITE_SET to 10 which is no longer required. Wrap a long comment
line.
Sun Oct 21 23:20:23 BST 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Tweak code and wrap comment.
Sun Oct 21 04:53:40 BST 2007 Olly Betts <olly@survex.com>
* matcher/extraweightpostlist.h: Add missing '#include "multimatch.h"'
which is pulled in implicitly by some other header which always
happens to be included before this one.
Fri Oct 19 03:52:17 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Remove deprecation of
QueryParser::add_prefix() and QueryParser::add_boolean_prefix().
Reformat the tables to use the "simple table" style, and to all be
126 columns wide, since that fits in a maximised terminal window
without wrapping (at least on my machine!)
Fri Oct 19 03:44:33 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc,
queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
tests/queryparsertest.cc: Since calling QueryParser::add_prefix()
or QueryParser::add_boolean_prefix() a second time with the same
field name was ignored before (rather than overriding as we had
thought) it seems reasonable to change this behaviour. This
also avoids the need to deprecate these methods which will force all
users to update their code. Change the semantics of default_prefix
- it's more useful if this overrides any default prefixes set with
add_prefix(), since this allows the same QueryParser object to
parse both a "general" search input which searches several fields
and also a "title" search input. Trying to set the same field
as probabilistic and boolean now throws InvalidOperationError
rather than UnimplementedError.
Fri Oct 19 03:29:53 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Fix compilation.
Fri Oct 19 03:28:37 BST 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: We're still getting "info" messages in the
generated HTML. It seems to be impossible to get rst2html to
report "info" messages to stdout without adding them to the
generated document, so just drop "--verbose" to disable them
completely.
Thu Oct 18 18:27:28 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Use std::vector<> for the stack in the
lemon-generated parser. This means that the stack is no longer a
fixed size, so we needn't worry about overflow, and that in typical
use it'll actually use less memory (lemon defaults to a 100 entry
stack).
Thu Oct 18 17:23:45 BST 2007 Olly Betts <olly@survex.com>
* languages/turkish.sbl: Minimise differences with Snowball SVN HEAD
by stripping trailing whitespace.
Mon Oct 15 15:39:26 BST 2007 Olly Betts <olly@survex.com>
* backends/quartz/btree_util.h: Need "safeunistd.h" for close().
Fixes build errors on mingw and with SGI's CC on IRIX.
Mon Oct 15 05:30:23 BST 2007 Olly Betts <olly@survex.com>
* matcher/localmatch.cc: Fix typo in comment.
Mon Oct 15 05:26:35 BST 2007 Olly Betts <olly@survex.com>
* common/omassert.h: Rewritten from scratch. The new version only
includes headers if assertions are enabled, which should help
to speed up non-assertion builds by reducing unnecessary header
inclusion. Also, float.h and math.h are never now pulled in -
instead we use the new within_DBL_EPSILON() function. AssertNe()
and AssertNeParanoid() are never actually used, so replace them with
AssertRel() and AssertRelParanoid which allow the user to assert any
binary relation, not just inequality. Also, we now use rare() to
give branch prediction hints for assertion tests (since the failure
branch should never be taken).
* common/omdebug.h,common/stringutils.h,tests/harness/testsuite.h:
Replace several definitions of the STRINGIZE macro with a single
version in common/stringutils.h.
* backends/flint/,backends/inmemory/inmemory_database.cc,
backends/multi/multi_postlist.cc,backends/quartz/,
backends/remote/remote-database.cc,bin/quartzcheck.cc,
bin/xapian-compact.cc,common/stringutils.h,expand/expandweight.cc,
expand/ortermlist.cc,matcher/phrasepostlist.cc,
matcher/scaleweightpostlist.cc,net/remoteconnection.cc,
net/tcpserver.cc: Explicitly include headers which were previously
being pulled in implicitly by omassert.h.
* HACKING: Update the documentation for assertion calls, and document
CompileTimeAssert() (which previously wasn't documented here).
Mon Oct 15 05:09:15 BST 2007 Olly Betts <olly@survex.com>
* common/utils.cc,common/utils.h: Add within_DBL_EPSILON() function
which returns true if its two double arguments differ by less
than DBL_EPSILON (currently not used anywhere).
Mon Oct 15 05:03:50 BST 2007 Olly Betts <olly@survex.com>
* matcher/multiandpostlist.cc: If check sets valid to true, we can't
be at_end(), so check valid first as at_end() is a rare event.
Mon Oct 15 05:00:18 BST 2007 Olly Betts <olly@survex.com>
* matcher/: Remove code for FilterPostList, which has been unused for
ages.
Sun Oct 14 02:13:57 BST 2007 Olly Betts <olly@survex.com>
* matcher/andpostlist.cc: AndPostList now ensures that its left is
less frequent than its right (it can still be produced as an
operator decay product, and sometimes left is more frequent when
this happens).
Sun Oct 14 00:58:20 BST 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Use rare() to mark rarely taken branches.
Sun Oct 14 00:30:46 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Add rare() and usual() macros to config.h which allow
branch prediction hints to be given for compilers which support this
(currently GCC and Intel C++).
* HACKING: Document rare() and usual().
Sat Oct 13 22:37:32 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Improve wording.
Sat Oct 13 16:42:26 BST 2007 Olly Betts <olly@survex.com>
* api/postlist.cc,common/postlist.h,matcher/: Implement a variant of
PostList::skip_to() called PostList::check() which isn't required
to leave the PostList on a particular docid. This allows queries
filtered by a ValueRangePostList to run around 3.5 times faster.
Fixes buf#164, though there's probably scope for at least some
further improvement.
Sat Oct 13 16:08:07 BST 2007 Olly Betts <olly@survex.com>
* matcher/multiandpostlist.cc: Fix typo bug (get_termfreq_min
should be get_termfreq_max!)
Sat Oct 13 15:53:52 BST 2007 Olly Betts <olly@survex.com>
* matcher/multiandpostlist.cc: Fix assertion (should be <= not <).
Fri Oct 12 01:20:05 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Note that rst2html may be installed as rst2html.py.
Fri Oct 12 01:10:11 BST 2007 Olly Betts <olly@survex.com>
* matcher/localmatch.cc: Tweak formatting.
Thu Oct 11 22:58:36 BST 2007 Olly Betts <olly@survex.com>
* tests/: svn:ignore: Add termgentest and termgentest.exe.
Thu Oct 11 16:18:03 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: If rst2html isn't found, also look for rst2html.py,
which archlinux reportedly installs it as.
Thu Oct 11 16:09:20 BST 2007 Olly Betts <olly@survex.com>
* matcher/: Round the result of all get_termfreq_est() calculations to
the nearest integer instead of rounding down.
Thu Oct 11 15:40:48 BST 2007 Olly Betts <olly@survex.com>
* matcher/: Add new PostList subclass MultiAndPostList which handles
a multi-way AND operation in a single class. This allows us to
optimise some cases of 3 or more way AND operations much better
and gives a 16-17% performance improvement in tests using real-world
query logs.
* tests/api_anydb.cc: MultiAndPostList rounds get_termfreq_est()
calculations to the nearest integer (rather than always rounding
down) so adjust the expected answers in test_matches.
Thu Oct 11 15:14:27 BST 2007 Olly Betts <olly@survex.com>
* matcher/selectpostlist.cc: Explicitly qualify next() as
SelectPostList::next().
Thu Oct 11 13:04:40 BST 2007 Olly Betts <olly@survex.com>
* README: Remove the ancient history lesson - this material is better
left to the history page on the website.
Thu Oct 11 00:33:34 BST 2007 Olly Betts <olly@survex.com>
* matcher/branchpostlist.h: Fix comment typo.
Thu Oct 11 00:28:29 BST 2007 Olly Betts <olly@survex.com>
* api/postlist.cc,backends/flint/flint_alldocspostlist.cc,
backends/flint/flint_alldocspostlist.h,common/postlist.h,matcher/:
Eliminate several implementations of open_position_list and
read_position_list in favour of default ones in the PostList base
class which throw InvalidOperationError. Change the default
get_wdf implementation to also throw InvalidOperationError.
Wed Oct 10 22:27:44 BST 2007 Olly Betts <olly@survex.com>
* docs/install.html: Improve the remainder. This documents now just
gives a brief overview of building, suitable for most common cases,
and defers to the INSTALL document in each tarball for more details.
Wed Oct 10 21:51:39 BST 2007 Olly Betts <olly@survex.com>
* common/leafpostlist.h: Rewrite header.
* api/Makefile.mk,api/leafpostlist.cc: Add new source file for
virtual, and non-trivial, non-virtual, methods of LeafPostList.
* api/omdatabase.cc,backends/inmemory/inmemory_database.h,
backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
backends/remote/net_postlist.h,common/emptypostlist.h: Add missing
'#include "omassert.h"' which was previously pulled in implicitly
via '#include "leafpostlist.h"'.
* backends/inmemory/inmemory_database.h: Remove unused '#include
<stdlib.h>'.
* backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
MultiPostList::set_termweight() is never used, so eliminate it.
* backends/remote/net_postlist.cc: Rename parameter "weight" to
"min_weight" to avoid clash with new member variable of
LeafPostList.
* matcher/emptysubmatch.cc,matcher/localmatch.cc: Don't call
LeafPostList::set_termweight() with a BoolWeight object - the
default behaviour is now equivalent.
Wed Oct 10 18:18:09 BST 2007 Olly Betts <olly@survex.com>
* docs/install.html: Improve the first half.
Wed Oct 10 16:32:57 BST 2007 Olly Betts <olly@survex.com>
* common/postlist.h: Rewrite header.
* api/Makefile.mk,api/postlist.cc: Add new source file for virtual
methods of Xapian::PostingIterator::Internal.
* api/omdatabase.cc,backends/flint/flint_postlist.h,
backends/quartz/quartz_alldocspostlist.cc,
backends/quartz/quartz_postlist.h,matcher/valuerangepostlist.cc:
Add missing '#include "autoptr.h"' which was previously pulled in
implicitly via '#include "postlist.h"'.
Wed Oct 10 16:25:08 BST 2007 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Remove quartztest's test_postlist1 and
test_postlist2.
* tests/api_db.cc: Enhance test_termstats to cover part of the removed
tests. Enhance test_postlist1 to check more long terms. Eliminate
the helper function from test_postlist3.
* tests/api_wrdb.cc: Add test_postlist7 to cover the rest of what the
removed tests checked which isn't already checked elsewhere.
Wed Oct 10 02:29:44 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Update the release checklist.
Wed Oct 10 02:01:03 BST 2007 Olly Betts <olly@survex.com>
* matcher/scaleweightpostlist.cc,matcher/scaleweightpostlist.h: Move
virtual dtor definition out of header.
Wed Oct 10 01:41:05 BST 2007 Olly Betts <olly@survex.com>
* matcher/msetpostlist.cc: Avoid virtual method overhead in
MSetPostList::recalc_maxweight().
Wed Oct 10 00:16:00 BST 2007 Olly Betts <olly@survex.com>
* common/expandweight.h,expand/expand.cc,expand/expandweight.cc: We
never actually use ExpandWeight::get_maxweight(), so remove it.
Tue Oct 09 16:27:54 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_version.cc,
backends/flint/flint_version.h: Don't try to upgrade a flint
database if we're only reading it, or it's already the latest
version.
Mon Oct 08 10:14:57 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_nodb.cc: Rename test_scaleweightmatchnothing1 to
test_scaleweight3 so all the scaleweight tests can be run
together more easily. Add test_scaleweight4 to test that scaling
by a weight close to 1 is optimised away.
Sun Oct 07 12:20:14 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/database.h: Add explicit note that
Database::get_metadata() returns an empty string when the backend
doesn't support user-specified metadata, and that
WritableDatabase::set_metadata() throws UnimplementedError in this
case. Add note about current behaviour with multidatabases.
Sun Oct 07 10:58:24 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: No need to use AutoPtr<> here now.
Sun Oct 07 10:54:05 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* common/remoteprotocol.h: Bump the network protocol minor
revision, since we've added a query operator (OP_SCALE_WEIGHT)
and the server will need to be updated to understand serialised
queries containing it.
Sun Oct 07 01:54:43 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omqueryinternal.cc,include/xapian/query.h,matcher/,
tests/api_anydb.cc,tests/api_nodb.cc,tests/internaltest.cc:
Rename OP_MULT_WEIGHT to OP_SCALE_WEIGHT and MultWeight to
ScaleWeight, and move it to before OP_MULT_WEIGHT (to remove the
gap in the enum).
Don't do an epsilon test to compare the weight to zero (when
checking if it's effectively a boolean query) - do an exact
comparison instead. Raise an exception if the parameter for
OP_SCALE_WEIGHT is < 0 (instead of clipping it to 0). Adjust
weights accordingly.
Add test_scaleweight2() to test a query with some weights
multiplied by 0, and some by a different factor.
Wed Oct 03 17:23:02 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omqueryinternal.cc,tests/api_nodb.cc: Fix (and test) for a
double delete if OP_MULT_WEIGHT was applied to an empty query.
Mon Oct 01 13:20:39 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* NEWS: Update
* net/remoteconnection.cc: Back out previous change - I was
confused, the code was previously fine, and the change broke it.
Mon Oct 01 13:13:48 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omqueryinternal.cc: Fix access of uninitialised member when
unserialising a mult-weight query.
* tests/internaltest.cc: Add a regression test for unserialisationg
of mult-weight queries.
Mon Oct 01 13:11:24 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: After calling read(), check for received
== 0 after checking for errors, so that if an EINTR occurs in
read, we don't report EOF instead of retrying.
Sun Sep 30 23:20:34 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h: Add
OP_MULT_WEIGHT operator, and a new Query constructor which takes
a single subquery and a "double" parameter - currently only
useful for OP_MULT_WEIGHT. Add dbl_parameter to Query::Internal,
to hold this parameter. Add serialisation of OP_MULT_WEIGHT
using "." to represent the operator. Drop OP_MULT_WEIGHT
operators which have a parameter of 1 (or very close) when
simplifying, since these have no effect.
* matcher/multweightpostlist.cc,matcher/multweightpostlist.h: New
files, implementing a postlist which multiplies the weights from
its single sub-postlist by a parameter.
* matcher/Makefile.mk: Add new files.
* matcher/localmatch.cc: Add support for the OP_MULT_WEIGHT query
operator, which produces a MultWeightPostList if the associated
parameter is greater than DBL_EPSILON, and produces a boolean query
otherwise.
* tests/api_anydb.cc: Add tests for OP_MULT_WEIGHT operator with
various queries, and various multipliers.
* NEWS: Update
Sun Sep 30 23:13:29 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/testsuite.h: Add TEST_NOT_EQUAL_DOUBLE() macro.
* tests/harness/testsuite.cc: Add special
case to TEST_EQUAL_DOUBLE_() for exact equality of the supplied
arguments. This is tidier in general, because it avoids "inf"
being produces by the calculation, but is only actually necessary
in the case where the arguments are both exactly 0; it all works
out nicely for other values of the arguments.
Sun Sep 30 21:12:40 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/queryparsertest.cc: #define XAPIAN_DEPRECATED to disable
compiler warnings about the deprecated forms of add_prefix() and
add_boolean_prefix().
Sun Sep 30 21:07:25 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/Makefile.mk,docs/Makefile.am,docs/deprecation.rst,
include/Makefile.mk,include/xapian.h,include/xapian/queryparser.h,
queryparser/queryparser.cc,queryparser/queryparser.lemony,
queryparser/queryparser_internal.h,tests/: Re-apply changes which
needed more thought or more work before being included in a
release.
* NEWS: Update with current descriptions of these changes.
Sun Sep 30 20:22:25 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/valgrind.supp: Add further suppressions needed for the
version of zlib on ubuntu gutsy.
Fri Sep 28 15:38:18 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Final (?) update for 1.0.3.
Fri Sep 28 15:37:22 BST 2007 Olly Betts <olly@survex.com>
* PLATFORMS: Another small update.
Fri Sep 28 15:30:17 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Add link to the 1.0.N tracker bug.
Fri Sep 28 14:04:06 BST 2007 Olly Betts <olly@survex.com>
* PLATFORMS: More updates.
Fri Sep 28 13:45:51 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/database.h: Document that empty metadata keys will
cause an exception from get_metadata() and set_metadata().
* api/omdatabase.cc: Cause empty metadata keys to raise an
InvalidArgumentError if they're passed to set_metadata() or
get_metadata().
* tests/api_wrdb.cc: Add test_metadata3, to check behaviour with an
empty metadata key.
Fri Sep 28 13:30:49 BST 2007 Olly Betts <olly@survex.com>
* PLATFORMS: Updates from tinderbox.
Fri Sep 28 13:22:16 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/database.h: Clarify support for empty metadata keys.
Fri Sep 28 11:00:08 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/valgrind.supp: Add second version of the zlib end condition
check which works for the version of zlib in Ubuntu gutsy; ie,
version 1.2.3.3, where the error occurs in the function called
directly by deflate, rather than two levels below it.
Fri Sep 28 03:11:11 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Update for 1.0.3.
Fri Sep 28 03:05:10 BST 2007 Olly Betts <olly@survex.com>
* api/Makefile.mk,docs/Makefile.am,docs/deprecation.rst,
include/Makefile.mk,include/xapian.h,include/xapian/queryparser.h,
queryparser/queryparser.cc,queryparser/queryparser.lemony,
queryparser/queryparser_internal.h,tests/: Back out changes which
need more thought or more work in the interests of getting 1.0.3
out this month.
Fri Sep 28 03:04:19 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Update with recent changes.
Fri Sep 28 01:55:42 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Revert to the previous deprecation policy.
Fri Sep 28 01:20:34 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Rephrase since "should be in the MSet"
might be misunderstood.
Fri Sep 28 01:12:47 BST 2007 Olly Betts <olly@survex.com>
* AUTHORS,docs/Makefile.am,docs/glossary.rst,docs/index.html: Add
glossary put together by Jenny Black, also incorporating entries
from Deron Meranda's glossary on the wiki.
Thu Sep 27 23:06:30 BST 2007 Olly Betts <olly@survex.com>
* docs/stemming.html: Reorder the initial paragraphs so we actually
answer the question "What is a stemming algorithm?" up front.
Thu Sep 27 22:15:36 BST 2007 Olly Betts <olly@survex.com>
* matcher/valuerangepostlist.cc: Call ValueRangePostList::next()
explicitly to avoid the overhead of virtual method dispatch.
Thu Sep 27 14:43:25 BST 2007 Olly Betts <olly@survex.com>
* common/termlist.h: Don't need to forward declare
Xapian::Internal::ExpandWeight here.
Thu Sep 27 14:36:00 BST 2007 Olly Betts <olly@survex.com>
* common/termlist.h: Add missing (but indirectly included) '#include
<xapian/base.h>'.
Fri Sep 21 18:00:34 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Add deprecation for
Database::positionlist_begin() throwing DocNotFoundError , for
same reason as deprecating it throwing RangeError. Also, add
deprecation for QueryParser::add_prefix(f, p) and
add_boolean_prefix() - replaced by three argument form of
add_prefix. Also, add a policy that we don't add
XAPIAN_DEPRECATED when there's no replacement for the deprecated
feature in the last x.x.0 release.
* include/xapian/queryparser.h: Add @deprecated to documentation
comments for add_prefix(f, p) and add_boolean_prefix() (but don't
add XAPIAN_DEPRECATED() macro for now).
Fri Sep 21 16:13:25 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/queryparser.h: Fix copy and paste errors in
documentation comment, and hopefully clarify it somewhat.
Fri Sep 21 15:50:40 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/queryparsertest.cc: Initialise the default prefix from
prefixes.find(""), allowing multiple default prefixes to be set
by calling add_prefix() with an empty field name.
* queryparser/queryparser.lemony: Several more tests; mainly for
the new default_prefix functionality, but also a bit more
coverage for multiple prefixes in general.
Fri Sep 21 15:04:02 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc: API
addition: Revert previous change to behaviour of
QueryParser::add_prefix and QueryParser::add_boolean_prefix
methods, to avoid API change within a release series. Add new
QueryParser::add_prefix() form which takes three parameters; the
third parameter is a value from a new "prefix_type" enum.
* queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
Internal changes to allow multiple filters to be set for a single
field:
- Remove the PrefixInfoList object again - instead add a list of
prefixes to PrefixInfo. We only aim to support one type of
prefix for a given field, so the extra flexibility given by
PrefixInfoList is a districation.
- Change filter_group_id to be based on a list of prefixes,
instead of a single prefix.
- Change Term objects to store a list of prefixes instead of a
single prefix. make_term() now takes a prefix argument and
makes a single term. Term::as_... methods iterate through the
prefix list and OR together the resulting terms.
- Change TermList object to store a list of Terms instead of
Queries, and also to keep track of whether the prefix lists
for those Terms are all the same. When they are the same,
generate separate phrases for each prefix, and OR them
togeher, instead of generating phrases of "OR" groups of
terms. Remove the unused "TermList::add_term()" method.
* tests/queryparsertest.cc: Add simple tests of repeated inline
fields, phrases with multiple prefixed fields, tests of backwards
compatible behaviour of add_prefix(field, prefix), and
add_boolean_prefix(), and of the new add_prefix() form with
incompatible types.
Thu Sep 20 02:13:36 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Update with changes since 1.0.2.
Wed Sep 19 20:00:43 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Fix "Key_" in exception message to
say "Key" (the result of overzealous search-and-replace).
Wed Sep 19 17:08:16 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc,
queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
Handle repeated calls to QueryParser::add_boolean_prefix() with
the same field - this will generate multiple terms for each
occurrence of the field in the query. Involves reorganising the
internal representation of prefixes, to hold a list of PrefixInfo
objects for each field, instead of a single object. This also
paves the way towards handling for multiple calls to
QueryParser:add_prefix() with the same field, and allowing
add_{boolean_}prefix() with an empty field to set the default
prefix handling, but the behaviour of this are currently
unchanged. Technically, this could be considered an API change,
but the previous behaviour (of using only the most recent value
set by add_boolean_prefix) was unintentional and undocumented,
and seems unlikely to have been deliberately used.
* tests/queryparsertest.cc: Add a very simple test for repeated
boolean_prefix fields; several more are needed. Also, a
commented out test of repeated non-boolean prefix fields.
Tue Sep 18 23:28:48 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.lemony: Remove unused variable
"term_group".
Tue Sep 18 16:56:37 BST 2007 Olly Betts <olly@survex.com>
* api/matchspy.cc,include/xapian/matchspy.h: Use a set rather than a
map to store the "multivalues" flags.
Mon Sep 17 14:10:47 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/matchspy.h: Fix documentation comment typo.
Sun Sep 16 04:13:20 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Fix compiler warning in mingw build.
Sun Sep 16 02:59:54 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,tests/api_wrdb.cc: Check length of
new terms is at most 245 bytes for flint in add_document() and
replace_document() so that the API user gets an error there rather
than when flush() is called (explicitly or implicitly). Fixes
bug#44.
Sat Sep 15 20:11:36 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_version.cc: Add missing include of
msvc_posix_wrapper.h.
Sat Sep 15 17:58:35 BST 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/database.cc,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
backends/flint/flint_version.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,common/database.h,
include/xapian/database.h,tests/api_wrdb.cc: Add support for user
specified metadata (bug#143).
Sat Sep 15 02:26:40 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h:
Implement FlintCursor::find_entry_ge() a little more efficiently
(we could do better still by modifying FlintTable too).
Sat Sep 15 00:56:54 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.cc: If we found the exact key, just copy
it to current_key.
Fri Sep 14 21:52:45 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/: Overhaul FlintAllDocsPostList.
Fri Sep 14 19:20:56 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_alltermslist.cc: Rework
FlintAllTermsList::skip_to() to use FlintCursor::find_entry_ge().
Fri Sep 14 17:45:06 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.h: Improve documentation comment.
Fri Sep 14 17:28:17 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spellingwordslist.cc,
backends/flint/flint_synonym.cc: Use FlintCursor::find_entry_ge().
* backends/flint/flint_synonym.h: Use FlintCursor::find_entry_lt().
* backends/flint/flint_alltermslist.h: Use FlintCursor::find_entry_lt()
and skip any keys before "\x00\xff" to allow for extra metadata
keys.
Fri Sep 14 15:26:04 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: The
reason why a deleted key is still visible to the cursor is that it
is running over the previous revision of the tree. So we don't
need to call find_entry() at all - we can just call next(). Also
extend FlintCursor::del() to return whether the cursor is positioned
(like FlintCursor::next() does).
* backends/flint/flint_postlist.cc: Use the return value of
FlintCursor::del().
Fri Sep 14 15:10:39 BST 2007 Olly Betts <olly@survex.com>
* tests/Makefile.am: Reorder the testdata/flint-x.y.z files
consistently.
Fri Sep 14 12:48:04 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Add "tar-ustar" option to AM_INIT_AUTOMAKE. This
is needed to avoid a failure of make dist due to filepaths of
more than 99 characters (in the generated documentation: the
relevant filepaths are for the NumberValueRangeProcessor class,
and extend to 103 characters). Automake documentation implies
that tar-v7 is the default format, which doesn't support
filepaths longer than 99 characters portably; ustar allows 256
characters. The automake documentation says that the ustar
format "is believed to be old enough to be portable"; if we come
across problems due to the format change we could consider
renaming files to reduce the filepath length.
* tests/Makefile.am: Remove
testdata/flint-1.0.2/{value,position}.{baseA,DB} from
distribution, since they don't actually exist. Fixes make dist.
Fri Sep 14 10:45:35 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Add
FlintCursor::find_entry_gt(), and use it instead of
flint_entry_ge() in FlintCuror::del(). This fixes failure of
deldoc4 test. I'm not sure why find_entry() can return true
immediately after the key it's searching for was deleted with
B->del(), though: that merits further investigation.
Fri Sep 14 04:57:14 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-inspect.cc: Avoid comparing char with 0 - on platforms
where char is unsigned by default this can give a compiler warning.
Fri Sep 14 03:40:18 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Removed unused variable.
Fri Sep 14 01:56:36 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_alltermslist.cc: Fix comment typo.
Fri Sep 14 01:51:52 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Add
FlintCursor::find_entry_lt() and FlintCursor::find_entry_ge()
which we can implement more efficiently (in the future) than
user code calling FlintCursor::find_entry() and then having to
adjust the cursor position in some cases.
Thu Sep 13 14:52:34 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_alltermslist.cc: FlintCursor::after_end() is
never true after FlintCursor::find_entry() so remove check for this
case!
Thu Sep 13 03:11:19 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_alltermslist.h,backends/flint/flint_database.cc,
backends/flint/flint_database.h: Don't pass FlintPostListTable
pointer to FlintAllTermsList - it can find this via the database
if we make it FlintDatabase instead of Database::Internal.
Thu Sep 13 02:07:19 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/: Read/write the metainfo key from FlintDatabase to
avoid having to pass a huge long list of values across once we start
to store more statistics.
Thu Sep 13 02:03:46 BST 2007 Olly Betts <olly@survex.com>
* backends/database.cc,common/database.h: Move definitions of virtual
methods out of the header file.
Thu Sep 13 01:33:49 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_database.h:
Store the total_length and lastdocid values in FlintDatabase object.
Wed Sep 12 20:27:49 BST 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Eliminate a block which used to scope some
variables which have now moved. Unify debug output from different
cases after the match. Remove half-finished comment which doesn't
seem to be trying to say anything useful.
Wed Sep 12 20:20:18 BST 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: In checkatleast2, the total number of matching
documents in the database is 5, so use TEST_EQUAL instead of
TEST_GREATER_OR_EQUAL to compare get_matches_lower_bound() with 5.
Wed Sep 12 17:55:00 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.h: Fix some comment typos and
outdated information. Remove some superfluous uses of "virtual".
Wed Sep 12 17:15:58 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
Failing to create a flint or quartz database because we couldn't
create the directory for it now throws DatabaseCreateError not
DatabaseOpeningError.
* tests/api_db.cc: Update test cases.
Wed Sep 12 15:40:16 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_database.h:
If we reach the flush threshold during a transaction, flush the
postlist changes, but don't actually commit them.
Wed Sep 12 14:12:52 BST 2007 Olly Betts <olly@survex.com>
* common/msvc_posix_wrapper.cc,common/msvc_posix_wrapper.h: Add
msvc_posix_rename() which can rename a file on top of another file.
* common/stringutils.h: Add common_prefix_length() function.
* backends/flint/: Clean up FlintWritableDatabase - it now just
inherits from FlintDatabase which allows several virtual methods
which just forwarded to FlintDatabase to be dropped. Also, we
now no longer need to pass FlintTable objects to other classes
- they can just find the tables they want via the database pointer.
The never-used "store_termfreqs" flag has been dropped from the
termlist table entries - existing 1.0.x flint databases will be
automatically upgraded to the new version. Opening a database
now calls stat() less, so should be slightly more efficient.
And TermIterator::positionlist_count() now works for the flint
backend.
* tests/Makefile.am,tests/api_db.cc,tests/testdata/flint-1.0.2/: New
test flintbackwardcompat2 which tests that we can open a flint
database from 1.0.2.
* tests/api_wrdb.cc: New test adddoc4 which checks that termlists
handle an initial term of any valid length correctly.
* tests/testdata/flint-1.0.1/postlist.DB: Mark as a binary file in
SVN.
Tue Sep 11 23:02:56 BST 2007 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h: Implement
TermIterator::positionlist_count() for the inmemory backend.
* tests/api_posdb.cc: Add feature test for
TermIterator::positionlist_count() (which currently skips for all
backends except inmemory).
Tue Sep 11 03:43:30 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Make sure flush_threshold gets
initialised.
* backends/flint/flint_database.h: Change type of flush_threshold from
`size_t' to `Xapian::doccount' for consistency with the type of
changes_made.
Tue Sep 11 03:19:37 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_database.cc,backends/flint/flint_database.h:
Change flush_threshold from static to non-static, and set it for
each FlintWritableDatabase based on the value of the
XAPIAN_FLUSH_THRESHOLD environment variable at the time the
database was opened, instead of caching the value for each future
database which is opened.
Tue Sep 11 02:59:45 BST 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: When running rst2html, use "--exit-status=warning"
rather than "--strict". The former actually gives a non-zero exit
status for a warning or worse, while the former doesn't, but does
include any "info" messages in the output HTML.
Tue Sep 11 02:38:30 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Add "Database::positionlist_begin() throwing
RangeError".
Tue Sep 11 00:52:27 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Document a few more "coding standards".
Mon Sep 10 21:34:23 BST 2007 Olly Betts <olly@survex.com>
* examples/delve.cc,examples/simpleexpand.cc,net/tcpserver.cc,
queryparser/queryparser.cc,queryparser/queryparser.lemony: Add more
missing "#include <string.h>" instances.
Mon Sep 10 20:24:25 BST 2007 Olly Betts <olly@survex.com>
* net/serialise.cc: Add missing "#include <string.h>".
Sun Sep 09 15:38:11 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.h,backends/flint/flint_synonym.h,
backends/flint/flint_table.h: Fix typo (Z_DEFAULT_COMPRESSION
where it should be Z_DEFAULT_STRATEGY) which meant that zlib
compression wasn't enabled for the spelling or synonym tables.
Fri Sep 07 19:31:44 BST 2007 Olly Betts <olly@survex.com>
* docs/spelling.rst: Fix typo.
Thu Sep 06 15:02:43 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/editdistance.cc: Fix off-by-one error in loop bounds when
setting up fkp array initially. Fixes bug #194.
* tests/api_wrdb.cc: Add regression test for #194, spell5.
Thu Sep 06 14:31:15 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: More localised fix for preserving the
start of the valgrind report when in verbose mode. Rework the code
which pulls out the start of the report to summarise why the test
failed.
Thu Sep 06 14:17:44 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/testsuite.cc: When displaying valgrind output, seek
back to the start of the valgrind output for the current test
before dumping it to stdout: previously, the earlier check for the
valgrind error message to display (when not using -v) caused the
first 1024 bytes of the valgrind output to get dropped.
Tue Sep 04 20:13:29 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: For remote submatches, keep a count of
matches which we know exist, but we don't get passed from the
submatch. These can be detected by checking for the lowerbound
on the matches in the submatch being greater than the index of
the last item in the returned submset. When the match is over,
use this count, together with docs_matched, to adjust the lower
bound and estimate (and upper bound, if we've not seen as many
documents as we were asked to check for). Fixes checkatleast2
and checkatleast3 in the remote database case.
* tests/harness/testsuite.h: Add TEST_GREATER_OR_EQUAL,
TEST_GREATER, TEST_LESSER_OR_EQUAL and TEST_LESSER macros, which
display the values of the arguments if they fail.
* tests/api_anydb.cc: Use TEST_GREATER_OR_EQUAL and TEST_EQUAL in
checkatleast2 and checkatleast3, to make failures easier to
debug.
Tue Sep 04 18:16:49 BST 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Restructure to make the control flow clearer.
Rewrap some comments which got wrapped to ~82 columns somehow.
Tue Sep 04 17:21:49 BST 2007 Olly Betts <olly@survex.com>
* docs/overview.html: Restore the HTML header I accidentally deleted
in November 2006.
Tue Sep 04 17:15:30 BST 2007 Olly Betts <olly@survex.com>
* docs/overview.html: Fix typo.
Tue Sep 04 13:47:27 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_anydb.cc: Tighten test_checkatleast3 to check for
previous bug (now fixed).
Tue Sep 04 13:37:01 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/multimatch.cc: If check_at_least is greater than
maxitems, but there are fewer results than check_at_least, the
lower and upper bounds reported should be equal (and exact). Fix
a bug which caused this not to be the case, by checking if
docs_matched < check_at_least, and forcing the bounds (and
estimate) to be docs_matched in this case.
Also, fix a bug when sorting by anything other than relevance,
which was causing potential matches which are too low in the
ranking to make the mset not to be added to the count of
docs_matched, even when docs_matched < check_at_least.
Also, add a few extra explanatory comments and debug log messages
in get_mset().
Tue Sep 04 12:43:03 BST 2007 Olly Betts <olly@survex.com>
* PLATFORMS: Update from debian buildd logs.
Tue Sep 04 09:57:25 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* Makefile.am,configure.ac,msvc/genversion.pl,msvc/version.h.in:
Move msvc/genversion.pl and msvc/version.h.in to win32msvc in
xapian-maintainer-tools. Remove generation of msvc/version.h
from configure.in, and AC_SUBST() of MAJOR_VERSION,
MINOR_VERSION and REVISION, which were only in place for this
generation. Remove msvc/version.h from distribution tarballs.
Tue Sep 04 02:56:00 BST 2007 Olly Betts <olly@survex.com>
* matcher/andpostlist.cc: If the database has > 2G documents then the
sum of termfreq_min can overflow, so handle this case correctly.
Tue Sep 04 00:05:47 BST 2007 Olly Betts <olly@survex.com>
* xapian-config.in: We always need to include dependency_libs in the
output of `xapian-config --libs` if shared libraries are disabled.
Mon Sep 03 16:28:33 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Allow "xapian-check db/record." and
"xapian-check db/record.DB".
Mon Sep 03 02:16:43 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst,include/xapian/enquire.h: Deprecate
Enquire::register_match_decider().
* api/omenquire.cc,common/omenquireinternal.h: Remove mdecider_map
since the set values are never used anywhere.
Sun Sep 02 20:54:33 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Add "update the 1.0.N tracker bug" to the release
checklist.
Fri Aug 31 10:44:19 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_db.cc,tests/api_wrdb.cc: Fix compilation of apitest,
which was broken on 64 bit platforms due to size_t instead of
doccount bug.
Fri Aug 24 11:56:18 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/matchspy.cc,include/xapian/matchspy.h: Fix uses of size_t
which should have been Xapian::doccount. Was causing compile
errors on platforms where size_t and Xapian::doccount were
different sizes.
Fri Aug 03 20:10:15 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_nodb.cc: Add test_stringlistserialise1() to test the
StringListSerialiser and StringListUnserialiser. Change the list
of testcases to use the TESTCASE and END_OF_TESTCASES macros.
Fri Aug 03 19:53:26 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/matchspy.cc,include/xapian/matchspy.h: Add StringListSerialiser
and StringListUnserialiser classes which can be used to serialise
a list of strings into a single string. Add flag to
ValueCountMatchSpy to use this to unserialise the values read
from the database into multiple strings, allowing several values
to be stored for a particular slot in a database: this allows
multiple values of a particular facet to be stored.
Thu Jul 26 16:55:18 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_table.cc: Change STRINGIZE to om_tostring()
in error message about a key which is too long; STRINGIZE doesn't
work since FLINT_BTREE_MAX_KEY_LEN is no longer a preprocessor
constant - it's a C++ constant; before this change, the error
message contained the literal text "FLINT_BTREE_MAX_KEY_LEN".
Tue Jul 17 12:20:55 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/matchspy.cc,include/xapian/matchspy.h: Add a
MultipleMatchDecider, which calls a list of deciders in order,
until one returns false.
* include/xapian/enquire.h: Expand comment to say which way round
the return values of the MatchDecider operator are.
* tests/api_db.cc: Add test_matchfunctor3() to test the
MultipleMatchDecider - also tests the ValueCountMatchSpy,
incidentally.
Tue Jul 17 11:10:42 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/matchspy.cc,include/xapian/matchspy.h: Make
get_most_frequent_items() private, since I'm not convinced it's
useful to make it available externally. We can always make it
public again if it's useful to do so.
* test/api_wrdb.cc: Update tests accordingly.
Sat Jul 14 00:17:06 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/matchspy.cc,include/xapian/matchspy.h: Get rid of the
TopValueMatchSpy in favour of a new function
"get_most_frequent_items", which processes the output of a
ValueCountMatchSpy. Add a TermCountMatchSpy which counts the
occurrences of terms with a given prefix, and gives output in
the same form as ValueCountMatchSpy. Add convenience methods
ValueCountMatchSpy::get_top_values() and
TermCountMatchSpy::get_top_terms() which use this to return the
most frequent items seen by the matchspy.
* tests/api_wrdb.cc: Test the ValueCountMatchSpy, and the
get_most_frequent_items() function.
Fri Jul 13 18:57:30 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/andpostlist.cc,tests/api_anydb.cc: Improve the lower
bound on the number of matching documents for an AND query - if
the sum of the lower bounds for the two sides is greater than the
number of documents in the database, then some of them must have
both terms. This greatly improves the lower bound for queries of
the form "<alldocuments> FILTER foo" (since FILTER is a subclass
of AND, and uses the same method), but is probably a useful
improvement elsewhere.
Fri Jul 13 17:53:46 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/valueranges.rst: Correct out-of-date reference to
float_to_string, spotted by Enrico Zini.
Wed Jul 11 22:54:43 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
Move ValueAndFrequency out of the TopValueMatchSpy class - it
doesn't seem to be possible to wrap it with swig without doing
this, and it doesn't seem much less tidy.
Wed Jul 11 18:03:18 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/matchspy.cc,include/xapian/matchspy.h: Split MatchSpy into a
base class (ValueCountMatchSpy), which just counts the values in
the documents it sees, and a subclass (CategorySelectMatchSpy)
which does the grouping into categories, and scores the
categories. Add another subclass (TopValueMatchSpy) which
calculates a sorted vector holding the most frequent values.
* tests/api_wrdb.cc: Update matchspy1 and matchspy2 to use
CategorySelectMatchSpy instead of MatchSpy, and corresponding
changes to the methods. Add matchspy3 to test the
TopValueMatchSpy.
Mon Jul 09 15:40:58 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/termgentest.cc: Fix copyright: everything I've done in 2007
has been for Lemur.
Mon Jul 09 15:40:38 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/version_h.cc: Fix type in comment.
Fri Jul 06 12:14:48 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/enquire.h: Add note to register_match_decider()
documentation comment of what this function is for, and also that
it doesn't currently do anything (other than store the values
passed to it in the enquire internals).
Thu Jul 05 20:52:52 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/categorisation.rst: Fix typo.
Thu Jul 05 20:41:49 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_wrdb.cc: Rework matchspy2 to use approximate values to
avoid failing on some platform due to differing precision.
Thu Jul 05 12:21:48 BST 2007 Olly Betts <olly@survex.com>
* docs/categorisation.rst: Complete half sentence.
Thu Jul 05 12:17:20 BST 2007 Olly Betts <olly@survex.com>
* docs/categorisation.rst: Add section on restricting by category
values.
Thu Jul 05 04:47:18 BST 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/categorisation.rst: Add topic document
discussing use of Xapian::MatchSpy.
Thu Jul 05 02:08:13 BST 2007 Olly Betts <olly@survex.com>
* include/xapian.h,tests/api_wrdb.cc: Restore MatchSpy stuff.
Thu Jul 05 01:38:38 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Note that RoadMap on the wiki needs updating for each
release.
Thu Jul 05 01:03:05 BST 2007 Olly Betts <olly@survex.com>
* AUTHORS: Update.
Thu Jul 05 00:31:00 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Minor tweaks and clarifications.
Thu Jul 05 00:29:53 BST 2007 Olly Betts <olly@survex.com>
* include/xapian.h,tests/api_wrdb.cc: Disable MatchSpy class for 1.0.2
as it's not ready for release yet.
Wed Jul 04 21:20:59 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* NEWS: Update with release date for release 1.0.2
Wed Jul 04 21:09:18 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* AUTHORS: Add Tomek Jackowiak, for reporting bug #166 (missing
Xapian::Query documentation).
Wed Jul 04 20:45:56 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Updated version and library version for 1.0.2.
Wed Jul 04 20:36:07 BST 2007 Olly Betts <olly@survex.com>
* api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
Tidy up API for MatchSpy::build_numeric_ranges() and add tests.
Wed Jul 04 19:40:31 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* NEWS: Fully updated.
Wed Jul 04 18:33:59 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* NEWS: Move some of the changelog entries into news-style comments.
Wed Jul 04 17:50:19 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_wrdb.cc: SKIP_TEST() spell3 on windows - it doesn't
work there due to trying to delete (and then overwrite) an open
database. We shouldn't be doing this, so add a long FIXME
explaining what we should be doing instead.
Wed Jul 04 17:27:22 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Partly update.
Wed Jul 04 17:19:51 BST 2007 Olly Betts <olly@survex.com>
* AUTHORS: Add Simon Tatham for spotting the -INFINITY issue, and for
a lot of useful advice during the CVS to SVN transition.
Wed Jul 04 17:16:59 BST 2007 Olly Betts <olly@survex.com>
* api/,include/xapian/queryparser.h,tests/queryparsertest.cc: Rename
Xapian::NumberValueRangeProcessor::float_to_string() to
Xapian::sortable_serialise() and
Xapian::NumberValueRangeProcessor::string_to_float() to
Xapian::sortable_unserialise().
Wed Jul 04 17:16:16 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Add rationale for 2 space indents for "public", etc.
Wed Jul 04 14:09:57 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Loops on integers and scale to doubles
rather than looping on doubles and scaling to get integers.
Wed Jul 04 13:01:11 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: If the NumberValueRangeProcessor
string encodings don't sort the same way, there's no need to report
the string encodings in the error message as they are written to
"tout" just before, along with the respective numbers they came
from. The string encodings can contain control characters, so are
liable to corrupt the test failure message.
Wed Jul 04 12:25:15 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/valuerangeproc.cc: Fix encoding of extremely large, negative,
non-IEEE representation to be -INFINITY, not +INFINITY. Thanks
to Simon Tatham for pointing this out.
* include/xapian/queryparser.h: Add a documentation comment note
that zero and -zero will be transformed to the same value.
Wed Jul 04 10:09:33 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/valuerangeproc.cc: Change encoding used for doubles to a much
more compact scheme, and add support for +-INFINITY. Also, some
other tweaks to avoid unnecessary computation.
* tests/queryparsertest.cc: Update test cases to expect new
encoding of doubles, and add values for INFINITY and DBL_MAX and
some other special numbers to the list of numbers that are
specifically checked.
Wed Jul 04 03:29:10 BST 2007 Olly Betts <olly@survex.com>
* api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
Category score now explicitly weights for having nearer the
requested number of categories. Category score is now normalised
so values should be roughly comparable between different sized
collections. Add untested code to build ranges.
Wed Jul 04 00:48:07 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Add new "--no-renumber" option to preserve
document ids from source databases. Fix bug in change to add
support for spelling and synonym tables which was preventing any
renumbering from happening!
Wed Jul 04 00:25:52 BST 2007 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,tests/api_wrdb.cc: Fix bug in
inmemory backend - using replace_document() to add a document with a
specific document id above the highest currently used would create
empty documents for all document ids in between.
Tue Jul 03 09:27:36 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Add note that protection level declarations in classes
and structs should only be indented by 2 spaces.
Tue Jul 03 03:53:11 BST 2007 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/matchspy.cc,include/xapian/matchspy.h,
tests/api_wrdb.cc: Add MatchSpy method to score how good a
categorisation is.
Tue Jul 03 01:24:19 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Replace `#include <xapian/stem.h>'
with forward declaration of Stem.
Tue Jul 03 01:14:12 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/errorhandler.h: Replace `#include <xapian/error.h>'
with forward declaration of Error.
* api/errorhandler.cc: Now needs to explicitly `#include
<xapian/error.h>'.
Tue Jul 03 01:08:30 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/dbfactory.h: Replace `#include <xapian/database.h>'
with forward declarations of Database and WritableDatabase.
Tue Jul 03 00:59:57 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Remove `#include <xapian/error.h>'.
Mon Jul 02 23:25:55 BST 2007 Olly Betts <olly@survex.com>
* include/Makefile.mk,include/xapian.h,include/xapian/matchspy.h,
tests/api_wrdb.cc: Implement "MatchSpy" class to tally values
in matching documents.
Mon Jul 02 18:15:18 BST 2007 Olly Betts <olly@survex.com>
* api/omenquire.cc,include/xapian/enquire.h: Fix last change to
preserve ABI compatibility.
Mon Jul 02 17:52:10 BST 2007 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
include/xapian/enquire.h,matcher/multimatch.cc,net/remoteserver.cc,
tests/api_db.cc: Add support for a "matchspy" - a MatchDecider which
is documented to be tested on ever candidate document. We plan to
optimise the current matchdecider to be used as little as possible.
Mon Jul 02 17:35:12 BST 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc: Enhance matchfunctor1 to test that the functor
returns ALL matching documents, not just that all documents returned
match.
Mon Jul 02 16:36:57 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* common/omassert.h: Fix to avoid warning in gcc-snapshot; use
do{}while(0) to protect assertions, and remove the old "if (a) {}
else {fail}" constructions which tried to do the same job.
Mon Jul 02 14:56:58 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-inspect.cc: Add missing #include of <stdio.h> - fixes
gcc-2.95 compilation.
Mon Jul 02 14:54:50 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/termgenerator_internal.h: Fix for gcc-2.95
compilation.
Mon Jul 02 14:09:22 BST 2007 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/valuerangeproccompat.cc,
include/xapian/queryparser.h: Put the new NumberValueRangeProcessor
in a sub-namespace which we then import it from. Restore the old
NumberValueRangeProcessor implementation inside the library so that
it is available to code linked against 1.0.0 or 1.0.1 to keep ABI
compatibility.
Sun Jul 01 15:32:30 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Clearer description of
NumberValueRangeProcessor. Don't document the number format in
terms of strtod() - that's a bug, not a feature we want to be tied
to.
* include/xapian/query.h,include/xapian/queryparser.h: Use "@a" not
"\a" for consistency with existing usage.
Sun Jul 01 10:09:42 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/localmatch.cc: When registering a term, check if it's
empty, and if so use the document count as the term frequency,
rather than calling the database to get the term frequency of an
empty term (most database backends have an assertion that the
term is not empty, and an empty term isn't a valid parameter to
pass to get_termfreq() anyway).
* matcher/multimatch.cc: For MatchAll queries, the "" term will not
be found in the termlist of the top document, so check if a ""
term is present in the query, and use it to increase the
percent_scale if so. This fixes an Assertion which checked that
percent_scale was not 0.
* tests/api_db.cc: Add test_matchall1() which tests running a query
with a MatchAll query.
* tests/api_nodb.cc: Rename test_emptyquery1 and test_emptyquery2
to test_emptyquery2 and test_emptyquery3, respectively. There
was already a (different) test_emptyquery1 in api_anydb.cc.
Sat Jun 30 18:04:06 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Write `2.0' rather than `(double)2'.
Sat Jun 30 16:12:49 BST 2007 Olly Betts <olly@survex.com>
* docs/valueranges.rst: Fix typo. Fix ".. note:" to ".. note::" so
it appears visibly in the HTML output rather than in an HTML
comment!
Sat Jun 30 15:14:33 BST 2007 Olly Betts <olly@survex.com>
* api/omdocument.cc,common/document.h,include/xapian/document.h:
Add Xapian::Document::get_docid() method.
Sat Jun 30 04:00:57 BST 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: If there's only one term in the query (a
pretty common case) we don't need to look at the top document's
termlist to determine that it matches all the query terms.
Sat Jun 30 00:37:09 BST 2007 Olly Betts <olly@survex.com>
* INSTALL: Add note that zlib must be installed before you can build
Xapian.
Fri Jun 29 22:40:58 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/: If doccount == lastdocid, all document ids up to
lastdocid are used, so we provide a special really efficient version
implementation of iterating all documents for this common case for
flint.
Fri Jun 29 00:39:04 BST 2007 Olly Betts <olly@survex.com>
* common/stringutils.h: Add startswith() and endswith() overloads
which take a single character.
* backends/flint/flint_spellingwordslist.cc,bin/xapian-inspect.cc:
Use new forms.
* backends/flint/flint_spellingwordslist.cc: Fix comment typo.
Thu Jun 28 21:43:49 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spellingwordslist.cc: Another begins_with()
which I somehow missed.
Thu Jun 28 19:51:03 BST 2007 Olly Betts <olly@survex.com>
* api/valuerangeproc.cc,backends/flint/flint_alltermslist.cc,
backends/flint/flint_synonym.cc,
backends/inmemory/inmemory_alltermslist.cc,
backends/quartz/quartz_alltermslist.cc,
backends/quartz/quartz_metafile.cc,bin/xapian-inspect.cc,
common/stringutils.h,tests/harness/testsuite.cc: Rename
begins_with() to startswith() and ends_with() to endswith() for
consistency with Python string operations.
Thu Jun 28 18:49:50 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Don't put a Z prefix on terms if the
stemmer is "none", which matches what TermGenerator generates.
Thu Jun 28 02:22:04 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Don't SEGV when Query::MatchNothing is used
with OP_AND_NOT (fixes bug#176).
* tests/api_nodb.cc: Add regression test emptyquery2.
* AUTHORS: Thank bug reporter (Krzysztof Klemm).
Wed Jun 27 13:05:55 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* NEWS: Updated.
Wed Jun 27 13:04:19 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* examples/copydatabase.cc: Add support for copying the spelling
data.
Wed Jun 27 12:46:54 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* NEWS: Updated.
Wed Jun 27 12:13:50 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-check.cc: Check spelling and synonym Btrees.
Wed Jun 27 12:10:47 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Add merging for spelling and synonym tables.
Wed Jun 27 12:09:34 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.cc: Fix PrefixCompressedStringItor to
not ignore the last entry.
* tests/api_wrdb.cc: Regression test (spell4).
Wed Jun 27 11:51:10 BST 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Remove bogus comment.
Wed Jun 27 04:12:56 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.h: Make FlintCursor::after_end() const.
Tue Jun 26 22:31:24 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_wrdb.cc: Add test_spell3(), which tests spelling
correction with multi databases, and the results of the iterator
from Database::spellings_begin() with single and multi databases.
Tue Jun 26 20:51:13 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omtermlistiterator.cc: Handle pruning, so that multi-database
spelling word iterators work. Pruning should arguably always
have been handled, but it's never been possible for the TermList
passed to TermIterator to prune before, so it's not been an
issue.
Tue Jun 26 20:50:06 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_spellingwordslist.h: Don't bother testing
whether we found an entry which was exactly "W" - if we do, the
database is corrupt, but the best recovery strategy would just be
to continue at the next matching entry.
Tue Jun 26 20:26:03 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc: Remove mistaken skip_to("W") - should be done
by open_spelling_wordlist() rather than here.
* backends/flint/flint_spellingwordslist.h: Only call
cursor->prev() if find_entry("W") finds an entry.
Tue Jun 26 17:46:27 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_alltermslist.cc,
backends/flint/flint_spellingwordslist.cc,
backends/flint/flint_synonym.cc: Remove calls to abort() which
are followed immediately by an Assert() which checks the same
condition.
Tue Jun 26 17:26:02 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/database.h: Add spellings_begin() and
spellings_end(), to iterate through the spelling correction
target words.
* api/omdatabase.cc: Implement spellings_begin(), using the newly
added FreqAdderOrTermList to join the spellings lists.
* common/database.h,backends/database.cc: Add
open_spelling_wordlist() to get iterator of spelling targets, if
any, with default implementation which returns NULL.
* backends/flint/flint_database.h,backends/flint/flint_database.cc:
Implement open_spelling_wordlist() for flint.
* backends/flint/flint_spelling.h: Make merge_changes() public, so
it can be called when a writable database needs to open a
spelling wordlist.
* backends/flint/flint_spellingwordslist.h,
backends/flint/flint_spellingwordslist.cc: New files,
implementing an iterator over the spelling targets.
Tue Jun 26 17:25:09 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* common/ortermlist.h,expand/ortermlist.cc: Add a
"FreqAdderOrTermList", which adds the term frequencies of the
sublists, rather than requiring that they're equal for terms
which are in both.
Tue Jun 26 17:22:03 BST 2007 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Update to mention spelling and synonym tables,
and to document optional tables more clearly.
Tue Jun 26 16:23:25 BST 2007 Olly Betts <olly@survex.com>
* tests/termgentest.cc: Add feature test for TermGenerator spelling
integration.
Tue Jun 26 16:14:56 BST 2007 Olly Betts <olly@survex.com>
* tests/termgentest.cc: Fix comment paste-o.
Tue Jun 26 16:11:11 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/termgenerator.h,queryparser/termgenerator.cc,
queryparser/termgenerator_internal.cc,
queryparser/termgenerator_internal.h: Add support for generating
spelling data to TermGenerator class.
Tue Jun 26 15:22:12 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Don't skip "empty" source databases, as they
may have spelling and/or synonym data. Warn if more than one source
database has spelling data and ignore all but the first. Similarly
warn and ignore for synonym data.
Tue Jun 26 13:52:15 BST 2007 Olly Betts <olly@survex.com>
* examples/copydatabase.cc: Fix code which extracts the leafname to
handle a trailing directory separator.
* examples/copydatabase.cc: Copy synonym data across. Print warning
that spelling data isn't copied (as there's no API to access it
currently).
Tue Jun 26 13:21:13 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Fix to compact spelling and synonym tables.
Tue Jun 26 02:20:50 BST 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Fix randomly indented line.
Tue Jun 26 02:20:01 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/document.h: Change parameter name for
Document::get_value() to match other parameter names in the class.
Tue Jun 26 02:19:16 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: FLAG_AUTO_MULTIWORD_SYNONYMS now
implies FLAG_AUTO_SYNONYMS.
Tue Jun 26 02:18:02 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add test for a single word synonym in
multi-synonym mode.
Tue Jun 26 02:08:47 BST 2007 Olly Betts <olly@survex.com>
* common/ortermlist.h,queryparser/termgenerator_internal.h: Fix
warnings from Intel's C++ compiler.
Tue Jun 26 01:45:09 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Snapshots and releases are now bootstrapped with libtool
1.5.24, which includes all the patches we were applying on top of
1.5.22.
* HACKING: Expand note about preferring pre-increment to
post-increment to mention preferring it to adding one, and to cover
decrementing too.
Tue Jun 26 01:34:41 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.cc: Fix bug appending spelling data to
an existing trigram.
Tue Jun 26 01:34:07 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Fix handling of exceptions during
commit.
Mon Jun 25 17:01:40 BST 2007 Olly Betts <olly@survex.com>
* docs/spelling.rst: Update for Unicode spelling correction.
Mon Jun 25 15:41:43 BST 2007 Olly Betts <olly@survex.com>
* api/editdistance.cc,api/editdistance.h,api/omdatabase.cc:
Convert to UTF-32 before calculating edit distances.
* tests/api_wrdb.cc: Add test coverage for Unicode spelling
correction.
Mon Jun 25 14:03:34 BST 2007 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Remove tests for removed method
QuartzPostList::get_collection_freq().
Mon Jun 25 12:32:07 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.cc: Replace abort() with exception
throwing.
Mon Jun 25 03:01:20 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Track the fd used to communicate
with a xapian-tcpsrv child process so we can close it when we reap
the child pid.
Mon Jun 25 02:44:04 BST 2007 Olly Betts <olly@survex.com>
* docs/valueranges.rst: Fix bad RST markup.
Sun Jun 24 23:24:26 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Fix memory leak in test harness
launching of xapian-tcpsrv so that "apitest -b remotetcp" now passes
under valgrind.
Sun Jun 24 19:39:59 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/valueranges.rst: Add documentation for the
NumberValueRangeProcessor, now that it is fixed.
Sun Jun 24 14:29:06 BST 2007 Olly Betts <olly@survex.com>
* backends/remote/net_postlist.cc,backends/remote/net_postlist.h:
Move NetworkPostList virtual methods out of the header. Move the
constructor into the header, since that can be inlined.
Sun Jun 24 14:15:43 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/,backends/multi/multi_postlist.cc,
backends/multi/multi_postlist.h,backends/quartz/,
backends/remote/net_postlist.cc,backends/remote/net_postlist.h,
backends/remote/remote-database.cc,common/emptypostlist.h,
common/postlist.h,common/remote-database.h: For Flint and Quartz,
refactor so we no longer create a postlist just to find the termfreq
or collection frequency. These were the only places which used
PostList::get_collection_freq(), so eliminate it (bug#124).
Sun Jun 24 09:40:51 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* msvc/genversion.pl: Add a script to generate the version.h file
for MSVC builds by parsing configure.ac to extract the version
number, and then performing the appropriate substitutions on
msvc/version.h.in. Shouldn't be used for tarball builds (because
version.h already exists) or for builds which use configure.
Sun Jun 24 02:25:38 BST 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: The check_at_least parameter to
Enquire::get_mset() is now handled in a more efficient way - no
extra memory is now required, and CPU overhead should be reduced
(bug#174).
Sun Jun 24 02:00:07 BST 2007 Olly Betts <olly@survex.com>
* docs/synonyms.rst,docs/Makefile.am: New "topic" document describing
synonym support.
* docs/Makefile.am: HTML documentation generated from RST files wasn't
being installed.
Sun Jun 24 00:45:46 BST 2007 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remote-database.h,
common/remoteprotocol.h,common/submatch.h,docs/remote_protocol.html,
matcher/,net/remoteserver.cc: Pass check_at_least to the remote
server to reduce the amount of work required to produce the match
on the remote server, and also reduce the serialised size of the
returned MSet.
Sun Jun 24 00:17:18 BST 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: More check_at_least tests.
Sat Jun 23 20:02:48 BST 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc,tests/api_wrdb.cc: Add multi-database support
for synonyms.
Sat Jun 23 18:50:59 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/database.h: Tiny fix to a documentation comment.
Sat Jun 23 17:35:37 BST 2007 Olly Betts <olly@survex.com>
* common/ortermlist.h,expand/ortermlist.cc: Comment out unused method
OrTermList::get_collection_freq(). The same dummy implementation
is provided by the parent class (TermList).
Sat Jun 23 17:07:40 BST 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/database.cc,backends/flint/,
common/database.h,include/xapian/database.h,tests/api_wrdb.cc:
Implement Database::synonym_keys_begin() to allow iteration over all
the terms for which synonyms have been added.
Sat Jun 23 04:19:54 BST 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix handling of check_at_least parameter -
we weren't discarding matches above the requested MSet size
correctly.
* tests/api_anydb.cc: Add regression test checkatleast2.
Sat Jun 23 03:00:45 BST 2007 Olly Betts <olly@survex.com>
* docs/queryparser.html: Document synonyms.
Sat Jun 23 02:50:55 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Unapply commented out fragments
towards supporting '~' on phrases, which I didn't mean to apply.
Sat Jun 23 02:25:32 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.lemony,
tests/queryparsertest.cc: Add support for synonym operator ('~')
to the QueryParser.
Sat Jun 23 01:52:51 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix two bugs in the query parser -
now '+' and '-' work on bracketed subexpressions as documented.
* tests/queryparsertest.cc: Add regression tests.
Sat Jun 23 01:47:30 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.cc: Use "using namespace std;".
Fri Jun 22 18:48:21 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_synonym.cc: Fix iteration of unflushed
synonyms.
Fri Jun 22 18:21:39 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Fix typo.
Fri Jun 22 18:02:21 BST 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/database.cc,backends/flint/,
common/database.h,include/xapian/database.h,
include/xapian/queryparser.h,queryparser/queryparser.lemony:
Add support for storing synonyms for terms in a new optional Btree
table in flint databases, and using them in the QueryParser.
* tests/queryparsertest.cc: Feature tests for synonyms.
Fri Jun 22 17:58:37 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Removed superfluous "private:" in
class State. Make State::get_database() const.
Fri Jun 22 17:58:15 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Make sure .flint subdirectory exists.
Fri Jun 22 17:52:53 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-inspect.cc: Don't die with an error if the user tries to
move forward twice from the end. Also, make "prev" from the end
work.
Fri Jun 22 17:47:36 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: If an input token has a yyminor, report
its name in the debug output.
Fri Jun 22 14:47:17 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Updated with changes since 1.0.1.
Thu Jun 21 21:12:49 BST 2007 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remoteprotocol.h,
common/remoteserver.h,net/remoteserver.cc: Protocol version
increased to 30.2. This difference from 30.1 is that
MSG_DELETEDOCUMENT now send REPLY_DONE to allow DocNotFoundError
to be propagated. MSG_DELETEDOCUMENT now has a new number and
the old number for MSG_DELETEDOCUMENT is now
MSG_DELETEDOCUMENT_PRE_30_2 which is handled by the server so
that older clients will continue to work.
* docs/remote_protocol.html: Update.
* tests/api_wrdb.cc: Add regression test for DocNotFoundError bug.
Thu Jun 21 17:22:53 BST 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc,tests/queryparsertest.cc,docs/spelling.rst: Add
support for spelling correction when using multiple databases.
Thu Jun 21 16:15:22 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add feature tests for correcting spelling
errors in the QueryParser.
Thu Jun 21 15:01:00 BST 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Check the edit distance 3 words are found if
asked for.
Thu Jun 21 14:59:15 BST 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc,common/omdebug.h: Add some debug tracing for the
spelling correction.
Thu Jun 21 13:45:12 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.cc,docs/spelling.rst: Generate
"bookends" for four character words too, so that we suggest
"fuor" -> "four".
* tests/api_wrdb.cc: More testcases.
Thu Jun 21 13:08:07 BST 2007 Olly Betts <olly@survex.com>
* docs/spelling.rst: Assorted minor improvements. Add note about not
detecting single character substitutions in two character words.
Thu Jun 21 13:02:57 BST 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Check cases for single edits to a two character
word work as expected.
Thu Jun 21 04:13:46 BST 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Add test cases to check we find all single edit
errors for a three letter word.
Thu Jun 21 04:08:11 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.h: Now that
FlintSpellingTable::merge_changes() is only called from within the
class, make it a private method. discard_changes() is only used
once, and from within the class, so just inline it as that's
clearer. Make the comment about the overridden methods a doxygen
grouping comment,
Thu Jun 21 04:02:51 BST 2007 Olly Betts <olly@survex.com>
* docs/spelling.rst: Update to mention "bookend" bigrams.
Thu Jun 21 03:56:52 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.cc: Generate "bookend" spelling
entries for two and three letter terms, consisting of the prefix 'B'
followed by the first and last letters. This allows us to handle
substitution or deletion of the middle character of a three letter
word, or insertion in the middle of a two letter word.
Thu Jun 21 03:18:28 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Some doubles in the list which
value_range_serialise1 tests have the same values on some platforms,
so test that adjacent numbers and their string counterparts compare
the same way rather than that both are "<".
Thu Jun 21 02:46:01 BST 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Add "spell1" - a simple feature test for spelling
based on Richard's python test. Use TESTCASE() and END_OF_TESTCASES
macros.
Wed Jun 20 21:57:01 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: WritableDatabase::delete_document()
no longer cancels pending changes if the document doesn't exist.
* backends/quartz/quartz_database.cc: Same fix.
Wed Jun 20 20:53:52 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: We may now need to flush even if
there have been no documents added/replaced/deleted, as there may be
changes to the spelling table.
Wed Jun 20 20:46:30 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Fix a function name in the debug
loggging.
Wed Jun 20 20:39:43 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.cc: Fix FlintSpellingTermList not to
report at_end() one entry too early.
Wed Jun 20 19:21:45 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Don't touch <dbdir>/log for flint
as flint doesn't create a log like quartz does.
Wed Jun 20 17:10:29 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_spelling.h:
Push special handling for spelling_table into the FlintSpellingTable
class. This fixes "is_modified()" to take into account unflushed
changes held in memory.
Wed Jun 20 13:59:01 BST 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Don't use RETURN() in methods which return void.
Wed Jun 20 11:56:30 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/editdistance.cc: Change an Assert in is_transposed() (which
fails in some cases) to a test, since it seems legitimate that
a value of pos2 <= 0 might be supplied to the function (though
the answer will always be "false" in that case).
Wed Jun 20 02:38:51 BST 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Fix two incorrect return types in debug logging.
Wed Jun 20 02:14:40 BST 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Add missing implementations of
WritableDatabase::add_spelling() and
WritableDatabase::remove_spelling().
Wed Jun 20 00:58:46 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.h: Make the maps private.
Wed Jun 20 00:05:15 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Snapshots now bootstrapped with automake 1.10.
Wed Jun 20 00:03:42 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_spelling.cc,common/Makefile.mk,
expand/Makefile.mk,expand/ortermlist.h: Move ortermlist.h from
"expand/" to "common/" so we can included it from flint_spelling.cc
without a relative path.
Tue Jun 19 22:41:08 BST 2007 Olly Betts <olly@survex.com>
* api/,backends/database.cc,backends/flint/,common/database.h,
docs/Makefile.am,docs/spelling.rst,include/xapian/database.h,
include/xapian/queryparser.h,queryparser/queryparser.cc,
queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
Add support for spelling correction.
Tue Jun 19 19:18:40 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_table.cc,
backends/flint/flint_table.h: Add new method
FlintTable::key_exists() so we don't need to create a cursor to
check if a key exists in FlintDatabase::term_exists() (the other
alternative previously was to read the key and tag and ignore the
tag, but that could involve reading more blocks if the tag is
long, and it could involve uncompressing the tag too).
Tue Jun 19 17:49:09 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/queryparsertest.cc: Cast the input to pow() to a double, to
fix a problem on windows (which has several versions of pow(),
and the version taking a float was being used by default,
resulting in some of the tests overflowing the range of float).
Tue Jun 19 17:48:42 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/valuerangeproc.cc: Fix assertions, so that the code works
with assertions turned on.
Tue Jun 19 12:35:46 BST 2007 Olly Betts <olly@survex.com>
* matcher/branchpostlist.cc: Add missing #include <config.h>.
* matcher/branchpostlist.cc,matcher/branchpostlist.h: Move other
virtual method definitions out of the header.
Mon Jun 18 21:41:15 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/branchpostlist.h: Add missed copyright statement.
Mon Jun 18 21:36:31 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/branchpostlist.cc,matcher/branchpostlist.h: Add get_wdf()
method to BranchPostList (which just sums the wdf, which is
useful for a synonym postlist, which is the only situation in
which this will be called). Add the method definition in a
separate file, as per the comment I just added to HACKING.
* matcher/Makefile.mk: Add branchpostlist.cc
Mon Jun 18 21:33:56 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Add note about virtual methods (saying that the
shouldn't be defined in header files).
Mon Jun 18 20:15:18 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/phrasepostlist.cc,matcher/phrasepostlist.h,
matcher/exactphrasepostlist.cc,matcher/exactphrasepostlist.cc:
Add get_wdf() methods to NearPostList, PhrasePostList and
ExactPhrasePostList - these use a very rough approximation (but
there's a big long comment justifying it).
Mon Jun 18 18:38:43 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/mergepostlist.cc,matcher/mergepostlist.h: Add copyright
statements for previous commit (and update license while I'm at
it).
Mon Jun 18 18:24:43 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/mergepostlist.cc,matcher/mergepostlist.h: Add get_wdf()
method to MergePostList (just passes through the value from the
current postlist). Not currently needed, but the expected
behaviour is obvious, and this will be needed if there's a
synonym postlist higher in the query tree (when synonym postlists
are implemented). Also, correct a documentation comment typo.
Mon Jun 18 13:09:36 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/valuerangeproc.cc: Cast the first parameter to ldexp() to
double to fix compilation on some platforms, and add a few more
explanatory code comments to
NumberValueRangeProcessor::string_to_float()
Mon Jun 18 11:33:49 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/valuerangeproc.cc: Add static methods to
NumberValueRangeProcessor to serialise and unserialise doubles.
Change the code which tests a term for being a number to use
strtod, and accept any string which strtod thinks is a number.
If NumberValueRangeProcessor accepts a range, it now converts the
begin and end values to strings using the serialise method.
Also, expand some of the code comments.
* include/xapian/queryparser.h: Add documentation comments to
NumberValueRangeProcessor.
* tests/queryparsertest.cc: Update value_range2_queries to expect
new serialised forms in its output. Update test_qp_value_range3
to test a wider range of values (including negative, fractional,
and more-than-single-digit).
Mon Jun 18 03:36:38 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix comment typo, and add brackets
to make intended precedence clearer.
Mon Jun 18 03:36:04 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Tweak wording of a couple of
documentation comments.
Mon Jun 18 02:00:31 BST 2007 Olly Betts <olly@survex.com>
* docs/queryparser.html: Mention "AND NOT" as an alternative way to
write "NOT".
Mon Jun 18 01:43:00 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Adjust precedence of boolean
operators to match those in maths and programming languages.
"NOT" now binds as tightly as "AND" (previously "AND NOT" would
bind like "AND", but just "NOT" would bind like "OR"!) Also
"XOR" now binds more tightly than "OR", but less tightly than
"AND" (previously it bound just like "OR").
* tests/queryparsertest.cc: Add testcases for the new behaviour.
Mon Jun 18 01:16:18 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Better test coverage of handling of random
double quotes in queries.
Sun Jun 17 16:17:34 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Don't call operator++(0) from operator()
as it does more work than we need.
Sun Jun 17 14:14:16 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-inspect.cc: Fix so that Ctrl+D doesn't cause an infinite
loop!
Sat Jun 16 22:19:11 BST 2007 Olly Betts <olly@survex.com>
* bin/Makefile.mk,bin/xapian-inspect.cc,xapian-core.spec.in:
New utility 'xapian-inspect' allowing interactive inspection of
key/tag pairs in a flint Btree. Useful for development and
debugging, and an approximate replacement for quartzdump.
Sat Jun 16 17:03:57 BST 2007 Olly Betts <olly@survex.com>
* docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Update for
doxygen 1.5.2 (using "doxygen -u").
Sat Jun 16 10:17:32 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am: The "check-none" target should run all the
tests which don't need a database, not just those in apitest: add
internaltest, stemtest, queryparsertest and termgentest to the
list of tests it runs.
Sat Jun 16 09:36:10 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* Makefile.am,bin/Makefile.mk,examples/Makefile.mk: Work around an
apparent bug in automake which causes the entries in .libs
subdirectories generated for targets of bin_PROGRAMS not to be
removed on make clean. (This was causing make distcheck to
fail.)
Sat Jun 16 04:42:16 BST 2007 Olly Betts <olly@survex.com>
* HACKING,Makefile.am,tests/Makefile.am,tests/apitest.cc,
tests/harness/backendmanager.cc,tests/harness/backendmanager.h: In
the testsuite, rename the "void" pseudo-backend to "none" to more
clearly reflect what it is. And rename the "remote" backend to
"remoteprog", to better differentiate it from "remotetcp".
* HACKING: Fix error - "apitest -b=flint" doesn't work - it must be
"apitest -bflint".
Sat Jun 16 04:40:28 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Now using doxygen 1.5.2.
Sat Jun 16 02:08:20 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Fix to build with older zlib. Not
hugely important as zlib security fixes mean any well maintained
box will be running a recent zlib, but the fix is trivial.
Fri Jun 15 19:39:03 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Document the new check-void, check-inmemory,
check-remoteprog and check-remotetcp targets.
Fri Jun 15 19:34:13 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* Makefile.am,tests/Makefile.am: Add check-void, check-inmemory,
check-remoteprog and check-remotetcp targets, to allow the tests
for any of the backends to be performed in isolation.
Fri Jun 15 19:29:19 BST 2007 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,xapian-core.spec.in,xapian.spec.in:
Rename xapian.spec to xapian-core.spec to match tarball name.
Append the user name to BuildRoot.
Fri Jun 15 14:51:13 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* net/progclient.cc: Open the file handle pointing to /dev/null as
O_WRONLY instead of O_RDONLY: doesn't affect whether the test
passes (since nothing gets written to stderr in theory anyway),
but makes more sense.
Fri Jun 15 13:21:56 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* net/progclient.cc: Better fix - rather than leaving stderr open,
we close it, and then reopen it pointing to /dev/null.
Fri Jun 15 12:55:07 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* net/progclient.cc: Don't close stderr in the child before we call
execve() - with this change, apitest passes under valgrind with
the remote database backend: before it, the child seemed to be
exiting without writing anything to the socket, causing the test
to fail with a NetworkError (due to an unexpected EOF).
Thu Jun 14 23:47:52 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Replace duplicated code with calls
to existing method set_revision_number(new_revision).
Thu Jun 14 18:51:03 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Stop including <sys/utsname.h>
which we don't use here.
Thu Jun 14 18:22:24 BST 2007 Olly Betts <olly@survex.com>
* tests/Makefile.am: Fix typo from copy&paste.
Thu Jun 14 16:46:45 BST 2007 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: Update for the "lazy table" changes. Correct
the description of xapian-compact --multipass (only the postlist
tables are merged in multiple passes), correct description of how
to use xapian-check on a single table (no trailing '.' should be
specified). Change the "how to upgrade 0.9.x flint databases" to
talk about 1.0.y rather than 1.0.0.
Thu Jun 14 16:25:55 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/: The value and position tables are now only created
if there is anything to add to them. So if you never use document
values, there's no value_DB, value.baseA, or value.baseB. This
means the table doesn't need to be opened for searching (saving a
file handle) and when flushing changes, we don't need to update
baseA/baseB just to keep the revisions in step. The flint database
version has been increased, but the new code will happily open and
read/update flint databases from Xapian 1.0.0 and 1.0.1.
* bin/xapian-check.cc,bin/xapian-compact.cc: Update to handle
databases without value and/or position tables.
* tests/testdata/flint-1.0.1/: Empty example of a flint 1.0.1 format
database.
* tests/Makefile.am,tests/api_db.cc: Add check that a flint 1.0.1
format database can be opened.
Wed Jun 13 22:40:15 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/queryparser.h: Document set_stemmer() and
set_stemming_strategy() better - in particular, make it clear
that the default value for the stemming strategy is STEM_NONE.
Wed Jun 13 17:16:52 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Wrap overlong line.
Wed Jun 13 16:47:07 BST 2007 Olly Betts <olly@survex.com>
* msvc/version.h.in: Remote backend is now supported in the MSVC
build.
Wed Jun 13 04:18:51 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc,backends/flint/flint_table.h:
Eliminate dont_close_handle as it's always false.
Wed Jun 13 02:53:28 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h:
Remove unused FlintTable_base constructor.
Tue Jun 12 18:27:54 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Add fix to allow compilation on
OpenBSD, which uses off_t instead of uLong for total_out in
zlib.h. Remove Assert() which is followed by a better check of
the same condition.
* AUTHORS: Add Julien Touche for help with this fix.
Tue Jun 12 13:34:59 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/unixcmds.cc: On unix builds, set access permissions
on copied directories to allow writes. This fixes make
distcheck, which was failing on tests because the copied
directory was set to read-only, causing the later "rm -rf"
command to fail.
Mon Jun 11 20:10:26 BST 2007 Olly Betts <olly@survex.com>
* docs/overview.html: Fix typo.
Mon Jun 11 20:08:42 BST 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Ship and install internals.html.
Mon Jun 11 17:46:04 BST 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/doxygen_full_conf.in: Disable generation of
PDF version of doxygen-collated documentation of internals. It
keeps overflowing TeX limits and it seems likely that most people
would prefer the HTML version of this anyway.
Mon Jun 11 17:45:12 BST 2007 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Remove duplicated code.
Mon Jun 11 03:55:53 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Probably the final update for 1.0.1.
Mon Jun 11 03:47:37 BST 2007 Olly Betts <olly@survex.com>
* examples/simpleindex.cc: Tweak the logic to be clearer.
Sun Jun 10 21:59:21 BST 2007 Olly Betts <olly@survex.com>
* HACKING,configure.ac: Drop automake requirement to 1.8.3 to allow
RPM spec file to work on SLES 9.
Sun Jun 10 21:48:51 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Bump version to 1.0.1 and LIBRARY_VERSION_INFO to
15:0:0.
Sun Jun 10 21:46:57 BST 2007 Olly Betts <olly@survex.com>
* xapian.spec.in: Add "# norootforbuild" comment which SuSE's build
scripts look for. Rename "Source0:" to "Source:" as there's only
one tarball now. Add gcc-c++ and zlib-devel to "Build-Requires:".
Sun Jun 10 21:43:45 BST 2007 Olly Betts <olly@survex.com>
* PLATFORMS: More updates.
Sun Jun 10 18:01:19 BST 2007 Olly Betts <olly@survex.com>
* api/error.cc,generate-exceptions.in: Make Error::error_string member
std::string rather than char * to avoid problems with double free()
with copied Error objects. Also, Error::get_description() now
converts my_errno to error_string if it hasn't been already.
* tests/internaltest.cc: Add regression tests for both bugs.
Sun Jun 10 13:33:21 BST 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc: New testcase in allterms6.
Sun Jun 10 13:20:37 BST 2007 Olly Betts <olly@survex.com>
* xapian-config.in: Add special case check for host_os matching linux*
or k*bsd-gnu since vanilla libtool doesn't identify them as needing
link_all_deplibs_CXX=no.
Sun Jun 10 03:32:54 BST 2007 Olly Betts <olly@survex.com>
* PLATFORMS: Updated from tinderbox.
Sun Jun 10 02:14:58 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Updated.
Sat Jun 09 17:28:32 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Add the unstem entry for boolean
prefixed terms in Term::make_term() as we do for other terms.
Sat Jun 09 17:27:55 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Replace reference to Xapian "1.0" with
"1.0.0".
Sat Jun 09 17:12:44 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
Factor out the code which actually parses a term into a separate
method.
Fri Jun 08 23:31:23 BST 2007 Olly Betts <olly@survex.com>
* tests/Makefile.am: Distribute tests/testdata/flint-0.9.9/.
Fri Jun 08 19:20:36 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Updated.
Fri Jun 08 18:55:43 BST 2007 Olly Betts <olly@survex.com>
* examples/simplesearch.cc: Report "Matches 1-<N>:".
Fri Jun 08 18:46:02 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omenquire.cc: Fix issue brought to my attention by Enrico
Zini: if an uninitialised database is supplied to Enquire,
performing a search will cause a segfualt. It isn't completely
clear whether using an uninitialised database should cause an
error, or whether the search should return an empty result list,
but for ease of implementation, and to avoid application errors
going unnoticed, I've made Enquire's constructor report an
InvalidArgumentError if the supplied database is uninitialised.
* include/xapian/enquire.h: Document new exception case, and
workaround if you want a search in this situation to return an
empty result set, instead of getting an error.
* tests/api_nodb.cc: Regression test for this fix.
* AUTHORS: Mention Enrico Zini.
Fri Jun 08 18:33:19 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Updated.
Fri Jun 08 17:09:22 BST 2007 Olly Betts <olly@survex.com>
* common/Makefile.mk: Distribute common/stringutils.h.
Thu Jun 07 20:44:36 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/unixcmds.cc: It appears we need to create the target
directory for xcopy to behave as we want.
Thu Jun 07 19:34:18 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/unixcmds.cc: Fix typo to unbreak testsuite on Windows
NT derivatives.
Thu Jun 07 19:02:36 BST 2007 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_alltermslist.cc: Another tweak - don't
call map::lower_bound() in the ctor at all. Also, prevent skip_to()
from moving backwards, since that behaviour is user-visible.
Thu Jun 07 18:36:49 BST 2007 Olly Betts <olly@survex.com>
* common/stringutils.h: New header, providing inline functions
begins_with() and ends_with() to check if a std::string has
a given prefix or suffix.
* api/valuerangeproc.cc,backends/flint/flint_alltermslist.cc,
backends/inmemory/inmemory_alltermslist.cc,
backends/quartz/quartz_alltermslist.cc,
backends/quartz/quartz_metafile.cc,tests/harness/testsuite.cc:
Make use of begins_with() and ends_with().
* tests/harness/testsuite.cc: Tidy up guessing of srcdir. In
particular, fix comments to reflect that libtool won't create a
wrapper script for the test programs on most platforms (because
we now use --no-install when linking).
* backends/inmemory/inmemory_alltermslist.cc: In the ctor, use
std::map::lower_bound() to find the first term matching the
given prefix, rather than iterating through from the start of
the map. Also, don't skip deleted terms here, but instead do
that in next() - this avoids duplicating code, and the first
operation might be skip_to() in which case we can avoid wasting
effort.
Thu Jun 07 17:16:12 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Eliminate the QpQuery class and
simplify various bits of the code.
Thu Jun 07 14:32:22 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Enhance qp_value_customrange1.
Thu Jun 07 14:31:40 BST 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/index.html,docs/valueranges.rst: Add document
describing how to use Xapian::ValueRangeProcessor.
Thu Jun 07 14:16:01 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add test of custom ValueRangeProcessor
subclass (qp_value_customrange1).
Thu Jun 07 10:01:46 BST 2007 Olly Betts <olly@survex.com>
* common/serialise.h,tests/harness/testsuite.h: Use XAPIAN_NORETURN()
to mark functions which never return.
Thu Jun 07 01:28:00 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Update.
Thu Jun 07 01:02:22 BST 2007 Olly Betts <olly@survex.com>
* examples/simpleexpand.cc: Fix off-by-one error when creating the
fake RSet (picked up to 4 documents, not up to 5).
Wed Jun 06 17:17:05 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Add documentation comments for
ValueRangeProcessor and subclasses (mostly fixes bug#155, but
I'd like to add an overview document too).
Wed Jun 06 16:04:08 BST 2007 Olly Betts <olly@survex.com>
* tests/testdata/flint-0.9.9/: Minimal example of a Flint database
from Xapian 0.9.9.
* tests/api_db.cc: Use a real 0.9.9 flint database instead of faking
it by fudging with the "iamflint" file in a current one.
flintdatabaseformaterror1 now also checks for opening with the
Database ctor as well as with Flint::open(). The writing test from
flintdatabaseformaterror1 is now flintdatabaseformaterror2 which
additionally tests opening with the WritableDatabase ctor as well as
with Flint::open(). The old flintdatabaseformaterror2 is now
flintdatabaseformaterror3.
Wed Jun 06 15:44:08 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Don't check for pre-0.6 databases
here (since they'll be quartz format anyway - the check is just an
overenthusiastic cut-and-paste from quartz).
Wed Jun 06 12:35:16 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* matcher/valuerangepostlist.cc: Avoid calling db->get_lastdocid()
repeatedly in ValueRangePostList::next() - was taking 25% of the
time for a particular test case.
Wed Jun 06 12:17:51 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/unixcmds.cc,tests/harness/unixcmds.h: Add "cp_R()"
which does much the same as "cp -R" on Unix.
Wed Jun 06 12:12:50 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/Makefile: New stub makefile for include/xapian.
* bin/Makefile.mk,examples/Makefile.mk,include/Makefile.mk: Distribute
missing stub Makefile and dir_contents files.
Tue Jun 05 16:44:51 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/index_utils.cc: Back out linger line from r7758.
Fix undefined behaviour in cases where a paragraph has <= 2
characters.
Mon Jun 04 15:31:08 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/backendmanager.cc,tests/harness/index_utils.cc:
Revert the recent changes to the indexing code, and also the
change from revision r7758 which was intended to fix a problem
with eof handling on windows (which is what broke the indexing of
etext.txt). Then, change backendmanager.cc to test "!from.eof()"
instead of "from" to check for eof - hopefully this will work on
windows - if not, we can investigate further.
Mon Jun 04 13:13:29 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/backendmanager.cc: Undo previous patch - only the
patch to index_utils.cc was necessary; I mistakenly committed
both files I'd been modifying.
Mon Jun 04 09:06:24 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_db.cc: Add a check to consistency1 that the full mset
size is as big as it should be, to make sure that we notice in
future if the indexing goes wrong again.
Mon Jun 04 08:59:22 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/backendmanager.cc,tests/harness/index_utils.cc:
Fix the indexing of the testdata, so that the "etext" example is
properly indexed (previously, only the first line was being
indexed, due to faulty end-of-file handling). This only affects
the "consistency1" test, which now runs a lot slower (but still
passes, fortunately).
Fri Jun 01 23:47:42 BST 2007 Olly Betts <olly@survex.com>
* examples/simpleexpand.cc: Rewrite based on new simplesearch.cc.
Fri Jun 01 00:50:00 BST 2007 Olly Betts <olly@survex.com>
* examples/simpleindex.cc: Replacement "simpleindex" example which
uses the TermGenerator class, which makes for a much smaller and
simpler example. It's also much more typical of what most users
will want to do.
Thu May 31 23:01:47 BST 2007 Olly Betts <olly@survex.com>
* examples/simplesearch.cc: Replacement "simplesearch" example which
uses the QueryParser. That makes for a simpler example, and it's
much more typical of what most users will want to do.
Thu May 31 19:31:40 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Update.
Thu May 31 19:18:41 BST 2007 Olly Betts <olly@survex.com>
* HACKING,configure.ac: Relax automake requirement to 1.9.2 to allow
RPM building on RHEL 4.
* HACKING: automake 1.10 seems to work fine with Xapian.
Thu May 31 03:04:42 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
Check if the docid counter wraps and if it does throw DatabaseError
(fixes bug#152).
* tests/api_wrdb.cc: Add regression test (nomoredocids1).
Thu May 31 02:01:31 BST 2007 Olly Betts <olly@survex.com>
* backends/dbfactory_remote.cc,backends/remote/remote-database.cc,
common/progclient.h,common/remote-database.h,common/tcpclient.h,
net/progclient.cc: Stop a non-writable remote database from calling
dtor_called() when it is destroyed, since that causes MSG_FLUSH to
be sent to the server (fixes bug#149).
Wed May 30 19:47:43 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/query.h: New accessor method
Xapian::Query::Internal::get_parameter().
* queryparser/queryparser.lemony: Multiple boolean prefixed terms
with the same term prefix are now combined with OR before such
groups are combined with AND. Similarly for multiple value ranges
on the same value (fixes bug#157).
* include/xapian/queryparser.h: Document new handling of multiple
boolean prefixed terms.
* tests/queryparsertest.cc: Testcases for new handling of multiple
boolean prefixed terms and value ranges.
Wed May 30 14:45:19 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Update comment about QueryParserError to
point out that you'll need to compile conditionally to work with
0.9.x
Wed May 30 14:33:29 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Update. Put all the subheadings in the standard order used
for previous releases.
Wed May 30 12:58:01 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/database.h,api/omdatabase.cc,backends/flint/,
backends/inmemory/,backends/quartz/,
backends/remote/remote-database.cc,
common/database.h,common/remote-database.h,common/remoteprotocol.h,
net/remoteserver.cc: Add a prefixed form of allterms_begin() and
allterms_end(), which allows efficient iteration over only those
terms which begin with the given prefix. Requires bumping the
remote protocol minor version number, but doesn't change any
database formats.
* queryparser/queryparser.lemony: Update the wildcard and partial
query routines to use the prefixed form of allterms_begin().
This fixes the performance problems noted in bug #153.
* tests/api_db.cc: Add test_allterms6() to test the prefixed form
of allterms iterators.
Wed May 30 12:23:25 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/remote/remote-database.cc,common/remoteprotocol.h,
docs/remote_protocol.html,net/remoteserver.cc: Apply patch from
Olly (from bug #153) which implements minor version numbers for
the remove protocol. This will allow us to add new features to
the protocol in future without forcing all clients to upgrade to
exactly the same version as the servers. Bump the major version
to 30, since this is an incompatible change itself, though.
Wed May 30 12:12:14 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/query.h: Expand documentation of value range
query constructor.
Wed May 30 10:28:39 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Improve entry for QueryParserError.
Wed May 30 01:30:35 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/,bin/xapian-compact.cc: Don't uncompress and
recompress tags when compacting a database. This speeds up
xapian-compact rather a lot (by more than 50% in my quick test).
Tue May 29 20:58:13 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/Makefile.mk: Fix multiple target rule for generating
the queryparser source files in parallel builds, as described in
HACKING, and as done for the SWIG rules in xapian-bindings.
* queryparser/: Add queryparser_internal.lock and
queryparser_internal.stamp to SVN ignores.
Tue May 29 18:30:25 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/queryparsertest.cc: Use TEST_STRINGS_EQUAL when comparing
queries against their expected output, since this makes it much
easier to see the differences.
Tue May 29 18:13:26 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* NEWS: Bring up-to-date.
Mon May 28 09:27:43 BST 2007 Olly Betts <olly@survex.com>
* examples/copydatabase.cc: Fix to compile with GCC 2.95.
Mon May 28 01:28:23 BST 2007 Olly Betts <olly@survex.com>
* examples/copydatabase.cc: Rewrite to take advantage of
being able to iterate over all the documents in a database.
Sun May 27 12:20:03 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/termgenerator.h: Improve documentation comments
for TermGenerator class.
Sun May 27 12:15:02 BST 2007 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc,bin/,examples/,net/tcpserver.cc,
tests/api_db.cc,tests/harness/testsuite.cc,tests/harness/testutils.h,
tests/queryparsertest.cc,tests/termgentest.cc: Make use of
Xapian::Error::get_description(), which improves error reporting
in a number of places.
* tests/harness/testsuite.cc: If we get an exception with a long
message in verbose mode, just report the whole message rather than
reporting the truncated message followed by the whole message.
* tests/queryparsertest.cc: Handle Xapian::QueryParserError specially
(as we previously handled all Xapian::Error exceptions). Other
Xapian::Error exceptions now report the description not just the
message.
Sun May 27 11:33:11 BST 2007 Olly Betts <olly@survex.com>
* api/error.cc,generate-exceptions.in: Add new API method
Xapian::Error::get_description() to allow removal of
essentially duplicated code in many places. Also useful for
users for the same reason.
Sun May 27 09:56:21 BST 2007 Olly Betts <olly@survex.com>
* generate-exceptions.in: Add vim modeline to force perl syntax
highlighting.
Sat May 26 22:53:52 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* NEWS: Bring up-to-date.
Sat May 26 22:49:20 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Fix typo in deprecation list for the
bindings pointed out by Thomas Waldmann.
Sat May 26 09:39:36 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Add note about reasons for avoiding std::pair<> with an STL
class as one or both members.
Thu May 24 17:28:20 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/Makefile.mk: $(top_builddir)/queryparser is only
required in include path for maintainer mode, so make it so for
neatness.
Tue May 22 11:04:04 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/Makefile.mk: Add $(top_builddir)/queryparser to include
path for VPATH builds, to fix a problem with depcomp (triggered
when compiling with gcc-2.95).
* NEWS: Keep up to date.
Mon May 21 13:38:58 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/queryparsertest.cc: Reduce the range of the test, so that
it passes again, to let the autobuilders work and unbreak HEAD.
Mon May 21 10:26:01 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/queryparsertest.cc: Remove FIXME from test_qp_flag_partial1:
I've checked that the results look correct. New test
test_qp_value_range3, to test the NumberValueRangeProcessors -
currently fails because "10" is considered to be between "1" and
"2".
* include/xapian/query.h: Fix typo in documentation comment.
Mon May 21 10:09:34 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.h: Put quotes around strings when reporting
a failure in TEST_STRINGS_EQUAL().
Mon May 21 10:08:18 BST 2007 Olly Betts <olly@survex.com>
* tests/internaltest.cc: New tests serialiseerror1 which checks that
the handling of errno/error_string.
* common/serialise.h: Make unserialise_error externally visible for
new test.
Mon May 21 08:40:06 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Update release checklist.
Fri May 18 02:10:39 BST 2007 Olly Betts <olly@survex.com>
* generate-exceptions.in: Fix grammatical errors in Error::get_errno()
deprecation explanation.
Thu May 17 23:51:17 BST 2007 Olly Betts <olly@survex.com>
* api/error.cc: Need <stdlib.h> for free() to build with GCC 4.3
snapshot.
Thu May 17 23:11:53 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Fix line wrapping (ok, isn't wasn't final!)
Thu May 17 22:28:44 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Final update before release.
Thu May 17 19:10:27 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Bump version to 1.0.0 and update LIBRARY_VERSION_INFO.
Thu May 17 19:10:11 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Minor wording tweak.
Thu May 17 19:06:34 BST 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Run rst2html with --strict --verbose options to
reject .rst files with problems.
* docs/deprecation.rst: Add more entries gleaned from the NEWS file.
Thu May 17 18:30:01 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Update with fixes from Jenny's proof-reading and a few other
tweaks.
Thu May 17 18:27:53 BST 2007 Olly Betts <olly@survex.com>
* AUTHORS: Update.
Thu May 17 18:25:39 BST 2007 Olly Betts <olly@survex.com>
* PLATFORMS: Updates from the tinderbox.
Thu May 17 18:08:13 BST 2007 Olly Betts <olly@survex.com>
* common/safesysstat.h: Need the 2 argument mkdir() wrapper for Mingw
too. Define S_ISDIR() and S_ISREG() if they aren't already defined
rather than conditional on _MSC_VER.
Thu May 17 17:58:43 BST 2007 Olly Betts <olly@survex.com>
* docs/admin_notes.rst: "flint-check" -> "xapian-check".
Thu May 17 17:46:36 BST 2007 Olly Betts <olly@survex.com>
* NEWS: Update for Xapian 1.0.0.
Thu May 17 17:41:15 BST 2007 Olly Betts <olly@survex.com>
* docs/: Update documentation for 1.0.0; add new document describing
new term generation strategy as implemented by TermGenerator class;
link in "lost" documents to the index page.
Thu May 17 03:54:36 BST 2007 Olly Betts <olly@survex.com>
* exception_data.pm: Fix to work with Perl 5.6.
Thu May 17 01:20:16 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/multi/multi_alltermslist.cc: Check that iterators are
not at_end() before calling skip_to() on them.
Thu May 17 00:49:03 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc,
backends/quartz/btree.cc,common/Makefile.mk,
common/msvc_posix_wrapper.cc,common/msvc_posix_wrapper.h: Use
msvc_posix_wrapper.h functions for all __WIN32__ builds, not just
for MSVC.
Wed May 16 23:55:46 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc: Fix return type in debug macro in
replace_document().
Wed May 16 23:45:20 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/apitest.cc: Add collfreq and allterms tests to the tests
for the remote and remotetcp backends. They all pass.
Wed May 16 15:11:00 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Need to try -zdll for mingw as well.
Wed May 16 14:45:23 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add two more testcases.
Wed May 16 14:32:46 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix
double-free on invalid range query.
Wed May 16 10:08:02 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/queryparsertest.cc: Add some more test cases to the value
range processor. These currently fail with a SIGSEGV message.
Wed May 16 02:22:17 BST 2007 Olly Betts <olly@survex.com>
* queryparser/termgenerator_internal.cc: Fix handling of stemming of
prefixed terms.
* tests/termgentest.cc: Fix testcases.
Wed May 16 01:54:25 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/termgentest.cc: Add a test for parsing of capitalised words
with a prefix, which currently fails.
Wed May 16 01:09:39 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
a method to get the current document from the term generator.
Helps avoid users having to pass around a structure encapsulating
the generator and the document assigned to it.
Wed May 16 00:50:07 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Add <xapian/output.h>.
Tue May 15 22:46:39 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/termgentest.cc: Use resize(0) instead of clear(), for g++2.95
Tue May 15 20:25:07 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: Add a comment noting why we test
__STDC_SECURE_LIB__ even though its an undocumented macro.
Tue May 15 20:14:51 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/termgentest.cc: Add several more tests - some converted
from the query tests, some more initial tests, and some number
tests.
Tue May 15 18:31:21 BST 2007 Olly Betts <olly@survex.com>
* queryparser/termgenerator_internal.cc: Revert previous change - we
need to generate Zibm and Zpc from text `I.B.M. P.C.' or else a
search for `ibm pc' won't match.
Tue May 15 18:22:44 BST 2007 Olly Betts <olly@survex.com>
* queryparser/termgenerator_internal.cc: Sort out stemming of
initials.
Tue May 15 18:04:17 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/termgentest.cc: Add some more tests, and rework the array
of tests so that there's just a single string holding any options
we want to set for the following tests.
Tue May 15 16:49:17 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/Makefile.am,tests/termgentest.cc: Add new test file, for
testing the term generator. Only has a single test so far.
Tue May 15 16:20:20 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Make single parameter ctor explicit.
Tue May 15 16:00:24 BST 2007 Olly Betts <olly@survex.com>
* queryparser/termgenerator_internal.cc: Add special handling for
acronyms/initialisms, so I.B.M -> term ibm, etc.
Tue May 15 14:07:27 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
a set_termpos() method, too.
Tue May 15 13:54:34 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/database.h: Document the issue of the monotonic
docid counter wrapping around.
Tue May 15 10:58:37 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
get_termpos() method to get the current value of the termpos.
Makes it easier to integrate with different term generators.
Tue May 15 03:44:50 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
Include '.', ',', and a few other characters in terms if they are
between two decimal digits.
* queryparser/termgenerator_internal.cc: Don't stem terms which start
with a number.
* tests/queryparsertest.cc: Update results for real world queries to
match new results (better in every case but one!)
Tue May 15 01:24:08 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Fix a few typos. Add "feisty" to the list of debs to
build.
Tue May 15 00:51:35 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Document that the bootstrap script should be run from
srcdir, and that the generated configure can be run from a
different builddir. Tidy up a few other lines.
Mon May 14 23:52:33 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
Expand check_infix to include some of characters Unicode does.
* tests/queryparsertest.cc: Update the single test query which now
parses differently.
Mon May 14 23:42:53 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.h: New macro TEST_STRINGS_EQUAL() which
displays the strings on separate lines so the differences can
be clearly seen.
* tests/queryparsertest.cc: Use TEST_STRINGS_EQUAL().
Mon May 14 20:14:17 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Make the "uses string sort" warning in
the documentation for the methods which enable sorting by value
more prominent, and fix several miscellaneous typos.
Mon May 14 19:28:21 BST 2007 Olly Betts <olly@survex.com>
* queryparser/dir_contents: Update to mention TermGenerator.
Mon May 14 19:12:12 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix handling of WILDCARD_TERM and
PARTIAL_TERM for prefixed terms.
* tests/queryparsertest.cc: Add test coverage for this.
Mon May 14 18:02:22 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add more testcases for wildcarded queries.
Mon May 14 17:39:30 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix handling of partial queries.
Mon May 14 16:49:46 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: closesocket() seems to work equally as
well as CloseHandle() but it's what we use elsewhere and Charlie
thinks it's a better choice here too so use that instead. Rename
the wrapper call from close_fd_or_handle() to close_fd_or_socket().
And mark close_fd_or_socket() as "inline" under UNIX, since it
should always be inlined.
Mon May 14 15:30:13 BST 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Add FIXME about moving wildquery1.
Mon May 14 15:21:59 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-progsrv.cc: Improve comments.
Mon May 14 11:29:14 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: Deal with invalid parameter exceptions
on windows when closing file descriptors or handles.
Mon May 14 05:04:16 BST 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Fix wildquery1 to work with the new term
stemming scheme.
Sun May 13 19:15:17 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Count control characters as whitespace
(which is certainly what we want for TAB, CR, LF, and FF).
Sun May 13 17:50:19 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Add CONNECTOR_PUNCTUATION to is_wordchar()
- this category includes '_' and characters which fulfil similar
roles.
* queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
No longer need to special case '_'.
* queryparser/queryparser.lemony: Test for Unicode "whitespace" rather
than just ASCII.
Sun May 13 04:43:37 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Normalise Unicode characters used
for apostrophe to ASCII apostrophe.
Sun May 13 03:56:17 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
routines to use Unicode 5.0.0 and support characters outside the BMP
(so we now support all Unicode characters in the latest version of
the standard).
* tests/api_unicode.cc: Add test unicode1 which performs some simple
tests of the categorisation function, include one which tests for a
character added in Unicode 5.0.0.
Sat May 12 06:01:50 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Update comment.
Sat May 12 04:23:01 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Improve description of Term class.
Sat May 12 04:16:47 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Update to implement the new stemming
scheme.
* tests/queryparsertest.cc: Update testcases, and check that the new
parses are all reasonable.
Sat May 12 04:03:55 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Xapian::Unicode::get_category() now checks
for characters outside the BMP, and assumes they're of category
OTHER_LETTER. Remove BMP check from all functions which use
Xapian::Unicode::get_category().
Sat May 12 04:02:52 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Fix typo in comment.
Fri May 11 05:45:38 BST 2007 Olly Betts <olly@survex.com>
* net/remoteserver.cc: Make "Server is read-only" be of type
InvalidOperationError not NetworkError. This is arguably more
appropriate anyway, but in particular it avoids a worrying looking
(but harmless) warning when a read-only connection is closed, due
dtor_called() calling flush() on a read-only database.
Fri May 11 01:35:31 BST 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Disable more documentation rules if
MAINTAINER_NO_DOCS is true.
Thu May 10 23:01:13 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: Remove definition of unused macro
XAPIAN_MSVC_INVALID_PARAMETER_HANDLER.
Thu May 10 19:24:23 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Try quoting qualified identifiers in
#pragma deprecated.
Thu May 10 15:58:37 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Give full scope in '#pragma deprecated'
to try to avoid false positives.
Thu May 10 14:53:08 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Use '#pragma deprecated' to work around
MSVC stupidity (you get a warning for deprecating a declaration).
Thu May 10 13:42:49 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Some GCC 3.x versions produce bogus warnings, so only
automatically enable -Werror on --enable-maintainer-mode under GCC
if we're using GCC >= 4.0. Most developers will be using GCC 4.x
soon if they aren't already anyway.
* HACKING: Update documentation in line with the above. Mention that
we also enable -Werror for Intel's C++ compiler.
Thu May 10 05:06:22 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Detect __WIN32__ by running the preprocessor so we
don't get confused by building mingw in a cygwin environment.
Thu May 10 04:52:21 BST 2007 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Exit with EX_UNAVAILABLE if the mutex tells us
xapian-tcpsrv is already running on this port.
Thu May 10 04:44:10 BST 2007 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/safe.cc,common/safeunistd.h: Pulling
in safewindows.h from safeunistd.h causes clashes with NEAR
in the QueryParser, so use a helper function to call Sleep
and just call that from the header.
Thu May 10 04:36:19 BST 2007 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Fix compilation error.
Thu May 10 04:26:31 BST 2007 Olly Betts <olly@survex.com>
* common/tcpserver.h,net/tcpserver.cc: Just pass the mutex to
get_listening_socket() by reference to avoid MSVC warnings.
Thu May 10 04:19:13 BST 2007 Olly Betts <olly@survex.com>
* common/safeunistd.h: Use Sleep() instead of _sleep() as the latter
gives deprecation warnings. Sadly that means that safeunistd.h
now has to pull in safewindows.h.
Thu May 10 04:07:53 BST 2007 Olly Betts <olly@survex.com>
* common/tcpserver.h,net/tcpserver.cc: Keep track of the mutex so
we can release it right after we close the listening socket.
Throw an error if we fail to get the mutex to avoid a possible
race condition (we might end up with the socket listening but
without the mutex locked). Always call closesocket() on the
listening socket under __WIN32__ to ensure resources are released.
Thu May 10 02:48:31 BST 2007 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Use a mutex under Cygwin and WIN32 to allow use to
use Microsoft's broken SO_REUSEADDR on our listening socket, but
avoid being able to run two copies of xapian-tcpsrv on the same port
at once (tweaked patch from MarkH).
* net/tcpserver.cc: Don't try to set SO_EXCLUSIVEADDRUSE if a previous
setsockopt() call failed as we might stomp on the error code.
Thu May 10 02:15:20 BST 2007 Olly Betts <olly@survex.com>
* Makefile.am,bin/Makefile.mk,configure.ac,docs/Makefile.am,
examples/Makefile.mk: Add new Automake conditional
"MAINTAINER_NO_DOCS" to allow use to disable references to built
documentation in maintainer builds if --disable-documentation is
specified. This allows Mark's buildbot to work without installing
so many tools, some of which aren't packaged for Cygwin.
Thu May 10 02:03:44 BST 2007 Olly Betts <olly@survex.com>
* Makefile.am: Build rules for running generate-exceptions should be
controlled by MAINTAINER_MODE not DOCUMENTATION_RULES, part II.
Thu May 10 01:49:42 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Add Error::get_type().
Thu May 10 01:25:37 BST 2007 Olly Betts <olly@survex.com>
* api/error.cc,generate-exceptions.in: Add new constructors which
allow error_string to be set directly, for use by the Xapian::Error
unserialising code.
* generate-exceptions.in: Xapian::Error::get_type() now returns
const char * not std::string.
* backends/quartz/quartz_database.cc: Fix code to handle changed
return type of Xapian::Error::get_type().
* net/serialise.cc: Include error_string in the serialisation.
* common/remoteprotocol.h,docs/remote_protocol.html: Bump protocol
version to 29 because of change in Xapian::Error serialisation.
Wed May 09 14:42:33 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Renaming match_nothing_
member of QpQuery to match_nothing. Comment out unused
QpQuery::get_description(). Add FIXME comment about
apparently redundant logic (now's not really the time
to be fiddling with such things).
Wed May 09 14:27:02 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Update to match new TermGenerator
class. '_' is now a term character, not a phrase generator. We
only keep a suffix which has 3 or fewer characters, and we no longer
count '-' as a suffix character.
* tests/queryparsertest.cc: Update test cases to match new behaviour.
In almost every case the new rules give a better result.
Wed May 09 14:15:38 BST 2007 Olly Betts <olly@survex.com>
* languages/compiler/space.c: Add sanity check to b_to_s(),
highlighted by MSVC warning.
Wed May 09 14:06:24 BST 2007 Olly Betts <olly@survex.com>
* tests/btreetest.cc: Return filesize as off_t to avoid MSVC warning
about truncating from 64 to 32 bits (the filesize will never be
more than a few K here, so this is essentially a cosmetic issue).
Wed May 09 04:04:03 BST 2007 Olly Betts <olly@survex.com>
* common/tcpserver.h,net/tcpserver.cc: Always starting the server in a
new thread in "one-shot" mode is trickier than it looked, so revert
that change for now. Always call closesocket() on our sockets under
__WIN32__.
Wed May 09 01:53:43 BST 2007 Olly Betts <olly@survex.com>
* common/tcpserver.h,net/tcpserver.cc: Make UNIX signal handling
functions and WIN32 CrtlHandler static. TcpServer::run() is now
generic, calling an OS-specific TcpServer::run_once(). Now we
always run the server in a new thread in "one-shot" mode, which
gives better code coverage in apitest as it runs more like a normal
xapian-tcpsrv would. CtrlHandler now lets the OS handle the event
if it doesn't have a socket to close, or if closesocket() fails.
Wed May 09 01:42:33 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: DWORD is unsigned, so received can't be
negative - tidy up the ReadFile() loop taking this into account.
Wed May 09 01:28:48 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: ReadFile() doesn't set errno, so remove
test for EINTR which is just a hangover from the UNIX code.
Tue May 08 23:50:33 BST 2007 Olly Betts <olly@survex.com>
* queryparser/termgenerator_internal.cc: Treat '_' as a word character
which seems to be the correct thing to do in general. Generate
unstemmed terms with positional information for all words without a
prefix, and stemmed terms without positional information for
non-stopwords with a 'Z' prefix. This means we can implement exact
phrase search, and prefixing stemmed forms (rather than unstemmed
as Omega < 1.0 does) means fewer terms with the prefix. Only
stemming non-stopwords cuts a significant amount of the database
size in my tests.
Tue May 08 18:22:30 BST 2007 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Fix remaining use of handle_one_request in
__WIN32__-specific code.
Tue May 08 18:10:12 BST 2007 Olly Betts <olly@survex.com>
* api/error.cc: Really fix it...
Tue May 08 17:38:04 BST 2007 Olly Betts <olly@survex.com>
* api/error.cc: Fix another paste-o!
Tue May 08 17:28:29 BST 2007 Olly Betts <olly@survex.com>
* api/error.cc: Remove bogus statement in __WIN32__ case left over
from cut-and-paste.
Tue May 08 17:10:53 BST 2007 Olly Betts <olly@survex.com>
* common/tcpserver.h,net/tcpserver.cc: Rename
TcpServer::handle_one_request() to
TcpServer::handle_one_connection() (to make it clearer that it
handles a connection rather than a single MSG/REPLY exchange), and
use it in UNIX builds too to avoid duplicating its code. Catch
NetworkTimeoutError here and report it if we're in verbose mode.
* net/remoteserver.cc: If we catch NetworkTimeoutError then try to
propagate it only if we can send it right away, then rethrow it
to close the connection and let the caller log it. If we catch
any other NetworkError then just rethrow it.
Tue May 08 16:52:50 BST 2007 Olly Betts <olly@survex.com>
* common/noreturn.h: Add missing '#endif'.
Tue May 08 16:19:05 BST 2007 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/noreturn.h: New header which defines
XAPIAN_NORETURN() to allow functions which don't return to be
marked as such so the compiler can take this into account when
generating code.
* api/error.cc,tests/harness/backendmanager.cc: Remove any trailing
"\r\n" from the output of FormatMessage().
Tue May 08 16:16:55 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/deprecated.h: Use `__attribute__((__deprecated__))'
instead of `__attribute__((deprecated))' so we're even robust
against some clown doing `#define deprecated foo'.
Tue May 08 16:15:30 BST 2007 Olly Betts <olly@survex.com>
* bin/quartzcheck.cc,tests/harness/backendmanager.cc: In these files
we have to disable XAPIAN_DEPRECATED() since we need to be able to
use Quartz::open() - move this to the start of the #include block
to avoid problems with any intermediate header implicitly including
<xapian.h>.
Tue May 08 14:51:37 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Move section on "Configure Options" to a more logical spot
just before "Makefile Portability". Add section on how to use
XAPIAN_DEPRECATED() noting the issue with GCC 3.3.5 not allowing
it to be used on an inline method definition.
* include/xapian/deprecated.h: Add pointers to HACKING and
docs/deprecated.rst.
Tue May 08 13:57:17 BST 2007 Olly Betts <olly@survex.com>
* generate-exceptions.in: We can't use XAPIAN_DEPRECATED() on
a function definition with GCC 3.3.5, so use it on a declaration
and then define inline but out of the class.
Tue May 08 13:45:48 BST 2007 Olly Betts <olly@survex.com>
* net/tcpserver.cc: We must call closesocket() (instead of just
close()) under __WIN32__ or else the socket remains in the
CLOSE_WAIT state.
Tue May 08 12:17:19 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Add Error::get_errno() to the deprecation
list for the bindings, too.
Tue May 08 10:09:27 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Change the xapian_version functions to be
marked for removal in 1.1.0, and also note them in the bindings
section.
Tue May 08 04:27:37 BST 2007 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remote-database.h: The
timeout parameter to RemoteDatabase wasn't being used, instead the
client would wait indefinitely for the server to respond.
Tue May 08 04:16:45 BST 2007 Olly Betts <olly@survex.com>
* generate-exceptions.in: Initialise error_string in Xapian::Error
ctor.
Tue May 08 03:48:47 BST 2007 Olly Betts <olly@survex.com>
* api/error.cc: Fix compilation when HAVE_HSTRERROR isn't defined.
Tue May 08 02:35:04 BST 2007 Olly Betts <olly@survex.com>
* api/error.cc,bin/xapian-tcpsrv.cc,examples/delve.cc,
generate-exceptions.in,tests/harness/testsuite.cc: Error subclasses
now store the error_string in the class, converting it from the
error code in my_errno lazily. Also, get_error_string() now returns
const char *.
Tue May 08 01:34:56 BST 2007 Olly Betts <olly@survex.com>
* Makefile.am: Build rules for running generate-exceptions should be
controlled by MAINTAINER_MODE not DOCUMENTATION_RULES.
Tue May 08 01:23:22 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-tcpsrv.cc,docs/deprecation.rst,generate-exceptions.in,
net/tcpserver.cc,tests/harness/testsuite.cc: Deprecate
Error::get_errno() in favour of Error::get_error_string(). We can't
pass errno values from remote server to client as they aren't
portable and the server and client may be running on entirely
different platforms!
* generate-exceptions.in: Mark as generated with @configure_input@.
Tue May 08 01:20:43 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_lock.h: Make
FlintLock's dtor release the lock (if held) which avoids the need
for any special handling in FlintDatabase.
Mon May 07 21:15:33 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/unixcmds.cc: Use O_BINARY when opening a file to
"touch" it.
Mon May 07 17:28:43 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_database.cc: Add try{}catch(...){} block to
ensure that lock is released if an exception occurs in the
FlintDatabase() constructor.
* tests/api_db.cc: Add regression test for releasing lock on error
in constructor.
Mon May 07 11:10:33 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Update section on multiple output rules to detail the
workaround described in the automake manual.
Mon May 07 10:03:50 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_database.cc,backends/flint/flint_database.h,
backends/flint/flint_version.cc,backends/quartz/,exception_data.pm,
include/xapian/database.h,tests/api_db.cc: Throw
DatabaseVersionError instead of DatabaseOpeningError when database
version is unsupported. This is a new error class, which is a
subclass of DatabaseOpeningError, so most existing scripts
shouldn't need changing, but makes it easy for application
writers to determine whether a database needs upgrading or
whether the problem is something else. Should fix #144.
Mon May 07 09:22:01 BST 2007 Olly Betts <olly@survex.com>
* net/progclient.cc: Under __WIN32__, use byte mode on pipes because
message mode fails for message > 256 bytes, and use "overlapped"
mode so we don't block waiting for a reply so that timeouts work.
(Patch from Mark Hammond).
Mon May 07 03:03:10 BST 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc,tests/apitest.cc,tests/harness/: Now
TEST_EQUAL_DOUBLE() should work everywhere. Move the helper
function out of the header. Use TEST_EQUAL_DOUBLE() instead
of doubles_are_equal_enough() and weights_are_equal_enough()
which do much the same job.
Mon May 07 01:13:29 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.h: Report extra info to try to work out why
MSVC build is failing expandweights1.
Mon May 07 00:26:59 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.h: Another tweak to TEST_EQUAL_DOUBLE().
Sun May 06 22:30:26 BST 2007 Olly Betts <olly@survex.com>
* docs/quickstart.html: Remove reference to DA databases since the
muscat36 backend has been removed. Update to recommend GCC 3.3
or later, as we do elsewhere. Change references to "quartz" to
say "flint", or remove them.
Sun May 06 16:02:28 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Set version to mythical 0.9.99.
Sun May 06 15:06:01 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_db.cc: Add test_flintdatabaseformaterror1() which
checks what happens when an old-format flint database is opened.
It generates the old-format database by making a fake "iamflint"
file containing an old version number.
Sun May 06 04:00:39 BST 2007 Olly Betts <olly@survex.com>
* expand/ortermlist.cc: Remove incorrect assertion check in
OrTermList::next(), replacing it with anexplanatory comment.
Sun May 06 02:42:30 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Fix typo.
Sun May 06 02:39:23 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Aha! Richard's patch failed to compile
because stdlib.h was in "#ifndef __WIN32__" not "#ifdef __WIN32__".
Sun May 06 02:27:18 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Protect _set_invalid_parameter_handler, etc
by _MSC_VER >= 1400 (MSVC 2005) and __STDC_SECURE_LIB__ (undocumented
but cribbed from the Python sources). Refactor into a handy class
(MSVCIgnoreInvalidParameter) which just needs to be instantiated in
the scope where you want to allow invalid parameters to be passed.
Sun May 06 01:42:06 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Rework use of _invalid_parameter_handler to
only apply when _MSC_VER is defined, to fix the mingw build.
Sat May 05 22:30:01 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* net/remoteconnection.cc: Under __WIN32__, add an invalid
parameter handler which ignores the error and use it for the
calls to _get_osfhandle() which are sometimes expected to fail.
Requires stdlib.h according to msdn, so also #include that.
Sat May 05 20:43:29 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc,common/remoteconnection.h,
common/remoteserver.h,common/tcpserver.h,net/remoteserver.cc,
net/tcpserver.cc: Open a fresh copy of the database(s) on each
connection to a xapian-tcpsrv rather than relying on being able to
share a database across fork() or between threads (which we don't
promise will work). Largely based on patch from Mark Hammond.
Fixes some of bug#141 and all of bug#142.
Sat May 05 02:19:39 BST 2007 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Use RETURN() not return in methods with debug
logging.
Sat May 05 02:19:11 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Fix typo in comment.
Fri May 04 23:59:54 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_version.cc: Remove the "u" suffix from
FLINT_VERSION as it's confusing in the "wrong format version"
error message and doesn't seem needed in the code.
Fri May 04 23:56:32 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/: Revert patch from revision 8426 (except for the
bit which removed the unused prototypes), to avoid the
possibility that it introduces bugs into the code just before
1.0.0. The patch is attached to bug #143 for later reference.
Fri May 04 23:50:39 BST 2007 Olly Betts <olly@survex.com>
* examples/delve.cc: Report the error string if we catch Xapian::Error
while trying to open a database.
Fri May 04 22:50:54 BST 2007 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Fix a few typos; elaborate on a few points.
Fri May 04 20:07:44 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/termgenerator_internal.cc: Fix bug in termgenerator -
arguments to add_posting were the wrong way round.
Fri May 04 20:00:40 BST 2007 Olly Betts <olly@survex.com>
* queryparser/termgenerator_internal.cc: Limit term length, handle
infix and suffix characters, and convert apostrophes to ASCII
representation.
Fri May 04 19:47:43 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Fill in remaining missing documentation
comments.
Fri May 04 19:30:56 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/termgenerator.h: Add convenience version of
index_text() and index_text_without_positions() which take a
std::string instead of a Utf8Iterator.
Fri May 04 17:11:11 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* unicode/utf8itor.cc: Fix segfault bug in Utf8Iterator::operator*().
If this was called when the iterator had reached end, invalid
memory was accessed because p was compared to end, p will always
be set to NULL when the iterator reaches the end. No regression
test, but the smoketest tests I'm implementing in the bindings
will exercise this code.
Fri May 04 16:29:51 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/unicode.h: Add documentation comments to
Utf8Iterator, so I don't have to work out how it works again.
Fri May 04 14:55:32 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/unicode.h: Add assign() function which takes a
string, for symmetry with the constructors. Also makes
implementing the bindings easier.
Fri May 04 13:04:52 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* include/Makefile.mk: Add termgenerator.h to distribution
tarballs.
Fri May 04 03:41:56 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.h: Test against pow(10, -DBL_DIG) rather
than DBL_EPSILON. DBL_EPSILON is a little bit smaller, but we use
DBL_DIG for displaying the numbers and it looks stupid to say two
numbers which are displayed identically should be nearly the same!
Fri May 04 03:33:51 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Fix reference to --enable-maitainer-mode and documentation
rebuilding.
Fri May 04 03:32:57 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Fix now erroneous references to tools "required in
maintainer mode" to "required to build documentation".
Fri May 04 01:49:05 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Document --enable-documentation.
Fri May 04 01:38:44 BST 2007 Olly Betts <olly@survex.com>
* Makefile.am,bin/Makefile.mk,configure.ac,docs/Makefile.am,
examples/Makefile.mk: Add new configure option
"--enable-documentation" which enables the make rules to rebuild the
documentation. By default this follows the setting of
"--enable-maintainer-mode" (so giving much the same behaviour as
currently), but the documentation rules can now be controlled
independently. Also, if documentation isn't being built, the
configure probes for tools required to rebuild it are no longer run
which should shorten configure time a bit for end-users building
releases.
Thu May 03 22:07:39 BST 2007 Olly Betts <olly@survex.com>
* common/remoteserver.h: Remove unused default values for
active_timeout_ and idle_timeout_ parameters. Fix repeated typo
in documentation comments ('millisrconds' -> 'milliseconds').
Thu May 03 15:05:24 BST 2007 Olly Betts <olly@survex.com>
* include/xapian.h,include/xapian/termgenerator.h,queryparser/:
Initial cut of TermGenerator class.
Thu May 03 15:04:09 BST 2007 Olly Betts <olly@survex.com>
* generate-exceptions.in: Hide the internal constructors of generated
error classes in the doxygen-generated API docs.
Thu May 03 04:37:51 BST 2007 Olly Betts <olly@survex.com>
* expand/ortermlist.cc,expand/ortermlist.h: Fix compilation error when
--enable-assertions is used.
Thu May 03 03:57:42 BST 2007 Olly Betts <olly@survex.com>
* common/safeunistd.h: Provide a POSIX-compatible sleep() function.
* common/utils.h: Remove inferior POSIX-compatible sleep() function.
Thu May 03 03:17:02 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/: Mark all @internal member variables and functions
which aren't private with @private so doxygen doesn't document them.
Thu May 03 02:33:09 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/: Mark DocIDWrapper, RefCntBase, RefCntPtr,
TermNameWrapper, and TermPosWrapper as "@internal" so that they don't
show up in the doxygen-generated API documentation. In particular,
this makes the class collaboration diagrams much more useful.
* include/xapian/errorhandler.h: Declare the class in namespace Xapian
rather than with namespace Xapian:: since the latter seems to
confuse doxygen.
Thu May 03 02:31:33 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/unicode.h: Fix wrapping of comment.
Thu May 03 00:05:23 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/: Remove unused (and unimplemented) declarations
of begin_transaction_(), commit_transaction_() and
cancel_transaction_() from FlintWritableDatabase class. Tidy up
handling of metainfo (total_length and lastdocid) to avoid
repeatedly parsing the special record, and make it easier to
store additional metainfo in future.
Also, remove code which ensures that there is always a special
record - this was added in revision 5459 when the special record
was stored in the record table, so that the number of documents
in the database could always be calculated by subtracting 1 from
the number of entries in the record table. Now that the special
record is stored in the postlist table, this is no longer
necessary.
Wed May 02 17:56:39 BST 2007 Olly Betts <olly@survex.com>
* backends/dbfactory_remote.cc,include/xapian/dbfactory.h:
Remote::open_writable() now defaults to no (active) timeout. The
connection timeouts for Remote::open() and Remote::open_writable()
now default to 10 seconds rather than defaulting to the same as
the active timeout (which defaults to 10 seconds).
Wed May 02 16:00:22 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* common/safeunistd.h,tests/harness/backendmanager.cc: Fix
compilation on windows - safeunistd.h was undefining ssize_t
and thus overriding the definition in config.h, and include
safewindows.h for backendmanager.cc
Wed May 02 15:34:33 BST 2007 Olly Betts <olly@survex.com>
* common/safeunistd.h: Don't define ssize_t here for MSVC - do it in
config.h instead. This avoids pulling in <windows.h> which will
hopefully fix another macro redefinition warning under MSVC.
Wed May 02 15:20:56 BST 2007 Olly Betts <olly@survex.com>
* common/safewindows.h: Define NOGDI before including windows.h to
prevent it from defining a macro called "ERROR" which collides with
the generated queryparser sources, causing a warning in the MSVC
build.
Wed May 02 14:38:33 BST 2007 Olly Betts <olly@survex.com>
* common/termlist.h: Forward declare ExpandStats as "class" not
"struct" for consistency with the actual declaration.
Wed May 02 14:30:41 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Try '-lzlib' for zlib, which mingw reportedly needs.
Wed May 02 14:21:40 BST 2007 Olly Betts <olly@survex.com>
* common/remoteconnection.h,include/xapian/dbfactory.h,
net/remoteserver.cc: A timeout of `0' in the remote backend now
means "no timeout" (code patch from Mark Hammond).
Wed May 02 04:17:28 BST 2007 Olly Betts <olly@survex.com>
* Makefile.am,api/,backends/alltermslist.cc,backends/flint/,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
backends/quartz/,backends/remote/net_termlist.cc,
backends/remote/net_termlist.h,backends/remote/remote-database.cc,
common/,expand/,matcher/: Split expand functionality out of
"matcher" subdirectory into new "expand" subdirectory since it's
not really connected to query matching and the matcher subdirectory
is one of the largest. Rewrite OrTermList, eliminating
BranchTermList entirely. Alter expand to pass in an object (of
class Xapian::Internal::ExpandWeight) which accumulates statistics
instead of returning OmExpandBits objects which we then have to
merge (and eliminating the need for LeafTermList entirely). Query
expansion for multiple databases should now give results more like
that for a single database with the same documents (if
USE_EXACT_TERMFREQ is used, the results should be the same). Debug
logging from expand is now all of type EXPAND (some was of types
MATCHER and WTCALC before).
Wed May 02 03:35:17 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Add deprecation info for Omega too.
Wed May 02 00:24:13 BST 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Add test expandweights1 as a regression test for
the previous commit.
* tests/harness/testsuite.h: Set the precision for TEST_EQUAL_DOUBLE
so we don't claim two numbers to be different yet display them the
same!
Tue May 01 23:27:10 BST 2007 Olly Betts <olly@survex.com>
* backends/remote/net_termlist.cc,backends/remote/remote-database.cc,
common/remoteprotocol.h,docs/remote_protocol.html,
net/remoteserver.cc: Fix handling of the document length in the
termlist for the remote backend.
Tue May 01 23:17:28 BST 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc: Several tests were marked as "local db only" for
historical reasons. Enable them for remote backends too.
* backends/remote/net_postlist.cc,tests/api_db.cc: Fix a bug in
NetworkPostList::skip_to() which apitest's postlist4 reveals.
Tue May 01 21:00:26 BST 2007 Olly Betts <olly@survex.com>
* api/omtermlistiterator.cc,api/omvalueiterator.cc,
backends/multi/multi_alltermslist.cc: Add explicit
`#include "omassert.h"'.
* backends/multi/multi_alltermslist.cc: Remove all explicit
std:: qualifiers and add `using namespace std;'.
Tue May 01 20:56:10 BST 2007 Olly Betts <olly@survex.com>
* common/multialltermslist.h: Add explicit std:: qualifiers for
string, for consistency with std::vector in this header.
Tue May 01 15:19:53 BST 2007 Olly Betts <olly@survex.com>
* matcher/branchpostlist.h: Don't check for NULL pointer before
calling delete.
Tue May 01 02:29:10 BST 2007 Olly Betts <olly@survex.com>
* common/document.h,common/documentterm.h,common/multialltermslist.h,
matcher/rset.cc,queryparser/queryparser.cc: Add some explicit
includes for headers which were previously only implicitly included
(in preparation for a forthcoming change which removes some of the
implicit inclusions).
Tue May 01 01:20:53 BST 2007 Olly Betts <olly@survex.com>
* backends/database.cc,bin/quartzcheck.cc,docs/deprecation.rst,
include/xapian/dbfactory.h,tests/api_db.cc,
tests/harness/backendmanager.cc,tests/quartztest.cc: Deprecate
the Quartz backend and related functions and utilities.
Fri Apr 27 12:56:13 BST 2007 Olly Betts <olly@survex.com>
* tests/Makefile.am: Pass '-no-install' when linking test programs,
since we don't ever install them. This means libtool doesn't need
to generate shell script wrappers on most platforms. Also prefer
'$(ldflags)' to '@ldflags' as the former allows the user to override
when they run 'make' which is sometimes useful.
Fri Apr 27 03:44:15 BST 2007 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Add links for the various researchers mentioned
by name.
Thu Apr 26 17:57:10 BST 2007 Olly Betts <olly@survex.com>
* docs/bm25.html,docs/intro_ir.html: Assorted documentation
improvements.
Thu Apr 26 15:43:24 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Update with changes to Python bindings.
Thu Apr 26 06:01:45 BST 2007 Olly Betts <olly@survex.com>
* common/expandweight.h,matcher/expandweight.cc: Better handling of
expand with multiple databases.
Wed Apr 25 18:35:13 BST 2007 Olly Betts <olly@survex.com>
* api/omenquire.cc: Delete nonsensical comment.
Wed Apr 25 17:41:58 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Use the collective term "features" rather than
overloading the term "functions". Casual readers may miss the
definition altogether, and even dedicated readers will probably
already have a strong mental image of what a "function" is in the
context of an API.
Wed Apr 25 14:52:11 BST 2007 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Improve the look of the formulae.
Wed Apr 25 03:56:18 BST 2007 Olly Betts <olly@survex.com>
* common/omqueryinternal.h,languages/generate-allsnowballheaders.in,
matcher/msetcmp.h,queryparser/queryparser_internal.h: Add missing
multiple inclusion guards.
Wed Apr 25 03:12:50 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser_internal.h: Don't include <config.h> in
a header file.
Wed Apr 25 03:05:09 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.cc: Initialise `internal' member inline
for consistency with other classes.
Tue Apr 24 04:55:45 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Add missing ')' to the error messages when zlib stuff
isn't found.
Tue Apr 24 02:56:57 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.h,
backends/inmemory/inmemory_database.h,
backends/quartz/quartz_database.h: MSVC doesn't handle using
properly.
Tue Apr 24 01:25:34 BST 2007 Olly Betts <olly@survex.com>
* matcher/bm25weight.cc,matcher/expandweight.cc: Fix typo in comments:
'releveant' -> 'relevant'.
Mon Apr 23 23:00:23 BST 2007 Olly Betts <olly@survex.com>
* api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h,
tests/api_anydb.cc,tests/api_db.cc: Deprecate
Enquire::include_query_terms and Enquire::use_exact_termfreq in
favour of capitalised versions Enquire::INCLUDE_QUERY_TERMS and
Enquire::USE_EXACT_TERMFREQ (for consistency with our other
manifest constants, and general C/C++ conventions).
Mon Apr 23 18:14:20 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc,backends/quartz/btree.cc: Support for
VLAs in C++ is a GCC extension, so eliminate the need for them.
Mon Apr 23 16:32:07 BST 2007 Olly Betts <olly@survex.com>
* docs/: svn:ignore deprecation.html. svn:ignore apidoc.pdf and
sourcedoc.pdf rather than *.pdf.
Mon Apr 23 16:08:53 BST 2007 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Resolve FIXME about MapTermList.
Mon Apr 23 16:06:38 BST 2007 Olly Betts <olly@survex.com>
* api/valuerangeproc.cc,backends/flint/flint_check.cc,
backends/flint/flint_table.cc,backends/quartz/btree.cc,
backends/quartz/btreecheck.cc,bin/xapian-tcpsrv.cc,examples/,
languages/steminternal.h,tests/harness/testsuite.cc,
tests/harness/testsuite.h,tests/stemtest.cc: Fix compilation with
GCC 4.3 snapshot.
Mon Apr 23 15:20:55 BST 2007 Olly Betts <olly@survex.com>
* common/safeunistd.h: Comment tweaks.
Mon Apr 23 11:54:14 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* common/safeunistd.h: Include <process.h> on windows to get
getpid() instead of using a #define.
Mon Apr 23 11:30:56 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/maptermlist.h: Fix typo in error message.
Mon Apr 23 11:08:01 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/maptermlist.h: Throw an InvalidOperationError() if
MapTermList::get_termfreq() is called, instead of simply having
Assert(false): this gets called if a term iterator is accessed
for a freshly created Document, and the get_termfreq() method is
called on it. The error message is specific to this situation,
since this is the only place in which MapTermList is used.
Mon Apr 23 03:22:54 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_lock.cc,
backends/flint/flint_lock.h: Report why we failed to get a write
lock on a flint database.
Mon Apr 23 01:44:13 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_version.cc: Update the flint format version
since older flint versions can't read compressed tags.
Mon Apr 23 01:25:25 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Probe for zlib.h and -lz.
* backends/flint/,bin/xapian-compact.cc: Use zlib to compress tags
in the record and termlist tables.
* tests/Makefile.am,tests/runtest.in,tests/valgrind.supp: Add a
valgrind suppression for zlib (a known issue - for speed zlib
deliberately reads past the end of the buffer in some cases).
Sun Apr 22 04:24:06 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/: Remove documentation for blocksize_ parameters
which were removed some time ago.
Sun Apr 22 00:02:13 BST 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Track the minimum weight required to be
considered for the MSet separately from the minimum item which
could be considered. Trying to combine the two is causing subtle
bugs (fixed bug#86).
Sun Apr 22 00:00:39 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Add notes about the files Omega uses from xapian-core.
Sat Apr 21 23:49:58 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.cc: Clear the stoplist when we parse a new
query.
* tests/queryparsertest.cc: Add regression test.
Sat Apr 21 23:27:33 BST 2007 Olly Betts <olly@survex.com>
* Makefile.am,common/Makefile.mk,getopt/: Move getopt.cc from getopt/
to common/. Having a whole directory for a single source file
is a bit extravagant, and putting it in common/ allows us to share a
copy with omega easily.
Sat Apr 21 21:38:20 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/quartz/quartz_database.cc,
backends/quartz/quartz_log.cc,common/omdebug.h,common/safeunistd.h,
tests/harness/testsuite.cc: safeunistd.h now defines getpid() to
GetCurrentProcessId() for MSVC, and we now include this where we
want to use getpid() rather than conditionally defining getpid().
Sat Apr 21 04:13:12 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Explicitly set AM_CXXFLAGS to an empty value to start
with to avoid issues if it's set in the environment. Cache the
results of the test to see if the C++ compiler actually works, and
in the XAPIAN_TEST_LINKER_FLAG macro.
* configure.ac, include/xapian/visibility.h: Add --disable-visibility
option to configure to completely disable use of -fvisibility.
* INSTALL: Document all --enable-backend-* options explicitly.
Document how to disable use of -fvisibility and
-Bsymbolic-functions should you want/need to. Improve wording in
a few places.
Fri Apr 20 19:20:23 BST 2007 Olly Betts <olly@survex.com>
* HACKING,configure.ac: Revert to requiring autoconf 2.59 so that the
.spec file for building RPMs can run `autoreconf' to work around a
libtool bug.
Fri Apr 20 18:12:51 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Document return type of ExpandDecider::Apply()
and MatchDecider::Apply() in C# is now bool instead of int.
Fri Apr 20 18:01:18 BST 2007 Olly Betts <olly@survex.com>
* xapian.spec.in: Package xapian-check and its man page.
Fri Apr 20 14:38:00 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Note changed return type of
ExpandDecider::operator() and MatchDecider::operator().
Fri Apr 20 14:28:39 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: MatchDecider::operator() now returns
`bool' not `int'. Remove declaraction of ExpandDecider.
* include/xapian/expanddecider.h: Move declaration of ExpandDecider
to here. ExpandDecider::operator() now returns `bool' not `int'.
ExpandDeciderAnd now names parameters `first' and `second' and
documents the order in which they are applied (useful if you have
an expensive and a cheap test). ExpandDeciderAnd can now take
parameters by reference instead of pointer.
* api/Makefile.mk,include/xapian/enquire.h,api/omenquire.cc,
api/expanddecider.cc: New home for definitions of virtual methods of
ExpandDecider and subclasses.
* api/omenquire.cc,common/expand.h,matcher/expand.cc: Eliminate
internal class ExpandDeciderAlways - just test pointer against NULL
instead.
* tests/api_anydb.cc,tests/api_db.cc: Update for change in return
type from MatchDecider::operator() and ExpandDecider::operator().
Fri Apr 20 10:35:09 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Add note on rules with multiple targets.
Thu Apr 19 19:02:42 BST 2007 Olly Betts <olly@survex.com>
* PLATFORMS: Remove reports for 0.7.* and demote reports for 0.8.* to
"older reports" status. All SF compilefarm machines are now "no
longer available", so update the symbols and key to reflect this.
Thu Apr 19 13:27:59 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Fix vim magic comment. Add space after URL to stop
'::' getting glued to it.
Thu Apr 19 11:36:19 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Turn syntax highlighting off, since it's broken for the
restructured text in this file anyway.
Thu Apr 19 03:26:28 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.h,
backends/inmemory/inmemory_database.h,
backends/quartz/quartz_database.h:
The trick of importing base class methods with 'using' breaks
compilation with GCC 2.95 which doesn't issue the warning we're
trying to avoid, so add a preprocessor check,
Thu Apr 19 03:20:31 BST 2007 Olly Betts <olly@survex.com>
* common/progclient.h,net/progclient.cc: Always use pid_t not int for
holding a process id.
Thu Apr 19 01:08:57 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Update '#callable' footnote.
Thu Apr 19 00:07:02 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.h,
backends/inmemory/inmemory_database.h,
backends/quartz/quartz_database.h: Add using declarations to
subclasses of Xapian::Database::Internal which don't override the
term forms of delete_document() and replace_document() to prevent
compiler warnings about these methods being hidden.
Wed Apr 18 23:22:29 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Remove code which can't actually be
reached, which fixes a warning in the mingw build.
Wed Apr 18 23:07:45 BST 2007 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
include/xapian/enquire.h,matcher/Makefile.mk,
matcher/biaspostlist.h,matcher/multimatch.cc,net/remoteserver.cc:
Remove Enquire::set_bias().
* docs/deprecation.rst: Update wrt Enquire::set_bias(). Fix typo.
Wed Apr 18 18:51:42 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Require autoconf 2.60 or newer. Drop docdir
compatibility hack which is no longer required.
* HACKING: Document requirement. Fix typo (or out-of-date info) for
automake requirement (we require 1.9.5 not 1.8.5).
Wed Apr 18 18:27:35 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Note the deprecation of get_description()
methods for Python.
Wed Apr 18 14:57:03 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Minimal changes to make this into valid restructured
text.
Wed Apr 18 11:27:57 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Require autoconf version 2.59c or later:
AC_TYPE_SSIZE_T isn't present in earlier versions.
Wed Apr 18 11:08:13 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Fix table formatting error
Wed Apr 18 01:32:48 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Update with methods which have been removed
from the bindings.
Wed Apr 18 00:24:00 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Move methods which have just been removed
from the list of deprecated methods to the list of removed
methods.
Tue Apr 17 23:58:53 BST 2007 Olly Betts <olly@survex.com>
* api/omdocument.cc,api/omenquire.cc,api/omquery.cc,include/xapian/,
languages/stem.cc,tests/api_db.cc: Remove methods we're deprecating
for 1.0.
Tue Apr 17 23:50:06 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Note that is_empty() is not deprecated for
PHP after all!
Tue Apr 17 22:17:41 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: GCC 2.95 doesn't support
std::string::clear(), so use resize(0) instead.
* HACKING: Document the above issue in a reworked section on C++
STL features. Update the section on safeXXX.h headers.
Tue Apr 17 22:07:39 BST 2007 Olly Betts <olly@survex.com>
* common/safesysselect.h: Correct typo in #error message.
Tue Apr 17 19:18:00 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Factor out code to test for a linker flag into macro
XAPIAN_TEST_LINKER_FLAG. With g++, use XAPIAN_TEST_LINKER_FLAG to
see if -Bsymbolic-functions is supported (it requires a very recent
version of ld currently). This option reduces the size and load
time of the shared library by resolving references within the
library when it's created. Currently untested on a box which
supports -Bsymbolic-functions.
Tue Apr 17 12:01:46 BST 2007 Olly Betts <olly@survex.com>
* unicode/utf8itor.cc: Tidy up code layout.
Tue Apr 17 02:06:39 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/unicode.h,unicode/utf8itor.cc: Make nonascii_to_utf8
a public method. Make get_case_type(), get_category(), and
get_delta() internal, but provide a public get_category() function
which takes a Unicode character value.
Tue Apr 17 02:05:32 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/Makefile.mk: Distribute flint_check.h.
Tue Apr 17 01:47:05 BST 2007 Olly Betts <olly@survex.com>
* tests/api_posdb.cc: The remote backend now supports all database
operations, so merge localpositionaldb_tests into
positionaldb_tests.
* tests/: Remove the trivial separate api_XXXdb.h headers, some of
which were out-of-step with their respective .cc sources. Instead
just keep the array external declarations in apitest.h.
* tests/apitest.h,tests/api_transdb.cc: Move TESTCASE and
END_OF_TESTCASES macros into header.
* tests/api_db.cc: Remove test collapsekey2 - it's only relevant for
the Muscat 3.6 backend, so it's unused now that has been removed.
* tests/: Add unicode tests, adapted from Omega's utftest.
Tue Apr 17 00:14:16 BST 2007 Olly Betts <olly@survex.com>
* Makefile.am,include/Makefile.mk,include/xapian.h,
include/xapian/unicode.h,queryparser/,unicode/: Expose Unicode and
UTF-8 related classes and functions as a public API.
Mon Apr 16 16:06:22 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Bring document fully up-to-date, listing
all the planned deprecations for the bindings. Also, include the
full upgrade notes in the listings, so they can be preserved
accessibly for posterity. I even retrieved the notes for the
already-removed QueryParser::set_stemming_options from 0.9.10.
Mon Apr 16 11:36:18 BST 2007 Olly Betts <olly@survex.com>
* net/tcpclient.cc: Call WSAGetLastError() instead of socket_errno()
when we want to compare the result against WSAEWOULDBLOCK.
Mon Apr 16 11:19:21 BST 2007 Olly Betts <olly@survex.com>
* common/remoteconnection.h,common/safewinsock2.h: Need to negate the
POSIX error codes we define in terms of winsock ones.
Fri Apr 13 16:24:29 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/doxygen_api_conf.in: Turn on XML output, so that we can use
it to populate docstrings for the python bindings.
Fri Apr 13 11:38:39 BST 2007 Olly Betts <olly@survex.com>
* backends/Makefile.mk,backends/alltermslist.cc,common/alltermslist.h:
Split AllTermsList into header and code. AllTermsList::get_wdf()
now throws InvalidOperationError() rather than asserting in a
debug build and returning 0 in a non-debug build.
* backends/Makefile.mk: Correct list for "how to add a new backend".
Fri Apr 13 10:17:46 BST 2007 Olly Betts <olly@survex.com>
* api/version.cc: Simpler and cleaner fix - the prototypes for the
version functions had moved from xapian/version.h to xapian.h so we
were including the wrong header and not seeing the prototypes with
visibility markup!
Fri Apr 13 09:29:17 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/version.cc: Add visibility annotations to definitions of
version functions: the annotation apparently needs to be applied
to the definition as well as the declaration or it is ignored:
possibly the annotation on the declaration is ignored anyway,
but it should be kept there for documentation purposes in any
case. Fixes link error with bindings under gcc 4.1.
Fri Apr 13 01:39:57 BST 2007 Olly Betts <olly@survex.com>
* common/remoteconnection.h,net/progclient.cc,net/remoteconnection.cc:
GetLastError() has an unsigned return type, so need to cast to int
before negating.
Fri Apr 13 01:39:20 BST 2007 Olly Betts <olly@survex.com>
* docs/deprecation.rst: Add xapian_version_string() and friends.
Fri Apr 13 01:24:53 BST 2007 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: More 'tout' output.
Fri Apr 13 01:19:20 BST 2007 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/error.cc,bin/xapian-tcpsrv.cc,
common/remoteconnection.h,common/safeerrno.h,configure.ac,
generate-exceptions.in,net/,tests/harness/testsuite.cc: On
MS Windows, if Xapian::Error::my_errno is the result of
GetLastError() or WSAGetLastError(), negate it (the error codes can
overlap with errno codes). On UNIX, put h_errno negated in my_errno
if a call to gethostbyname() fails. Add
Xapian::Error::get_error_string() method which decodes my_errno
in the appropriate way to give a string, and use this instead of
strerror(error.get_errno()).
Fri Apr 13 01:17:08 BST 2007 Olly Betts <olly@survex.com>
* languages/generate-allsnowballheaders.in: win32 makefiles don't keep
the snowball header list in sorted order like we do, so fix that
here. Also allow for '\' as path separator.
Fri Apr 13 00:58:09 BST 2007 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Add "tout" debug output to stemlangs1.
Thu Apr 12 21:37:04 BST 2007 Olly Betts <olly@survex.com>
* tests/Makefile.am: Add support for QUIET= and QUIET=y arguments to
"make".
Thu Apr 12 21:35:50 BST 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Use a substitution for RSTHTML (like we do for the
snowball generated sources).
Thu Apr 12 20:41:18 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Add validate_query() calls to the "term" and
"value range" constructors.
Thu Apr 12 20:00:14 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,include/xapian/query.h: Only validate a
Query object when it's either constructed or changed to avoid O(n^2)
behaviour in some cases.
Thu Apr 12 19:59:13 BST 2007 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Fix nasty function casting for argument to
qsort - it's (at least technically) not portable.
Thu Apr 12 17:47:47 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Fix GCC version test to only turn on
-fvisibility=hidden for GCC >= 4.
Thu Apr 12 16:47:56 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_btreebase.h,backends/flint/flint_cursor.h,
backends/flint/flint_table.h,backends/quartz/,common/,configure.ac,
generate-exceptions.in,include/Makefile.mk,include/xapian.h,
include/xapian/: Add visibility annotations to the library, which
when using GCC >= 4 reduces the size and load time of the library
and increase the runtime speed a little. Under x86_64, the stripped
library is 6.4% smaller (1.5% smaller with debug information).
Thu Apr 12 16:45:57 BST 2007 Olly Betts <olly@survex.com>
* api/version.cc: Add missing "#include <config.h>".
Thu Apr 12 13:41:52 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/quartztest.cc: Put removedir() function back for now to fix
build.
Thu Apr 12 13:02:30 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* net/progclient.cc: Some (but not all) versions of MSVC need
"#include <io.h>" to get the _open_osfhandle identifier. Add it.
Thu Apr 12 12:00:34 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/remote/net_postlist.cc: Include config.h
Thu Apr 12 11:54:50 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/multi/multi_termlist.cc: Include config.h to get system
specific defines.
* common/safesysstat.h: Change signature of mkdir to take mode_t
instead of int, to match unixy definition.
Thu Apr 12 10:19:49 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Probe for mode_t.
Thu Apr 12 01:10:18 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Move BitReader class inside
Xapian namespace to avoid namespace pollution.
* bin/xapian-check.cc: Include BitReader::decode_interpolative()
- previously we were relying on using the copy from the library.
Thu Apr 12 01:02:53 BST 2007 Olly Betts <olly@survex.com>
* common/safesysstat.h: Under __WIN32__, provide a POSIX-like mkdir()
wrapper which takes 2 arguments, but ignores the file mode, so we
can just call mkdir with a mode argument everywhere.
* common/utils.h: Remove special case handling of mkdir.
* bin/xapian-compact.cc: Replace uses of om_tostring() with a call
to sprintf. No longer need to `#include "utils.h"'.
Thu Apr 12 00:44:18 BST 2007 Olly Betts <olly@survex.com>
* api/,backends/inmemory/inmemory_positionlist.cc,common/,matcher/,
net/remoteconnection.cc,net/serialise.cc: omdebug.h only includes
omassert.h for the trivial "STRINGIZE" macro, so just duplicate
that rather than pulling in an extra header everywhere. Then fix
up the two dozen files which were relying on this implicit
inclusion!
Thu Apr 12 00:10:48 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Tweak #ifdef XAPIAN_DEBUG_VERBOSE to
include DEBUGLINE() for clarity (no change in behaviour).
Wed Apr 11 23:36:10 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix regression introduced by
Richard's change, and restructure to make the handling for each case
more obvious.
* tests/queryparsertest.cc: Add a couple of testcases for the
regression.
* queryparser/queryparser_internal.h: Remove reference to "bool" in
comment which no longer applies.
Wed Apr 11 21:25:36 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser_internal.h: Refactor boolean "flag"
member in BoolAndString class into an enum of possible prefix
types. Rename "flag" to "type". Rename BoolAndString to
PrefixInfo.
* queryparser/queryparser.cc: Change add_prefix() and
add_boolean_prefix() to match changes to queryparser_internal.h
* queryparser/queryparser.lemony: Refactor handling of prefixed
terms to match queryparser_internal, and to use a switch()
structure: no functional changes, but code is considerably more
readable (I hope).
Wed Apr 11 21:13:31 BST 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc,tests/quartztest.cc: Rework quartztest's "open1"
into API level tests for quartz and flint in apitest.
Wed Apr 11 14:01:31 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/deprecation.rst: Remove documentation of the "#define
XAPIAN_DEPRECATED(D) D" hack, and clarify documentation on how
long we support deprecated functions.
Wed Apr 11 09:25:55 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/Makefile.am,docs/deprecation.rst: Add initial draft of
deprecation policy document, with list of all API items currently
marked for deprecation.
* HACKING: Add note about keeping deprecation.rst up-to-date when
making a release.
Tue Apr 10 19:07:24 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: --enable-quiet now uses AS_HELP_STRING.
Tue Apr 10 18:53:32 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/index_utils.cc: Return the empty document we already
have rather than constructing another.
Tue Apr 10 17:45:11 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Fix typo in comment.
Tue Apr 10 17:35:57 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Fix "if" to "is" typo in 3
comments.
Tue Apr 10 16:46:09 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Define XAPIAN_TCPSRV and
XAPIAN_PROGSRV under UNIX too, and use them everywhere.
Tue Apr 10 16:33:48 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.h: Remove "BackendManager::" from
method declaration.
Tue Apr 10 15:35:50 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Define HAVE_SOCKETPAIR if we have socketpair().
Tue Apr 10 15:29:49 BST 2007 Olly Betts <olly@survex.com>
* net/progclient.cc: Fix #endif placement so it compiles on UNIX.
Tue Apr 10 14:18:06 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Remove debugging code.
Tue Apr 10 12:57:51 BST 2007 Olly Betts <olly@survex.com>
* backends/dbfactory_remote.cc,common/progclient.h,net/progclient.cc,
net/remoteconnection.cc,tests/api_db.cc,tests/apitest.cc,
tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
Add support for the "prog" variant of the remote backend (patch
started by me, finished by Mark Hammond).
Tue Apr 10 12:23:46 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,backends/inmemory/inmemory_database.cc,
backends/quartz/quartz_alldocspostlist.cc,matcher/localmatch.cc,
matcher/multimatch.cc,tests/harness/testutils.cc: Prefer
`CONTAINER.empty()' to `CONTAINER.size() == 0'.
Tue Apr 10 12:09:45 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Tighten up an assertion.
Mon Apr 09 20:56:23 BST 2007 Olly Betts <olly@survex.com>
* configure.ac,tests/harness/backendmanager.cc,tests/runsrv.in,
tests/runtest.in: Run the remote backend server using new "runsrv"
script instead of "runtest". This doesn't echo anything to stdout,
and if valgrind is in use, runs the remote server under
"--tool=none" which is much quicker than using valgrind's default
memcheck tool (we need to run the remote server under valgrind
because valgrind's emulation of excess FP precision isn't exact and
otherwise we get tests failing because of these differences).
Mon Apr 09 20:24:30 BST 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc,tests/api_nodb.cc: Move test poscollapse2 to the
"no database" category, since it doesn't require a database!
Mon Apr 09 18:04:40 BST 2007 Olly Betts <olly@survex.com>
* docs/remote_protocol.html: Correct documentation - MSG_REOPEN gives
a response of REPLY_UPDATE.
Mon Apr 09 15:08:44 BST 2007 Olly Betts <olly@survex.com>
* ./: svn:eol-style not svn:eolstyle.
Mon Apr 09 15:00:30 BST 2007 Olly Betts <olly@survex.com>
* ./: Set svn:eolstyle to native for most text files.
Mon Apr 09 14:50:40 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Delete the corresponding entry
(if any) from doclens in delete_document(). Add assertion to
add_document_() that the corresponding entry in doclens isn't
already set, but in a non-debug build overwrite any existing
entry as that's more likely to be correct.
* backends/quartz/quartz_database.cc: Ditto.
Mon Apr 09 14:08:55 BST 2007 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Just assign to doclens[did].
Mon Apr 09 14:06:58 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Just assign to doclens[did].
Mon Apr 09 11:29:22 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/quartz/quartz_database.cc: Apply same change to quartz.
Mon Apr 09 11:24:31 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_database.cc: Fix bug with document lengths
in replace document. Was using doclens.insert() to set the new
document length, but this has no effect if the entry already
exists. This fixes replacedoc3 for flint (and thus for remote
databases), but the same change is needed for quartz.
* backends/flint/flint_postlist.cc: Add some debugging lines.
Mon Apr 09 01:43:02 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/: Add some more debugging messages to help track
down the problem with document lengths shown up by previous
change.
Mon Apr 09 01:40:34 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_wrdb.cc: Add asserts to check that the value of
get_doclength() on the database and on the posting list are
correct. Currently fails with the value from the posting list
for the document which has been replaced (or sooner if assertions
are turned on).
Sun Apr 08 23:24:20 BST 2007 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac: `./configure --enable-quiet' allows you to
specify at configure time to pass `--quiet' to libtool. Now you can
override this at make-time by using `make QUIET=' (to turn off
`--quiet') or `make QUIET=y' (to turn on `--quiet').
Sun Apr 08 23:23:50 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Mention AssertEqParanoid and AssertNeParanoid.
Sun Apr 08 22:45:45 BST 2007 Olly Betts <olly@survex.com>
* common/omassert.h: Add AssertEqParanoid and AssertNeParanoid macros.
* backends/flint/flint_table.cc,backends/inmemory/inmemory_database.cc,
backends/multi/multi_postlist.cc,backends/quartz/btree.cc: Use them.
* backends/multi/multi_postlist.cc: Add extra assertions to
MultiPostList::get_doclength().
Sun Apr 08 22:16:11 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Fix typos: `AC_CHECK_SSIZE_T' -> `AC_TYPE_SSIZE_T';
`AC_CHECK_PID_T' -> `AC_TYPE_PID_T'.
Sun Apr 08 22:04:54 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Snapshots and releases are now generated with autoconf 2.61.
Sun Apr 08 21:42:03 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Use AC_CHECK_SSIZE_T instead of our own test. Add
AC_CHECK_PID_T for any platforms which don't have `pid_t'.
* net/tcpserver.cc: Use `pid_t' instead of `int'.
* common/progclient.h,net/progclient.cc: Cleaner rewritten version of
progclient.h.
Sun Apr 08 19:59:43 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc: If kill() fails, don't bother calling
waitpid().
Sun Apr 08 19:41:11 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Don't explicitly pass "0" for errno.
Sun Apr 08 16:58:58 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.lt: Fix warnings in debugging builds on
gcc 4.1 due to comparison of signed and unsigned types. Also,
use the ParseTokenName function instead of explicitly doing a
range check each time an entry is looked up in yyTokenName, and
add a ParseRuleName function for looking up things in yyRuleName,
and use it similarly.
Sun Apr 08 15:55:42 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Fix lingering references to enable_debug.
Sun Apr 08 15:48:13 BST 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc,tests/api_wrdb.cc: Remove hacks to automatically
SKIP tests which failed because of lack of support for some features
by the remote backend.
Sun Apr 08 15:14:11 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,queryparser/queryparser.lt: More
tweaks.
Sun Apr 08 15:04:49 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.lt: Always include "omdebug.h", and put
one of the pieces of debugging code in #ifdef
XAPIAN_DEBUG_VERBOSE, to fix non-logging message builds.
Sun Apr 08 14:23:06 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/remote_protocol.html: Update for protocol version 27 by
adding documentation for MSG_POSTLIST and replies. Also, fix a
typo.
Sun Apr 08 13:50:20 BST 2007 Olly Betts <olly@survex.com>
* common/omdebug.h,queryparser/queryparser.lemony,
queryparser/queryparser.lt: Hook the debug tracing in the lemon
generated parser into Xapian's debug logging framework.
Sun Apr 08 12:35:29 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/remote/,common/remote-database.h,common/remoteprotocol.h,
common/remoteserver.h,net/remoteserver.cc: Implement postlists
for the remote database. Increases
XAPIAN_REMOTE_PROTOCOL_VERSION to 27.
Sun Apr 08 12:33:02 BST 2007 Olly Betts <olly@survex.com>
* HACKING,INSTALL,configure.ac: Rename --enable-debug* - conflating the
options to "turn on assertions" and "turn on logging" still confuses
me to the extent I need to read the documentation every time I use
them. `--enable-debug[=partial]' become `--enable-assertions';
`--enable-debug-verbose' becomes `--enable-log' and
`--enable-debug=full' becomes `--enable-assertions --enable-log'.
For now the old options give an error telling you the new
equivalent.
Sun Apr 08 10:45:40 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Eliminate use_quiet - just use enable_quiet instead.
Fri Apr 06 19:06:07 BST 2007 Olly Betts <olly@survex.com>
* net/progclient.cc: Close stderr of the spawned backend program.
Fri Apr 06 18:59:24 BST 2007 Olly Betts <olly@survex.com>
* net/progclient.cc: msecs_timeout_ -> msecs_timeout.
Fri Apr 06 18:12:36 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Fix comment grammar.
Fri Apr 06 18:10:31 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Deal with the exceptional case first.
Fri Apr 06 17:51:20 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Use string::append(ptr, size) in preference
to string::append(ptr, ptr + size).
Fri Apr 06 11:45:39 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,backends/flint/flint_database.cc,
backends/flint/flint_database.h,backends/flint/flint_postlist.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
backends/quartz/quartz_postlist.cc,
backends/remote/remote-database.cc,common/database.h,
common/remote-database.h: Refactor to eliminate do_open_post_list
and any unnecessary call to term_exists().
Fri Apr 06 11:44:25 BST 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Just use TEST on a boolean value rather than
TEST_EQUAL against true/false.
Fri Apr 06 08:53:46 BST 2007 Olly Betts <olly@survex.com>
* net/remoteserver.cc: Remove "N" which we calculate but never use!
Fri Apr 06 08:17:00 BST 2007 Olly Betts <olly@survex.com>
* backends/flint/Makefile.mk,backends/flint/flint_check.cc,
backends/flint/flint_check.h,bin/Makefile.mk,bin/xapian-check.cc:
Fix xapian-check not to use libquartzcheck.la.
Fri Apr 06 07:20:47 BST 2007 Olly Betts <olly@survex.com>
* bin/Makefile.mk,bin/xapian-check.cc: Add new "xapian-check" program
which performs consistency checks on a flint database.
Fri Apr 06 06:25:36 BST 2007 Olly Betts <olly@survex.com>
* bin/quartzcheck.cc: Test if this is a quartz database by looking at
"meta" not "record_DB". If "record_DB" is >= 2GB and we don't have
a LFS aware stat function then stat can fail even though the file is
there. Also open the database explicitly as a Quartz database for
extra robustness.
Fri Apr 06 06:23:33 BST 2007 Olly Betts <olly@survex.com>
* AUTHORS: Thank Daniel Ménard.
Thu Apr 05 18:20:53 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: No need to explicitly initialise
std::string to ""; not doing so results in a smaller object
file.
Thu Apr 05 18:20:12 BST 2007 Olly Betts <olly@survex.com>
* common/remoteprotocol.h: Note other changes in protocol version 26.
Thu Apr 05 17:34:10 BST 2007 Olly Betts <olly@survex.com>
* tests/runtest.in: Pass "--leak-resolution=high" to valgrind to
prevent unrelated leak reports related to STL classes from being
combined.
Thu Apr 05 17:26:39 BST 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Remove stray line left over from debugging.
Thu Apr 05 16:47:36 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/internaltest.cc: Fix test_serialiselength2: implementation
was correct, but test was failing. Needed special casing for n=0
and 1, and was using arguments to string::append(size_type,
charT) the wrong way round (stupid C++ API). Also, make it check
the return value of decode_length(), since we know what the
answer ought to be.
Thu Apr 05 14:26:30 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,backends/remote/remote-database.cc,
common/serialise.h,net/remoteserver.cc,net/serialise.cc,
tests/internaltest.cc: Add a flag parameter to decode_length()
to indicate if the decoded value indicates the length of a
string in the protocol stream, and if it does, check it against
p_end - p after the length has been decoded (fixes bug#117).
Thu Apr 05 14:08:02 BST 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: In test uniqueterm1, check the document length
after every delete or replace for better coverage.
Thu Apr 05 12:41:04 BST 2007 Olly Betts <olly@survex.com>
* net/serialise.cc: Encode deltas between docids (rather than the
docids themselves) in the RSet serialisation which reduces the
size of the encoding if a lot of large docids with small gaps
between them are present.
* backends/remote/remote-database.cc,net/remoteserver.cc: Encode
deltas between termpositions in REPLY_POSITIONLIST, for similar
reasons. No need to encode the term length for
MSG_DELETEDOCUMENTTERM as it's the last (indeed only) item, and more
consistent not to.
* common/remoteprotocol.h: Bump protocol version to 26.
* docs/remote_protocol.html: Document the new messages
MSG_DELETEDOCUMENTTERM and MSG_REPLACEDOCUMENTTERM. Correct
reference to REPLY_DOCUMENT to REPLY_DOCDATA. Fix documentation for
MSG_QUERY to include the serialised Weight and RSet objects. Fix
"copy and paste" error in the description of Flush (should of course
be MSG_FLUSH not MSG_CANCEL). Update for changes above.
Thu Apr 05 12:18:19 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/database.cc: Keep a RefCntPtr to the LeafPostList used
in implementations of delete_document and replace_document with a
unique term, so that the postlist isn't leaked.
Thu Apr 05 11:56:57 BST 2007 Olly Betts <olly@survex.com>
* backends/database.cc: Database::Internal can't call the
PostingIterator(PostingIterator::Internal*) ctor (at least under
g++ 3.3.5) because it isn't a friend (only class Database is).
Can't seem to forward define Database::Internal to make
Database::Internal a friend so just use LeafPostList directly
as that seems less bad than pulling in the whole of database.h
or making PostingIterator::internal public.
Thu Apr 05 08:27:26 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Need to run svn-tag-release on ixion.
Thu Apr 05 01:50:10 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/remote/remote-database.cc,common/remote-database.h,
common/remoteprotocol.h,common/remoteserver.h,net/remoteserver.cc:
Implement unique term variants of delete and replace document for
the remote database. Involves adding two new message types to the
protocol (and therefore bumping the protocol version to 25), and
overriding the standard implementations of delete_document(term)
and replace_document(term) in RemoteDatabase.
* tests/api_wrdb.cc: Correct text in SKIP_TEST() message.
Thu Apr 05 01:04:19 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* api/omdatabase.cc,backends/database.cc,common/database.h: Move
implementation of delete_document and replace_document with a
unique_term from WritableDatabase to Xapian::Database::Internal.
This will allow it to be overridden for databases which need a
special implementation (such as the remote database).
Tue Apr 03 14:30:45 BST 2007 Olly Betts <olly@survex.com>
* common/remote-database.h: Remove unused and undefined method
RemoteDatabase::get_spawned_socket().
Tue Apr 03 09:18:51 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Under __WIN32__, launch
xapian-tcpsrv as a child process communicating via a pipe and handle
the port being already in use by trying the next port up (as we do
under UNIX).
Tue Apr 03 06:50:48 BST 2007 Olly Betts <olly@survex.com>
* net/tcpserver.cc: For __WIN32__ and __CYGWIN__, use
SO_EXCLUSIVEADDRUSE (if available) on on listening sockets for
xapian-tcpsrv.
Tue Apr 03 04:37:02 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/positioniterator.h,include/xapian/postingiterator.h:
Fix mangled comment start in (C) headers.
Tue Apr 03 03:27:12 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/,generate-exceptions.in: Mark the following
constructors 'explicit': DocIDWrapper(docid), TermPosWrapper(const
std::string &), Query::Internal(const std::string &), Database(const
std::string &), all Error subclass constructors taking const
std::string &. Only the Database and Error subclass changes should
be able to affect user code at all.
* include/xapian/,api/omenquire.cc: Make the following methods
'const': RSet::contains(MSetIterator), Enquire::get_query(). This
shouldn't affect the validity of any user code.
Mon Apr 02 11:44:26 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Add note on "Building from SVN on Windows with MSVC"
Mon Apr 02 11:32:51 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Fix assertion to allow for OP_VALUE_RANGE.
Mon Apr 02 11:14:10 BST 2007 Olly Betts <olly@survex.com>
* autoconf/rjb_find_stlport.m4: Fix check that the user didn't say
`./configure --with-stlport-compiler' (without `=gcc' or similar
after it).
Mon Apr 02 10:38:35 BST 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc,tests/apitest.cc: Under __WIN32__ disable tests
which require the prog variant of the remote backend.
Mon Apr 02 09:44:13 BST 2007 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Don't use SO_REUSEADDR under __CYGWIN__ or
__WIN32__ as it has incorrect semantics.
Mon Apr 02 09:37:14 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Pull `1239' out as `DEFAULT_PORT'.
On Windows, cycle through 10 ports starting at DEFAULT_PORT so that
we can have multiple databases open at once. Add a monotonic count
to the name of the log file created from the output of each
xapian-tcpsrv to avoid failures because the log file is already
open.
Mon Apr 02 07:41:57 BST 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Avoid having the same database open twice at
once. Xapian itself copes, but the BackendManager class in the test
harness struggles in the remotetcp case under mingw.
Mon Apr 02 07:14:13 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Make Enquire constructor explicit since
it can take a single parameter (of type Database).
Mon Apr 02 02:32:23 BST 2007 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Add "#error" if neither HAVE_FORK nor __WIN32__
is defined (otherwise we'd failed with a rather obscure link error
much later!)
Mon Apr 02 01:54:20 BST 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Remove unused variable left over from
recent change.
Mon Apr 02 01:22:56 BST 2007 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Actually remove SOCKOPT_OPTIONS_TYPE.
Mon Apr 02 01:16:03 BST 2007 Olly Betts <olly@survex.com>
* net/tcpclient.cc,net/tcpserver.cc: Pass the 4th parameter of
setsockopt() as char* which works whether the function actually
takes char* or void* (since C++ allows implicit conversion from
char* to void*). Only call socket_errno() after gethostbyname()
under __WIN32__ - on UNIX the error code is in h_errno (with
incompatible values to errno) and we don't want to confuse things by
reporting some random value of errno.
Mon Apr 02 00:44:56 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Factor out localhost address into
LOCALHOST. Use new xapian-tcpsrv --interface option to only listen
for connections on localhost. Run xapian-tcpsrv with "start /B" on
MS Windows (this stops the "flickbook of console windows" effect).
Mon Apr 02 00:41:31 BST 2007 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/safesyssocket.h: Oops, I checked
in safesysselect.h as safesyssocket.h!
Mon Apr 02 00:30:54 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Fix SimpleStopper::add to take
`const std::string &' not `const std::string'.
Mon Apr 02 00:20:45 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-tcpsrv.cc,net/tcpserver.cc: Add "--interface" option to
allow the hostname or address of the interface to listen on to be
specified (default is the previous behaviour of listening on all
interfaces).
* net/remoteconnection.cc,net/tcpclient.cc,common/safesysselect.h:
Factor out portability code for sys/select.h.
* common/Makefile.mk: Ship common/safesysselect.h.
* net/tcpserver.cc: Rename parameter of run_thread from "_param" to
"param_" (identifiers with leading underscores are reserved for the
compiler).
* common/tcpclient.h,net/tcpclient.cc,common/tcpserver.h: Rewrite
headers with comments which are actually accurate and up-to-date!
TcpClient ctor is small so put inline in the header. Pass
std::string by const reference.
* common/tcpclient.h,common/tcpserver.h: TcpClient and TcpServer
classes now inherit from WinsockInitializer under __WIN32__ (as
a mixin class) instead of having a member of type WinsockInitializer
(the member is initialised too late, at least under mingw).
Sun Apr 01 19:14:11 BST 2007 Olly Betts <olly@survex.com>
* common/omdebug.cc: Fix retrying of write to retry the part of
the string not already written!
Sun Apr 01 18:37:15 BST 2007 Olly Betts <olly@survex.com>
* common/remoteconnection.h: Note in comments about use as a "mixin"
class.
Sun Apr 01 17:42:19 BST 2007 Olly Betts <olly@survex.com>
* tests,examples,bin: Add .exe versions of built executables to
svn:ignore.
Sun Apr 01 16:28:26 BST 2007 Olly Betts <olly@survex.com>
* common/omdebug.cc: Remove unused '#include <stdio.h>' - we switched
to using unbuffered I/O for logging long ago!
Sun Apr 01 15:21:04 BST 2007 Olly Betts <olly@survex.com>
* common/safewinsock2.h: No, don't typedef socklen_t here - we use
SOCKLEN_T everywhere and have `#define SOCKLEN_T int' in
config.h.win32.
Sun Apr 01 13:32:21 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* common/omdebug.cc: Include necessary headers to get O_CREAT and
friends defined (according to documentation in linux manpage),
to fix compile error. Also, don't ignore the return value of
write() to fix compile warning (and to ensure that the whole
output gets written if possible).
Sun Apr 01 13:19:52 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.cc: Fix Assert() on a RefCountPtr to
check the value of the pointer, to fix compile with asserts
turned on.
Sun Apr 01 12:57:06 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* common/safewinsock2.h: Define socklen_t under MS compiler (since
Olly reported build success with mingw, presumably it's not
needed there).
Sun Apr 01 06:42:14 BST 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk: $(snowball_algorithms:.sbl=.cc) is portable
according to the automake list so use that so we only need to list
the .sbl sources.
Sun Apr 01 05:53:29 BST 2007 Olly Betts <olly@survex.com>
* common/tcpserver.h,net/tcpserver.cc: TcpServer's port member
variable is set but never used so remove it.
Sun Apr 01 03:27:30 BST 2007 Olly Betts <olly@survex.com>
* bin/Makefile.mk,examples/Makefile.mk: Add $(EXEEXT) to dependency on
binaries in man page generation rules so they work on Windows.
Sat Mar 31 22:17:55 BST 2007 Olly Betts <olly@survex.com>
* common/multimatch.h,matcher/multimatch.cc: When using a MatchDecider
with remote database(s), don't rerun the MatchDecider on documents
which a remote server has already checked.
Sat Mar 31 10:44:26 BST 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Sort out path to xapian-tcpsrv
under mingw. If neither HAVE_FORK nor __WIN32__ is defined,
make compilation fail with a suitable #error.
Sat Mar 31 10:17:06 BST 2007 Olly Betts <olly@survex.com>
* api/Makefile,backends/Makefile,backends/flint/Makefile,
backends/inmemory/Makefile,backends/multi/Makefile,
backends/quartz/Makefile,backends/remote/Makefile,bin/Makefile,
common/Makefile,examples/Makefile,getopt/Makefile,include/Makefile,
languages/Makefile,matcher/Makefile,net/Makefile,
queryparser/Makefile,tests/harness/Makefile: Don't pass $(MAKEFLAGS)
on the command line to $(MAKE) when invoking the top level Makefile
from a static Makefile. It's passed automatically anyway, and also
$(MAKEFLAGS) doesn't have a leading '-' so "make -s" tries to do
"make s" at the top level.
Sat Mar 31 09:28:06 BST 2007 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Fix end of loop handling.
Sat Mar 31 09:03:26 BST 2007 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Fix to compile.
Sat Mar 31 07:53:25 BST 2007 Olly Betts <olly@survex.com>
* common/safewindows.h,common/safewinsock2.h: safewindows.h is
included by a lot of files so we want to keep it lightweight
so split winsock2.h related stuff into safewinsock2.h.
* common/remoteconnection.h: Move WinsockInitializer here.
* common/safeerrno.h: #include "safewinsock2.h" not <winsock2.h>.
Sat Mar 31 07:19:06 BST 2007 Olly Betts <olly@survex.com>
* common/remoteserver.h: Stop trying to include "remoteserver.h"
because that's the SAME HEADER!
Sat Mar 31 07:16:23 BST 2007 Olly Betts <olly@survex.com>
* common/tcpclient.h,common/tcpserver.h: Fix comments - the class is
called WinsockInitializer not WinsockInitialiser.
Sat Mar 31 06:54:22 BST 2007 Olly Betts <olly@survex.com>
* net/progclient.cc: Don't compile any code from this file if
__WIN32__ is defined (for mingw).
Sat Mar 31 06:52:27 BST 2007 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Simplify code in test_stemlangs1().
Sat Mar 31 06:22:26 BST 2007 Olly Betts <olly@survex.com>
* net/remoteconnection.cc: Use const_cast to avoid GCC warning
about casting away const. Use string::data() rather than
string::c_str() since we don't need a terminating zero byte.
Sat Mar 31 06:20:07 BST 2007 Olly Betts <olly@survex.com>
* backends/dbfactory_remote.cc: Suppress "unused parameter" warnings.
Sat Mar 31 06:17:35 BST 2007 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Make global variable and function used only in
this file static. Don't call delete on a void* (that's undefined
behaviour) - delete the cast version of the pointer instead.
Sat Mar 31 06:17:20 BST 2007 Olly Betts <olly@survex.com>
* AUTHORS: Add a number of bug reporters I missed before.
Sat Mar 31 04:49:27 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Clean up handling of --enable-backend-* options. Let
mingw try to build the remote backend.
Sat Mar 31 03:47:49 BST 2007 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Don't compile test_serialisequery1
if the remote backend is disabled to avoid an "unused
function" warning (we were already disabling the use of
it).
Fri Mar 30 22:43:27 BST 2007 Olly Betts <olly@survex.com>
* HACKING: Correct several inaccuracies: --enable-debug and
--enable-debug=partial don't cause the build system to compile in
debugging symbols (configure defaults to adding "-g" for GCC, while
for other compilers you must enable them by hand). Also,
--enable-debug doesn't "produce warnings", but causes
Xapian::AssertionError to be thrown. Add explanation for why
--enable-debug=partial" exists. CC_FOR_BUILD is now needed for
snowball as well as lemon.
Fri Mar 30 19:53:05 BST 2007 Olly Betts <olly@survex.com>
* common/utils.cc: Avoid GCC warning on format string "%I64d".
Fri Mar 30 16:48:46 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* common/tcpserver.h,net/tcpserver.cc: Patch from Mark Hammond:
implement for windows.
Fri Mar 30 16:21:03 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* common/tcpclient.h,net/tcpclient.cc: Patch from Mark Hammond:
implement for windows.
Fri Mar 30 15:52:57 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/backendmanager.cc: Patch from Mark Hammond:
implement launcher for tcpserver, so that remotetcp tests can run
on windows.
Fri Mar 30 15:42:49 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* common/safewindows.h: Include xapian/error.h so
WinsockInitialiser can throw an exception.
Fri Mar 30 14:59:40 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* More code from Mark Hammond's patch
* common/remoteconnection.h: Add explicit destructor and (for
windows compiles) a declare a helper method to calculate the
number of milliseconds until a timeout.
* net/remoteconnection.cc: Implement windows versions for functions
which need it: constructor and destructor now do create and close
the overlapped IO stuff, read_at_least() and send_message() have
windows specific implementations.
Fri Mar 30 13:05:27 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* More code adapted from Mark Hammond's patch
* common/safewindows.h: When remote databases are compiled in,
include the winsock stuff, and define some useful bits and pieces
for using it.
* common/remoteconnection.h: Add a member to RemoteConnection on
windows to hold an overlapped IO structure.
* net/progclient.cc: Don't include winsock stuff directly (it's now
brought in by "safewindows.h"), and don't include <sys/wait.h> on
windows.
* net/remoteserver.cc: Ignore more SIGPIPE stuff on windows.
Fri Mar 30 12:37:15 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* Patch from Mark Hammond
* backends/dbfactory_remote.cc: Ignore code to handle SIGPIPE on
windows, where it doesn't exist.
* backends/remote/remote-database.cc: Raise UnimplementedError on
windows if a progclient backend is requested.
Fri Mar 30 12:11:50 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/testsuite.cc: Fix srcdir guessing on windows -
search for windows style directory separators, and remove .exe
suffix from executable name. Adapted from Mark Hammond's patch.
Thu Mar 29 18:32:18 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* Changes related to Mark Hammond's patch:
* common/safeerrno.h: Define a new inline function "socket_errno()"
which returns an error number relating to the last error caused
by a socket function on platforms which make such a distinction,
and the value of errno on other platforms.
* net/tcpclient.cc,net/tcpserver.cc: Use the socket_errno()
function instead of checking the value of errno. Also, check for
WSAEWOULDBLOCK instead of EINPROGRESS on windows.
Thu Mar 29 15:36:45 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* bin/xapian-tcpsrv.cc,tests/harness/testsuite.cc: First of many
parts of a large patch from Mark Hammond working towards enabling
remote databases on windows. When displaying errors which might
be socket errors, display the error number as well as the output
of strerror - on windows, strerror doesn't display useful
information for socket errors.
* AUTHORS: Add Mark Hammond
Thu Mar 29 06:07:35 BST 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Unserialisation shouldn't reject a
serialised query which ends after a termname.
* tests/internaltest.cc: Add regression test.
Wed Mar 28 17:17:42 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add feature tests for "prefer_mdy" and
"epoch" arguments of DateValueRangeProcessor.
Wed Mar 28 04:52:34 BST 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add more test cases for parsing of value
ranges.
Wed Mar 28 04:18:14 BST 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c,languages/compiler/header.h,
languages/steminternal.cc,languages/steminternal.h: For among with
functions (only used by finnish and lovins stemmers currently),
change to generating an array of unsigned byte offsets into an array
of function pointers rather than just an array of function pointers
- this generally requires a lot less space.
Wed Mar 28 03:28:37 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix parsing of `hello a..b'.
* tests/queryparsertest.cc: Add regression test for above. Refactor
qp_value_range1 to use a table of queries.
Wed Mar 28 00:35:50 BST 2007 Olly Betts <olly@survex.com>
* languages: Update svn:ignore for recent romanian changes.
Wed Mar 28 00:08:11 BST 2007 Olly Betts <olly@survex.com>
* api/valuerangeproc.cc: Need #include <stdio.h> for snprintf or
sprintf.
Tue Mar 27 23:53:18 BST 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix infinite loop in value range
processing. Fix value range to work as a filter when used with a
probabilistic query.
* tests/queryparsertest.cc: Add regression tests for the above two
issues. Refactor qp_value_range2 to use a table of queries.
Tue Mar 27 22:09:57 BST 2007 Olly Betts <olly@survex.com>
* api/valuerangeproc.cc: Assume that the start date is before the
end date to help decide ambiguous cases.
Tue Mar 27 21:49:15 BST 2007 Olly Betts <olly@survex.com>
* api/valuerangeproc.cc: Refactor to simplify and reduce duplication.
Tue Mar 27 21:41:38 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: datarootdir is new in 2.60 too, so use datadir when
setting docdir for 2.59.
Tue Mar 27 18:39:11 BST 2007 Olly Betts <olly@survex.com>
* api/Makefile.mk,api/valuerangeproc.cc,include/xapian/queryparser.h:
Move NumberValueRangeProcessor::operator()() out of the header as
it's too complex for sane inlining. Implement handling of dmy and
mdy dates and epochs for 2 digit years.
* tests/queryparsertest.cc: Add tests.
Tue Mar 27 11:57:53 BST 2007 Richard Boulton <richard@lemurconsulting.com>
* languages/romanian.sbl: Add Martin Porter's new romanian stemming
algorithm.
* languages/romanian1.sbl,languages/romanian2.sbl: Remove old
romanian stemming algorithms.
* languages/Makefile.mk: Replace romanian1 and romanian2 by
romanian.
* languages/stem.cc: Use romanian stemmer when asked for "ro" or
"romanian". No longer give a stemmer for "romanian1" or
"romanian2".
Tue Mar 27 04:50:36 BST 2007 Olly Betts <olly@survex.com>
* languages/german2.sbl: Copy over "hop 3" in utf-8 case from
snowball's latest version.
Tue Mar 27 04:44:52 BST 2007 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Remove lower casing of dictionary words before
stemming - instead we'll make sure the dictionary is already the
right case.
Tue Mar 27 04:28:10 BST 2007 Olly Betts <olly@survex.com>
* languages/compiler/analyser.c,languages/compiler/generator.c,
languages/compiler/header.h,languages/steminternal.cc,
languages/steminternal.h: Add handling of among with functions.
We use a "shim" functions for each method we want to call in
this way. The shim function is passed the "this" pointer and
calls a particular method on this. Split the functions into
an optional separate array, since they're not used by most of
the stemming algorithms.
* languages/Makefile.mk,languages/stem.cc: Enable the finnish
and lovins stemmers.
Tue Mar 27 04:24:37 BST 2007 Olly Betts <olly@survex.com>
* languages/steminternal.cc: Fix typo bug in slice_to - if we needed
to increase the capacity of a snowball string variable, we trashed
the variable with p (bug discovered while trying to enable the
finnish stemmer).
Tue Mar 27 02:55:51 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Implement handling of ISO format dates
in DateValueRangeProcessor.
* tests/queryparsertest.cc: Add feature tests.
Tue Mar 27 01:47:36 BST 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Implement prefix and suffix handling
for NumberValueRangeProcessor.
* tests/queryparsertest.cc: Add feature tests.
Mon Mar 26 22:26:48 BST 2007 Olly Betts <olly@survex.com>
* queryparser/utf8itor.h: Add is_currency() predicate function.
* queryparser/queryparser.lemony: Rejig parsing of RANGE_START to
allow all characters which are likely to be required.
* tests/queryparsertest.cc: Test RANGE_START can contain "/".
* queryparser/queryparser.lemony: Set "syntax=yacc" for vim, which
give fairly decent syntax highlighting.
Mon Mar 26 15:43:50 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Use m4 comments not shell (dnl not #).
Mon Mar 26 15:41:41 BST 2007 Olly Betts <olly@survex.com>
* configure.ac: Add code to ensure that docdir is set for autoconf
2.59 (starting from 2.60, it is defined as standard).
* docs/Makefile.am: Use docdir for installing docs.
Sun Mar 25 15:41:16 BST 2007 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Prune unused docids off the start of each
source database's range of docid.
Sat Mar 24 23:07:42 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/base.h: Add a note explaining why it's OK that
RefCntBase doesn't have a virtual destructor.
Sat Mar 24 01:30:17 GMT 2007 Olly Betts <olly@survex.com>
* HACKING,configure.ac: Bump the automake required version to 1.9.5.
It was in Debian sarge, so any modern Linux distro should include
packages, and we've actually been bootstrapping with 1.9.6 for ages.
Thu Mar 22 00:53:35 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Disable probes for f77 more completely by preventing
the probe code from even appearing in configure. Similarly
eliminate the code for gcj and rc probes - in total these changes
reduce the size of configure by 209KB (~25%).
Fri Mar 09 14:28:01 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* Makefile.am: Add include/xapian/error.h to list of headers to
install.
Thu Mar 08 17:16:08 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* generate-exceptions.in,exception_data.pm: Split definitions of
the exception hierarchy into a separate file, so it can be reused
elsewhere.
* Makefile.am: Add exception_data.pm as a dependency for generating
error.h, and add it to EXTRA_DIST.
Fri Mar 09 06:42:40 GMT 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: We
always ignore the return value from FlintCursor::get_key() because
we only call it when it shouldn't fail, so restructure the code so
it can't fail and change the return value to void.
Fri Mar 09 06:33:09 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Suppress another aCC warning.
Thu Mar 08 20:39:46 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow
arbitrary characters in a range end (anything except whitespace
and ')').
Thu Mar 08 19:46:46 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,languages/Makefile.mk: Depend on the autoconf
substituted version of a script, not the template version. The
only thing we substitute is @PERL@, but configure won't update
a substituted file which hasn't changed so it's better to put
the dependency on the script itself where it belongs.
Thu Mar 08 17:09:21 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Keep any
non-whitespace, non-term prefix for a term in case it turns out
to be the start of a range, so "$50..100" works.
Thu Mar 08 16:21:14 GMT 2007 Olly Betts <olly@survex.com>
* HACKING: Add my "create docs/GNUmakefile" trick to avoid doxygen
delays.
Thu Mar 08 16:13:39 GMT 2007 Olly Betts <olly@survex.com>
* HACKING: A few more coding guidelines.
Thu Mar 08 14:26:21 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Adjust wording to indicate that the build system is
indended not to break after SVN updates.
Thu Mar 08 07:34:22 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,tests/queryparsertest.cc: Add simple
implementations of DateValueRangeProcessor and
NumberValueRangeProcessor and add qp_value_range2 to check that
chaining ValueRangeProcessor subclasses works as intended.
Thu Mar 08 06:06:15 GMT 2007 Olly Betts <olly@survex.com>
* docs/overview.html: Fix links to error classes in generated API
documentation.
Thu Mar 08 05:37:13 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc,
queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
tests/queryparsertest.cc: Add the ability to parse "value ranges"
to the QueryParser (e.g. "10..50") which translate into a Query
with operator OP_VALUE_RANGE.
Thu Mar 08 04:27:54 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc: Remove
QueryParser::set_stemming_options() which has been deprecated
since 0.9.0.
Thu Mar 08 03:37:07 GMT 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc: Handle write failing to send a single
byte down down the pipe to tell the parent we've got the lock (a
potential bug noticed by _FORTIFY_SOURCE!) Handle read() failing
with an unexpected error on the parent side by failing the lock
attempt rather than risking an infinite loop.
Thu Mar 08 02:52:26 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/types.h: Rewritten, with more accurate documentation
comments. Add constant Xapian::BAD_VALUENO which is -1 cast to
Xapian::valueno.
* api/omenquire.cc,include/xapian/enquire.h,matcher/multimatch.cc: Use
Xapian::BAD_VALUENO instead of Xapian::valueno(-1).
Thu Mar 08 01:47:08 GMT 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Try putting apidoc/html in EXTRA_DIST instead of
using dist-hook.
Wed Mar 07 23:16:52 GMT 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Stop shipping docs/apidoc/latex/* in the
xapian-core tarballs since it's just useless bloat. Removing it
more than halves the size of the tarball (55% reduction!)
Wed Mar 07 22:07:31 GMT 2007 Olly Betts <olly@survex.com>
* tests/runtest.in: If we aren't using valgrind, turn on
MALLOC_CHECK_ and MALLOC_PERTURB_ for glibc.
Wed Mar 07 20:02:31 GMT 2007 Olly Betts <olly@survex.com>
* INSTALL: CVS -> SVN.
Wed Mar 07 20:00:37 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Define _FORTIFY_SOURCE in config.h if GCC is in use
and it's not already set. That way the user can easily override.
* INSTALL: Document this.
Wed Mar 07 19:53:15 GMT 2007 Olly Betts <olly@survex.com>
* INSTALL: Remove reference to muscat36 backend.
Wed Mar 07 17:37:07 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Note GCC and glibc versions needed for _FORTIFY_SOURCE
support.
Wed Mar 07 16:29:02 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Increase the length allowed for the filename
in an error message, as it was being truncated which makes for a
confusing error message and stops editors jumping to the line with
the error in.
Wed Mar 07 15:57:15 GMT 2007 Olly Betts <olly@survex.com>
* common/Makefile.mk: Ship common/msvc_posix_wrapper.h and
common/msvc_posix_wrapper.cc.
Wed Mar 07 10:01:31 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Add -D_FORTIFY_SOURCE to AM_CXXFLAGS for GCC
builds. According to glibc CVS support for this was added in
October 2004, but it doesn't seem to be documented very well,
other than in features.h. This adds some extra checking for
array bounds, partially at compile time, but doesn't currently
find any problems (or cause any noticeable slowdown).
Wed Mar 07 04:49:01 GMT 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Include str_parameter in swap() and the copy
constructor.
* tests/api_anydb.cc: get_mset(0, 20) not get_mset(1, 20)! Also check
that we didn't miss any documents which should match the filter, not
just that we didn't get any documents which shouldn't.
Wed Mar 07 03:07:49 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/unixcmds.h: Fixed reverse sense include guard test.
* tests/api_db.cc: Still need #include "utils.h".
* tests/harness/backendmanager.cc: Update for rmdir.h -> unixcmds.h
and rmdir() -> rm_rf().
Wed Mar 07 02:22:30 GMT 2007 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/quartz_database.cc,
backends/quartz/quartz_log.cc,common/utils.h,net/remoteconnection.cc,
net/tcpclient.cc,tests/api_db.cc,tests/btreetest.cc,tests/harness/,
tests/quartztest.cc: Rename rmdir() to rm_rf() since it does the
same as "rm -rf" not "rmdir". The "touch()" function is only used
in the testsuite so move it from common/utils.h into
tests/harness/rmdir.cc and rename rmdir.cc to unixcmds.cc.
common/utils.h no longer include safefcntl.h, so add explicit
includes to the files which were previous relying on utils.h pulling
it in.
Wed Mar 07 02:21:18 GMT 2007 Olly Betts <olly@survex.com>
* xapian.spec.in: Include ChangeLog.examples.
Wed Mar 07 02:17:59 GMT 2007 Olly Betts <olly@survex.com>
* docs/index.html,docs/internals.html: Create a separate index page
for the "internal" documentation.
Tue Mar 06 23:47:58 GMT 2007 Olly Betts <olly@survex.com>
* common/utils.cc,common/utils.h: Remove map_string_to_value() which
is no longer used.
* common/utils.h: Remove prototype for rmdir() which I failed to
remove with the earlier commit.
Tue Mar 06 22:51:51 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/rmdir.cc: Fix rmdir() on Unix to not be O(n^2) in the
worst case.
Tue Mar 06 22:46:30 GMT 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Use the "inline test || echo" idiom to merge the
VPATH and non-VPATH cases for distributing and installing the HTML
apidocs.
Tue Mar 06 22:13:03 GMT 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Fix Query::get_description() on an
OP_VALUE_RANGE query.
Tue Mar 06 09:03:33 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Note on running preautoreconf and autoreconf to keep SVN
builds working.
* PLATFORMS: Update with success reports for windows builds.
Tue Mar 06 01:57:23 GMT 2007 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Comment out the "unsigned long long" testcase
in tostring1 since the library doesn't currently have (or need) the
utility function for that case.
Tue Mar 06 01:49:55 GMT 2007 Olly Betts <olly@survex.com>
* common/utils.cc,tests/btreetest.cc,tests/harness/,
tests/quartztest.cc: rmdir() is only used in the test suite, and not
in the library code, so move it into the testsuite. Also, bow out
early if the pathname passed is empty, and on Unix protect against
filenames which start with "-".
Mon Mar 05 02:52:49 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Suppress more unhelpful aCC warnings.
Mon Mar 05 02:15:29 GMT 2007 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Add testcase autoptr1 which tests that an
autoptr correctly handles self-assignment.
Mon Mar 05 02:05:53 GMT 2007 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Rename "omtostring1" to "tostring1" (we don't
want to perpetuate references to "om"!) Add more test cases to this
test.
Mon Mar 05 01:18:17 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Update in line with 0.9.10.
Sun Mar 04 23:58:29 GMT 2007 Olly Betts <olly@survex.com>
* AUTHORS: Add reporters of bugs fixed in 0.9.10 to the "thanks" list.
Sun Mar 04 00:44:17 GMT 2007 Olly Betts <olly@survex.com>
* api/errorhandler.cc,include/xapian/errorhandler.h: Move virtual
dtor for ErrorHandler out of the header. Same reasons as previous
commit.
Sun Mar 04 00:40:44 GMT 2007 Olly Betts <olly@survex.com>
* api/omenquire.cc,include/xapian/enquire.h,matcher/Makefile.mk,
matcher/weight.cc: Move virtual method definitions out of headers
for MatchDecider, ExpandDecider, Weight, BoolWeight. This fixes
warnings from aCC, and it's rare that the compiler would be able
to inline a virtual method anyway.
Sat Mar 03 21:40:43 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: For HP's aCC, we no longer need to suppress warning
#336 (empty translation unit) since dummy.cc is history. But we
do want to suppress a couple of frequently reported "remarks" which
are unavoidable and don't indicate a problem. Experimentally, add
"+wlint" for "link-like" warnings.
Sat Mar 03 21:38:52 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian.h,include/xapian/version_h.cc: Move function
prototypes into a non-generated header.
* configure.ac,msvc/version.h.in: Generate version.h suitable for use
with MSVC.
* Makefile.am: Distribute msvc/version.h.
Sat Mar 03 19:49:11 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Rework how we start and handle
xapian-tcpsrv - it's now started by exec from a child process.
This means that the mechanism to try higher port numbers works
reliably, and we no longer leak file descriptors (which was causing
tests to fail on some platforms).
Sat Mar 03 19:46:03 GMT 2007 Olly Betts <olly@survex.com>
* bin/xapian-tcpsrv.cc: Put "e.get_errno()" in a variable for clearer
code.
Sat Mar 03 16:01:17 GMT 2007 Olly Betts <olly@survex.com>
* common/msvc_posix_wrapper.cc: Change `#include <fcntl.h>' to
`#include "safefcntl.h"' (currently makes no difference on
Windows, but it's more consistent to always use the safeXXX
headers).
* common/msvc_posix_wrapper.cc: Merge two ECHILD cases.
* common/msvc_posix_wrapper.cc: Make sure dwCreationDisposition
is initialised even if flags has a bogus value.
* common/msvc_posix_wrapper.cc: Be consistent and always use O_CREAT,
etc, instead of sometimes using the MS alternative forms _O_CREAT,
etc.
Sat Mar 03 03:25:05 GMT 2007 Olly Betts <olly@survex.com>
* generate-exceptions.in: The GCC visibility docs aren't clear whether
you need to make *thrown* exception types visible, or also *caught*
exception types. But I've just been having odd problems catching
Xapian::DocNotFoundError with "const Xapian::Error &", so let's mark
the exception virtual baseclass Xapian::Error as visible too.
Fri Mar 02 22:34:04 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk,languages/generate-allsnowballheaders.in:
Convert unreadable make rule for generating allsnowballheaders.h
to a perl script.
* configure.ac: Substitute languages/allsnowballheaders.
Fri Mar 02 14:31:11 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/internaltest.cc: Add a test for om_tostring(), mainly
aimed at 64 bit types on windows platforms. Mingw builds report
a warning in this code, which merits further investigation - see
Bug #112 for details.
Fri Mar 02 14:15:44 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/msvc_posix_wrapper.cc: Improve accuracy of emulation of
posix open, and fix a bug which caused it to misinterpret the
"flags" argument - files were always being opened for writing:
O_RDONLY is 0, so the old test (flags & O_RDONLY) always
failed.
Fri Mar 02 12:44:33 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/msvc_posix_wrapper.cc: Fix whitespace issues.
Fri Mar 02 12:18:42 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* HACKING: Add note about how to generate ChangeLog timestamps
using the unix date command - and I've started generating them in
the same format as Olly is. (I hope.)
Fri Mar 2 11:49:11 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/msvc_posix_wrapper.h,common/safeerrno.h,
common/msvc_posix_wrapper.cc,backends/quartz/btree.cc,
backends/flint/flint_table.cc,backends/flint/flint_btreebase.cc:
Move MSVC specific code for opening files into
msvc_posix_wrapper.cc, and just leave a few conditional includes
and function calls elsewhere.
Thu Mar 01 22:51:42 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Add casts to U_isupper(), etc to
suppress warnings from aCC.
* queryparser/queryparser.lemony: Use U_isdigit() instead of
C_isdigit(), etc - the truncation to a char can cause false
positives.
* tests/queryparsertest.cc: Add a (rather contrived) regression test
for the above change.
Thu Mar 01 21:49:37 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/utf8itor.h: Add cast to suppress warning from aCC.
Thu Mar 1 15:27:09 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/utils.c,common/utils.h: For windows, add an om_tostring()
function for 64 bit integers: time() and GetProcessId() return
these, and without this, backends/quartz/quartz_log.cc reports
an error.
Thu Mar 1 13:48:46 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.lemony: Fix handling of hated wildcards
which don't expand to any terms.
Thu Mar 1 13:45:04 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/queryparsertest.cc: Fix last two test cases for hated
wildcards to check for exactly what should be returned.
Thu Mar 1 12:02:04 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* common/safeerrno.h: Some of Microsoft's C++ compiler versions
earlier than 2005 do not have _set_errno, so #define it in this
case.
Thu Mar 01 04:28:23 GMT 2007 Olly Betts <olly@survex.com>
* backends/quartz/btree.h: Correct comment ("read" -> "write").
Thu Mar 01 04:21:52 GMT 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.h: Correct comment ("read" -> "write").
Thu Mar 01 01:30:02 GMT 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add some test cases for hated wildcards
which don't expand to any terms.
Thu Mar 01 01:21:42 GMT 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Complete truncated comment. Prefer
preincrement to postincrement.
Wed Feb 28 20:13:35 GMT 2007 Olly Betts <olly@survex.com>
* api/omdocument.cc: Really tweak OmDocumentTerm::add_position() so
that adding position 0 to an empty termlist takes the shortcut.
Wed Feb 28 15:04:25 GMT 2007 Olly Betts <olly@survex.com>
* common/safeerrno.h: Correct <safeerrno.h> to "safeerrno.h" in
message in #error directive.
Wed Feb 28 14:59:29 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/query.h: Removed documentation comment for
Xapian::Query::Internal which is no longer relevant (Query objects
are now immutable once constructed, so parameters can no longer be
set separately).
Wed Feb 28 02:42:31 GMT 2007 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Add support for serialising OP_VALUE_RANGE
queries. Add support for OP_VALUE_RANGE queries to
Query::get_description(). If an OP_VALUE_RANGE query has a start
bound strictly greater than its end bound, simplify it by knowing
that it can't match anything.
* common/remoteprotocol.h,docs/remote_protocol.html: Bump remote
protocol version to 24.
Wed Feb 28 01:15:00 GMT 2007 Olly Betts <olly@survex.com>
* api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
matcher/: Add new Query operator OP_VALUE_RANGE which allows
a query to be filtered by checking if a value lies between
two limits.
* tests/api_anydb.cc: Add feature test valuerange1.
Wed Feb 28 01:07:53 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Only hook the testsuite into valgrind if
env var XAPIAN_TESTSUITE_VALGRIND is set, to make it simple to run a
test program under valgrind normally.
* tests/runtest.in: Set XAPIAN_TESTSUITE_VALGRIND if automatically
running a test program under valgrind.
Tue Feb 27 23:51:34 GMT 2007 Olly Betts <olly@survex.com>
* tests/Makefile.am: Turn subdir-objects back on here so that the
harness objects end up in the harness subdirectory.
Tue Feb 27 22:45:04 GMT 2007 Olly Betts <olly@survex.com>
* examples/delve.cc: Rename "-k" to "-V" since "keys" were renamed to
"values" long ago. Keep "-k" as an alias for now, but don't
advertise it. Add handling so "-V3" shows value #3 for every
document in the database.
Tue Feb 27 21:35:35 GMT 2007 Olly Betts <olly@survex.com>
* tests/Makefile.am,tests/remotetest.cc: Get rid of remotetest since
it no longer does anything.
Tue Feb 27 21:28:28 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_db.cc,tests/remotetest.cc: Move netstats1 from remotetest
to apitest. It will now run for "remotetcp" as well as "remote".
Tue Feb 27 21:27:17 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
Inline trivial getter and setter methods in the header. Make
getter method const.
Tue Feb 27 20:22:58 GMT 2007 Olly Betts <olly@survex.com>
* examples/delve.cc: Change to not stem terms by default. Add
"-s/--stemmer" option to allow a stemmer to be specified.
Tue Feb 27 17:50:13 GMT 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Test revision_supplied rather than
revision_ so that behaviour matches comments.
Tue Feb 27 16:58:56 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_wrdb.cc: Enhance crashrecovery1 to check that the
readers reference a database with the expected number of
documents. This checks that the base files which were removed
were the correct ones to leave the current database valid.
Tue Feb 27 16:54:31 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
backends/quartz/quartz_database.cc: Apply fix for opening
databases while under heavy modification to quartz, using Olly's
attachment to bug #108:
http://www.xapian.org/cgi-bin/bugzilla/attachment.cgi?id=43
Verified with loadtest that this resolves the issue.
Tue Feb 27 13:12:31 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.h: Add get_dbtype() method to allow the
current backend type to be read.
* tests/apitest.cc,tests/apitest.h: Add get_dbtype() function to allow
BackendManager::get_dbtype() to be called by tests.
* tests/api_wrdb.cc: Add new test crashrecovery1 to verify that the
backend can recover from the latest revision missing some of the
base files.
Tue Feb 27 12:45:00 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Fix how we start xapian-progsrv
when running under valgrind.
Tue Feb 27 11:34:22 GMT 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Remove the old throw for
DatabaseOpeningError so the new throw for DatabaseModifiedError will
actually be used.
Tue Feb 27 09:22:52 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* flint_table.cc,flint_table.h,flint_database.cc: If a database is
being frequently modified (ie, transactions committed extremely
frequently), flint can fail open all the tables at a consistent
revision on the first attempt. The code to handle this in
flint_database.cc was not firing because flint_table.cc was
reporting all failures to open a table for reading by throwing an
exception. This commit changes flint_table.cc to report failure
to open at a specific revision by returning false.
In addition, there was a bug in flint_database.cc which caused
the attempts to re-try opening a database in this situation to
fail. This is now fixed.
Finally, flint_database.cc now throws a DatabaseModified error if
100 attempts to reopen the database fail because of continual
modifications - previously, it would have thrown a
DatabaseOpening error.
There is no easy regression test - but my "loadtest.cc" program
attached to bug #108 shows the problem (if you comment out the
code which ignores DatabaseOpeningErrors).
Tue Feb 27 01:25:00 GMT 2007 Olly Betts <olly@survex.com>
* docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Need to
define DOXYGEN so that the previous change to the generated
errordispatch.h works. Remove obsolete macros from
EXPAND_AS_DEFINED and PREDEFINED.
* docs/doxygen_full_conf.in: Increase MAX_DOT_GRAPH_WIDTH from
800 to 1024 to match doxygen_api_conf.in.
Tue Feb 27 00:41:47 GMT 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix warning with SGI's CC.
Tue Feb 27 00:35:06 GMT 2007 Olly Betts <olly@survex.com>
* generate-exceptions.in: Wrap errordispatch.h in "#ifndef DOXYGEN"
and "#endif" because doxygen gets confused by a header full of
code.
Mon Feb 26 21:53:41 GMT 2007 Olly Betts <olly@survex.com>
* tests/findheaders.pl: Remove long unused perl script.
Mon Feb 26 19:23:50 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/api_wrdb.c: test_emptyterm2 used to delete a writable
database whilst the database was open. Unfortunately, this
doesn't work on windows (and it doesn't seem to be easy to make
it work), so this patch changes the test to close each database
before opening the next writable database at the same path.
Fortunately, this seems to be the only test which behaves like
this. Also, added a note to the win32 README file to document
this restriction.
Mon Feb 26 19:19:34 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* docs/Makefile.am: touch apidoc/html/index.html after apidoc.pdf
is created so that make doesn't attempt to regenerate it due to
the dependency of apidoc/html/index.html on apidoc.pdf.
Similarly for sourcedoc/html/index.html.
Mon Feb 26 18:36:22 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: Indent with tabs not spaces.
* tests/harness/index_utils.cc: Add missing space after "if";
prefer "X.empty()" to "X.size() == 0".
Mon Feb 26 16:10:31 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* tests/harness/index_utils.cc,tests/harness/backendmanager.cc:
Fix for windows: windows file handling seems to have a bug
causing end of file conditions in ifstream to be missed. As a
result, an empty string was being returned from the get_paragraph
function in the test harness, resulting in an out-of-bounds error
when generating a value from the paragraph. Add a check that the
paragraph returned isn't empty, and return an empty document if
it is. Then, check for empty documents (ie, contain some terms)
before adding them to the test database.
Mon Feb 26 16:05:07 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/quartz/btree_base.cc,backends/flint/flint_btreebase.cc:
Fix for windows: string append method with a pointer and length
causes a segfault-type error on windows if the pointer is NULL,
even if the length is also 0. Check for this case when appending
the bitmap to the base block, since a NULL pointer is passed for
an empty bitmap when a new database is being created.
Also, initialise the bit_map0 and bitmap members to 0 in the
FlintTable_base constructor which takes a string and a char
argument - they had been omitted from this and were only being
initialised by the constructor which takes no argument. This
didn't seem to be having any negative effect, but doing it makes
the code neater.
Sun Feb 25 23:21:11 GMT 2007 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc: Create the RefCntPtr to this
as an explicit variable to make the code more readable.
Sun Feb 25 19:20:33 GMT 2007 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix inconsistent ordering between pages with
set_sort_by_value_then_relevance (fixes bug#110).
* tests/api_wrdb.cc: Enabled test consistency2.
Sun Feb 25 17:28:09 GMT 2007 Olly Betts <olly@survex.com>
* matcher/: Also apply the "decreasing weights with remote database"
optimisations which we use in the sort_by_relevance case in the
sort_by_relevance_then_value case.
Sat Feb 24 19:35:41 GMT 2007 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc: If replace_document is used
to set the docid of a newly added document which has previously
existed, then we need to mark that document as valid (caught by
existing test replacedoc4 in a debug build).
Sat Feb 24 17:11:22 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Add regression test consistency2 for bug#110
(currently skipped since the bug isn't fixed yet).
Thu Feb 22 15:18:53 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Add proper detection for SGI's C++ (check stderr
output of "CC -v"). Automatically pass -ptused in CXXFLAGS for
xapian-core and any applications using xapian-config --cxxflags
since it seems to be required to avoid template linking errors.
Thu Feb 22 09:04:30 GMT 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Ship generated RSTHTML files.
Wed Feb 21 19:01:06 GMT 2007 Olly Betts <olly@survex.com>
* languages/turkish.sbl: Make some simplifications to the code of the
turkish stemmer.
Wed Feb 21 19:00:11 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk,languages/stem.cc,languages/turkish.sbl:
Add turkish stemmer.
Wed Feb 21 18:55:03 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Number m_test and c_test variables
to avoid variable shadowing warnings.
Wed Feb 21 18:07:50 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Remove duplicate copy of function
resulting from ham-fisted reverting and applying of patches.
Wed Feb 21 18:03:12 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c,languages/compiler/header.h: Number
mlimit variables to avoid variable shadowing warnings.
* languages/compiler/generator.c: Use "if (foo() == -1) return -1;"
which avoids a temporary variable (improving readability of
generated code) and producing very slightly faster code.
* languages/compiler/header.h: Use "#ifdef DISABLE_JAVA" around Java
generator specific struct members and prototypes.
Wed Feb 21 17:47:13 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Add "~C" comments to generated
source for more operations.
Tue Feb 20 20:24:30 GMT 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc,backends/quartz/btree.cc: Ensure
both_bases is set to false if we don't have both bases when
opening a table using an existing object.
Tue Feb 20 15:57:05 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Fix to handle generating dependencies on generated
objects, at least for the "checked out tree from SVN" case. Fixing
this fully is trickier, but currently this is stopped snapshots
from bootstrapping.
Tue Feb 20 14:28:02 GMT 2007 Charlie Hull
* backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc,
backends/quartz/btree.cc: Use MS Windows API calls to delete
files and open files we might want to delete while they are
still open (i.e. the flint and quartz btree base files). This
fixes a problem when a writer can't discard an old revision at the
exact moment a reader is opening it (bug #108).
Tue Feb 20 14:13:43 GMT 2007 Richard Boulton <richard@tartarus.org>
* .: Add generate-exceptions to svn:ignore property.
Tue Feb 20 13:36:27 GMT 2007 Olly Betts <olly@survex.com>
* generate-exceptions.in: Add missing '}' to close 'namespace Xapian'
in generated header 'xapian/error.h'.
Tue Feb 20 13:26:19 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am: Put generated exception headers in BUILT_SOURCES.
Tue Feb 20 12:10:18 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,generate-exceptions.in,include/Makefile.mk,
include/xapian/error.h,include/xapian/errortypes.h,net/serialise.cc:
Replace macro gymnastics with errortypes.h by a perl script which
generates the headers we require. It's more flexible, and easier to
get doxygen to generate documentation from.
* queryparser/queryparser.cc,tests/queryparsertest.cc: Throw new
Error subclass QueryParserError instead of throwing const char *
(fixes bug#101).
Tue Feb 20 10:37:54 GMT 2007 Olly Betts <olly@survex.com>
* languages/steminternal.cc: p is never NULL once the class is
successfully constructed, so just use Assert() to confirm this.
Tue Feb 20 10:29:25 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/lemon.c: Fix compiler warnings.
Mon Feb 19 18:50:12 GMT 2007 Olly Betts <olly@survex.com>
* common/serialise-double.cc,net/remoteconnection.cc: Throw
NetworkError rather than InternalError for invalid data received
over the remote protocol.
Mon Feb 19 18:12:21 GMT 2007 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Just disable serialisequery1 if the remote
backend is disabled, like we do for serialiselength1 and
serialisedoc1 rather than assuming InternalError is due to the
code being disabled.
Mon Feb 19 09:48:02 GMT 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/XapianAdminNotes.txt,docs/admin_notes.rst:
Generated file "XapianAdminNotes.html" doesn't fit the naming
conventions of other files at all, so renamed to "admin_notes.html".
Rename the source to ".rst" so we can use an implicit rule for
the conversion, in anticipation of other documentation in ReST
format.
Mon Feb 19 09:10:48 GMT 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Fix typos which stopped parallel make from working
correctly in "docs" subdirectory.
Sun Feb 18 22:36:46 GMT 2007 Olly Betts <olly@survex.com>
* common/Makefile.mk,common/omstringstream.h,common/output.h,
include/Makefile.mk,include/xapian/output.h: Move
"<xapian/output.h>" to being an internal header in "common/" since
it hasn't been included by "<xapian.h>" since 0.7.0.
Sun Feb 18 22:18:33 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/dbfactory.h: Add documentation comment for the "prog"
form of Remote::open_writable().
Sun Feb 18 19:31:20 GMT 2007 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add test for "associative NEAR".
Sun Feb 18 18:27:40 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
Merge BackendManager::change_names_to_paths() into
index_files_to_database() and make the latter a method of
class BackendManager.
* tests/harness/backendmanager.cc: Remove mention of muscat36 backends
from error message listing valid backends.
* tests/harness/backendmanager.h: Comment out prototypes for currently
disabled methods getdb_inmemoryerr, getwritedb_inmemory, etc.
Sat Feb 17 15:38:05 GMT 2007 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: new throws if allocation fails
so we don't need to check the return value.
Sat Feb 17 02:08:22 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_table.cc: Fix memory double-frees if
FlintTable::close() is called twice on a table (without an open()
being called in between). This was happening after a transaction
failed when the table was next opened.
* backends/quartz/btree.cc: Fix double-frees, similarly.
Fri Feb 16 20:11:13 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Add missing "~Z" for compatibility
with C code generation (which we don't use for Xapian).
Fri Feb 16 19:51:26 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/tclUniData.h,queryparser/utf8itor.h: The tcl unicode
routines only have tables for characters in the BMP. For other
characters, assume they're word characters, but can't be forced to
lowercase.
Fri Feb 16 19:26:00 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/utf8itor.cc: Fix bug in decoding of 4 byte utf-8
sequences - the returned value was 0x400000 too large!
Thu Feb 15 19:37:26 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Keep
embedded apostrophe's in terms rather than generating a phrase
search for them.
Thu Feb 15 18:42:49 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c,languages/steminternal.cc,
languages/steminternal.h: Tweak the "grouping" functions to allow
skipping past multiple occurrences and use this to implement "goto"
or "gopast" followed by a grouping or "non" grouping more
efficiently.
Thu Feb 15 17:57:43 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c,languages/steminternal.cc,
languages/steminternal.h: Inline lose_s(). Since lose_s()
checks if p is NULL, remove checks prior to calling lose_s().
* languages/steminternal.h: Cast from symbol * to int * via
void * to try to suppress over-eager warnings about alignment.
Thu Feb 15 12:43:04 GMT 2007 Olly Betts <olly@survex.com>
* languages/stem.cc: Add support for two letter ISO 639 codes.
Thu Feb 15 10:40:40 GMT 2007 Olly Betts <olly@survex.com>
* docs/Makefile.am: Don't try to ship mkdoc.pl.
Thu Feb 15 09:58:48 GMT 2007 Olly Betts <olly@survex.com>
* docs/gen_codestructure_doc.in: Fix to work in a VPATH build.
Thu Feb 15 09:54:55 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Fix Stem::get_description() to
return the right string.
Thu Feb 15 09:44:54 GMT 2007 Olly Betts <olly@survex.com>
* docs/gen_codestructure_doc.in: Add links to viewvcs on
svn.xapian.org.
Thu Feb 15 09:26:07 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac,docs/Makefile.am,docs/gen_codestructure_doc.in,
docs/mkdoc.pl,preautoreconf: Rework how code_structure.html
is generated. Nicer output, and the html document is now
regenerated if any of the dir_contents files change.
Thu Feb 15 07:43:39 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,bin/Makefile.mk,configure.ac,examples/Makefile.mk,
makemanpage.in: Add "makemanpage" script which takes care of all
the magic needed to generate a man page using help2man. This
script is written in perl, but so is help2man, and they're both
only used in maintainer-mode.
Thu Feb 15 06:33:41 GMT 2007 Olly Betts <olly@survex.com>
* bin/Makefile.mk: Fix typos in man page generation rules.
Thu Feb 15 06:30:54 GMT 2007 Olly Betts <olly@survex.com>
* examples/Makefile.mk: Fix typos in previous commit.
Thu Feb 15 06:03:35 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,examples/Makefile,examples/Makefile.am,
examples/Makefile.mk: Convert examples subdirectory to use
non-recursive make. Fixes wishlist bug#97.
Thu Feb 15 05:48:38 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,bin/Makefile,bin/Makefile.am,bin/Makefile.mk,
configure.ac: Convert bin subdirectory to use non-recursive make.
Wed Feb 14 19:08:49 GMT 2007 Olly Betts <olly@survex.com>
* tests/Makefile.am: There's no longer a need to remove the temporary
directories for muscat36 backend tests, since we've removed the
muscat36 backend code.
Wed Feb 14 18:58:31 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Move adjusting of INCLUDES to the top of the
file.
* queryparser/Makefile.mk: Adjust INCLUDES for a VPATH build.
Wed Feb 14 18:38:16 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Need -Ilanguages for VPATH builds from SVN.
Wed Feb 14 18:37:54 GMT 2007 Olly Betts <olly@survex.com>
* languages/steminternal.cc,languages/steminternal.h: Add
SET_CAPACITY() macro.
Wed Feb 14 17:39:50 GMT 2007 Olly Betts <olly@survex.com>
* languages/steminternal.h: Don't cast away const.
Wed Feb 14 17:14:14 GMT 2007 Olly Betts <olly@survex.com>
* include/Makefile: Add stub makefile.
Wed Feb 14 17:12:41 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: ac_abs_srcdir, etc aren't available in configure
itself, so we have to do the work ourselves.
Wed Feb 14 12:54:26 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Fix typo in last commit.
Wed Feb 14 12:19:18 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,languages/Makefile.mk: Define automake
conditional VPATH_BUILD so we can only add extra entries to
INCLUDES in VPATH builds.
Wed Feb 14 11:59:02 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Ick, we need $(top_srcdir)/languages in
INCLUDES as the generated sources need to find non-generated
headers.
Wed Feb 14 11:46:43 GMT 2007 Olly Betts <olly@survex.com>
* backends/database.cc,backends/remote/remote-database.cc,
common/database.h,common/remote-database.h,common/remoteprotocol.h,
docs/remote_protocol.html,net/remoteserver.cc: Support
get_lastdocid() on remote databases.
Wed Feb 14 11:20:33 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,include/Makefile.am,include/Makefile.mk:
Convert include subdirectory to use non-recursive make.
Wed Feb 14 11:05:00 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,bin/Makefile.am,configure.ac,examples/Makefile.am,
getopt/Makefile,getopt/Makefile.am,getopt/Makefile.mk,
tests/Makefile.am: Convert getopt subdirectory to use non-recursive
make.
Wed Feb 14 10:56:15 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/Makefile.am: Remove as no longer used.
Wed Feb 14 10:38:27 GMT 2007 Olly Betts <olly@survex.com>
* backends/quartz/Makefile.mk,bin/Makefile.am,tests/Makefile.am: Move
backends/quartz/libbtreecheck.la to libquartzcheck.la.
* getopt/Makefile.am: Distribute getopt/dir_contents.
Wed Feb 14 10:20:14 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Handle variables set with "+=" and ":=".
Wed Feb 14 10:16:29 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/database.h: Add documentation comments for DB_*
constants.
Wed Feb 14 10:11:37 GMT 2007 Olly Betts <olly@survex.com>
* examples/.cvsignore: Remove lingering relic of CVS days.
Wed Feb 14 10:07:14 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,net/Makefile,net/Makefile.am,
net/Makefile.mk: Convert net subdirectory to use non-recursive make.
Now libxapian.la is built completely non-recursively.
* docs/Makefile.am,docs/mkdoc.pl: Fix mkdoc.pl to handle directories
which use non-recursive make.
Wed Feb 14 09:10:27 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,backends/Makefile,backends/Makefile.am,
backends/Makefile.mk,backends/flint/Makefile,
backends/flint/Makefile.am,backends/flint/Makefile.mk,
backends/inmemory/Makefile,backends/inmemory/Makefile.am,
backends/inmemory/Makefile.mk,backends/multi/Makefile,
backends/multi/Makefile.am,backends/multi/Makefile.mk,
backends/quartz/Makefile,backends/quartz/Makefile.am,
backends/quartz/Makefile.mk,backends/remote/Makefile,
backends/remote/Makefile.am,backends/remote/Makefile.mk,
configure.ac: Convert backends subdirectory (and subdirectories
thereof) to non-recursive make.
Wed Feb 14 08:49:02 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Fix handling of backslash at the end of a line in
included files.
* preautoreconf: Our handling of which directory a nested include is
sought from is consistent with automake, so remove the FIXME comment
about it.
Wed Feb 14 08:07:07 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,matcher/Makefile,matcher/Makefile.am,
matcher/Makefile.mk: Convert matcher subdirectory to non-recursive
make.
Wed Feb 14 07:50:19 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,api/Makefile,api/Makefile.am,api/Makefile.mk,
configure.ac: Convert api subdirectory to non-recursive make.
Wed Feb 14 07:48:45 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: No need to `chdir' to the current directory.
* preautoreconf: Don't bother looking at the file we generate
when considering included files.
* preautoreconf: Add included files to the dependency list.
Wed Feb 14 07:38:19 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Generate dummy rules for the files which
preautoreconf depends on, so that "make" still works if one
of them is removed (by build system restructuring).
Wed Feb 14 07:24:07 GMT 2007 Olly Betts <olly@survex.com>
* common,languages,tests/harness: svn:ignore: We do need to ignore
.dirstamp files after all.
Wed Feb 14 07:22:29 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,common/Makefile,common/Makefile.am,common/Makefile.mk,
configure.ac: Convert common subdirectory to non-recursive make.
Wed Feb 14 07:03:27 GMT 2007 Olly Betts <olly@survex.com>
* .: svn:ignore: Ignore all vim swapfiles. No need to ignore .deps
now that dummy.cc is history.
Wed Feb 14 06:34:44 GMT 2007 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Force ASCII capitals in sample vocabulary to
lower case before stemming.
Wed Feb 14 06:14:42 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,queryparser/Makefile,
queryparser/Makefile.am,queryparser/Makefile.mk:
Convert queryparser subdirectory to non-recursive make.
* Makefile.am: Enable automake option "subdir-objects" so
that built objects for a non-recursively made directory
go into that directory.
Wed Feb 14 06:12:29 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness: svn:ignore: remove .dirstamp and depcomp.
Wed Feb 14 06:10:44 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk: In maintainer-mode, remove snowball and
generated allsnowballheaders.h on "make clean". When not in
maintainer-mode, remove them on "make maintainer-clean".
* languages/: svn:ignore all vim swap files.
Wed Feb 14 05:54:32 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Distribute the stub languages/Makefile.
* tests/harness/Makefile.mk: No need to explicitly distribute
harness/Makefile.mk.
Wed Feb 14 05:52:08 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Distribute languages/dir_contents.
Wed Feb 14 05:44:10 GMT 2007 Olly Betts <olly@survex.com>
* api/Makefile.am,api/vectortermlist.h,common/Makefile.am,
queryparser/Makefile.am: We use vectortermlist.h from the
queryparser directory, so move it from api to common.
Wed Feb 14 05:27:13 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk,languages/stem.cc: Disable finnish and lovins
temporarily, until I sort out merging the support for among with
functions properly.
Wed Feb 14 05:24:36 GMT 2007 Olly Betts <olly@survex.com>
* languages/steminternal.cc,languages/steminternal.h: Temporarily
back out the changes to handling of among with functions.
Tue Feb 13 19:11:57 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: If a test throws an unknwon exception,
say so in the test failure message. If it throws std::string,
report the first 40 character (or first line) of the string.
Tue Feb 13 17:48:11 GMT 2007 Olly Betts <olly@survex.com>
* languages/steminternal.cc: Fix decoding of 3 byte utf-8 sequences.
Tue Feb 13 17:47:22 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk: Fix dependency of generated
languages/allsnowballheaders.h to be on languages/Makefile.mk.
Tue Feb 13 17:46:42 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: Fix missing ";" in generated
code.
Tue Feb 13 15:40:15 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk,languages/compiler/driver.c,
languages/compiler/generator.c,languages/compiler/header.h:
Changes towards getting C++ generation working.
Tue Feb 13 15:39:23 GMT 2007 Olly Betts <olly@survex.com>
* languages/steminternal.cc,languages/steminternal.h: Revert to match
currently generated code.
Tue Feb 13 14:09:31 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/: Sync with current snowball SVN + submitted
patches.
Tue Feb 13 10:53:34 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/backendmanager.cc: If we fail to start
xapian-tcpsrv, report why (give errno or the error output).
Tue Feb 13 10:28:43 GMT 2007 Olly Betts <olly@survex.com>
* tests/remotetest.cc: Prune test cases which are redundant now that
apitest tests remote and remotetcp: apitest's simplequery1 performs
a superset of what netmatch1 and tcpmatch1 do; apitest's multidb1
performs a superset of what netmatch2 does; and the coverage given
by our netexpand1 is provided by various apitest tests.
Mon Feb 12 06:36:58 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/generator.c: In backward mode, among
can't match if there are fewer characters before the current
position than the minimum length string in the among.
Mon Feb 12 05:56:31 GMT 2007 Olly Betts <olly@survex.com>
* configure.ac: Make sure that the languages subdirectory exists in
case this is a fresh SVN checkout and srcdir != builddir.
Mon Feb 12 05:46:49 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile.mk,languages/compiler/driver.c: -DDISABLE_JAVA
to not compile in Java support (inline with Richard's patch to
the upstream snowball sources).
* languages/Makefile.mk: Remove inaccurate comment about processing
with automake. Fix -n option we pass (remove directory name).
Use "" instead of <> in generated file allsnowballheaders.h. Remove
snowball compiler and generated files on "make maintainer-clean".
Mon Feb 12 01:08:50 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* languages/compiler/header.h: Remove commented out header for
sort() prototype, to match snowball sources.
Sun Feb 11 19:28:50 GMT 2007 Olly Betts <olly@survex.com>
* languages/api.h,languages/header.h: Remove headers which are no
longer used.
Sun Feb 11 19:26:50 GMT 2007 Olly Betts <olly@survex.com>
* languages/api.cc,languages/utilities.cc: Remove sources which are
no longer used.
Sun Feb 11 16:22:16 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/driver.c: Use #ifdef instead of #if.
Sun Feb 11 16:20:44 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/driver.c: Disable java support, since we don't
use it and it means one less source file.
Sun Feb 11 16:08:49 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/analyser.c,languages/compiler/header.h: Use qsort
instead the snowball's own sort implementation to reduce the number
of source files we need for the snowball compiler.
Sun Feb 11 16:04:19 GMT 2007 Olly Betts <olly@survex.com>
* languages/Makefile: Add stub Makefile to allow "make", "make check",
and "make clean" from the languages subdirectory.
Sun Feb 11 16:00:51 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/analyser.c: Cast the arguments, not the function
pointer as ISO C allows `void*' and `struct amongvec*' to have
different representations.
Sun Feb 11 15:43:49 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/space.c: Fix a typo of a function name in a
comment.
Sun Feb 11 15:23:51 GMT 2007 Olly Betts <olly@survex.com>
* languages/compiler/header.h,languages/compiler/tokeniser.c: Give
syswords and syswords2 .h extensions for clarity.
Sun Feb 11 15:17:28 GMT 2007 Olly Betts <olly@survex.com>
* Makefile.am,api/Makefile.am,api/omstem.cc,configure.ac,dummy.cc,
languages/Makefile.am,languages/Makefile.mk,languages/compiler/,
languages/: Update the stemmers to use utf-8 and the latest snowball
version (based on r421 from snowball SVN). Further patches are
required to generate C++ classes from snowball, I'm checking in the
vanilla compiler first to help us track the patches.
Sun Feb 11 14:16:35 GMT 2007 Olly Betts <olly@survex.com>
* api/omstem.cc: Add definition for Xapian::Stem::stem_word().
Sun Feb 11 13:15:11 GMT 2007 Olly Betts <olly@survex.com>
* tests/api_anydb.cc,tests/api_db.cc,tests/api_posdb.cc: Prefer
Xapian::Stem::operator() to Xapian::Stem::stem_word().
Sat Feb 10 19:10:31 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Prefer Xapian::Stem::operator() to
Xapian::Stem::stem_word().
Sat Feb 10 18:34:41 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/stem.h: Make Xapian::Stem::Internal as @internal for
doxygen. Mark Xapian::Stem::stem_word() as deprecated.
Sat Feb 10 18:34:05 GMT 2007 Olly Betts <olly@survex.com>
* HACKING: Add brief note about coding style.
Sat Feb 10 18:24:28 GMT 2007 Olly Betts <olly@survex.com>
* preautoreconf: Add licence and copyright notice. Add support for
automake include directives. Warn about unknown variables.
Sat Feb 10 18:19:26 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Conditionalise all the valgrind specific
code on RUNNING_ON_VALGRIND to minimise the overhead if valgrind
is installed but we aren't running tests under it.
Sat Feb 10 17:42:05 GMT 2007 Olly Betts <olly@survex.com>
* tests/harness/index_utils.cc,tests/stemtest.cc: Prefer
Xapian::Stem::operator() to Xapian::Stem::stem_word().
Sat Feb 10 17:27:27 GMT 2007 Olly Betts <olly@survex.com>
* examples/delve.cc,examples/simpleindex.cc,examples/simplesearch.cc:
Prefer Xapian::Stem::operator() to Xapian::Stem::stem_word().
Wed Feb 07 04:23:09 GMT 2007 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,queryparser/queryparser.lt: Use
new/delete instead of malloc/free to allocate struct yyParser
and pass it around as "yyParser *" instead of "void *".
Wed Feb 07 03:44:16 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc,
queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
tests/queryparsertest.cc: Allow the default prefix to be specified
so you can use QueryParser to parse a text entry box for "author"
etc.
* configure.ac: Note API change for LIBRARY_VERSION_INFO updating.
Wed Feb 07 01:14:37 GMT 2007 Olly Betts <olly@survex.com>
* common/safeunistd.h: Add '#include <sys/types.h>' so that we've seen
a typedef for off_t before we hide it behind a #define to avoid a
compilation error if <sys/types.h> or <wchar.h> is included after
we are.
Tue Feb 06 06:26:24 GMT 2007 Olly Betts <olly@survex.com>
* INSTALL: Mention MSVC makefiles. Note that we still test build with
GCC 2.95.4 even though we recommend using a newer version.
Tue Feb 06 06:13:48 GMT 2007 Olly Betts <olly@survex.com>
* AUTHORS,HACKING,backends/flint/,backends/quartz/btree.cc,
backends/quartz/quartz_database.cc,bin/quartzcompact.cc,
bin/xapian-compact.cc,common/,tests/btreetest.cc,
tests/harness/backendmanager.cc,tests/harness/testsuite.cc,
tests/quartztest.cc: Support large files in stat() and fstat()
when building with MSVC. Factor MSVC specific header magic
into new replacement headers "safeunistd.h" and "safesysstat.h".
* AUTHORS: Thanks to Charlie Hull for the original patch to support
stat() on large files with MSVC (and past MSVC related stuff!)
Sat Jan 13 02:06:15 GMT 2007 Olly Betts <olly@survex.com>
* include/xapian/database.h: Add pointer from
WritableDatabase::add_document() to replace_document() in case the
user wants to specify the docid themselves. Also improve the
wording of the warning about changes not being committed to disk
right away.
Tue Jan 2 15:49:43 GMT 2007 Richard Boulton <richard@lemurconsulting.com>
* backends/quartz/btree.cc,backends/flint/flint_io.h: Patches from
Charlie Hull to allow 2GB+ index files work when compiled using
Visual C++.
Sat Dec 30 13:48:54 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.lemony,include/xapian/queryparser.h:
Add support for partially entered queries, to better support
incremental searching. Also fix a typo in a comment.
* docs/queryparser.html: Document the new partial query option, and
what it's useful for.
* tests/queryparsertest.cc: Test partial queries.
Wed Dec 20 16:42:24 GMT 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Updated with success reports from debian buildds.
Wed Dec 20 00:53:19 GMT 2006 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Fix "unused parameter" warning when building
with the remote backend disabled. Also update a comment - the query
serialisation isn't really one line of text since we now store term
names with the length prefixed, and they can contain arbitrary
characters including linefeeds.
Tue Dec 19 20:40:27 GMT 2006 Olly Betts <olly@survex.com>
* tests/Makefile.am: Need libgetopt.la for test programs which
use the test harness for platforms where GNU getopt isn't in
the standard C library.
Tue Dec 19 20:34:16 GMT 2006 Olly Betts <olly@survex.com>
* queryparser/utf8itor.h: Need <string.h> for strlen.
Tue Dec 19 16:35:58 GMT 2006 Olly Betts <olly@survex.com>
* common/omstringstream.h: Fix "warning: comparison between signed and
unsigned".
Tue Dec 19 15:33:19 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Turn the second (and
potentially slightly deeper) recursion in encode_interpolative
and decode_interpolative into explicit iteration in case the
compiler fails to optimise the tail recursion.
Mon Dec 18 03:39:41 GMT 2006 Olly Betts <olly@survex.com>
* matcher/: Add ExactPhrasePostList to handle the common special case
where the window size of OP_PHRASE is equal to the number of terms
in the phrase.
Mon Dec 18 02:21:32 GMT 2006 Olly Betts <olly@survex.com>
* tests/harness/testsuite.cc: Remove accidentally committed "NO
PROBLEM" message when running under valgrind.
Wed Dec 13 21:15:57 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/document.h: Another tweak to the documentation
comment.
Wed Dec 13 18:07:51 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/document.h: Improve documentation comment for
Document::get_value().
Wed Dec 13 03:38:37 GMT 2006 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: In the description of the TradWeight
class, replace reference to "Muscat 3.6" (meaningless to most
people) with a generally useful explanation.
Wed Dec 13 03:27:14 GMT 2006 Olly Betts <olly@survex.com>
* docs/: svn:ignore XapianAdminNotes.html.
Wed Dec 13 03:16:44 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: Yet more valgrind test improvements! Give up testing
valgrind features if VALGRIND_COUNT_LEAKS isn't supported. Fix the
common shortcut case to not try logging to /dev/null.<pid> so it
can actually get used. Also don't use /dev/null in the --logfile
case either as it will probably cause problems there too (though I
don't have an old enough valgrind handy to verify this). Also report
results of valgrind tests in a couple more places.
Wed Dec 13 00:31:04 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* docs/Makefile.am: New rules for generating XapianAdminNotes.html
from XapianAdminNotes.txt
* configure.ac: Check for rst2html, and require it in maintainer
mode.
* HACKING: document rst2html as a requirement.
Tue Dec 12 23:58:13 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* docs/XapianAdminNotes.txt: Add new document giving an
introduction to Xapian concepts for system administrators.
Tue Dec 12 21:33:38 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* docs/quartzdesign.html: Fix an unmatched bracket.
Tue Dec 12 21:18:54 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* backends/quartz/quartz_alldocspostlist.cc: Fix memory leak
discovered by valgrind in QuartzAllDocsPostList constructor: was
failing to delete the Bcursor.
Tue Dec 12 21:05:47 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* queryparser/queryparser.lemony: Fix parsing of queries of the
form "+foo* bar", where no terms in the database match the
wildcard "foo*", but bar does exist in the database. Previously,
such queries would be equivalent to "bar". Now, they will match
no documents. This required using a new "QpQuery" object
internally so we can distinguish between deliberately "match
nothing" queries, and empty lists of queries.
* tests/api_anydb.cc,tests/queryparsertest.cc: Test above fix, and
general parsing of wildcard queries with +terms, and test
performing a match with a query resulting from a wildcard query
which matches nothing.
Tue Dec 12 21:05:15 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* tests/api_nodb.cc,api/omqueryinternal.cc,api/omquery.cc: Fix some
copyright assertions I missed.
Tue Dec 12 19:38:39 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/query.h,api/omqueryinternal.cc,api/omquery.cc: Add
two static Query objects: Xapian::Query::MatchAll and
Xapian::Query::MatchNothing, which match all documents and no
documents in the database, respectively. (Equivalent to
Query("") and Query()). Allow empty queries such as MatchNothing
to be combined with other queries. Change methods of
Xapian::Query::Internal to use pointers to query internals
instead of references, so they can handle the NULL pointer
internals of an empty query.
* tests/api_nodb.cc: Test combining of MatchNothing queries with
other queries with OP_AND and OP_OR.
Tue Dec 12 20:01:58 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Fix valgrind better: --log-file-exactly isn't what
is wanted, because it messes up if multiple processes are traced.
Instead, use a temporary file instead of /dev/null, so we don't
get the permission denied error.
Tue Dec 12 19:15:20 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* configure.ac: Fix detection of valgrind for newer valgrind. My
version of valgrind (valgrind-3.2.1-Debian, from ubuntu feisty)
treats the parameter supplied to --log-file as a base path, and
appends a process ID. This caused the test for the log-file
option to fail with permission denied errors due to trying to
write to files of the form '/dev/null.16098'. Solution - test
for the --log-file-exactly option, and use that. Also, change
configure.ac to display the result of the tests for valgrind; was
displaying that it had found it, but not mentioning that it
couldn't make it work.
Tue Dec 05 21:12:12 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* include/xapian/query.h,api/omqueryinternal.cc: Fix query
serialisation bug. Was failing to propagate "curpos" parameter
across subqueries, resulting in incorrect serialisation of
termpositions.
* tests/internaltest.cc: Regression test for this bug.
Tue Dec 05 01:34:07 GMT 2006 Olly Betts <olly@survex.com>
* HACKING: Clarify how XAPIAN_DEBUG_FLAGS works.
Tue Dec 05 01:23:12 GMT 2006 Olly Betts <olly@survex.com>
* examples/quest.cc: Add "--stemmer" option to allow stemming language
to be set, or stemming to be disabled.
Sun Dec 03 00:34:27 GMT 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Add entries
to the "unstem" map for prefixed boolean filters (e.g. type:html).
Also don't corrupt non-ASCII characters in a prefixed boolean
filter.
Sat Nov 25 04:17:23 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_version.cc:
The "my_fls()" change actually results in a different interpolative
encoding in a few cases - the old encoding could vary between
architectures so we have to change it. So bump the FLINT_VERSION
and change the "flicklock" file to be "flintlock" as it should have
been all along!
Wed Nov 22 18:55:42 GMT 2006 Olly Betts <olly@survex.com>
* xapian-config.in: Improve --version output so that help2man produces
a better man page.
Mon Nov 20 07:21:07 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Fix another off-by-one
error (> should be >=).
Mon Nov 20 07:12:11 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Fix off-by-one error in code
which calls my_fls().
Sat Nov 18 08:32:08 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: "const static" -> "static
const".
Sat Nov 18 08:05:17 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Make decode_interpolative
a member function of BitReader.
Sat Nov 18 07:45:19 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Add highly optimised fls()
implementation and make use of it.
Thu Nov 16 04:22:36 GMT 2006 Olly Betts <olly@survex.com>
* m4/xapian.m4: If XAPIAN_CONFIG wasn't specified and xapian-config
wasn't found, see if the library seems to be present - if so give
a different error message which suggests the user needs to install
a -dev or -devel package.
Thu Nov 16 02:11:34 GMT 2006 Olly Betts <olly@survex.com>
* docs/install.html: omega tarball is now xapian-omega.
Tue Nov 14 22:42:05 GMT 2006 Olly Betts <olly@survex.com>
* tests/harness/Makefile: Add static Makefile so you can make all,
check, and clean from the subdirectory.
* tests/harness/Makefile.mk: Ship Makefile.mk and Makefile.
Tue Nov 14 21:53:45 GMT 2006 Olly Betts <olly@survex.com>
* tests/: Remove muscat36 temporary directories from svn:ignore
property.
Tue Nov 14 19:47:30 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac,tests/Makefile.am,tests/harness/Makefile.mk: Use
non-recursive make to build the test harness, so it only gets
built if "make check" is run.
Tue Nov 14 19:43:48 GMT 2006 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Removed unused static function unlink_table.
Tue Nov 14 17:41:26 GMT 2006 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.lemony,
tests/queryparsertest.cc: Add QueryParser::FLAG_PURE_NOT to allow
pure NOT queries to be enabled (they are now disabled by default).
Tue Nov 14 04:19:40 GMT 2006 Olly Betts <olly@survex.com>
* backends/database.cc,backends/flint/dir_contents,
backends/quartz/dir_contents,docs/overview.html,
docs/quartzdesign.html,docs/scalability.html: Make flint the default
backend.
Tue Nov 14 03:25:19 GMT 2006 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Xapian::Query("") now builds a query which
matches all documents rather than throwing InvalidArgumentError
so fix emptyquery1 test.
Tue Nov 14 02:03:29 GMT 2006 Olly Betts <olly@survex.com>
* api/omdocument.cc: Tweak OmDocumentTerm::add_position() so that
adding position 0 to an empty termlist takes the shortcut.
Mon Nov 13 05:46:15 GMT 2006 Olly Betts <olly@survex.com>
* docs/queryparser.html: Document the new pure NOT feature.
Mon Nov 13 05:24:30 GMT 2006 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,queryparser/queryparser.lemony,
tests/queryparsertest.cc: Allow "pure NOT" queries - e.g.
"NOT apples". Fixes bug #99.
Mon Nov 13 04:54:04 GMT 2006 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Undo changes accidentally committed in last
check-in.
Mon Nov 13 04:47:57 GMT 2006 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,backends/Makefile.am,backends/database.cc,
backends/muscat36/,configure.ac,docs/overview.html,
docs/quartzdesign.html,docs/tests.html,include/xapian/dbfactory.h,
include/xapian/version_h.cc,tests/api_anydb.cc,tests/apitest.cc,
tests/harness/backendmanager.cc,tests/harness/backendmanager.h,
tests/harness/index_utils.cc: Remove support for the old Muscat 3.6
backends.
Mon Nov 13 04:02:27 GMT 2006 Richard Boulton <richard@lemurconsulting.com>
* common/database.h,api/omdatabase.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/quartz/Makefile.am,backends/quartz/quartz_database.cc,
backends/quartz/quartz_alldocspostlist.h,
backends/quartz/quartz_alldocspostlist.cc,
backends/flint/Makefile.am,backends/flint/flint_database.cc,
backends/flint/flint_alldocspostlist.cc,
backends/flint/flint_alldocspostlist.h:
Implement posting lists which return a list of all documents in
the database. Such a posting list is obtained by calling
Xapian::Database::postlist_begin() with an empty term (ie, "").
Also, all Xapian::Database methods which take a termname now
accept an empty term, and return appropriate values (ie,
get_termfreq("") and get_collection_freq("") return the number of
documents in the database, and term_exists("") returns true
unless the database is empty). Fixes Bug #47.
* docs/quartzdesign.html: Document the inefficiency of all-document
postlists for Quartz.
* tests/api_anydb.cc,tests/api_db.cc,tests/api_wrdb.cc: Add tests for
all-document postlists, and for passing an empty term to all the
applicable database methods. This defines the new tests
allpostlist1, allpostlist2, emptyterm1, and emptyterm2. These
tests currently skip for the remote backend where postlist_begin()
isn't yet implemented.
Mon Nov 13 02:06:03 GMT 2006 Olly Betts <olly@survex.com>
* Merge in utf8 branch:
Thu Sep 14 23:49:48 BST 2006 Olly Betts <olly@survex.com>
* queryparser/,tests/queryparsertest.cc: Update to work with
UTF-8. Stop normalising accents - the general sentiment
seems to be firmly against it, and where it is still
appropriate we should get the stemmers to do it.
Sun Nov 12 22:38:56 GMT 2006 Olly Betts <olly@survex.com>
* NEWS: Update from ChangeLog file in preparation for branching and
merging.
Sun Nov 12 19:32:01 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/quartz/quartz_database.cc: Fix replace_document() not to
lose positional information for a document if it is replaced with
itself with unmodified postings.
* tests/api_wrdb.cc: Add testcase replace_document5 as regression test
for the replace_document bug.
* backends/remote/remote-database.cc: Fix
RemoteDatabase::has_positions() to refetch the cached value if it
might be out of date.
Sun Nov 12 17:07:00 GMT 2006 Olly Betts <olly@survex.com>
* docs/Makefile.am: Need to increase pool_size further still to build
sourcedoc.pdf (2000000 now).
Sun Nov 12 16:24:15 GMT 2006 Olly Betts <olly@survex.com>
* HACKING: Add "update ReleaseNotes on wiki" to release checklist.
Sun Nov 12 16:23:19 GMT 2006 Olly Betts <olly@survex.com>
* xapian.spec.in: Remove "." from end of "Summary:". Package
new man page for xapian-progsrv.
Sun Nov 12 00:43:36 GMT 2006 Olly Betts <olly@survex.com>
* docs/stemming.html: Update another "CVS" reference to say "SVN".
Sun Nov 12 00:42:22 GMT 2006 Olly Betts <olly@survex.com>
* docs/install.html: Update reference to "CVS" to say "SVN".
Thu Nov 09 01:11:52 GMT 2006 Olly Betts <olly@survex.com>
* HACKING: Reorder the release checklist a little. I've fixed
update_website.sh to get the latest version from version.php, so
now only version.php needs updating.
Thu Nov 09 00:17:35 GMT 2006 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.ac: Update for 0.9.9.
Wed Nov 08 20:54:31 GMT 2006 Olly Betts <olly@survex.com>
* xapian.spec.in: Apply changes from Neal Becker to run "autoreconf
--force" so that we don't set rpath for /usr/lib64, and add "libs"
to %post and %postun.
* AUTHORS: Thank Neal Becker.
Wed Nov 08 04:27:17 GMT 2006 Olly Betts <olly@survex.com>
* docs/tests.html: Update for "testsuite" -> "tests/harness". Mark
paths and programs with <code>...</code>. Improve wording in a few
places.
Wed Nov 08 03:10:37 GMT 2006 Olly Betts <olly@survex.com>
* bin/xapian-tcpsrv.cc: Need '#include "safeerrno.h"' for EADDRINUSE.
Wed Nov 08 02:36:59 GMT 2006 Olly Betts <olly@survex.com>
* bin/Makefile.am,bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc:
xapian-progsrv now uses getopt for option processing, and we can
now generate a man page using help2man. Fixes Bug #98.
Wed Nov 08 01:47:19 GMT 2006 Olly Betts <olly@survex.com>
* bin/xapian-tcpsrv.cc: If the port requested is in use, exit with
code 69 (EX_UNAVAILABLE) which is useful if you're trying to
automate launching of xapian-tcpsrv instances.
* tests/harness/backendmanager.cc: If we can't start xapian-tcpsrv
because the port is in use, try higher numbered ports.
* tests/harness/testsuite.cc: Catch and report std::string exceptions.
Tue Nov 07 22:40:58 GMT 2006 Olly Betts <olly@survex.com>
* net/tcpclient.cc: Turn on TCP_NODELAY for the client too.
Tue Nov 07 21:46:39 GMT 2006 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Turn on TCP_NODELAY for xapian-tcpsrv which
increases throughput for the remote backend over tcp.
Tue Nov 07 21:08:57 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_btreebase.cc: Add missing '#include'-s.
Tue Nov 07 17:57:22 GMT 2006 Olly Betts <olly@survex.com>
* backends/quartz/btree_base.cc: Add missing '#include'-s.
Tue Nov 07 05:12:40 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.h,backends/flint/flint_table.cc,
backends/quartz/btree.cc: Add missing '#include <vector>' which
"utils.h" was implicitly pulling in.
* common/utils.h: Move '#include "safefcntl.h"' to more logical place.
Tue Nov 07 04:18:27 GMT 2006 Olly Betts <olly@survex.com>
* common/safefcntl.h: Actually add the new file to SVN.
Tue Nov 07 03:36:59 GMT 2006 Olly Betts <olly@survex.com>
* HACKING,backends/flint/flint_io.h,backends/flint/flint_lock.cc,
backends/flint/flint_lock.h,backends/muscat36/io_system.cc,common/,
net/tcpserver.cc,tests/harness/backendmanager.cc,
tests/harness/testsuite.cc: Create "safefcntl.h" as a replacement
for <fcntl.h> instead of using "utils.h" for this purpose, since
"utils.h" pulls in many other things we often don't want.
* common/utils.cc,common/utils.h,net/progclient.cc: Move split_words
to progclient.cc which is the only user of it. Rewrite it to not
modified the string being split which risks being O(n^2).
* net/progclient.cc,common/progclient.h: Pass std::string by const
reference.
* configure.ac: Fix DJGPP build (fork is present but always fails).
Tue Nov 07 03:21:24 GMT 2006 Olly Betts <olly@survex.com>
* matcher/biaspostlist.h: Don't need '#include "utils.h"'.
Tue Nov 07 01:15:14 GMT 2006 Olly Betts <olly@survex.com>
* common/c_strtod.cc: Remove file which was checked in but is unused!
Mon Nov 06 15:24:02 GMT 2006 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Disable serialiselength1 and serialisedoc1
when the remote backend is disabled.
Mon Nov 06 15:23:40 GMT 2006 Olly Betts <olly@survex.com>
* tests/Makefile.am: Fix typo in recent check-in.
Mon Nov 06 01:43:37 GMT 2006 Olly Betts <olly@survex.com>
* tests/Makefile.am: Need "harness" in "$(srcdir)" for VPATH builds to
work.
Sun Nov 05 19:55:26 GMT 2006 Olly Betts <olly@survex.com>
* backends/quartz/Makefile.am: Remove explicit dependency of
libbtreecheck.la on libxapian.la. We always link in libxapian.la
and the explicit dependency makes it hard to build things in a
sane order.
Sun Nov 05 19:29:17 GMT 2006 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Don't define on_SIGCHLD() unless we'll use it.
* tests/harness/backendmanager.cc: Use a proper signal handler for
SIGCHLD if we have waitpid() - POSIX leaves the semantics of
SIG_IGN on SIGCHLD unspecified.
Sun Nov 05 19:11:36 GMT 2006 Olly Betts <olly@survex.com>
* backends/quartz/Makefile.am,backends/quartz/btreecheck.cc,
backends/quartz/btreecheck.h,bin/Makefile.am,tests/Makefile.am,
tests/harness/: Use _exit(0) instead of exit(0) in the child
process which closes the pipe to xapian-tcpsrv in BackendManager
since we don't want to call atexit functions from the child. Move
btreecheck stuff into backends/quartz.
Sun Nov 05 17:12:05 GMT 2006 Olly Betts <olly@survex.com>
* Makefile.am,bin/Makefile.am,configure.ac,tests/Makefile.am,
tests/harness/Makefile.am,tests/harness/dir_contents,testsuite/:
Move the testsuite harness from "testsuite/" to "tests/harness/".
Sun Nov 05 16:36:56 GMT 2006 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc,testsuite/backendmanager.h: Now needs
<stdio.h>. Set SIG_IGN for SIG_CHLD so we don't get zombie child
processes.
Sun Nov 05 03:53:24 GMT 2006 Olly Betts <olly@survex.com>
* tests/apitest.cc: Make backendmanager static.
Sun Nov 05 03:51:36 GMT 2006 Olly Betts <olly@survex.com>
* bin/xapian-tcpsrv.cc: Output "Listening..." once the socket is
open and read for connections.
* testsuite/backendmanager.cc: Use popen() to run xapian-tcpsrv
and wait for "Listening..." before returning rather than just
sleeping for 1 second and hoping that's enough.
Sun Nov 05 02:54:23 GMT 2006 Olly Betts <olly@survex.com>
* tests/api_db.cc: Remove unnecessary inclusion of backendmanager.h.
Fri Nov 03 02:09:26 GMT 2006 Olly Betts <olly@survex.com>
* HACKING: Update debian packaging checklist.
Fri Nov 03 00:57:35 GMT 2006 Olly Betts <olly@survex.com>
* docs/Makefile.am: Building sourcedoc.pdf needs a larger pool_size
now.
Thu Nov 02 19:12:34 GMT 2006 Olly Betts <olly@survex.com>
* AUTHORS: Updated.
Thu Nov 02 15:41:46 GMT 2006 Olly Betts <olly@survex.com>
* HACKING,NEWS,configure.ac: Update for 0.9.8.
Thu Nov 02 15:20:05 GMT 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Update from tinderbox.
Thu Nov 02 11:53:53 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: GCC's -Wendif-labels is enabled by default on versions
which support it, which simplifies our tests.
Thu Nov 02 00:22:44 GMT 2006 Olly Betts <olly@survex.com>
* backends/remote/dir_contents: Update.
Wed Nov 01 15:33:12 GMT 2006 Olly Betts <olly@survex.com>
* common/omstringstream.h: Fix our implementation of om_ostringstream
to work with OmTime.
Wed Nov 01 03:27:36 GMT 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Don't
require a prefixed boolean term to start with an alphanumeric
- allow the same set of characters as we do for the second and
subsequent characters.
Sat Oct 28 04:12:13 BST 2006 Olly Betts <olly@survex.com>
* bin/quartzcheck.cc: Add catch for unknown exceptions.
Sat Oct 28 03:49:19 BST 2006 Olly Betts <olly@survex.com>
* HACKING,configure.ac,docs/Makefile.am,docs/doxygen_api_conf.in,
docs/doxygen_full_conf.in: Produce a PDF for apidoc rather than
PostScript, since the PDF is smaller, and easier to view for most
users. Use pdflatex to generate the PDF directly rather than
going via a DVI file. This also avoids problems on some Linux
distros where latex is a symlink to pdfelatex (bug#81, bug#95).
Thu Oct 26 22:12:20 BST 2006 Richard Boulton <richard@lemurconsulting.com>
* bin/quartzcheck.cc: Catch (and display) any exceptions which are
of type "const char *error". btreecheck.cc raises an exception
of this type if a btree error is found, and this avoids
quartzcheck dying quite so horribly in this case.
Wed Oct 25 23:30:26 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: -Wendif-labels is new in GCC 3.3.
* configure.ac: Revert accidental change which turned on -Werror in
non-maintainer builds.
* configure.ac: Avoid non-portable use of double quotes in
double-quoted backticks.
Wed Oct 25 01:19:24 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Redhat's GCC 2.96 doesn't support -Wundef even
though real GCC version before and after it do! Also, use
-Wshadow and -Wendif-labels even when not in maintainer mode.
Tue Oct 24 04:17:58 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc,bin/quartzcheck.cc: Eliminate
a couple of variables whose value is never used.
Tue Oct 24 00:31:25 BST 2006 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Only force a flush on
WritableDatabase::allterms_begin() if there are actually pending
changes.
Mon Oct 23 23:49:52 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Only force a flush on
WritableDatabase::allterms_begin() if there are actually pending
changes.
Mon Oct 23 02:24:12 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: When checking if we need -lm, don't use a constant
argument to log as the compiler might simply evaluate the whole
expression at compile time.
Sat Oct 21 20:42:52 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Mention automake 1.10 is out but we've not tested it yet.
Sat Oct 21 20:39:57 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Add entries to release checklist: make sure new API methods
are wrapped by the bindings, and that bug submitters are thanked.
Fri Oct 20 13:56:50 BST 2006 Richard Boulton <richard@lemurconsulting.com>
* backends/flint/flint_io.cc: Fix compilation on windows (needs to
#include "safewindows.h" to get definition of SSIZE_T).
Tue Oct 17 02:16:37 BST 2006 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc: Fix compilation when valgrind is
detected by configure.
Thu Oct 12 13:30:05 BST 2006 Olly Betts <olly@survex.com>
* xapian.spec.in: Package xapian-progsrv.
Thu Oct 12 00:49:47 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Note that on Debian, tetex-extra is needed for
fancyhdr.sty.
* HACKING: Note that dch can be used to update debian/changelog.
Wed Oct 11 23:35:08 BST 2006 Olly Betts <olly@survex.com>
* docs/Makefile.am: If running latex on refman.ps fails, cat
refman.log since that is likely to show what failed.
Tue Oct 10 17:24:00 BST 2006 Olly Betts <olly@survex.com>
* NEWS: Bump release date.
Sun Oct 08 21:41:04 BST 2006 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.ac: Update for 0.9.7.
Sun Oct 08 10:06:51 BST 2006 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Use lseek() to skip existing valgrind output
instead of repeated calls to read. Handle the old valgrind naming
convention for log files.
Sun Oct 08 09:35:59 BST 2006 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix a couple of typos in comments.
Sun Oct 08 05:36:36 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Disable probing and short-cut tests for a FORTRAN
compiler. We don't use one, but current libtool versions always
check for it regardless.
Sat Oct 07 21:19:35 BST 2006 Olly Betts <olly@survex.com>
* configure.ac,tests/runtest.in,testsuite/backendmanager.cc,
testsuite/testsuite.cc: Fix testsuite harness to show valgrind
output when a test fails (when running under valgrind in verbose
mode). This probably stopped working due to changes in valgrind 3.
* testsuite/backendmanager.cc: Run xapian-tcpsrv under valgrind if
apitest is.
Fri Oct 6 18:27:13 BST 2006 Richard Boulton <richard@lemurconsulting.com>
* tests/runtest.in: export $LIBTOOL, $VALGRIND and $VG_LOG_FD.
* testsuite/backendmanager.cc: If $LIBTOOL, $VALGRIND and
$VG_LOG_FD are set, run progsrv under valgrind. Fixes
Bug #94.
* net/remoteserver.cc: Use an AutoPtr to hold the unserialised
query, so it gets deleted if an exception is thrown.
* api/omqueryinternal.cc: Use AutoPtr in one place, and a try-catch
in another, to ensure that partially unserialised queries get
deleted if exceptions are thrown.
* tests/internaltest.cc: Add copyright notices to file for recent
change.
* AUTHORS: Add myself as a current developer, now that I've started
committing to the core again.
Fri Oct 06 17:44:21 BST 2006 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Fix memory leak in query unserialisation.
Fri Oct 6 17:34:59 BST 2006 Richard Boulton <richard@lemurconsulting.com>
* tests/runtest.in: Cache result of test for $VG_LOG_FD if we
find the new option. Saves 2 seconds for each invocation on my
machine, which is half the time when running just a single simple
test.
Fri Oct 6 16:35:46 BST 2006 Richard Boulton <richard@lemurconsulting.com>
* tests/internaltest.cc: Check serialisation and unserialisation of
Query objects. Currently fails under valgrind due to a memory
leak somewhere in the unserialisation code.
Thu Oct 05 14:13:55 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/error.h: Only enable the SWIG visibility hook when
using GCC 4 or later.
Wed Oct 04 20:32:43 BST 2006 Olly Betts <olly@survex.com>
* m4/xapian.m4: Remove overquoting.
Wed Oct 4 13:28:09 BST 2006 Richard Boulton <richard@lemurconsulting.com>
* common/utils.h: MSVC seems to #define open. However, the
workaround for this problem implemented for old versions of
solaris doesn't work for windows, so avoid applying the fix for
windows, and just #undef open. (Windows seems to define some
open() functions, as well as #defining open!)
Wed Oct 4 13:26:18 BST 2006 Richard Boulton <richard@lemurconsulting.com>
* net/serialise.cc: Use "unsigned char" instead of "char" when
serialising lengths, to avoid problems on platforms where char is
signed (eg, windows).
Wed Oct 04 12:25:51 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_version.cc: Remove "100" from start of file so
it actually compiles.
Mon Oct 02 13:57:56 BST 2006 Olly Betts <olly@survex.com>
* xapian-config.in: Fix typo - "@libdir" should be "@libdir@".
This would lead to -L/usr/lib not being pruned, which is really
just a cosmetic problem (the typo was introduced in 0.9.3).
Thu Sep 28 02:00:05 BST 2006 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Reserve the right number of entries in the
subrsets vector.
Fri Sep 22 07:48:32 BST 2006 Olly Betts <olly@survex.com>
* common/serialise-double.cc: Fix warning with aCC.
Fri Sep 22 04:43:06 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Expand note on _GLIBCXX_DEBUG; Now using autoconf 2.60 for
snapshots and releases; Now using a libtool patch which improves
support for -library=stlport4 with Sun's C++; Give URL to Alexandre
Duret-Lutz's autotools tutorial, which is much more up-to-date than
the "goat book".
Fri Sep 22 04:42:08 BST 2006 Olly Betts <olly@survex.com>
* common/serialise-double.cc: Fix a few compiler warnings.
Fri Sep 22 04:29:18 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc: Retry on EINTR from fcntl or waitpid.
Fri Sep 22 03:39:12 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: Only check _GLIBCXX_DEBUG for GCC 3.4
and later (which are the versions which support it).
Fri Sep 22 03:37:02 BST 2006 Olly Betts <olly@survex.com>
* bin/xapian-tcpsrv.cc: Report errno if we catch a Xapian::Error which
has it set.
Fri Sep 22 03:30:25 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Turn on -Wportability to help ensure our Makefile.am's
are written in a portable way.
Fri Sep 22 03:29:25 BST 2006 Olly Betts <olly@survex.com>
* tests/runtest.in: Turn on GLIBCXX_FORCE_NEW when running tests under
valgrind.
Tue Sep 19 06:28:47 BST 2006 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Check that the the destructor on a temporary
object gets called at the correct time (Sun C++ deliberately gets
this wrong by default).
Tue Sep 19 04:32:04 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Revert change to Xapian::Weight's copy
constructor because it prevents Omega from compiling.
Tue Sep 19 04:01:14 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Make the argument of log() a double to avoid
potential compiler warnings.
Mon Sep 18 22:58:19 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Xapian::Weight's copy constructor should
be private not protected (direct copying isn't allowed).
Mon Sep 18 07:03:51 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: We reportedly need "-lm" to get maths functions on
some versions of Sun's C++ compiler.
Sat Sep 16 12:08:25 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Sun's C++ compiler implements non-standards-conforming
lifetimes for temporary objects (for "backwards compatibility" with
old Sun C++ specific code). We don't care about such code, so
always pass "-features=tmplife" for Sun C++.
Sat Sep 16 03:04:57 BST 2006 Olly Betts <olly@survex.com>
* bin/xapian-progsrv.cc: Oops, fix compilation error.
Sat Sep 16 02:13:22 BST 2006 Olly Betts <olly@survex.com>
* bin/xapian-progsrv.cc: Fix messages send by xapian-progsrv if an
exception is thrown while opening the database.
Fri Sep 15 06:29:55 BST 2006 Olly Betts <olly@survex.com>
* tests/internaltest.cc: 1/DBL_MAX may be less than DBL_MIN but on
platforms like x86 which hold results in registers with extra
precision, this is still representable, but not reliably so
the test sometimes fails.
Fri Sep 15 02:40:52 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_btreebase.cc: Avoid copying beyond the end of
the bitmap block.
Thu Sep 14 02:01:58 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_version.cc: Fix warning from GCC 4.1.0.
Wed Sep 13 18:12:43 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_io.cc,backends/flint/flint_io.h,
backends/flint/flint_version.cc: Fix compiler warnings.
Wed Sep 13 06:09:40 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_version.cc,backends/flint/flint_version.h:
Actually commit the new files!
Wed Sep 13 05:21:04 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/,common/utils.h: Rewrite some of flint's low level IO
functions, and the "iamflint" handling class.
Tue Sep 12 20:22:57 BST 2006 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc: Fix to compile.
Tue Sep 12 18:56:16 BST 2006 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remote-database.h:
Fix bug in remote backend which incorrectly returned an empty MSet
under certain circumstances!
Tue Sep 12 11:51:31 BST 2006 Olly Betts <olly@survex.com>
* matcher/msetcmp.cc: "static inline" -> "inline" since the static is
superfluous and Sun's C++ warns.
Mon Sep 11 23:42:28 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Check $CXX not $CC to identify which C++ compiler we
have.
Mon Sep 11 16:32:37 BST 2006 Olly Betts <olly@survex.com>
* api/omenquire.cc,api/vectortermlist.h,
backends/flint/flint_positionlist.cc,configure.ac,
net/remoteconnection.cc,net/tcpclient.cc,
queryparser/queryparser.lemony,tests/api_anydb.cc,tests/api_db.cc,
tests/api_nodb.cc: I've discovered that -library=stlport4 puts
Sun's compiler into an "ANSI C++ compliant" mode, so do that
automatically in configure and throw away all the annoying special
bits of alternative code we'd accumulated just for this one
compiler.
Mon Sep 11 16:01:20 BST 2006 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Speed up deldoc4 when run in verbose mode
- some stringstream implementations are very inefficient when
the string grows long.
Mon Sep 11 05:30:29 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Add some advice regarding debugging using -D_GLIBCXX_DEBUG,
valgrind, and gdb.
Sun Sep 10 02:24:47 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Fix last check-in to actually work.
Sat Sep 09 04:19:44 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Ensure that if _GLIBCXX_DEBUG has been specified that
it also passed when generating version.h.
Sat Sep 09 04:01:40 BST 2006 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Give more useful output should the double
serialisation test fail.
Sat Sep 09 03:19:20 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: Add a check that _GLIBCXX_DEBUG is
set compatibly if we're compiling with GNU C++.
Sat Sep 09 02:55:38 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_modifiedpostlist.cc: Fix potential access to
iterator which has already reached its end.
Fri Sep 08 04:05:28 BST 2006 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/,matcher/bm25weight.cc,
matcher/tradweight.cc,net/,tests/internaltest.cc: Split the double
serialisation code off into its own file - it is used by BM25Weight
and TradWeight, so it needs to be compiled in even when the remote
backend is disabled.
Thu Sep 07 00:09:41 BST 2006 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc: Discard stderr from xapian-tcpsrv
so we don't get "write error" messages appearing in the testsuite
output when we've just closed the connection at the client side.
Tue Sep 05 21:07:40 BST 2006 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Fix warning when remote backend
is disabled.
Tue Sep 05 20:58:52 BST 2006 Olly Betts <olly@survex.com>
* docs/Makefile.am: Add extra dependencies so that parallel make
doesn't try to run latex twice simultaneously.
Tue Sep 05 20:58:13 BST 2006 Olly Betts <olly@survex.com>
* AUTHORS: Updated.
Tue Sep 05 20:56:50 BST 2006 Olly Betts <olly@survex.com>
* Makefile.am: Fix typo.
Tue Sep 05 03:23:14 BST 2006 Olly Betts <olly@survex.com>
* docs/queryparser.html,queryparser/queryparser.lemony,
tests/queryparsertest.cc: Implement "ADJ" operator - like
"NEAR" except the terms must appear in matching documents in the
same order as in the query.
Tue Sep 05 03:19:12 BST 2006 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
matcher/bm25weight.cc,matcher/tradweight.cc,net/remoteserver.cc,
net/serialise.cc,tests/internaltest.cc: Change how doubles are
serialised by TradWeight, BM25Weight, and in the remote backend
protocol. The new encoding allows us to transfer any double
value which can be represented by both machines precisely and
compactly.
Tue Sep 05 02:27:36 BST 2006 Olly Betts <olly@survex.com>
* docs/queryparser.html,queryparser/queryparser.lemony,
tests/queryparsertest.cc: Allow a distance to be specified
for NEAR - e.g. "cats NEAR/3 dogs" (bug#92).
Fri Sep 01 00:29:10 BST 2006 Olly Betts <olly@survex.com>
* backends/remote/remote-database.cc,common/remote-database.h:
Fix RemoteDatabase::reopen() to not be const so it actually
overrides the virtual method it is supposed to.
Thu Aug 31 21:40:53 BST 2006 Olly Betts <olly@survex.com>
* testsuite/backendmanager.h: Remove unneeded BackendManager::
qualifications.
Thu Aug 31 17:08:16 BST 2006 Olly Betts <olly@survex.com>
* matcher/msetpostlist.cc,matcher/msetpostlist.h: Move #include
"omenquireinternal.h" into the header to fix compilation error
with older versions of GCC.
Thu Aug 31 16:38:33 BST 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Added success report for Nexenta (alpha 5).
Wed Aug 30 23:41:08 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Fix generation of version.h to work with Solaris sed.
Sat Aug 26 15:28:22 BST 2006 Olly Betts <olly@survex.com>
* docs/index.html: Add links to the wiki.
Sun Jul 16 03:48:26 BST 2006 Olly Betts <olly@survex.com>
* common/Makefile.am: Ship remoteprotocol.h.
Sun Jul 16 02:23:54 BST 2006 Olly Betts <olly@survex.com>
* common/remote-database.h: Add new file I missed in the previous
commit.
Sun Jul 16 01:58:25 BST 2006 Olly Betts <olly@survex.com>
* Makefile.am,api/,backends/Makefile.am,backends/database.cc,
backends/dbfactory_remote.cc,backends/flint/flint_database.cc,
backends/flint/flint_termlist.cc,backends/flint/flint_termlist.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
backends/net/,backends/quartz/quartz_termlist.cc,
backends/quartz/quartz_termlist.h,backends/remote/,bin/Makefile.am,
bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc,common/,configure.ac,
docs/remote_protocol.html,include/xapian/,matcher/,net/,tests/,
testsuite/backendmanager.cc,testsuite/backendmanager.h: Rewrite
most of the remote backend. It now supports most operations
which a local database does (including writing!), the protocol
used is more compact, and a number of layers of classes have
been eliminated and the sequences of method calls simplified, so the
code should be easier to understand and maintain despite doing more.
A number of bugs have been fixed in the process.
Sat Jul 15 05:10:38 BST 2006 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Doesn't need <iostream>.
Sat Jul 15 01:06:27 BST 2006 Olly Betts <olly@survex.com>
* README: Add link to the wiki. Tweak wording.
Fri Jul 14 15:21:39 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Note in error message that dot is in graphviz.
Fri Jul 14 15:17:36 BST 2006 Olly Betts <olly@survex.com>
* docs/overview.html: Add discussion of uses of terms vs values.
Fri Jul 14 15:01:04 BST 2006 Olly Betts <olly@survex.com>
* docs/overview.html: Rewrite the section on Xapian::Document to
remove some very out-of-date information and make it clearer.
Tue Jul 11 18:41:07 BST 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix problem I believe was introduced
by previous fix.
* tests/queryparsertest.cc: Add regression test and some additional
related test cases.
Tue Jul 11 03:32:48 BST 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix bug in how we handle prefixed
quoted phrases and prefixed brackets.
* tests/queryparsertest.cc: Add regression tests.
Mon Jul 10 23:17:58 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/database.h: Note that automatically allocated
document IDs don't reuse IDs from deleted document.
Wed Jul 05 01:06:35 BST 2006 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Tweak whitespace.
Mon Jun 26 23:56:02 BST 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Added success reports for MSVC and sparc linux.
Sat Jun 17 02:01:35 BST 2006 Olly Betts <olly@survex.com>
* Makefile.am,tests/Makefile.am: Tweak new check-* rules to be more
portable and robust.
Sun Jun 11 23:29:48 BST 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix parsing
of loved and hated prefixed phrases and bracketted expressions. Fix
handling of stopwords in boolean expressions. Don't ignore a
stopword if it's the only query term. Add regression tests for all
these cases.
Fri Jun 09 15:21:07 BST 2006 Olly Betts <olly@survex.com>
* docs/queryparser.html: Add pointer to set_database when describing
FLAG_WILDCARD.
Fri Jun 09 13:51:03 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Add note that FLAG_WILDCARD requires
you to call set_database.
Fri Jun 09 13:49:34 BST 2006 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Don't compile query serialisation if the
remote backend is disabled.
Fri Jun 09 01:48:25 BST 2006 Olly Betts <olly@survex.com>
* api/omdocument.cc,tests/api_nodb.cc: add_value failed to replace an
existing value with the same number, contrary to what the
documentation says (bug #82).
Thu Jun 08 21:36:54 BST 2006 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Don't fetch the document data when fetching
the value to sort on. Simple benchmarking showed this to speed
up sort by value by a factor of between 3 and 9!
Sun Jun 04 17:36:01 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/: Remove forced flush when iterating the posting list
of a term which has modified posting pending.
Sat Jun 03 21:38:43 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_termlist.cc,
backends/quartz/quartz_database.cc,tests/api_wrdb.cc: We can't flush
during a transaction, which means that we can't use flush to avoid
having to handle corner cases (like deleting a document right after
adding it before it's been flushed) so handle corner cases properly
(except for postlist_begin() and allterms_begin() which are
harder - these now throw UnimplementedError at least...)
* backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
replace_document(did, doc) was double-incrementing the "changes"
counter when document did didn't exist - fixed.
Sat Jun 03 17:53:41 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Document "make check-flint" and "make check-quartz".
Sat Jun 03 17:49:25 BST 2006 Olly Betts <olly@survex.com>
* Makefile.am,tests/Makefile.am: Added make targets "check-flint" and
"check-quartz" which run the subset of tests which test the flint
and quartz backends respectively.
Sat Jun 03 04:03:00 BST 2006 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/database.cc,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,backends/quartz/dir_contents,
backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
common/database.h,include/xapian/database.h,tests/apitest.cc:
Rework transactions to support "unflushed" transactions, and so
they work with quartz as well as with flint.
Sat Jun 03 03:18:22 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Document "make check-remote".
Sat Jun 03 00:23:46 BST 2006 Olly Betts <olly@survex.com>
* backends/database.cc,backends/flint/dir_contents,
backends/flint/flint_database.cc,backends/flint/flint_database.h,
backends/quartz/dir_contents,common/database.h,
include/xapian/database.h,tests/: Implement transactions for
flint.
Sat Jun 03 00:14:37 BST 2006 Olly Betts <olly@survex.com>
* tests/apitest.cc: Run tests on flint if flint is enabled, rather
than if quartz is enabled.
Sun May 28 23:01:45 BST 2006 Olly Betts <olly@survex.com>
* common/omtime.h: Add operator+ and operator+= with argument of
type Xapian::timeout.
Sun May 28 22:02:30 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/errorhandler.h: Fix typos in private assignment
operator and copy ctor (Error -> ErrorHandler!)
Sun May 28 21:54:05 BST 2006 Olly Betts <olly@survex.com>
* Makefile.am,tests/Makefile.am: Add "check-remote" target which runs
the subset of tests which test the remote backend.
Thu May 25 16:06:06 BST 2006 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/database.cc,common/database.h:
Merge Xapian::Internal::open_database() into the Xapian::Database
ctor which calls it; merge Xapian::Internal::open_writable_database()
into the Xapian::WritableDatabase ctor which calls it.
Wed May 24 08:28:40 BST 2006 Olly Betts <olly@survex.com>
* net/socketserver.cc: OmLineBuf -> OmSocketLineBuf.
Wed May 24 08:27:22 BST 2006 Olly Betts <olly@survex.com>
* common/socketserver.h: OmLineBuf -> OmSocketLineBuf.
Wed May 24 07:50:51 BST 2006 Olly Betts <olly@survex.com>
* common/Makefile.am,common/omlinebuf.h,common/socketcommon.h,
net/Makefile.am,net/omlinebuf.cc,net/socketcommon.cc:
Merge OmLineBuf into OmSocketLineBuf.
* common/Makefile.am: Fix netutils.cc to be conditionally included
when the remote backend is enabled, not the quartz backend!
Tue May 23 18:59:09 BST 2006 Olly Betts <olly@survex.com>
* api/Makefile.am,api/errorhandler.cc,api/omerror.cc,
include/xapian/error.h,include/xapian/errorhandler.h:
Redo the Xapian::Error and Xapian::ErrorHandler classes.
The new versions have better, clearer documentation comments
and are cleaner internally.
* include/xapian/error.h: Add hook to allow SWIG bindings to
be built using GCC's visibility support.
Tue May 23 10:08:02 BST 2006 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Remove superfluous '#include <autoptr.h>'.
Tue May 23 09:42:52 BST 2006 Olly Betts <olly@survex.com>
* backends/Makefile.am,backends/database.cc,
backends/dbfactory_remote.cc,backends/net/net_database.cc,
backends/net/net_termlist.cc,backends/net/net_termlist.h,common/,
include/xapian/dbfactory.h,matcher/,net/socketclient.cc,
net/socketcommon.cc: Eliminate the NetClient class by merging
it into NetDatabase.
Mon May 22 08:51:16 BST 2006 Olly Betts <olly@survex.com>
* common/omtime.h: Fix OmTime::operator> which failed to return false
if the seconds were strictly less but the microsecond fraction was
more.
Sun May 21 11:53:29 BST 2006 Olly Betts <olly@survex.com>
* Makefile.am,bin/Makefile.am,docs/Makefile.am,examples/Makefile.am:
Make use of the dist_ prefix to avoid having to list files in
EXTRA_DIST as well as in *_DATA and man_MANS.
Sun May 21 05:55:00 BST 2006 Olly Betts <olly@survex.com>
* api/dir_contents,getopt/dir_contents,queryparser/dir_contents:
Add missing dir_contents files.
Sun May 21 05:45:44 BST 2006 Olly Betts <olly@survex.com>
* tests/remotetest.cc: Remove unnecessary "#include <sys/wait.h>".
Sat May 20 11:02:43 BST 2006 Olly Betts <olly@survex.com>
* docs/Makefile.am: doxygen_api_conf and doxygen_full_conf are
generated, so aren't in srcdir!
Sat May 20 10:14:52 BST 2006 Olly Betts <olly@survex.com>
* docs/Makefile.am: automake adds suitable rules for rebuilding
doxygen_api_conf and doxygen_source_conf, so remove our less
accurate versions.
Fri May 19 14:43:47 BST 2006 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/doxygen_api_conf.in,docs/doxygen_full_conf.in:
Remove "XAPIAN_DEPRECATED" from generated documentation.
* docs/Makefile.am: Fix dependencies for regenerating the doxygen
documentation.
Fri May 19 08:12:51 BST 2006 Olly Betts <olly@survex.com>
* docs/scalability.html: quartzcompact and xapian-compact now allow
you to set the blocksize, so there's no need to use copydatabase
if you want to migrate a database to a larger blocksize. Mention
gmane. Other minor tweaks.
Fri May 19 07:52:23 BST 2006 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Add --blocksize option to allow the blocksize
to be set (default is 8K as before.)
Fri May 19 07:47:13 BST 2006 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Add --blocksize option to allow the blocksize
to be set (default is 8K as before.)
Thu May 18 11:24:17 BST 2006 Olly Betts <olly@survex.com>
* api/vectortermlist.h: Whitespace tweak.
Tue May 16 10:09:53 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Update details of the debian stable backport version
numbering scheme.
Tue May 16 06:55:14 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Remove unused variable from snprintf testing code.
Tue May 16 04:32:34 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Expand on the debian package building checklist.
Tue May 16 04:32:07 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Note that "set_sort_by_relevance" is the
default setting.
Mon May 15 06:59:01 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Update debian package building checklist.
Mon May 15 03:53:53 BST 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Update one more result before the actual release.
Mon May 15 02:15:18 BST 2006 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Updated for 0.9.6.
Mon May 15 01:35:33 BST 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Updated in preparation for the next release.
Sun May 14 19:05:37 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.h: Added workaround for newlib header bug.
Sat May 13 07:04:14 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Fix snprintf tests.
Sat May 13 04:52:53 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Tweak version.h generation to cope with CXXCPP putting
carriage returns into its output as can happen on cygwin.
Fri May 12 21:49:33 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Update with the libtool patches we're now using.
Fri May 12 21:43:02 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: Trim trailing whitespace.
Fri May 12 20:43:47 BST 2006 Olly Betts <olly@survex.com>
* configure.ac,include/xapian/version_h.cc: Replace @@ with " instead
of @, so we can write @deprecated. Fix more compilation problems.
Fri May 12 19:00:08 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/version_h.cc: Fix compilation problem.
Fri May 12 01:19:14 BST 2006 Olly Betts <olly@survex.com>
* api/version.cc,include/xapian/version_h.cc: Rename
Xapian::xapian_version_string() and companions to
Xapian::version_string(). Keep the old functions as aliases
which are marked as deprecated.
Wed May 10 18:25:59 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Remove bogus documentation for a
parameter which doesn't exist.
Tue May 09 19:17:23 BST 2006 Olly Betts <olly@survex.com>
* bin/Makefile.am: Remove trailing whitespace.
* bin/xapian-compact.cc: Fix renaming of "iamflint.tmp" for MS Windows
where you can't rename an open file.
Tue May 09 15:57:26 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Fix reversed conditional in test for snprintf (which
affects cygwin).
Mon May 01 21:49:46 BST 2006 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add another prefix testcase to improve
coverage.
Sat Apr 29 20:16:46 BST 2006 Olly Betts <olly@survex.com>
* docs/remote_protocol.html: Document keep-alive messages.
Thu Apr 13 14:49:48 BST 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Add rules
to handle a boolean filter with a "+" in front (such as
+site:xapian.org).
Wed Apr 12 18:42:31 BST 2006 Olly Betts <olly@survex.com>
* PLATFORMS: More updates for 0.9.5.
Tue Apr 11 19:56:16 BST 2006 Olly Betts <olly@survex.com>
* matcher/Makefile.am: Need to add "-I${top_builddir}/include" to
INCLUDES so that xapian/version.h is found.
Tue Apr 11 19:24:59 BST 2006 Olly Betts <olly@survex.com>
* backends/database.cc,configure.ac,include/xapian/version_h.cc,
matcher/multimatch.cc,matcher/stats.cc,tests/apitest.cc,
testsuite/backendmanager.cc,testsuite/backendmanager.h:
Eliminate XAPIAN_BUILD_BACKEND_* from config.h and just use
XAPIAN_HAS_*_BACKEND from xapian/version.h instead.
Tue Apr 11 18:32:52 BST 2006 Olly Betts <olly@survex.com>
* include/Makefile.am: Add xapian/version.h.timestamp as a dependency
on all-local so that xapian/version.h actually gets regenerated
when required.
Tue Apr 11 17:52:24 BST 2006 Olly Betts <olly@survex.com>
* api/omenquire.cc,backends/flint/flint_btreebase.cc,
backends/quartz/btree_base.cc,common/utils.h,configure.ac:
Disable MSVC warning 4800 (on int to bool conversions) in config.h
and then we can remove the "fixes" elsewhere.
Tue Apr 11 16:28:01 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: Simpler check for VALGRIND being set to empty value.
Tue Apr 11 01:04:32 BST 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Add a summary.
Tue Apr 11 00:45:55 BST 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Updates from boxes which were down when I did the
release.
Mon Apr 10 17:06:46 BST 2006 Olly Betts <olly@survex.com>
* api/omenquire.cc,backends/flint/flint_btreebase.cc,
backends/flint/flint_utils.h,backends/quartz/btree_base.cc,
backends/quartz/quartz_utils.h,common/omassert.h:
Fix more MSVC7 warnings (I spoke too soon).
Mon Apr 10 15:56:52 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/query.h: Another MSVC7 warning fix. Should be free
of warnings now.
Mon Apr 10 14:46:34 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_utils.h,
backends/quartz/quartz_utils.h,bin/quartzcompact.cc,
bin/xapian-compact.cc,common/omdebug.h,common/utils.h,
include/xapian/query.h,languages/header.h,matcher/multimatch.cc:
Fix assorted MSVC7 warnings.
Sun Apr 09 04:56:09 BST 2006 Olly Betts <olly@survex.com>
* HACKING: Expand on details of what's required when changing Xapian
(discuss documentation requirements, expand on why feature tests
are vital).
* HACKING: Update section on building debian packages.
Sat Apr 08 20:02:19 BST 2006 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.ac: Updated for 0.9.5.
Fri Apr 07 23:53:08 BST 2006 Olly Betts <olly@survex.com>
* tests/api_anydb.cc,tests/api_db.cc,tests/btreetest.cc: Correct
spelling of "existant" to "existent".
Fri Apr 07 19:13:24 BST 2006 Olly Betts <olly@survex.com>
* configure.ac: We don't use strcasecmp, so don't probe for it.
Fri Apr 07 18:30:40 BST 2006 Olly Betts <olly@survex.com>
* common/utils.h: Fixes for MSVC7 compilation.
Fri Apr 07 17:19:43 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc,backends/quartz/btree.cc: Fixes for
MSVC compilation.
Fri Apr 07 16:04:08 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_cursor.h: Fix incorrect example code in
documentation comment.
* backends/flint/flint_table.cc,backends/flint/flint_table.h:
Remove unused method FlintTable::find_key().
Fri Apr 07 16:02:40 BST 2006 Olly Betts <olly@survex.com>
* AUTHORS: Updated.
Fri Apr 07 15:58:31 BST 2006 Olly Betts <olly@survex.com>
* debian/control.in: copydatabase and xapian-compact are packaged
in xapian-tools, so add them to the documented list of tools
included.
Fri Apr 07 15:12:43 BST 2006 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Set xapian-tcpsrv to allow 5 connections in the
listen queue instead of just one.
Fri Apr 07 13:28:15 BST 2006 Olly Betts <olly@survex.com>
* tests/remotetest.cc: Check mset size in tcpmatch1.
Fri Apr 07 01:26:03 BST 2006 Olly Betts <olly@survex.com>
* xapian.spec.in: Man pages may be gzipped.
Thu Apr 06 14:41:29 BST 2006 Olly Betts <olly@survex.com>
* HACKING: aclocal is part of automake, not autoconf.
Thu Apr 06 01:29:21 BST 2006 Olly Betts <olly@survex.com>
* bin/,examples/copydatabase.cc,examples/delve.cc,examples/quest.cc:
In the "--help" output, add "Options:" before the list of options.
Thu Apr 06 01:11:31 BST 2006 Olly Betts <olly@survex.com>
* xapian-config.in: Tweak to improve help2man output.
Wed Apr 05 16:26:15 BST 2006 Fabrice Colin
* xapian.spec.in: Package man pages.
Wed Apr 05 16:23:49 BST 2006 Olly Betts <olly@survex.com>
* Makefile.am,bin/Makefile.am,examples/Makefile.am: Include generated
man pages in the distribution tarball.
Wed Apr 05 02:48:27 BST 2006 Olly Betts <olly@survex.com>
* debian/TODO: Updated.
Wed Apr 05 02:44:15 BST 2006 Olly Betts <olly@survex.com>
* ./,examples: svn:ignore man pages.
Wed Apr 05 02:43:08 BST 2006 Olly Betts <olly@survex.com>
* bin/Makefile.am,examples/Makefile.am: No need to make man pages
depend on config.h, since the binaries will already.
Wed Apr 05 02:42:42 BST 2006 Olly Betts <olly@survex.com>
* Makefile.am: Generate man page for xapian-config.
Wed Apr 05 00:59:53 BST 2006 Olly Betts <olly@survex.com>
* examples/Makefile.am: Use help2man to generate manpages for the
installed binaries in examples.
Wed Apr 05 00:56:11 BST 2006 Olly Betts <olly@survex.com>
* bin/omtcpsrv.cc: Rename to bin/xapian-tcpsrv.cc.
* bin/omprogsrv.cc: Rename to bin/xapian-progsrv.cc.
* HACKING,bin/Makefile.am,configure.ac: Use help2man to generate
manpages for the installed binaries in bin.
Tue Apr 04 16:44:54 BST 2006 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Note example of BM25Weight parameters
which make set_sort_by_relevance_then_value useful.
Tue Apr 04 16:35:58 BST 2006 Olly Betts <olly@survex.com>
* api/omenquire.cc,include/xapian/enquire.h,matcher/,tests/api_db.cc:
Implement Enquire::set_sort_by_relevance_then_value().
Tue Apr 04 01:05:41 BST 2006 Olly Betts <olly@survex.com>
* common/omenquireinternal.h: sort_key no longer needs to be mutable
now that MSetSortCmp has been removed.
Mon Apr 03 02:03:12 BST 2006 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Removed dead code (class MSetSortCmp).
Sun Apr 02 16:37:38 BST 2006 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Don't perform a name lookup on the IP address
which an incoming connection is from as that could easily slow
down the search response - instead just print the IP address itself
if output is verbose.
Sun Apr 02 13:28:31 BST 2006 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/,docs/remote_protocol.html,
matcher/multimatch.cc,matcher/networkmatch.cc,matcher/networkmatch.h,
net/socketclient.cc,net/socketserver.cc: Change bool
sort_by_relevance to enum sort_by in preparation for adding
"sort_by_relevance_then_value".
Fri Mar 31 22:32:16 BST 2006 Olly Betts <olly@survex.com>
* examples/copydatabase.cc,examples/quest.cc: Add --help and --version
options.
* examples/delve.cc: Tidy up output from --help and --version options.
Fri Mar 31 19:01:25 BST 2006 Olly Betts <olly@survex.com>
* bin/quartzcheck.cc: Fix SEGV when run with no arguments (introduced
by last change).
Fri Mar 31 17:57:27 BST 2006 Olly Betts <olly@survex.com>
* bin/quartzcheck.cc: Add --version option. Tidy up output from
--help.
Fri Mar 31 17:43:25 BST 2006 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Include --help and --version in --help output.
* bin/quartzdump.cc: Add --help and --version options. Terminate list
of long options so that "quartzdump --foo" no longer segfaults.
Fri Mar 31 17:27:09 BST 2006 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Tweak --help and --version output for
consistency with other binaries. Terminate list of long options so
that "quartzcompact --foo" no longer segfaults.
Fri Mar 31 16:47:02 BST 2006 Olly Betts <olly@survex.com>
* bin/omtcpsrv.cc: Make OPT_HELP and OPT_VERSION positive numbers.
Only give synopsis line for --help, not for syntax error.
* bin/xapian-compact.cc: List --help and --version in --help output.
Terminate list of long options so that "xapian-compact --foo" no
longer segfaults.
Fri Mar 31 16:20:24 BST 2006 Olly Betts <olly@survex.com>
* bin/omtcpsrv.cc: Added --help and --version options.
Thu Mar 30 11:51:21 BST 2006 Philip Neustrom
* docs/remote_protocol.html: Document messages for requesting and
sending a termlist and a document.
Wed Mar 29 19:39:05 BST 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_termlist.cc,backends/quartz/quartz_termlist.cc:
Add missing spaces in debug output.
Fri Mar 17 09:22:54 GMT 2006 Olly Betts <olly@survex.com>
* api/vectortermlist.h,backends/net/net_termlist.cc,
backends/net/net_termlist.h,common/alltermslist.h,common/termlist.h,
matcher/branchtermlist.h: Make TermList::positionlist_begin() pure
virtual and put dummy implementations in BranchTermList and other
subclasses which can't (or don't) implement it. This makes it
hard to accidentally fail to implement it in a backend's TermList
subclass.
* backends/net/net_termlist.h: positionlist_begin() now throws
UnimplementedError instead of InvalidOperationError.
Fri Mar 17 08:46:52 GMT 2006 Olly Betts <olly@survex.com>
* api/omdatabase.cc: There's no need for the MultiTermList wrapper in
the common case where we're only dealing with a single database.
Fri Mar 17 07:54:54 GMT 2006 Olly Betts <olly@survex.com>
* backends/net/net_termlist.h: Remove unused "positions" member.
Fri Mar 17 07:07:57 GMT 2006 Olly Betts <olly@survex.com>
* backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
tests/api_posdb.cc: Fix TermIterator::positionlist_begin() to work
on TermIterator from Database::termlist_begin().
Fri Mar 17 03:47:04 GMT 2006 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Fix "unused parameter" warning from
previous change.
Thu Mar 16 05:20:16 GMT 2006 Olly Betts <olly@survex.com>
* api/omenquire.cc,include/xapian/enquire.h: Move
Enquire::get_matching_terms_end() inline in header.
Thu Mar 16 04:28:20 GMT 2006 Olly Betts <olly@survex.com>
* api/omdocument.cc,configure.ac,include/xapian/document.h: Move
Document::termlist_end() inline in header.
Fri Mar 10 04:55:57 GMT 2006 Olly Betts <olly@survex.com>
* INSTALL: Improve wording.
Fri Mar 10 04:49:09 GMT 2006 Olly Betts <olly@survex.com>
* backends/quartz/bcursor.h: Fix incorrect method name in
documentation comment.
Fri Mar 10 04:39:45 GMT 2006 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Btree::find_key()
is unused so remove it.
Fri Mar 10 04:29:46 GMT 2006 Olly Betts <olly@survex.com>
* HACKING: Note that we now use a lightly patched version of libtool
1.5.22.
Fri Mar 10 02:55:48 GMT 2006 Olly Betts <olly@survex.com>
* docs/overview.html: Bring up to date.
Wed Mar 08 02:32:49 GMT 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix FLAG_BOOLEAN_ANY_CASE to really
allow any case combination - previously it only allowed all
uppercase or all lowercase.
* tests/queryparsertest.cc: Add feature and regression tests for
FLAG_BOOLEAN_ANY_CASE.
* tests/queryparsertest.cc: Rename test cases to more descriptive
names.
Tue Mar 07 19:59:54 GMT 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc:
Fix QueryParser's handling of terms with trailing "#", "+",
or "-" when set_database has been called and the term doesn't
exist in the database with the suffix.
Tue Feb 21 21:14:22 GMT 2006 Olly Betts <olly@survex.com>
* include/xapian/deprecated.h: Allow xapian-bindings to override
deprecation warnings.
Tue Feb 21 17:55:17 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc: Note that "flicklock" should be
"flintlock"!
Tue Feb 21 14:13:08 GMT 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Updated.
Tue Feb 21 14:12:47 GMT 2006 Olly Betts <olly@survex.com>
* HACKING: Update the "how to do a release" list.
Tue Feb 21 00:17:40 GMT 2006 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.ac: Updated for 0.9.4.
Mon Feb 20 21:15:46 GMT 2006 Olly Betts <olly@survex.com>
* api/omdocument.cc,api/omenquire.cc,api/omquery.cc,include/xapian/,
queryparser/queryparser.cc: GCC 3.2 actually doesn't like
__attribute__((deprecated)) on method definitions, so just
put declarations of deprecated methods in the headers, and
move definitions into the library.
Mon Feb 20 16:04:33 GMT 2006 Olly Betts <olly@survex.com>
* tests/api_anydb.cc,tests/api_db.cc,tests/api_nodb.cc: Update uses
of deprecated methods and functions.
Mon Feb 20 15:47:31 GMT 2006 Olly Betts <olly@survex.com>
* include/xapian/document.h: __attribute__((deprecated)) doesn't
work on method definitions with default parameters on GCC 3.2
so fix header to overload instead.
Mon Feb 20 13:44:14 GMT 2006 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Add documentation comment for
Enquire::set_sort_by_value_then_relevance().
Sun Feb 19 23:18:09 GMT 2006 Olly Betts <olly@survex.com>
* include/Makefile.am,include/xapian/: Flag deprecated methods such
that the compiler gives a warning, for compilers which support
such a feature.
Sun Feb 19 22:58:55 GMT 2006 Olly Betts <olly@survex.com>
* COPYING: Update second occurrence of old FSF address.
Sun Feb 19 22:46:49 GMT 2006 Olly Betts <olly@survex.com>
* README: Add pointer to HACKING. Change "CVS access" to "SVN
access".
Sun Feb 19 01:46:00 GMT 2006 Olly Betts <olly@survex.com>
* api/version.cc: Correct typo in name of function xapian_revision().
Thu Feb 16 10:23:59 GMT 2006 Olly Betts <olly@survex.com>
* xapian-config.in: Oops, fix previous fix (I'd pasted the substituted
result from testing the patch...)
Thu Feb 16 10:16:31 GMT 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Updated from tinderbox.
Thu Feb 16 10:15:51 GMT 2006 Olly Betts <olly@survex.com>
* xapian-config.in: Need to set exec_prefix and prefix at top of
script as they're used by various @SUBSTITUTIONS@.
Thu Feb 16 00:09:34 GMT 2006 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.ac: Updated for 0.9.3.
Wed Feb 15 21:58:23 GMT 2006 Olly Betts <olly@survex.com>
* xapian-config.in: Fix option loop to work on shells other than bash.
Wed Feb 15 21:38:38 GMT 2006 Olly Betts <olly@survex.com>
* include/xapian/database.h: Tweak wording of a documentation comment.
Wed Feb 15 21:34:55 GMT 2006 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Fix documentation comments for the
values of QueryParser::feature_flag so doxygen actually pulls out
the documentation for them. Add documentation for the parameters
of QueryParser::parse_query().
Wed Feb 15 21:26:48 GMT 2006 Olly Betts <olly@survex.com>
* bin/quartzcheck.cc: If the database is too broken to open, emit a
warning message and bump the error count.
Wed Feb 15 21:23:38 GMT 2006 Olly Betts <olly@survex.com>
* docs/queryparser.html: Document right-truncation.
Wed Feb 15 21:08:37 GMT 2006 Olly Betts <olly@survex.com>
* xapian-config.in: Fixed to output usage correctly if no arguments
are specified.
Mon Feb 13 17:43:08 GMT 2006 Olly Betts <olly@survex.com>
* xapian-config.in: Expand dependency_libs recursively. It's not
*that* hard, and we're just storing up problems for the future
by ignoring the issue.
Mon Feb 13 16:57:36 GMT 2006 Olly Betts <olly@survex.com>
* HACKING: Devlopers also need makeindex installed for documentation
building. Note that dvips and makeindex are usually packaged with
TeX.
Mon Feb 13 15:16:02 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac,xapian-config.in: Some Linux distros have an
unhelpful policy of not packaging .la files, and on Linux
link_all_deplibs_CXX=no so we don't actually need to link
in the dependency_libs. So use the value of link_all_deplibs_CXX
from configure to control whether we link against dependency_libs.
* xapian-config.in: Factor out common code into shell functions,
and tidy up --help output.
* xapian-config.in: Re entry "Tue May 11 20:55:56 BST 2004": the (C)
dates I mined from CVS included a BrightStation (C), but the few
fragments of that version which survive are actually from
glib-config (or one of the myriad of *-config scripts which look
very like it), and are just standard Bourne shell idioms anyway.
Mon Feb 13 13:59:02 GMT 2006 Olly Betts <olly@survex.com>
* PLATFORMS: td174 is gone.
* PLATFORMS: Compaq C++ 7.1 seems to have better template support
(but fails to link binaries).
Mon Feb 13 12:22:23 GMT 2006 Olly Betts <olly@survex.com>
* HACKING,testsuite/testsuite.cc: XAPIAN_TESTSUITE_PLAIN_OUTPUT
-> XAPIAN_TESTSUITE_OUTPUT=plain.
Sun Feb 12 18:29:55 GMT 2006 Olly Betts <olly@survex.com>
* backends/database.cc,tests/api_nodb.cc: Trying to open a database
for reading which doesn't exist now fails with DatabaseOpeningError
instead of FeatureUnavailableError. Added regression test
nosuchdb1.
Thu Feb 09 10:48:10 GMT 2006 Olly Betts <olly@survex.com>
* net/socketserver.cc: Add missing '#include <iostream>'
when TIMING_PATCH is defined.
Wed Feb 08 08:22:09 GMT 2006 Olly Betts <olly@survex.com>
* HACKING: Now use libtool 1.5.22 for generating snapshots and
releases (includes a number of bug-fixes).
* HACKING,docs/doxygen_api_header.html_tmpl,
docs/doxygen_full_header.html_tmpl: Now use doxygen 1.4.6 for
generating snapshots and releases (nicer output).
* docs/doxygen_full_header.html_tmpl: Title "Internal Source
Documentation" rather than "Full source documentation".
Sun Feb 05 06:19:29 GMT 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: The
QueryParser now recognises "AND NOT" as a synonym for "NOT".
Mon Jan 16 18:19:26 GMT 2006 Olly Betts <olly@survex.com>
* backends/quartz/quartz_utils.h: Fix compiler warning.
Mon Jan 16 18:17:27 GMT 2006 Olly Betts <olly@survex.com>
* HACKING,backends/flint/,backends/muscat36/,backends/quartz/,
bin/quartzcompact.cc,bin/xapian-compact.cc,common/Makefile.am,
common/safeerrno.h,net/,tests/btreetest.cc,tests/quartztest.cc,
testsuite/backendmanager.cc,testsuite/testsuite.cc: Sorted out
a cleaner workaround for Compaq C++'s <errno.h> oddity.
Mon Jan 16 17:18:56 GMT 2006 Olly Betts <olly@survex.com>
* common/safewindows.h: Fix typo in file description.
Mon Jan 16 13:29:48 GMT 2006 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Reverse order of errno includes
which seems to make Compaq's C++ compiler happier.
Sun Jan 15 23:52:01 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_database.cc,backends/flint/flint_table.cc,
backends/quartz/btree.cc,backends/quartz/quartz_database.cc,
backends/quartz/quartz_log.cc,configure.ac,net/socketcommon.cc,
net/tcpclient.cc,testsuite/backendmanager.cc: Compaq C++ requires
sys/errno.h to get ENOENT and most other EXXX codes defined.
Sun Jan 15 23:41:15 GMT 2006 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Initialise 2 variables to avoid compiler
warnings.
Sun Jan 15 23:38:11 GMT 2006 Olly Betts <olly@survex.com>
* xapian-config.in: If libxapian.la's dependency_libs contains
another .la file, crudely transform to a pair of -L and -l
options. Ideally we should recursively pull in dependency_libs
from that .la file, but that's too hard to do in sh.
Sun Jan 15 21:43:26 GMT 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,queryparser/queryparser.lt:
Eliminate ParseAlloc's mallocProc parameter and ParseFree's freeProc
parameter - we always pass malloc and free, and get warnings from
some compilers because we're passing a C-linkage function for a
C++-linkage function pointer.
* testsuite/testsuite.cc,testsuite/testsuite.h: Fix functions
registered as signal handlers and pass to atexit to have C linkage.
Sun Jan 15 14:49:45 GMT 2006 Olly Betts <olly@survex.com>
* backends/quartz/quartz_log.cc: #include <string.h> for strerror.
Sun Jan 15 04:36:49 GMT 2006 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc:
Add Stopper::get_description() and SimpleStopper::get_description().
Sat Jan 14 21:43:32 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: Fix backwards logic in snprintf configure test.
Also define SNPRINTF_ISO to be an snprintf with ISO C90 semantics
for the return value (if one exists), with SNPRINTF being defined
to any snprintf which at least performs truncation (which in many
cases is sufficient).
Sat Jan 14 04:47:33 GMT 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.lt: Fix aCC warnings.
Sat Jan 14 04:47:00 GMT 2006 Olly Betts <olly@survex.com>
* common/utils.h: Fix aCC warning.
Fri Jan 13 18:25:04 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: Turn on more warnings for aCC; suppress existing
warning ("Entire translation unit was empty") since it's not
useful to us.
Fri Jan 13 03:22:26 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: The configure test for snprintf uses memcmp, so
we need to "#include <string.h>" for it to work reliably.
Wed Jan 11 03:14:30 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: If not cross-compiling, try to actually run a test
program built with the C++ compiler, not just link one.
Wed Jan 11 03:06:28 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: Note the library version info which 0.9.3 will
probably need.
Tue Jan 10 22:41:36 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: Fix to actually skip the check for valgrind if
VALGRIND is set to an empty value.
Tue Jan 10 01:08:10 GMT 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Updates from the tinderbox.
Mon Jan 09 01:35:57 GMT 2006 Olly Betts <olly@survex.com>
* backends/muscat36/io_system.cc,bin/xapian-compact.cc,
common/omdebug.cc: More sprintf tweaks.
Mon Jan 09 00:58:33 GMT 2006 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Use snprintf if we have it.
Sun Jan 08 03:51:52 GMT 2006 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc: Fix conditional compilation of
flint backend to use XAPIAN_BUILD_BACKEND_FLINT instead
of XAPIAN_BUILD_BACKEND_QUARTZ.
Sun Jan 08 02:11:30 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: Disable flint backend by default if building for
djgpp or msdos.
Sun Jan 08 02:09:48 GMT 2006 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc: Cast NULL to (void*) to avoid
"missing sentinel" warning from GCC4.
Sat Jan 07 19:09:33 GMT 2006 Olly Betts <olly@survex.com>
* HACKING,docs/tests.html: Merge the "running tests" section of
docs/tests.html into the similar section in HACKING, and make
docs/tests.html refer the reader to HACKING for more information.
* HACKING,tests/apitest.cc: Remove OM_TEST_BACKEND. You can now
use the "-b" switch to apitest to control which backend is used
so it's pretty much redundant.
* HACKING,testsuite/testsuite.cc: Rename XAPIAN_SIG_DFL to
XAPIAN_TESTSUITE_SIG_DFL.
* HACKING,testsuite/testsuite.cc: Add XAPIAN_TESTSUITE_PLAIN_OUTPUT
to disable use of ANSI escape sequences in test output.
Sat Jan 07 09:13:06 GMT 2006 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Write top-bit set characters using \xXX
notation to avoid warnings from Intel's C++ compiler.
Sat Jan 07 07:13:25 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: TYPE_SOCKLEN_T fails hard, so only run it if we've
successfully run other socket tests.
Sat Jan 07 05:29:39 GMT 2006 Olly Betts <olly@survex.com>
* queryparser/accentnormalisingitor.h: #include <limits.h> for
CHAR_BIT.
Fri Jan 06 21:24:01 GMT 2006 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Fix printf type mismatch on 64 bit platforms.
Fri Jan 06 18:05:30 GMT 2006 Olly Betts <olly@survex.com>
* queryparser/queryparser.cc,queryparser/queryparser.lemony,
queryparser/queryparser_internal.h: Replace pair<bool, string>
with a simple class BoolAndString - the pair results in a
4328 byte symbol on HP-UX which gets truncated (to 4000 bytes).
Fri Jan 06 12:55:37 GMT 2006 Olly Betts <olly@survex.com>
* PLATFORMS: Updated from tinderbox.
Thu Jan 05 16:12:00 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: Oops, remove hack left over from testing.
Thu Jan 05 16:09:06 GMT 2006 Olly Betts <olly@survex.com>
* configure.ac: Add sanity check for MS Windows that "find" is
Unix-like find, not MSDOS-like.
Thu Jan 05 04:27:29 GMT 2006 Olly Betts <olly@survex.com>
* INSTALL,PLATFORMS,README: Updated.
Mon Dec 19 12:53:38 GMT 2005 Olly Betts <olly@survex.com>
* AUTHORS,PLATFORMS: Add success report for Fedora Core 4.
Mon Dec 19 12:52:55 GMT 2005 Olly Betts <olly@survex.com>
* include/xapian/database.h: Improve a couple of documentation
comments.
Sun Dec 11 01:33:58 GMT 2005 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Fix handling of "+" terms in a query
when the default query operator is AND.
* tests/queryparsertest.cc: Add regression test.
Fri Dec 09 05:54:33 GMT 2005 Olly Betts <olly@survex.com>
* languages/api.cc: Check for malloc and calloc failing to allocate
memory and throw an exception. Richard has fix this upstream in
snowball, so this is a temporary fix until we import a new version
of snowball.
Fri Dec 09 02:15:38 GMT 2005 Olly Betts <olly@survex.com>
* api/omenquire.cc: Added assertions that the internal ptr isn't NULL
to ESet::end() and ESet::get_description().
Fri Dec 09 02:14:13 GMT 2005 Olly Betts <olly@survex.com>
* HACKING: Note platforms valgrind now has solid support for; Improve
phrasing in a few places.
Thu Dec 08 23:13:09 GMT 2005 Olly Betts <olly@survex.com>
* INSTALL: Update URL for stlport to sourceforge site, which seems to
be where the action is now.
Thu Dec 08 04:13:11 GMT 2005 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Fix testsuite harness to work with valgrind
on 64 bit platforms (it's not documented, but VALGRIND_COUNT_LEAKS
requires the count parameters to be 64 bit on such platforms - i.e.
long rather than int as we were using).
Tue Nov 01 13:22:50 GMT 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Sourceforge have a ppc64 linux box. Xapian builds and
works out of the box, so add success report for this platform.
Thu Oct 27 09:32:24 BST 2005 Fabrice Colin
* xapian.spec.in: Invoke %setup correctly.
Sat Oct 01 03:25:50 BST 2005 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Added "--multipass" option to merge postlists
in pairs or triples until all are merged. Generally this is faster
than an N-way merge, but it does require more disk space for
temporary files so it's not the default.
Fri Sep 30 18:02:32 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Give pointer to replacements for the
deprecated Enquire sorting methods.
Wed Sep 28 02:16:03 BST 2005 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc: Use a vector<string> to store the list of
source databases, in preparation for merging multiple postlist
tables in more than one pass.
Mon Sep 26 22:22:24 BST 2005 Olly Betts <olly@survex.com>
* .: svn:ignore docsource.mk.
Mon Sep 26 19:54:15 BST 2005 Olly Betts <olly@survex.com>
* bin/: svn:ignore xapian-compact.
Mon Sep 26 19:50:13 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Remove trailing whitespace.
Wed Sep 21 01:31:23 BST 2005 Olly Betts <olly@survex.com>
* api/Makefile.am: Fixed VPATH build which was broken by the addition
of version.cc.
Tue Sep 20 23:38:05 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc: Don't pass NULL for second parameter
of execl().
Tue Sep 20 21:32:04 BST 2005 Olly Betts <olly@survex.com>
* api/Makefile.am,api/version.cc,include/xapian/version_h.cc: Add 4
functions to report version information for the library version
being used (which may not be the same as that compiled against
if shared libraries are in use): xapian_version_string(),
xapian_major_version(), xapian_minor_version(), xapian_revision().
Sat Sep 17 14:07:32 BST 2005 Richard Boulton <richard@tartarus.org>
* backends/flint/flint_lock.cc: Pass two NULLs to execl() to avoid
getting a warning ("not enough variable arguments to fit a
sentinel", observed on Ubuntu breezy powerpc). Reported by
Sidnei da Silva.
Wed Sep 14 23:54:14 BST 2005 Olly Betts <olly@survex.com>
* HACKING: Now generate snapshots and releases with automake 1.9.6
(was 1.9.5) and libtool 1.5.20 (was 1.5.18).
Tue Aug 30 14:01:55 BST 2005 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.h: Forward declare class
InMemoryDatabase to fix compilation with GCC 4.0.1.
Fri Aug 19 12:13:39 BST 2005 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc,backends/flint/flint_postlist.cc:
Correct uses of termcount which should be doccount.
Fri Aug 19 11:48:51 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Fix prototype for ESet::operator[] to
take parameter of type termcount instead of doccount.
Wed Aug 17 11:50:54 BST 2005 Olly Betts <olly@survex.com>
* common/safewindows.h: Fix compilation for cygwin.
Tue Aug 16 16:01:36 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_types.h,backends/quartz/quartz_types.h: Using
a double to hold the total document length would be a bad idea as
we need to store it exactly so kill FIXME comments that suggest
perhaps we should.
Fri Jul 15 11:11:35 BST 2005 Olly Betts <olly@survex.com>
* configure.ac,NEWS,PLATFORMS: Updated for 0.9.2.
Fri Jul 15 02:31:11 BST 2005 Olly Betts <olly@survex.com>
* preautoreconf: Change directory to the directory that the
preautoreconf script is in before doing anything else.
Fri Jul 15 01:02:29 BST 2005 Olly Betts <olly@survex.com>
* docs/doxygen_api_conf.in,docs/doxygen_full_conf.in,configure.ac:
Eliminate TOP_SRCDIR and TOP_BUILDDIR - it's better to just use
top_srcdir and top_builddir directly.
Fri Jul 15 00:48:39 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: Fix superfluous shell quoting.
Fri Jul 15 00:28:40 BST 2005 Olly Betts <olly@survex.com>
* configure.ac,docs/Makefile.am,preautoreconf,Makefile.am: Generate
the list of source files to feed to doxygen by inspecting all the
Makefile.am files prior to running autoreconf rather than by using
"find" when the user runs ./configure. This speeds up configure,
avoids generating docs for random .cc and .h files which aren't
part of xapian-core, and avoids problems with picking up FIND.EXE
on MS Windows.
Thu Jul 14 12:49:36 BST 2005 Olly Betts <olly@survex.com>
* common/,matcher/multimatch.cc,matcher/networkmatch.cc,
matcher/networkmatch.h,net/socketclient.cc,net/socketserver.cc,
tests/api_db.cc: Implement sorting on a value with the remote
backend.
Wed Jul 13 01:25:17 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/database.h,include/xapian/dbfactory.h,
net/socketclient.cc: Regularise horizontal whitespace.
Tue Jul 05 03:03:57 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Oops, failed to check in header
changes for last change.
Mon Jul 04 15:50:55 BST 2005 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,queryparser/queryparser.cc:
Add flag FLAG_BOOLEAN_ANY_CASE which tells the QueryParser that
boolean operators such as "AND", "OR", and "NEAR" should be
recognised even if they aren't fully capitalised (so "and",
"And", "aNd", etc will work too). Add flag FLAG_WILDCARD which
tells the QueryParser to allow right truncation e.g. "xap*".
* tests/queryparsertest.cc: Add tests for FLAG_WILDCARD.
Sun Jul 03 15:24:12 BST 2005 Olly Betts <olly@survex.com>
* backends/database.cc: Fixed to auto-detect database type when
opening an existing Flint database as a WritableDatabase.
Sat Jul 02 18:49:22 BST 2005 Olly Betts <olly@survex.com>
* tests/queryparsertest.cc: Add test case: "-site:xapian.org mail".
Sat Jul 02 18:49:03 BST 2005 Olly Betts <olly@survex.com>
* common/Makefile.am: Ship safewindows.h header.
Sat Jul 02 18:04:18 BST 2005 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc,bin/xapian-compact.cc,
backends/muscat36/io_system.cc,backends/quartz/btree.cc,
backends/quartz/quartz_log.cc,backends/quartz/quartz_database.cc,
backends/flint/,common/,net/,tests/,testsuite/backendmanager.cc,
testsuite/testsuite.cc: Assorted tweaks towards allowing
compilation with MSVC.
Sat Jul 02 05:08:54 BST 2005 Olly Betts <olly@survex.com>
* backends/quartz/: Always define WIN32_LEAN_AND_MEAN before
including windows.h to reduce the amount of stuff it includes
and speed up builds; Eliminate Btree::max_key_len as MSVC
doesn't like the way we define it and it actually seems
simpler to just use BTREE_MAX_KEY_LEN everywhere anyway.
* backends/quartz/btree.cc: Added a few more assertions.
Sat Jul 02 04:11:01 BST 2005 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony,tests/queryparsertest.cc: Fixed to
handle "-site:microsoft.com" where site is a boolean prefix.
* queryparser/Makefile.am: Add dependency to generate
queryparser_token.h.
Thu Jun 30 02:14:16 BST 2005 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Update URL for valgrind FAQ in comment.
Thu Jun 30 00:11:52 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: More explicit explanation of the
"descending docid with boolean weighting" trick for fast
date ordered searching.
Wed Jun 29 13:16:13 BST 2005 Olly Betts <olly@survex.com>
* NEWS: Fix typo: "configurec" -> "configure".
Mon Jun 27 04:21:34 BST 2005 Olly Betts <olly@survex.com>
* xapian.spec.in: Package xapian-compact.
Mon Jun 27 03:41:23 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc,tests/api_wrdb.cc: Fixed
mispacking of length for Flint positionlists with more than 127
entries, and added regression test longpositionlist1.
Sun Jun 26 02:04:33 BST 2005 Olly Betts <olly@survex.com>
* bin/xapian-compact.cc,backends/flint/flint_cursor.h: Let
PostlistCursor take ownership of the FlintTable it's iterating over
which makes clean-up tidier.
* bin/xapian-compact.cc: We were accidentally skipping the first
entry in various tables (which essentially meant the first
document from each database would go missing when merging
databases).
Sat Jun 25 23:45:42 BST 2005 Olly Betts <olly@survex.com>
* api/omdatabase.cc: Tweak get_lastdocid() code to be a little
clearer.
Wed Jun 22 20:50:43 BST 2005 Olly Betts <olly@survex.com>
* configure.ac,include/xapian/version.h.in,include/xapian/version_h.cc,
include/Makefile.am: Eliminate use of "ln -s" when generating
include/xapian/version.h since it seems to cause problems on Solaris
in some setups and isn't really necessary. Also add dependency
mechanism so version.h gets regenerated when the template is
changed.
Wed Jun 22 18:47:05 BST 2005 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Citeseer has moved, so update link.
Mon Jun 20 13:33:42 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: -Wshadow causes false positives with GCC 3.0.4, so
only enable it for 3.1 and up.
Mon Jun 20 03:09:07 BST 2005 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: "utilpy" -> "utility"!
Fri Jun 17 19:54:44 BST 2005 Olly Betts <olly@survex.com>
* COPYING: Update FSF address.
Thu Jun 16 18:43:33 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: Fix warnings from older GCC versions.
* backends/flint/flint_lock.cc: '#include <signal.h>' so that SIGHUP
gets defined reliably.
Thu Jun 16 17:54:39 BST 2005 Olly Betts <olly@survex.com>
* bin/Makefile.am,bin/xapian-compact.cc: Added new "xapian-compact"
program which can compact and merge flint databases in a similar
way to how quartzcompact does for quartz databases.
Thu Jun 16 01:22:45 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: Check for spaces in build directory, source directory,
or install prefix and die with a helpful message.
Wed Jun 15 01:00:11 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc: It seems we need to explicitly kill
the child process. Otherwise when we have two databases locked
just closing the connection doesn't cause the child to die. I
don't understand why it's needed, but this fix is at least clean.
Mon Jun 13 00:13:33 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_alltermslist.cc,
backends/flint/flint_alltermslist.h,
backends/flint/flint_database.cc: Rewrite of FlintAllTermsList
with several fewer member variables. Also fixes a bug (the old
version wasn't ignoring the metainfo entry so tests were failing).
Sun Jun 12 13:08:16 BST 2005 Olly Betts <olly@survex.com>
* backends/quartz/quartz_alltermslist.cc: Disable assertion which is
incorrect in a corner case.
* tests/api_db.cc: Add test_specialterms2 as a regression test.
Sun Jun 12 02:03:52 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Encoding and decoding of
position list size, and first and last entries didn't match.
Reworked to match using a slightly smaller encoding.
* backends/flint/flint_metafile.cc: Bumped format version.
Sun Jun 12 02:02:35 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_table.cc: We were failing to append "DB" to the
path when opening a table for reading - fixed.
Sun Jun 12 02:00:30 BST 2005 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc: When a flint database was requested, we
were incorrectly creating a quartz database instead - fixed.
Sat Jun 11 17:53:12 BST 2005 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Fix mis-repacking of keys in positionlist
table when merging several databases.
Thu Jun 09 01:06:35 BST 2005 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac: Pass automake options to AM_INIT_AUTOMAKE
rather than specifying them in Makefile.am. This way, the version
requirements for autoconf and automake are stated close together.
Mon Jun 06 19:49:36 BST 2005 Olly Betts <olly@survex.com>
* HACKING: Minor updates to release checklist.
Mon Jun 06 17:44:19 BST 2005 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Updated for 0.9.1.
Mon Jun 06 17:28:34 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: Describe CC_FOR_BUILD in configure --help output.
Mon Jun 06 16:00:26 BST 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Updated for 0.9.1.
Fri Jun 03 03:49:33 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Fixed
compilation failure on mingw.
Fri Jun 03 01:58:08 BST 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Updated from tinderbox.
Fri Jun 03 00:46:00 BST 2005 Olly Betts <olly@survex.com>
* HACKING,NEWS: Snapshot and release tarballs are now bootstrapped
using libtool 1.5.18 and automake 1.9.5 (though neither is currently
an enforced requirement for bootstrapping).
Thu Jun 02 17:36:36 BST 2005 Olly Betts <olly@survex.com>
* NEWS: First draft of release notes for 0.9.1.
Thu Jun 02 02:05:47 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_record.cc: Fix get_doccount() to not return
one too low now that the special entry is no longer in the record
table!
Wed Jun 01 12:41:59 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Placate Sun's C++ compiler.
Tue May 31 19:31:24 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.h,
backends/flint/flint_positionlist.cc,
backends/flint/flint_metafile.cc: positionlist entries are now
stored using interpolative coding (which is significantly more
compact).
Mon May 30 01:48:17 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Added
locking code for MS Windows (untested).
Sun May 29 01:00:41 BST 2005 Olly Betts <olly@survex.com>
* HACKING,NEWS,testsuite/testsuite.h: Fixed spelling mistakes.
Sat May 28 22:51:15 BST 2005 Olly Betts <olly@survex.com>
* tests/: svn:ignore .flint/ subdirectory.
* tests/Makefile.am: Remove .flint subdirectory on 'make clean'.
Sat May 28 22:45:24 BST 2005 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Remove warning that quartz is still in
development.
Sat May 28 16:24:43 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_lock.h: Removed unused FlintLock method
'operator int()' which was confusing Sun's C++ compiler.
Sat May 28 16:18:11 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/query.h: Removed superfluous "Query::" which was
causing the build to fail with aCC.
Sat May 28 14:31:33 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_metafile.cc: Added missing '#include <errno.h>'.
Sat May 28 14:15:36 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_positionlist.cc: Simplify code a bit.
Sat May 28 02:01:12 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/: Move the special item holding the total document
length and doc id high water mark from the record table to the
postlist table. This means that when appending documents, the
insertion point will now always be at the end of the record table.
We need to jump around the postlist table to merge anyway.
Sat May 28 00:42:25 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_metafile.cc: Change metafile magic to be
different from quartz, and make the metafile version a datestamp
which we'll change each time the format changes; check the return
value of close on the metafile.
Fri May 27 22:09:45 BST 2005 Olly Betts <olly@survex.com>
* backends/Makefile.am,backends/flint/: Implement new fork+fcntl+exec
based locking; Fix new GCC warnings.
Fri May 27 22:06:14 BST 2005 Olly Betts <olly@survex.com>
* api/omquery.cc: Missed a warning fix.
Fri May 27 22:04:18 BST 2005 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
backends/quartz/quartz_postlist.cc,common/omtime.h,matcher/,
net/socketserver.cc,net/socketcommon.cc,net/socketclient.cc,
testsuite/btreecheck.h,testsuite/testsuite.cc: Fix GCC warnings
from new flags.
Fri May 27 20:06:52 BST 2005 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Add missing '#include <config.h>'.
Fri May 27 12:20:03 BST 2005 Olly Betts <olly@survex.com>
* common/omdebug.h: Oops, change to static_cast reveals that we were
discarding const (harmlessly).
Fri May 27 12:16:03 BST 2005 Olly Betts <olly@survex.com>
* common/omdebug.h: Replace C style cast with static_cast<>.
Fri May 27 12:07:48 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: -Wendif should be -Wendif-labels.
Wed May 25 20:41:39 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: Pass more -W flags to g++ (including -Wundef which
caught the getopt problem fixed by the previous commit).
Wed May 25 20:32:35 BST 2005 Olly Betts <olly@survex.com>
* getopt/getopt.cc: Added accidentally pruned #define so that getopt
code isn't compiled in when the system uses glibc.
Wed May 25 18:36:41 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: Add -Wredundant-decls to the default CXXFLAGS for GCC.
Wed May 25 03:33:34 BST 2005 Olly Betts <olly@survex.com>
* tests/apitest.cc,tests/api_db.cc,tests/api_db.h,
testsuite/backendmanager.cc,testsuite/backendmanager.h:
apitest now runs tests on flint as well.
Wed May 25 03:20:12 BST 2005 Olly Betts <olly@survex.com>
* backends/database.cc: When automatically determining which backend
to use when creating a WritableDatabase, don't try to open it as
both Flint *AND* Quartz (an "else" was missing).
Wed May 25 03:19:21 BST 2005 Olly Betts <olly@survex.com>
* backends/flint/flint_btreebase.cc: Fix typo in code which prevented
a flint database from being opened.
Wed May 25 01:10:51 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/version.h.in,include/xapian/dbfactory.h,
include/xapian/queryparser.h,backends/quartz/,backends/flint/:
Flint backend hooked in fully, and everything now builds once
more.
Tue May 24 02:30:39 BST 2005 Olly Betts <olly@survex.com>
* HACKING: Add "email Fabrice" to the release checklist so that RPM
spec files don't lag behind. The new svn-tag-release script
actually builds the release tarballs rather than just copying
snapshots like cvs-tag-release did, so document that.
Tue May 24 01:21:18 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Added missing documentation comments.
Mon May 23 02:36:06 BST 2005 Olly Betts <olly@survex.com>
* configure.ac,backends/database.cc,backends/Makefile.am,
backends/flint/: Cloned the quartz backend to form the basis of the
new flint backend. Currently it's the same except that the quartz
log feature has been removed. When creating a database without a
specified backend, quartz is still used unless the environmental
variable XAPIAN_PREFER_FLINT is set to a non-empty value.
Sat May 21 20:58:48 BST 2005 Olly Betts <olly@survex.com>
* xapian.spec.in: Remove bogus %setup line left over from when we
packaged xapian-core and xapian-examples together from separate
tarballs.
Thu May 19 01:12:27 BST 2005 Olly Betts <olly@survex.com>
* bin/quartzcheck.cc: Fixed corner case where you couldn't check a
single Btree table which was just the DB and baseA/baseB files
in a directory (Xapian doesn't produce anything like this, but
btreetest does while unit testing the Btree code).
Wed May 18 16:59:23 BST 2005 Olly Betts <olly@survex.com>
* api/omquery.cc,include/xapian/query.h: Put Query::get_terms_end()
inline in header.
Wed May 18 16:41:56 BST 2005 Olly Betts <olly@survex.com>
* api/omquery.cc,tests/api_nodb.cc: Fix SEGV on get_terms_begin()
on an empty Query object.
Mon May 16 22:58:09 BST 2005 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Fixed compilation with --enable-debug.
Sat May 14 01:02:33 BST 2005 Olly Betts <olly@survex.com>
* docs/doxygen_full_conf.in: Fix lingering DOXYGEN_HAVE_DOT reference.
Sat May 14 00:36:14 BST 2005 Olly Betts <olly@survex.com>
* HACKING: Update information about the SVN tag name to use for
debian files.
Fri May 13 23:21:54 BST 2005 Olly Betts <olly@survex.com>
* HACKING: Updated release instructions to refer to SVN.
Fri May 13 20:58:15 BST 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Updated for 0.9.0.
Fri May 13 02:47:42 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Fix for Sun's C++ compiler.
Fri May 13 00:09:07 BST 2005 Olly Betts <olly@survex.com>
* NEWS,configure.ac: Updated for 0.9.0.
Thu May 12 18:54:11 BST 2005 Olly Betts <olly@survex.com>
* docs/doxygen_api_conf.in,docs/Makefile.am: Fix to generate docs
for all backend factory functions like 0.8.5 did.
Thu May 12 16:59:22 BST 2005 Olly Betts <olly@survex.com>
* backends/database.cc,backends/Makefile.am,include/xapian/database.h,
include/xapian/dbfactory.h,include/xapian.h,include/Makefile.am:
Split off database factory methods into xapian/dbfactory.h - this
allows us to fix recent breakage in VPATH builds (caused by the
need to include the generated file xapian/version.h from
xapian/database.h) without modifying almost every Makefile.am.
Wed May 11 16:52:41 BST 2005 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Move prefixed, bracketed
subexpression to be an alternative for stop_term which allows
"term prefix:(term2 term3)" to parse correctly. Also move
non-prefixed, bracketed subexpression to be an alternative
for stop_term - this doesn't change how things parse, but
makes the grammar simpler.
* tests/queryparsertest.cc: Added regression test for the above.
* tests/Makefile.am,tests/queryparsertest.cc: Reworked queryparsertest
to use the standard testsuite harness.
Wed May 11 16:09:32 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/query.h: Fix OP_ELITE_SET at 10 (the value it had
in 0.8.5).
Tue May 10 22:56:45 BST 2005 Olly Betts <olly@survex.com>
* docs/Makefile.am: Removed check for DOXYGEN_HAVE_DOT which I removed
recently.
Tue May 10 01:09:01 BST 2005 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Removed state parameter from
TermList::add_term() since it is no longer used.
Mon May 09 20:56:40 BST 2005 Olly Betts <olly@survex.com>
* docs/Makefile.am: Explicitly set the pool_size for latex, because we
seem to overflow the default setting on many systems.
* docs/Makefile.am: Use $(MAKE) instead of make.
Sun May 08 23:22:37 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: Corrected $CC -> $CXX to fix bogus message "Checking
for option to enable ANSI C++ mode".
* configure.ac: If any tools needed for documentation are missing
and we're in maintainer mode, die with a suitable error in
configure rather than with strange errors when building the
documentation.
Sun May 08 01:43:55 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.lemony,
queryparser/queryparser_internal.h,queryparser/queryparser.cc:
Remove QueryParser::termlist_begin() and termlist_end() since
you can just use Query::terms_begin() and terms_end() on the
Query object returned by QueryParser::parse_query().
Thu May 05 01:00:26 BST 2005 Olly Betts <olly@survex.com>
* common/utils.cc: On WIN32, don't define NOMINMAX if it is already
defined.
Wed May 04 00:52:04 BST 2005 Olly Betts <olly@survex.com>
* matcher/bm25weight.cc: Avoid needing document length if we're simply
going to multiply it by zero!
Tue May 03 14:07:20 BST 2005 Olly Betts <olly@survex.com>
* HACKING: CVS -> SVN; Note that tabs should be 8 spaces.
Thu Apr 28 21:13:17 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/database.h: Don't declare the backend factory
functions if the corresponding backend has been disabled. This
means that trying to use a disabled backend will be caught at
compile time rather than link time.
Thu Apr 28 21:12:43 BST 2005 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Corrected two errors.
Wed Apr 27 23:04:53 BST 2005 Olly Betts <olly@survex.com>
* configure.ac,include/xapian/version.h.in: Define
XAPIAN_HAS_xxx_BACKEND for each backend which is enabled. The
bindings need this, and user code might find it useful too.
Wed Apr 27 03:31:50 BST 2005 Olly Betts <olly@survex.com>
* api/omdatabase.cc,api/ompostlistiterator.cc,
api/omtermlistiterator.cc,include/xapian/,
queryparser/queryparser.cc: Where end iterator is just
FooIterator(NULL) put it inline in the header for efficiency.
If we ever need to change an implementation, we can easily move
methods back into the library and bump the library version suitably.
Wed Apr 27 02:40:43 BST 2005 Olly Betts <olly@survex.com>
* examples/quest.cc,include/xapian/queryparser.h,
queryparser/queryparser.cc,tests/queryparsertest.cc: Rename
QueryParser::set_stemming_options() to set_stemming_strategy()
- it's a better name and avoids confusion with the old deprecated
method called set_stemming_options().
* examples/quest.cc: Added stopword handling.
Wed Apr 27 02:39:33 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Fixed documentation comment.
Sun Apr 24 03:02:47 BST 2005 Olly Betts <olly@survex.com>
* api/omstem.cc: Simplified Xapian::Stem::Internal.
Sun Apr 24 02:21:22 BST 2005 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Extended stemlang1 to check that trying to create
a stemmer for a non-existent language throws InvalidArgumentError.
Fri Apr 22 01:20:57 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/document.h: Clearer documentation comments.
Thu Apr 21 15:03:42 BST 2005 Olly Betts <olly@survex.com>
* docs/overview.html,include/xapian/query.h: Removed lingering
references to OP_WEIGHT_CUTOFF.
Thu Apr 21 01:46:51 BST 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Added success report for Ubuntu 5.04 on x86_64.
Mon Apr 18 02:54:10 BST 2005 Olly Betts <olly@survex.com>
* docs/stemming.html: Stemming appears to be applicable to Japanese
so don't say it isn't!
Sat Apr 16 01:08:22 BST 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Updated from tinderbox.
Fri Apr 15 23:18:58 BST 2005 Olly Betts <olly@survex.com>
* languages/: Remove lingering .c versions of snowball generated
sources.
Fri Apr 15 02:05:27 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser_internal.h,
queryparser/queryparser.cc: Implemented QueryParser::set_database()
method.
* queryparser/queryparser.lemony: Allow searches for C#, etc. If a
database has been set, for this and + and - suffixes, check if the
term actually exists, and if not, ignore the suffix if the
unsuffixed term exists.
* tests/queryparsertest.cc: Added tests for # suffix.
Thu Apr 14 23:39:57 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/stem.h: Rewritten with better documentation comments.
* include/xapian/stem.h: Added operator() as preferred alternative
to stem_word().
* api/omstem.cc,include/xapian/stem.h: Simplified by restructuring
to eliminate a few internal methods.
Thu Apr 14 23:35:47 BST 2005 Olly Betts <olly@survex.com>
* queryparser/queryparser.cc: Make get_description() debug tracing
message category INTRO not API.
Thu Apr 14 19:57:06 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h,queryparser/queryparser.cc: Added
QueryParser::get_description() method (not very descriptive yet!)
Thu Apr 14 03:30:09 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Fixed to only include the xapian
headers we actually depend on.
* include/xapian/queryparser.h: Added \file and \brief documentation
comments.
Thu Apr 14 02:50:36 BST 2005 Olly Betts <olly@survex.com>
* examples/quest.cc,include/xapian.h,tests/queryparsertest.cc:
Change xapian.h to automatically include xapian/queryparser.h
and fix direct includes of xapian/queryparser.h in tests and
examples.
Thu Apr 14 01:48:39 BST 2005 Olly Betts <olly@survex.com>
* include/xapian/queryparser.h: Added Xapian::SimpleStopper which
should be sufficient for the majority of uses.
* include/xapian/queryparser.h,queryparser/queryparser_internal.h,
queryparser/queryparser.cc: Changed QueryParser::set_stopper() to
take a const pointer.
Thu Apr 07 15:57:15 BST 2005 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/omenquireinternal.h,common/multimatch.h,
matcher/multimatch.cc,net/socketserver.cc: Tidy up after sort_bands.
Thu Apr 07 15:15:27 BST 2005 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/,include/xapian/enquire.h,
matcher/networkmatch.cc,matcher/multimatch.cc,matcher/networkmatch.h,
net/socketserver.cc,net/socketclient.cc,tests/api_db.cc:
Enhanced Enquire sorting API and added ability to reverse sort on
a value.
* api/omenquire.cc: Enquire::get_description() now includes output of
Enquire::Internal::get_description().
Thu Apr 07 13:55:56 BST 2005 Olly Betts <olly@survex.com>
* HACKING: Fixed a typo.
Thu Apr 07 13:37:02 BST 2005 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
bin/quartzcompact.cc: The "fuller compaction" code needs changes
to btree.h which I'd failed to check in. Also document --fuller
in 'quartzcompact --help'.
Thu Apr 07 03:35:36 BST 2005 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Added "fuller compaction" mode, which ignores
the usual "at least 4 items per block" rule.
Thu Apr 07 03:28:32 BST 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Added success result for GCC 3.2.3 on FreeBSD 4.8; fixed
a typo.
Wed Apr 06 23:04:15 BST 2005 Olly Betts <olly@survex.com>
* queryparser/queryparser.lemony: Added FIXME comment.
Wed Apr 06 22:52:53 BST 2005 Olly Betts <olly@survex.com>
* ./: Removed ylwrap from svn:ignore.
Tue Apr 05 22:34:16 BST 2005 Olly Betts <olly@survex.com>
* queryparser/queryparsertest.cc,queryparser/Makefile.am,
tests/Makefile.am: Moved queryparsertest into tests/.
Tue Apr 05 22:15:05 BST 2005 Olly Betts <olly@survex.com>
* examples/: Updated svn:ignore property.
Tue Apr 05 21:34:13 BST 2005 Olly Betts <olly@survex.com>
* queryparser/Makefile.am,configure.ac,extra/xapian/queryparser.h,
extra/,include/Makefile.am,Makefile.am: Move extra/ to queryparser/;
Merge extra/xapian/ into include/xapian/.
Tue Apr 05 16:37:32 BST 2005 Olly Betts <olly@survex.com>
* m4/xapian.m4: Fix m4 quoting (argh!)
Tue Apr 05 16:28:06 BST 2005 Olly Betts <olly@survex.com>
* m4/xapian.m4: Fix XO_LIB_XAPIAN to trim off any _svn6789 from
XAPIAN_VERSION.
Tue Apr 05 16:17:31 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: Fix m4 quoting.
Tue Apr 05 15:16:38 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: #define VERSION in version.h shouldn't include any
_svn6789 suffix.
Tue Apr 05 13:28:23 BST 2005 Olly Betts <olly@survex.com>
* configure.ac: Snapshot generator now appends _svn6789 or similar to
the version string, so take that into account when finding REVISION.
Tue Apr 05 12:55:52 BST 2005 Olly Betts <olly@survex.com>
* ChangeLog.examples,Makefile.am,examples/ChangeLog: Move
xapian-examples ChangeLog to ChangeLog.examples in the top-level
and include in the tarball.
Tue Apr 05 02:18:08 BST 2005 Olly Betts <olly@survex.com>
* examples/dir_contents,examples/README: Converted xapian-examples
README into a dir_contents file.
Tue Apr 05 02:12:31 BST 2005 Olly Betts <olly@survex.com>
* docs/overview.html,docs/install.html,configure.ac,Makefile.am,
xapian.spec.in,examples/Makefile.am: Moved xapian-examples module
to examples subdirectory of xapian-core.
Tue Apr 05 00:37:05 BST 2005 Olly Betts <olly@survex.com>
* m4/.cvsignore,debian/.cvsignore,matcher/.cvsignore,docs/.cvsignore,
tests/.cvsignore,bin/.cvsignore,.cvsignore,autoconf/.cvsignore,
extra/.cvsignore,include/xapian/.cvsignore,include/.cvsignore,
net/.cvsignore,common/.cvsignore,testsuite/.cvsignore,
getopt/.cvsignore,languages/.cvsignore,api/.cvsignore,
backends/inmemory/.cvsignore,backends/muscat36/.cvsignore,
backends/net/.cvsignore,backends/quartz/.cvsignore,
backends/multi/.cvsignore,backends/.cvsignore: Remove .cvsignore
files, as they're not used by SVN.
Thu Mar 10 01:48:20 GMT 2005 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc,testsuite/index_utils.cc,
testsuite/index_utils.h: Rewrite of index_utils code, removing
unused and unusual features.
* tests/testdata/: Cleaned up data for apitest now that paragraphs
don't have the odd minimum number of lines!
* tests/testdata/apitest_space.txt: New index_utils code has C-like
\ escapes for control characters rather than ^ escapes.
Wed Mar 09 22:04:08 GMT 2005 Olly Betts <olly@survex.com>
* common/utils.h: Added C_isxdigit and C_isnotxdigit.
Wed Mar 09 15:22:35 GMT 2005 Olly Betts <olly@survex.com>
* testsuite/index_utils.cc: Fixed ^x to actually decode hex values
correctly.
Tue Mar 08 16:57:25 GMT 2005 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Minor code tidy.
Tue Mar 08 15:48:38 GMT 2005 Olly Betts <olly@survex.com>
* api/omenquire.cc,docs/matcherdesign.html,include/xapian/enquire.h,
matcher/multimatch.cc,tests/api_db.cc: Removed sort_bands support.
Tue Mar 08 04:13:03 GMT 2005 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Fixed to add items for all tables in key order
which produces results around 40% more compact (previously in the
merge case, this was only happening for the postlist table).
Tue Mar 08 03:30:06 GMT 2005 Olly Betts <olly@survex.com>
* testsuite/btreecheck.cc: Make default check output fit on a single
line (at least for many databases).
Tue Mar 08 02:34:41 GMT 2005 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fix warning from newer versions of GCC.
Sat Mar 05 00:25:07 GMT 2005 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/omenquireinternal.h,include/xapian/enquire.h,
matcher/multimatch.cc,tests/api_db.cc: Fixed Xapian::RSet to have
the same "it's a handle" copy semantics as most of the other
classes.
Sat Mar 05 00:23:47 GMT 2005 Olly Betts <olly@survex.com>
* testsuite/testsuite.h: Fixed TEST_EQUAL_DOUBLE to use DBL_EPSILON
correctly.
Fri Mar 04 21:06:38 GMT 2005 Olly Betts <olly@survex.com>
* tests/testdata/etext.txt: Stripped carriage returns.
Fri Mar 04 21:04:25 GMT 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Assorted updates.
Thu Mar 03 01:17:07 GMT 2005 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Fixed to allow compacting a single database.
Fixed handling of very last term when merging postlists.
Wed Mar 02 03:18:30 GMT 2005 Olly Betts <olly@survex.com>
* backends/quartz/quartz_values.cc: Values are stored in sorted order
so we can stop unpacking the list once we get to one after the one
we're looking for.
Wed Mar 02 02:59:23 GMT 2005 Olly Betts <olly@survex.com>
* bin/quartzcheck.cc: Now checks the structure of all the tables, not
just the postlist table, and cross-checks doclen values between
termlist and postlist tables. Recognises "--help" option. Should
now continue after an error (typically it would crash before), and
counts the number of errors found. Now exits with non-zero status
if any errors were found.
Tue Mar 01 18:48:25 GMT 2005 Olly Betts <olly@survex.com>
* xapian.spec.in: '/usr/share' -> '%{_datadir}'.
Tue Mar 01 16:21:07 GMT 2005 Olly Betts <olly@survex.com>
* tests/api_db.cc: Fixed warning from Sun's C++ compiler.
Tue Mar 01 02:02:15 GMT 2005 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Extended to allow merging several quartz
databases to produce a single compact quartz database. This
allows for faster building - simple index in chunks, then merge
the chunks.
Tue Mar 01 00:08:12 GMT 2005 Olly Betts <olly@survex.com>
* xapian.spec.in: Put the .so in the -devel package (it's only useful
for linking to - the .so.* files are all that's needed at runtime).
Tue Mar 01 00:05:25 GMT 2005 Olly Betts <olly@survex.com>
* Makefile.am,xapian-config.in,xapian.spec.in,extra/.cvsignore,
extra/Makefile.am: Eliminated the extra library for the queryparser
- it's tiny compared to the main library and having it around just
complicates things.
Mon Feb 28 23:52:19 GMT 2005 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: More set_length() changes.
Mon Feb 28 20:31:13 GMT 2005 Olly Betts <olly@survex.com>
* net/socketclient.cc,net/socketserver.cc,api/omenquire.cc,
api/omquery.cc,api/omqueryinternal.cc,common/,
include/xapian/enquire.h,include/xapian/query.h,matcher/:
Remove Query::set_length() in favour of an optional length
parameter to Enquire::set_query().
Mon Feb 28 15:32:32 GMT 2005 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,common/Makefile.am,common/deleter_vector.h:
Removed deleter_vector as it's no longer used anywhere.
Mon Feb 28 15:27:42 GMT 2005 Olly Betts <olly@survex.com>
* api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
matcher/localmatch.cc,tests/api_anydb.cc,tests/api_nodb.cc:
Eliminated Query::set_elite_set_size().
Mon Feb 28 15:15:45 GMT 2005 Olly Betts <olly@survex.com>
* HACKING: Note how to disable use of VALGRIND on the make check
command line, or when using runtest directly.
Mon Feb 28 13:36:07 GMT 2005 Olly Betts <olly@survex.com>
* common/omqueryinternal.h: Removed out-of-date commented out version
of Xapian::Query::Internal.
Mon Feb 28 13:07:42 GMT 2005 Olly Betts <olly@survex.com>
* backends/quartz/quartz_alltermslist.cc,tests/api_db.cc: Updated (C)
dates for changes earlier this year.
Mon Feb 28 13:04:41 GMT 2005 Olly Betts <olly@survex.com>
* api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
matcher/localmatch.cc,matcher/localmatch.h,tests/api_anydb.cc,
tests/api_nodb.cc,tests/api_posdb.cc: Eliminated Query::set_window
in favour of an optional parameter to the constructor, with the aim
of making Query objects immutable once constructed.
Mon Feb 28 12:32:26 GMT 2005 Olly Betts <olly@survex.com>
* extra/queryparser.lemony: Updated 2 uses of Query::set_window().
Mon Feb 28 04:43:20 GMT 2005 Olly Betts <olly@survex.com>
* api/omquery.cc,api/omqueryinternal.cc,common/socketcommon.h,
include/xapian/query.h,matcher/,tests/api_anydb.cc:
Removed OP_WEIGHT_CUTOFF, since it doesn't actually seem to
add useful functionality over using Enquire::set_cutoff().
Mon Feb 28 04:31:58 GMT 2005 Olly Betts <olly@survex.com>
* matcher/weightcutoffpostlist.cc: Fix updating of docid in
WeightCutoffPostList - the current code works, but can end up doing
lots (potentially millions) of pointless loop iterations.
Mon Feb 28 02:57:29 GMT 2005 Olly Betts <olly@survex.com>
* docs/queryparser.html: Note that + and - work on phrases and
bracketed expressions.
Fri Feb 25 17:06:23 GMT 2005 Olly Betts <olly@survex.com>
* backends/quartz/quartz_alltermslist.cc: Fix skip_to on an allterms
TermIterator to set the current term when the skip_to-ed term is
in the database.
* tests/api_db.cc: Add regression test for this (allterms5).
Wed Feb 23 19:07:30 GMT 2005 Olly Betts <olly@survex.com>
* configure.ac: Suppress 2 Intel C++ warnings which we can't easily
code around, and enable -Werror automatically with
--enable-maintainer-mode.
* configure.ac: Check that the C++ compiler can actually link a
program. AC_LANG_CXX doesn't, and if it can't find a C++ compiler
it'll just return "g++" which just leads to a later configure
test failing in a confusing way.
Tue Feb 22 13:39:07 GMT 2005 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Improved documentation comments.
* api/omenquire.cc,include/xapian/enquire.h: MSet::max_size() (which
only exists so that MSet is an STL compiler) now returns
MSet::size() and is inlined from the header.
* include/xapian/enquire.h: Added ESet::max_size() (for STL
compatibility).
Tue Feb 22 00:18:33 GMT 2005 Olly Betts <olly@survex.com>
* configure.ac: corrected "none known for yes" or "none known for no"
to "none known for g++-3.2" or similar.
* configure.ac: autoconf identifies Intel's C++ compiler as GCC, so
probe for which it actually is.
Mon Feb 21 21:54:29 GMT 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Updated.
Mon Feb 21 16:06:32 GMT 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Added success report for Intel C++ 8.1 on ia64 Linux
(and also GCC 3.2.3 on ia64 Linux).
Mon Feb 21 05:33:46 GMT 2005 Olly Betts <olly@survex.com>
* backends/multi/: Don't delare methods in headers if they're virtual
or large.
Mon Feb 21 04:11:23 GMT 2005 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h: Don't delare methods in
headers if they're virtual or large.
Sun Feb 20 21:13:40 GMT 2005 Olly Betts <olly@survex.com>
* common/multimatch.h: Removed unused "class SocketServer;".
Sun Feb 20 19:47:01 GMT 2005 Olly Betts <olly@survex.com>
* net/socketserver.cc: Fixed typo in debug code.
Sat Feb 19 18:44:17 GMT 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Added minimal testcase which fails to compile with
Compaq's C++ compiler (cxx).
Sat Feb 19 04:23:51 GMT 2005 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Change
Btree::find_in_block to take a bool indicating if this is a leaf
block rather than an offset to subtract when it is.
Fri Feb 18 04:27:16 GMT 2005 Olly Betts <olly@survex.com>
* HACKING: Added better description of how reference-counted API
classes are structured.
* include/xapian/postingiterator.h,include/xapian/termiterator.h:
More (and better) documentation comments.
Fri Feb 18 03:05:40 GMT 2005 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Made full compaction a tiny bit more
compact. Improved compaction by a few % in non-full case.
Tighter bound on amount of memory to reserve to read the tag
into.
Fri Feb 18 00:47:41 GMT 2005 Olly Betts <olly@survex.com>
* api/omenquire.cc: Removed duplicate "#include <xapian/enquire.h>".
Thu Feb 17 01:33:01 GMT 2005 Olly Betts <olly@survex.com>
* extra/queryparser_internal.h: Further Sun C++ fixes.
Wed Feb 16 05:32:40 GMT 2005 Olly Betts <olly@survex.com>
* extra/queryparser.lemony: Attempted fix for Sun's C++ compiler.
Tue Feb 15 02:10:35 GMT 2005 Olly Betts <olly@survex.com>
* extra/queryparser.cc,extra/queryparser.lemony,
extra/queryparser_internal.h: Fixed namespace stuff to keep Sun's C++
compiler happy.
Mon Feb 14 21:21:08 GMT 2005 Olly Betts <olly@survex.com>
* api/vectortermlist.h: Workaround a shortcoming in Sun's C++
compiler.
Mon Feb 14 21:16:05 GMT 2005 Olly Betts <olly@survex.com>
* PLATFORMS: Results from upgraded sourceforge x86_64 box.
Mon Feb 14 18:36:40 GMT 2005 Olly Betts <olly@survex.com>
* extra/xapian/queryparser.h: Fixed compilation error.
Mon Feb 14 18:00:12 GMT 2005 Olly Betts <olly@survex.com>
* extra/xapian/queryparser.h: Added backward compatibility wrapper for
old version of QueryParser::set_stemming_options().
Mon Feb 14 17:50:47 GMT 2005 Olly Betts <olly@survex.com>
* extra/xapian/queryparser.h: Added dummy QueryParser::set_database()
(currently it ignores the parameter).
Mon Feb 14 15:34:13 GMT 2005 Olly Betts <olly@survex.com>
* extra/lemon.c: C90, not C99!
Mon Feb 14 15:20:11 GMT 2005 Olly Betts <olly@survex.com>
* extra/lemon.c: C, not C++.
Mon Feb 14 05:49:50 GMT 2005 Olly Betts <olly@survex.com>
* extra/: Tweak lemon so we can avoid generating files in builddir
in a VPATH build.
Mon Feb 14 02:44:17 GMT 2005 Olly Betts <olly@survex.com>
* extra/Makefile.am: Update to reflect lempar.c -> queryparser.lt.
Mon Feb 14 02:25:53 GMT 2005 Olly Betts <olly@survex.com>
* extra/lempar.c,extra/queryparser.lt: Rename lemon template to .lt
which is more sensible than calling it lempar.c and should work
with VPATH builds.
Mon Feb 14 02:12:51 GMT 2005 Olly Betts <olly@survex.com>
* extra/Makefile.am: Fixes for VPATH builds.
Mon Feb 14 01:43:59 GMT 2005 Olly Betts <olly@survex.com>
* configure.ac: Need to AC_SUBST(CC_FOR_BUILD).
Mon Feb 14 00:19:45 GMT 2005 Olly Betts <olly@survex.com>
* extra/Makefile.am: Added dependency for building queryparser.h.
Sun Feb 13 23:30:02 GMT 2005 Olly Betts <olly@survex.com>
* extra/queryparser.cc,extra/queryparser_internal.h,
extra/xapian/queryparser.h: Fixed to compile with GCC 3.3.
Sun Feb 13 23:09:15 GMT 2005 Olly Betts <olly@survex.com>
* configure.ac: Enhanced valgrind test to (a) see if --tool=memcheck
is needed and (b) see if valgrind actually works (we don't want to
try to use an x86 valgrind on an x86_64 box).
Mon Jan 17 03:21:29 GMT 2005 Olly Betts <olly@survex.com>
* api/vectortermlist.h,extra/,extra/xapian/queryparser.h: Rewritten
QueryParser class. Uses Lemon instead of Bison to generate the
parser, which enables us to stop using static data, so this class
is at last reentrant. It now uses a PIMPL style with reference
counted internals like most of the other Xapian classes. And
direct access to member variables has gone, which unfortunately
forces an API change (bug #39). The rewrite also supports more
features than the original did.
* HACKING,configure.ac: No longer need Bison.
* configure.ac: Need CC_FOR_BUILD to compile Lemon with.
Mon Jan 17 02:40:40 GMT 2005 Olly Betts <olly@survex.com>
* PLATFORMS: IRIX + SGI C++ now compiles with just two warnings -
unused variables in Snowball generated code.
Sun Jan 16 03:19:56 GMT 2005 Olly Betts <olly@survex.com>
* xapian.spec.in: Don't say "%makeinstall" in a comment since rpm
tries to expand it and explodes.
Sat Jan 15 03:30:33 GMT 2005 Olly Betts <olly@survex.com>
* docs/Makefile.am: Clearer rules for making Postscript doxygen docs.
Sat Jan 15 02:45:19 GMT 2005 Olly Betts <olly@survex.com>
* HACKING: Note that '#include <limits>' isn't supported by GCC 2.95,
and other assorted minor tweaks.
Sat Jan 08 16:09:10 GMT 2005 Olly Betts <olly@survex.com>
* api/maptermlist.h,backends/inmemory/inmemory_database.h,
backends/quartz/quartz_postlist.h,common/,matcher/localmatch.h,
matcher/mergepostlist.h,matcher/phrasepostlist.h,net/progclient.cc:
Fixes for SGI C++ warnings.
Fri Jan 7 13:02:49 GMT 2005 Richard Boulton <richard@tartarus.org>
* common/positionlist.h: Correct out-of-date documentation comment.
Tue Jan 04 03:05:26 GMT 2005 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Removed unnecessary class declaration.
Tue Jan 04 03:02:02 GMT 2005 Olly Betts <olly@survex.com>
* configure.ac: Automatically enable ANSI C++ mode for SGI's compiler
with '-LANG:std'; check that any automatically determined flags
for ANSI C++ mode actually allow us to compile a trivial program
- if they don't it probably means the compiler isn't the one we
were expecting, but one installed with the same name, so we now
drop the flags in this case.
Thu Dec 30 00:50:58 GMT 2004 Olly Betts <olly@survex.com>
* extra/queryparser.yy: QueryParser::parse_query() was failing to
clear termlist and unstem.
Fri Dec 24 00:07:28 GMT 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Updated from tinderbox.
Thu Dec 23 21:13:46 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Fixed GCC compilation warning.
Thu Dec 23 17:22:15 GMT 2004 Olly Betts <olly@survex.com>
* INSTALL,README: Updated.
* README: Don't quote chunks of the GPL - just refer people to the
full text in COPYING.
Thu Dec 23 16:55:03 GMT 2004 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.ac: Updated for 0.8.5 release.
Tue Dec 21 13:26:55 GMT 2004 Olly Betts <olly@survex.com>
* docs/quickstart.html: Improved wording.
Tue Dec 21 13:03:06 GMT 2004 Olly Betts <olly@survex.com>
* HACKING: Updated to reflect extra jobs which cvs-tag-release now
does.
Mon Dec 20 16:25:21 GMT 2004 Olly Betts <olly@survex.com>
* bin/Makefile.am: quartzcompact now uses getopt, so need to link
it in our version to build on non-glibc platforms.
Mon Dec 20 16:23:28 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Added comment noting why we can't
truncate separating keys at higher levels.
Thu Dec 16 14:46:28 GMT 2004 Olly Betts <olly@survex.com>
* HACKING: Fixed a typo, and improved wording.
Mon Dec 13 02:52:52 GMT 2004 Olly Betts <olly@survex.com>
* backends/multi/multi_postlist.cc: Updated (C) date.
Mon Dec 13 02:50:44 GMT 2004 Olly Betts <olly@survex.com>
* languages/: Added missing '#include <config.h>' to .cc files
(probably harmless, but it should be included as the first thing any
source file does).
Mon Dec 13 02:21:28 GMT 2004 Olly Betts <olly@survex.com>
* bin/quartzdump.cc: Mark the long options as const.
Mon Dec 13 02:20:08 GMT 2004 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Tables sizes will always be a whole number of
Kbytes, since the blocksize is, so report the size in K. Also
report the change in size as well as the before and after sizes.
Mon Dec 13 02:11:59 GMT 2004 Olly Betts <olly@survex.com>
* common/netutils.cc: Added missing '#include <config.h>' (probably
harmless, but it should be included as the first thing any source
file does).
Mon Dec 13 01:39:53 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Renamed
Btree::compress() to Btree::compact() for consistency with
"full_compaction" and "quartzcompact". Also, "compress" is
confusing since use "compact" and we use that term in the zlib
patch.
* backends/quartz/btree.cc: When full_compaction is enabled, don't
fill the last few bytes of a block if that would mean we needed
an extra item and the overhead for that item would use up more
of the next block than we save. This reduces the table size
after full compaction by up to 0.2% in my tests!
Mon Dec 13 01:39:02 GMT 2004 Olly Betts <olly@survex.com>
* backends/multi/multi_postlist.cc: Fixed to build with AssertParanoid
enabled.
Mon Dec 13 00:41:28 GMT 2004 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Added missing '#include <config.h>' so that
largefile support is enabled and we report compression statistics
for tables > 2G.
* bin/quartzcompact.cc: Added --no-full / -n option to disable full
compaction. This may be useful if you want to update the database
after compacting it (need to test to see if this option is actually
useful).
Sun Dec 12 21:26:27 GMT 2004 Olly Betts <olly@survex.com>
* xapian-config.in: Previous attempted fix to --libs output was wrong
- made it actually work.
Sun Dec 12 21:24:44 GMT 2004 Olly Betts <olly@survex.com>
* xapian.spec.in: %makeinstall puts the wrong paths in the .la files
so use "make DESTDIR=... install" instead.
Wed Dec 08 15:59:44 GMT 2004 Olly Betts <olly@survex.com>
* NEWS: Bumped the 0.8.4 release date.
Wed Dec 08 15:32:46 GMT 2004 Olly Betts <olly@survex.com>
* xapian-config.in: Make sure that --libs output doesn't include
libxapian.la (from libxapianqueryparser.la's dependencies).
Tue Dec 07 18:18:26 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_log.cc: Fixed to compile on mingw.
Tue Dec 07 15:57:44 GMT 2004 Olly Betts <olly@survex.com>
* NEWS: Updated.
* api/omdatabase.cc,backends/database.cc,bin/omtcpsrv.cc,
common/database.h,docs/,include/xapian/database.h,tests/api_db.cc:
Added constructors to Database and WritableDatabase which fulfil the
role that the Auto::open() factory functions currently do.
Auto::open() is now deprecated.
* api/,backends/inmemory/inmemory_database.cc,
backends/quartz/quartz_database.cc,backends/quartz/quartz_postlist.h,
common/expandweight.h,common/stats.h,include/xapian.h:
#include <xapian.h> no longer pulls in xapian/output.h - this
removes the external ability to write a Xapian object to an
ostream directly, as it's little used and potentially dangerous
('cout << mset[i];' will compile, but you almost certainly meant
'cout << *mset[i];'). You can get the old effect by writing
'cout << obj->get_description();' instead of 'cout << obj;'.
Adjusted all the library sources which relied on xapian/output.h
pulling in various other xapian/ headers.
* backends/muscat36/da_database.cc,backends/muscat36/db_database.cc:
Debug output tweaks.
* common/emptypostlist.h,matcher/mergepostlist.cc,matcher/multimatch.cc:
Added EmptyPostList::get_maxweight() which always returns 0, so you
no longer need to explicitly set a weighting scheme on an
EmptyPostList.
* common/omdebug.h: Only include omstringstream.h if
XAPIAN_DEBUG_VERBOSE is in effect.
* extra/Makefile.am: queryparsertest needs to link to libxapian.la
explicitly.
* net/progclient.cc: Whitespace tweak.
* testsuite/: Eliminated barely used sources indexer.h,
textfile_indexer.h, and textfile_indexer.cc.
* testsuite/backendmanager.cc: Removed unused functions
make_strvec() and index_file_to_database().
Wed Dec 01 07:15:46 GMT 2004 Olly Betts <olly@survex.com>
* PLATFORMS: SF CF x86_64 machine no longer needs --disable-shared.
Tue Nov 30 21:53:33 GMT 2004 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.ac: Updated for 0.8.4 release.
Tue Nov 30 03:07:43 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac,backends/database.cc,backends/quartz/bcursor.cc,
backends/quartz/quartz_database.cc,
backends/quartz/quartz_postlist.cc,common/omassert.h,
common/omdebug.cc,common/omdebug.h,docs/doxygen_full_conf.in,
matcher/localmatch.cc,matcher/multimatch.cc,matcher/stats.cc,
tests/apitest.cc,tests/btreetest.cc,testsuite/backendmanager.cc,
testsuite/backendmanager.h,testsuite/testsuite.cc: Rename all the
MUS_xxx defines to XAPIAN_xxx.
Tue Nov 30 02:36:33 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac,backends/quartz/btree.cc: Get configure to probe for
the prototypes (if any) needed for pread and pwrite.
Tue Nov 30 01:09:26 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Instead of trying to coax pread/pwrite
prototypes out of the system headers, let's try just providing our
own!
Mon Nov 29 19:51:13 GMT 2004 Olly Betts <olly@survex.com>
* extra/Makefile.am: Moved -no-undefined to the right place, plus we
also need to pass @ldflags@ and ../libxapian.la in
libxapianqueryparser_la_LIBADD.
Mon Nov 29 18:28:57 GMT 2004 Olly Betts <olly@survex.com>
* AUTHORS: Updated.
Mon Nov 29 18:27:12 GMT 2004 Olly Betts <olly@survex.com>
* extra/Makefile.am: Added -no-undefined to
libxapianqueryparser_la_LDFLAGS so it builds on mingw.
Mon Nov 29 17:46:54 GMT 2004 Olly Betts <olly@survex.com>
* tests/Makefile.am: Don't try to run "runtest" as a test - it just
needs to be a dependency of the tests.
Sat Nov 27 02:58:28 GMT 2004 Olly Betts <olly@survex.com>
* backends/inmemory/dir_contents: Trimmed whitespace.
Sat Nov 27 02:05:51 GMT 2004 Olly Betts <olly@survex.com>
* NEWS: Updated ready for 0.8.4 release.
Sat Nov 27 02:03:40 GMT 2004 Olly Betts <olly@survex.com>
* tests/Makefile.am: Added a dependency so "make check" regenerates
runtest if necessary.
Sat Nov 27 02:02:58 GMT 2004 Olly Betts <olly@survex.com>
* AUTHORS: Updated.
Sat Nov 27 01:59:18 GMT 2004 Olly Betts <olly@survex.com>
* README: Minor tweak.
Sat Nov 27 01:58:53 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Improved a couple of comments.
Sat Nov 27 01:42:32 GMT 2004 Olly Betts <olly@survex.com>
* docs/: Trimmed trailing whitespace.
Sat Nov 27 01:41:33 GMT 2004 Olly Betts <olly@survex.com>
* docs/stemming.html: Reworded text from BrightStation times which
talked about "the open source release".
Fri Nov 26 17:32:55 GMT 2004 Olly Betts <olly@survex.com>
* docs/indexerquickstart.html: Removed dead documentation.
Fri Nov 26 17:11:19 GMT 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Updated with new cygwin report.
Fri Nov 26 17:07:21 GMT 2004 Olly Betts <olly@survex.com>
* tests/api_anydb.cc,tests/api_nodb.cc,docs/bm25.html,
include/xapian/enquire.h,matcher/bm25weight.cc: Renamed BM25
parameters to match standard naming in papers and elsewhere
(A->k3, B->k1, C->k2, D->b), eliminated the extra factor of 2
which our C had, and reordered the parameters to k1, k2, k3.
This is an incompatible API change for BM25Weight(), so if
you are using custom parameters for BM25 you'll need to
update your code.
Fri Nov 26 15:20:16 GMT 2004 Olly Betts <olly@survex.com>
* tests/runtest.in: Allow VALGRIND environmental variable to override
the value we got from configure.
Fri Nov 26 03:50:36 GMT 2004 Olly Betts <olly@survex.com>
* matcher/bm25weight.cc,matcher/tradweight.cc: termfreq is always
exact for matching (we only approximate it for query expansion)
so replace code to work around bad approximations with Assert() to
make sure this never happens.
Fri Nov 26 00:19:22 GMT 2004 Olly Betts <olly@survex.com>
* matcher/expandweight.cc,matcher/tradweight.cc: If we estimate the
term frequency, ensure it has a sane value (>= r and <= N - R + r)
rather than bodging around the problem later on.
Thu Nov 25 01:29:36 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Fixed recent cygwin change to
actually compile.
Thu Nov 25 01:06:03 GMT 2004 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Added --help and --version; Check that the
source path and desitination path aren't the same; Report each table
name when we start compacting it, and some simple stats on the
compaction achieved when we finish.
Tue Nov 23 16:19:09 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Fixed m4 quoting problem.
Tue Nov 23 12:47:54 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Fix the test for GCC3 used to turn on -Werror with
--enable-maintainer-mode.
Mon Nov 22 03:08:10 GMT 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Assorted updates.
Mon Nov 22 02:15:22 GMT 2004 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Test with DB_CREATE_OR_OPEN in writelock1.
Mon Nov 22 01:37:13 GMT 2004 Olly Betts <olly@survex.com>
* common/utils.cc: define NOMINMAX as a cleaner way to prevent
windows.h from polluting the namespace and colliding with ANSI C++.
Sat Nov 20 14:36:43 GMT 2004 Olly Betts <olly@survex.com>
* tests/runtest.in: --logfile-fd was renamed to --log-fd in valgrind
2.1.2 with no support for the old option name, so we must probe
to decide which to use.
Fri Nov 19 13:18:43 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/bcursor.cc,backends/quartz/bcursor.h: Eliminated
Bcursor::get_tag() - it's an internal method only used from one
other method, and it now just a trivial wrapper around
Btree::read_tag().
Fri Nov 19 04:20:39 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/bcursor.cc,backends/quartz/btree.cc,
backends/quartz/btree.h: Factored out near identical code from
Btree::find_tag() and Bcursor::get_tag() into Btree::read_tag().
Thu Nov 18 03:27:52 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Applied the Quartz "DANGEROUS" patch, but
disabled for now. This way it won't keep being broken by changes
to the code.
Tue Nov 16 04:29:25 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Ah, it's __sun__/__sun/sun, not
__solaris__ (at least for x86 Solaris 9).
Tue Nov 16 02:56:44 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Solaris defines __solaris__ not
__SOLARIS__.
Mon Nov 15 12:40:38 GMT 2004 Olly Betts <olly@survex.com>
* tests/api_db.cc: Added new test userweight1 to test user defined
matching schemes.
Sun Nov 14 05:20:34 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_metafile.cc,
backends/quartz/quartz_metafile.h: Removed unused
QuartzMetaFile::erase() method.
Sun Nov 14 04:55:05 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: For cygwin, use the underlying
MoveFile API call for locking, as link() doesn't work on FAT
partitions. And don't rely on HAVE_LINK to control whether we
use link() otherwise - if the configure test somehow misfires, a
compilation error is better than using rename() on Unix as that
would cause a second writer to smash the lock of the first.
Thu Nov 11 06:58:41 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Removed superfluous statement.
Tue Nov 09 23:50:10 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Need to include sys/types.h to define
ssize_t, size_t, and off_t before we prototype pread and pwrite
for OSF.
Tue Nov 09 22:39:00 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Tweaked the pread/pwrite mess to try to
get it to work on OSF and x86 Solaris while not breaking it
elsewhere.
Tue Nov 09 19:29:37 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: More refactoring.
Tue Nov 09 17:13:10 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/: More refactoring. Also rearranged the contents
of the quartz and btree headers, eliminating btree_types.h in the
process.
Tue Nov 09 16:47:13 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_metafile.cc: Using fdcloser is less clear in
trivial cases.
Tue Nov 09 16:38:47 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Close the fd of the lock file
before trying to rename it on Windows.
Tue Nov 09 07:58:02 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
backends/quartz/btree_util.h: More refactoring.
Tue Nov 09 03:24:59 GMT 2004 Olly Betts <olly@survex.com>
* xapian-config.in: Added --swigflags option for use with SWIG.
Mon Nov 08 22:54:55 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac,xapian-config.in: If flags are needed to select ANSI
mode with the current compiler, then make xapian-config --cxxflags
include them so that Xapian users don't have to jump through the
same hoops we do.
Mon Nov 08 04:49:21 GMT 2004 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,backends/muscat36/,
backends/net/net_database.cc,backends/quartz/quartz_database.cc,
backends/quartz/quartz_database.h,common/database.h,
common/net_database.h,matcher/localmatch.cc: If a database contains
no positional information, change NEAR and PHRASE queries into AND
queries (as otherwise they'd return no matches at all) (bug#56).
* tests/api_wrdb.cc: Added feature test phraseorneartoand1.
Mon Nov 08 04:09:04 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac,backends/quartz/btree.cc: Improved what we do to
turn on pread and pwrite declarations in unistd.h so that it works
on OSF and doesn't need the HAVE_GLIBC test, yet still works on
OpenBSD.
Mon Nov 08 03:55:51 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/,testsuite/btreecheck.cc: More refactoring.
Sun Nov 07 20:42:32 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: One more tweak.
Sun Nov 07 18:18:19 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac,include/xapian/version.h.in: Another tweak to hopefully
get version.h generation to work everywhere.
Sun Nov 07 15:01:23 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac,include/xapian/version.h.in: Terminating lines with 'N'
makes Sun's C++ unhappy. Try ',' instead.
Sun Nov 07 03:54:42 GMT 2004 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Added test_weight1 which tests the built-in
Xapian::Weight subclasses (bug#8).
Sun Nov 07 03:36:19 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree_util.h,
testsuite/btreecheck.cc: More refactoring.
Sun Nov 07 03:33:24 GMT 2004 Olly Betts <olly@survex.com>
* matcher/bm25weight.cc,matcher/tradweight.cc: Fixed definitions to
match declarations after recent change.
Sun Nov 07 02:33:50 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Noted LIBRARY_VERSION_INFO which 0.8.4 will get.
Sun Nov 07 02:28:38 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: BoolWeight::unserialise() returns
BoolWeight*, etc. BoolWeight::clone() returns BoolWeight *.
Sun Nov 07 02:24:17 GMT 2004 Olly Betts <olly@survex.com>
* HACKING: Note that C++ style casts are preferable to C style casts;
Improve wording in a few places.
Sun Nov 07 01:05:58 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree_util.h,
testsuite/btreecheck.cc: Moved set_block_given_by()
and block_given_by() into Item class.
Sat Nov 06 21:16:15 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac,include/xapian/version.h.in: Fix generation of
version.h to work with aCC -E which concatenates adjacent literal
strings.
Sat Nov 06 20:58:00 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/,testsuite/btreecheck.cc: Started to refactor the
Btree manager by introducing Item and Key classes which take care
of handling the on-disk format.
Sat Nov 06 15:40:05 GMT 2004 Olly Betts <olly@survex.com>
* xapian-config.in,m4/xapian.m4: Pass across ac_top_srcdir and use it
if provided to say "configure.ac" or "configure.in" rather than
"configure.in (or configure.ac)" in the "Add AC_PROG_LIBTOOL"
error message.
Sat Nov 06 14:49:05 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Updated comment - we now find SOURCEDOC in 2 goes (as
there are no longer any C sources).
Sat Nov 06 14:43:16 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Oops, STLPORT_CXXFLAGS *is* used (in xapian-config.in)
so revert the change which removes it.
Sat Nov 06 13:37:23 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/enquire.h,matcher/bm25weight.cc,
matcher/tradweight.cc: Move virtual methods of BM25Weight and
TradWeight out of the header.
Sat Nov 06 13:19:32 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac,include/xapian/version.h.in: Another rework of how
include/xapian/version.h is generated - this time to make it work
with Sun's C++ compiler again; XAPIAN_VERSION is now a string;
Define XAPIAN_REVISION (which is 4 for version 0.8.4).
Sat Nov 06 04:22:57 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Don't AC_SUBST(STLPORT_CXXFLAGS) as it is never used
that way (it's included in AM_CXXFLAGS).
Sat Nov 06 01:03:53 GMT 2004 Olly Betts <olly@survex.com>
* testsuite/testsuite.h: Removed incorrect comment about how STRINGIZE
is used.
Fri Nov 05 14:41:59 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/database.h: Removed a default parameter value from one
variant of open_db so that there's only one candidate for
open_db(string).
Fri Nov 05 14:40:38 GMT 2004 Olly Betts <olly@survex.com>
* backends/database.cc: Renamed parameter from keys to values to
reflect current external naming.
Fri Nov 05 14:38:07 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/version.h.in,configure.ac: Fixed generation of
include/xapian/version.h to work with aCC.
Thu Nov 04 12:17:50 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Try "-std strict_ansi" for Compaq C++.
Thu Nov 04 11:22:52 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Fourth argument to AC_CHECK_HEADERS must be non-empty
to make a difference.
Thu Nov 04 10:21:25 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Found clean fix for inttypes.h problem (previous bodge
didn't work anyway).
Thu Nov 04 01:18:55 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Eliminated use of \( \) in sed expression as it
appears to cause problems on HP-UX.
Thu Nov 04 00:54:11 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Added icky workaround to Compaq C++ oddness - cc can
find inttypes.h but cxx can't.
Wed Nov 03 23:58:48 GMT 2004 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
net/socketserver.cc: Tweaked to compile with Compaq C++.
Wed Nov 03 22:55:04 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Need to put flags to select ANSI C++ mode in CXXFLAGS
not AM_CXXFLAGS.
Wed Nov 03 22:27:08 GMT 2004 Olly Betts <olly@survex.com>
* api/omenquire.cc: Fixed typo.
Wed Nov 03 21:58:53 GMT 2004 Olly Betts <olly@survex.com>
* api/omenquire.cc: Added explicit cast to try to help Compaq C++
build.
Wed Nov 03 21:38:29 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Probe for C++ compiler switches for ANSI mode as early
as possible. With Compaq's C++, we need -D__USE_STD_IOSTREAM to
successfully #include <streambuf>.
Wed Nov 03 21:07:43 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Fixed snprintf configure test.
Wed Nov 03 19:37:32 GMT 2004 Olly Betts <olly@survex.com>
* common/utils.cc: Fixed typo.
Wed Nov 03 19:27:22 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac,common/utils.cc: Improved snprintf checking.
Wed Nov 03 15:43:54 GMT 2004 Olly Betts <olly@survex.com>
* getopt/getopt.cc: Fixed to compile when not using glibc.
Wed Nov 03 14:55:29 GMT 2004 Olly Betts <olly@survex.com>
* bin/omtcpsrv.cc,bin/quartzdump.cc,common/Makefile.am,common/getopt.h,
common/gnu_getopt.h,getopt/,testsuite/testsuite.cc: Major overhaul
of getopt use. Move from getopt(), getopt_long(), getopt_long_only()
to gnu_getopt(), etc so we don't need to dance around avoiding
clashes with getopt() stuff in system headers. The new gnu_getopt.h
header is cruft free and hopefully won't trip up assorted compilers
or platforms.
Wed Nov 03 14:53:39 GMT 2004 Olly Betts <olly@survex.com>
* tests/Makefile.am: quartztest doesn't use getopt directly, so no
need to link it.
Wed Nov 03 12:56:56 GMT 2004 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Prune unused #includes.
Wed Nov 03 03:47:46 GMT 2004 Olly Betts <olly@survex.com>
* getopt/getopt.cc: Defining _NO_PROTO is a really bad idea for C++
code!
Wed Nov 03 03:34:06 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Removed AC_HEADER_STDC - Compaq's C++ compiler can't
find inttypes.h, but their C compiler can!
Wed Nov 03 02:48:04 GMT 2004 Olly Betts <olly@survex.com>
* net/tcpclient.cc,net/tcpserver.cc: Use SOCKLEN_T for the type we
need to pass to various socket calls, since HPUX defines socklen_t
yet wants int in those calls.
Wed Nov 03 02:43:26 GMT 2004 Olly Betts <olly@survex.com>
* autoconf/type_socklen_t.m4,matcher/networkmatch.cc,net/: If
__WIN32__ is defined, we want winsock2.h instead of sys/socket.h.
Mingw doesn't seem to even have the latter, so I think previously
we've been compiling by picking one up from somewhere random!
Wed Nov 03 01:10:01 GMT 2004 Olly Betts <olly@survex.com>
* autoconf/type_socklen_t.m4: Rewritten to work with HPUX which
helpfully defines socklen_t but doesn't use it!
Tue Nov 02 21:29:40 GMT 2004 Olly Betts <olly@survex.com>
* getopt/getopt.cc: Fixes for Compaq C++.
Tue Nov 02 18:51:43 GMT 2004 Olly Betts <olly@survex.com>
* getopt/getopt.cc: Protect getopt definition for possible getopt
macro declared in getopt.h.
Tue Nov 02 16:52:21 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: AM_CONFIG_HEADER -> AC_CONFIG_HEADERS; removed
commented out AC_LANG_SAVE and AC_LANG_RESTORE.
Tue Nov 02 15:56:02 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: # comments -> dnl comments.
Tue Nov 02 15:54:46 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: $GCC -> $GXX; $CC -> $CXX.
Tue Nov 02 15:38:21 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac,docs/Makefile.am: Removed SOURCEDOC_C_SRC.
Tue Nov 02 06:51:39 GMT 2004 Olly Betts <olly@survex.com>
* getopt/getopt.cc,getopt/getopt1.cc: Fixed function declarations to
not use K&R C syntax.
Tue Nov 02 05:31:57 GMT 2004 Olly Betts <olly@survex.com>
* getopt/getopt.cc: Make _getopt_internal extern "C" too.
Tue Nov 02 04:43:08 GMT 2004 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,HACKING,PLATFORMS,backends/muscat36/,
getopt/Makefile.am,getopt/getopt.cc,getopt/getopt1.cc,languages/:
Change the few C sources to be C++. This way we don't need to
worry about configure choosing a mismatching pair of compilers,
or about whether configure tests with the C compiler don't apply
to the C++ compiler, or vice versa.
Tue Nov 02 04:31:49 GMT 2004 Olly Betts <olly@survex.com>
* backends/muscat36/: More C casts converted to C++ casts.
Tue Nov 02 04:28:07 GMT 2004 Olly Betts <olly@survex.com>
* matcher/bm25weight.cc,matcher/tradweight.cc: More C casts converted
to C++ casts.
Tue Nov 02 03:22:52 GMT 2004 Olly Betts <olly@survex.com>
* backends/muscat36/: Removed unused test harness sources.
Tue Nov 02 02:44:34 GMT 2004 Olly Betts <olly@survex.com>
* languages/pool.c,languages/pool.h: Removed unused sources.
Tue Nov 02 01:51:30 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: AC_TYPE_SIZE_T causes problems with Compaq C++ when it
fails to spot size_t (which is there) and the "#define size_t
unsigned long" it adds to config.h breaks "using std::size_t;".
Also removed AC_C_CONST as I don't believe that's needed either
in a largely C++ library. Both of these have been in configure.in
since the very first version so I suspect autoscan decided we wanted
them.
Mon Nov 01 05:44:02 GMT 2004 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fixed compilation problem on alpha Linux.
Mon Nov 01 03:16:36 GMT 2004 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,api/omstem.cc,
backends/inmemory/inmemory_database.h,
backends/multi/multi_termlist.h,backends/quartz/,
extra/queryparser.yy,matcher/,net/tcpserver.cc,tests/api_anydb.cc,
tests/api_db.cc,tests/quartztest.cc,testsuite/backendmanager.cc,
testsuite/btreecheck.cc,testsuite/testsuite.cc: Changed C style
casts to C++ style. The syntax is ugly, but they do make the intent
clearer which is a good thing.
Mon Nov 01 02:56:31 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Select ANSI iostream implementation for Compaq C++.
Mon Nov 01 02:41:58 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Compaq's C++ compiler doesn't know snprintf, yet their
C compiler does. Let's try running *all* the configure checks with
the C++ compiler, since that's what we compile most code with.
Mon Nov 01 01:12:43 GMT 2004 Olly Betts <olly@survex.com>
* common/netutils.cc: Fixed to compile.
Mon Nov 01 01:06:13 GMT 2004 Olly Betts <olly@survex.com>
* common/Makefile.am,common/netutils.cc,common/netutils.h:
encode_tname() and decode_tname() aren't really sensible candidates
for inlining so move them out of a header.
Sun Oct 31 15:34:18 GMT 2004 Olly Betts <olly@survex.com>
* configure.ac: Turn on -AA when compiling with HP's aCC.
Sun Oct 31 15:10:02 GMT 2004 Olly Betts <olly@survex.com>
* testsuite/testutils.cc: Fixed mset_range_is_same() and
mset_range_is_same_weights() which were only comparing the
first items in the range. Luckily the tests still all pass
so this wasn't hiding any bugs.
Sat Oct 30 19:15:48 BST 2004 Olly Betts <olly@survex.com>
* configure.ac: Disable pread/pwrite on HP-UX as they don't work when
LFS in enabled, and we definitely want LFS.
Sat Oct 30 16:42:24 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/bcursor.cc: Fix Bcursor::del() which didn't always
leave the cursor on the next item like it should.
* backends/quartz/quartz_postlist.cc: If we're removing a posting
list entirely, often there will only be one chunk, so avoid
creating a Bcursor in this case.
Sat Oct 30 16:55:19 BST 2004 Olly Betts <olly@survex.com>
* languages/header.h: Removed unused #define MAXINT and MININT which
were clashing with some header on HP-UX.
Sat Oct 30 07:09:33 BST 2004 Olly Betts <olly@survex.com>
* docs/bm25.html,docs/intro_ir.html: Reworked to talk about Xapian
rather than Muscat. Also improved the appearance of the formulae.
Sat Oct 30 06:07:14 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Btree::read_block - debug log the value
of p, not the irrelevant contents of the block it points to.
Fri Oct 29 22:37:31 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Improved comments.
Fri Oct 29 05:10:02 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Fixed ultra-obscure bug in the code which
finds a key suitable to discriminating between two blocks in a
B-tree branch (discovered by reading the code). Comparing the keys
didn't consider the length of the second, so it is possible the code
would miscompare. But in reality this is extremely unlikely to
happen, and even then would probably just mean that the
discriminating key wouldn't be as short as it could be.
Fri Oct 29 04:12:09 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Simplified Btree::compare_keys() by
removing the last case which was dead code as it was covered by
an earlier case.
Wed Oct 27 21:17:12 BST 2004 Olly Betts <olly@survex.com>
* HACKING,tests/runtest.in:
Enhanced runtest to allow it to run test programs under valgrind
and other tools (gdb was already supported).
* testsuite/testsuite.cc: Point the user to the runtest script if
srcdir can't be guessed. And no longer look for the test program
in the tests subdirectory of the current directory.
* common/omdebug.cc: Removed compatibility code for checking
OM_DEBUG_FILE and OM_DEBUG_TYPES.
* HACKING: Document that %% in XAPIAN_DEBUG_LOG is substituted with
the process-id, and that setting XAPIAN_DEBUG_FLAGS to -1 enables
all debug messages.
* HACKING: Valgrind now supports x86 FreeBSD and PowerPC Linux.
* HACKING: Removed mentions of long-dead configure options
--enable-profiling, --enable-purify and --enable-insure.
Wed Oct 27 21:16:10 BST 2004 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Document parameters of
Enquire::register_match_decider().
Wed Oct 27 21:14:32 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Updated.
Wed Oct 13 20:21:38 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Revert the
previous change as runtime sized arrays are a g++ extension.
Calling new and delete on every call to add_item() is probably
unwise.
Tue Oct 12 23:40:36 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: split_p is only
used by Btree::add_item(), so make it a temporary in that method
rather than a class member variable which we need to take care to
allocate and deallocate.
Mon Oct 11 16:32:10 BST 2004 Olly Betts <olly@survex.com>
* tests/btreetest.cc: Fix memory leaks in test_cursor1.
Mon Oct 11 02:24:50 BST 2004 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Use 5 tables in the example for how we keep
revisions in step, since we use 5 tables in quartz.
Thu Oct 07 22:51:28 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: An interrupted update could cause any
further updates to fail with "New revision too low" because the
new revision was being calculated incorrectly - fixed.
Wed Oct 06 15:42:31 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,include/xapian/database.h: Check that any
user specified block size is a power of 2. And if the block size
passed is invalid, use the default of 8192 rather than throwing an
exception.
Wed Oct 06 12:19:39 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Updated from tinderbox.
Wed Oct 06 01:10:46 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/quartz_document.cc,
matcher/multimatch.cc,common/multimatch.h: Fix some warnings
from Sun's C++ compiler.
Thu Sep 30 22:16:37 BST 2004 Olly Betts <olly@survex.com>
* common/utils.cc,common/utils.h: Fixes for win32 and sun's c++
compiler.
Thu Sep 30 18:24:20 BST 2004 Olly Betts <olly@survex.com>
* common/utils.h,extra/queryparser.yy: Fixed bug which caused
misparsing of certain prefixed queries, introduced by C_isXXXXX
change.
Thu Sep 30 11:09:17 BST 2004 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Modified version of changequery1 fails - the
fix is tricky, so just make it SKIP for now.
Wed Sep 29 21:33:29 BST 2004 Olly Betts <olly@survex.com>
* extra/Makefile.am: Fixed to work when srcdir != builddir.
Wed Sep 29 18:52:04 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS,docs/Makefile.am: Workaround odd latex problem.
Wed Sep 29 17:10:00 BST 2004 Olly Betts <olly@survex.com>
* configure.ac,docs/doxygen_api_conf.in,docs/doxygen_full_conf.in:
Updated doxygen conf files for doxygen 1.3.8.
Wed Sep 29 16:52:53 BST 2004 Olly Betts <olly@survex.com>
* common/utils.cc,common/utils.h,extra/Makefile.am,
extra/queryparser.yy,tests/api_anydb.cc,testsuite/index_utils.cc:
Provide our own C_isalpha(), etc replacements for isalpha(), etc
which always work in the C locale and avoid signed char problems.
Tue Sep 28 00:04:11 BST 2004 Olly Betts <olly@survex.com>
* common/utils.cc,common/utils.h: rmdir() isn't a sensible candidate
for inlining so move it out of the header.
Mon Sep 27 17:33:23 BST 2004 Olly Betts <olly@survex.com>
* extra/queryparser.yy: Be smarter about when to add a ':' when adding
a term prefix.
Mon Sep 27 16:01:37 BST 2004 Olly Betts <olly@survex.com>
* docs/scalability.html: Added note warning about benchmarking from
cold.
Mon Sep 27 15:20:13 BST 2004 Olly Betts <olly@survex.com>
* HACKING: Note that we use doxygen 1.3.8 for snapshots and releases;
Note that --enable-maintainer-mode now automatically enables -Werror
with GCC 3.0 or newer.
Wed Sep 22 16:49:20 BST 2004 Olly Betts <olly@survex.com>
* matcher/: Pruned unneeded #include-s and other tidying, some
enabled by the previous change.
Wed Sep 22 14:04:27 BST 2004 Olly Betts <olly@survex.com>
* common/positionlist.h,matcher/: Moved all of the implementations
of the XXXPostList classes from the .h files into the .cc files.
All the methods are virtual, so we aren't going to gain anything
from being able to inline them.
Wed Sep 22 02:58:59 BST 2004 Olly Betts <olly@survex.com>
* configure.ac: Automatically add -Werror to CFLAGS and CXXFLAGS if
maintainer mode is enabled and we're using GCC3 or newer. Don't
do this for older GCCs as GCC 2.95 issues spurious warnings.
Wed Sep 22 02:41:41 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h:
Introduced CASSERT_TYPE_UNSIGNED to replace the common use of
CASSERT to assert at compile time that a type is unsigned.
Tue Sep 21 15:58:05 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Removed reports from versions prior to 0.7.0. So much
has changed that these are of little value.
Mon Sep 20 15:24:27 BST 2004 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.ac: Version 0.8.3.
Mon Sep 20 15:13:34 BST 2004 Olly Betts <olly@survex.com>
* AUTHORS: Updated.
Mon Sep 20 14:26:35 BST 2004 Olly Betts <olly@survex.com>
* xapian.spec.in: Removed reference to xapian-examples' createdatabase
(which is no longer in xapian-examples).
Mon Sep 20 13:06:59 BST 2004 Olly Betts <olly@survex.com>
* xapian.spec.in: Updated version from Fabrice Colin (incorporating
changes from Alan Cox's RPM spec files): split off libs into a
separate package to allow 32 and 64 bit versions to be installed
concurrently; include binaries from xapian-examples; updated source
URLs.
Mon Sep 20 03:25:44 BST 2004 Olly Betts <olly@survex.com>
* tests/api_anydb.cc: Added regression test for previous bug (test
checkatleast1).
Mon Sep 20 03:16:14 BST 2004 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fixed segfault with check_at_least when there
were no matches.
Sun Sep 19 17:54:52 BST 2004 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/omdebug.cc: Fixed to compile with debug
tracing enabled.
Sat Sep 18 19:02:54 BST 2004 Olly Betts <olly@survex.com>
* tests/api_db.cc: Updated missed use of omprogsrv to xapian-progsrv.
Tue Sep 14 18:09:19 BST 2004 Olly Betts <olly@survex.com>
* xapian.spec.in,bin/.cvsignore,bin/Makefile.am,debian/control.in,
debian/xapian-tools.install,docs/remote.html,tests/remotetest.cc,
testsuite/backendmanager.cc: Rename omtcpsrv to xapian-tcpsrv and
omprogsrv to xapian-progsrv.
Tue Sep 14 16:25:06 BST 2004 Olly Betts <olly@survex.com>
* xapian.spec.in: Fixed mangled URL in last checkin.
Tue Sep 14 15:35:00 BST 2004 Olly Betts <olly@survex.com>
* xapian.spec.in: Updated URL for tarball.
Tue Sep 14 02:49:34 BST 2004 Olly Betts <olly@survex.com>
* HACKING: Updated the "how to do a release" tasklist.
Mon Sep 13 03:19:47 BST 2004 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.ac: Version 0.8.2.
Sat Sep 11 16:39:08 BST 2004 Olly Betts <olly@survex.com>
* include/xapian/version.h.in: GCC 3.1 reported the wrong value for
__GXX_ABI_VERSION (100 not 101) so check 3.0 and 3.1 by version
number, keeping the __GXX_ABI_VERSION check for newer versions.
Sat Sep 11 02:57:48 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/bcursor.cc: Fixed and reenabled Bcursor::prev()
(not currently used, but it will be useful for running posting
lists backwards!)
Fri Sep 10 13:13:51 BST 2004 Olly Betts <olly@survex.com>
* tests/Makefile.am: Need to ship test data for new test.
Thu Sep 09 21:58:37 BST 2004 Olly Betts <olly@survex.com>
* tests/api_db.cc: Extended feature test sortrel1 to check interaction
with Enquire::set_sort_forward(false).
Thu Sep 09 21:46:12 BST 2004 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
include/xapian/enquire.h,matcher/multimatch.cc,net/socketserver.cc,
tests/api_db.cc,tests/testdata/apitest_sortrel.txt: You can now
specify to sort by value, then relevance, then docid instead of
by value then docid.
Thu Sep 09 19:30:07 BST 2004 Olly Betts <olly@survex.com>
* docs/todo.xml: Removed unused file - todo entries are now in
bugzilla.
Thu Sep 09 13:11:52 BST 2004 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
include/xapian/enquire.h,matcher/multimatch.cc,net/socketserver.cc:
Added optional "checkatleast" parameter to Enquire::get_mset()
which allows Omega's MIN_HITS functionality to be implemented
in the matcher (a bit more efficient).
Thu Sep 09 04:18:32 BST 2004 Olly Betts <olly@survex.com>
* NEWS: Updated.
Thu Sep 09 03:39:52 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Updated from the tinderbox. Sun's C++ compiler can
now build Xapian on sparc!
Thu Sep 09 02:19:43 BST 2004 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: Added feature test for
WritableDatabase::replace_document() and delete_document() with
a unique term (apitest:uniqueterm1.
* backends/inmemory/inmemory_alltermslist.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h:
Fixed bugs thrown up by the new test.
Wed Sep 08 19:45:37 BST 2004 Olly Betts <olly@survex.com>
* HACKING: Updated details of Solaris open workaround.
Wed Sep 08 19:42:15 BST 2004 Olly Betts <olly@survex.com>
* common/utils.h,backends/quartz/btree.cc,
backends/quartz/quartz_database.cc,backends/quartz/quartz_log.cc:
New version of the Solaris open dance - now we always pass in
const char * for the filename, and we don't need the dance on
new versions, so only dance if open is defined.
Wed Sep 08 16:26:15 BST 2004 Olly Betts <olly@survex.com>
* api/omquery.cc,include/xapian/query.h: Renamed Query::is_empty()
to Query::empty() for consistency. Keep Query::is_empty() for
now as a deprecated alias.
Wed Sep 08 16:24:44 BST 2004 Olly Betts <olly@survex.com>
* tests/api_wrdb.cc: replace_doc -> replace_doc1; added new test
replace_doc2 to test using replace_doc to add a document with
a specified docid.
Wed Sep 08 16:23:50 BST 2004 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.h: Removed unused member
variable "indexing".
Wed Sep 08 16:14:47 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: If replace_document() is used
to add a document with did greater than lastdocid, raise lastdocid
so future calls to add_document() won't clash.
Wed Sep 08 16:13:51 BST 2004 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc: Fixed bug
Database::replace_document() to work with a document id greater
than lastdocid.
Wed Sep 08 05:10:01 BST 2004 Olly Betts <olly@survex.com>
* common/utils.h: The latest fcntl.h dance causes a compile error on
mingw, so don't use it there.
Wed Sep 08 03:38:20 BST 2004 Olly Betts <olly@survex.com>
* common/utils.h: Use a namespace as an extra step in the Sun fcntl
open64 dance.
Tue Sep 07 02:33:50 BST 2004 Olly Betts <olly@survex.com>
* tests/test.da: Another cruft file removed.
Tue Sep 07 02:21:49 BST 2004 Olly Betts <olly@survex.com>
* tests/btreetest.cc,tests/quartztest.cc: Moved overwrite1 from
quartztest to btreetest. Added const in a few places.
Tue Sep 07 02:07:43 BST 2004 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Removed overwrite2 test. Digging back in CVS
it's been disabled since the day after it added. After all this
time it's hard to guess exactly what it was intended to test, so
just removing it seems simplest. We already have overwrite1 to test
getting DatabaseModifiedError.
Tue Sep 07 01:52:25 BST 2004 Olly Betts <olly@survex.com>
* tests/btreetest.cc: Cleaned up paths to temporary Btrees.
Mon Sep 06 17:51:27 BST 2004 Olly Betts <olly@survex.com>
* tests/btreetest.cc,tests/quartztest.cc: Now that QuartzTable,
QuartzDiskTable, QuartzBufferedTable, QuartzCursor,
QuartzDiskCursor, and QuartzBufferedCursor are gone, move
quartztest tests which now just use Btree and Bcursor to btreetest.
This is more logical and should help make quartztest less of a
monster to compile.
Mon Sep 06 12:47:47 BST 2004 Olly Betts <olly@survex.com>
* tests/Makefile.am: Ship testdata/apitest_allterms4.txt.
Mon Sep 06 02:46:32 BST 2004 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Xapian::Database will create the directory for
the database so there's no need to create it ourselves.
Mon Sep 06 02:40:57 BST 2004 Olly Betts <olly@survex.com>
* tests/,tests/testdata/apitest_allterms4.txt: Split off tests which
require a writable database backend and tests which should work with
any database backend from api_db.cc as it was getting rather large.
Fixed simplequery2 to work with backends which don't return the
document length (such as the muscat36 backends). Fixed allterms4
to work with muscat36 backends.
Mon Sep 06 02:39:29 BST 2004 Olly Betts <olly@survex.com>
* backends/muscat36/da_database.cc,backends/muscat36/db_database.cc:
Fixed to compile now that internal_end_session() has gone.
Mon Sep 06 00:59:36 BST 2004 Olly Betts <olly@survex.com>
* tests/runtest.in: Added support for running gdb on a test program,
automatically sorting out srcdir and libtool.
Mon Sep 06 00:49:11 BST 2004 Olly Betts <olly@survex.com>
* tests/apitest_parser.pm: Removed long unused file.
Sun Sep 05 22:53:27 BST 2004 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Tweaked documentation comment to stop
doxygen parsing a hyphen as a single entry bullet point list.
Sun Sep 05 20:20:01 BST 2004 Olly Betts <olly@survex.com>
* testsuite/backendmanager.h: Added missing "std::" so code will
compile with GCC >= 3.
Sun Sep 05 13:54:58 BST 2004 Olly Betts <olly@survex.com>
* testsuite/backendmanager.h: Removed superfluous "BackendManager::".
Sun Sep 05 01:54:49 BST 2004 Olly Betts <olly@survex.com>
* common/utils.cc,common/utils.h: Removed now unused files_exist()
function.
Sun Sep 05 01:50:35 BST 2004 Olly Betts <olly@survex.com>
* tests/api_db.cc,tests/apitest.cc,tests/apitest.h,
testsuite/backendmanager.cc,testsuite/backendmanager.h:
Cleaned up BackendManager by removing complications only required
by absentfile1 test, which can be implemented more directly anyway.
Sun Sep 05 01:33:16 BST 2004 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Cleaned up rather odd code which is a hangover
from when keys and tags weren't simply C++ strings.
Sat Sep 04 12:35:12 BST 2004 Olly Betts <olly@survex.com>
* HACKING: Updated details of which autotools we require.
Fri Sep 03 17:51:59 BST 2004 Olly Betts <olly@survex.com>
* configure.ac: Require autoconf 2.59. Noted LIBRARY_VERSION_INFO
which 0.8.2 will probably have.
* Makefile.am: Require automake 1.8.5.
Fri Sep 03 16:40:11 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Updated with results from tinderbox.
Fri Sep 03 14:34:00 BST 2004 Olly Betts <olly@survex.com>
* autoconf/definedir.m4,autoconf/rjb_find_stlport.m4: Quote macro
names to fix warning from newer aclocal. Removed comments about
future autodetection of stlport, as the user will always need to
decide between the STL supplied with the compiler and stlport.
Thu Sep 02 17:55:33 BST 2004 Olly Betts <olly@survex.com>
* matcher/andpostlist.cc: Initialise lmax and rmax to 0. Hopefully
this will fix SIGFPE on apitest's qterminfo2 on alpha linux.
Thu Sep 02 14:50:20 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Not storing the document length
and last docid on every add means that the magic key won't always
exists when there are records and
QuartzWritableDatabase::get_doccount() is sometimes off by one. Fix
crudely for now by making sure that the magic key does always exist.
Longer term the magic key probably should be in the postlist table
but that's an incompatible change.
Wed Sep 01 16:15:23 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/: Change QuartzWritableDatabase to store the total
document length and the last docid itself rather than tallying added
and removed document length and writing the last docid back every
time a document is added. This gives cleaner code and a small
performance win. Removed XAPIAN_FLUSH_THRESHOLD_LENGTH as we no
longer tally the length changes, and made the default flush
threshold 10000 documents (was 1000).
Wed Sep 01 14:21:19 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Turn on previously commented-out code to
make the first key null for blocks more than 1 away from the leaves.
It saves disk space for a tiny CPU and RAM cost so is bound to be
a win overall.
Tue Aug 31 13:55:58 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
backends/quartz/btree_util.h: Merged Btree::make_index_item() into
Btree::enter_key().
Tue Aug 31 01:07:19 BST 2004 Olly Betts <olly@survex.com>
* NEWS: Updated in preparation for a release.
Tue Aug 31 00:53:35 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Short-cutting Btree::cancel causes
problems so disable that for the time being at least.
Fri Aug 27 13:09:56 BST 2004 Olly Betts <olly@survex.com>
* testsuite/btreecheck.cc: Fixed %% to % (presumably a hangover from
converting printf to cout).
Thu Aug 26 18:11:50 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Reduce quartz postlist chunk
threshold from 2048 to 2000 so that chunks won't get split by the
Btree.
Thu Aug 26 18:10:27 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_record.cc: Throw DocNotFoundError if we
try to delete a record which doesn't exist.
Thu Aug 26 17:18:56 BST 2004 Olly Betts <olly@survex.com>
* configure.ac: Don't define DATADIR - we no longer use it and clashes
with more recent mingw headers.
Wed Aug 25 22:47:06 BST 2004 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Started section on quartzcompact.
Wed Aug 25 22:45:48 BST 2004 Olly Betts <olly@survex.com>
* api/omdatabase.cc,include/xapian/database.h: Changed new
WritableDatabase::replace_document(term, doc) method to return
the docid which the document was given.
Tue Aug 24 13:45:52 BST 2004 Olly Betts <olly@survex.com>
* api/omenquire.cc,include/xapian/enquire.h: Added new ESet methods
swap(), back() and operator[].
* include/xapian/enquire.h: Added documentation comments for
MSet methods size(), empty(), swap(), begin(), end(), back().
* include/xapian/enquire.h: Removed bogus documentation saying
that some Enquire methods can throw DatabaseOpeningError.
Tue Aug 24 10:24:30 BST 2004 Olly Betts <olly@survex.com>
* HACKING: Noted automake 1.8 may be problematic. Tweaked list of
release tasks.
Tue Aug 24 10:16:38 BST 2004 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: If a matchdecider is specified and no matches
are requested, the lower bound on the number of matches must be 0
(since the matchdecider could reject all the matches).
Mon Aug 23 23:03:12 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Improved the "Db block overwritten"
message. The DatabaseCorruptError version now suggests multiple
writers may be the cause, while the DatabaseModifiedError version
uses less alarming wording and says to call Database::reopen().
Sun Aug 22 14:07:35 BST 2004 Olly Betts <olly@survex.com>
* indexer/: Removed the old XML-based indexer framework. It's not
worked for ages, and nobody seems interested in ressurecting it.
If anyone ever is, they can fetch it back from CVS, but otherwise
it's just bulking up CVS checkouts.
Sun Aug 22 13:02:25 BST 2004 Olly Betts <olly@survex.com>
* Makefile.am,configure.ac,extra/Makefile.am: Moved the older library
version information into configure.ac.
Sun Aug 22 12:58:21 BST 2004 Olly Betts <olly@survex.com>
* HACKING,configure.in,configure.ac,backends/Makefile.am,
docs/Makefile.am: Renamed configure.in to configure.ac.
Sun Aug 22 12:47:43 BST 2004 Olly Betts <olly@survex.com>
* xapian-config.in: Add "(or configure.ac)" in message telling the
user to add a line to their configure.in.
Sun Aug 22 11:38:55 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree_util.h: Adjusted
some Asserts to check c is within blocksize rather than
65536. Added a FIXME for those which can't be trivially changed.
Sun Aug 22 10:56:56 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: No need to force a flush on
QuartzWritableDatabase::open_document() (the document will read
things lazily from the database, and that may trigger a forced
flush).
* backends/quartz/quartz_database.cc,
backends/quartz/quartz_database.h: Eliminated
QuartzDatabase::open_post_list_internal() and
QuartzDatabase::open_term_list_internal().
Sun Aug 22 01:33:05 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc,backends/quartz/quartz_record.cc,
backends/quartz/quartz_record.h: WritableDatabase::get_avlength()
no longer forces pending changes to be flushed. This means you can
now search a modified WritableDatabase without causing a flush
unless the search includes a term whose postlist has pending
modifications.
Fri Aug 20 20:03:59 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree_util.h,common/,docs/overview.html,
docs/quickstart.html,include/xapian/enquire.h,
matcher/branchpostlist.h,matcher/multimatch.cc,tests/api_db.cc:
Corrected multiple occurrences of "an Xapian::XXX" to "a Xapian::XXX"
(presumably these all resulted from replacing "Om" with "Xapian::").
Fri Aug 20 17:38:15 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/,bin/quartzcheck.cc,bin/quartzcompact.cc,
bin/quartzdump.cc,tests/btreetest.cc,tests/quartztest.cc:
Merged QuartzCursor into Bcursor.
Fri Aug 20 13:43:04 BST 2004 Olly Betts <olly@survex.com>
* NEWS,backends/quartz/: Fixed the problem with "lazy tag reading"
in QuartzCursor and reenable that code. The problem was with
deleting the current key, so added QuartzCursor::del() which
deletes the current key, leaving the cursor on the next item.
Fri Aug 20 13:04:33 BST 2004 Olly Betts <olly@survex.com>
* tests/api_db.cc: Reenabled test allterms2, but with the iterator
copying parts removed - TermIterator is an input_iterator so
that part was invalid.
Thu Aug 19 19:19:48 BST 2004 Olly Betts <olly@survex.com>
* NEWS: Updated from recent ChangeLog entries.
Thu Aug 19 14:09:28 BST 2004 Olly Betts <olly@survex.com>
* tests/api_db.cc: Added regression test for bug #37.
Thu Aug 19 13:31:37 BST 2004 Olly Betts <olly@survex.com>
* matcher/localmatch.cc: Fixed problems handling termweights in
queries with the same term repeated (bug #37).
Thu Aug 19 13:22:12 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_table.cc: Disable the "lazy tag reading" in
QuartzCursor for the time being - it seems to cause problems.
Thu Aug 19 12:58:10 BST 2004 Olly Betts <olly@survex.com>
* bin/quartzcheck.cc,bin/quartzdump.cc: Added calls to
QuartzCursor::read_tag().
Thu Aug 19 12:56:53 BST 2004 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Removed superfluous clear() of a map.
Thu Aug 19 12:56:08 BST 2004 Olly Betts <olly@survex.com>
* tests/api_db.cc: Corrected a comment - a pure boolean query has all
weights set to 0, not 1.
Mon Aug 16 15:41:33 BST 2004 Olly Betts <olly@survex.com>
* docs/: Removed unused and very out of date class diagrams in dia
format. Doxygen generates similar but up-to-date diagrams
automatically anyway.
Mon Aug 16 15:27:30 BST 2004 Olly Betts <olly@survex.com>
* xapian.spec.in,debian/libxapianVERSION-dev.install,
extra/.cvsignore,extra/Makefile.am,extra/omparsequery.h,
include/Makefile.am,include/om/.cvsignore,include/om/dir_contents,
include/om/om.h,m4/xapian.m4: Removed the compatibility layer which
allowed programs written against the pre-0.7.0 API to be compiled.
Mon Aug 16 15:08:08 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_table.cc: Fixed QuartzCursor::find()
to work again after the last change.
Mon Aug 16 14:43:08 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/,tests/quartztest.cc: QuartzCursor no longer
automatically reads the tag - you have to call read_tag() to
get it read. This speeds up iterator over all the terms in
a database. Also commented out QuartzCursor::prev as it's
unused and untested (at least in its latest form).
Mon Aug 16 12:39:56 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree_types.h: Made Bcursor.rewrite bool rather than
int.
Mon Aug 16 12:35:07 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Calculate and
store the latest revision number, rather than storing the other
one and working out which is newer every time we're asked.
Mon Aug 16 12:32:59 BST 2004 Olly Betts <olly@survex.com>
* docs/install.html: We haven't "only [...] UNIX" for ages, so don't
claim we are. We use libtool as well as autoconf and automake.
Link to the CVS snapshots. And also mention downloading omega.
Mon Aug 16 12:20:04 BST 2004 Olly Betts <olly@survex.com>
* docs/index.html: exaplains -> explains.
Mon Aug 16 12:18:34 BST 2004 Olly Betts <olly@survex.com>
* docs/overview.html: Removed references to "our company" (meaning
BrightStation) and to the now defunct special parameters which
the inmemory backend accepted to cause deliberate errors for
testing.
Sun Aug 15 23:48:20 BST 2004 Olly Betts <olly@survex.com>
* tests/btreetest.cc: item_count -> get_entry_count(); revision_number
-> get_open_revision_number().
Sun Aug 15 23:15:34 BST 2004 Olly Betts <olly@survex.com>
* backends/Makefile.am,backends/inmemory/Makefile.am: Fixed to compile
with --disable-inmemory (bug #33).
Sat Aug 14 18:56:06 BST 2004 Olly Betts <olly@survex.com>
* Makefile.am: Improved library versioning comment.
Sat Aug 14 18:55:17 BST 2004 Olly Betts <olly@survex.com>
* docs/overview.html: Fixed om_queryop to Xapian::Query::op, and added
missing OP_* codes to the list.
Sat Aug 14 17:44:39 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/bcursor.h,backends/quartz/btree.cc,
backends/quartz/btree.h,bin/quartzcompact.cc,docs/quartzdesign.html:
Updated quartz design docs to reflect recent changes. Also pulled
out the Btree and Bcursor API docs and slotted them in as doxygen
documentation comments - this way they're much more likely to
be kept up-to-date.
Sat Aug 14 15:59:07 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Removed unused
Btree default ctor.
Sat Aug 14 15:45:28 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Don't redundantly
store next_revision - it's always just revision_number + 1.
Sat Aug 14 15:30:30 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Implemented Btree::cancel directly rather
than closing and reopening the Btree.
Sat Aug 14 14:46:43 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/,bin/quartzcheck.cc,bin/quartzcompact.cc,
bin/quartzdump.cc,tests/btreetest.cc,tests/quartztest.cc,
testsuite/btreecheck.cc,testsuite/btreecheck.h: Eliminated
QuartzTable which had become just a thin wrapper around Btree.
Fri Aug 13 19:19:02 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc:
QuartzPostList::move_to_chunk_containing now calls next_chunk if
required, rather than forcing the caller to do the fix-up.
Fri Aug 13 17:54:53 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc,
backends/quartz/quartz_database.h: Added tunable flush thresholds
- set XAPIAN_FLUSH_THRESHOLD=5000 to flush every 5000 documents
or XAPIAN_FLUSH_THRESHOLD_LENGTH=1000000 to flush every 1000000
total change in document length. Set both to flush whichever is
reached first. Set neither and the default is to flush every
1000 documents as before.
Fri Aug 13 15:54:21 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/: Removed no-longer-used Btree::erase and
QuartzTable::erase methods.
Fri Aug 13 15:37:15 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/quartz_database.cc:
Changed Btree::create() to remove any pre-existing alternate base
file, so we no longer need to call Btree::erase before
Btree::create.
Fri Aug 13 15:37:15 BST 2004 Olly Betts <olly@survex.com>
* NEWS: Updated with changes since last release.
Fri Aug 13 15:36:04 BST 2004 Olly Betts <olly@survex.com>
* tests/api_posdb.cc,tests/quartztest.cc: Reworked quartztest's
positionlist1 into a generic api test as apitest's poslist3.
Thu Aug 12 16:26:42 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_table.cc,backends/quartz/quartz_table.h,
bin/quartzcheck.cc,bin/quartzdump.cc: QuartzCursor now has a
Bcursor member, rather than an AutoPtr<Bcursor> member.
Thu Aug 12 14:13:37 BST 2004 Olly Betts <olly@survex.com>
* tests/btreetest.cc: Fixed up in line with the recent refactoring.
Thu Aug 12 13:23:31 BST 2004 Olly Betts <olly@survex.com>
* m4/xapian.m4: XO_LIB_XAPIAN now AC_SUBSTs XAPIAN_VERSION.
Thu Aug 12 13:21:36 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/,tests/quartztest.cc: Refactored, replacing
Quartz*Manager with Quartz*Table.
Thu Aug 12 02:00:58 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/: Merged QuartzTableManager into QuartzDatabase.
Wed Aug 11 23:40:34 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h:
Eliminated buffered_tables member of QuartzWritableDatabase.
Wed Aug 11 21:26:35 BST 2004 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc,
backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
docs/todo.xml: WritableDatabase::replace_document can now be used
to add a document with a specific docid (to allow keeping docids
in sync with numeric UIDs from another system).
Wed Aug 11 20:09:15 BST 2004 Olly Betts <olly@survex.com>
* api/omdatabase.cc,include/xapian/database.h: Added replace_document
and delete_document variants which take a unique id term name rather
than a document id.
* include/xapian/database.h: Better documentation for replace_document
and delete_document.
Wed Aug 11 16:15:10 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/,bin/quartzcheck.cc,bin/quartzdump.cc,
tests/quartztest.cc: Eliminated QuartzBufferedTable.
Wed Jun 30 20:34:08 BST 2004 Olly Betts <olly@survex.com>
* NEWS: Fixed an unwrapped line.
Wed Jun 30 20:32:31 BST 2004 Olly Betts <olly@survex.com>
* HACKING: Added note about the cvs-tag-release script.
Wed Jun 30 19:05:45 BST 2004 Olly Betts <olly@survex.com>
* HACKING,NEWS,PLATFORMS,configure.in: Version 0.8.1.
Wed Jun 30 14:23:20 BST 2004 Olly Betts <olly@survex.com>
* AUTHORS,PLATFORMS: Updated.
Tue Jun 29 23:24:59 BST 2004 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Make emptyquery1 check that Query("") causes an
InvalidArgumentError exception.
Tue Jun 29 17:29:03 BST 2004 Richard Boulton <richard@tartarus.org>
* Makefile.am: Remove Debian files from distribution tarballs,
since there will often be multiple patch releases for each
release. Debian files will be available from an apt repository
in future.
Mon Jun 28 01:29:00 BST 2004 Olly Betts <olly@survex.com>
* NEWS: Mostly updated for 0.8.1 release.
Sun Jun 27 23:37:01 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Fixed bug in postlist merging.
Sat Jun 26 00:51:04 BST 2004 Olly Betts <olly@survex.com>
* AUTHORS: Add Malcolm Baldridge (helped fix a problem with building
the PHP bindings with newer versions of SWIG and PHP).
Fri Jun 26 00:29:10 BST 2004 Olly Betts <olly@survex.com>
* HACKING,api/ompositionlistiterator.cc,api/ompostlistiterator.cc,
api/omtermlistiterator.cc,include/xapian/: MSetIterator and
ESetIterator are now bidirectional iterators (rather than
just input iterators); Fixed post-increment forms of
PostingIterator, TermIterator, PositionIterator, and ValueIterator
so that *i++ works (as it must for them to be true input iterators).
Thu Jun 24 18:03:46 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Added success report for Slackware Linux 9.1.
Mon Jun 21 16:33:16 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Corrected -> to . so code
compiles with debug enabled.
Mon Jun 21 03:25:24 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Eliminated two calls to abort() - throw
exceptions instead.
Mon Jun 21 03:21:14 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Finish backing out incorrect
change from "Fri May 07 03:16:29 BST 2004" - failed to change two
lines back before.
Fri Jun 18 16:48:10 BST 2004 Richard Boulton <richard@tartarus.org>
* configure.in: Fix typo (STLPORT_CXXLAGS -> STLPORT_CXXFLAGS)
Thu Jun 17 03:46:32 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Cleaned up code to track
add vs delete vs modify of a posting list entry since we now
force a flush if an entry is about to be retouched.
Thu Jun 17 03:44:21 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Back out incorrect change from
"Fri May 07 03:16:29 BST 2004". We do need to call get_or_make_tag
in this case because we're modifying the tag.
Wed Jun 16 15:40:21 BST 2004 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.h: Implemented get_lastdocid()
for InMemory backend.
Wed Jun 16 02:39:41 BST 2004 Olly Betts <olly@survex.com>
* configure.in: Note the value of LIBRARY_VERSION_INFO which 0.8.1
would get if it were released now.
Wed Jun 16 02:39:11 BST 2004 Robert Pollak <robert.pollak@fabasoft.com>
* api/omdatabase.cc, include/xapian/database.h,
backends/database.cc, common/database.h,
backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h,
backends/quartz/quartz_record.cc, backends/quartz/quartz_record.h:
New method Database::get_lastdocid for re-synchronizing an old
quartz index.
Wed Jun 16 02:05:07 BST 2004 Richard Boulton <richard@tartarus.org>
* matcher/multimatch.cc: When collapsing, keep track of the number
of collapses performed, and use this information to modify the
bounds and estimate of the number of matches.
* tests/api_db.cc: Added tests for this.
* include/xapian/enquire.h: Update documentation comments for
MSet::get_matches_*() functions to make clear that collapsing and
cutoffs are taken into account. (Previously, the most likely
interpretation of the comments was that they wouldn't be taken
into account, but the implementation was that percentage cutoffs
were taken into account.) Due to this ambiguity, I think it is
reasonable to say this isn't an API change.
Wed Jun 16 01:55:29 BST 2004 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Rearranged code so that the behaviour can
be easily seen to be unchanged, but so that it's closer to the
result of applying Richard's patch for bug #31.
Wed Jun 16 01:27:09 BST 2004 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Trimmed extra whitespace.
Tue Jun 15 15:40:11 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Fixed PostlistChunkReader to
take a copy of the postlist data being read to avoid problems with
reading data from a string that's been deleted.
Tue Jun 15 15:26:54 BST 2004 Olly Betts <olly@survex.com>
* HACKING: Updated the list of tasks required for a new release.
Tue Jun 15 15:24:04 BST 2004 Olly Betts <olly@survex.com>
* Makefile.am,configure.in,extra/Makefile.am: Unify the shlib version
numbers (the small benefit of tracking them individually makes it
hard to justify the extra work required, and having one version
simplifies debian packaging too).
Tue Jun 15 14:52:36 BST 2004 Robert Pollak <robert.pollak@fabasoft.com>
* extra/xapian/queryparser.h: Fixed memory leaked upon QueryParser
destruction.
Fri Jun 11 02:18:35 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Refactored a loop.
Fri Jun 11 02:17:05 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Fixed bug which meant we
sometimes failed to remove a posting when deleting or replacing
a document.
Fri Jun 11 02:16:16 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc,
backends/quartz/quartz_postlist.h: Merged move_to() into skip_to().
Fri Jun 11 02:14:56 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Fixed typo in comment.
Thu May 27 15:41:45 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Eliminated the
split cursor - we only actually need a single block buffer to
handle splitting blocks.
Wed May 26 04:02:18 BST 2004 Olly Betts <olly@survex.com>
* include/om/om.h,include/xapian/errortypes.h: Removed several unused
Xapian::Error subclasses (these were used by the indexer framework
which we decided was a failed experiment).
Wed May 26 01:54:13 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: More DEBUGCALL
tracing added; split_root now uses level member rather than a
parameter.
Sun May 23 00:56:41 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Merge split_off()
into add_item().
Sat May 22 01:28:58 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Another DEBUGCALL.
* backends/quartz/quartz_table.h: Improved comments.
Fri May 21 23:17:01 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Removed unnecessary assignment which is
a hangover from the shared level code we removed long ago.
Fri May 21 20:31:56 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/,docs/quartzdesign.html,testsuite/btreecheck.cc:
Removed overwritten flag (unused as we throw an exception anyway).
If Btree is writable, throw DatabaseCorruptError if we detect
overwritten. Make use of bool return types consistent. Removed
documentation of Btree error codes (the error codes themselves
were removed a month ago).
Thu May 20 03:50:46 BST 2004 Olly Betts <olly@survex.com>
* include/xapian/database.h: Remove references to sessions in doxygen
comments.
Thu May 20 03:44:28 BST 2004 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/database.cc,
backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/muscat36/da_database.h,backends/muscat36/db_database.h,
backends/net/net_database.cc,backends/quartz/quartz_database.cc,
backends/quartz/quartz_database.h,common/database.h,
common/net_database.h: Clean up the backend interface.
Thu May 20 03:18:30 BST 2004 Olly Betts <olly@survex.com>
* backends/database.cc,backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,backends/muscat36/,
backends/net/net_database.cc,backends/quartz/quartz_database.cc,
backends/quartz/quartz_database.h,common/database.h:
Stripped out the session machinery - all that is actually required
is to ensure that any unflushed changes are flushed when the dtor
runs.
Mon May 17 01:04:17 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
backends/quartz/btree_types.h: Reworked split_p and split_n
members of Cursor into a separate C_split cursor. This
reduces the memory overhead of each Bcursor (and hence each
QuartzPostList).
Sat May 15 01:29:40 BST 2004 Olly Betts <olly@survex.com>
* docs/quickstart.html: Corrected lingering reference to "om.h" and
note that we need <iostream>.
* docs/quickstartindex.cc.html,docs/quickstartexpand.cc.html,
docs/quickstartsearch.cc.html: Add <iostream>.
* AUTHORS: Add John Ward for pointing out the above problems.
Fri May 14 00:59:51 BST 2004 Olly Betts <olly@survex.com>
* HACKING: Added the start of a list of subtasks when doing a release.
Currently it's always me that does this, but it may not always be
and anyhow it'll help me to have a list to run through.
Fri May 14 00:59:21 BST 2004 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Thu May 13 17:14:18 BST 2004 Olly Betts <olly@survex.com>
* extra/queryparser.yy: When stripping non-alphanums prior to
reparsing, keep dots ('.').
* extra/queryparsertest.cc: Pruned near-duplicate queryparsertest
testcases.
Thu May 13 12:09:19 BST 2004 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: "interger" -> "integer".
Thu May 13 11:20:44 BST 2004 Olly Betts <olly@survex.com>
* Makefile.am: Removed bogus extra line added by last change.
Thu May 13 11:11:31 BST 2004 Olly Betts <olly@survex.com>
* configure.in,Makefile.am,autoconf/.cvsignore,autoconf/Makefile.am,
m4/.cvsignore,m4/Makefile.am: Removed trivial m4/Makefile.am and
and autoconf/Makefile.am and do the work from the top level
Makefile.am instead. It's easy to see the structure this way, and
it also removes a couple of recursive make invocations.
Thu May 13 09:32:22 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Added DEBUGCALL
tracing; Stripped out C_ parameters where they are always the
internal cursor C.
Thu May 13 00:05:45 BST 2004 Olly Betts <olly@survex.com>
* extra/queryparser.yy,extra/queryparsertest.cc: If we fail to parse
a query, try stripping out non-alphanumerics and reparsing.
Wed May 12 14:32:54 BST 2004 Olly Betts <olly@survex.com>
* common/omtime.h: Corrected file description.
Wed May 12 02:08:44 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Fixed typos in comment.
Tue May 11 20:55:56 BST 2004 Olly Betts <olly@survex.com>
* xapian-config.in: Added comment saying why we filter out
-I/usr/include; Removed no longer used "optarg" stuff; Added licence
boilerplate text (with (C) dates mined from CVS).
Tue May 11 13:42:38 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/bcursor.cc,backends/quartz/btree.cc: Added lots
of assertions.
Tue May 11 09:29:51 BST 2004 Richard Boulton <richard@tartarus.org>
* debian/: Added basic Debian packaging.
Mon May 10 17:17:45 BST 2004 Olly Betts <olly@survex.com>
* docs/quartzdsign.html: Corrected various pieces of out of date
information.
Mon May 10 01:30:35 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.h: Removed unused forward declaration of
class BtreeCheck.
Mon May 10 01:30:24 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Fixed typo.
Sat May 08 20:14:40 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/: Pruned some #include-s which were unused, or could
be replaced by forward class declarations.
Fri May 07 14:38:10 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Slight efficiency tweak to the
"deleting the whole posting list" case.
Fri May 07 03:16:29 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Removed another unnecessary use
of QuartzBufferedTable::get_or_make_tag().
Fri May 07 02:56:22 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Initialise prev_ptr and next_ptr at open
time for a writable Btree.
Fri May 07 02:46:53 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Remove unneeded call to
QuartzBufferedTable::get_or_make_tag() in a case when we're using a
cursor which has already fetched the tag.
Thu May 06 23:30:12 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Improved a comment.
Thu May 06 22:20:43 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Added a few more assertions.
Thu May 06 02:25:33 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_positionlist.cc,
backends/quartz/quartz_utils.h: Added SON_OF_QUARTZ define to
disable incompatible changes to database formats by default, and
use it to control the docid encoding for keys such that we're always
inserting at the end of the table when added new documents.
Thu May 06 02:23:02 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Improved a FIXME comment.
Thu May 06 00:32:17 BST 2004 Olly Betts <olly@survex.com>
* extra/queryparsertest.cc: Added test case for `term NOT "a phrase'.
Thu May 06 00:28:32 BST 2004 Olly Betts <olly@survex.com>
* common/omdebug.cc,common/omdebug.h: Renamed OmTimer class used
internally by the --enable-debug=profile code to
Xapian::Internal::Timer.
Wed May 05 13:59:47 BST 2004 Olly Betts <olly@survex.com>
* docs/scalability.html: Reworded to remove use of first person.
Mon May 03 21:42:05 BST 2004 Olly Betts <olly@survex.com>
* Makefile.am: Improved wording of a FIXME comment.
Sun May 02 10:18:55 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Improved a couple of comments.
Sat May 01 04:42:43 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
backends/quartz/quartz_table.cc: Reopening the readonly version
of a writable Btree is now more efficient.
Sat May 01 01:41:24 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Added up-to-date success reports for x86-openbsd and
x86-solaris.
Fri Apr 30 04:05:15 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/: Don't delete and reload the Btree_base just after
saving it - instead reuse the existing Btree_base object.
Fri Apr 30 02:41:50 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Clean up new code in Btree::commit()
from last change.
Thu Apr 29 22:41:05 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/quartz_table.cc: Don't
close and reopen the database table file descriptors every time
we flush changes.
Thu Apr 29 22:40:36 BST 2004 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Improved wording in a couple of places.
Thu Apr 29 16:50:45 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/bcursor.cc: Removed references to Btree::error
from debug code since Btree::error was removed a week ago.
Tue Apr 27 20:46:25 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,configure.in: Added configure test for
glibc, because otherwise we need to include a header before we
can check for glibc in order to define something we should be
defining before we include any headers!
Tue Apr 27 17:45:51 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Only defined _XOPEN_SOURCE if __GLIBC__
is defined. OpenBSD seems to do the opposite to Linux and *disable*
pread and pwrite if this is defined!
Tue Apr 27 14:35:47 BST 2004 Olly Betts <olly@survex.com>
* api/omenquire.cc,tests/api_db.cc: Need to adjust index by firstitem
when indexing into items (bug#28).
Mon Apr 26 23:45:15 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Successfully built with gcc-3.5-20040327 snapshot on x86
linux.
Fri Apr 23 11:26:07 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Successfully built and tested on arm linux.
Fri Apr 23 11:24:23 BST 2004 Olly Betts <olly@survex.com>
* tests/remotetest.cc: Use 127.0.0.1 instead of localhost so that
tcpmatch1 doesn't fail just because the network setup is broken.
Thu Apr 22 00:54:58 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/: Stripped out Btree_errors as it's almost
totally unused now. Fixed up the last few uses.
* backends/quartz/quartz_table.cc: Fixed another case where read
and write Btrees should share fds.
Wed Apr 21 02:51:08 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Check the return value of
fdatasync()/fsync()/_commit() and raise an error. They aren't
likely to fail harmlessly.
Wed Apr 21 02:45:28 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
backends/quartz/quartz_table.cc: Share file descriptors between
the read and write Btree objects so that a quartz WritableDatabase
now uses 5 fds rather than 10.
Wed Apr 21 02:37:38 BST 2004 Olly Betts <olly@survex.com>
* docs/scalability.html: Removed the reference to the Quartz update
bottleneck "currently being addressed for Xapian 0.8" as it's now
been addressed!
Wed Apr 21 00:24:08 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Corrected a comment.
Mon Apr 19 14:42:06 BST 2004 Olly Betts <olly@survex.com>
* NEWS: Final update for 0.8.0.
Mon Apr 19 14:02:33 BST 2004 Olly Betts <olly@survex.com>
* AUTHORS: Added people who've contributed build reports for the
PLATFORMS file.
Mon Apr 19 14:01:38 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: More updates from tinderbox and elsewhere.
Sat Apr 17 02:24:11 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Lots of updates from tinderbox and mailing list.
Sat Apr 17 00:13:26 BST 2004 Olly Betts <olly@survex.com>
* HACKING: Added notes about using "using", and pointers to a couple
of useful C++ web resources.
Mon Apr 12 00:56:04 BST 2004 Olly Betts <olly@survex.com>
* Makefile.am,NEWS,configure.in,extra/Makefile.am: Version 0.8.0.
Mon Apr 12 00:31:15 BST 2004 Olly Betts <olly@survex.com>
* NEWS: Updated for 0.8.0.
Sun Apr 11 21:18:47 BST 2004 Olly Betts <olly@survex.com>
* extra/queryparser.yy,extra/queryparsertest.cc: Don't use a raw term
for a term which starts with a digit.
Sat Apr 10 17:20:23 BST 2004 Olly Betts <olly@survex.com>
* AUTHORS: "Open Muscat" not "OmSee"; Updated the list of contributors
(more work needed...)
Sat Apr 10 16:41:28 BST 2004 Olly Betts <olly@survex.com>
* m4/xapian.m4: Make XO_LIB_XAPIAN with no arguments do what most
users will want: check for Xapian and fail if it's not found,
or AC_SUBST XAPIAN_CXXFLAGS and XAPIAN_LIBS if it is. Those
will unusual needs can supply one or both arguments as at
present.
Sat Apr 10 15:00:28 BST 2004 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Sat Apr 10 00:32:07 BST 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Added success report for GCC 3.4 (prerelease).
Sat Apr 10 00:27:58 BST 2004 Olly Betts <olly@survex.com>
* extra/xapian/queryparser.h: Added doxygen documentation comments.
Sat Apr 10 00:23:13 BST 2004 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Removed a now superfluous line.
Sat Apr 10 00:21:15 BST 2004 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Give a more accurate message if valgrind
spots a test doing something dodgy (e.g. free() of memory allocated
with new).
Thu Apr 08 17:22:20 BST 2004 Olly Betts <olly@survex.com>
* net/.cvsignore: No longer need to ignore readquery.cc.
Thu Apr 08 17:19:43 BST 2004 Olly Betts <olly@survex.com>
* include/xapian/base.h: Note in doxygen comment why the ref_count
is mutable.
Thu Apr 08 15:33:16 BST 2004 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: valgrinding code needs errno.h too.
Thu Apr 08 15:28:44 BST 2004 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Make Xapian::Weight::Weight() protected
rather than private as we want to be able to call it from derived
classes (GCC 3.4 flags this, other compilers seem to miss it).
Tue Apr 06 03:32:39 BST 2004 Olly Betts <olly@survex.com>
* net/omerr_string.cc,include/xapian/error.h,
include/xapian/errortypes.h,include/xapian/output.h:
Fixed some doxygen warnings.
Mon Apr 05 17:21:06 BST 2004 Olly Betts <olly@survex.com>
* README: There never was an Omsee release - the last BrightStation
release was "OpenMuscat 0.4.1".
Mon Apr 05 17:19:38 BST 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc,
backends/quartz/quartz_database.h: Make the flush criterion 1000
documents changed (added, removed, or replaced) as that seems to
perform much better over a wide variety of document sizes.
Thu Apr 01 01:04:17 BST 2004 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Fixed temporary directory used (a slash was
missing).
Thu Apr 01 00:39:59 BST 2004 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Fri Mar 26 22:33:30 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Fix problems with termfreq and
collfreq in postlist getting out of step when a recently modified
or deleted document is deleted or remodified.
Fri Mar 26 12:31:24 GMT 2004 Olly Betts <olly@survex.com>
* configure.in: Fixed check for --enable-runtime-pseudo-reloc.
Fri Mar 26 12:31:00 GMT 2004 Olly Betts <olly@survex.com>
* bin/Makefile.am: Removed spurious "-lz" from quartzdump_LDADD.
Thu Mar 25 00:22:13 GMT 2004 Olly Betts <olly@survex.com>
* bin/quartzcheck.cc: Check the structure with the postlist Btree
as well as the Btree structures themselves.
Sun Mar 21 00:00:59 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_table_manager.cc: Fix for building on mingw.
Sat Mar 20 23:04:27 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/positioniterator.h,include/xapian/postingiterator.h:
Add doxygen comments in front of PostingIterator and
PositionListIterator classes so that doxygen pulls out the
existing documentation for their methods.
Sat Mar 20 16:23:13 GMT 2004 Olly Betts <olly@survex.com>
* configure.in,backends/quartz/quartz_table_manager.cc,common/utils.h:
Added configure test for link() to avoid infinite loop on mingw!
Thu Mar 18 12:20:18 GMT 2004 Olly Betts <olly@survex.com>
* configure.in: Improved the --enable-runtime-pseudo-reloc check.
Thu Mar 18 00:45:15 GMT 2004 Olly Betts <olly@survex.com>
* bin/Makefile.am,tests/Makefile.am: Pass the magic mingw/cygwin flag
when linking the programs in bin and tests.
Thu Mar 18 00:33:22 GMT 2004 Olly Betts <olly@survex.com>
* configure.in,xapian-config.in: mingw and cygwin both need
-Wl,--enable-runtime-pseudo-reloc passing when linking.
Arrange for xapian-config to include this, and check that
the ld installed is a new enough version (or at least that
it was at configure time).
Tue Mar 16 01:40:43 GMT 2004 Olly Betts <olly@survex.com>
* docs/matcherdesign.html: Merged in more details from a message I
sent to the mailing list.
Mon Mar 15 20:39:21 GMT 2004 Olly Betts <olly@survex.com>
* tests/quartztest.cc: Fail the test if there's still a directory after
rmdir(), or there isn't a directory after mkdir(). Close a
QuartzDatabase or QuartzWritableDatabase before trying to overwrite
it - cygwin doesn't allow use to delete open/locked files...
Mon Mar 15 20:38:11 GMT 2004 Olly Betts <olly@survex.com>
* backends/database.cc: Database::Internal::Internal::keep_alive()
should be Database::Internal::keep_alive().
Mon Mar 15 17:20:58 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/base.h: Returning a void result makes SGI's compiler
complain - don't!
Mon Mar 15 14:34:44 GMT 2004 Olly Betts <olly@survex.com>
* common/omdebug.cc: Only use O_SYNC (on the debug log) if we have it.
Sun Mar 14 17:48:52 GMT 2004 Olly Betts <olly@survex.com>
* tests/runtest.in: Mark with @configure_input@.
Thu Mar 11 23:53:43 GMT 2004 Olly Betts <olly@survex.com>
* common/database.h,common/termlist.h,include/xapian/database.h,
include/xapian/enquire.h: Attempted fixes for warnings given by
SGI's MIPSpro C++ compiler.
Thu Mar 11 23:51:10 GMT 2004 Olly Betts <olly@survex.com>
* configure.in: GCC 2.95 supported -Wno-long-long and is our minimum
recommended version, so unconditionally use -Wno-long-long with
GCC, and don't test for it on other compilers (the test incorrectly
decided to use it with SGI's compiler leading to a warning for
every file compiled).
Thu Mar 11 17:29:24 GMT 2004 Olly Betts <olly@survex.com>
* docs/intro_ir.html: Added a link to "Information Retrieval"
by Keith v.R. which can be read on his website!
Thu Mar 11 17:12:35 GMT 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Added IRIX success reports from Jim Lynch.
Thu Mar 11 12:17:21 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Fixes for Sun C++'s fussy
template matching.
Thu Mar 11 12:12:46 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Another friend fix for Sun's C++.
Thu Mar 11 01:56:19 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/query.h: Another fix for Sun's C++.
Tue Mar 09 21:02:08 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/document.h: string -> std::string.
Tue Mar 09 19:04:48 GMT 2004 Olly Betts <olly@survex.com>
* api/omdocument.cc,common/document.h,include/xapian/document.h,
tests/api_db.cc,tests/api_posdb.cc: Renamed
Xapian::Document::add_term_nopos to Xapian::Document::add_term
(with forwarding wrapper method for compatibility with existing
code).
Sat Mar 06 02:32:58 GMT 2004 Olly Betts <olly@survex.com>
* docs/: Updated the quickstart tutorial and removed the warning
that "this document isn't up to date".
Sat Mar 06 01:56:17 GMT 2004 Olly Betts <olly@survex.com>
* api/omenquire.cc: Another tweak for Sun's C++ compiler.
Sat Mar 06 01:31:29 GMT 2004 Olly Betts <olly@survex.com>
* common/omenquireinternal.h: Tweaked friend class declarations a
bit so Sun's C++ compiler can cope.
Thu Mar 04 23:58:17 GMT 2004 Olly Betts <olly@survex.com>
* PLATFORMS: Updated with results from the tinderbox.
Thu Mar 04 23:29:28 GMT 2004 Olly Betts <olly@survex.com>
* tests/btreetest.cc,tests/quartztest.cc: NetBSD mkdir() doesn't cope
with a trailing / on the path - fixed our code to cope with this.
Wed Mar 03 19:14:09 GMT 2004 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Fri Feb 13 23:56:44 GMT 2004 Olly Betts <olly@survex.com>
* api/omquery.cc,tests/api_nodb.cc: Throw error when an empty query is
used to build in the binary operator Query ctor. Added regression
test.
Fri Feb 13 15:08:09 GMT 2004 Olly Betts <olly@survex.com>
* HACKING: XAPIAN_DEBUG_TYPES should be XAPIAN_DEBUG_FLAGS.
Sat Feb 07 14:26:54 GMT 2004 Olly Betts <olly@survex.com>
* docs/queryparser.html: Grammar fixes.
Fri Jan 16 02:06:53 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Fixed bug flagged up by deldoc4.
Thu Jan 15 01:00:48 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_termlist.cc: Use Xapian::doccount instead of
unsigned int in set_entries().
Thu Jan 15 00:56:47 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
testsuite/btreecheck.cc: Made some static functions into static
member functions of Btree so we can avoid duplicating code in
btreecheck.cc. Also tweaked compare_keys to use memcmp and
special case when the keys are the same length (each of these
changes gives a very small speed gain).
Thu Jan 15 00:54:47 GMT 2004 Olly Betts <olly@survex.com>
* api/maptermlist.h: Removed a FIXME which already had been fixed.
Removed a couple of asserts from a function which should never be
called (and so had `Assert(false)' anyway).
Mon Jan 12 00:32:37 GMT 2004 Olly Betts <olly@survex.com>
* bin/quartzdump.cc: Backslash escape space and backslash in output
rather than hex encoding them; renamed start-term and end-term to
start-key and end-key; removed rather pointless "Calling next"
message; if there's an error, write it to stderr not stdout, and
exit with return code 1.
Sun Jan 11 03:23:17 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_termlist.cc: When possible, pack the wdf into
the same byte as the reuse length - doing so typically makes the
termlist 14% smaller! This change is backward compatible.
Sat Jan 10 03:04:22 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Fixed bug in new postlist
chunking code.
Sat Jan 10 00:45:04 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_termlist.cc: Removed unused
OLD_TERMLIST_FORMAT code.
Fri Jan 09 21:54:34 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Fix incorrect code which just
happens to build and work with GCC 2.95.
Fri Jan 09 14:40:00 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Tidied the initial call to
get_chunk() out of the merge loop (gives ~4% speedup!)
Fri Jan 09 01:31:05 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Implement chunking of postlists
once again.
Thu Jan 08 21:06:37 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Shortcut the very common case
of appending to a posting list (which happens when we're just
adding new documents). Declare small helper functions as "inline".
Wed Jan 07 23:21:59 GMT 2004 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Set threshold for flushing to
a saner value for the value we are now using.
* backends/quartz/: Use freq_deltas to update the stats in the first
chunk of each postlist.
Mon Jan 05 16:00:07 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/enquire.h: Made the TradWeight constructor explicit.
This is technically an API change as before you could pass a
double where a Xapian::Weight was required - now you must pass
Xapian::TradWeight(2.0) instead of 2.0. That seems desirable, and
it's unlikely any existing code will be affected.
Mon Jan 05 15:08:26 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/: Added "explicit" qualifier to internal ctors
which take a single parameter.
Mon Jan 05 15:04:12 GMT 2004 Olly Betts <olly@survex.com>
* include/xapian/base.h: Assigning a normal pointer to a RefCntPtr no
longer creates a temporary RefCntPtr from it.
Thu Dec 25 05:49:03 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Changed to merge a batch of
changes into a posting list in one pass.
Thu Dec 25 05:48:09 GMT 2003 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Some minor improvements.
Thu Dec 25 05:39:57 GMT 2003 Olly Betts <olly@survex.com>
* tests/api_db.cc: Check returned docids are the expected values in a
couple more cases. Improved wording of a comment.
Thu Dec 25 05:38:43 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_utils.h: Updated explanation of string
encoding.
Thu Dec 25 05:37:36 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_values.cc: Fixed problem with dereferencing
a pointer to the end of a string in debug output.
Sun Dec 21 23:35:49 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Refactor recently relocated code
to reduce duplication.
Sun Dec 21 21:44:07 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Renamed
skip_and_check_tname_in_key() to check_tname_in_key() as it doesn't
do any sort of skipping!
Sun Dec 21 14:54:49 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc,backends/quartz/quartz_postlist.h,
tests/quartztest.cc: Subsumed QuartzPostList::add_entry and
QuartzPostList::delete_entry into QuartzPostList::merge_changes.
Sun Dec 21 03:21:42 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc,
backends/quartz/quartz_postlist.cc,
backends/quartz/quartz_postlist.h: Move merging on postlist changes
into QuartzPostList in preparation for an efficient
reimplementation.
Sun Dec 21 01:47:07 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.h,
backends/quartz/quartz_table_entries.h: Fixed typos and incorrect
comments.
Sat Dec 20 22:11:26 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/: Removed several needless inclusions of
quartz_table_entries.h.
Sat Dec 20 16:31:46 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/,docs/quartzdesign.html: Removed all the quartz
lexicon code and docs. It's been disabled for ages, and we've
not missed it.
Sat Dec 20 01:21:47 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.h: Added doxygen comments for the
QuartzWritableDatabase members we use to buffer changes.
Sat Dec 20 01:19:10 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Trigger autoflush on
totlen_added + totlen_removed rather than specially tracking the
number of document add/delete/replace operations.
Fri Dec 19 22:51:26 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/: Buffer up changes to the postlists and apply them
all at once (at present they're applied inefficiently, but this is
change enables us to apply them with an efficient merge).
* tests/api_db.cc,tests/quartztest.cc: Added a couple of tests, and
commented out some test lines which fail in debug builds.
Sun Dec 14 03:38:55 GMT 2003 Olly Betts <olly@survex.com>
* common/omdebug.cc: Open debug log with flag O_WRONLY so that we can
actually write to it!
Mon Dec 08 01:53:24 GMT 2003 Olly Betts <olly@survex.com>
* HACKING: Update to mention that building from CVS requires
./configure --enable-maintainer-mode (or use bootstrap).
Mon Dec 01 19:03:00 GMT 2003 Olly Betts <olly@survex.com>
* configure.in: Fixed the "fixed" valgrind test.
Sun Nov 30 23:42:52 GMT 2003 Olly Betts <olly@survex.com>
* configure.in,testsuite/testsuite.cc: Fix test for valgrind - it
wasn't working correctly when valgrind was installed but was too
a version to support VALGRIND_COUNT_ERRORS and VALGRIND_COUNT_LEAKS.
Wed Nov 26 16:31:19 GMT 2003 Olly Betts <olly@survex.com>
* Makefile.am,extra/Makefile.am: Updated libtool -version-info
parameters for 0.7.5.
Wed Nov 26 15:32:45 GMT 2003 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.in: Version 0.7.5.
Wed Nov 26 15:31:56 GMT 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy: Special case stemming language "none".
Tue Nov 25 04:37:50 GMT 2003 Olly Betts <olly@survex.com>
* api/ompositionlistiterator.cc,api/ompostlistiterator.cc,
include/xapian/positioniterator.h,include/xapian/postingiterator.h,
tests/api_db.cc: Added missing default ctors for PostingIterator and
PositionIterator classes; fixed PositionIterator assignment operator.
Tue Nov 25 03:40:11 GMT 2003 Olly Betts <olly@survex.com>
* tests/btreetest.cc: Fixed 2 compiler warnings.
Tue Nov 25 02:47:16 GMT 2003 Olly Betts <olly@survex.com>
* common/,include/xapian/: Fixed incorrect doxygen comments which
resulted in some missing text in the collated API and internal
classes documentation.
Fri Nov 21 03:23:57 GMT 2003 Olly Betts <olly@survex.com>
* Makefile.am,include/xapian/termiterator.h,api/omtermlistiterator.cc:
TermIterator::TermIterator() fix which actually works!
Fri Nov 21 01:14:23 GMT 2003 Olly Betts <olly@survex.com>
* HACKING,configure.in,docs/Makefile.am,extra/Makefile.am: Change to
using AM_MAINTAINER_MODE. If you're doing development work on
Xapian, you should configure with "--enable-maintainer-mode" and
ideally use GNU make.
Fri Nov 21 01:13:25 GMT 2003 Olly Betts <olly@survex.com>
* include/xapian/termiterator.h,tests/api_nodb.cc: Added TermIterator
default ctor which had disappeared somehow. Added regression test.
Thu Nov 20 03:19:37 GMT 2003 Olly Betts <olly@survex.com>
* configure.in: Fixed test for fdatasync to work (I suspect a change
in a recent autoconf broke it as it relied on autoconf internal
naming).
Tue Nov 18 17:53:29 GMT 2003 Olly Betts <olly@survex.com>
* extra/Makefile.am: Tweaked workaround for FreeBSD make in VPATH
builds.
Tue Nov 18 17:53:01 GMT 2003 Olly Betts <olly@survex.com>
* extra/queryparsertest.cc: Added another testcase.
Tue Nov 18 17:37:20 GMT 2003 Olly Betts <olly@survex.com>
* docs/: Added first cut of documentation for Xapian::QueryParser
query syntax.
* docs/scalability.html: Fixed typo.
Fri Oct 31 18:17:13 GMT 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy,extra/queryparsertest.cc: Added support for
term prefixes on phrases and expressions (e.g. author:(twain OR poe)
subject:"space flight").
Tue Oct 28 15:03:01 GMT 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc: Added FIXME comment.
Tue Oct 28 15:01:14 GMT 2003 Olly Betts <olly@survex.com>
* docs/todo.xml: Removed Java from list of language bindings we'd
like to support, as we should have up-to-date Java bindings soon.
Sun Oct 26 20:18:24 GMT 2003 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Fix the name that the meta file gets copied
to (was /path/to/dbdirmeta rather than /path/to/dbdir/meta).
Tue Oct 21 22:26:51 BST 2003 Olly Betts <olly@survex.com>
* extra/Makefile.am: Backed out previous change - the original rule
does work, but the build machine had a generated file which stopped
the symlink being generated.
Tue Oct 21 22:14:22 BST 2003 Olly Betts <olly@survex.com>
* extra/Makefile.am: Tweaked rule to symlink queryparser.cc.
Tue Oct 21 17:31:10 BST 2003 Olly Betts <olly@survex.com>
* extra/Makefile.am: Added rule to symlink queryparser.cc from source
tree to build tree - otherwise FreeBSD's make insists on
regenerating it...
Wed Oct 08 14:04:44 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/.cvsignore,tests/Makefile.am,testsuite/.cvsignore:
Updated to reflect move of libbtreecheck.la from backends/quartz
to testsuite.
Wed Oct 08 13:22:08 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Don't pass mode argument to open when we
aren't specifying O_CREAT.
Thu Oct 02 15:29:38 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Another entry for omega for 0.7.4.
Thu Oct 02 14:57:25 BST 2003 Olly Betts <olly@survex.com>
* configure.in,extra/Makefile.am: Version 0.7.4.
Thu Oct 02 14:56:36 BST 2003 Olly Betts <olly@survex.com>
* HACKING: Improved wording in a few places.
Thu Oct 02 14:39:49 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Updated.
Thu Oct 02 13:35:46 BST 2003 Olly Betts <olly@survex.com>
* xapian.spec.in: Don't hardcode the shared library versioning info.
Wed Oct 01 13:51:15 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated - Solaris 8 + Sun Workshop C++ doesn't actually
pass "make check" (I forgot the tinderbox builds omega before "make
check").
Tue Sep 30 21:39:20 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Another stab at fixing the test for -lsocket.
Tue Sep 30 18:29:31 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Quote arguments to test in a couple of places.
Tue Sep 30 11:20:09 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Fixed test for -lsocket.
Tue Sep 30 10:17:09 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated - Solaris 8 + Sun Workshop C++ builds and passes
"make check" (but Omega fails to build).
Mon Sep 29 00:41:19 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Fixed dependency libs for libxapian.
Sun Sep 28 23:55:49 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am,backends/quartz/Makefile.am,
backends/quartz/btreecheck.cc,backends/quartz/btreecheck.h,
bin/Makefile.am,testsuite/Makefile.am,testsuite/btreecheck.cc,
testsuite/btreecheck.h: libbtreecheck.la now has an explicit
dependency on libxapian.la.
Sun Sep 28 17:29:55 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am,configure.in: Tell libtool about any libraries which
libxapian needs to depend on.
Fri Sep 26 09:39:29 BST 2003 Olly Betts <olly@survex.com>
* bin/Makefile.am: Swap order of libbtreecheck.la and libxapian.la
when linking quartzcheck to see if that gets it to work with
Sun's CC.
Thu Sep 25 17:25:17 BST 2003 Olly Betts <olly@survex.com>
* xapian-config.in: Fixed stupid mistake in previous check-in.
Thu Sep 25 16:50:00 BST 2003 Olly Betts <olly@survex.com>
* xapian-config.in: Link with libxapianqueryparser before libxapian,
since that's the dependency order.
Thu Sep 25 16:43:20 BST 2003 Olly Betts <olly@survex.com>
* include/om/om.h: Updated comment about why we `#include <iostream>'.
Thu Sep 25 13:13:37 BST 2003 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,backends/database.cc,common/omdebug.cc,
common/omstringstream.h,include/xapian/output.h: Removed or replaced
uses of <iostream> and <iosfwd> - we don't need or want the library
to pull in cin and friends.
Thu Sep 25 13:12:31 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am: Improved several comments.
Thu Sep 25 11:57:03 BST 2003 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Removed `#include <iostream>' left over from
debugging; changed to `using namespace std;'.
Mon Sep 15 00:41:10 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy: Fixed to build with Sun's C++ compiler.
Thu Sep 11 03:35:29 BST 2003 Olly Betts <olly@survex.com>
* dummy.c,dummy.cc,Makefile.am: Change the default file to be C++ so
that automake tells libtool that this is a C++ library.
* Makefile.am: Pass -no-undefined to libtool so that it will build
a DLL on MS Windows.
Wed Sep 10 02:53:46 BST 2003 Olly Betts <olly@survex.com>
* docs/scalability.html: Fixed oops (32GB should be 32TB); Added
note about Linux 2.4 and ext2 filesize limits.
Tue Sep 09 03:36:05 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: don't start the document's
TermIterator from scratch on every iteration in replace_document().
Should be a small performance win.
Sun Sep 07 22:17:27 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Fixed check for socketpair - we were automatically
disabling the remote backend on platforms where socketpair is
in libsocket (such as Solaris).
Sun Sep 07 19:56:57 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Added success report for cygwin from Eric B. Ridge.
Sun Sep 07 03:53:48 BST 2003 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Also need to rerun test if it "probably
leaked".
Sun Sep 07 03:51:37 BST 2003 Olly Betts <olly@survex.com>
* tests/api_db.cc: Use x & (x - 1) trick to check for x being a power
of 2, rather than an elaborate loop with shifting; use Xapian::docid
rather than "int" and "unsigned int".
Sun Sep 07 02:24:06 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc: Fixed small memory leak if
Xapian::Enquire::set_query() is called more than once.
Sun Sep 07 02:12:47 BST 2003 Olly Betts <olly@survex.com>
* common/omenquireinternal.h,include/xapian/enquire.h: Fixed
Xapian::ESet to have reference counted internals
* Makefile.am: bumped libxapian version-info to 1:0:0 because of this.
Sun Sep 07 02:09:50 BST 2003 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Delete any buffered test output before
asking valgrind to check for leaks, as otherwise the buffered
output may be reported as a leak; also fixed |= to != in several
places - a cosmetic bug which lead to extra newlines after test
output.
Sun Sep 07 00:09:32 BST 2003 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Actually open temporary file for valgrind
to log to.
Sat Sep 06 20:50:58 BST 2003 Olly Betts <olly@survex.com>
* configure.in,testsuite/testsuite.cc: Fixed up detection of valgrind
and testsuite code to use it.
Sat Sep 06 20:48:17 BST 2003 Olly Betts <olly@survex.com>
* tests/btreetest.cc: Reinstated non-superfluous `/'s which I had
overeagerly removed!
Sat Sep 06 17:28:00 BST 2003 Olly Betts <olly@survex.com>
* matcher/Makefile.am: Ship networkmatch.cc even if "make dist" is run
from a tree with the remote backend disabled.
Thu Aug 28 00:01:22 BST 2003 Olly Betts <olly@survex.com>
* tests/btreetest.cc: Removed superfluous `/'s from constructed paths.
Fri Aug 15 15:12:24 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated with current testsuite results for mingw build.
Fri Aug 15 15:10:59 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Use O_BINARY for database I/O if it
exists.
Fri Aug 15 15:10:30 BST 2003 Olly Betts <olly@survex.com>
* common/utils.h: mkdir() only takes one argument on mingw.
Fri Aug 15 01:26:22 BST 2003 Olly Betts <olly@survex.com>
* common/utils.h,testsuite/backendmanager.cc: Touch file using
open() rather than system().
Fri Aug 15 01:06:06 BST 2003 Olly Betts <olly@survex.com>
* common/utils.h: Fixed parameter name of system from "filename" to
"command" (cosmetic change).
Thu Aug 14 22:31:23 BST 2003 Olly Betts <olly@survex.com>
* net/progclient.cc: Tidied a little.
Tue Aug 12 12:50:19 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Pass 0 for the lexicon/postlist
table when creating a termlist just to find the doc length.
Tue Aug 12 02:08:50 BST 2003 Olly Betts <olly@survex.com>
* api/maptermlist.h,api/omdocument.cc,common/documentterm.h:
Removed unused OmDocumentTerm::termfreq member variable.
Tue Aug 12 00:53:02 BST 2003 Olly Betts <olly@survex.com>
* api/omdocument.cc,common/documentterm.h: OmDocumentTerm ctor now
takes wdf, and replaced set_wdf() with inc_wdf() and dec_wdf().
Mon Aug 11 16:11:26 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_table_entries.cc: Removed rather unnecessary
use of const_cast.
Mon Aug 11 16:11:05 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_table.cc: Removed unused variable.
Mon Aug 11 16:09:57 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Fixed typo in comment.
Mon Aug 11 15:51:20 BST 2003 Olly Betts <olly@survex.com>
* tests/quartztest.cc: adddoc2 now checks that there weren't any extra
values created.
Mon Aug 11 12:55:49 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Sorted out tests for gethostbyname and gethostbyaddr
using standard autoconf macros.
Mon Aug 11 12:05:13 BST 2003 Olly Betts <olly@survex.com>
* common/match.h,matcher/: Removed unused open_document() method from
SubMatch and derived classes; calls made by the matcher to
Document::Internal::open_document() now use the lazy flag provided
for precisely this purpose, but apparently never used - this should
give quite a speed boost to any matcher options which use values
(e.g. sort, collapse).
Sun Aug 10 02:25:59 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Out of curiosity, I tried to build with a Linux->DJGPP
cross-compiler I had to hand. It built (just had to disable the
remote backend if socketpair isn't found and add the workaround for
not having snprintf).
Sun Aug 10 01:38:17 BST 2003 Olly Betts <olly@survex.com>
* common/utils.cc: Fixed to compile if snprintf isn't available.
Sun Aug 10 01:37:44 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Fixed "initialisation reordered" warning.
Sun Aug 10 01:26:58 BST 2003 Olly Betts <olly@survex.com>
* acinclude.m4: Updated in line with previous change.
Sun Aug 10 01:00:08 BST 2003 Olly Betts <olly@survex.com>
* configure.in: If fork is found, but socketpair isn't, automatically
disable the remote backend rather than configure dying with an
error.
* autoconf/: Removed various unused autoconf macros.
Sat Aug 09 23:57:44 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btree.h: Made "overwritten" protected.
Sat Aug 09 23:45:26 BST 2003 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Wrapped an overlong line.
Sat Aug 09 23:31:30 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
backends/quartz/quartz_table.cc,docs/quartzdesign.html:
Improved class Btree's encapsulation.
Sat Aug 09 22:30:13 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Fixed a few typos.
Sat Aug 09 22:29:52 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated with results from the Tinderbox.
Sat Aug 09 22:19:12 BST 2003 Fabrice Colin
* xapian.spec.in: Updated RPM packaging to reflect changes in 0.7.3.
Fri Aug 08 01:38:40 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am,configure.in,extra/Makefile.am: Version 0.7.3.
Fri Aug 08 01:35:04 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Updated.
Fri Aug 08 01:34:29 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated with more tinderbox results.
Wed Aug 06 16:27:34 BST 2003 Olly Betts <olly@survex.com>
* HACKING: Noted that libtool 1.5 is the first version to actually
support linking C++ libraries properly.
Wed Aug 06 16:25:15 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc,net/socketcommon.cc,common/omenquireinternal.h:
Moved rset serialisation into a method of RSet::Internal, so
omrset_to_string() is now just glue code. This eliminates the
need for it to be a friend of RSet::Internal which Sun's C++
compiler didn't seem to be able to cope with.
Wed Aug 06 01:57:11 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc: Applied patch from Olivier Galibert to fix
MSetIterator::get_document() when get_mset() was called with
first != 0.
* tests/api_db.cc: Added regression test (msetiterator3).
Mon Aug 04 12:40:25 BST 2003 Olly Betts <olly@survex.com>
* languages/Makefile.am: Fixed compilation for compilers other than
GCC.
Wed Jul 30 17:03:14 BST 2003 Olly Betts <olly@survex.com>
* common/getopt.h: Another try - the previous one failed on FreeBSD.
Wed Jul 30 15:07:58 BST 2003 Olly Betts <olly@survex.com>
* common/getopt.h: Another iteration of the getopt C++ prototype fix
as the previous one failed on Solaris.
Wed Jul 30 02:38:47 BST 2003 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc: Fixed breakage caused by remotetest
cleanup.
Tue Jul 29 13:22:20 BST 2003 Olly Betts <olly@survex.com>
* tests/remotetest.cc: Cleaned up uses of
BackendManager::get_database() to pass a string rather than a vector
with one string in.
Tue Jul 29 11:58:21 BST 2003 Olly Betts <olly@survex.com>
* testsuite/testutils.cc: Added output of const vector<unsigned int>
for platforms which use our internal stringstream implementation.
Tue Jul 29 11:42:54 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated with results from the tinderbox.
Tue Jul 29 01:21:53 BST 2003 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc,testsuite/testsuite.h: Only use \r in test
output if the output is a tty.
Mon Jul 28 23:56:10 BST 2003 Olly Betts <olly@survex.com>
* xapian-config.in: Fixed fix of --cxxflags for uninstalled VPATH
builds.
Mon Jul 28 23:37:15 BST 2003 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc: Increased default timeout used by
tests running on the remote backend from 10 seconds to 5 minutes
to avoid tests failing just because the machine running them is
slow and/or busy.
Mon Jul 28 15:41:12 BST 2003 Olly Betts <olly@survex.com>
* testsuite/testutils.h: Fixed check for broken exception handling
- we were getting "Xapian::" prefixed to one version and not on the
other.
Mon Jul 28 15:34:54 BST 2003 Olly Betts <olly@survex.com>
* tests/runtest.in: Set srcdir if it isn't already to make it easy
to manually run test programs from a VPATH build.
Mon Jul 28 10:38:04 BST 2003 Olly Betts <olly@survex.com>
* xapian-config.in: Fixed --cxxflags for uninstalled VPATH builds.
Mon Jul 28 10:37:17 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated FreeBSD success report.
Sun Jul 27 16:01:25 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Explicitly remove include/xapian/version.h from
APIDOC_SRC to avoid us trying to run doxygen unnecessarily.
Sun Jul 27 14:31:36 BST 2003 Olly Betts <olly@survex.com>
* docs/todo.xml: Assorted updates.
Sun Jul 27 13:02:36 BST 2003 Olly Betts <olly@survex.com>
* extra/.cvsignore: We still create libomqueryparser.la for backward
compatibility.
Sun Jul 27 04:56:40 BST 2003 Olly Betts <olly@survex.com>
* xapian-config.in,m4/xapian.m4: Added --from-xo-lib-xapian option
to xapian-config for use by XO_LIB_XAPIAN to allow us to give a
more helpful error message if asked to link an uninstalled
libxapian.
Sun Jul 27 04:46:48 BST 2003 Olly Betts <olly@survex.com>
* xapian-config.in: Fixed --cxxflags in non-installed case.
Tidied up --help output and error messages.
Sun Jul 27 01:40:39 BST 2003 Olly Betts <olly@survex.com>
* tests/api_db.cc: Check termfreq in allterms4.
Sun Jul 27 01:39:57 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparsertest.cc: Fixed for relocated queryparser.h.
Sun Jul 27 00:59:56 BST 2003 Olly Betts <olly@survex.com>
* .cvsignore,backends/quartz/.cvsignore,extra/.cvsignore: Updated.
Sun Jul 27 00:19:11 BST 2003 Olly Betts <olly@survex.com>
* tests/Makefile.am: Oops, failed to remove btreecheck.cc reference
in previous check-in.
Sat Jul 26 23:36:01 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/Makefile.am,bin/Makefile.am,tests/Makefile.am:
Hopefully fixed "make dist" in VPATH builds.
Sat Jul 26 22:58:27 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/Makefile.am: Need to distribute btreecheck.cc.
Sat Jul 26 20:05:47 BST 2003 Olly Betts <olly@survex.com>
* xapian-config.in,extra/Makefile.am,extra/queryparser.h,
extra/queryparser.yy,extra/xapian/queryparser.h: Sorted out
xapian-config so it handles using QueryParser too.
Sat Jul 26 19:03:04 BST 2003 Olly Betts <olly@survex.com>
* xapian-config.in: Updated logic in --libs and --cxxflags in line
with recent change in --ltlibs.
Sat Jul 26 18:31:11 BST 2003 Olly Betts <olly@survex.com>
* xapian-config.in: Reworked logic for finding libxapian.la in
--ltlibs - it may not yet exist in the non-installed case.
* m4/xapian.m4: Don't pass --libs when checking if xapian-config
works as it will fail in the non-installed case.
Sat Jul 26 01:25:46 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Updated.
Fri Jul 25 10:20:18 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Updated in preparation for 0.7.3 release.
Thu Jul 24 23:20:14 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_alltermslist.cc,
backends/quartz/quartz_alltermslist.h,tests/api_db.cc:
Fixed allterms TermIterator to not give duplicate terms with a
quartz database when a posting list is chunked; added regression
test (allterms4).
Mon Jul 21 15:06:59 BST 2003 Richard Boulton <richard@tartarus.org>
* include/xapian/enquire.h: Fix incorrect documentation comment
for Enquire::set_set_forward(). (Looked like a cut&paste error)
Mon Jul 21 01:10:55 BST 2003 Olly Betts <olly@survex.com>
* docs/install.html,m4/xapian.m4: Added XO_LIB_XAPIAN to replace
OM_PATH_XAPIAN. XO_LIB_XAPIAN will automagically enable use of
"xapian-config --ltlibs" if A[CM]_PROG_LIBTOOL is used in
configure.in.
Sun Jul 20 16:00:43 BST 2003 Olly Betts <olly@survex.com>
* .cvsignore,Makefile.am,configure.in,xapian-config.in,
xapian-config.nodep.in: Reworked xapian-config so that it
now supports linking with libtool - using libtool means that the
run-time library path is set and that you can now link with an
uninstalled libxapian. Also xapian-config will now work
once configure is run, rather than only after "make all".
Thu Jul 17 01:42:47 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/bcursor.cc,backends/quartz/btree.cc: Check for
EINTR when reading or writing blocks and retry the operation.
Thu Jul 17 00:56:35 BST 2003 Olly Betts <olly@survex.com>
* COPYING: Updated FSF address, and reinstated missing section: "How
to Apply These Terms to Your New Programs"
Thu Jul 17 00:48:40 BST 2003 Olly Betts <olly@survex.com>
* HACKING,bootstrap: Removed bootstrap in favour of top-level
bootstrap.
Mon Jul 14 23:36:14 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated some linux results: RH7.3 on x86, and Debian on
alpha and arm.
Mon Jul 14 23:33:17 BST 2003 Olly Betts <olly@survex.com>
* configure.in,Makefile.am,extra/Makefile.am: Added versioning
information to libxapian and libomqueryparser.
Mon Jul 14 23:32:15 BST 2003 Olly Betts <olly@survex.com>
* bin/quartzdump.cc,testsuite/testsuite.cc: Added long option support
to quartzdump, and to the testsuite programs.
Mon Jul 14 22:45:53 BST 2003 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Changed test exception1 to actually test
something (hopefully what was originally intended!)
Mon Jul 14 17:15:28 BST 2003 Olly Betts <olly@survex.com>
* common/getopt.h: #include <stdlib.h> before defining getopt as a
macro - hopefully that'll avoid problems with clobbering prototypes
of getopt() in system headers.
Sat Jul 12 09:15:26 BST 2003 Olly Betts <olly@survex.com>
* bin/quartzcompact.cc: Need stdio.h for rename().
Sat Jul 12 01:11:54 BST 2003 Olly Betts <olly@survex.com>
* HACKING: Noted another reason why libtool 1.5 is needed.
Sat Jul 12 01:11:08 BST 2003 Olly Betts <olly@survex.com>
* docs/mkdoc.pl: Don't choke on a comment at the end of the
DIST_SUBDIRS line in a Makefile.am.
Fri Jul 11 22:00:36 BST 2003 Olly Betts <olly@survex.com>
* HACKING: Added note about additional tools needed for building a
distribution.
Fri Jul 11 15:13:08 BST 2003 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.in: Version 0.7.2.
Fri Jul 11 12:36:18 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Updated in preparation for 0.7.2.
Fri Jul 11 12:12:40 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Fixed test for snprintf.
Fri Jul 11 09:37:14 BST 2003 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Fixed dereference of a NULL pointer which
was happening when a test threw an unexpected exception.
Fri Jul 11 09:31:40 BST 2003 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc: Backed out incorrect hunk of previous
patch which was causing test failures.
Fri Jul 11 01:48:21 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_table_manager.cc,tests/quartztest.cc,
testsuite/backendmanager.cc: Tidying up around directory creation.
Fri Jul 11 00:57:12 BST 2003 Olly Betts <olly@survex.com>
* include/xapian/database.h: Document that the directory is created.
Fri Jul 11 00:53:59 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_table_manager.cc: When asked to create a
quartz database, try to create the directory if it doesn't already
exist. Then we don't have to do it in every single Xapian program
which wants to create a database...
Fri Jul 11 00:36:00 BST 2003 Olly Betts <olly@survex.com>
* common/getopt.h: Removed space between \ and newline.
Fri Jul 11 00:32:40 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Added MacOS X 10.2 success report.
Thu Jul 10 20:05:58 BST 2003 Olly Betts <olly@survex.com>
* common/getopt.h: Fixed to work better with C++ compilers on
non-glibc platforms.
Thu Jul 10 19:21:00 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Modified setting of _XOPEN_SOURCE to
actually work!
Thu Jul 10 19:19:30 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Defined _XOPEN_SOURCE=500 for GLIBC
so we get pread() and pwrite().
Thu Jul 10 00:28:25 BST 2003 Olly Betts <olly@survex.com>
* HACKING,Makefile.am,configure.in,bindings/.cvsignore,
bindings/Makefile.am,bindings/dir_contents,bindings/guile/.cvsignore,
bindings/guile/Makefile.am,bindings/php4/.cvsignore,
bindings/php4/ABOUT,bindings/php4/Makefile.am,bindings/python/,
bindings/swig/,bindings/tcl8/.cvsignore,bindings/tcl8/Makefile.am,
docs/todo.xml: Removed bindings - they'll shortly reappear in a
separate module named xapian-bindings.
Thu Jul 10 00:03:04 BST 2003 Olly Betts <olly@survex.com>
* bindings/swig/om_util_perl5.i: Removed.
Wed Jul 09 15:35:56 BST 2003 Olly Betts <olly@survex.com>
* bindings/guile/Makefile.am,bindings/php4/Makefile.am,
bindings/python/Makefile.am,bindings/swig/,
bindings/tcl8/Makefile.am: Removed omtypes.i and merged omstem.i
into xapian.i; added forward declaration for upwrapped classes
to xapian.i.
Wed Jul 09 15:34:11 BST 2003 Olly Betts <olly@survex.com>
* bindings/java/,bindings/java/com/muscat/om/,bindings/java/native/:
Removed old Java bindings - we'll do them using SWIG instead.
Wed Jul 09 14:51:51 BST 2003 Olly Betts <olly@survex.com>
* bindings/php4/Makefile.am,bindings/php4/xapian/.cvsignore: More
work on the php4 bindings.
Wed Jul 09 03:00:17 BST 2003 Olly Betts <olly@survex.com>
* bindings/guile/Makefile.am,bindings/python/Makefile.am,
bindings/tcl8/Makefile.am: Worked towards getting guile and tcl8
bindings up-to-date.
* bindings/php4/.cvsignore: Ignore the whole xapian subdirectory.
Wed Jul 09 02:37:12 BST 2003 Olly Betts <olly@survex.com>
* bindings/perl5/: Removed remaining files.
Wed Jul 09 02:30:55 BST 2003 Olly Betts <olly@survex.com>
* configure.in,bindings/Makefile.am,bindings/php4/Makefile.am:
Working towards getting the php4 bindings functional again.
Wed Jul 09 01:27:39 BST 2003 Olly Betts <olly@survex.com>
* bindings/swig/om_util_php4.i: om_termname -> std::string.
Wed Jul 09 01:25:11 BST 2003 Olly Betts <olly@survex.com>
* docs/overview.html,include/xapian/base.h,include/xapian/database.h:
Improvements to doxygen-generated documentation.
Wed Jul 09 01:23:55 BST 2003 Olly Betts <olly@survex.com>
* configure.in,docs/todo.xml: Added check for SWIG version (require
at least 1.3.14).
Tue Jul 8 20:59:08 2003 James Aylett <james@tartarus.org>
* common/utils.h: missing #include <ctype.h>
Tue Jul 8 18:06:23 2003 James Aylett <james@tartarus.org>
* bindings/swig/xapian.i: over-enthusiastic automatic
conversion of termname to std::string
Tue Jul 08 17:45:16 BST 2003 Olly Betts <olly@survex.com>
* common/utils.h: Improved mingw implementation of rmdir().
Tue Jul 08 17:43:21 BST 2003 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.in: Version 0.7.1.
Sun Jul 06 21:35:08 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Minor tweak.
Sun Jul 06 21:34:30 BST 2003 Olly Betts <olly@survex.com>
* common/utils.h: Compile fixes for mingw.
Sun Jul 06 17:59:26 BST 2003 Olly Betts <olly@survex.com>
* docs/scalability.html: Fixed typo.
Sun Jul 06 13:02:09 BST 2003 Olly Betts <olly@survex.com>
* docs/scalability.html: Fixed typo.
Sun Jul 06 12:56:08 BST 2003 Olly Betts <olly@survex.com>
* docs/Makefile.am,docs/index.html,docs/scalability.html: Added new
document on Xapian's scalability.
Sun Jul 06 12:15:34 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/: Made quartz block count unsigned, which should
nearly double the size of database for a given block size.
Sun Jul 06 11:47:46 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/: Use BLK_UNUSED rather than literal -1.
Sun Jul 06 11:47:14 BST 2003 Olly Betts <olly@survex.com>
* common/utils.h: Fixed last check-in to compile.
Sun Jul 06 11:01:03 BST 2003 Olly Betts <olly@survex.com>
* common/utils.h,tests/btreetest.cc,tests/quartztest.cc,
testsuite/backendmanager.cc: Replaced system("rm -rf ...") with
rmdir() function and added two ms windows implementations for
Sam to try.
Sat Jul 05 10:37:35 BST 2003 Olly Betts <olly@survex.com>
* getopt/getopt.c: Suppress "unused variable" warnings from getopt.c.
Sat Jul 05 02:21:11 BST 2003 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Sat Jul 05 02:09:06 BST 2003 Olly Betts <olly@survex.com>
* configure.in,backends/quartz/btree.cc: Use pread() and pwrite() if
available - this avoids one syscall per block read/write.
Fri Jul 04 22:05:14 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Added results from building 0.7.0 on my Linux dev box.
Fri Jul 04 18:52:07 BST 2003 Olly Betts <olly@survex.com>
* extra/Makefile.am: Distribute symboltab.h.
Fri Jul 04 18:04:53 BST 2003 Olly Betts <olly@survex.com>
* common/Makefile.am: Distribute documentterm.h.
Fri Jul 04 15:30:28 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Disabled guile, tcl8, and php4 here as well as in
bindings/Makefile.am.
Fri Jul 4 11:27:53 2003 James Aylett <james@tartarus.org>
* bindings/Makefile.am: change commenting so mkdoc.pl doesn't
choke
Fri Jul 4 10:51:04 2003 James Aylett <james@tartarus.org>
* bootstrap: add missing ';;' as case pattern delimiter
Thu Jul 03 23:46:14 BST 2003 Olly Betts <olly@survex.com>
* bindings/Makefile.am,bindings/python/Makefile.am: Fixed to work with
"make dist".
Thu Jul 03 23:29:06 BST 2003 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.in: Version 0.7.0.
Thu Jul 03 22:57:22 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated (Linux GCC 2.95 and Linux to mingw cross).
Thu Jul 03 22:55:54 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy,extra/queryparsertest.cc: Allow more than one
adjacent phrase generating character.
Thu Jul 03 22:12:18 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy,extra/queryparsertest.cc: Always ignore phrase
generating characters at start and end of query.
Thu Jul 03 21:02:10 BST 2003 Olly Betts <olly@survex.com>
* extra/Makefile.am: Fixed for mingw compile.
Thu Jul 03 19:24:50 BST 2003 Olly Betts <olly@survex.com>
* buildall,docs/OMAims: Removed unwanted old files.
Thu Jul 03 19:18:41 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/runquartztest: Obsolete, so removed.
Thu Jul 03 01:26:03 BST 2003 Olly Betts <olly@survex.com>
* common/omenquireinternal.h: Fix for building with GCC 3.3.
Thu Jul 03 01:02:54 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Updated.
Wed Jul 02 22:18:07 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/bcursor.cc,backends/quartz/bcursor.h:
Made Bcursor::get_key(string * key) const.
Wed Jul 02 21:51:43 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/: Workaround for shared_level problem turns out to
be arguably the better approach, so made it permanent and tidied up
code.
Mon Jun 23 21:39:50 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Updated in preparation for 0.7.0 release.
Mon Jun 23 21:18:23 BST 2003 Olly Betts <olly@survex.com>
* extra/omparsequery.h: Corrected include protection token comment on
#endif to match that used in the #ifdef.
Mon Jun 23 21:10:33 BST 2003 Olly Betts <olly@survex.com>
* bootstrap: Check for Bison 1.875 which doesn't work with Xapian.
Mon Jun 23 21:08:35 BST 2003 Olly Betts <olly@survex.com>
* HACKING: Automake 1.7 works reliably with Xapian; CFLAGS=-Werror can
now be used as we suppress the warnings from the Snowball generated
C code.
Mon Jun 23 16:55:54 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,backends/quartz/,
bindings/swig/om_util_python.i,bindings/swig/xapian.i,common/,
include/Makefile.am,include/xapian.h,include/om/om.h,include/xapian/,
matcher/localmatch.h,matcher/phrasepostlist.h,tests/api_db.cc,
tests/api_posdb.cc,tests/quartztest.cc:
Xapian::Xapian::PostListIterator -> Xapian::PostingIterator;
Xapian::PositionListIterator -> Xapian::PositionIterator;
xapian/postlistiterator.h -> xapian/postingiterator.h;
xapian/positionlistiterator.h -> xapian/positioniterator.h.
Mon Jun 23 15:31:30 BST 2003 Olly Betts <olly@survex.com>
* backends/database.cc,backends/inmemory/inmemory_database.h,
backends/muscat36/,backends/quartz/,bindings/python/Makefile.am,
bindings/swig/om_util.i,bindings/swig/omstem.i,docs/quickstart.html,
docs/todo.xml,include/xapian/database.h,include/xapian/enquire.h,
include/xapian/errortypes.h,tests/api_db.cc,tests/quartztest.cc,
testsuite/backendmanager.cc,testsuite/textfile_indexer.cc:
Xapian::OpeningError renamed to Xapian::DatabaseOpeningError.
* include/om/om.h: OmOpeningError now maps to
Xapian::DatabaseOpeningError.
Mon Jun 23 01:44:45 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/inmemory/inmemory_database.cc,
backends/muscat36/da_database.cc,backends/muscat36/db_database.cc,
backends/net/net_database.cc,backends/net/net_termlist.cc,
backends/net/net_termlist.h,backends/quartz/,bin/omprogsrv.cc,
bin/quartzdump.cc,common/,include/xapian/error.h,
include/xapian/errorhandler.h,matcher/emptymatch.h,net/,
tests/quartztest.cc,tests/stemtest.cc,testsuite/testsuite.cc,
testsuite/textfile_indexer.cc: Use '#include <...>' for headers
in include/.
Thu Jun 19 17:55:07 BST 2003 Olly Betts <olly@survex.com>
* common/netserver.h,common/socketserver.h,matcher/localmatch.cc,
matcher/multimatch.cc,net/socketserver.cc: Removed unused header
inclusion; pass Stats and Xapian::Database by const reference, not
value.
Thu Jun 19 14:50:49 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy,extra/symboltab.h: Force control characters to
spaces; Added note that accent normalisation is perhaps done at the
wrong time...
Thu Jun 19 14:40:36 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparsertest.cc: Added test for control characters.
Thu Jun 19 14:31:12 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparsertest.cc: Added checks for weird whitespace in
queries.
Wed Jun 18 19:02:14 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy: Reworked parsing of boolean operators to
improve error reporting.
* extra/queryparsertest.cc: Added 2 more testcases and fixed to better
handle tests for expected errors.
Wed Jun 18 19:00:55 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy: Trim leading and trailing whitespace before
attempting to parse the query.
Wed Jun 18 17:58:56 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy: `using namespace Xapian;'
Fri Jun 06 01:33:33 BST 2003 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Commented out the section on the Lexicon,
which we no longer use.
Thu Jun 05 22:40:21 BST 2003 Olly Betts <olly@survex.com>
* bindings/python/.cvsignore,bindings/python/Makefile.am,
bindings/python/dothemake.txt,bindings/swig/om_util_python.i:
Cleaned up building of python bindings by making better use of
automake.
Thu Jun 05 22:17:40 BST 2003 Olly Betts <olly@survex.com>
* languages/Makefile.am: Reenable standard warnings apart from the
-Wunused.
Thu Jun 05 20:21:08 BST 2003 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc: Fixed a couple of problems with the new
query serialisation.
Thu Jun 05 17:55:21 BST 2003 Olly Betts <olly@survex.com>
* HACKING,configure.in: Flex is no longer used, so removed configure
tests and note in HACKING.
Thu Jun 05 17:53:30 BST 2003 Olly Betts <olly@survex.com>
* tests/remotetest.cc: In test netexpand1, use TEST() rather than
Assert() so that the check is made in non-debug builds too.
Thu Jun 05 17:52:17 BST 2003 Olly Betts <olly@survex.com>
* api/omqueryinternal.cc,common/socketcommon.h,docs/todo.xml,
include/xapian/query.h,net/: Reworked query serialisation so that
the code is now all in api/omqueryinternal.cc. Serialisation is
now rather more compact and no longer relies on flex for parsing.
Thu Jun 05 17:45:00 BST 2003 Olly Betts <olly@survex.com>
* bin/Makefile.am: omprogsrv depends on libtest.la, so it need to be
in check_PROGRAMS.
Thu Jun 05 17:09:10 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am: Moved bindings after extra in SUBDIRS - the bindings
wrap Xapian::QueryParser so they need to be built after it.
Thu Jun 05 01:28:01 BST 2003 Olly Betts <olly@survex.com>
* bindings/python/Makefile.am: Use $(SWIG) (as detected by configure).
Thu Jun 05 00:46:16 BST 2003 Olly Betts <olly@survex.com>
* configure.in,bindings/Makefile.am,bindings/python/Makefile.am:
Check for python and find the correct paths for building python
bindings; Added dependencies for building _xapian.so.
Wed Jun 4 17:19:37 2003 James Aylett <james@tartarus.org>
* configure.in, Makefile.am, bindings: build system will build
bindings as part of normal build process. No longer build
Perl or Java bindings; for Perl, use Search::Xapian; Java will
be replaced with SWIG-based bindings.
* bindings: bindings now use Xapian:: namespace names rather than
the old Om* ones. Almost all of the API should now be wrapped.
Wed Jun 04 02:52:38 BST 2003 Olly Betts <olly@survex.com>
* docs/overview.html: Added start of "Design Principles" section.
* docs/todo.xml: Added a couple more items.
Wed Jun 04 02:51:56 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am: Build testsuite later - it now doesn't need to be built
until just before tests.
Wed Jun 04 02:43:08 BST 2003 Olly Betts <olly@survex.com>
* backends/muscat36/: Split up spec into comments in the appropriate
header files; fixed to build after recent Om -> Xapian changes.
Wed Jun 04 01:56:46 BST 2003 Olly Betts <olly@survex.com>
* HACKING: Bison 1.75 and 1.875a both checked with parsequery.yy
- no problems found.
Mon Jun 02 20:14:22 BST 2003 Olly Betts <olly@survex.com>
* ChangeLog.0: Fixed 2 typos.
Mon Jun 02 20:09:01 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Updated in preparation for 0.7.0 release.
Mon Jun 02 16:25:18 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Fix m4 quoting so that MINOR_VERSION is set correctly.
Mon Jun 2 15:22:30 2003 James Aylett <james@tartarus.org>
* bindings/swig/xapian.i: move QueryParser wrapping to use
the new namespace location, and fix include so it can work
out of the build directory rather than just the installed
library
Mon Jun 02 14:15:14 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am,configure.in,bindings/Makefile.am,docs/todo.xml:
Added --enable-bindings to configure - if this is specified and
swig is detected, try to build the language bindings.
Mon Jun 02 12:46:18 BST 2003 Olly Betts <olly@survex.com>
* backends/database.cc: Fixed parsing of port number in remote stub
databases.
Sat May 31 15:03:47 BST 2003 James Aylett <james@tartarus.org>
* bindings/swig: update so can build Python bindings against
latest Xapian; untested, and other languages are likely to
fail
Fri May 30 02:59:48 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy,extra/queryparsertest.cc: Embedded '.' is
now a phrase maker; Ignore `""' in query; Ignore ')' at start
of query.
Fri May 30 01:22:49 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparsertest.cc: Added another 405 queries which fail to
parse (courtesy of Arjen van der Meijden).
Thu May 29 19:08:28 BST 2003 Olly Betts <olly@survex.com>
* docs/todo.xml,extra/queryparsertest.cc: Extracted two more
queryparser testcases which need fixing from the old todo list.
Thu May 29 17:14:04 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy,extra/queryparsertest.cc: A phrasemaker isn't
a phrasemaker unless it's preceded by an alphanumeric, "+", or "-";
If a single term is in (), ignore the ().
Thu May 29 16:45:39 BST 2003 Olly Betts <olly@survex.com>
* extra/queryparser.yy,extra/queryparsertest.cc: Improved handling
of various odd queries encountered in real life applications.
Thu May 29 01:50:51 BST 2003 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated more.
Thu May 29 01:26:50 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/database.cc,backends/inmemory/,backends/multi/,
backends/muscat36/,backends/net/,backends/quartz/,common/,
docs/overview.html,docs/quickstart.html,
docs/quickstartexpand.cc.html,extra/queryparser.yy,include/om/om.h,
include/xapian/,matcher/,net/,tests/api_db.cc,tests/api_posdb.cc,
tests/quartztest.cc,testsuite/: Converted remaining om_xxx types
to Xapian::xxx.
Wed May 28 23:06:18 BST 2003 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Wed May 28 22:59:17 BST 2003 Olly Betts <olly@survex.com>
* tests/api_db.cc: Spelling correction: accross -> across.
Wed May 28 20:24:32 BST 2003 Olly Betts <olly@survex.com>
* extra/: OmQueryParser -> Xapian::QueryParser, etc.
Wed May 28 20:03:48 BST 2003 Olly Betts <olly@survex.com>
* api/omdocument.cc: Removed include of defunct header
modifieddocument.h.
Wed May 28 20:00:56 BST 2003 Olly Betts <olly@survex.com>
* api/maptermlist.h,api/omdocument.cc,api/omvalueiterator.cc,
backends/inmemory/inmemory_document.cc,
backends/inmemory/inmemory_document.h,backends/muscat36/,
backends/net/net_document.cc,backends/net/net_document.h,
backends/quartz/quartz_document.cc,backends/quartz/quartz_document.h,
common/Makefile.am,common/document.h,common/modifieddocument.h,
include/xapian/document.h,tests/api_db.cc: Fixed bug in refactored
Xapian::Document when modifying a copy. Added regression test.
Wed May 28 19:23:26 BST 2003 Olly Betts <olly@survex.com>
* common/omenquireinternal.h,include/xapian/database.h,
include/xapian/enquire.h,include/xapian/query.h: Where possible,
declare classes rather than including headers (in public headers).
Wed May 28 17:32:14 BST 2003 Olly Betts <olly@survex.com>
* include/xapian/document.h: Just declare "class TermIterator;" rather
than including <xapian/termiterator.h>.
Tue May 27 16:59:34 BST 2003 Olly Betts <olly@survex.com>
* common/progserver.h,common/socketserver.h,net/socketserver.cc:
Reduced needless header inclusion.
Tue May 27 16:53:40 BST 2003 Olly Betts <olly@survex.com>
* bin/omprogsrv.cc,tests/api_db.cc: Use variable name "dbs" in
preference to "dbgrp". OmDatabaseGroup hasn't existed for
years!
Tue May 27 16:51:30 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am: Fixed typo: "bin" should be "net" in remote_subdirs.
Tue May 27 02:43:32 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/Makefile.am: Removed -I referencing testsuite
directory.
Tue May 27 02:39:43 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/,docs/tests.html,tests/: Moved quartztest and
btreetest to tests/ directory.
Tue May 27 02:03:07 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am,configure.in,xapian.spec.in,backends/quartz/,bin/,
docs/remote.html,netprogs/,tests/api_db.cc,tests/remotetest.cc,
testsuite/backendmanager.cc,testsuite/testsuite.cc: Sorted out
the source tree structure so that programs which aren't tests which
were previously built by "make check" are now be built by "make".
Tue May 27 01:01:40 BST 2003 Olly Betts <olly@survex.com>
* autoconf/dir_contents,backends/dir_contents,
backends/inmemory/dir_contents,backends/multi/dir_contents,
backends/muscat36/dir_contents,backends/net/dir_contents,
backends/quartz/dir_contents,bindings/dir_contents,
common/dir_contents,docs/dir_contents,include/om/dir_contents,
include/xapian/dir_contents,include/dir_contents,
indexer/dir_contents,indexer/indexgraph/dir_contents,
languages/dir_contents,m4/dir_contents,tests/dir_contents:
Updated all the dir_contents files - many were out-of-date.
Tue May 27 00:42:54 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am: Filter any .la files out of dependency_libs.
Tue May 27 00:11:18 BST 2003 Olly Betts <olly@survex.com>
* netprogs/.cvsignore,netprogs/Makefile.am,netprogs/nettest.cc,
tests/.cvsignore,tests/Makefile.am,tests/remotetest.cc:
netprogs/nettest -> tests/remotetest.
Mon May 26 23:49:49 BST 2003 Olly Betts <olly@survex.com>
* netprogs/nettest.cc: Removed test tcpclient1 - the functionality it
tests is also tested by tcpmatch1, and it introduces dependencies on
internal headers.
Mon May 26 22:00:01 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_table_manager.cc: Give a better error message
if asked to open a pre-0.6 Quartz database.
Mon May 26 20:43:21 BST 2003 Olly Betts <olly@survex.com>
* HACKING,Makefile.am,backends/Makefile.am,docs/mkdoc.pl,
net/Makefile.am: Fixed to never leave partial files in place of the
expected output if a build is interrupted.
Mon May 26 16:50:59 BST 2003 Olly Betts <olly@survex.com>
* HACKING: Added note adapted from an old email noting why compile-time
options are generally best avoided.
Mon May 26 12:03:29 BST 2003 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc,testsuite/textfile_indexer.cc: Corrected
odd uses of std::string::erase() (instead of `str = str.erase(n, m)'
just use `str.erase(n,m)').
Sun May 25 22:59:44 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated.
Sun May 25 22:58:28 BST 2003 Olly Betts <olly@survex.com>
* languages/Makefile.am: Suppress "unused" warnings in Snowball
generated C code.
Sun May 25 21:43:34 BST 2003 Olly Betts <olly@survex.com>
* api/omtermlistiterator.cc: Removed iostream.h include left over from
debugging.
Sun May 25 12:27:11 BST 2003 Olly Betts <olly@survex.com>
* docs/,extra/omparsequery.h,extra/parsequery.yy,include/Makefile.am,
include/xapian.h,include/om/om.h,tests/,testsuite/backendmanager.cc,
testsuite/backendmanager.h,testsuite/testutils.h: Created xapian.h
header and changed everything to use it.
Sat May 24 23:35:46 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_document.h,
backends/quartz/quartz_database.cc,backends/quartz/quartztest.cc,
common/,include/Makefile.am,include/om/om.h,
include/om/omvalueiterator.h,include/xapian/,
testsuite/backendmanager.cc: OmValueIterator -> Xapian::ValueIterator
etc.
Fri May 23 15:32:29 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/database.cc,backends/inmemory/,backends/muscat36/,
backends/net/net_database.cc,backends/net/net_document.cc,
backends/net/net_document.h,backends/quartz/,common/,docs/,
include/Makefile.am,include/om/om.h,include/om/omdocument.h,
include/om/omvalueiterator.h,include/xapian/,indexer/omindexer.h,
matcher/,net/,netprogs/nettest.cc,tests/api_db.cc,tests/api_posdb.cc,
tests/internaltest.cc,testsuite/: OmDocument -> Xapian::Document, etc.
* include/Makefile.am: Fixed library headers to install in xapian and
om subdirectories as they should.
Fri May 23 15:31:05 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Consistently use int4 for block number -
it really should be unsigned and this is a first step.
Mon May 19 13:20:46 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Create include/xapian if it doesn't exist so that
VPATH builds work.
Mon May 19 13:17:16 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am: Disabled exported symbol regex for now.
Tue May 13 05:08:54 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/database.cc,backends/dir_contents,backends/inmemory/,
backends/multi/,backends/muscat36/,backends/net/,backends/quartz/,
common/,docs/,extra/omparsequery.h,include/,matcher/,net/,netprogs/,
tests/: OmDatabase -> Xapian::Database, etc.
Tue May 13 05:07:41 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Corrected spelling: "maintainance" to "maintenance".
Tue May 13 00:40:47 BST 2003 Olly Betts <olly@survex.com>
* ChangeLog.0,NEWS,backends/inmemory/inmemory_database.h,
backends/muscat36/da_database.h,backends/muscat36/db_database.h,
backends/quartz/quartz_postlist.h,
indexer/indexgraph/omstopwordnode.cc: Spelling correction:
"occurence" should be "occurrence".
Mon May 12 22:39:27 BST 2003 Olly Betts <olly@survex.com>
* api/ompositionlistiteratorinternal.h,
include/om/ompositionlistiterator.h: Removed unused files.
Mon May 12 20:51:03 BST 2003 Olly Betts <olly@survex.com>
* api/omdatabaseinternal.cc,backends/database.cc: Moved database
factory functions from api to backends.
Fri May 09 04:02:29 BST 2003 Olly Betts <olly@survex.com>
* common/expandweight.h: Removed cruft.
Fri May 09 03:50:36 BST 2003 Olly Betts <olly@survex.com>
* common/rset.h: Removed unused RSetI ctor variant.
Fri May 09 02:00:03 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/,docs/overview.html,include/om/om.h,
include/xapian/enquire.h,include/xapian/output.h,matcher/,
net/socketclient.cc,net/socketcommon.cc,net/socketserver.cc,
netprogs/nettest.cc,tests/api_db.cc: OmRSet -> Xapian::RSet.
Fri May 09 01:06:32 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc: Fixed MSet::Internal::get_description() to include
class name.
Fri May 09 01:04:12 BST 2003 Olly Betts <olly@survex.com>
* common/rset.h,matcher/expand.cc,matcher/rset.cc: RSetI now uses
set<Xapian::docid> (as OmRSet::Internal) rather than
vector<RSetItem>.
Fri May 09 00:41:20 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/,docs/quickstartexpand.cc.html,matcher/:
RSet internal class renamed to RSetI to aid upcoming OmRSet ->
Xapian::RSet change. RSetI looks like it can be eliminated
later.
Thu May 08 23:54:44 BST 2003 Olly Betts <olly@survex.com>
* tests/: Removed make_dbgrp() helper function from apitest as it
makes the test code less clear without making it easier to write.
Thu May 08 01:24:53 BST 2003 Olly Betts <olly@survex.com>
* api/ompostlistiterator.cc,docs/overview.html,tests/api_db.cc:
Fixed OmWeight and OmMatchDecider in comments, docs, and
testsuite.
Thu May 08 01:16:30 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc,backends/multi/multi_postlist.h,common/,
include/om/om.h,include/xapian/enquire.h,matcher/,
net/socketclient.cc,net/socketserver.cc: OmMatchDecider ->
Xapian::MatchDecider; OmWeight -> Xapian::Weight; BoolWeight,
TradWeight, BM25Weight -> Xapian::.
Wed May 07 23:06:47 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btreetest.cc,backends/quartz/quartztest.cc,
configure.in,netprogs/nettest.cc,tests/,testsuite/: Minor overhaul
of testsuite.
Wed May 07 17:54:34 BST 2003 Olly Betts <olly@survex.com>
* backends/,common/document.h,matcher/Makefile.am,matcher/document.cc:
Removed do_ wrappers for Document methods get_value(),
get_all_values() and get_data(). The wrappers used to perform
thread locking, but now they're just pointless overhead.
Wed May 07 17:24:00 BST 2003 Olly Betts <olly@survex.com>
* HACKING: Started section of API structure.
Wed May 07 02:16:03 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/expand.h,common/omenquireinternal.h,
common/omstringstream.h,docs/quickstart.html,include/om/om.h,
include/xapian/enquire.h,include/xapian/output.h,matcher/expand.cc,
matcher/multimatch.cc,net/socketcommon.cc,netprogs/nettest.cc,
tests/api_db.cc,testsuite/testutils.cc: OmMSet -> Xapian::MSet,
similarly for OmMSetIterator, OmESet, and OmESetIterator.
Tue May 06 19:31:42 BST 2003 Olly Betts <olly@survex.com>
* include/xapian/query.h: New file I failed to checkin on Friday.
Tue May 06 14:16:41 BST 2003 Olly Betts <olly@survex.com>
* HACKING,configure.in,tests/.cvsignore,tests/Makefile.am,
tests/runtest.in,testsuite/testsuite.cc: Sorted out autodetection
of valgrind for running testsuite.
* HACKING: Added note about how to run gdb on dynamically linked
binaries built using libtool.
* HACKING: Recommend libtool 1.5 as in 1.4.2 libtool --mode=execute
doesn't seem to handle programs with arguments.
Tue May 06 00:25:03 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated.
Fri May 02 16:58:15 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Improved check that LEX is flex - it will now accept
"flex" with a path and/or prefix.
Fri May 02 16:12:46 BST 2003 Olly Betts <olly@survex.com>
* api/,common/,include/,matcher/,net/,netprogs/nettest.cc,
netprogs/omtcpsrv.cc,tests/api_db.cc,tests/api_posdb.cc,
testsuite/testutils.cc,testsuite/testutils.h: OmEnquire ->
Xapian::Enquire, OmQuery -> Xapian::Query, etc.
Fri May 02 03:14:28 BST 2003 Olly Betts <olly@survex.com>
* tests/internaltest.cc: Reenabled tests for leak checking and fixed
them up to work with valgrind.
Fri May 02 02:14:28 BST 2003 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc,testsuite/testsuite.h: If a testsuite program
is run using "valgrind --logfile-fd=255 ./footest" then the harness
will show valgrind's output for tests which fail because valgrind
spotted errors or leaks (untested under valgrind).
Thu May 01 21:25:01 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc,api/omquery.cc,api/omqueryinternal.cc,common/,
docs/overview.html,docs/quickstart.html,extra/omparsequery.h,
extra/parsequery.yy,extra/parsequerytest.cc,include/,matcher/,
net/,netprogs/nettest.cc,tests/api_db.cc,tests/api_nodb.cc,
tests/api_posdb.cc: OmQuery -> Xapian::Query, etc. For now
I've had to expose Xapian::Query::Internal in xapian/query.h
which isn't ideal.
Wed Apr 30 20:37:27 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/omenquireinternal.h,include/:
typedefs om_* -> Xapian::*, but not changed all internal uses yet.
Wed Apr 30 03:51:52 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/,common/,extra/omparsequery.h,extra/parsequery.yy,
include/,matcher/localmatch.h,matcher/orpostlist.h,tests/api_db.cc:
OmPostListIterator -> Xapian::PostListIterator, etc.
Wed Apr 30 02:13:31 BST 2003 Olly Betts <olly@survex.com>
* docs/matcherdesign.html,include/om/omenquire.h: Merged docs
discussing OmMSetIterator::get_collapse_count() into the doxygen
documentation comments - they're docs aimed at the API user so
really don't belong in the internal matcher design docs.
Wed Apr 30 01:08:39 BST 2003 Olly Betts <olly@survex.com>
* .cvsignore: Added config.guess.
Tue Apr 29 21:08:40 BST 2003 Olly Betts <olly@survex.com>
* include/om/om.h,include/xapian/base.h,include/xapian/error.h,
include/xapian/errorhandler.h,include/xapian/expanddecider.h,
include/xapian/positionlistiterator.h,include/xapian/stem.h,
include/xapian/termiterator.h: OM_HGUARD_* -> XAPIAN_INCLUDED_*.
Tue Apr 29 20:37:01 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/,common/,include/,indexer/omnodeinstanceiterator.h,
indexer/ompaditerator.h,net/readquery.h,testsuite/indexer.h:
om/omoutput.h -> xapian/output.h; om/omtypes.h -> xapian/types.h.
Tue Apr 29 18:28:27 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/,common/,include/,matcher/,net/socketserver.cc,tests/,
testsuite/backendmanager.cc,testsuite/testsuite.cc: OmTermIterator
-> Xapian::TermIterator, etc.
Tue Apr 29 17:39:34 BST 2003 Olly Betts <olly@survex.com>
* common/omdebug.cc: Setting XAPIAN_DEBUG_LOG caused an exception
(with GCC 3.0 at least) unless the value contained %% - fixed.
Tue Apr 29 14:29:36 BST 2003 Olly Betts <olly@survex.com>
* api/ompositionlistiterator.cc: Fixed to compile in debug mode.
Tue Apr 29 01:06:02 BST 2003 Olly Betts <olly@survex.com>
* xapian.spec.in: Removed %changelog - it hasn't been reliably updated
and only really makes sense when the packaging is done by a third
party anyway.
Tue Apr 29 01:03:20 BST 2003 Fabrice Colin
* xapian.spec.in: Fixed packaging of docs.
Tue Apr 29 00:33:21 BST 2003 Olly Betts <olly@survex.com>
* HACKING,testsuite/testsuite.cc,testsuite/testsuite.h: valgrind is
now mostly hooked into the testsuite.
* HACKING: Bison 1.875 doesn't work but Bison 1.875a probably does;
suggest CXXFLAGS=-Werror, not CFLAGS.
Tue Apr 29 00:14:00 BST 2003 Olly Betts <olly@survex.com>
* INSTALL: Updated.
Wed Apr 23 14:31:51 BST 2003 Olly Betts <olly@survex.com>
* api/omtermlistiterator.cc,api/omtermlistiteratorinternal.h,
api/omvalueiteratorinternal.h,backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_positionlist.cc,
common/inmemory_positionlist.h: Added InMemoryPositionList ctor
which takes the positions data to avoid needing to construct and
immediately call set_data().
Wed Apr 23 14:14:34 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/,common/,include/,matcher/: OmPositionListIterator
-> Xapian::PositionListIterator, etc.
Wed Apr 23 13:47:49 BST 2003 Olly Betts <olly@survex.com>
* xapian.spec.in: Minor tweaks.
Sun Apr 20 22:55:04 BST 2003 Olly Betts <olly@survex.com>
* extra/omparsequery.h,include/xapian/stem.h,tests/api_db.cc,
tests/api_nodb.cc,tests/api_posdb.cc,testsuite/backendmanager.cc:
OmStem -> Xapian::Stem; OmExpandDecider -> Xapian::ExpandDecider.
Sun Apr 20 22:52:42 BST 2003 Olly Betts <olly@survex.com>
* configure.in,api/omenquire.cc,common/expand.h,
common/omenquireinternal.h,docs/overview.html,include/,
matcher/expand.cc,tests/api_db.cc: OmExpandDecider ->
Xapian::ExpandDecider, etc.
Sun Apr 20 22:42:32 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS,api/,backends/,common/,docs/,include/,matcher/,net/,
netprogs/,tests/,testsuite/: OmError -> Xapian::Error, etc.
Fri Apr 18 22:40:31 BST 2003 Sam Liddicott <sam@liddicott.com>
* matcher/multimatch.cc: Fixed so that it updates the OmMSetItem in
the MSet with the collapse_count from the OmMSetItem twin in
collapse_tab or we lose collapse_count if newer collapsing hits are
less relevant than the hits they collapse over. I think we need
collapse_tab maybe to keep a reference to the item in the mset? But
this works for now.
* xapian.spec.in: Fixed to also install include/xapian stuff
Fri Apr 18 19:17:56 BST 2003 Olly Betts <olly@survex.com>
* configure.in,include/Makefile.am,include/om/.cvsignore,
include/om/Makefile.am,include/om/om.h,include/om/om.h.in,
include/xapian/.cvsignore,include/xapian/Makefile.am,
include/xapian/dir_contents,include/xapian/version.h.in:
C++ ABI version checking is now done by xapian/version.h.
Fri Apr 18 17:57:21 BST 2003 Olly Betts <olly@survex.com>
* configure.in,api/omstem.cc,include/Makefile.am,include/om/om.h.in,
include/om/omstem.h,include/xapian/.cvsignore,
include/xapian/Makefile.am,include/xapian/base.h,
include/xapian/stem.h: Reworked OmStem to use reference counted
internals; renamed OmStem to Xapian::Stem and added a #define for
compatibility with existing code.
Fri Apr 18 17:02:56 BST 2003 Olly Betts <olly@survex.com>
* api/,backends/,common/,docs/overview.html,docs/quickstart.html,
docs/quickstartexpand.cc.html,extra/,include/om/,matcher/,net/,
tests/,testsuite/: Use std::string instead of typedef-ing it as
om_termname. The typedef doesn't really buy us anything. Keep
a typedef for compatibility with existing code for now.
Fri Apr 18 16:12:32 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: GCC 3.2.2 on Redhat 7.1 works with CXXFLAGS=-Werror
Thu Apr 10 20:05:27 BST 2003 Olly Betts <olly@survex.com>
* common/Makefile.am,common/indexer.h,testsuite/Makefile.am,
testsuite/indexer.h: Moved indexer.h from common to testsuite
and altered it to use iosfwd instead of iostream and to
declare OmDocument as a class instead of include omdocument.h.
Thu Apr 10 18:55:55 BST 2003 Olly Betts <olly@survex.com>
* xapian-config.nodep.in: Removed --prefix and --exec-prefix - you
can't reliably install Xapian with a different prefix to the one
it was configured with, yet these options give the impression you
can.
Thu Apr 10 18:53:53 BST 2003 Olly Betts <olly@survex.com>
* .cvsignore: Added config.sub.
Thu Apr 10 02:41:50 BST 2003 Olly Betts <olly@survex.com>
* NEWS,configure.in: Updated for 0.6.5 release.
Thu Apr 10 02:29:12 BST 2003 Olly Betts <olly@survex.com>
* docs/doxygen_api_footer.html_tmpl,docs/doxygen_full_footer.html_tmpl,
docs/overview.html: Use http://www.doxygen.org/ as URL for doxygen.
* docs/overview.html: Fixed bad link to our own website!
Thu Apr 10 02:12:00 BST 2003 Olly Betts <olly@survex.com>
* Makefile.am,backends/Makefile.am,backends/net/.cvsignore,
backends/net/Makefile.am,netprogs/.cvsignore: Renamed libnetdb.la
to libremote.la, and LIB_REMOTE1 to LIBNET_LA.
Thu Apr 10 02:08:24 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated mingw notes to reflect the change to
automatically disable the remote backend when fork() isn't
available.
Thu Apr 10 01:56:34 BST 2003 Olly Betts <olly@survex.com>
* docs/mkdoc.pl: Fixed to only look at directories listed in
DIST_SUBDIRS.
Thu Apr 10 00:23:28 BST 2003 Olly Betts <olly@survex.com>
* configure.in: Automatically disable the remote backend if we don't
have fork() since the remote backend requires it in several places;
AM_CONDITIONAL ENABLE_SHARED isn't used anywhere so commented it
out.
Wed Apr 09 22:48:20 BST 2003 Olly Betts <olly@survex.com>
* NEWS: Updated with recent changes.
Wed Apr 09 22:43:31 BST 2003 Olly Betts <olly@survex.com>
* docs/remote_protocol.html: Talk about Server/Client rather than
ProgServer/ProgClient; reworked first paragraph.
Wed Apr 09 13:23:05 BST 2003 Olly Betts <olly@survex.com>
* docs/Makefile.am: Install docs in /usr/share/doc/xapian-core to be
FHS compliant.
* xapian.spec.in: Package quartzcheck and quartzcompact too; sorted
out docs so they all install in the right place.
Wed Apr 09 01:16:11 BST 2003 Olly Betts <olly@survex.com>
* configure.in,backends/quartz/quartz_log.cc,
backends/quartz/quartz_table_manager.cc,common/omdebug.cc,
common/omdebug.h: Don't use HAVE_GETPID - if it's not set we assume
GetCurrentProcessId() works, so it's cleaner to test with
#ifdef WIN32 instead.
Tue Apr 08 19:56:57 BST 2003 Olly Betts <olly@survex.com>
* PLATFORMS: Updated with the results of many test builds.
Tue Apr 08 19:55:15 BST 2003 Olly Betts <olly@survex.com>
* configure.in,backends/quartz/Makefile.am,backends/quartz/btree.cc,
netprogs/nettest.cc,common/getopt.h,common/omtime.h,common/utils.cc,
common/utils.h,tests/Makefile.am,tests/api_db.cc: Now builds with
Linux to mingw cross-compiler.
* tests/Makefile.am: don't include findheaders.pl in the tarball -
it's no longer used.
* tests/internaltest.cc: removed "#include <dlfcn.h>" and disabled
code which used to use it.
* testsuite/backendmanager.cc,testsuite/backendmanager.h: fixed to
work if any backends are disabled.
Tue Apr 08 16:09:11 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/quartz_log.cc,
backends/quartz/quartz_table_manager.cc,testsuite/testsuite.cc:
Some fixes for building with Linux to mingw cross-compiler.
Tue Apr 08 02:26:51 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/btreetest.cc: If we don't have <sstream> and so are
using our own stringstream implementation, we can't pass it as an
ostream reference so BtreeCheck::check() can't be run in btreetest.
This is only an issue on old compilers (for GCC <= 2.95.2 it seems)
so just disable the checking in that case - it's probably not worth
the effort of trying to make our stringstream a subclass of ostream.
Tue Apr 08 01:20:36 BST 2003 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Updated unfinished hooks to use valgrind in
the test harness.
Fri Apr 04 03:12:27 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc,api/omstem.cc,common/omdebug.cc: Fixed to compile
when configure-d with --enable-debug-verbose --enable-debug=full.
Fri Apr 04 03:10:53 BST 2003 Olly Betts <olly@survex.com>
* common/omstringstream.h: Removed unused code for writing
vector<string> to our own implementation of om_ostringstream.
Fri Apr 04 03:08:35 BST 2003 Olly Betts <olly@survex.com>
* api/ompostlistiterator.cc: Use "using namespace std;"; replaced
gratuitous use of om_ostringstream.
Fri Apr 04 03:07:05 BST 2003 Olly Betts <olly@survex.com>
* tests/api_nodb.cc: Use "using namespace std;"; removed stray cout
debug line.
Wed Apr 02 16:54:50 BST 2003 Olly Betts <olly@survex.com>
* tests/internaltest.cc: More Sun C++ fixes.
* PLATFORMS: Updated.
Wed Apr 02 16:39:48 BST 2003 Olly Betts <olly@survex.com>
* tests/api_db.cc,net/tcpserver.cc,common/tcpserver.h: More Sun C++
fettling.
Wed Apr 02 15:42:54 BST 2003 Olly Betts <olly@survex.com>
* matcher/emptymatch.h,tests/api_db.cc: More fixes for Sun C++.
Wed Apr 02 15:13:58 BST 2003 Olly Betts <olly@survex.com>
* api/omenquire.cc,api/omqueryinternal.cc,
backends/inmemory/inmemory_database.h,common/document.h,
common/netclient.h,common/netserver.h,common/networkstats.h,
common/omlinebuf.h,common/stats.h,include/om/omerror.h,
include/om/omerrorhandler.h,indexer/indexgraph/nodetest.cc,
indexer/indexgraph/omindexerbuilder.cc,
indexer/indexgraph/omindexerinternal.h,
indexer/indexgraph/omstopwordnode.cc,
indexer/indexgraph/regexcommon.h,indexer/indexgraph/toposort.h,
tests/api_db.cc,tests/api_nodb.cc,testsuite/backendmanager.h:
More fixes for Sun C++; removed many superfluous ";" after "}".
Wed Apr 02 03:45:42 BST 2003 Olly Betts <olly@survex.com>
* api/omdocument.cc,api/omenquire.cc,api/omtermlistiteratorinternal.h,
backends/inmemory/inmemory_database.h,backends/quartz/btree.cc,
backends/quartz/btree.h,common/alltermslist.h,common/expandweight.h,
common/getopt.h,common/utils.h,include/om/omenquire.h,
matcher/expandweight.cc,matcher/multimatch.cc,
testsuite/backendmanager.h: Resolved various issues so that
libxapian now builds with Sun's C++ compiler. However
libomqueryparser and the test programs don't yet.
Tue Apr 01 02:52:57 BST 2003 Olly Betts <olly@survex.com>
* backends/quartz/quartz_types.h: use "unsigned int" rather than
"unsigned long int" so that quartz_tablesize_t matches om_doccount
on 64 bit machines.
Mon Mar 31 19:34:54 BST 2003 Olly Betts <olly@survex.com>
* AUTHORS,xapian.spec.in: Merged in changes to RPM packaging from
Fabrice Colin and reworked further.
Fri Mar 28 20:04:04 GMT 2003 Olly Betts <olly@survex.com>
* NEWS: Updated.
Fri Mar 28 19:53:59 GMT 2003 Olly Betts <olly@survex.com>
* README: Removed out-of-date sourceforge references; tidied up
wording in places.
Fri Mar 28 19:52:11 GMT 2003 Olly Betts <olly@survex.com>
* HACKING: Removed out-of-date sourceforge references; tidied up
wording in places; docs/tests.txt is now docs/tests.html .
Fri Mar 28 17:35:15 GMT 2003 Olly Betts <olly@survex.com>
* NEWS: Wrote most of the entries for the next release.
Fri Mar 28 17:34:57 GMT 2003 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Thu Mar 27 05:42:41 GMT 2003 Olly Betts <olly@survex.com>
* .cvsignore,Makefile.am,configure.in,docs/.cvsignore,docs/Makefile.am,
docs/index.html,docs/todo2html.pl: removed machinery to generate
TODO, TODO.release, docs/todo.html, and docs/todo-release.html from
docs/todo.xml - bug and todo items will be tracked in bugzilla
instead.
Thu Mar 27 05:25:12 GMT 2003 Olly Betts <olly@survex.com>
* docs/todo.xml: Removed completed items and those already fed into
bugzilla.
Thu Mar 27 05:17:05 GMT 2003 Olly Betts <olly@survex.com>
* api/omstem.cc,include/om/omstem.h: Added default OmStem ctor,
and "none" language. Both of these give a stemmer object which
leaves terms unchanged which should allow for simpler logic
in programs using Xapian. The default ctor also removes the
need to mess with pointers in some cases.
Thu Mar 27 04:52:27 GMT 2003 Olly Betts <olly@survex.com>
* NEWS: Started to prepare for next release.
Thu Mar 27 04:49:52 GMT 2003 Olly Betts <olly@survex.com>
* include/om/omenquire.h,include/om/omerror.h: Improved documentation
comments.
Thu Mar 27 01:09:04 GMT 2003 Olly Betts <olly@survex.com>
* docs/todo.xml,tests/api_db.cc: Added regression test for Quartz
bug which caused problems with long terms on machines with signed
chars.
Wed Mar 26 20:30:18 GMT 2003 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: fixed interaction of collapsing and
sort_bands == 1.
Wed Mar 26 01:04:30 GMT 2003 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fixed sort_bands == 1 bug which would
incorrectly reject many documents with a low score.
Thu Mar 06 13:04:06 GMT 2003 Sam Liddicott <sam.liddicott@orange.co.uk>
* docs/matcherdesign.html: Add writeup about document collapsing.
Thu Mar 06 11:32:05 GMT 2003 Sam Liddicott <sam.liddicott@orange.co.uk>
* Add collapse_count threshold checking to ensure that most
relevant collapsed-away hit is more relevant than threshold
(if specified)
Mon Mar 03 14:04:56 GMT 2003 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Corrected 2kB to 2KB.
Fri Feb 28 10:11:04 GMT 2003 Sam Liddicott <sam.liddicott@orange.co.uk>
* Add get_collapse_count() to OmMSetIterator
* Add collapse_count to OmMSetItem
* Add collapse_count tracking to get_mset()
Thu Feb 27 15:28:08 GMT 2003 Olly Betts <olly@survex.com>
* common/match.h,common/multimatch.h,matcher/multimatch.cc: Optimise
the common sort_bands == 1 case better.
* tests/api_db.cc: sortbands2 now tests 1 sortband as well as 10.
Wed Feb 26 09:58:01 GMT 2003 Sam Liddicott <sam.liddicott@orange.co.uk>
* bootstrap: Fix success message when building in non-src dir
as configure is written to the src dir.
Mon Feb 24 10:33:52 GMT 2003 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Disabled (for now) sort_bands
optimisation which is misbehaving. Fixed forward ordered boolean
optimisation broken by last check-in.
* tests/api_db.cc: Added test_sortbands2 based on James' test code.
Sun Feb 23 20:28:47 GMT 2003 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: Fixed problem with sort_bands when asking
for an m-set which didn't start with the first match.
Sun Jan 05 22:20:33 GMT 2003 Olly Betts <olly@survex.com>
* testsuite/index_utils.cc: Handling of ^x was just downright wrong
due to a typo.
Sun Jan 05 22:19:56 GMT 2003 Olly Betts <olly@survex.com>
* backends/quartz/.cvsignore: Ignore quartzcompact binary.
Sun Jan 05 22:18:57 GMT 2003 Olly Betts <olly@survex.com>
* extra/parsequerytest.cc: Fixed to build with GCC 2.95.
Tue Dec 24 20:21:03 GMT 2002 Olly Betts <olly@survex.com>
* NEWS: Added omega 0.6.4 changes.
Tue Dec 24 19:53:10 GMT 2002 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.in: Version 0.6.4.
Tue Dec 24 19:29:27 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc,backends/quartz/quartz_table.cc:
Don't bother checking is position_list is empty - just delete it and
let the layer below handle not having anything to delete.
* backends/quartz/quartz_termlist.cc,docs/todo.xml: Fixed unpacking
of termlist on platforms where char is signed.
Tue Dec 24 05:48:06 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Fixed double setting of position
list when updating a document with term position information. The
behaviour before was correct, just inefficient.
Mon Dec 23 04:44:46 GMT 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Mon Dec 23 03:22:19 GMT 2002 Olly Betts <olly@survex.com>
* extra/parsequery.yy: If a stemmed form with a "." is in the query,
include the "." on the form in the unstem multimap.
Sun Dec 22 21:44:06 GMT 2002 Olly Betts <olly@survex.com>
* extra/omparsequery.h,extra/parsequery.yy,extra/parsequerytest.cc:
Added support for searching probabilistic fields (using
<field>:<term>).
Sat Dec 21 01:38:59 GMT 2002 Olly Betts <olly@survex.com>
* configure.in: Don't include "om.h" in APIDOC_SRC, otherwise
people building from source will need to regenerate the source
docs which will require them to have doxygen installed.
Fri Dec 20 15:39:51 GMT 2002 James Aylett <james@tartarus.org>
* Bindings build using SWIG 1.3.14u-20020706-1222, with very
basic functionality tested with the Python target.
Fri Dec 20 12:38:26 GMT 2002 James Aylett <tartarus@users.sourceforge.net>
* Tidied up some bindings-related issues, including changes to
the Python bindings to work with Python 2.2. This probably won't
compile as it stands, but it's disabled anyway.
Sun Dec 15 18:23:42 GMT 2002 Olly Betts <olly@survex.com>
* api/omdatabase.cc,backends/muscat36/da_database.cc,
backends/muscat36/db_database.cc,matcher/phrasepostlist.cc:
Muscat 3.6 DA and DB databases don't have word position information.
Instead of throwing an exception when this information is requested,
return an empty position list (i.e. behave as a quartz database with
no position information would).
Sun Dec 15 03:08:28 GMT 2002 Olly Betts <olly@survex.com>
* backends/muscat36/: DADatabase and DBDatabase ctors need to public
so that they can called from the database factory functions.
* api/omenquire.cc,backends/muscat36/,backends/quartz/btree.cc,
tests/api_db.cc: Fixed compilation warnings.
Sat Dec 14 23:02:55 GMT 2002 Olly Betts <olly@survex.com>
* docs/quartzdesign.html,docs/todo.xml: Updated.
Sat Dec 14 22:57:41 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/Makefile.am,backends/quartz/quartzcheck.cc,
backends/quartz/quartzcompact.cc,backends/quartz/quartzdump.cc:
Enhanced quartzcheck to check all the btrees in a quartz database
if passed a directory name. It also default to "v" rather than
"+" which is more appropriate for an end user checking if tables
in a non-trivial sized database are corrupt. Added quartzcompact
utility to make a copy of a quartz database with full compaction
turned on - this results in a smaller database which is faster to
search. The next update will result in a lot of block splitting
though (since all blocks are as full as possible).
Sat Dec 14 16:28:11 GMT 2002 Olly Betts <olly@survex.com>
* NEWS: Updated for 0.6.3 release.
Sat Dec 14 04:28:16 GMT 2002 Olly Betts <olly@survex.com>
* PLATFORMS,configure.in: Version 0.6.3.
Sat Dec 14 03:54:08 GMT 2002 Olly Betts <olly@survex.com>
* extra/omparsequery.h,extra/parsequery.yy: Create an "unstem" multimap
so users can convert the stemmed terms back into their query
representation.
Sat Dec 14 03:48:27 GMT 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Sat Dec 14 02:37:41 GMT 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Sat Dec 14 02:26:29 GMT 2002 Olly Betts <olly@survex.com>
* docs/remote_protocol.html,net/socketclient.cc,net/socketserver.cc:
Updated remote protocol description.
Sat Dec 14 02:05:59 GMT 2002 Olly Betts <olly@survex.com>
* docs/: Updated.
Fri Dec 13 23:43:23 GMT 2002 Olly Betts <olly@survex.com>
* include/om/om.h.in: Removed bogus // in the middle of a comment.
Fri Dec 13 22:17:41 GMT 2002 Olly Betts <olly@survex.com>
* configure.in,testsuite/testsuite.cc: Added hooks for using valgrind
to find leaks in the test suite. Just need to sort out suitable
hooks in valgrind now!
Fri Dec 13 19:57:23 GMT 2002 Olly Betts <olly@survex.com>
* docs/: OmSettings removal updates.
Fri Dec 13 19:44:23 GMT 2002 Olly Betts <olly@survex.com>
* bindings/: Made a start updating bindings for OmSettings removal.
Fri Dec 13 19:13:36 GMT 2002 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/omenquireinternal.h,include/om/omenquire.h,
net/socketclient.cc,tests/api_db.cc: Finished removal of OmSettings
- all tests now pass once more!
Fri Dec 13 16:35:12 GMT 2002 Olly Betts <olly@survex.com>
* api/,backends/quartz/quartz_table_manager.h,common/,docs/,include/,
matcher/,net/,tests/internaltest.cc: Removed last use of OmSettings.
Just a check-point check in - the code compiles, but doesn't pass
tests yet.
Fri Dec 13 12:53:01 GMT 2002 Olly Betts <olly@survex.com>
* netprogs/nettest.cc: Updated disabled code to use new database
factory functions; Added "using namespace std;".
Thu Dec 12 23:52:32 GMT 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Tidied my desk and converted lots of scraps of paper
to todo entries.
Thu Dec 12 16:43:22 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Added workaround for shared_level problem;
Improved error reporting.
Thu Dec 12 01:05:00 GMT 2002 Olly Betts <olly@survex.com>
* docs/overview.html: Updated docs on stub databases.
Wed Dec 11 20:49:11 GMT 2002 Olly Betts <olly@survex.com>
* api/omdatabaseinternal.cc,include/om/omdatabase.h,tests/api_db.cc:
Reimplemented stub databases in the new scheme of things.
* backends/inmemory/: fully disabled inmemory_errornext and
inmemory_abortnext code.
Tue Dec 10 13:47:44 GMT 2002 Olly Betts <olly@survex.com>
* HACKING: Added note that Bison 1.50 seems to work with Xapian's
.yy files.
Mon Dec 09 20:13:00 GMT 2002 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/omenquireinternal.h,docs/todo.xml,
include/om/omenquire.h,tests/api_db.cc: OmEnquire::get_eset()
now takes a flags argument of bit constants |-ed together
instead of 2 bools.
Mon Dec 09 12:52:38 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: Applied patch
from Martin Porter with better fix for sequential addition bug.
Mon Dec 09 09:57:42 GMT 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Mon Dec 09 07:32:46 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartztest.cc: Corrected name of database used
by test adddoc2 (was using testdb_adddoc1!)
Mon Dec 09 05:10:09 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc,backends/quartz/quartz_table.cc:
More fettling.
Mon Dec 09 04:48:39 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/: Minor code fettle.
Mon Dec 09 03:32:11 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: Gratuitous layout fettling.
Mon Dec 09 03:30:27 GMT 2002 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Improved wording and punctuation in 3
places.
Mon Dec 09 03:25:09 GMT 2002 Olly Betts <olly@survex.com>
* common/,docs/todo.xml,include/om/omenquire.h,matcher/,
net/socketclient.cc,net/socketserver.cc,netprogs/omprogsrv.cc,
netprogs/omtcpsrv.cc: Fixed the remote backend to handle non-default
weighting schemes. You can now even implement your own weighting
scheme and use it with the remote backend provided you register it
with SocketServer at runtime.
Sat Dec 07 21:18:39 GMT 2002 Olly Betts <olly@survex.com>
* PLATFORMS: Updated.
Sat Dec 07 21:09:52 GMT 2002 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.in: Version 0.6.2.
Sat Dec 07 20:24:46 GMT 2002 Olly Betts <olly@survex.com>
* NEWS: Updated.
Sat Dec 07 20:21:41 GMT 2002 Olly Betts <olly@survex.com>
* docs/quickstart.html: Fixed parameters passed to OmQuartz__open().
Sat Dec 07 20:17:42 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartztest.cc: Fixed parameters passed to
OmQuartz__open().
Sat Dec 07 16:41:25 GMT 2002 Olly Betts <olly@survex.com>
* docs/tests.html,testsuite/testsuite.cc: The testsuite won't install
its signal handler if XAPIAN_SIG_DFL is set.
Sat Dec 07 16:39:01 GMT 2002 Olly Betts <olly@survex.com>
* HACKING: OM_DEBUG_XXX -> XAPIAN_DEBUG_YYY.
Sat Dec 07 04:48:37 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: max_item_size wasn't being set due to
some over-zealous code pruning. It was defaulting to 0, and
was causing the code to write off the end of allocated memory
blocks.
Sat Dec 07 03:22:05 GMT 2002 Olly Betts <olly@survex.com>
* backends/inmemory/,matcher/multimatch.cc: Minor code tidying.
* backends/quartz/btree.cc: Added Assert in Btree::add() to detect
running off end of buffer.
Sat Dec 07 03:20:52 GMT 2002 Olly Betts <olly@survex.com>
* matcher/localmatch.cc: fixed handling of wtscheme() - we were
trying to use it for the extra weights, and then double
deleting it!
Fri Dec 06 23:05:22 GMT 2002 Olly Betts <olly@survex.com>
* api/omstem.cc,backends/quartz/,common/omdebug.cc,common/utils.h,
matcher/tradweight.cc,net/socketcommon.cc,net/tcpclient.cc,
tests/api_db.cc: Fixed to build with configure --enable-debug=full.
Fri Dec 06 23:01:08 GMT 2002 Olly Betts <olly@survex.com>
* common/omdebug.cc,common/omdebug.h: Fixed permissions on newly
created log file (was getting 000!); Simplified class internals;
Renamed env vars: OM_DEBUG_FILE is now XAPIAN_DEBUG_LOG,
OM_DEBUG_TYPES is now XAPIAN_DEBUG_FLAGS (old versions still work
for now).
Fri Dec 06 22:58:57 GMT 2002 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Fixed so running "gdb .libs/apitest"
finds srcdir (for an in-tree build at least).
Fri Dec 06 03:51:35 GMT 2002 Olly Betts <olly@survex.com>
* common/,include/om/omenquire.h,matcher/localmatch.h,matcher/rset.cc,
matcher/stats.cc: Fixed to compile with GCC 3.0.
Thu Dec 05 23:28:29 GMT 2002 Olly Betts <olly@survex.com>
* include/om/omdatabase.h: Added missing "std::".
Thu Dec 05 23:27:57 GMT 2002 Olly Betts <olly@survex.com>
* docs/remote.html: Updated from OmSettings to factory functions.
Thu Dec 05 23:26:42 GMT 2002 Olly Betts <olly@survex.com>
* PLATFORMS: ixion is actually Linux 2.2.
Thu Dec 05 04:32:40 GMT 2002 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc: Fixed BackendManager::do_getdb_quartz()
and do_getwritedb_quartz() to work correctly and so resolved some
test failures.
Wed Dec 04 03:35:12 GMT 2002 Olly Betts <olly@survex.com>
* api/omdatabaseinternal.cc,backends/quartz/,docs/todo.xml,
include/om/omdatabase.h: Replace create and allow_overwrite
boolean flags with OM_DB_XXX constants. And we now support
OM_DB_CREATE_OR_OPEN which is a common action to want to
perform, but was fiddly to achieve before.
Tue Dec 03 23:59:30 GMT 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Tue Dec 03 23:26:27 GMT 2002 Olly Betts <olly@survex.com>
* api/omenquire.cc,backends/quartz/quartz_postlist.h,common/,
docs/omsettings,docs/todo.xml,include/om/omenquire.h,matcher/,
net/socketcommon.cc,net/socketserver.cc,tests/api_db.cc,
tests/api_posdb.cc: Weighting schemes are now specified by passing
in a weighting object, rather than via OmSetttings. The weight
class can be sub-classed by the library user to allow them to
specify their own weighting scheme). Everything works apart
from the remote backend where the weighting scheme type and
parameters aren't passed across the link.
Mon Dec 02 20:12:31 GMT 2002 Olly Betts <olly@survex.com>
* NEWS: Updated with changes since 0.6.1.
Mon Dec 02 19:44:37 GMT 2002 Olly Betts <olly@survex.com>
* api/ompostlistiterator.cc,backends/multi/multi_postlist.h,
common/irweight.h,common/leafpostlist.h,matcher/: IRWeight
renamed to OmWeight in preparation for making it externally
visible.
Mon Dec 02 18:10:55 GMT 2002 Olly Betts <olly@survex.com>
* matcher/bm25weight.cc,matcher/irweight.cc,matcher/tradweight.cc,
matcher/tradweight.h: Started to rework weighting scheme code.
Mon Dec 02 17:36:21 GMT 2002 Olly Betts <olly@survex.com>
* api/omdatabaseinternal.cc,backends/quartz/quartz_table_manager.cc:
Tidying up after the recent backend reworking.
Mon Dec 02 03:59:39 GMT 2002 Olly Betts <olly@survex.com>
* matcher/: Changed BoolWeight ctor not to take an OmSettings
parameter which is simply ignored.
Mon Dec 02 01:35:41 GMT 2002 Olly Betts <olly@survex.com>
* include/om/omdatabase.h: Added documentation comments for all of
the database factory functions.
Sun Dec 01 21:45:49 GMT 2002 Olly Betts <olly@survex.com>
* include/om: Added \file documentation comments so doxygen
extracts documentation for functions too.
* docs/: Made a start on updating for the new database factory
functions.
Sun Dec 01 15:38:10 GMT 2002 Olly Betts <olly@survex.com>
* api/,backends/,common/,docs/omsettings,docs/todo.xml,
include/om/omdatabase.h,netprogs/,tests/,testsuite/backendmanager.cc,
testsuite/backendmanager.h: No longer use OmSettings to specify
parameters for constructing databases. Instead there's a factory
function for each database type - temporary naming scheme is
OmXxx__open(), mostly because it's easy to grep for later. At
present stub databases and the machinery in InMemory to allow
the multierrhandler1 test aren't working. Everything else should
be.
Thu Nov 28 20:15:47 GMT 2002 Olly Betts <olly@survex.com>
* api/omenquire.cc,common/omenquireinternal.h,docs/omsettings,
docs/overview.html,include/om/omenquire.h,tests/api_db.cc:
No longer use OmSettings in OmEnquire::get_eset(); fixed
reversed sense of use_query_terms (and fixed reversed sense
test in apitest which meant this wasn't spotted).
Thu Nov 28 20:14:54 GMT 2002 Olly Betts <olly@survex.com>
* docs/index.html: Link to annotated class lists in doxygen generated
documentation rather than rather empty index page.
Thu Nov 28 02:23:33 GMT 2002 Olly Betts <olly@survex.com>
* configure.in,NEWS: Version 0.6.1.
Thu Nov 28 01:38:05 GMT 2002 Olly Betts <olly@survex.com>
* PLATFORMS: Updated.
Thu Nov 28 01:33:25 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/: Fixed to compile with GCC 3.0.
Thu Nov 28 01:32:31 GMT 2002 Olly Betts <olly@survex.com>
* PLATFORMS: Updated with test results from 0.5.4 release.
Wed Nov 27 22:11:38 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree.h: fixed "public:" bodge added during
factoring-out of BtreeCheck.
Wed Nov 27 05:01:14 GMT 2002 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.in: Updated for 0.6.0 release.
Wed Nov 27 05:00:39 GMT 2002 Olly Betts <olly@survex.com>
* AUTHORS,HACKING: Removed or replaced sourceforge.net URLs.
Wed Nov 27 04:58:29 GMT 2002 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Reworded "under development" warning;
Updated Btree::check(), which is now BtreeCheck::check().
Wed Nov 27 01:36:26 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/btreecheck.cc,backends/quartz/btreecheck.h,
backends/quartz/btreetest.cc: Tidied up BtreeCheck - btreetest now
sends check output to tout so it's only displayed if the check fails
(or btreetest is run with -v).
Tue Nov 26 19:47:24 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/: Split the btree checking code out into a separate
file, so it's not linked in when we don't need it.
Tue Nov 26 05:47:32 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Suppress all output from a successful
Btree::Check() is no options are specified, so that btreetest
generates clean output when all tests pass.
Tue Nov 19 02:08:30 GMT 2002 Olly Betts <olly@survex.com>
* NEWS: Updated.
Tue Nov 19 01:46:35 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h,
backends/quartz/btreetest.cc,backends/quartz/quartztest.cc,
docs/quartzdesign.html: Quartz B-tree minimum blocksize is
now 2048 bytes (as was in fact documented already). This
means the max term length is now always 252 bytes.
Mon Nov 18 22:16:57 GMT 2002 Olly Betts <olly@survex.com>
* api/omenquire.cc,matcher/expand.cc,matcher/expandweight.cc:
Bit of an expand tidy up.
Mon Nov 18 19:49:09 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_termlist.cc: I'd put the new termlist stuff
in the disabled branch of a "#ifdef" so it wasn't being used! Fixed
this and made it actually compile as an encore.
Mon Nov 18 02:51:55 GMT 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Retargetted 0.6 tasks for 0.7 or 0.8; updated a few
entries.
Mon Nov 18 02:28:55 GMT 2002 Olly Betts <olly@survex.com>
* docs/quartzdesign.html,backends/quartz/: We can just store the term
name raw in position list key, since we know its length from the key
length; tweaked storing of deltas to store (delta - 1) as 0 is
invalid.
Mon Nov 18 00:47:54 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_termlist.cc: First cut of compressed term
lists.
Sun Nov 17 20:19:23 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_lexicon.cc,backends/quartz/quartz_values.cc:
Use new pack_uint_last() and unpack_uint_last() where appropriate.
Sun Nov 17 20:03:24 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h:
Added a more compact integer packing for the last integer in
a key or tag.
Sun Nov 17 18:54:05 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: more
int -> bool changes.
* backends/quartz/btree_base.cc: Clarified comments.
Sun Nov 17 14:19:30 GMT 2002 Olly Betts <olly@survex.com>
* docs/quartzdesign.html: Updated to reflect removal of Btree_item.
Sun Nov 17 14:12:12 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/: Eliminate Btree_item - wherever it's used we
only actually want the tag or key, so it's cleaner and clearer
to just pass a pointer to a string.
Sun Nov 17 13:34:08 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/,docs/quartzdesign.html: Quartz mini-overhaul:
Removed Btree::Bcursor_create() and just made Bcursor's ctor
public - now you can just create a Bcursor on the stack rather
than being forced to use AutoPtr; removed valid_handle - the
code is clearer without it; sys_close now inlined from header;
changed int/char to bool where appropriate; changed some methods
which now always throw on error to return void not bool; moved
quartztest's test_btree1 to btreetest as test_simple1; changed
a few remaining uses of "struct Btree" to just plain "Btree";
brought the btree docs in quartzdesign.html up-to-date, apart
from the error handling section.
Sat Nov 16 01:45:28 GMT 2002 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.cc,
backends/inmemory/inmemory_database.h,
backends/quartz/quartz_table.cc: Tidying up odds and ends.
Fri Nov 15 17:46:38 GMT 2002 Olly Betts <olly@survex.com>
* NEWS: Updated ready for 0.6.0 with changes made so far.
Fri Nov 15 17:06:58 GMT 2002 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Avoid double debug output if we get a
signal inside the testsuite code itself.
Fri Nov 15 17:00:15 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree_api.txt,docs/Makefile.am,docs/index.html,
docs/quartzdesign.html,docs/remote_protocol.html,
net/README_progprotocol.txt: Converted Btree API documentation
to HTML and add it to the quartz design document; converted the
(seriously out of date) remote protocol document to HTML, moved it
into docs/, and linked it in.
Fri Nov 15 13:05:06 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h,
docs/quartzdesign.html: Changed encoding of keys for quartz record
and termlist tables.
Fri Nov 15 12:54:39 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_table_entries.cc: Fixed
QuartzTableEntries::empty() which would never return true before.
Fri Nov 15 03:08:49 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree_api.txt: Fixed typos.
Fri Nov 15 03:06:41 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartztest.cc,backends/quartz/btreetest.cc:
added another test (btreetest: emptykey1) and added extra
checks to existing tests.
Thu Nov 14 01:59:06 GMT 2002 Olly Betts <olly@survex.com>
* matcher/multimatch.cc,tests/api_db.cc,docs/todo.xml:
match_sort_bands code fettled, and added regression test for the
>100% problem (test_sortbands1).
Tue Nov 12 00:00:44 GMT 2002 Olly Betts <olly@survex.com>
* backends/inmemory/inmemory_database.h,backends/quartz/,
include/om/omtypes.h: Pushed average length calc down into
QuartzRecordManager; removed unnecessary types om_totlength
and om_termid.
Mon Nov 11 18:10:23 GMT 2002 Olly Betts <olly@survex.com>
* docs/index.html: Fixed broken link.
Mon Nov 11 18:07:41 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/,docs/quartzdesign.html: Store next free docid
and total doc length in the same tag in QuartzRecord.
Wed Nov 06 22:38:40 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h:
Eliminated QuartzDatabase::get_doccount_internal() and
QuartzDatabase::get_avlength_internal() - now the thread
locking code has gone, the indirection serves no purpose.
Wed Nov 06 17:50:12 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/: Removed QuartzBufferedTable::write() (unused and
unimplemented), and merged QuartzBufferedTable::write_internal()
into QuartzBufferedTable::write_internal().
Wed Nov 06 01:56:41 GMT 2002 Olly Betts <olly@survex.com>
* backends/quartz/: disable quartz lexicon table unless USE_LEXICON
is defined.
Wed Nov 06 01:54:30 GMT 2002 Olly Betts <olly@survex.com>
* docs/overview.html: Corrected link to API docs on website.
Mon Nov 04 02:35:22 GMT 2002 Olly Betts <olly@survex.com>
* include/om/omerror.h,net/omerr_string.cc,netprogs/omprogsrv.cc,
netprogs/omtcpsrv.cc,testsuite/testsuite.cc: don't use typeid().
Mon Nov 04 01:31:47 GMT 2002 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Catch by const reference.
Mon Nov 04 01:18:53 GMT 2002 Olly Betts <olly@survex.com>
* HACKING: Added note about use of various C++ features. Also
tidied up various odds and ends.
Sun Nov 03 22:59:34 GMT 2002 Olly Betts <olly@survex.com>
* api/omdatabaseinternal.cc: Eliminated entirely superfluous use of
dynamic_cast.
Sun Nov 03 22:46:34 GMT 2002 Olly Betts <olly@survex.com>
* matcher/multimatch.cc,common/database.h,common/net_database.h:
Replace Database::is_network() with Database::as_networkdatabase()
which returns a pointer or NULL. This eliminates the need to use
dynamic_cast in MultiMatch.
Wed Oct 23 05:24:14 BST 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Resolved TODO entry by consulting Stroustrup
(it is safe to throw and catch an exception in a destructor,
even when that destructor is being called during a stack unwind
caused by an exception being thrown).
Wed Oct 16 20:05:39 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/btreetest.cc: Suppress (most) output from
Btree::check unless verbose (-v) is enabled.
Mon Oct 14 15:13:18 BST 2002 Olly Betts <olly@survex.com>
* testsuite/testsuite.cc: Fixed compilation problem with std:: on
GCC 3.2.
Mon Oct 14 15:07:03 BST 2002 Olly Betts <olly@survex.com>
* api/omstem.cc: French and Finnish stemmers were switched!
Mon Oct 14 02:49:12 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_utils.h: change sort preserving packing for
strings. This one does better provided the strings being packed
don't contain many zero bytes (which is true of the termnames which
we pack with this).
Mon Oct 14 02:45:20 BST 2002 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Updated to reflect new naming of stemming test
data.
Sun Oct 13 17:06:26 BST 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Sun Oct 13 16:40:24 BST 2002 Olly Betts <olly@survex.com>
* api/omstem.cc,backends/quartz/,common/,extra/omparsequery.h,matcher/,
net/socketclient.cc: Added private copy ctors and assignment
operators to classes with pointer members (which shouldn't be
copied).
Sun Oct 13 15:12:40 BST 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Sun Oct 13 02:33:57 BST 2002 Olly Betts <olly@survex.com>
* .cvsignore: Added install-sh.
Sun Oct 13 02:16:31 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/{quartz_lexicon.cc,quartz_lexicon.h}: key to lexicon
is now simply the termname - no need to encode the length there too
since the Btree knows how long the key is.
* backends/quartz/{quartz_table_manager.cc,quartz_values.cc}: finished
the terminology change from "attribute" to "value" (including
renaming the btree files, which is why it wasn't done before).
Sun Oct 13 02:09:00 BST 2002 Olly Betts <olly@survex.com>
* tests/api_db.cc: Snowball stems "this" to "this" rather than "thi",
so update apitest source to reflect this.
Sun Oct 13 01:03:04 BST 2002 Olly Betts <olly@survex.com>
* configure.in: Removed references to languages/*/Makefile.
Sun Oct 13 00:50:01 BST 2002 Olly Betts <olly@survex.com>
* docs/indexerquickstart.html,docs/quartzdesign.html: Updated.
Sat Oct 12 23:34:52 BST 2002 Olly Betts <olly@survex.com>
* languages/{api.c,api.h,header.h,utilities.c}: 4 new files.
Sat Oct 12 23:29:50 BST 2002 Olly Betts <olly@survex.com>
* languages/: removed all the old .cvsignore files.
Sat Oct 12 22:34:01 BST 2002 Olly Betts <olly@survex.com>
* api/omstem.cc,docs/stemming.html,docs/todo.xml,languages/: Replaced
our stemmers with those from Snowball. Note that these give better
results, but this also means that existing databases won't work
quite correctly if they contain stemmed terms.
Sat Oct 12 17:17:26 BST 2002 Olly Betts <olly@survex.com>
* configure.in,NEWS: Version 0.5.3.
Sat Oct 12 16:49:50 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS,api/omvalueiteratorinternal.h,extra/parsequery.yy,
include/om/omdocument.h: Fixed std:: namespace issues to
allow compilation with GCC 3 once again.
Sat Oct 12 15:43:22 BST 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Fri Oct 11 02:14:47 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/Makefile.am: Include test data for btreetest
in distribution tarball.
Fri Oct 11 01:43:03 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/{z_note,z_sequence,z_Cversion/,z_make/,z_test/}:
Removed all the unused old C btree stuff.
Thu Oct 10 17:32:10 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/{btree.cc,btree.h}: More Btree tidying.
Thu Oct 10 17:14:28 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/{bcursor.cc,btree.cc,btree.h}: Btree::prev* and
Btree::next* are no longer static methods.
* backends/quartz/btree.h: Tweaked comments so doxygen will
understand them.
Thu Oct 10 16:12:29 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_postlist.cc: return docids rather
than passing in a pointer to fill in.
Thu Oct 10 16:08:22 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartzcheck.cc: Fixed #include-d files;
Example in usage message now uses the directory where
omega looks for its database by default.
Thu Oct 10 15:25:10 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc,backends/quartz/btree.h: More comment
improvements; Removed superfluous Cursor parameter from
Btree::add_kt() - it always gets passed the C member of Btree
which we have available anyway.
Thu Oct 10 14:49:11 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/btree.cc: Removed "struct" from in front of
Btree and Cursor; Updated and reformatted many comments.
Thu Oct 10 03:45:56 BST 2002 Olly Betts <olly@survex.com>
* testsuite/backendmanager.cc: Reworded comment to make it clearer.
Thu Oct 10 03:29:52 BST 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Wed Oct 09 14:05:07 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/{quartz_alltermslist.cc,quartz_alltermslist.h,
quartz_database.cc}: Implemented
QuartzAllTermsList::get_approx_size().
Wed Oct 09 10:46:42 BST 2002 Olly Betts <olly@survex.com>
* extra/omparsequery.h,include/om/omvalueiterator.h: Don't use
"using std::foo;" in externally visible headers.
Wed Oct 09 10:26:05 BST 2002 Olly Betts <olly@survex.com>
* extra/omparsequery.h: fixed unused parameter warning.
Tue Oct 08 20:32:46 BST 2002 Olly Betts <olly@survex.com>
* tests/stemtest.cc: Added missing space to output.
Tue Oct 08 20:10:35 BST 2002 Olly Betts <olly@survex.com>
* With GCC, add warning flags "-Wall -W" rather than "-Wall -Wunused"
(-Wall implies -Wunused anyway). Fixed all the warnings this throws
up, except in languages/ (that code is to be replaced with Snowball
soon).
Tue Oct 08 19:57:03 BST 2002 Olly Betts <olly@survex.com>
* testsuite/: Disable colour test output if stdout isn't a terminal;
reworked check for broken exception handling as the previous
version never seemed to fire; added "using" for all the things
we want from std::; improved how signal handlers are set and
unset; report exception class for exceptions derived from OmError
rather than a blanket "OMEXCEPT"; added private copy ctor and
assignment to test_driver to prevent copying.
Tue Oct 08 19:53:02 BST 2002 Olly Betts <olly@survex.com>
* include/om/Makefile.am: remove include/om/om.h on "make distclean",
not "make clean". Otherwise "./configure ; make clean ; make"
fails which is wrong.
Sun Oct 06 18:37:39 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS: Updated.
* docs/: Removed Martin's paper - background information for stemmers
is best left to the Snowball documentation.
Sat Oct 05 20:31:55 BST 2002 Olly Betts <olly@survex.com>
* NEWS,configure.in: 0.5.2 release.
Sat Oct 05 03:01:49 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS: Updated.
Sat Oct 05 02:09:35 BST 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Fri Oct 04 22:34:12 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS,testsuite/testutils.h: Code to spot mishandled exceptions
doesn't always work - noted this in PLATFORMS, and tweaked the code
a little.
Fri Oct 04 19:08:08 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/.cvsignore: Added quartzcheck.
Fri Oct 04 18:24:55 BST 2002 Olly Betts <olly@survex.com>
* docs/: converted all text docs to HTML (except omsettings which will
has odd markup (LaTeX?) and will probably soon be obsolete anyway).
* docs/todo.xml: updated.
Fri Oct 04 17:18:33 BST 2002 Olly Betts <olly@survex.com>
* net/socketcommon.cc: Fixed handling of timeouts in the past.
Fri Oct 04 13:51:39 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS,testsuite/testutils.h: Use typeid() to spot when GCC 2.95
mishandles an exception, and don't count this as a test failure.
Fri Oct 04 03:59:29 BST 2002 Olly Betts <olly@survex.com>
* api/omdatabaseinternal.cc,backends/multi/multi_termlist.h,
matcher/multimatch.cc,matcher/networkmatch.cc,matcher/networkmatch.h:
pulled uses of dynamic_cast<> to higher up in the code.
Fri Oct 04 03:53:44 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS,backends/quartz/{btree.cc,quartz_metafile.cc}: Fixed quartz
problems on platforms where sizeof(long) != 4.
* PLATFORMS: Updated in the light of investigations into test failures
on x86 Redhat Linux - only multierrhandler1 with the remote backend
is actually a problem.
Wed Oct 02 16:32:48 BST 2002 Olly Betts <olly@survex.com>
* NEWS: Updated for 0.5.1 release.
Wed Oct 02 16:01:50 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS,configure.in: 0.5.1 release.
Tue Oct 01 13:34:24 BST 2002 Olly Betts <olly@survex.com>
* docs/: tweaked navigation links in index.html; converted bm25
text document to HTML and linked it in; added todo entry to
locate the "illusion of control" paper.
Tue Oct 01 12:48:41 BST 2002 Olly Betts <olly@survex.com>
* docs/: renamed intro.html to install.html, and userman.html to
overview.html; changed navbar on index.html.
Tue Oct 01 12:37:20 BST 2002 Olly Betts <olly@survex.com>
* bootstrap: fixed adding of directory with xapian.m4 in to
ACLOCAL_FLAGS; added trap to tell user if bootstrapping failed.
Tue Oct 01 12:33:38 BST 2002 Olly Betts <olly@survex.com>
* HACKING,Makefile.am,bootstrap,buildall,xapian.spec.in,
autoconf/dir_contents,docs/todo.xml: Added bootstrap script as a
replacement for buildall (buildall left in place for now until
bootstrap receives wider testing).
Tue Oct 01 12:19:32 BST 2002 Olly Betts <olly@survex.com>
* HACKING,Makefile.am,configure.in,PLATFORMS: require automake 1.6.3
(and hence autoconf 2.54) to fix problem building tests/internaltest
with Solaris make.
Mon Sep 30 20:30:42 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS: Improved wording about bogus OMEXCEPT failures);
Added results for OpenBSD 3.0 and Solaris 8 on x86 (both work).
Mon Sep 30 20:25:03 BST 2002 Olly Betts <olly@survex.com>
* docs/: Pruned .cvsignore; removed cvs.html (link to CVS info
on website directly); removed using_stemmers.html - those
wishing to use the C API to the stemmers ought to look at
Snowball instead; include HTML versions of quickstart*.cc
in tarballs; improved wording in various places.
Mon Sep 23 19:33:31 BST 2002 Olly Betts <olly@survex.com>
* net/Makefile.am: Fixed building of readquery.cc from readquery.ll.
Sun Sep 22 03:57:20 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS: Updated.
Fri Sep 20 15:09:25 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS: Added note about bogus OMEXCEPT test failures with
GCC 2.95.
Fri Sep 20 01:36:35 BST 2002 Olly Betts <olly@survex.com>
* NEWS,PLATFORMS,configure.in: 0.5.0 release!
Fri Sep 20 01:01:52 BST 2002 Olly Betts <olly@survex.com>
* Makefile.am: Perl module we need to process todo.xml is XML::Parser
not XML, so corrected error message.
* configure.in: Commented out MSG_WARN() when Perl modules XML::Parser
or Text::Format aren't found. In a release tarball, this only
matters if you modify docs/todo.xml, and the warning message(s) may
alarm those building the software.
Thu Sep 19 00:57:23 BST 2002 Olly Betts <olly@survex.com>
* .cvsignore: Added depcomp, missing, mkinstalldirs.
Thu Sep 19 00:49:01 BST 2002 Olly Betts <olly@survex.com>
* HACKING: Added note about safe way to generate files in make rules.
Thu Sep 19 00:45:51 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS: Tested on Solaris 7 with GCC 2.95.3 (works) and Solaris 8
Sun Workshop C++ compiler (fails to compile).
Thu Sep 19 00:41:53 BST 2002 Olly Betts <olly@survex.com>
* ar-wrapper-solaris,ltconfig,Makefile.am: libtool 1.4 doesn't use
ltconfig, and that's the only thing that uses ar-wrapper-solaris,
so removed both. Fairly sure the problem they address was fixed
in libtool so time ago. Xapian doesn't build with Sun's C++
compiler at the moment anyway, so it's moot for the release.
Thu Sep 19 00:26:37 BST 2002 Olly Betts <olly@survex.com>
* docs/todo2html.pl: Handle release "*" specially - it indicates
tasks to be done for each release.
Thu Sep 19 00:05:40 BST 2002 Olly Betts <olly@survex.com>
* configure.in,include/om/om.h.in: Tweaked how generation of om.h
works to avoid problems with Sun's C++ compiler.
Wed Sep 18 19:21:47 BST 2002 Olly Betts <olly@survex.com>
* net/Makefile.am,net/readquery.ll: #include <config.h>
must be included before any other headers, but that seems to be
impossible to arrange in lex/flex so we use echo and cat in the
Makefile to arrange this.
Wed Sep 18 17:35:00 BST 2002 Olly Betts <olly@survex.com>
* include/om/Makefile.am: We want to install om/om.h, but not
distribute it or people with a different compiler to whoever
ran "make dist" will get the "ABI mismatch" error.
Wed Sep 18 13:16:14 BST 2002 Richard Boulton <richard@tartarus.org>
* docs/.cvsignore: Add docs/doxygen_full_warnings.
* include/om/.cvsignore: Add include/om/om.h.
Wed Sep 18 11:06:12 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* include/om/Makefile.am: We really should install om/om.h, or
applications can't build against us.
Wed Sep 18 05:10:24 BST 2002 Richard Boulton <richard@tartarus.org>
* docs/doxygen_{api,full}_header.html_tmpl: Remove meta robots tag -
why shouldn't this be indexed? Now the omega I set up pointing
at copies of this should actually index something.
Wed Sep 18 04:52:20 BST 2002 Olly Betts <olly@survex.com>
* configure.in: Merged two sed invocations into one - we don't want
configure to run any slower than it has to.
Wed Sep 18 04:17:58 BST 2002 Richard Boulton <richard@tartarus.org>
* configure.in: Don't put confdefs.h into SOURCEDOC_H_SRC - this
file only exists during the configure run. Fixes failure of
"make doxygen_docs" in docs/
Tue Sep 17 13:07:39 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Updated PLATFORMS file.
Mon Sep 16 19:40:02 BST 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: Updated.
Mon Sep 16 18:09:29 BST 2002 Olly Betts <olly@survex.com>
* tests/api_db.cc: don't run consistency1 test on the remote backend
- it's particularly slow with that, and testing it there doesn't
actually improve the test coverage really.
Mon Sep 16 17:15:46 BST 2002 Olly Betts <olly@survex.com>
* configure.in,docs/Makefile.am: Added workaround for pattern length
limits in Solaris sed.
Mon Sep 16 17:13:20 BST 2002 Olly Betts <olly@survex.com>
* include/om/om.h.in: Added explanatory comments for developers.
Mon Sep 16 14:22:48 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* om/om.h needs to be in CLEANFILES or make distcheck fails
Mon Sep 16 13:37:04 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Now om/om.h is built from om/om.h.in, it may be in the build
directly. Consequently, we need to add that to the include path
for VPATH builds. Plus (also for VPATH), om/om.h needs to be
output after AC_OUTPUT, because otherwise the destination
directory may not exist.
Mon Sep 16 04:19:54 BST 2002 Olly Betts <olly@survex.com>
* configure.in,docs/todo.xml,include/om/Makefile.am,include/om/om.h,
include/om/om.h.in: When building the library with GCC, generate
include/om/om.h with preprocessor code to check that any version
of GCC used to build applications has a matching C++ ABI.
This means that users get a nice explanatory error message rather
than a confusing link failure (or worse a program which builds
but crashes). Another benefit is that the check happens near the
start of compilation of the first source file which uses Xapian
in the user's application, rather than during the first attempt
to link with Xapian.
Sun Sep 15 01:42:19 BST 2002 Olly Betts <olly@survex.com>
* net/tcpserver.cc: Solved std mystery - "using namespace std;" was
inside a #ifdef which wasn't enabled!
Sun Sep 15 01:21:34 BST 2002 Richard Boulton <richard@tartarus.org>
* tests/tcpserver.cc: Hacky fix to compile with gcc-3.2 snapshot in
Debian unstable - add a FIXME to work out why this is needed.
* todo: add entry about checking ABI versions using
__GXX_ABI_VERSION macro.
Sat Sep 14 22:39:11 BST 2002 Olly Betts <olly@survex.com>
* configure.in,tests/Makefile.am,tests/internaltest.cc: It turns out
that internaltest *does* need -fno-access-control, so put it back.
Not quite sure how I missed this. Changed to skip refcnt tests
when -fno-access-control isn't available (rather than omitting them
entirely).
* tests/api_db.cc: Fixed compile problem.
Sat Sep 14 21:44:34 BST 2002 Olly Betts <olly@survex.com>
* internaltest: doesn't actually need -fno-access-control these
days, so removed it and the configure tests for it.
* stemtest: recoded to be all in C++ and removed use of intermediate
files for random data tests - now runs ~15% faster; no longer need
HAVE_PERL so removed from configure.
* apitest: use C++ streams rather than stdio; stubdb1 now cleans up
the temporary file it creates.
Sat Sep 14 12:54:52 BST 2002 Olly Betts <olly@survex.com>
* docs/Makefile.am: fix "mv apidoc/latex/refman.ps avidoc.ps" which
fails after recent change.
Sat Sep 14 11:15:33 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Renamed simple* programs in quickstart docs to quickstart* to
avoid confusion with the simple* programs in xapian-examples.
(Thanks to Alex Bowley for pointing out the confusion.)
Sat Sep 14 10:00:35 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* configure.in: returned AC_CONDITIONAL for HAVE_PERL
Sat Sep 14 09:29:08 BST 2002 Richard Boulton <richard@tartarus.org>
* buildall: change to srcdir before testing for necessary tools
so that scripts which guess which autotools version to use have more
information available to guess with: for example, the Debian
autoconf version guessing script looks for "configure.ac" as a sign
that autoconf 2.50+ is required.
Sat Sep 14 02:50:23 BST 2002 Olly Betts <olly@survex.com>
* docs/distributed.txt,docs/quartzdesign.html,docs/todo.xml: assorted
documentation updates.
Sat Sep 14 02:10:12 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS: removed note about VPATH problems.
Sat Sep 14 02:02:58 BST 2002 Olly Betts <olly@survex.com>
* btree.cc,btree.h: rearranged Btree::del() so control flow is clearer.
Sat Sep 14 01:56:44 BST 2002 Olly Betts <olly@survex.com>
* HACKING,docs/Makefile.am: added evil hack to allow VPATH builds to
work with BSD make.
Wed Sep 11 11:29:07 BST 2002 Olly Betts <olly@survex.com>
* backends/database_builder.cc: Quartz is fairly mature - change
comment which suggests that the btree names will change.
Wed Sep 11 11:13:43 BST 2002 Olly Betts <olly@survex.com>
* configure.in: Don't double quote `$MISSING foo' as autoconf adds them
* docs/Makefile.am: Use `test a = b' rather than `test a == b'
Tue Sep 10 14:50:16 BST 2002 Olly Betts <olly@survex.com>
* configure.in: tweaked test for perl modules - stderr is now
fully suppressed on sh (which behaves slightly differently to bash).
Tue Sep 10 14:27:15 BST 2002 Richard Boulton <richard@tartarus.org>
* backend_manager.cc: Fix stub database code so that it doesn't use
the gnu extension "getline()".
Tue Sep 10 13:51:20 BST 2002 Olly Betts <olly@survex.com>
* quartz_table.cc: don't form tag when we just want to check if a
key is present before calling Btree::del(). Working out why
we can't call Btree::del() would still be worthwhile though.
Tue Sep 10 13:02:04 BST 2002 Olly Betts <olly@survex.com>
* quartztest.cc: removed unused #include-s; describe valid options
in usage message.
Tue Sep 10 02:07:29 BST 2002 Olly Betts <olly@survex.com>
* remote backend: implemented term_exists() and get_termfreq();
added test to check they work.
Mon Sep 9 12:59:15 BST 2002 Richard Boulton <richard@tartarus.org>
* Add stub databases: if backend type is auto, and auto_dir points
to a file, read in settings from the file (overwriting the
existing ones), and then use them to open the database.
This allows, for example, omega to open a remote database by
putting in a stub database file in the omega directory.
Updated documentation for opening databases in userman.html.
* apitest: Added test for stub databases.
Mon Sep 09 02:26:36 BST 2002 Olly Betts <olly@survex.com>
* Documentation updates: move suggested books into intro_ir.html
and added URL for citeseer reference Richard posted to mailing
list recently; clarified wording in a couple of places.
Sat Sep 7 12:52:12 2002 James Aylett <tartarus@users.sourceforge.net>
* docs: fixed references to OmDocumentContents (now OmDocument)
which had clearly been broken for a while. Also fixed get_data()
and set_data() example usage so it reflects reality (I hope).
Wed Sep 04 22:46:17 BST 2002 Olly Betts <olly@survex.com>
* Corrected min_item.wt to min_wt in two assertions.
Thu Aug 15 11:42:20 BST 2002 Richard Boulton <richard@tartarus.org>
* buildall: Only add the directory derived from xapian-config
to ACLOCAL_FLAGS if it actually exists.
Mon Aug 12 01:13:55 BST 2002 Richard Boulton <richard@tartarus.org>
* quartz_table.cc: Check that a key exists before calling
Btree::del() - there seems to be a bug in the btree code
causing a failure when deleting keys if they don't exist.
This work around appears to make things work correctly, but
won't be terribly efficient.
Mon Aug 12 00:09:21 BST 2002 Richard Boulton <richard@tartarus.org>
* quartz_table_manager.cc: When unable to apply modifications,
call cancel on the buffered table after reopening disk table
at old revision - otherwise, the entry count gets messed up.
* quartz_table.cc, quartz_database.cc: Improve debugging and
error reporting: I'm trying to work out why the failure Olly
reported is occurring.
Sat Aug 10 15:12:42 2002 James Aylett <tartarus@users.sourceforge.net>
* Fixed missing include in quartzcheck.cc
Sat Aug 10 14:57:17 2002 James Aylett <tartarus@users.sourceforge.net>
* Fixed typo in quartzcheck.cc
Tue Jul 23 22:12:34 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Added a note to the effect that the indexgraph stuff isn't
really considered useful to the HTML document introducing it.
Tue Jul 23 22:09:39 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Added some comments in quartztest test_create1(), in case anyone
else who didn't write it needs to understand it.
* Added Olly as an active participant to the AUTHORS file :)
Tue Jul 23 21:59:50 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Reworded quickstart document so it does not refer to the example
code (it was never actually in sync).
Mon Jul 22 14:07:18 BST 2002 Sam Liddicott <sam@ananova.com>
* Forgot to actually add the quartzcheck.cc file last time
Mon Jul 22 13:28:09 BST 2002 Sam Liddicott <sam@ananova.com>
* Add buildprereq to package
Add quartzcheck which runs btree::check to backends
Tue Jul 16 09:44:56 BST 2002 Sam Liddicott <sam@ananova.com>
* Fix banding problem; bands are now based on the percentage
not the weight, and using integer maths to avoid problems
with ceil() rounding up supposed integers which are really
slightly larger due to precision errors
Thu Jul 11 00:16:22 BST 2002 Olly Betts <olly@survex.com>
* configure.in, docs/Makefile.am: configure fixes for Solaris - clear
cached result for fdatasync since it may be wrong if we decide we
need to link librt; split SOURCEDOC_SRC into two to avoid hitting
4096 char line length in Solaris sed.
Tue Jul 09 17:47:31 BST 2002 Olly Betts <olly@survex.com>
* PLATFORMS, tests/Makefile.am: improved internaltest.cc automake rules
- they should now work in VPATH builds with Solaris make.
Tue Jul 09 03:30:41 BST 2002 Olly Betts <olly@survex.com>
* configure.in, docs/Makefile.am: Fixed up apidoc and sourcedoc
dependencies so that they work correctly in VPATH builds. Also
only use portable find arguments to generate SOURCEDOC_SRC.
Sat Jul 06 13:53:27 BST 2002 Olly Betts <olly@survex.com>
* xapian.spec.in: Updated in preparation for release.
Sat Jul 06 13:04:45 BST 2002 Olly Betts <olly@survex.com>
* docs/Makefile.am: Run latex twice to get forward references resolved.
Fri Jul 05 18:23:08 BST 2002 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: better (perhaps even completely correct) fix
for sorting into bands.
* matcer/localmatch.cc: removed entirely bogus comment from over-eager
cut-and-paste.
* tests/api_db.cc: added otherwise pointless statement to deldoc3
which seems to fix occasional miscompilation by GCC 2.95.
Fri Jul 05 16:37:12 BST 2002 Olly Betts <olly@survex.com>
* docs/Makefile.am: "make dist" now fails if dot (part of graphviz)
isn't installed.
Fri Jul 05 08:54:33 BST 2002 Sam Liddicott <sam@ananova.com>
* bindings/: removed some typemap hacks as swig has better typemaps now
Fri Jul 05 08:46:06 BST 2002 Sam Liddicott <sam@ananova.com>
* matcher/multimatch.cc: Quick hack to stop 100% being in a band all on
its own. The real problem is that bands need to include the integer
at the upper end of the range, rather than the lower end.
Thu Jul 04 16:23:52 BST 2002 Olly Betts <olly@survex.com>
* docs/mkdoc.pl: Fixed to work in VPATH builds.
Thu Jul 04 12:42:06 BST 2002 Olly Betts <olly@survex.com>
* configure.in, docs/Makefile.am: use "missing" to give more helpful
errors when we don't find tools we need.
Wed Jul 03 12:39:15 BST 2002 Olly Betts <olly@survex.com>
* NEWS: incorporated recent changes into provisional version.
* docs/: sorted out make rules for running doxygen; don't tell doxygen
to build man pages which we aren't using.
Tue Jul 02 16:36:54 BST 2002 Olly Betts <olly@survex.com>
* docs/: run through ispell; fixed OM_MOP to OmQuery::OP; other
corrections.
Fri Jun 28 02:59:49 BST 2002 Olly Betts <olly@survex.com>
* Backend "auto" now works when creating an OmWritableDatabase which
doesn't already exist - it'll pick a backend which supports writing
and is compiled in (currently this means quartz).
Thu Jun 27 20:31:13 BST 2002 Richard Boulton <richard@tartarus.org>
* backends/quartz/btreetest.cc (sequent1): Add regression test for
recently fixed bug with sequential addition.
* backends/quartz/z_data/ordnum[+-]: Data files for new test.
Thu Jun 27 13:13:37 BST 2002 Olly Betts <olly@survex.com>
* Documentation fettling: removed docs/Notes and
docs/coding_policy.txt moving relevant content into HACKING,
common/postlist.h, docs/todo.xml, and include/om/omtypes.h; install
docs as PostScript rather than DVI; include text docs in tarball and
install them; "make dist" will now fail if a tool needed to build
docs is missing; removed last vestiges of Doc++ support;
doc/Makefile no longer uses include (include isn't portable);
improved doc/tests.txt.
Thu Jun 27 12:10:37 BST 2002 Olly Betts <olly@survex.com>
* apitest: doesn't directly use anything from utils.h, so don't
#include it.
Thu Jun 27 12:05:53 BST 2002 Olly Betts <olly@survex.com>
* Removed includetest - it was useful early in development, but isn't
really now.
Wed Jun 26 22:09:57 BST 2002 Olly Betts <olly@survex.com>
* apitest: deldoc2 and deldoc3 now pass when the library is compiled
with --enable-debug.
Wed Jun 26 19:35:56 BST 2002 Olly Betts <olly@survex.com>
* Removed code which causes quartztest to fail with an --enable-debug
build.
Wed Jun 26 13:55:11 BST 2002 Olly Betts <olly@survex.com>
* todo.xml: added note to fix 100% being in its own sort band.
Wed Jun 26 13:46:02 BST 2002 Richard Boulton <richard@tartarus.org>
* btree.cc: Fix splitting of blocks in sequential mode to ensure
that split happens no earlier than the midpoint.
Wed Jun 26 12:32:47 BST 2002 Richard Boulton <richard@tartarus.org>
* btree.cc: Asserts to check that add_item in sequential mode
when splitting a block is not trying to add to the wrong block,
or to add to a new block which is not empty (or containing more
than one item).
Tue Jun 25 17:53:19 BST 2002 Olly Betts <olly@survex.com>
* Assert that the value of c is sane in GETINT1, etc.
Tue Jun 25 16:30:09 BST 2002 Olly Betts <olly@survex.com>
* btreetest.cc: use C++ IO rather than C stdio; removed commented out
LFSinsertdelete1 test (it was never written and a test suite which
creates 2G files is probably a bit too resource hungry).
Tue Jun 25 13:56:01 BST 2002 Olly Betts <olly@survex.com>
* btree/quartz: More use of const pointers; more use of C++ strings.
Wed Jun 19 08:56:00 BST 2002 Sam Liddicott <sam@ananova.com>
* Fixed spec file to build for prefix=/usr not just install there
Fri Jun 14 16:35:04 BST 2002 Olly Betts <olly@survex.com>
* docs/todo.xml: added 4 new tasks.
Fri Jun 14 16:33:08 BST 2002 Olly Betts <olly@survex.com>
* backends/quartz/quartz_database.cc: Cosmetic changes.
Wed Jun 12 16:31:11 BST 2002 Olly Betts <olly@survex.com>
* QuartzDbKey, QuartzDbTag: just use a string instead of a string
wrapped in a structure. We've stopped inflicting this on external
developers (OmData, OmKey/OmValue) so why inflict it on ourselves?
Wed Jun 12 12:26:04 BST 2002 Olly Betts <olly@survex.com>
* Btree_item: use C++ strings rather than trying to reimplement them.
* Fix a few warnings about unused parameters.
Wed Jun 12 02:53:16 BST 2002 Olly Betts <olly@survex.com>
* Btree_full_compaction, Btree_close: removed - they just wrap methods
of Btree.
Wed Jun 12 02:28:30 BST 2002 Olly Betts <olly@survex.com>
* Btree_item_create and Btree_item_lose subsumed into Btree_item
and ~Btree_item.
* Pass C++ strings rather than const char * into various Btree open
methods.
* Removed pointless wrapper functions for Btree open methods.
* Btree_quit removed (just use delete directly).
* Btree_create removed (just use Btree::create directly).
Wed Jun 12 00:48:52 BST 2002 Olly Betts <olly@survex.com>
* form_key is now a method of Btree; more passing of strings rather
than pointer/length pairs); buffer overrun check added to btreetest.
Tue Jun 11 18:04:08 BST 2002 Olly Betts <olly@survex.com>
* More C++ like interfaces (e.g. bool returns, strings rather than
pointer/length pairs).
Tue Jun 11 16:40:08 BST 2002 Richard Boulton <richard@tartarus.org>
* quartz/btree.cc: Fix so that it compiles when BTREE_FULL_DEBUG is on,
and added a couple of Assert()s.
Tue Jun 11 13:09:39 BST 2002 Olly Betts <olly@survex.com>
* Removed a number of btree functions which were simply wrappers for
calling methods on their first parameter, and most of which weren't
even used!
* btree_api.txt: updated to better reflect the object-ized API.
Tue Jun 11 02:01:53 BST 2002 Olly Betts <olly@survex.com>
* Btree::make_index_item(): Added check for buffer overflow.
Tue Jun 11 01:49:51 BST 2002 Olly Betts <olly@survex.com>
* Still more...
Tue Jun 11 01:08:03 BST 2002 Olly Betts <olly@survex.com>
* More btree and quartz tidying.
Mon Jun 10 20:33:24 BST 2002 Olly Betts <olly@survex.com>
* btree.cc,btree.h: cleaned up further.
Mon Jun 10 15:54:49 BST 2002 Olly Betts <olly@survex.com>
* Further btree and quartz cleanups.
Mon Jun 10 14:46:00 BST 2002 Olly Betts <olly@survex.com>
* Fixed typo in recent quartzdump change.
Mon Jun 10 13:20:20 BST 2002 Olly Betts <olly@survex.com>
* Quartz clean-ups - especially QuartzTermList.
Mon Jun 10 12:18:40 BST 2002 Olly Betts <olly@survex.com>
* Bcursor_create made a method of class Btree as suggested by a FIXME.
Mon Jun 10 01:57:53 BST 2002 Olly Betts <olly@survex.com>
* More btree fixes and tidying. Fixed bug introduced by typo in
previous change which causes tests to fail.
Sun Jun 09 17:50:28 BST 2002 Olly Betts <olly@survex.com>
* btree_util.h: use inlines rather than macros.
* Fix CompileTimeAssert() to avoid potential clashes.
Sun Jun 09 12:46:25 BST 2002 Olly Betts <olly@survex.com>
* btree.cc,btree.h: fixed bug caused by local variable masking member
variable with same name. Tidied up a lot.
Wed Jun 5 12:22:57 BST 2002 Sam Liddicott <sam@ananova.com>
* Fix OmQuery::op enum handling.
Mon May 27 14:28:06 BST 2002 Sam Liddicott <sam@ananova.com>
* Add crash-protected next() to OmMSetIterator
* Add ->valid() method to iterator which returns FALSE if
the iterator has reached the end
* Added namespace fixes for latest cvs swig to be released next month
Fri May 24 15:28:18 BST 2002 Sam Liddicott <sam@ananova.com>
* Took out the string typemaps as swig now has them in stl.i
* Added om_percent to omtypes.i - I wonder if we might just
read omtypes.h instead, as swig can
* Added OmMSetIterator and made changes to OmMSet
Fri May 24 11:46:50 BST 2002 Sam Liddicott <sam@ananova.com>
* Now support get_matching_terms via swig
I'm not sure how to generally map iterators to php but in
cases where we know only a small number of items exist
to be iterated over it makes sense to return them as a
php array
Tue May 21 15:28:40 BST 2002 Richard Boulton <richard@tartarus.org>
* multi_postlist.cc (get_doclength): Get the document length from
the appropriate sub-postlist, rather than from the database.
This causes a huge speedup in some cases, since it avoids having
to go to the termlist database for every document considered for
an mset to get the document length.
Added an AssertParanoid to check that the value from the postlist
is the same as that from the database.
This problem was noticed because "delve -v" was running several
orders of magnitude slower than without -v - it is now of
comparable speed.
Tue May 21 15:27:37 BST 2002 Richard Boulton <richard@tartarus.org>
* quartz_values.cc: Small fixes to enable it to compile with debug
turned on.
Fri May 17 14:52:45 BST 2002 Olly Betts <olly@survex.com>
* OmQueryParser::set_database() method added.
* Added disabled code to search for a keyword used in the query.
* Added ' and * to the list of "phrase making characters".
* To make a phrase, a phrase-maker must be followed by an alphanumeric
rather than just a non-space.
Fri May 17 14:49:54 BST 2002 Olly Betts <olly@survex.com>
* INSTALL: GCC 3.1 release version works, so noted this.
* HACKING: Added note about warning-free compilation being desirable
and suggesting using "./configure CFLAGS=-Werror" to promote this.
* NEWS: Minor updates.
Thu May 16 16:57:42 BST 2002 Olly Betts <olly@survex.com>
* Minor tweaks to get a warning-less compile with GCC 3.1.
Thu May 16 13:36:19 BST 2002 Sam Liddicott <sam@ananova.com>
* Clean up the spec file
Thu May 16 12:20:09 BST 2002 Olly Betts <olly@survex.com>
* Documented match_sort_key.
Thu May 16 10:42:47 BST 2002 Sam Liddicott <sam@ananova.com>
* A few quick tips from Olly, now the tarfile name and version no.
stuff comes from autoconf so the spec file won't need tweaking
each time the version number changes
Wed May 15 15:48:42 BST 2002 Sam Liddicott <sam@ananova.com>
* This can build RPM packages.
Get the make-dist tarball and do:
rpm -ta xapian-core-0.4.1-cvs.tar.gz
and it will make source and binary rpms
It doesn't build bindings packages yet but this will come when I
build them
Wed May 15 13:27:21 BST 2002 Richard Boulton <richard@tartarus.org>
* buildall: Allow use of automake 1.6.1 and later, and CVS
automake (versions 1.6[a-z])
Wed May 15 11:40:58 BST 2002 Sam Liddicott <sam@ananova.com>
* SWIG cvs (php4) now writes all output files to the same directory as
the main output file, so need for hacks to move these, also no more
clobbering our source files when building in the checkout dir
Tue May 14 21:54:02 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Updated PLATFORMS file.
Tue May 14 16:48:07 BST 2002 Olly Betts <olly@survex.com>
* Removed multiple-include protection from config.h - if it's
included more than once it's now a bug and we want to know!
Tue May 14 15:25:05 BST 2002 Olly Betts <olly@survex.com>
* OmQueryParser: parse acronyms as a single term (so "E.T." -> "ET"
and "N.A.T.O" -> "NATO").
Tue May 14 15:23:20 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Fixed config.h includes: source definition (ie not header) files
#include <config.h> as their first action.
Tue May 14 14:47:00 BST 2002 Olly Betts <olly@survex.com>
* Updated todo.
* extra/parsequery.yy: Fettled indentation.
Tue May 14 13:14:51 BST 2002 Olly Betts <olly@survex.com>
* Added test case for new "embedded &" rule, and fix problem bug it
revealed.
Tue May 14 13:10:33 BST 2002 Olly Betts <olly@survex.com>
* OmQueryParser: Parse <word>&<word> as a single term (e.g. AT&T,
M&S, A&P).
Tue May 14 11:50:03 BST 2002 Olly Betts <olly@survex.com>
* When including config.h, always specify it as <config.h>, not
"config.h", and always do it first. Both are recommended by
the autoconf documentation.
Mon May 13 17:17:13 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* missing fallback rule all-local in docs/Makefile.am was failing
the build on Solaris
Mon May 13 15:50:31 BST 2002 Sam Liddicott <sam@ananova.com>
* Use new %extends notation for swig.
* Update for new omValue usage
* Add omqueryparser support
Mon May 13 15:12:30 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* shipped getopt will now build in absence of system getopt
Mon May 13 15:09:17 BST 2002 Olly Betts <olly@survex.com>
* configure.in: Moved AH_TOP/AH_BOTTOM to more logical place.
* docs/todo.xml: Updated.
Mon May 13 14:13:27 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* added getopt to DIST_SUBDIRS so distributions work
Fri May 10 14:54:06 BST 2002 Olly Betts <olly@survex.com>
* getopt/: Checked in files I missed last time.
Fri May 10 14:35:52 BST 2002 Olly Betts <olly@survex.com>
* Make sure GNU getopt is linked to everything which might need it so
we build in non-glibc environments.
Fri May 10 13:42:59 BST 2002 Olly Betts <olly@survex.com>
* Replaced second match_sort_key optimisation with one which is
faster and not flawed.
Thu May 09 18:27:30 BST 2002 Olly Betts <olly@survex.com>
* match_sort_key now runs at a sensible speed (approx. 20x speed
up on my test case).
Thu May 09 16:58:11 BST 2002 Olly Betts <olly@survex.com>
* Added another optimisation for match_sort_key - my test case
is now 25% faster (still slow though).
Thu May 09 11:57:59 BST 2002 Olly Betts <olly@survex.com>
* NEWS, PLATFORMS, README: Updated to something approximating what we
want for a release.
* docs/todo.xml: Updated.
Thu May 09 10:57:59 BST 2002 Olly Betts <olly@survex.com>
* Removed references to match_max_or_terms (which was replaced
by OmQuery::OP_ELITE_SET long, long ago).
Wed May 08 17:38:50 BST 2002 Olly Betts <olly@survex.com>
* Improved api documentation comments.
Wed May 08 17:09:14 BST 2002 Olly Betts <olly@survex.com>
* Include findheaders.pl in tarball.
Wed May 08 16:09:14 BST 2002 Olly Betts <olly@survex.com>
* Killed off acconfig.h.
Wed May 08 15:53:11 BST 2002 Olly Betts <olly@survex.com>
* Added autom4te-*.cache to .cvsignore.
Wed May 08 15:50:56 BST 2002 Olly Betts <olly@survex.com>
* Rebuild docs on "make", not just "make dist" or "make install".
Wed May 08 15:07:01 BST 2002 Olly Betts <olly@survex.com>
* Added workaround for problems with <fcntl.h> on Solaris when LFS
is enabled.
Wed May 08 13:44:10 BST 2002 Olly Betts <olly@survex.com>
* Matcher can now sort on a key. Can be rather slow at present...
Wed May 08 13:15:21 BST 2002 Olly Betts <olly@survex.com>
* Updated todo.
Wed May 08 12:22:53 BST 2002 Olly Betts <olly@survex.com>
* Removed ltmain.sh-s from CVS.
Wed May 08 12:21:32 BST 2002 Olly Betts <olly@survex.com>
* buildall: run libtoolize; stripped out unnecessary stuff.
Wed May 08 09:44:45 BST 2002 Olly Betts <olly@survex.com>
* matcher/msetpostlist.cc: Removed bogus comment cut and pasted from
matcher/mergepostlist.cc.
Tue May 07 17:51:57 BST 2002 Olly Betts <olly@survex.com>
* It's "m4_include", not "m4include".
Tue May 07 17:52:36 BST 2002 Olly Betts <olly@survex.com>
* Added autoconf/type_socklen_t macro.
Tue May 07 16:50:20 BST 2002 Olly Betts <olly@survex.com>
* Now require autoconf 2.50, which allows us to clean up some of the
more unpleasant parts of the build system.
Tue May 07 14:55:37 BST 2002 Olly Betts <olly@survex.com>
* Added "match_sort_bands" option to sort results within relevance
bands. Currently the sort within each band is by document id, which
isn't really very useful. The plan is to allow sorting by a key.
Tue May 07 14:54:12 BST 2002 Olly Betts <olly@survex.com>
* Sorted out tests/findheaders.pl wrt last change.
Tue May 07 13:12:23 BST 2002 Olly Betts <olly@survex.com>
* Run perl scripts from Makefiles explicitly with $(PERL) rather than
having them as generated files in AC_OUTPUT.
Mon May 6 16:04:37 2002 James Aylett <tartarus@users.sourceforge.net>
* Distribution fixes: make clean should now clear up all
required files.
Mon May 6 14:42:46 2002 James Aylett <tartarus@users.sourceforge.net>
* Don't include dlfcn.h since we don't use it (and doesn't exist
on some target platforms).
Mon May 6 14:07:24 2002 James Aylett <tartarus@users.sourceforge.net>
* Minor documentation corrections.
Fri May 03 18:14:14 BST 2002 Olly Betts <olly@survex.com>
* Changed autoconf/automake project name to xapian-core, and updated
the documentation to reflect this.
* Disabled the bindings from being included in distribution tarballs.
Fri May 03 18:13:43 BST 2002 Olly Betts <olly@survex.com>
* Updated todo list.
Fri May 3 18:02:06 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Overloading ambiguity resolutions for linux/alpha build on CF
Fri May 03 17:13:36 BST 2002 Olly Betts <olly@survex.com>
* buildall: Don't run configure or make; removed --no-make and --quiet.
Fri May 3 16:52:01 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* tests/testdata/etext.txt needs to be included in the distribution
Fri May 03 16:18:38 BST 2002 Olly Betts <olly@survex.com>
* Removed OmValue in favour of simply using a string (analogous to
recent OmData change).
Fri May 03 14:52:04 BST 2002 Olly Betts <olly@survex.com>
* Removed unused om_docname typedef.
Fri May 03 14:42:31 BST 2002 Olly Betts <olly@survex.com>
* Terminology change - a "key" (in the OmKey sense) is now a "value".
Fri May 3 14:31:57 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Fixed up todo list and HTML generation script to cope with
items without an assigned priority.
Fri May 03 14:29:58 BST 2002 Olly Betts <olly@survex.com>
* It's HACKING (not INSTALL) that has details of developer tools.
Thu May 02 15:57:48 BST 2002 Olly Betts <olly@survex.com>
* Removed OmData - just return and take a string instead.
Thu May 02 14:40:21 BST 2002 Olly Betts <olly@survex.com>
* docs/.cvsignore: updated.
Thu May 02 14:38:36 BST 2002 Olly Betts <olly@survex.com>
* Removed assorted references to pthread locking; updated HACKING.
Thu May 02 14:15:47 BST 2002 Olly Betts <olly@survex.com>
* Stripped out OmBatchEnquire stuff, as it's unlikely to get sorted
out any time soon, and it can be extracted from CVS when someone
wants it.
Thu May 02 13:50:04 BST 2002 Olly Betts <olly@survex.com>
* Check for bison >= 1.35 in buildall.
Wed May 01 17:39:57 BST 2002 Olly Betts <olly@survex.com>
* Removed lingering references to Omsee and OpenMuscat.
Wed May 01 16:34:13 BST 2002 Olly Betts <olly@survex.com>
* Removed unused methods from NetClient (read_data and write_data).
Wed May 01 14:01:12 BST 2002 Olly Betts <olly@survex.com>
* Added test consistency1 to check matcher optimisations don't
result in inconsistent results (i.e. that same matches and
weights are returned regardless of size of mset asked for).
Wed May 01 11:48:10 BST 2002 Olly Betts <olly@survex.com>
* Fixed mismatched tags in todo.xml.
Wed May 01 11:46:42 BST 2002 Olly Betts <olly@survex.com>
* Updated todo.
Wed May 01 11:40:47 BST 2002 Olly Betts <olly@survex.com>
* Corrected configure warning message - it's XML::Parser not XML.
Wed May 01 11:34:49 BST 2002 Olly Betts <olly@survex.com>
* Tweaks to get queryparser building cleanly.
Tue Apr 30 17:44:48 BST 2002 Olly Betts <olly@survex.com>
* Updated query parser in extra from the updated one in omega,
and fettled it to cope better with multiple instantiations
(though it's a long way from being reentrant at the moment).
Tue Apr 30 11:03:44 BST 2002 Olly Betts <olly@survex.com>
* Updated todo.
Mon Apr 29 19:28:04 BST 2002 Olly Betts <olly@survex.com>
* More string.c_str() tidying.
Mon Apr 29 17:41:33 BST 2002 Olly Betts <olly@survex.com>
* Tidied up some uses of string.c_str().
* Cleaned up todo list.
Mon Apr 29 16:08:21 BST 2002 Olly Betts <olly@survex.com>
* Updated buildall to check various tools have the required version
numbers.
Mon Apr 29 15:58:57 BST 2002 Olly Betts <olly@survex.com>
* Tweaked use of HAVE_STREAMBUF
Fri Apr 26 14:41:09 BST 2002 Sam Liddicott <sam@ananova.com>
* Swig is now modified so it can build config.m4 and Makefile.in
for php modules so I removed these from bindings/php4
Tue Apr 23 18:21:03 BST 2002 Olly Betts <olly@survex.com>
* Tried compiling with GCC 3.1 prerelease snapshot and fixed various
STL-related warnings (mostly uses of istrstream).
* Fixed usage of AM_CFLAGS and AM_CXXFLAGS.
Tue Apr 23 15:48:36 BST 2002 Olly Betts <olly@survex.com>
* Updated buildall (and had to tweak it again, sigh).
Tue Apr 23 14:21:01 BST 2002 Sam Liddicott <sam@ananova.com>
* Added typemap conversion to generate OmSettings from php hash
* Changed order of classes in interface file
Tue Apr 23 14:20:05 BST 2002 Olly Betts <olly@survex.com>
* Revamped xapian-config and xapian.m4. Important change - it's now
"xapian-config --cxxflags" and XAPIAN_CXXFLAGS, not --cflags and
_CFLAGS.
Mon Apr 22 17:58:56 BST 2002 Olly Betts <olly@survex.com>
* Removed leak checker.
Mon Apr 22 13:40:01 BST 2002 Olly Betts <olly@survex.com>
* Tiny code tweak.
Mon Apr 22 13:11:32 BST 2002 Olly Betts <olly@survex.com>
* Write debug log using unbuffered IO and O_APPEND which should prevent
the log file becoming garbled when used from applications which use
Xapian objects in multiple threads.
Mon Apr 22 12:19:18 BST 2002 Olly Betts <olly@survex.com>
* Updated copyright notices for last change.
Mon Apr 22 11:20:28 BST 2002 Olly Betts <olly@survex.com>
* Removed thread locks.
Fri Apr 19 17:38:23 BST 2002 Olly Betts <olly@survex.com>
* Removed completed tasks from todo list.
Fri Apr 19 17:26:23 BST 2002 Olly Betts <olly@survex.com>
* Removed placeholder code for OmQuery::OP_PERCENT_CUTOFF - it's
actually impossible to implement since we started rescaling
percentages so that 100% is attainable.
Fri Apr 19 16:42:42 BST 2002 Olly Betts <olly@survex.com>
* Tracked down and fixed the bug in the quartz backend which was making
test poslist2 fail.
Fri Apr 19 16:06:39 BST 2002 Olly Betts <olly@survex.com>
* Fixed some compilation problems which I somehow failed to notice
before the last check-in.
Fri Apr 19 15:04:13 BST 2002 Olly Betts <olly@survex.com>
* Added more RETURN(...) wrappers.
Fri Apr 19 14:46:19 BST 2002 Olly Betts <olly@survex.com>
* Added more DEBUGCALL tracing to quartz.
Fri Apr 19 13:29:57 BST 2002 Olly Betts <olly@survex.com>
* Minor tweaks to quartz_database.cc.
Fri Apr 19 13:07:50 BST 2002 Olly Betts <olly@survex.com>
* Moved test poslist1 into correct place and renamed it to poslist2
since there's already a poslist1...
Fri Apr 19 11:19:15 BST 2002 Olly Betts <olly@survex.com>
* poslist1 (when actually run!) reveals that Quartz fails to throw
errors in this case. Disabled test for now, as I can't see why it
fails to throw...
Thu Apr 18 17:44:56 BST 2002 Olly Betts <olly@survex.com>
* Added poslist1 test as suggested by a TODO entry.
Thu Apr 18 14:17:24 BST 2002 Olly Betts <olly@survex.com>
* buildall: Removed search for GNU make (as of automake
1.5 it's not needed for automake and we aim to have portable
makefiles). Made buildall more portable.
Thu Apr 18 14:16:18 BST 2002 Olly Betts <olly@survex.com>
* xapian-config.nodep is a generated file, so don't look for it in
srcdir.
Thu Apr 18 12:45:04 BST 2002 Olly Betts <olly@survex.com>
* Added bindings/php4/xapian/.cvsignore.
Thu Apr 18 12:36:53 BST 2002 Olly Betts <olly@survex.com>
* Minor tweaks to "Makefile" section in HACKING.
Thu Apr 18 12:26:21 BST 2002 Olly Betts <olly@survex.com>
* Yet more Makefile portability fixes; added section to HACKING
summarising my recent experiences.
Thu Apr 18 11:26:37 BST 2002 Olly Betts <olly@survex.com>
* Corrected the sense of the test in the previous check-in.
Thu Apr 18 11:08:04 BST 2002 Olly Betts <olly@survex.com>
* Use case instead of echo/sed to replace dirname.
Thu Apr 18 10:19:01 BST 2002 Olly Betts <olly@survex.com>
* Another Makefile portability tweak.
Wed Apr 17 16:07:02 BST 2002 Olly Betts <olly@survex.com>
* bindings/php4/Makefile.am: Fixed a couple of problems with
recent changes.
Wed Apr 17 15:32:44 BST 2002 Olly Betts <olly@survex.com>
* Makefile portability improvements.
Wed Apr 17 14:29:21 BST 2002 Olly Betts <olly@survex.com>
* Replaced uses of GNU make specific features with more portable
ones.
Wed Apr 17 12:43:07 BST 2002 Olly Betts <olly@survex.com>
* Update todo list.
Wed Apr 17 12:41:03 BST 2002 Olly Betts <olly@survex.com>
* Removed BrightStation's logo from the documentation.
Wed Apr 17 12:27:07 BST 2002 Olly Betts <olly@survex.com>
* xapian-config: Removed --uninst support - it's very hard to make it
work reliably and we're better off directing our efforts towards
improving the library than trying to get it working and keep it
working.
Wed Apr 17 10:39:02 BST 2002 Olly Betts <olly@survex.com>
* Fixed btreetest code to use new names "ord+" and "ord-" for
datafiles; disabled LFSinsertdelete1 test as it's exactly the
same as insertdelete1 (despite the comment above which suggests
it tests files >2G).
Mon Apr 15 17:14:22 BST 2002 Olly Betts <olly@survex.com>
* Fix a few OmDatabase::InternalInterface uses I'd somehow missed.
Mon Apr 15 16:08:20 BST 2002 Olly Betts <olly@survex.com>
* Mark internal classes as @internal for doxygen; removed all uses
of OmDatabase::InternalInterface as it's no longer needed.
Mon Apr 15 15:42:47 BST 2002 Olly Betts <olly@survex.com>
* Updated TODO list.
Mon Apr 15 2002 Sam Liddicott <sam@ananova.com>
* Hacked around bindings and bindings/php to remove some SWIG
workarounds. SWIG cvs + some new non-committed patches is need still.
Mon Apr 15 12:12:05 BST 2002 Olly Betts <olly@survex.com>
* stemtest: getopt fix.
* stemtest.pl.in: output now: less verbose by default and coloured.
Mon Apr 15 11:18:58 BST 2002 Olly Betts <olly@survex.com>
* Updated HACKING to say that automake 1.5 is required, and note that
automake 1.6.1 is better than 1.6.
Sat Apr 13 20:35:51 2002 James Aylett <tartarus@users.sourceforge.net>
* Fixed stemtest getopt usage so it works again.
Sat Apr 13 20:20:52 BST 2002 James Aylett <tartarus@users.sourceforge.net>
* Fixed omtcpsrv getopt usage so it works again.
Fri Apr 12 16:24:06 BST 2002 Olly Betts <olly@survex.com>
* Require automake 1.5.
Fri Apr 12 12:11:57 BST 2002 Olly Betts <olly@survex.com>
* omtcpsrv: Namespace fixes.
Fri Apr 12 12:25:42 BST 2002 Olly Betts <olly@survex.com>
* Fixed everything to use getopt rather than icky handparsing of
options.
Fri Apr 12 11:26:57 BST 2002 Olly Betts <olly@survex.com>
* Removed delve - it's going to be an example program.
Thu Apr 11 18:09:35 BST 2002 Olly Betts <olly@survex.com>
* Command line argument improvements - added FIXMEs where getopt
should be used.
Thu Apr 11 17:01:44 BST 2002 Richard Boulton <richard@tartarus.org>
* Fixes to work with automake 1.6.1.
I recommend using 1.6.1 rather than 1.6, since this fixes many
bugs in 1.6. I havn't tested with 1.6 recently, but it is likely
to report problems.
Thu Apr 11 17:25:37 BST 2002 Olly Betts <olly@survex.com>
* Use GNU getopt.
Thu Apr 11 15:06:15 BST 2002 Olly Betts <olly@survex.com>
* Updated to recommend automake 1.5, noting problem with automake 1.4
and that we'll probably soon insist on 1.5, and later autoconf 2.50.
Also added notes on recommended and usable GCC versions.
Thu Apr 11 14:23:44 BST 2002 Olly Betts <olly@survex.com>
* Cleaning up build system.
Thu Apr 11 13:18:23 BST 2002 Olly Betts <olly@survex.com>
* Use AndPostList with boolean weights on the RHS instead of
FilterPostList - this appears to fix a bug, but I suspect it's
actually just moving it around. Will investigate later.
Thu Apr 11 10:11:11 BST 2002 Olly Betts <olly@survex.com>
* Sorted out automake for php4 bindings.
Wed Apr 10 14:44:50 BST 2002 Olly Betts <olly@survex.com>
* Removed a superfluous DEBUGLINE.
Tue Apr 9 19:02:09 BST 2002 Richard Boulton <richard@tartarus.org>
* Fix some DEBUGLINE() macros in the matcher which had
the first parameter missing.
Tue Apr 09 17:50:44 BST 2002 Olly Betts <olly@survex.com>
* Removed stray bit of debug code.
Tue Apr 09 17:05:09 BST 2002 Olly Betts <olly@survex.com>
* More debug tracing added.
Tue Apr 09 10:48:42 BST 2002 Olly Betts <olly@survex.com>
* Disabled pthread support by default.
Sat Apr 6 20:45:21 2002 James Aylett <tartarus@users.sourceforge.net>
* Reordered some output generation in configure so it won't
complain about directories not existing. (I don't understand
what the problem is, but this does fix it.)
Sat Apr 06 20:27:57 BST 2002 Olly Betts <olly@survex.com>
* Moved a few lingering traces of XML indexer stuff to indexer
subdirectory.
Sat Apr 06 17:37:02 BST 2002 Olly Betts <olly@survex.com>
* Removed -pedantic (read the gcc docs - it's doesn't turn on
useful warnings) and fixed all the remaining compilation
warnings in a non-debug build.
Fri Apr 05 10:21:28 BST 2002 Olly Betts <olly@survex.com>
* Removed --enable-profiling, --enable-purify, and --enable-insure.
They don't do anything which can't be achieved by passing
environment variables and switches to configure (now documented
in HACKING). Adding a separate switch for every profiling and
code-quality tool out there isn't a sensible approach.
Thu Apr 04 20:37:12 BST 2002 Olly Betts <olly@survex.com>
* Updated .cvsignore files.
Thu Apr 04 20:25:41 BST 2002 Olly Betts <olly@survex.com>
* PTHREAD_CFLAGS was only being used for compiling C, not C++, which
was causing builds to fail unless threading was disabled. This
problem has been there a long time, but until recently was hidden
by the check for fdatasync erroneously linking in -lrt which pulls
in pthreads anyway (at least this is the situation on Linux).
Thu Apr 04 20:06:00 BST 2002 Olly Betts <olly@survex.com>
* Removed XML indexer stuff from the main xapian library. All the
removed bits are now in the indexer subdirectory, ready to be
reassembled into a supplementary library.
Thu Apr 04 15:43:43 BST 2002 Olly Betts <olly@survex.com>
* More debug tracing in the matcher.
Thu Apr 04 14:17:10 BST 2002 Olly Betts <olly@survex.com>
* Added debug tracing to most of the matcher.
Thu Mar 28 17:21:16 GMT 2002 Olly Betts <olly@survex.com>
* Give up trying to make internals private or protected in the
header files in include - the consequences are just too ugly, and
it's clear enough that they shouldn't be messed with except by the
library itself.
Wed Mar 27 10:24:26 GMT 2002 Olly Betts <olly@survex.com>
* Don't add "-lrt" to the link line unless it's actually needed for
fdatasync().
Wed Mar 27 10:11:09 GMT 2002 Olly Betts <olly@survex.com>
* Fixed two problems in the matcher which were respectively causing
problems with boolean filters, and with situations where OR or
ANDMAYBE decayed to AND.
Fri Jan 11 18:00:44 GMT 2002 James Aylett <tartarus@users.sourceforge.net>
* Various build fixes for libxml2: define CHAR as needed,
--enable-validation (off by default), check for and discard
'blank' text/cdata nodes as we encounter them
Fri Jan 11 15:40:50 GMT 2002 Sam Liddicott <sam@ananova.com>
* Added Large File Support in the same way it was added to GNU tar.
(If it's good enough for them...)
This is by means of autoconf/ac_sys_largefile which I'm told is
built in to later versions of autoconf, and may possibly give us
trouble redefining it for those versions... But we'll see about
that when/if it happens.
It seems to work fine here on some DB's which I had to stop growing
cos they got too big; I'm now past the 2G boundary with no problems
I guess we should still add overflow detection for 2^31 blocks.
Ideas?
I need some help on the btreetest.cc as I haven't yet worked out
what it does; so while I've added a test, it doesn't yet test
what it says it does. I have changed btreetest.cc so you can
tell it where to dump the test DB
Fri Dec 21 17:48:09 GMT 2001 Olly Betts <olly@survex.com>
* Fixed halflife calculation in OmBiasFunctor.
Fri Dec 21 15:24:58 GMT 2001 Olly Betts <olly@survex.com>
* Added a temporary API to allow use of OmBiasFunctor.
Fri Dec 21 12:58:23 GMT 2001 Olly Betts <olly@survex.com>
* Disable conversion of OR to AND/ANDMAYBE in matcher tree - there's
a bug which sometimes manifests when there's a date filter and a
threshold cutoff in omega, and results in just one match when there
should be more. I don't believe the bug is actually in OrPostList
but I've been tracking it for 4 days without success and turning off
this optimisation seems to stop it occurring so will have to do for
now.
Thu Dec 20 17:41:04 GMT 2001 Olly Betts <olly@survex.com>
* matcher/multimatch.cc: added more percent_cutoff assertions.
Thu Dec 20 13:41:41 GMT 2001 Olly Betts <olly@survex.com>
* Fixed incorrectly classified debug message; fixed compiler warning;
more comments about matches_* with a percent_cutoff.
Thu Dec 20 13:09:51 GMT 2001 Olly Betts <olly@survex.com>
* Better OmPostListIterator::get_description() (call get_description
on internal->postlist).
Thu Dec 20 12:42:55 GMT 2001 Olly Betts <olly@survex.com>
* Fixed assorted problems with omtcpsrv and co from recent change.
Thu Dec 20 10:41:57 GMT 2001 Richard Boulton <richard@tartarus.org>
* In ./configure --help, correctly report muscat36 backend as
defaulting to off.
Thu Dec 20 10:36:18 GMT 2001 Olly Betts <olly@survex.com>
* Don't delete internal in ~OmWritableDatabase - ~OmDatabase
does that for us (internal was zeroed after delete, so this
was probably harmless)
* Tweaked OmEnquire::get_description() and
OmPostListIterator::get_description() to do less - there's a
debug related bug somewhere and get_description() should be a
non-intrusive method...
Thu Dec 20 10:32:56 GMT 2001 Richard Boulton <richard@tartarus.org>
* Fix a couple of misquoted messages in configure.in.
Tue Dec 18 23:22:00 2001 James Aylett <tartarus@users.sourceforge.net>
* Use xapian.org where appropriate in documentation references
Tue Dec 18 14:32:32 2001 James Aylett <tartarus@users.sourceforge.net>
* Use xapian.org not sourceforge for schemas
Mon Dec 17 18:47:08 GMT 2001 Olly Betts <olly@survex.com>
* Cured problems with string('x') caused by overzealous search
and replace on my part.
Mon Dec 17 16:44:31 GMT 2001 Olly Betts <olly@survex.com>
* Improved matches_estimated when a percent_cutoff is in effect.
Sun Dec 16 18:09:28 GMT 2001 Olly Betts <olly@survex.com>
* You can now register a match decider functor by name with an
OmEnquire object. It's not yet used for anything though.
Sun Dec 16 17:31:08 GMT 2001 Olly Betts <olly@survex.com>
* omtcpsrv: simplified arguments - just list database directories and
they'll be opened with the auto backend. Removed --im as it didn't
work as advertised and nobody's noticed (as actually implemented it
was useless).
Sat Dec 15 14:10:32 GMT 2001 Olly Betts <olly@survex.com>
* Minor update to todo.xml.
Sat Dec 15 13:43:47 GMT 2001 Olly Betts <olly@survex.com>
* More fettling of OmBiasFunctor stuff - still not ready for use yet...
Tue Dec 11 13:06:08 GMT 2001 Olly Betts <olly@survex.com>
* Don't work out probabilistic weights for boolean bits of the query
(rhs of FILTER and AND_NOT) which fixes incorrect percentage weights
in filtered queries.
Tue Dec 11 12:26:44 GMT 2001 Olly Betts <olly@survex.com>
* Added test singlesubq1 to keep an eye on can_replace_by_single_subq.
Mon Dec 10 16:58:21 GMT 2001 Olly Betts <olly@survex.com>
* can_replace_by_single_subq shouldn't return true for OP_ELITE_SET
since you can't call set_elite_set_size() on an arbitrary subquery.
Thu Dec 6 15:02:05 GMT 2001 Richard Boulton <richard@tartarus.org>
* (omqueryinternal.cc, omtermlistiteratorinternal.h)
Fix some compiler warnings (when compiling with no debug) due
to methods which should return a value but simply contain
"Assert(false);". Throw an exception in such methods instead
(after the Assert).
Mon Dec 03 11:20:42 GMT 2001 Olly Betts <olly@survex.com>
* New BiasPostList - not yet enabled as it needs more work.
Mon Dec 03 11:16:44 GMT 2001 Olly Betts <olly@survex.com>
* quartzdump: give syntax error if no tables specified.
Thu Nov 29 14:10:43 GMT 2001 Olly Betts <olly@survex.com>
* ExtraWeightPostlist wasn't handling prune correctly.
Thu Nov 22 13:46:59 GMT 2001 Olly Betts <olly@survex.com>
* Fixed segfault when percentage_cutoff emptied the proto-mset.
Thu Nov 22 12:27:49 GMT 2001 Olly Betts <olly@survex.com>
* Enhanced test emptyquery1.
Fri Nov 16 15:32:09 GMT 2001 Olly Betts <olly@survex.com>
* Added OmQuery::is_empty() method.
Thu Nov 15 15:36:07 GMT 2001 Olly Betts <olly@survex.com>
* Updated todo list.
Thu Nov 15 13:03:05 GMT 2001 Olly Betts <olly@survex.com>
* Fixed percent_cutoff problems.
Wed Nov 14 12:05:44 GMT 2001 Olly Betts <olly@survex.com>
* Empty OmQuery() now matches no documents (rather than causing an
exception).
Thu Nov 08 18:23:21 GMT 2001 Olly Betts <olly@survex.com>
* SIGSTKFLT isn't portable, so added #ifdef checks for it.
Wed Nov 07 15:34:29 GMT 2001 Olly Betts <olly@survex.com>
* Fixed 2 GCC 3.0 warnings in muscat36 backend.
Wed Nov 07 14:21:47 GMT 2001 Olly Betts <olly@survex.com>
* Made doc counts returned from percentage cutoff matches more
accurate.
Wed Nov 07 12:30:32 GMT 2001 Olly Betts <olly@survex.com>
* GCC 3.0 fixes.
Tue Nov 06 11:16:42 GMT 2001 Olly Betts <olly@survex.com>
* Matcher now calculates percentages like Omega does (or did as I'm
about to remove that code from Omega), rather than as a percentage
of the theoretical maximum possible weight. The old way generally
gives disappointingly low values, and by pushing the percentage
code down into the matcher, it can be used to optimise the query.
Tue Nov 06 11:13:06 GMT 2001 Olly Betts <olly@survex.com>
* Quick fix for problems with null OmQuery-s.
Mon Nov 05 15:52:55 GMT 2001 Olly Betts <olly@survex.com>
* Added signal handling to testsuite - if a testcase generates a
signal it is caught and reported, then the testsuite continues
with further testcases.
Wed Oct 31 14:26:59 GMT 2001 Olly Betts <olly@survex.com>
* Removed needless complications in matcher when a weight threshold
has been set.
Tue Oct 30 16:50:46 GMT 2001 Olly Betts <olly@survex.com>
* Removed superfluous lines from configure.in; fixed warning from
automake 1.5.
Mon Oct 29 11:54:36 GMT 2001 Olly Betts <olly@survex.com>
* Changed matcher to form proto-mset using a min-heap (as described
in "Managing Gigabytes", 2nd ed., pp 211-213). Compared to the
previous "nth-element" approach, this uses about half the memory,
allows the min-weight based matcher optimisations to work sooner,
and should be inherently faster (not yet benchmarked though). The
code's slightly simpler too.
Mon Oct 29 11:53:38 GMT 2001 Olly Betts <olly@survex.com>
* Fixed remote backend to pass match_cutoff setting across.
Fri Oct 26 13:43:08 BST 2001 Olly Betts <olly@survex.com>
* Reserve size needed for mset vector.
Thu Oct 25 18:00:54 BST 2001 Olly Betts <olly@survex.com>
* Fixed a couple of stray references to the old sleepycat backend.
Tue Oct 23 18:19:32 BST 2001 Olly Betts <olly@survex.com>
* More cleaning up of MultiMatch.
Tue Oct 23 16:14:27 BST 2001 Olly Betts <olly@survex.com>
* Removed RemotePostList - it was an experimental idea which proved
to be too slow even on a fast network. Cleaned up code where hooks
were bodged in for it.
Tue Oct 23 13:27:12 2001 James Aylett <tartarus@users.sourceforge.net>
* Added documentation of the test system (albeit brief). Also
mentioned the autotools book in HACKING.
Tue Oct 23 12:07:59 BST 2001 Olly Betts <olly@survex.com>
* Updated .cvsignore files.
Tue Oct 23 11:29:47 BST 2001 Olly Betts <olly@survex.com>
* Code tidying while investigating sporadic fails from quartztest.
Mon Oct 22 17:42:30 BST 2001 Olly Betts <olly@survex.com>
* Minor fettles to quartztest: fixed warnings, whitespace tidying,
use mkdir(...) rather than system("mkdir ...")
Mon Oct 22 16:41:12 2001 James Aylett <tartarus@users.sourceforge.net>
* Renamed project to Xapian.
Mon Oct 22 14:22:00 BST 2001 Olly Betts <olly@survex.com>
* Fixed non-ISO C++ code so Xapian will compile under GCC 3.0
(and also RedHat's "GCC 2.96").
Mon Oct 22 11:21:45 2001 James Aylett <tartarus@users.sourceforge.net>
* Altered omseek-config and the AC m4 macro to make uninst
executables link to the right version of the library
Mon Oct 22 10:38:20 2001 James Aylett <tartarus@users.sourceforge.net>
* Minor fixes to enable build (and test) under Solaris.
Fri Jun 22 13:24:59 2001 Sam Liddicott <sam@ananova.com>
* Added some explicit type casts in xmlindexer and quartz backend
to help gcc2.96 compile.
Thu Jun 21 11:05:31 2001 James Aylett <tartarus@users.sourceforge.net>
* HACKING updated to (a) remove inaccurate statements about
copyright assignment, and (b) talk about developer write
access to CVS.
Mon Jun 11 13:24:43 2001 James Aylett <tartarus@users.sourceforge.net>
* pthread support detected using an automake macro. Should
be more portable as a result.
* We need GNU make: buildall now tries to find it.
Mon Jun 11 12:07:00 2001 Hein Ragas <hragas@users.sourceforge.net>
* Modified QuartzWritableDatabase::do_add_document and
QuartzWritableDatabase::do_replace_document to leave the PositionList
empty for a term with no positions associated with it.
Mon May 29 12:17:00 2001 Hein Ragas <hragas@users.sourceforge.net>
* Modified QuartzPostList::add_entry to allow for adding of entries
in the middle of the postlist, not only at the end.
Mon May 28 12:00:00 2001 Hein Ragas <hragas@users.sourceforge.net>
* Fixed a bug in replace_document for Quartz, added a test to
ensure proper working of the fix.
Fri Apr 27 15:16:10 2001 James Aylett <tartarus@users.sourceforge.net>
* Project name change to Omseek.
Wed Apr 11 09:06:37 BST 2001 Chris Emerson <chris.emerson@omsee.com>
* Implemented deleting of items from postlists, and added some
tests to check that it works properly.
* Fixed a potential memory leak in QuartzPostList if an exception
was thrown from the constructor.
* BackendManager now sets the quartz_logfile setting, to make
the logs available from the testsuite.
* Added mention of quartz_logfile to docs/omsettings
* Removed a bad assert from InMemoryDatabase::get_doclength()
Mon Apr 9 21:48:18 BST 2001 Chris Emerson <chris.emerson@omsee.com>
* Added #include <cmath> to testutils.cc
Fri Mar 30 17:37:24 BST 2001 Olly Betts
* Added extra/.cvsignore
Fri Mar 30 17:22:13 BST 2001 Olly Betts
* Disabled allocation checking of new[] and delete[] since some STL
implementations use them which leads to leaks being reported where
none exist. This is addressable longer term...
Thu Mar 29 19:05:46 BST 2001 Richard Boulton <richard.boulton@omsee.com>
* Add "extra" directory to om source tree, to hold extra libraries
for use with omsee, which aren't part of the core.
* Put a query parser into "extra". This is roughly the parser
from omega. Needs some work: in particular, it needs to be
made reentrant.
* Added extra/ directory to top level Makefile.am and configure.in.
Added AC_PROG_YACC to Makefile.am
* Add includes of required header files to omquery.h.
Wed Mar 28 17:15:22 BST 2001 Richard Boulton <richard.boulton@omsee.com>
* Modifications to OmQuery. Remove the isbool flag: there is
no longer any need for the concept of a "pure boolean query".
The same effect as was obtained by setting isbool can be
obtained by setting the match_weighting_scheme parameter to
bool.
* Also, undefined queries may no longer be used when
building up composite queries; the correct behaviour for this
is hard to define and implement and harder to document, and
removing this removes lots of special case code.
* Updated network query passing code.
* Remove special cases for bool weighting in localmatch and irweight.
* Updated omsettings docs. Updated comments in omsetting.h.
* Updated todo.xml
* Incremented network protocol version.
* Added test_emptyop1, which checks what happens when an attempt is
made to use an empty list of subqueries to build up a query, and
then use the query.
* Remove test_boolsubq1: no such thing as a boolean query now, so
no need to test what happens when one is used.
* Updated testsuite to use "match_weighting_scheme" setting, rather
than calling OmQuery::set_bool().
Wed Mar 28 15:05:46 BST 2001 Chris Emerson <chris.emerson@omsee.com>
* Fixes to InMemoryDatabase:
+ do_open_post_list returns an EmptyPostList rather than an
assertion error if the term doesn't exist
+ Fixed doccount(), which wasn't decrementing on delete_doc()
+ Remove terms from the database when they have no more postings.
+ Implement collection frequencies, and run collfreq tests for
inmemory.
Wed Mar 28 14:24:38 BST 2001 Richard Boulton <richard.boulton@omsee.com>
* Set elite set size to max(10, sqrt(number of subqueries)) by
default. This is rather more useful than the old default of 0.
Wed Mar 28 10:25:35 BST 2001 Chris Emerson <chris.emerson@omsee.com>
* QuartzDatabase now implements replace_document(), and
delete_document() now removes keys/attributes as well.
However, postlist entries are not yet correctly removed,
so this will cause problems.
* Added a test for deleting/replacing documents, which passes.
Tue Mar 27 17:31:58 BST 2001 Chris Emerson <chris.emerson@omsee.com>
* QuartzAttributes now has a method to delete a document's
attributes, and QuartzRecordManager has a replace_ method.
(But the code which uses these isn't in this commit).
Thu Mar 22 15:58:08 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Change definition of OmQuery::is_defined(), so that elite set
queries are undefined until a size is specified for the set.
Wed Mar 21 14:29:04 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Implemented delete_document and replace_document in inmemory
database.
Wed Mar 21 12:39:13 GMT 2001 Olly Betts
* Tweak to docs/quickstart.html.
Wed Mar 21 02:50:19 GMT 2001 Olly Betts
* Entirely removed sleepcat backend and all references to it.
* Disable muscat36 backend by default.
Tue Mar 20 18:47:12 GMT 2001 Olly Betts
* open_document() now takes a lazy flag - if not set we need to check
that the docid given actually exists.
* heavy_duty flag now a bool instead of an int.
Mon Mar 19 19:16:34 GMT 2001 Olly Betts
* Added test getdoc1 to check exceptions are thrown for out-of-range
docids (currently they aren't for quartz and muscat36 backends).
Mon Mar 19 17:17:31 GMT 2001 Olly Betts
* New simpler implementation of leak detection in testsuite.
Currently doesn't support malloc/calloc/realloc/free.
Mon Mar 19 16:46:16 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Further small modification to omsee-config: will now look in
.libs subdirectories, too.
Mon Mar 19 15:57:18 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Update omsee-config to work when a prefix is specified that
points directly to the directory with the library, rather than
expecting the library to be in a subdir "libs/". (libs/ is
still used if it exists).
* Update omsee.m4, to use omsee-config even when using an
uninstalled version of omsee. This in turn fixes problems using
uninstalled versions of omsee with STLport.
Fri Mar 16 18:14:52 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Updated licenses, to include year 2001.
Fri Mar 16 15:40:49 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Fix up small bug in quartztest causing it to fail for lack of an
expected exception. Initialise values in quartz_positionlist.cc
when position list is not present.
Thu Mar 15 17:40:38 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Make timeout absolute, rather than cumulative, when fetching
multiple documents from database: if two nodes fail, the total
timeout should still be that specified, not twice it.
* Make the timeout set by SocketClient::set_query() get reset
correctly if an exception happens (which used to prevent
SocketClient::get_mset() ever getting called).
Thu Mar 15 17:06:51 GMT 2001 Olly Betts
* Oops, checked in too much - backing out the wrong stuff.
Thu Mar 15 16:30:14 GMT 2001 Olly Betts
* Include autoconf/definedir.m4 in tarball.
Thu Mar 15 16:06:02 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Updated network protocol number to reflect change adding
OP_ELITE_SET.
Thu Mar 15 15:31:35 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* QuartzPositionList should no longer complain if positional
information isn't available for a particular term / document
combination.
* Updated todo.
Thu Mar 15 13:55:53 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Removed OmDocument::set_wdf() and OmDocument::add_term().
Replaced with OmDocument::add_term_nopos(), which adds a term
without specifying positional information, taking an optional
wdfinc parameter. Updated testsuite correspondingly.
Thu Mar 15 13:14:10 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Update TODO
Wed Mar 14 17:51:40 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Added new operator OP_ELITE_SET, which replaces match_max_or_terms
option. Can now specify exactly which terms to apply max_or_terms
to. max_or_terms is obsolete: an error will be thrown if an
attempt is made to use it.
Wed Mar 14 15:56:20 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Added test for and implementation of multiple XOR queries.
* Fix small bugs with get_termfreq_est() for xor and andnot
postlists.
Mon Mar 5 16:08:01 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Catch exceptions within the loop in SocketServer - exceptions
should normally not kill the server. This means that that a
client still works after eg an OmDocNotFoundError, which was
causing problems before.
Fri Mar 2 18:15:47 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Add a new query operator, OP_WEIGHT_CUTOFF, which returns only
those documents from a query which have a weight greater than a
specified cutoff value. Also added OP_PERCENT_CUTOFF, but this
is not yet implemented.
* Added test of new cutoff function, cutoff2.
* Updated network protocol to pass new queries. Increased protocol
version number (to 10).
* Added set_cutoff() function to OmQuery, to set cutoff parameter.
* Updated TODO.
* Remove unused member "PostList * postlist" of LocalSubMatch.
Thu Mar 1 12:04:53 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Updates to HACKING.
Wed Feb 28 18:42:47 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Fixes to neaten up configure output, and to test for the Perl
Text::Format module, thanks to James Aylett (patch slightly
modified, so if it doesn't work it's probably my fault).
* configure.in checks for presence of ftime() and gettimeofday()
* Added OmTime, a class to deal with times to an accuracy of
microseconds, or whatever the best accuracy the system supports
is.
* Use OmTime in network code instead of time(NULL).
Wed Feb 28 14:23:11 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Merge common code from OmSocketLineBuf::wait_for_data() and
OmSocketLineBuf::do_readline() into
OmSocketLineBuf::attempt_to_read(), and thus fix bug in
wait_for_data() when 0 bytes returned from read().
Tue Feb 27 18:40:33 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Fixes to remote matcher code to cope better with failure of
submatchers:
- Timeout for all submatches now correctly start at same time.
* Added more extensive testing of above code, involving adding
new parameters to inmemory to cause abort()s at various stages of
the match.
* Remove obsolete (and unused) method
SocketServer::read_global_stats()
* Errors are now generated from strings by using omerrortypes.h with
suitable #defines before including it. Updated todo accordingly.
* Extend scope of try{} clause in socketserver, so that
SocketServerFinished exception never escapes.
* Default timeout in progserver increased to 30000.
* Default timeout in tcpserver increased to 15000.
Mon Feb 26 23:51:23 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Split query generation into stages: make new query, add subqueries,
then finalise. Add private methods to OmQuery reflecting this, and
convert constructors into template methods, allowing any iterator
to be used for constructing queries. Removed reference to
<vector> from omquery.h
* Add omqueryinternal.cc, containing implementation of query
internals. (surprise!)
* OmQuery::Internal now has some helper functions to determine the
properties of each particular query. These should be converted
into a lookup table, and the remaining hard-coded properties (for
AND_MAYBE, AND_NOT and FILTER) factored out.
* window property removed from constructor. This can now be set by a
separate call, to "OmQuery::set_window()"
* Added a deleter_vector class, to store subquery pointers in a more
exception-safe way.
* Represent undefined queries by the new OP_UNDEF operation, rather
than a dedicated flag - cleaned up some logic.
* Some modifications to XOR handling: should now behave like OR and
AND - doesn't need to be binary. (*untested*)
* Fixes to serialisation code in socketcommon.cc to work with new
OmQuery::Internals - this should really be done in
OmQuery::Internal.
* One tiny fix in tcpclient.cc - an &fdset was missed for exception
conditions in a select() call.
* Testsuite modified and expanded to check changes to OmQuery.
Mon Feb 26 18:20:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Fixed some compiler warnings reported by James Aylett.
Mon Feb 26 14:27:09 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Avoid waiting for a timeout when closing a SocketClient.
Fri Feb 23 14:38:09 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Updated todo.xml
Thu Feb 22 18:14:41 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* OmRegexFilterNode has an output for non-matching strings as
well as matching. "out" output renamed to "matching".
Thu Feb 22 16:56:33 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Fixed a bug in the fetch() bits: requesting documents at the
same time from different OmMSet instances could cause a
document to disappear from the cache at the wrong moment.
Thu Feb 22 15:39:49 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Updated todo.
Thu Feb 22 12:14:12 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Some small changes in quartz to improve exception safety and
error checking.
* Remove unwanted OmExpandWeight::get_expand_k() method.
Wed Feb 21 19:02:44 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Overhauled the OmMSet::fetch() etc. methods. Documents are
requested when fetch() is called, but are only fetched (all
at once) when the first get_document() is called.
Wed Feb 21 19:30:20 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Add an errorhandler member to MultiMatch, and remove it from
various calls which used to pass it about.
* Add an EmptyMatch object, which always returns an emptypostlist.
* Implement errorhandlers at start of query for initially down
nodes. Improve test for errorhandlers to cover many more cases.
* Add many debug messages to error handling code.
Wed Feb 21 14:33:50 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Use a deque<> directly instead of a queue, due to conflict
with Solaris headers.
* Split the collect_doc loop into a separate function
* SocketClient should be more robust against request_doc() being
used without collect_doc().
Tue Feb 20 18:01:13 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* SocketClient implements a queue/cache system which means that
collect_doc() doesn't need to be called in the same order as
request_doc().
Mon Feb 19 15:43:49 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Converted btree code to use new/delete instead of [mc]alloc/free.
Mon Feb 19 13:52:23 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Added new test collapsekey2 designed to work with muscat36
databases, which have different key handling. Added two new
categories of tests to cope with this.
* Adjusted BackendManager's key generation, and updated
test_specialterms1() accordingly.
Fri Feb 16 17:26:59 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Implemented a test for keep-alives
* Added "-tNNNN" option to omprogsrv to pass a timeout value in.
* Added get_network_database() in apitest to set the timeout.
Fri Feb 16 16:13:47 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Incremented the remote protocol version, since a new message
type has been added.
Fri Feb 16 15:55:31 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Added an OmDatabase keep_alive() method to gently prod any
remote databases. Applications can use it to avoid the remote
servers timing out between queries. Not properly tested yet...
Thu Feb 15 19:05:24 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* The remote server now supports a separate timeout used while
idle, rather than actually servicing a request from the client.
Options --idle-timeout and --active-timeout added to omtcpsrv,
and --timeout sets both timeouts.
* Added a documentation comment or two.
Wed Feb 14 18:43:00 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* In Muscat3.6 backends, don't read the key from the keyfile unless
keyno is 0.
Tue Feb 13 13:57:34 GMT 2001 Andy MacFarlane <andym@omsee.com>
* Added parameter expand_k in omsettings in order to change
value of weighting in expand process.
Tue Feb 13 13:25:45 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Network timeouts now apply to write() operations as well
as read().
* SocketLineBuf::do_writeline() now correctly deals with EAGAIN.
* SocketServer has new method writeline() which handles write
access to the OmLineBuf.
Mon Feb 12 12:35:41 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Make OmPositionListIterators and any other appropriate iterators
(postlist, termlist) have a default constructor allowing them to
be declared uninitialised.
Mon Feb 12 10:51:41 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Updated todo.xml
Thu Feb 8 17:59:44 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Moved omnodepad.h from include/om to indexer/indexgraph/
* Updated todo.xml
Thu Feb 8 17:35:45 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Updated todo.xml
Thu Feb 8 17:00:02 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Quartz now has a metafile which for now has a magic string
and a version number.
* sys_open_to_read() and delete_file() exported from btree.cc.
The latter was renamed to sys_unlink_if_exists().
* Include btree_types.h from btree_util.h
Wed Feb 7 17:33:00 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Fix to InMemory databases: terms can be added even if they
don't have any positions. (Was causing adddoc2 to fail).
Tue Feb 6 18:06:13 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Rename OmMSet::fetch_items() to fetch(). Add an overloaded
fetch() method taking a single iterator, to fetch a single item.
* Fix some documentation comments.
Mon Feb 5 19:16:45 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Update TODO
Mon Feb 5 19:12:39 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Test behaviour of OmDocument methods add_term(), set_wdf(),
remove_posting() and remove_term(). Fails for inmemory databases.
Mon Feb 5 17:46:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Modified the behaviour of timeouts during a match. Internally,
an absolute timeout time is set from start_match(). Now remote
nodes should timeout at NOW + remote_timeout, rather than
waiting remote_timeout milliseconds for each read(). Needs
some more testing.
Mon Feb 5 17:21:52 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Fix a missing #include in socketcommon.h
Mon Feb 5 17:15:46 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Sort generated todo lists.
Fri Feb 2 17:44:54 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Add an OmDocument::add_term() method.
* Remove an unwanted check that wdf's are greater than 0: wdf of 0
_is_ allowed.
Fri Feb 2 15:04:08 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Hopefully, a fix for segfaults/assertions when network errors
happen halfway through a match, when handled by OmErrorHandler
objects: give the place-holder EmptyTermLists weighting objects.
Thu Feb 1 19:03:10 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Fixes to OmDocument interface: add parameters specifying the
changes to be made to the wdf to add_posting and remove_posting,
properly implement remove_posting and remove_term, including
throwing of exceptions, and add a set_wdf() method to set the wdf
to an absolute value. Corresponding modifications to
OmDocumentTerm.
* Fix commented out errorhandler code in multimatch.cc, so it still
compiles.
* Add a check to avoid division by zero in bm25weight.cc
Thu Feb 1 15:59:30 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Add a missed #include to omqueryinternal.h
Thu Feb 1 14:44:04 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Add some error handler code, with a "#if 0"ed out comment,
to multimatch.cc
Wed Jan 31 15:45:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Remote servers should close down more gracefully when the
client closes down in the middle of a request.
Tue Jan 30 16:52:05 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Removed unneeded #includes of STL headers from API headers.
* All #includes of files which are not installed use "" rather than
<>. This means all #includes of OM files except for those which
are in example programs (and hence might be compiled against the
installed library). "" search paths are a superset of <> search
paths: hence this should ensure that the om headers work however
they are used.
* Moved supplied OmExpandDecider subclasses into
include/om/omexpanddecider.h
* Remove om_termname_list from API: not used except by code which
displays it, and in testsuite.
Tue Jan 30 12:45:22 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Removed #include <vector> from omstem.h
Tue Jan 30 11:09:29 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* OmStem::get_available_languages() now returns a string
rather than a vector. Languages are space-separated.
Updated apitest.
* Added definition of RTLD_DEFAULT to internaltest.cc
Mon Jan 29 16:11:15 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* OmIndexerMessage's copy-on-write slightly more careful.
* Improved debugging in OmIndexerNode
* Fixed a bug in the termlistadd node - it tried to append to a
non-vector.
Fri Jan 26 16:21:09 GMT 2001 Olly Betts
* indexerxml.cc: Removed some dead code.
Fri Jan 26 16:11:13 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Added omindexerdescinternal.h to the Makefile
Fri Jan 26 15:50:32 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Move OmQuery definition into a separate header file.
Fri Jan 26 15:46:42 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Move OmQuery::OP_LEAF out of public visibility, by taking it out
of the enum, making it a static const member of OmQuery::Internal,
and introducing an OmQuery::Internal::op_t to store query
operators in internally. We lose the ability for the compiler to
warn us if we forget to check for a particular operator in a
switch statement, but this can't really be avoided.
Fri Jan 26 13:49:33 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Added get_output_{node,pad} to OmIndexerDesc
* Implemented and testes OmNodeInstanceIterator
* Implemented OmIndexerBuilder::build_from_desc, which somehow
hadn't been. indextest now uses it.
Thu Jan 25 18:47:08 GMT 2001 Olly Betts
* Fixed various .cvsignore files (omus -> omsee, and
bindings/java/.cvsignore which seemed to have been copied from
the top level one at some point).
* Fixed bug in OrPostList when used in a pure boolean context
(uninitialised variables).
* tests/internaltest.cc: removed unused reference to getopt.h.
* tests/stemtest.pl.in: removed lots of bogus semicolons after
closing braces.
Thu Jan 25 17:53:08 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Turn debugging messages (OM_DEBUG_TYPES) off by default.
* Add todo items for release to pages generated for website.
Thu Jan 25 15:11:14 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Add a couple of documentation comments: we need many more of
these. No method, and certainly no class, in the API should be
without an explanatory comment (not least so that they're
accessible from the doxygen browser).
Thu Jan 25 14:51:55 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Hide the internals of OmIndexerDesc, and adding member functions
to do all the necessary operations (not all yet implemented).
* Indexer internals mostly deal with OmIndexerDesc::Internal
* Removed '#include <vector>' from omindexerdesc.h
Thu Jan 25 13:45:49 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* When setting up an RSet, allow documents to be referenced by
OmMSetIterator, for convenience.
* Allow OmMSetIterators and OmESetIterators to be created without
initialising, also for convenience.
* Include CFLAGS for STLPORT in the flags produced by omsee-config.
* Change several more missed "omus"s to omsee.
Thu Jan 25 13:50:06 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
* Changed a mention of libomus in netprogs/Makefile.am to libomsee
Thu Jan 25 12:33:46 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Build only the API docs when making dist / install. Full source
docs only get built if explicitly asked for.
Thu Jan 25 11:36:39 GMT 2001 Richard Boulton <richard.boulton@omsee.com>
* Project name changed to Omsee.
Ramifications from a technical viewpoint are:
- library name changed from libomus.* to libomsee.*
- libomus-config renamed to omsee-config
- Autoconf macro file libomus.m4 renamed to omsee.m4,
macro name OM_PATH_LIBOMUS changed to OM_PATH_OMSEE
and macro now defines OMSEE_CFLAGS and OMSEE_LIBS rather
than LIBOMUS_CFLAGS and LIBOMUS_LIBS. configure arguments
changed name, also.
Wed Jan 24 15:57:10 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Improve test of OmMSetIterators equality comparisons.
* Update TODO
Wed Jan 24 15:11:11 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Renamed OmNodeConnection to OmNodePad. The old name was
confusing.
* Added OmPadIterator, and OmNodeDescriptor::{in,out}puts_{begin,end}.
Also implemented OmNodeDescriptor::get_type()
* Added output function for OmPadIterator
* Added test for OmPadIterators
Tue Jan 23 19:01:29 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Remove OmBatchEnquire from system: it may return at a later date,
but for now it is simply out of date and a maintenance liability,
and gives no significant advantage. Code now exists in
ombatchenquire.h in CVS, but is not part of build process.
* Make OmEnquire and OmMSet have reference counted internals: this
introduces a further layer of indirection, but tidies up things
greatly.
* Remove get_docs() and get_doc() methods from OmEnquire.
get_doc(docid) is catered for by OmDatabase::get_document(docid).
Added OmMSetIterator::get_document() to replace get_doc on a
MSetIterator. Added OmMSet::fetch_items() to replace get_docs():
it prefetches the documents (or just those specified by some
MSetIterators into a cache in the Mset).
* OmMSet internals now have a reference to the creating OmEnquire
object: this is set up after the mset returns from the matcher.
If the reference is null, the Mset was created standalone, and
get_doc methods will fail.
* OmMSetIterators now have a reference to the MSet, instead of a
percent_factor stored. This allows the percent_factor to be
lazily calculated, and also allows get_doc to work.
* Add get_rank() method to OmMSetIterators.
* Improve introspection on OmDocument, and fix a bug with assignment
of OmDocument (wasn't assigning most of the internals).
* Add a missing std:: on a string in omstopwordnode.
* Fixed several documentation comments.
* Add some more debugging to quartz.
* Update TODO.
* Add test_fetchdocs1 to apitest. Disable test_batchquery1.
* Remove sign comparison error in VectorTermList.
Tue Jan 23 16:24:04 GMT 2001 Olly Betts
* No longer compile with -ansi under gcc - it causes problems by
preventing Linux system headers defining various functions we need.
* testsuite/testsuite.cc: when reporting exceptions, display
exception's errno value if set.
Tue Jan 23 15:13:58 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Killed OmIndexerBuilder::NodeType. Now use OmNodeDescriptor
in its place, getting rid of another vector usage in the API.
* OmNodeDescriptor adjusted for its new role: internals are
refcounted, and some query as well as setting functions.
* Cast the fourth argument to getsockopt() to void *. On Solaris
that argument is char *.
Tue Jan 23 11:24:13 GMT 2001 Olly Betts
* Tiny tweak to da_document.cc.
Fri Jan 19 18:36:15 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Removed get/set vector methods from OmSettings
* Remote/prog arguments now passed in a string separated be spaces,
not a vector.
* split_words() moved from netutils.h to utils.{h,cc}
* Some unnecessary #include <vector> lines removed from API headers
* Removed get_config_vector() from OmIndexerNode
* OmConstantNode no longer handles vector values, and
OmStopWordNode and OmSelectItemsNode use space-separated
values instead.
Thu Jan 18 17:31:55 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Removed mentions of std::vector from OmIndexerMessage, and
updated the relevant bits.
* Fixed a bug with the copy-on-write parts of OmIndexerMessage.
Thu Jan 18 17:09:43 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Fix to btreetest.cc: shouldn't fail if test data files are not
available.
* Fix to multimatch.cc: clamp hits values to number of documents
matched after collapsing and match functors, rather than before.
Thu Jan 18 14:13:21 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Fix error messages thrown by quartz when a database doesn't exist /
already exists and isn't to be overwritten.
* Make quartz clean up an old database directory, if
database_allow_overwrite is specified, so that old base files don't
confuse things.
Wed Jan 17 18:18:50 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Added all used toplevel directories to DIST_SUBDIRS
Wed Jan 17 18:13:50 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Martin committed changes to btree.cc which should fix some random
problems experienced with quartz.
* Added in a test framework for the btree code, which exhibited the
bug fixed by martin until updating to his fixed version.
Wed Jan 17 16:10:02 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Moved the socklen_t definition so that tcpclient.cc could see
it.
Tue Jan 16 20:35:18 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Fix creation of quartz databases in backendmanager: all tests should
now pass.
Tue Jan 16 20:28:46 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Fix quartztest so that the tables / databases get created.
Implement new test "create1" to check that creation of databases
works as specified.
* Fix test for whether we are allowed to overwrite a database.
* Implement much better logging from quartz when making new databases.
* Clean up an error message from btree.cc
Tue Jan 16 19:24:49 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Don't display messages about allocation failures in the first
iteration: if the failures go away when repeating, we're not
interested.
Tue Jan 16 18:28:03 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Add two new OmSettings, for use when opening databases:
database_create and database_allow_overwrite. The idea is that
databases will only be created if database_create is specified,
and that when they are being created an exception will be thrown
if there's an existing database unless database_allow_overwrite
is specified.
* Implemented database_create and database_allow_overwrite for
Quartz, which is the only relevant type for now. Note that this
breaks the testsuite, quite badly.
* Add OmDatabaseCreateError, which is thrown when creating a database
fails.
Tue Jan 16 17:08:47 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Fixed a typo in -ldl detection
Tue Jan 16 15:15:30 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Remove OmNeedRecoveryError, and quartz's quartz_perform_recovery
parameter. Quartz now always performs recovery if needed: there
is no need for this added complication.
* Update TODO
Tue Jan 16 14:25:03 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Changed references to SIGCLD to SIGCHLD as it's more portable.
Tue Jan 16 14:02:34 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Added check for whether -ldl is necessary.
Tue Jan 16 11:51:25 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Added compatibility bits for early libxml1 versions.
Mon Jan 15 18:18:01 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Removed use of hstrerror, which isn't portable.
Mon Jan 15 18:02:42 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Fix assertion which was the wrong way round in multimatch.cc
Mon Jan 15 17:46:13 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Fix initialisation of Btree_base::sequential when creating database.
Mon Jan 15 15:43:46 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Renamed some uses of XML node structure for libxml2 compatibility.
Mon Jan 15 15:35:50 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Add some fixes to sequential access to btrees from Martin.
Mon Jan 15 12:23:02 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Set matches_* to the known value of the number of hits if we have
been unable to return as many hits as were requested, and therefore
know the exact number.
* Update test_matches1() to check this works correctly. Passes.
Fri Jan 12 17:45:27 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Implement get_doclength() for QuartzDatabase
* Remove unused parameter from QuartzRecordManager::add_record()
Fri Jan 12 17:14:16 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Fixed MultiAllTermsList, which had stopped working.
Fri Jan 12 15:32:34 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Add test to apitest (postlist6) that doclengths got from postlists
are the same as those from databases. Fails for Quartz for the
moment.
* Add test to quartztest (disktable3) to try and bring out a bug in
adding to tables.
Fri Jan 12 15:20:09 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Fix STLport macro so that it will accept an STLport installation
with foo/include/stlport and foo/lib instead of foo/stlport and
foo/lib.
Fri Jan 12 14:04:37 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Fixed buglet in configure.in which produced a bogus warning
about regex libraries.
* Added an AC_MSG_RESULT corresponding to an AC_MSG_CHECKING
for the libxml flags
Fri Jan 12 13:18:07 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
* Fixed skip_to() in QuartzAllTermsList
Fri Jan 12 12:52:57 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Turn debugging off in btree.cc: accidentally committed a version
with lots of verbose debugging on.
Fri Jan 12 11:16:17 GMT 2001 Olly Betts
* glibc 2.2 needs `#define _GNU_SOURCE' to give us RTLD_NEXT.
* C++ comments changed to C comments in malloccheck.c.
Thu Jan 11 16:42:07 GMT 2001 Olly Betts
* Removed unnecessary `#include "alltermslist.h"' from
d[ab]_database.h.
Wed Jan 10 14:28:10 GMT 2001 Olly Betts
* Updated various .cvsignore files.
Tue Jan 09 19:03:12 GMT 2001 Olly Betts
* Tidied up dead code from OmAllTermIterator.
Tue Jan 09 18:41:21 GMT 2001 Olly Betts
* OmAllTermsIterator merged into OmTermIterator.
* When iterating over all terms, skip_to() doesn't set at_end()
when it skips off the end. Fixed except for quartz and added
regression test (allterms3).
Tue Jan 9 18:14:04 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Add some extra debugging code into btree code in quartz.
Tue Jan 9 17:22:12 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Make skip_to() work (ie, do nothing) on OmTermIterators, when the
term iterator is at_end() already.
Tue Jan 9 13:32:08 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Updates to make the quartzdump utility more useful.
* Added new test to test cursor behaviour in quartz.
Tue Jan 9 11:31:26 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Remove an item from TODO
Tue Jan 9 10:27:35 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Add a missing \ in tests/Makefile.am
Mon Jan 8 19:03:42 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Increment format number in quartz/btree_base.cc. This isn't
actually due to a change in the btree format, but to ensure that
some databases which were causing problems are rebuilt.
We need to add quartz format numbers, separate from the btree format
numbers, to check this kind of thing.
Mon Jan 8 15:13:04 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Add some debugging, and fix a test data file.
Mon Jan 8 13:49:50 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Fix failure to initialise OmMSet::Internal::have_percent_factor.
Thu Jan 4 17:21:24 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Add new test for a postlist with many documents, designed to fail
and exhibit the bug andy has found. So far doesn't fail.
Wed Jan 3 19:30:30 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Add get_percent method to OmMSetIterator. Untested.
* Add om_percent type to om_types.
* Add test of sort order of terms in get_matching_terms.
Tue Jan 2 15:05:53 GMT 2001 Richard Boulton <richard.boulton@open.muscat.com>
* Move documentation of parameters for OmSettings out of omsettings.h
and into docs/. Not in distribution at the moment: it is awaiting
placement into a permanent home (I think the user manual is the
correct place).
* Add a bm25weight_min_normlen parameter: this specifies a cutoff
on the minimum value that can be used for a normalised document
length: smaller values will be forced up to this cutoff. This
prevents very small documents getting a huge bonus weight.
Wed Dec 20 16:54:41 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fix warning in QuartzTable
Wed Dec 20 15:13:05 GMT 2000 Olly Betts
* OmTermListIterator merged into OmTermIterator.
* Added OmRSet::contains() - checks if an RSet contains a given
docid.
* Methods returning `const om_termname' now just return
`om_termname'.
Tue Dec 19 16:55:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Implemented AllTermsIterator for DA and Multi databases.
Added a test which actually uses a multidatabase, but
disabled it as it currently fails for both Quartz and DA.
Tue Dec 19 12:14:05 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Adjusted TODO
Tue Dec 19 20:06:43 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Escaping for termnames in remote database communication modified
to use only characters in range 33 to 126. Should now work on all
architectures.
* Increased OM_SOCKET_PROTOCOL_VERSION to 8.
Mon Dec 18 17:23:48 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Added "match_cutoff" option to get_mset OmSettings.
* Added test for "match_cutoff" to apitest.
* Updated todo.xml
Mon Dec 18 17:19:40 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Implemented opening positionlists from inmemory databases. Added
a testcase as well, which is run for quartz and inmemory.
Mon Dec 18 15:48:16 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Implemented AllTermsIterator for quartz. Interaction with
QuartzPostList needs to be cleaned up.
* Added new functions [un]pack_string_preserving_sort(), which
pack a string in a way which preserves sort order. Added a
testcase to quartztest.
* Now use [un]pack_string_preserving_order() on postlist keys, so
that we can get at terms in sorted order. (And get_tname_from_key()
added to separate out the term-unpacking as well as the packing)
* Enabled test_allterms1 in apitest, but put it in a group of
tests only run for inmemory and quartz. This should be extended
to other backends.
Mon Dec 18 14:33:42 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Implemented tests of msetiterator and esetiterator copying and
assignment.
* Fix segfault when assigning to [me]setiterator to end.
* Updated todo.xml
Mon Dec 18 13:52:53 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Move creation of first key in a quartz postlist into a named
function (was scattered through the code).
Mon Dec 18 11:19:53 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Update todo.xml
Mon Dec 18 10:47:42 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Remove const from reverse_iterators in api_db.cc, so get around
brokenness of egcs 1.1.2
Mon Dec 18 09:41:54 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Added apitest_space.txt to the Makefile.am
Sun Dec 17 16:15:03 GMT 2000 Olly Betts
* Replaced all API uses of om_termname_list with OmTermIterator.
Fri Dec 15 18:54:10 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Implemented OmAllTermsIterator interface in API. It works for
inmemory - the rest haven't been implemented yet. The test
is commented out.
Fri Dec 15 15:47:53 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Updated TODO.
* database returns positionlists as AutoPtrs; this neatens some of
the code from the previous changelog entry, and makes explicit the
ownership of the pointer. postlists and termlists should be
AutoPtrs, likewise.
Fri Dec 15 14:59:41 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Make OmPositionListIterators retrieved from OmPostListIterators
valid indefinitely (were only valid until OmPostListIterator was
moved). This makes them consistent with OmPositionListIterators
retrieved from OmDatabases.
* Renamed PostList::get_position_list() to read_position_list.
Added PostList::open_position_list() which opens a new positionlist
and returns it as an AutoPtr.
Fri Dec 15 13:09:51 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Make TODO.release file, containing TODO items for next release.
Fri Dec 15 12:06:42 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* QuartzDatabases now autoflush after 1000 changes.
Fri Dec 15 11:40:37 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fix segfault in quartz_table
Fri Dec 15 11:23:15 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Removed begin/end_session() from quartztest
Thu Dec 14 19:19:40 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Done todo item: For writable databases, make the behaviour currently
obtained by calling begin_session() and later end_session() the
default behaviour. If users want the changes to be applied
immediately following a change, they should call flush().
Thu Dec 14 17:48:27 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fix problem with recalc_maxweight() not being called before a
get_maxweight() in multimatch.cc if a node prunes at the top level,
since recalculate_w_max wasn't being checked at this point.
Introduced helper function getorrecalc_maxweight() to tidy this up.
* Tidy up Asserts in common/netutils.h.
Thu Dec 14 17:11:17 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Adjusted todo.xml
Thu Dec 14 16:21:27 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Removed handling of OmDatabaseModifiedError in the API - it's
up to the users to know what to do. Disabled quartzoverwrite2
as it's now inappropriate.
* Added OmDatabase::reopen() to help them do so.
* Adjusted todo.xml
Thu Dec 14 14:38:39 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Added another quoting regression test.
Thu Dec 14 14:36:53 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Fixed the quoting _again_, since it broke with backslashes.
Thu Dec 14 12:49:58 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fix problems with recalculation of maxweight in postlists, causing
AssertParanoid at multimatch.cc:393. When a prune was happening,
recalc_maxweight flag was not always being set, because some
{next,skip_to}_handling_prune() methods weren't being passed the
matcher, and a default argument of 0 was being used. I've now
removed the default argument and pass the matcher always.
Sometimes the recalc could perhaps be avoided, but this is
certainly safer for now.
Thu Dec 14 12:30:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Sleepcat is now disabled by default.
* Fixed a problem with tabs not being quoted in the remote case. All
control characters are now quoted. Incremented the protocol ver
number.
Thu Dec 14 11:54:17 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Added regression test to check that all characters can be
are safe to exist in document keys.
* Fixed OmDebug so that it can display messages containing zero bytes
(use fwrite instead for fprintf)
Wed Dec 13 18:43:40 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Add regression tests to apitest to check that OmMSet and OmESet
begin() and end() iterators compare equal if the mset is empty.
Fix matchfunctor used in test_matchfunctor1 so that it works for
Muscat3.6 databases.
Wed Dec 13 18:35:05 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Fixed bugs in OmMSet and OmESet iterators: begin() when the set
was empty produced an invalid iterator, and the assignment
operators would have failed when end iterators were involved.
* Added a check in test_matchfunctor1() that the mset returned is
not empty.
Wed Dec 13 18:18:09 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Turn off tests involving terms with newlines or zero bytes in terms
with Muscat3.6 backends; these can't be expected to work.
Wed Dec 13 18:06:29 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Uncommented the code in pctcutoff1 - test now passes.
Wed Dec 13 17:53:19 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fix: m36_key_file parameter wasn't being set with DA flimsy
databases (thanks to Mark Hagger).
* indextest.cc changed to use "\n" instead of endl - compiles
with STLport again.
Wed Dec 13 17:27:17 GMT 2000 Olly Betts
* OmMSet is now an STL compatible container.
* Om*Iterator::difference_type was unsigned - now signed.
* net/readquery.ll: fixed compiler warning.
* Remote backend was defaulting to collapse on key 0.
Wed Dec 13 16:48:49 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Add handling of DatabaseModified to OmEnquire::get_mset()
Wed Dec 13 16:28:47 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Escape zero bytes in the network protocol, since these were
breaking things when being passed across as part of keys.
* Add test of having zero bytes in the collapse keys.
* In testsuite, only display the context of errors if there is one
present.
Wed Dec 13 14:44:46 GMT 2000 Olly Betts
* Implemented OmMSet::operator[]().
Wed Dec 13 14:30:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Added support for handling overwritten database conditions.
Currently works for OmDocument::get_{data,key}().
Wed Dec 13 13:20:45 GMT 2000 Olly Betts
* Elaborated API hitlist in todo.xml.
Wed Dec 13 12:28:18 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Fix to BackendManager to stop it removing tables prematurely.
Wed Dec 13 11:49:53 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Apply the stemmer to query terms used in spaceterms1. (Not doing
so caused the test to fail spuriously on local databases, since the
terms are stemmed at index time). The test still fails with da and
db databases.
* Fixed a problem when stats were unpacked from the network stream,
where term names were not correctly unquoted. This led to double
quoting of global statistics.
Wed Dec 13 02:49:05 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Implement copy and assignment methods for OmPositionListIterator.
Wed Dec 13 02:37:14 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* ESet and MSet iterators now cope with being copied / assigned when
the internals are null.
* Added copy method to OmPositionListIterator interface. No
implementation for this yet though, or for the already existing
assignment method.
* Added a couple of easy items to the todo list to check regarding
iterators.
Wed Dec 13 02:19:50 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fix small bug in mset_range_is_same{,_weights}()
Wed Dec 13 02:07:59 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* And add copy and assignment for OmESet, similarly.
Wed Dec 13 01:58:38 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Add copy and assignment operators to OmMSet so that the internals
get copied (rather than just the pointer to them). Really want a
small internals class, holding a refcount to the real internals, or
else to use refcntptrs for the members of OmMSet::Internal which are
potentially large (eg, items)
Wed Dec 13 01:05:44 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Add Asserts to api/omdatabaseinternal.cc to ensure that there is at
least one database present when opening termlists, etc. This should
really be done by throwing errors.
* Add destructor to OmMSet, deleting internals.
* Implement getting positionlists from QuartzDatabases.
* Fix bug in copy constructor of OmDocument::Internal - some fields
were not being copied.
* Fix api_db.cc so it compiles: code referring to mset by subscripting
temporarily commented out.
Tue Dec 12 20:05:10 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fix bug with truncation of intermediate keys in btrees.
Tue Dec 12 18:33:12 GMT 2000 Olly Betts
* OmMSet::get_docs() now takes sane parameters.
* Various test programs updated to nearly work with new OmMSet
interface.
Tue Dec 12 17:18:33 GMT 2000 Olly Betts
* Finished cleaning up OmMSet; updated TODO to reflect this.
Tue Dec 12 17:16:02 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fix bug with sorting keys in btrees.
* Various fixes to quartzdump.
Tue Dec 12 15:40:28 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Nettest compiles with new OmMSet interface.
Tue Dec 12 15:09:14 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Fixed an endless loop in QuartzWritableDatabase::do_delete_document.
Tue Dec 12 15:07:39 GMT 2000 Olly Betts
* OmMSetItem replaced by OmMSetIterator.
* Added OmESet::empty().
* Fixed == on OmESetIterator.
Tue Dec 12 14:16:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Renamed arguments to compare_keys()
Tue Dec 12 12:05:24 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Added quartzdump utility to dump the contents of a quartz table.
Tue Dec 12 10:54:44 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Added constructors and destructor to OmRSet.
Mon Dec 11 16:32:07 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Remove caching of average length in OmDatabaseInternal, was breaking
asking for the average length of a database which was being
modified.
Mon Dec 11 16:03:46 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* If no documents in database, don't divide by zero in
omdatabaseinternal.cc
* If a document object doesn't come from the database, when iterating
through its termlist don't open postlists from the nonexistent
database; open them from the DocumentTerm objects in the document
instead.
* Remove old unused and undefined method
OmDocument::Internal::add_posting()
Mon Dec 11 13:53:18 GMT 2000 Olly Betts
* omenquire.h: Removed superfluous declaration of OmMSetCmp.
Mon Dec 11 13:38:12 GMT 2000 Olly Betts
* Updated TODO list.
Mon Dec 11 13:24:45 GMT 2000 Olly Betts
* OmRSet internals encapsulated.
Mon Dec 11 12:42:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* OmIndexerMessage::get_element and ...::operator[] now have
non-const versions. Fixes const-warning in omstemmernode.cc.
Mon Dec 11 12:17:32 GMT 2000 Olly Betts
* Better typedef-s for Om*Iterator::difference_type.
Sun Dec 10 17:51:41 GMT 2000 Olly Betts
* Corrected various typedef-s for Om*Iterator.
Sun Dec 10 17:28:59 GMT 2000 Olly Betts
* Updated TODO to reflect OmESet being cleaned up.
* Term position argument to OmDocument::add_posting() is now
optional (as it was for OmDocumentContents).
Sun Dec 10 16:55:17 GMT 2000 Olly Betts
* OmESetItem is dead - long live OmESetIterator!
* net/socketclient.cc: fixed compiler warning.
* net/socketserver.cc: fixed compiler warning.
Sun Dec 10 13:29:15 GMT 2000 Olly Betts
* Started to encapsulate OmESet/OmESetItem interface. Interface is
close, but currently implementation is exposed in omenquire.h.
* apitest wasn't running puncterms1 or spaceterms1 - fixed.
Sun Dec 10 11:34:39 GMT 2000 Olly Betts
* om/autoptr.h -> autoptr.h in lots of places.
Fri Dec 8 17:20:04 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Updated indextest to not use AutoPtr<OmIndexer>
Fri Dec 8 17:14:09 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Oops - removed one too many #include "autoptr.h"
Fri Dec 08 16:50:42 GMT 2000 Olly Betts
* Updated TODO.
Fri Dec 8 16:44:26 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* IndexerBuilder now returns OmIndexer objects instead of
AutoPtr<OmIndexer>. OmIndexer's internals are reference
counted.
* Moved autoptr.h from include/om to common/, since it's no
longer used in the API.
Fri Dec 8 16:22:48 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Fixed omstemmer node bug and made debug slightly more verbose
in indextest.cc.
Fri Dec 8 16:13:36 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Added a test for OmIndexerMessage to indextest
* Added output operator for OmIndexerMessage
* Fixed a bug introduced into omvectorsplit node
* Changed couts in indextest.cc to touts.
Fri Dec 08 14:53:24 GMT 2000 Olly Betts
* quartztest: removed OmDocumentTerm reference so that it'll
compile (tests fail though).
Fri Dec 8 14:42:46 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* OmIndexerMessage is now a class by itself, replacing OmIndexerData
and the typedef to AutoPtr<OmindexerData>. It's now a copy-on-write
object.
* The indexer stuff all changed.
Fri Dec 08 14:24:02 GMT 2000 Olly Betts
* omindexdoc.{cc,h}: no longer used so removed.
* Pushed OmDocumentTerm from API level into the internals of the
library.
* Updated TODO.
Fri Dec 08 12:08:49 GMT 2000 Olly Betts
* delve: if just given a database (or list of databases), report the
number of documents and average document length.
Thu Dec 7 20:39:24 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fix bug: Om*Iterators which were created over empty lists didn't
have null internals, causing them not to compare equal to end
iterators.
* Added many asserts to iterator code.
Thu Dec 7 20:02:43 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Removed OmTermListIteratorMap - OmTermListIterator can now be
across either a map or an actual termlist.
* Om*Iterator classes all now delete internals when reaching end,
freeing resources sooner and making the comparison operators much
simpler.
Thu Dec 7 18:33:03 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Updates to TODO
Thu Dec 7 18:32:39 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Implementation of write locks for Quartz
Thu Dec 7 18:28:55 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Fix to backendmanager which doesn't return writable databases
unnecessarily (which breaks things when there are write locks)
Thu Dec 7 18:25:50 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Added test for Quartz write locks
Thu Dec 7 17:56:19 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Add OmDocument::set_data() method which takes a string, instead of
an OmData object. This allows, implicitly, use of const char *'s
as well.
* Further fixes to quartztest. It now compiles (though I've not
tried linking it yet...) :)
Thu Dec 7 17:49:50 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Fixed omkeylistiterator return types.
Thu Dec 7 17:27:57 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Moved get_document() from OmWritableDatabase to OmDatabase.
* Added -> operator to OmKeyListIterator. Fixed return values
and constness of Om*Iterator::operator *() methods.
* Some fixes to quartztest.cc, but not enough to get it compiling.
Thu Dec 07 16:21:28 GMT 2000 Olly Betts
* Some work on getting quartztest working.
Thu Dec 07 16:10:00 GMT 2000 Olly Betts
* The library now builds, but "make check" still fails.
Thu Dec 7 15:39:19 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fixes to testsuite/index_utils.cc to not segfault.
Thu Dec 7 14:31:56 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Fixes to api_db.cc so that it compiles.
Wed Dec 6 18:50:48 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Add test for terms with spaces, newlines, zero bytes, or
backslashes.
* Updates to TODO
Wed Dec 06 18:18:16 GMT 2000 Olly Betts
* Woohoo! Now builds with just --disable-indexer!
(still doesn't pass any tests).
Wed Dec 06 17:24:19 GMT 2000 Olly Betts
* Minor fix. Now builds with --disable-indexer
--disable-quartz-backend (but doesn't pass any tests).
Wed Dec 06 16:35:34 GMT 2000 Olly Betts
* Fixed up lots of build errors.
Wed Dec 06 14:56:59 GMT 2000 Olly Betts
* Begin the long job of replacing OmDocumentContents with
OmDocument. Won't currently build - expect the tree to be broken
for a few days. As usual, if you want a working build, use the
"snapshot_latest" tag.
Wed Dec 6 12:03:44 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Backed out yesterday's overwritten-handling stuff.
Wed Dec 6 11:36:55 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Increase sleep in tcpclient1 to 3 (did tcpmatch1 last time, duh!)
Tue Dec 5 17:13:38 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* QuartzDocument now has a QuartzTableManager pointer rather than
two QuartzTable pointers.
* QuartzDatabase::do_get_document_internal() copes with Btree
overwritten conditions.
* QuartzDocument methods cope with Btree overwritten conditions
* New method QuartzTableManager::reopen_tables_because_overwritten()
for helping with the above.
* New test in quartztest for testing overwritten problems from the
API rather than just internally to Quartz.
* Fixed a typo in omsettings.h comment (quartz_dir used to refer to
a sleepycat database)
Tue Dec 5 16:53:46 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Update todo.
* Fix undesirable assert in stats.h
Tue Dec 5 15:41:40 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Replace OmMSet::docs_considered with
OmMSet::matches_{lower_bound,estimated,upper_bound}, giving more
useful information.
* PostLists now have get_termfreq_{min,est,max}(), instead of
get_termfreq(), so the postlist tree can be used to calculate
the matches_* values for the mset. Implemented for all the
postlist subclasses.
LeafPostList's still has a virtual get_termfreq() method,
and implements get_termfreq_* in terms of it, so database postlists
don't need to be modified.
* Passing of MSets across network modified to pass the new
information.
* PendingMSet uses the values from the mset to return the values
of get_termfreq_*(). This assumes that recalc_maxweight has been
called first, which is has been.
* Muscat36 databases get_termfreq() methods fixed to use a
LeafPostList rather than a PostList.
* Renamed test docs_considered1 to matches1, and add several
more cases to it.
Tue Dec 05 15:38:27 GMT 2000 Olly Betts
* Added tests/testdata/apitest_punc.txt to distribution.
Tue Dec 05 15:07:26 GMT 2000 Olly Betts
* Oops, failed to add new file `tests/testdata/apitest_punc.txt'
with last check-in.
Tue Dec 05 14:34:04 GMT 2000 Olly Betts
* OmTermListIterator implemented for an OmDocument with terms stored
in a map rather than coming from a Document.
* Fixes to remote protocol so solve problems with terms with
punctuation in (regression test punc_terms1).
Mon Dec 4 15:02:53 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Makefile tweak in docs/
Mon Dec 04 14:13:05 GMT 2000 Olly Betts
* More OmDocument work.
Mon Dec 4 11:43:46 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Renamed OmMSet::mbound to docs_considered.
Mon Dec 4 10:11:11 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Added some more std:: prefixes for STLport.
Fri Dec 1 17:45:01 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Increase the sleep after the server is started by tcpclient1 to 3
seconds so that the server is more likely to have started when
then test ran. This seems to be what was causing the test to
randomly fail. Really, we want a better solution to this (such as
the server picking a port and writing it out on stdout once it is
listening.)
Fri Dec 1 17:27:02 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Swapped the ports used by tcpclient1 and tcpmatch1 to see if the
random failures follow suit.
Fri Dec 1 17:21:07 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Another minor fix to work with STLport.
Fri Dec 1 17:01:02 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Add std::'s and similar to fix compilation with STLport.
* Fix bug in expander due to nth_element being called on the wrong
element. This is the counterpoint of the bug fixed on Nov 24th
with the matcher.
Fri Dec 1 16:30:26 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Minor tweaks in error strings.
Fri Dec 01 12:57:59 GMT 2000 Olly Betts
* Corrected erroneous documentation comment.
Thu Nov 30 18:50:16 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* OmSettings no longer throws exceptions internally (at the cost of
slightly more code duplication).
Thu Nov 30 18:05:39 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Add a few std::'s to strings which had been missed.
Thu Nov 30 16:41:11 GMT 2000 Olly Betts
* OmDocument::Internal now knows its OmDatabase.
Thu Nov 30 16:40:33 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Add context to network errors thrown from OmSocketLineBuf.
Thu Nov 30 16:21:47 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Added a quartz test for largish bitmaps.
* Fixed the code so that the above test would pass.
Thu Nov 30 16:10:37 GMT 2000 Olly Betts
* OmDocument::add_posting() pretty much done.
Thu Nov 30 15:51:46 GMT 2000 Olly Betts
* More work on OmDocument::add_posting().
* Added OmTermListIterator::positionlist_begin() and
OmTermListIterator::positionlist_end().
Thu Nov 30 14:16:28 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Fixed a prototype bug introduced with the last commit.
Thu Nov 30 13:23:14 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Bcursor::find_key now more const-correct.
* Bcursor_create now returns an AutoPtr. The resultant changes
fixed a memory leak.
* New exception: OmDatabaseModifiedError. Thrown when an open
revision of a table is no longer valid due to multiple updates.
* quartzoverwrite1 test re-enabled, and passes.
Thu Nov 30 13:23:27 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* nettest now uses quartz backend: should always run all tests now
(apart from tcpdead1, which doesn't work).
Wed Nov 29 19:46:22 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* In testsuite, report the context of Om exceptions as well as their
type and message.
Wed Nov 29 18:30:10 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Add "remote_connect_timeout" parameter to be supplied when opening
a remote database, to specify a separate timeout for the connect
operation to that used once the connection has been opened.
* Add setting of the context of errors thrown by tcpclient or
progclient, so that the node which failed can be determined.
Wed Nov 29 17:50:03 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Reworked Btree_base::read() a bit so that it's hopefully more
readable.
* Hopefully fixed a bug when the bitmap approaches 1k.
* Fix to catch problems re-opening databases after an apply in
Quartz.
Wed Nov 29 17:30:26 GMT 2000 Olly Betts
* Added OmDocument::termlist_begin() and OmDocument::termlist_end()
Wed Nov 29 16:53:13 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Comment out quartzoverwrite1 test so that it doesn't cause problems
for other developers.
Wed Nov 29 16:27:19 GMT 2000 Olly Betts
* docid now in Document class rather than subclasses.
Wed Nov 29 14:54:13 GMT 2000 Olly Betts
* leafdocument.cc renamed to document.cc
* Document class now has a pointer to the associated Database class
so we can open termlists, etc.
Wed Nov 29 14:03:43 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Add quartztest to test for case when a database block gets
overwritten. Currently, this fails because an exception doesn't
get thrown when it should.
Wed Nov 29 13:18:24 GMT 2000 Olly Betts
* LeafDocument class renamed to Document.
Wed Nov 29 12:35:49 GMT 2000 Olly Betts
* Added OmDocument::remove_posting(), OmDocument::remove_term(),
and OmDocument::clear_terms()
Wed Nov 29 12:31:22 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Added another revision number in the middle of the base file,
before the bitmap. Also now check that there isn't any extra
data at the end after we finish reading it. Incremented the
database format.
Wed Nov 29 11:55:03 GMT 2000 Olly Betts
* Added OmDocument::remove_key() and OmDocument::clear_keys()
Tue Nov 28 18:34:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Btree bitmap now merged with base - one object, one file.
Tue Nov 28 17:13:56 GMT 2000 Olly Betts
* Added OmDocument::set_data()
Tue Nov 28 16:47:06 GMT 2000 Olly Betts
* Started to alter OmDocument to be a general purpose document class
which includes the functionality currently in OmDocumentContents.
Tue Nov 28 15:08:38 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Added OmSplitOnCharsNode, which does a subset of OmRegexSplitNode
but less slowly.
* Modified RegexSplit node and regexcommon so that less copying
of strings is needed.
Tue Nov 28 13:42:41 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
* Moved the Btree's bitmap into a separate object.
Tue Nov 28 13:06:36 GMT 2000 Olly Betts
* Eliminated OmDocumentParams.
* Removed unnecessary mutex from OmDocument::Internal.
Mon Nov 27 18:45:27 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Implement get_position_list() on databases. Untested. Also needs
some work to make consistent with open_position_list() on posting
lists: see todo list.
Mon Nov 27 18:29:00 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Change #define LEVEL ... to #define GET_LEVEL ... in btree_util.h:
fixes problem reported by includetest
Mon Nov 27 18:20:42 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Added a set of modifications to the todo.xml. Also, add a
"release" field, recording the release that the work must be
performed by.
Mon Nov 27 18:08:35 GMT 2000 Olly Betts
* A RefCntPtr now copes with being assigned to itself (used to
delete the underlying object if the reference count was 1). Added
regression test (refcnt2).
* Now overwrite pointer inside RefCntPtr before deleting the pointed
to object so there's no window where another thread can access the
pointer and get the just-deleted object.
Mon Nov 27 14:36:59 GMT 2000 Olly Betts
* OmError class now optionally stores an errno value.
Mon Nov 27 13:04:18 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Quartztest builds its test databases in a subdirectory, which
is now in .cvsignore, so we shouldn't get cvs complaining about
so many unknown files any more.
Mon Nov 27 12:53:16 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Another TODO item.
Mon Nov 27 12:15:53 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Added a couple of new items to the todo list.
Fri Nov 24 19:23:56 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Quartztests now deletes all old tables, so that database formats
don't cause problems.
Fri Nov 24 19:03:59 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Added std:: prefix to lots of strings which didn't have it.
I've probably added some where they shouldn't be: there were rather
a lot of cases of this.
Fri Nov 24 18:27:06 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Major bug fix! When removing elements, matcher was performing
nth_element() on the first element to be thrown away, rather than
the lowest element to keep. This meant that, after throwing away
low scoring items, items.back() was a random item rather than the
lowest scoring item. This caused the min weight for getting into
the mset to go up faster than it should have done, and generally
broke everything.
It will be interesting to compare evaluation measures before and
after this fix.
Fri Nov 24 15:34:17 GMT 2000 Richard Boulton <richard.boulton@open.muscat.com>
* Declare this to be version 0.4.1
|