Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

200 most recent check-ins using file version 71740b124a

Forward-ported all of the differences between MySQL++ 3.2.1 (the point where libtabula originally forked off) and the current trunk version, which includes changes made after the release of MySQL++ 3.2.4. Leaf check-in: 6c22637ceb user: tangent tags: trunk
Dropped throw-specs, that being one of the things we always wanted to do for "MySQL++ 4.0". This obviates the porting of the MAY_THROW() stuff from MySQL++ 3.2.x. check-in: bc21e10c05 user: tangent tags: trunk
Updated the files for Doxygen 1.8.14. check-in: f3a0657c56 user: tangent tags: trunk
Fixed references to check-in: e8696effde user: tangent tags: trunk
Renamed to check-in: 5b39c725dd user: tangent tags: trunk
Added logo check-in: 318e53556b user: tangent tags: trunk
Updated our file to be consistent with the newly-Fossilized MySQL++ file. check-in: 60f47c604d user: tangent tags: trunk
Whitespace fix check-in: fa93a19a0a user: tangent tags: trunk
Added a missing library check-in: 9e56dd977c user: tangent tags: trunk
Added a FIXME comment check-in: 01622c2244 user: tangent tags: trunk
Copying the refcounted pointer to the FieldNames object in Row::operator =() instead of copying the field names. We can share the object. check-in: 1e03cb233c user: tangent tags: trunk
Removed need for Impl parameter to ResultBase::fetch_row() and its derivatives. ResultBase can provide the implementation object to the DBDriver layer, which is the only code that needed this. check-in: 3f91a82d13 user: tangent tags: trunk
STL on OS X can't cope with vector::at() assignments when the space has only been set aside with vector::reserve(). It wants either a resize() call to set the space aside definitely, or push_back() to extend the vector into the reserved space. (This is probably a sanity check like the old SafeSTL, rather than an actual memory bug, but it has the same effect as a crash.) check-in: 24d069b506 user: tangent tags: trunk
Simplified the C++ feature testing mechanism some check-in: 05f15e2b1c user: etr tags: trunk
Moved the configure_file() calls to the bottom of the top-level CMakeLists.txt file so they're after the recently-added C++11 tests. Otherwise, the wrong values get stored in src/config.h, and it can toggle on you, too. check-in: 650133871e user: etr tags: trunk
Added another C++11 test using the same mechanism from the previous one, this time for the cbegin/cend iterators, required on EL7, but which break the build on EL5's default GCC 4.1.2 compiler. Now we use them if present, and not if not. check-in: 9069ab8ffb user: etr tags: trunk
Added a test for C++11's "long long" data type, which we use in defining sql_* data types. Previously, we blindly assumed the C++ compiler also supported C99's "long long" even though C++98 and C++03 don't require it, which in turn required a couple of levels of fall-back for the cases where the C++ compiler didn't have that extension. Now that it's finally part of C++, we can just check for it. check-in: dd77d4c60e user: etr tags: trunk
. check-in: 22689bd7dc user: etr tags: trunk
Fixed some errors introduced in the recent merge check-in: 7e59757bd5 user: tangent tags: trunk
Merged row-pimpl branch into trunk: moves one of the last few remaining MySQLisms on the trunk down into the MySQLDBDriver layer. check-in: be382a7009 user: tangent tags: trunk
Merged trunk changes in Closed-Leaf check-in: 4e189f92a7 user: tangent tags: row-pimpl
Removed a FIXME comment: its proposed "fix" doesn't work. check-in: 381f8225d9 user: tangent tags: row-pimpl
The crash that prompted the creation of the row-pimpl branch was due to calling Row.size() before Row was initialized. This old MYSQL_ROW base implementation copes with this, but the new branch will try to dereference a null pointer to its nonexistent implementation object. Guarding this and a few other paths so we don't try to use that smart pointer if we aren't initialized yet.

(This change should have been made on the row-pimpl branch, but it also works against trunk, where it amounts to belt-and-suspenders.) check-in: bd141d86c6 user: tangent tags: trunk

