libtabula

Timeline
Login

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

27 check-ins related to "MySQLDriver"

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