libtabula

Timeline
Login

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

50 check-ins occurring around 63266e76d370cbfd.

2014-08-23
02:59
Building all the rest of the examples check-in: b3228cc026 user: tangent tags: cmake
02:54
Building tquery1-4 check-in: 0119d57c76 user: tangent tags: cmake
02:52
Building examples/ssqls1-6 check-in: 9707cfeb5a user: tangent tags: cmake
02:50
Building simple1-3 check-in: 12c74fb4bb user: tangent tags: cmake
02:48
Building libltexcomm check-in: 43655b4105 user: tangent tags: cmake
02:44
. check-in: 6d0102000c user: tangent tags: cmake
02:28
CMake now generating the other *.in outputs copied from configure.ac, except for Makefile.in, obviously. check-in: c8e2b4edce user: tangent tags: cmake
02:26
Fixed some remaining "MYSQLPP" references check-in: 7b317e31f5 user: tangent tags: cmake
02:14
Added check for localtime_r() check-in: ac118f7151 user: tangent tags: cmake
01:26
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
2014-08-22
22:28
Fixed MySQL CMake module use check-in: 936d098751 user: tangent tags: cmake
21:21
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
20:15
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
20:15
Added a #include for Ubuntu check-in: 8357ff10e9 user: tangent tags: cmake
2014-08-21
15:38
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
15:34
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
14:16
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
12:12
Greatly expanded TODO list, after skimming through libtabula.bkl and configure.ac, seeing what all the existing build system does. check-in: 790dcf6d29 user: tangent tags: cmake
11:04
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
2014-08-19
20:06
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
19:28
Similar simplification for Query::store(sta) check-in: 97fae04a31 user: etr tags: MySQLDriver
19:02
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
2014-07-11
20:19
Added brew option for getting docbook-xsl check-in: 085f6ffc8d user: etr tags: MySQLDriver
2014-06-06
20:51
Switched UseQueryResult::pimpl_ from a raw pointer to RefCountedPointer<Impl> check-in: 9f3fb399cc user: etr tags: MySQLDriver
19:34
Brought back SQL escaping sans DBMS connection check-in: 2227b386fe user: etr tags: MySQLDriver
18:17
DBDriver::fetch_row() wasn't returning an empty row if Connector/C gave an empty row. check-in: 63266e76d3 user: etr tags: MySQLDriver
16:16
Fixed handling of pre-connection options check-in: 037b056598 user: etr tags: MySQLDriver
16:16
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
16:15
Quoting fix check-in: 79df3534f5 user: etr tags: MySQLDriver
15:27
Fixed last of the link problems! check-in: d012add083 user: etr tags: MySQLDriver
15:22
Fixed a similar problem with DBDriver::create_db(). check-in: c07395e727 user: etr tags: MySQLDriver
15:21
. check-in: 14af5d4dbe user: etr tags: MySQLDriver
15:21
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
15:20
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
15:18
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
15:11
. check-in: dbdfa41e12 user: etr tags: MySQLDriver
15:08
Assorted tweaks to library name generation check-in: 3b1d7e91be user: etr tags: MySQLDriver
13:02
Ignorig *.txt copies of examples in userman directory check-in: 58c263f976 user: tangent tags: MySQLDriver
13:01
Set a Fossil setting that makes it stop complaining about CRLF in *.md and *.txt. check-in: a66151a4f9 user: tangent tags: MySQLDriver
12:44
. check-in: d1ff49156e user: tangent tags: MySQLDriver
2014-06-05
20:00
Ignoring all known generated files, so "fossil extra" is clean. check-in: 497ace8616 user: etr tags: MySQLDriver
18:04
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

2014-06-04
09:13
Reimplemented Query::escape_string() in terms of SQLStream::escape_string() to avoid duplicate code. check-in: 77f193837a user: etr tags: trunk
2014-06-03
20:03
Comment fix check-in: dc992ad914 user: etr tags: trunk
2014-06-02
23:17
Added DBDriver::error_code() idea check-in: c463d5f4e5 user: etr tags: trunk
23:00
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
22:12
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
21:32
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
04:06
. check-in: cf38ec9760 user: tangent tags: trunk
2014-06-01
10:05
Forward-ported Quentin Armitage's DBDriver::operator= patch check-in: 4da5a0a2d9 user: tangent tags: trunk