Documented the method for enabling a debug build on *ix check-in: 2a3b9252e1 user: tangent tags: trunk
Merged trunk changes in check-in: d80e2d46a2 user: tangent tags: row-pimpl
Added lldb to the list of tools exrun can make use of, so we don't have to install gdb on OS X. Also made a few other tweaks to it while in there. check-in: 21b6f7c6f5 user: tangent tags: trunk
Merged dtest-to-ctest branch into trunk. (It only had to branch to avoid a fork.) check-in: 518f8d3962 user: tangent tags: trunk
First cut at making Row take a Row::Impl as its first argument instead of a MYSQL_ROW, with all the MySQL C API conversion code moving into MySQLDBDriver. It builds, but test/array_index segfaults. check-in: f9e573bf51 user: tangent tags: row-pimpl
Fixed some overzealous "MySQL" -> "libtabula" references, and clarified some details about the development history in the file. check-in: 9e7ac4fc37 user: tangent tags: trunk
Fixed a bunch of references to *.txt, which should be *.md now. check-in: 91de75b98b user: tangent tags: trunk
Typo fix in a comment check-in: ebb9a16682 user: tangent tags: trunk
Added a CTest-based "test" top-level target which currently only runs dtest. We still have the top-level dtest target since "test" suppresses output, and that's important for debugging the integration tests. The plan now is to move the unit tests out of dtest into CTest, so that dtest returns to its classic (MySQL++ 2.x?) form, doing integration tests only. Closed-Leaf check-in: 869873f020 user: etr tags: dtest-to-ctest
The dtest script now returns nonzero on error, so callers can tell whether it succeeded. The reason will be clear soon. check-in: 940bd74363 user: etr tags: dtest-to-ctest
Squished a clang warning about an unused parameter reported on the MySQL++ mailing list by João M. S. Silva. check-in: d076442415 user: tangent tags: trunk
Merged mysql-type-info branch into trunk, now that dtest runs to completion on two major platforms and all FIXME comments are dealt with. check-in: ac763fd4ac user: tangent tags: trunk
Merged the contents of a FIXME comment into the relevant Wishlist item. Closed-Leaf check-in: 06939e737d user: tangent tags: mysql-type-info
Comment fix check-in: 69c9023a1a user: tangent tags: mysql-type-info
Removed an unnneded method check-in: 102fa4f726 user: tangent tags: mysql-type-info
One of the sql_types.h changes recently lost the fallback for no stdint at all, such as VC++ 2008 and earlier. check-in: 143d1ad0bd user: tangent tags: mysql-type-info
Removed an unneded ctor in the new MySQLFieldTypes class. check-in: 200397c3a7 user: tangent tags: mysql-type-info
Comment change check-in: 135cd93ba4 user: tangent tags: mysql-type-info
Merged trunk changes check-in: 5f36ef6682 user: tangent tags: mysql-type-info
Regenerated bmark.txt to remove CRs from cgi_jpeg output now that tests run to completion on OS X. (Earlier success report was on CentOS 5.) check-in: 3fa3f424bf user: tangent tags: trunk
Better fix for the old problem of how to distinguish a 1-parameter template query call to Query::store() and friends from a raw query string call, which allows it to do the right thing on OS X with Clang. Not sure why this doesn't affect MySQL++, but it doesn't. (Tested 3.2.2.) check-in: 5c2b34bee3 user: tangent tags: trunk
Added <tr1/cstdint> alternative between <cstdint> and <boost/cstdint.hpp> check-in: 169bdfd29a user: tangent tags: trunk
Merged trunk changes in check-in: f2cdede2a0 user: tangent tags: mysql-type-info
Dropped the versioned crnl-glob Fossil setting. All *.md and *.txt are now LF-only. check-in: c37cba89a5 user: tangent tags: trunk
examples/cgi_jpeg now modifies its output to use LF only in output when running under dtest so the bmark.txt output file doesn't have mixed line endings. There's no reason we have to speak legal HTTP in this case. check-in: 4234731834 user: tangent tags: trunk
Fixed an operator precedence complaint in the new field type matching code noticed by Clang. check-in: f8610afda3 user: tangent tags: mysql-type-info
Fixed the quoted NULL value problem. The code wasn't checking for null values explicitly when building query strings, it was only checking the attributes of the data type. That is, it might ask something like, "Should sql_text_null be quoted", get "yes", and quote the value when building SQL query strings even when the value is a SQL NULL, and thus needs to go literally into the generated SQL.

MySQL++ must have gotten away without such code by playing some kind of game with the field type. This is a better way to do it.

Incidentally, this marks the first version of this branch that runs dtest to completion without diffs! A bit of cleanup, and we can merge it back into the trunk! check-in: e32649510e user: etr tags: mysql-type-info

