libtabula

Timeline
Login

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

47 check-ins related to "mysql-type-info"

2015-08-14
06:08
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
06:05
Merged the contents of a FIXME comment into the relevant Wishlist item. Closed-Leaf check-in: 06939e737d user: tangent tags: mysql-type-info
06:01
Comment fix check-in: 69c9023a1a user: tangent tags: mysql-type-info
06:00
Removed an unnneded method check-in: 102fa4f726 user: tangent tags: mysql-type-info
05:57
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
05:54
Removed an unneded ctor in the new MySQLFieldTypes class. check-in: 200397c3a7 user: tangent tags: mysql-type-info
05:52
Comment change check-in: 135cd93ba4 user: tangent tags: mysql-type-info
05:40
Merged trunk changes check-in: 5f36ef6682 user: tangent tags: mysql-type-info
05:39
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
03:55
Merged trunk changes in check-in: f2cdede2a0 user: tangent tags: mysql-type-info
03:55
Dropped the versioned crnl-glob Fossil setting. All *.md and *.txt are now LF-only. check-in: c37cba89a5 user: tangent tags: trunk
03:43
Fixed an operator precedence complaint in the new field type matching code noticed by Clang. check-in: f8610afda3 user: tangent tags: mysql-type-info
2015-08-13
21:52
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

2015-08-12
21:55
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
21:53
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
21:46
Merged Wishlist.md change in check-in: a6baa231d9 user: etr tags: mysql-type-info
21:45
Noted that Field and Row are still intimately tied into the MySQL C API. check-in: dc744e7800 user: etr tags: trunk
02:19
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
2015-08-11
11:40
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

03:32
Merged exrun OS X fixes in check-in: fb36fd8453 user: tangent tags: mysql-type-info
03:30
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
2015-08-10
23:38
Merged trunk changes in check-in: 7d3a624647 user: etr tags: mysql-type-info
23:34
Moved the "tags" target to the top level. It's no use down in src. check-in: 0c16a98c03 user: etr tags: trunk
21:54
Comment tweak check-in: 41713dfd16 user: etr tags: mysql-type-info
21:49
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
21:37
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
20:38
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

20:34
Simplified examples' CMake build info the same as we just did for the test tree. check-in: 83e27bb0ba user: etr tags: mysql-type-info
17:42
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
17:41
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
2015-08-08
07:30
Fixed some more mysql_type_info stuff check-in: 4d92d34d84 user: tangent tags: mysql-type-info
07:26
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
06:35
Added missing field_type.cpp check-in: d2ae8f5377 user: etr tags: mysql-type-info
2015-08-07
00:49
Proper fix for MYSQL_TYPE_*2 types check-in: 56e2ec90a9 user: tangent tags: mysql-type-info
2015-08-06
23:17
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
23:09
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
07:19
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

2015-07-23
12:31
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
2014-10-14
19:55
Another round of compiler error fixes resulting from the "type info" refactoring check-in: cec92a5d87 user: etr tags: mysql-type-info
2014-09-23
22:17
A few small fixes to previous check-in: 1e129d5f84 user: tangent tags: mysql-type-info
22:07
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
2014-09-22
23:20
More assorted compilation error fixes for the rough swipe check-in: 4a572ebdb4 user: etr tags: mysql-type-info
22:37
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
2014-09-18
20:05
Assorted fixes to the first rough swipe check-in: 9a665b7b33 user: etr tags: mysql-type-info
20:05
Accidentally left this out of the prvious checkin check-in: 9c9916294c user: etr tags: mysql-type-info
17:47
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
10:42
. check-in: 89faabec8b user: tangent tags: trunk