Merged trunk Wishlist changes again, and removed the type_info item from the DB independence section in anticipation of merging this branch into the trunk, since that's what this branch is addressing. check-in: e039e01875 user: etr tags: mysql-type-info
Removed "Initializing result set objects" from the "tricky bits" section of the Wishlist section on DB independence, since it now basically boils down to the Row and Field items just added, and those are more specific. check-in: 97073e9aa4 user: etr tags: trunk
Merged change in check-in: a6baa231d9 user: etr tags: mysql-type-info
Noted that Field and Row are still intimately tied into the MySQL C API. check-in: dc744e7800 user: etr tags: trunk
Refactored the FieldType implementation details to reduce the amount of code duplication between the base type and the old TypeInfo class, greatly increasing the clarity of the code. This version is gives the same semi-broken test results as the previous checkin on this branch, so it's a good refactoring. :) check-in: c78d403f45 user: etr tags: mysql-type-info
The std::type_info to FieldType mapping mechanism was purposely self-limiting itself to looking up "best guess" entries only, on the theory that since moving from MySQL C API data type enums to libtabula generic type enums we lost the uniquenss of the {FieldType::Base, FieldType::Flags} pair, that we should only look through the subset that has unique pairs. However, that logic only works when mapping from libtabula values *to* C++ data types, not the other way around, since all of the C++ type_info values in that table *are* unique.

Therefore, removed the check on the new "best guess" flag in FieldType::TypeMap::operator[] since it isn't helping us. Maybe we will use this flag later, if we add the reverse mapping; or, maybe we'll remove it on YAGNI grounds. check-in: 28f9d01b73 user: etr tags: mysql-type-info

Merged exrun OS X fixes in check-in: fb36fd8453 user: tangent tags: mysql-type-info
Updated OS X and Cygwin cases in exrun to match new CMake build system. (Linux was done previously.) check-in: cf319f7c5b user: tangent tags: trunk
Merged trunk changes in check-in: 7d3a624647 user: etr tags: mysql-type-info
Moved the "tags" target to the top level. It's no use down in src. check-in: 0c16a98c03 user: etr tags: trunk
Manually merged the recent pthread changes from the mysql-type-info branch into trunk, where they should have been all along. check-in: e9bcb962a4 user: etr tags: trunk
Conditionally using Boost and C++11 cstdint header instead of C99's stdint.h for stock sql_* data types, where available. check-in: 72280af4f6 user: etr tags: trunk
Comment tweak check-in: 41713dfd16 user: etr tags: mysql-type-info
Put FieldType::ft_null case back into the static type mapping table. I removed it because I thought it was nonsense, since you can't have a "null column" in SQL, or if you can it makes no sense to do so. But, I didn't consider that the library needs a way to represent the type of a null _value_. check-in: 518f621ce8 user: etr tags: mysql-type-info
Raised MySQLFieldType::name(), sql_name() and c_type() back up to the FieldType level, since they no longer depend on MySQL-specific implementation details. Also hid an internal-only helper function. check-in: 63950facbb user: etr tags: mysql-type-info
Added a std::type_info ctor to String class, paralleling the version that takes a FieldType. This gets us around the double-conversion restriction on automatic C++ data type conversions, since we pass that type object to a SQLBuffer, which doesn't have an explicit ctor taking std::type_info, but it does have one taking FieldType, which can be constructed from std::type_info.

Not sure what we lost in all this MySQL type info refactoring that requires this where MySQL++ does not, but it's a simple fix for a real problem, so I'm not motivated to find out why MySQL++ could get away without it. check-in: 75d7e12a86 user: etr tags: mysql-type-info

Simplified examples' CMake build info the same as we just did for the test tree. check-in: 83e27bb0ba user: etr tags: mysql-type-info
Greatly simplified the test/CMakeLists.txt by using a loop and macro instead of a bunch of explicit targets, with all the redundant code that creates. As part of this, also moved to use of MYSQL_C_API_LIBRARY, as in previous checkin. check-in: d74f19163a user: etr tags: mysql-type-info
Using new MYSQL_C_API_LIBRARY macro in libtabula link step instead of an explicit mysqlclient_r. check-in: 301007b794 user: etr tags: mysql-type-info
Fixed some more mysql_type_info stuff check-in: 4d92d34d84 user: tangent tags: mysql-type-info
Fixed several problems in the new FieldType mechanism, found now that we're actually trying to build it. :) check-in: 3ea24ed240 user: tangent tags: mysql-type-info
Added missing field_type.cpp check-in: d2ae8f5377 user: etr tags: mysql-type-info
Proper fix for MYSQL_TYPE_*2 types check-in: 56e2ec90a9 user: tangent tags: mysql-type-info
The CMake build system now detects the need for -lpthread and such, and auto-selects between libmysqlclient[_r] options based on whether a threading library was found. That is, we're choosing to drop the MySQL++ --enable-thread-check build feature and just enable thread awareness if it's possible here. check-in: 02d5267584 user: etr tags: mysql-type-info
Build fix for MySQL 5.1: new MYSQL_TYPE_* constants added to squish compiler warnings about unhandled cases with MariaDB 10 don't exist in older C libraries, so they have to be conditional. check-in: 22bc9089e2 user: etr tags: mysql-type-info
Genericized the MySQL type map stuff some more so that we can move most of it back up from the driver layer into the user-facing layer. (FieldType and such.) This change is the first that lets this branch compile, though not link.

This addresses [359c32123a] check-in: baaa9e942e user: etr tags: mysql-type-info

Squished warnings about missing cases in the mapping of MySQL C API data types to C++ ones. Adds things like MYSQL_TYPE_NEWDATE in addition to ..._DATE. This change also adds a new FieldType::ft_unsupported enum value for data types that we simply do not support yet, such as MySQL's "geometry" and "bit" data types. check-in: 3cbc77152d user: etr tags: mysql-type-info
Another whitespace fix check-in: 996a37c0d2 user: tangent tags: trunk
Minor improvements to branch discussion in check-in: 62a92f89ba user: tangent tags: trunk
Added info on Fossil's diff and bundle features to check-in: 2c6280a66f user: tangent tags: trunk
Added section on CMake build directories to check-in: 6f18180b49 user: tangent tags: trunk
Whitespace fix check-in: 0049687b97 user: tangent tags: trunk
- Added info on developer access to the Fossil repo to the file - Gave a cursory overview of branches in libtabula check-in: 841571143d user: tangent tags: trunk
. check-in: 354ccf3c50 user: tangent tags: trunk
Another round of compiler error fixes resulting from the "type info" refactoring check-in: cec92a5d87 user: etr tags: mysql-type-info
A few small fixes to previous check-in: 1e129d5f84 user: tangent tags: mysql-type-info
Another major step toward abstracting away MySQL field type info, replacing it with FieldType, its enums, and the new MySQL-specific stuff derived from them. check-in: 3ec168f673 user: tangent tags: mysql-type-info
Added "tags" file generation as a dependency of libtabula, so tags gets generated on first build and re-generated whenever a libtabula source file changes. Guarded this, so it only happens if there is actually a ctags program on the build system. check-in: e1d5e2be06 user: tangent tags: trunk
More assorted compilation error fixes for the rough swipe check-in: 4a572ebdb4 user: etr tags: mysql-type-info
Removed two aliasing typedefs, and replaced all uses of them with the actual type being used. It added a layer that operated as an obscuring cloud rather than a useful abstraction. check-in: 1687756307 user: etr tags: mysql-type-info
Assorted fixes to the first rough swipe check-in: 9a665b7b33 user: etr tags: mysql-type-info
Accidentally left this out of the prvious checkin check-in: 9c9916294c user: etr tags: mysql-type-info
First swipe at abstracting away the MySQL data type system into the driver layer. Absolutely does not compile, on any system, because it is incomplete. (Thus the new branch.) Consider it a sketch in progress, rather than a nascent feature. check-in: e184e92767 user: etr tags: mysql-type-info
. check-in: 89faabec8b user: tangent tags: trunk
Another pass on the README* files to move them away from Autotools, toward CMake. check-in: a57c393299 user: tangent tags: trunk
The MySQL locator macro gives the path to the actual library *file*, not to the directory containing it, so when we added it to the library dir, we were adding a -L/a/b/c/libmysql*so* type of flag to the libtabula link line, which only works if libmysqlclient is in a directory the linker checks anyway. On EL7, for instance, it failed, since* is in a fairly odd location. I believe modern Ubuntu is this way now, too. check-in: ef5b6aabae user: tangent tags: trunk
Encouraging the new "build-*" convention in, that being the compiler most likely to need multiple build directories. check-in: db7ffbf3ac user: tangent tags: trunk
Ignoring any file or directory at the top level called "build*", so that "fossil clean" doesn't remove everything in the CMake build directory, if you have chosen to put it underneath the source root.

This establishes a convention, where multiple build directories must be named build*. For instance, a Windows user with multiple versions of VC++ installed might have "build-vs2008" and such. check-in: 44b78129b8 user: tangent tags: trunk

Changed all *.md to Unix line endings, and renamed one holdout *.txt file to *.md. The old Notepad excuse for using CRLF in these files no longer holds with *.md. There are still some *.txt files, but they're mostly CMakeLists.txt, which shouldn't be edited in Notepad to begin with, plus bmark.txt, which shouldn't be edited at all. check-in: 65286b8151 user: etr tags: trunk
First rough cut at replacing all the Bakefile commentary in the MD files with CMake equivalents. check-in: d901ae7664 user: etr tags: trunk
Added total unit test count to dtest report, so you can tell whether its report that 16 tests ran successfully is the same thing as complete success. check-in: 658e65369f user: etr tags: trunk
Replaced file(COPY) in examples/CMakeLists.txt with a read-then-write pair. CMake 2.6 doesn't have COPY. check-in: f11edacb18 user: etr tags: trunk
Better CMake status message when xsltproc < 1.1.27 detected check-in: 9799160b3c user: etr tags: trunk
Added top-level 'dtest' target, modified the dtest and exrun scripts to cope with separate build and source dirs, and updated the bmark.txt file to track changes in the dir scheme. All tests still pass, just as before the move to CMake. Yay. check-in: 718ed6f5d5 user: tangent tags: trunk
The ssqls6 example now copes with being run from somewhere other than the current working directory, as happens in the CMake world most typically. It now knows how to find its stock.txt input file. check-in: b63d53aade user: tangent tags: trunk
More of the same check-in: 3dfeb5cf15 user: tangent tags: trunk
Reordered configure_file() commands in top-level CMakeLists.txt check-in: 2d7029e38f user: tangent tags: trunk
Swapped order of libraries for test_ssqls, for machines more sensitive to library ordering. (Wasn't linking on Ubuntu 14.04, because we had ssqls2parse after libtabula, but ssqls2parse depends on libtabula.) check-in: d8c8cf5399 user: tangent tags: trunk
Changed the new querydef.h and ssqls.h on-configure generation commands with file targets, which allows us to make these files dependencies of and tells CMake we want the commands run again if the *.pl files are touched. Before, the association between script, header and library was not explicit. This should have secondary benefits, like correct handling of "make install," though this has not been tested. check-in: 0a2ccdefe6 user: tangent tags: trunk
Replaced the bootstrap script with two checks in the src/CMakeLists.txt code for missing querydef.h and ssqls.h files. Also, these genrated files now land in the build directory instead of the source directory when using a separate build dir, as they should. check-in: 342eff75c9 user: tangent tags: trunk
Removed more Autotools/Bakefile legacy stuff check-in: 19440cec31 user: tangent tags: trunk
Building test/* programs now check-in: 315d640cd7 user: etr tags: trunk
Updated Fossil "ignore" rules to swap out the expected set of generated files in the Autotools/Bakefile setup with the CMake set. check-in: dc4199b9a3 user: etr tags: trunk
Removed leftover file, which should have been removed in the cmake branch. check-in: c2d57c2619 user: etr tags: trunk
Ignoring core.* and vgcore.* at top level check-in: 8a6ca7093a user: etr tags: trunk
Removed {examples,src}/Makefile, which we'd created as pure redirectors, in case you were cd'd into one of those subdirs and said "make". They would bounce you to the top and re-issue the build request. The previous checkin accidentally included modified versions produced by CMake, since we'd built in-tree for the first time since moving to CMake. On reflection, it's better to just remove these files. check-in: 1ec7c60226 user: etr tags: trunk
xsltproc version check skipped if building in-tree, as MySQL++ typically was, which is why we didn't have to have a version check for it. check-in: 0fb0d4f3c3 user: etr tags: trunk
Fixed the libxslt version number check. (Bad regex handling.) check-in: 7dc5226bf3 user: tangent tags: trunk
Squished some more complaints about missing return values, again caught by Clang 5.1.0 on OS X. check-in: a7b86f2d4c user: tangent tags: trunk
Somehow mysql/driver.cpp wasn't included in the list of files given to CMake for the main library file. Fixed. check-in: 76388c29d7 user: tangent tags: trunk
Squished a Clang warning about a missing return value check-in: c2be430d24 user: tangent tags: trunk
Replaced Bakefile based build system with CMake one. The CMake one cannot yet do everything the Bakefile one could (see the TODO list in the top-level CMakeLists.txt file) but it does build the library, the examples, and the documentation. I see no reason these other things cannot eventually be made to work, so it's time to integrate the cmake branch into the trunk. check-in: 6ddff42c58 user: tangent tags: trunk
Forgot --nonet on the xsltproc command for generating Closed-Leaf check-in: abcb5c1e23 user: tangent tags: cmake
HTML userman generation working check-in: 5cdf666b2f user: tangent tags: cmake
Accidentally swapped PDF and HTML build output directories check-in: 3a547ba770 user: tangent tags: cmake
userman.pdf creation working check-in: 85b3a77054 user: tangent tags: cmake
Got userman build working check-in: 10344214e4 user: tangent tags: cmake
Flag enabling building userman wasn't being set correctly check-in: 416cff1c5d user: tangent tags: cmake
The libxslt version number check in the DocBook build path isn't working right, but I've at least reworked it to be clearer, and so it happens to work on the system I'm working on right now. check-in: 5a99221cf3 user: tangent tags: cmake
- Recombined the doc/CMakeLists.txt from the separated userman and refman pieces. For some reason, the variables the subordinate pieces set aren't exported to the higher level, so the top-level doc taget wasn't being configured properly.

- Checking for xsltproc >= 1.1.27 now, as that's the minimum version that works with our current XInclude scheme. (This is the reason for the most recent problem we've had with this. Our code is correct, but only newer xsltproc's can cope.) check-in: d9d9a6c2be user: etr tags: cmake

Moved the refman target and Doxygen tool check from doc/CMakeLists.txt to src/CMakeLists.txt. It doesn't greatly matter where it is, so it's better if it's nearer to where the refman stuff lives. We moved the userman target and DocBook tool check out of here in an earlier checkin, so it makes sense that this file only exist to build the higher-level doc target from the results of those two test sets. check-in: 023e59f222 user: etr tags: cmake
First cut at generating *.txt from examples/*.{cpp,h} for xincluding into the userman. The generation is working, but the xincludes still fail. check-in: 7f18093a8a user: etr tags: cmake
Moved the new doc, userman, and refman targets from top-level CMake file to a new one in the doc subdir. The targets still exist at the top level, since CMake merges all subdirectory targets into the top-level output Makefile or whatever. check-in: d17453c68b user: etr tags: cmake
First rough cut at calling xsltproc to create the HTML version of the userman from the *.dbx files. Breaks on the *.txt version of the examples, which we aren't building yet. check-in: 43af3d8403 user: etr tags: cmake
Got CMake finding the DocBook XSL tools, and generating a "doc" target that depends on the now-separate "userman" and "refman" targets, depending on which combination of tools we found. The userman target is dummied-up at the moment. I need the checkpoint before I start converting the existing doc/userman/Makefile to CMake form. check-in: 68752d1c1c user: tangent tags: cmake
Got Doxygen working with CMake, with output in the build directory instead of in the source directory. check-in: c73b745143 user: tangent tags: cmake
Building ssqlsxlat tool and libssqls2parse convenience library check-in: adc331c0bb user: tangent tags: cmake
Updated cmake TODO with current status check-in: 6d609aec2a user: tangent tags: cmake
Using FindMySQL.cmake's "find required" feature instead of checking its output explicitly. check-in: f1e091889c user: tangent tags: cmake
Decreased minimum version to 2.6: it's working on CentOS 5, which ships with 2.6.7. check-in: 8b8bb79d54 user: etr tags: cmake
Building all the rest of the examples check-in: b3228cc026 user: tangent tags: cmake
Building tquery1-4 check-in: 0119d57c76 user: tangent tags: cmake
Building examples/ssqls1-6 check-in: 9707cfeb5a user: tangent tags: cmake
Building simple1-3 check-in: 12c74fb4bb user: tangent tags: cmake
Building libltexcomm check-in: 43655b4105 user: tangent tags: cmake
. check-in: 6d0102000c user: tangent tags: cmake
CMake now generating the other *.in outputs copied from, except for, obviously. check-in: c8e2b4edce user: tangent tags: cmake
Fixed some remaining "MYSQLPP" references check-in: 7b317e31f5 user: tangent tags: cmake
Added check for localtime_r() check-in: ac118f7151 user: tangent tags: cmake
cmake generating config.h now, with checks for getopt() header. This is also the first point where the cmake branch is building the complete library and resetdb! check-in: 58af20639d user: tangent tags: cmake
Fixed MySQL CMake module use check-in: 936d098751 user: tangent tags: cmake
Switched from hand-rolled MySQL location checking code to a contributed module found on the net. Still doesn't work, but it's got to be closer than my code. check-in: 4242b34886 user: tangent tags: cmake
Added MySQL header/library checking commands to top-level CMakeLists.txt. The library one isn't working right, but it's at least structurally correct. check-in: 4497ff5367 user: tangent tags: cmake
Added a #include for Ubuntu check-in: 8357ff10e9 user: tangent tags: cmake
Split MySQL-specific parts of old DBDriver class out into a new MySQLDriver class, and made DBDriver an abstract base class. Some methods moved entirely to MySQLDriver, with no way to call them directly through DBDriver, as they're entirely MySQL-specific, and the generic parts of libtabula have no reason to call those functions. (e.g. thread_id()) check-in: b69b4fae85 user: etr tags: trunk
New MySQLDBDriver implementation moved the call to mysql_init() from the ctor to connect(), causing pre-connect option setting to fail for those options like MultiStatementsOption that work by setting bits in the MYSQL.client_flag value. Thus, examples/multiquery failed to run because we were clearing the flag in connect() by calling mysql_init(). Moved the call back to the ctor. Closed-Leaf check-in: 90418a1e48 user: etr tags: MySQLDriver
Refactored the way we handle the return of ResultBase::Impl derivatives from DBDriver::store_result() and use_result() methods. New method is not only cleaner, it avoids a double-delete in the simple3 example. check-in: 61a2e06195 user: etr tags: MySQLDriver
Greatly expanded TODO list, after skimming through libtabula.bkl and, seeing what all the existing build system does. check-in: 790dcf6d29 user: tangent tags: cmake
First partial step toward converting from Bakefile to CMake. The library builds on Makefile based systems, and resetdb builds and links correctly. There's a lot more to do than just get the other examples/*.cpp building, but I need the checkpoint, and it's a reasonable place to start the feature branch. check-in: 489ce6ed9f user: tangent tags: cmake
DBDriver now derives from OptionalExceptions so that Connection can pass its "throw exceptions" flag on to it, which in turn makes it available to DBDriver leaf classes when they create objects that also derive from OptionalExceptions. Before, those objects were created up at the Connection layer from low-level MySQL C API data structures, so it could pass the flag on directly. check-in: 9c6f90b8f1 user: etr tags: MySQLDriver
Similar simplification for Query::store(sta) check-in: 97fae04a31 user: etr tags: MySQLDriver
Query::use(SQLTypeAdapter&) had a bunch of redundant code in it that when removed turned it into a wrapper for use(const char*, size_t). Everything the former used to do is part of the latter already. check-in: 61d3b6e18b user: etr tags: MySQLDriver
Added brew option for getting docbook-xsl check-in: 085f6ffc8d user: etr tags: MySQLDriver
Switched UseQueryResult::pimpl_ from a raw pointer to RefCountedPointer<Impl> check-in: 9f3fb399cc user: etr tags: MySQLDriver
Brought back SQL escaping sans DBMS connection check-in: 2227b386fe user: etr tags: MySQLDriver
DBDriver::fetch_row() wasn't returning an empty row if Connector/C gave an empty row. check-in: 63266e76d3 user: etr tags: MySQLDriver
Fixed handling of pre-connection options check-in: 037b056598 user: etr tags: MySQLDriver
Removed some unneeded includes. (May find that some platforms do need them, but we can put them back as we rediscover their value.) check-in: f52e769245 user: etr tags: MySQLDriver
Quoting fix check-in: 79df3534f5 user: etr tags: MySQLDriver
Fixed last of the link problems! check-in: d012add083 user: etr tags: MySQLDriver
Fixed a similar problem with DBDriver::create_db(). check-in: c07395e727 user: etr tags: MySQLDriver
. check-in: 14af5d4dbe user: etr tags: MySQLDriver
Mystery solved: DBDriver::drop_db() was also declared, now as a virtual function, so the fact that we never slotted anything into that vtable entry is why the linker now cares. check-in: e816c68e9a user: etr tags: MySQLDriver
Removed MySQLDriver::drop_db(). Connection::drop_db() doesn't call it anymore since Connector/C deprecated the API. (It builds and issues a DROP DATABASE query instead.) Not sure why the linker never got around to complaining about it until now, but MySQL++ also declared but never defined this function. Presumably it was defined once, but we replaced its definition and forgot to remove the declaration. check-in: e155f22af9 user: etr tags: MySQLDriver
Added empty ResultBase::Impl::~Impl() definition to avoid link errors. (Can't have pure virtual dtor for some reason.) check-in: 6d5c375ee3 user: etr tags: MySQLDriver
. check-in: dbdfa41e12 user: etr tags: MySQLDriver
Assorted tweaks to library name generation check-in: 3b1d7e91be user: etr tags: MySQLDriver
Ignorig *.txt copies of examples in userman directory check-in: 58c263f976 user: tangent tags: MySQLDriver
Set a Fossil setting that makes it stop complaining about CRLF in *.md and *.txt. check-in: a66151a4f9 user: tangent tags: MySQLDriver
. check-in: d1ff49156e user: tangent tags: MySQLDriver
Ignoring all known generated files, so "fossil extra" is clean. check-in: 497ace8616 user: etr tags: MySQLDriver
First rough cut at extracting MySQLDriver from DBDriver, making latter into a nearly pure abstract base class, and centralizing Connector/C calls in former.

Several MySQL-specific methods no longer appear at the DBDriver level. You have to downcast it to MySQLDriver to access them. In some cases, this means method removals on Connection, Query, etc, where they were just wrapping DBDriver's public interface.

We're trying to replace these removed interfaces with libtabula mechanisms. For example, instead of calling DBDriver::num_fields, call ResultBase::num_fields(). The difference is that the old DBDriver version called straight to Connector/C, whereas the new one just returns ResultBase.fields_.size(). The C API info goes into the creation of the fields_ member, but once done, we don't need to keep asking the C API for this info.

I need the checkpoint despite the fact that the library proper compiles but doesn't link, so I'm checking it in on a feature branch instead of the trunk. I haven't even gotten to the point of getting the examples running under the new interface or running dtest. check-in: 4799dd71a6 user: etr tags: MySQLDriver

Reimplemented Query::escape_string() in terms of SQLStream::escape_string() to avoid duplicate code. check-in: 77f193837a user: etr tags: trunk
Comment fix check-in: dc992ad914 user: etr tags: trunk
Added DBDriver::error_code() idea check-in: c463d5f4e5 user: etr tags: trunk
Designed Connection::connect() URL scheme, to replace the overloads and default parameters which try to be flexible but which actually only work for MySQL. check-in: 4a692441d3 user: etr tags: trunk
Renamed the mysql_query_define?() macros to libtabula_query_define?() since these macros really have nothing to do with MySQL. They probably should have been called mysqlpp_query_define?() up to now, but we just kept the values from the 1.7.9 days. check-in: 1b1b67c910 user: etr tags: trunk
Changed the library so version from 4.0.0 to 3.9.9. We'll move to 4.0.0 on final release. check-in: e60973bf79 user: etr tags: trunk
. check-in: cf38ec9760 user: tangent tags: trunk
Forward-ported Quentin Armitage's DBDriver::operator= patch check-in: 4da5a0a2d9 user: tangent tags: trunk
More tweaks to the Wishlist check-in: 232f0ca151 user: tangent tags: trunk
Pushed some v4.0 items off to v4.1 or later check-in: 304d5d9c68 user: tangent tags: trunk
Converted most of the *.txt files to Markdown so they display nicely when referenced as Fossil "doc URLs". check-in: b73dbc73d2 user: tangent tags: trunk
No longer needed check-in: cf41547d7f user: tangent tags: trunk
Fixed another accidentally wrecked file check-in: d698d8769d user: tangent tags: trunk
Added a file with + in its name to test improvements to Fossil. (This file will go away eventually. README-Visual-Studio.txt may eventually be renamed back to ...-C++.txt.) check-in: c697da5e85 user: tangent tags: trunk
Several config/* files got caught in the previous regex error, too check-in: f70bec06f2 user: tangent tags: trunk
The regex used on the README* files in the previous checkin incorrectly replaced every line with junk, rather than just fix all the "Libtabula"s. check-in: de29f1f853 user: tangent tags: trunk
Decided that "Libtabula" is spelled "libtabula" check-in: 58783e7082 user: tangent tags: trunk
Renamed README-Visual-C++.txt to README-Visual-Studio.txt. + is apparently not allowed in Fossil doc URLs, even when URL-escaped. check-in: 3f19a44773 user: tangent tags: trunk