MySQL++

Changes On Branch reapply-conn-opts-on-clone
Login

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

Changes In Branch reapply-conn-opts-on-clone Excluding Merge-Ins

This is equivalent to a diff from 08496d4b48 to de38699272

2018-07-18
21:01
DBDriver::shutdown() now executes a SHUTDOWN query on MySQL 8.0.0 and higher due to removal of the C API function mysql_shutdown() in that release. They put it back in 8.0.1, but only due to end-user complaints, and they say it'll go away for good eventually, so we prefer to deploy and test this workaround before then. check-in: b238cd34c2 user: tangent tags: trunk
2018-07-12
21:21
Experimental fix for [eab08a87ed]: copy the list of successfully applied connection options when cloning a Connection and its underlying DBDriver so that the copy gets the same options. We currently only do this when the other connection was up at the time of cloning, but we might be swayed to change this behavior. Leaf check-in: de38699272 user: tangent tags: reapply-conn-opts-on-clone
20:05
Conditionally using std::unique_ptr instead of auto_ptr on C++11 and newer versions of g++ and clang++ to avoid the warning about using a deprecated feature. Closes [97f62ef016]. check-in: 08496d4b48 user: tangent tags: trunk
19:49
Created the MAY_THROW() macro which allows conditional throwspecs: old-style for ABI compatibility on C++14 and older versions of g++ and clang++, and new-style on C++17 and newer versions of those compilers. We'll have to expand the ifdef logic on the definition of this macro for other compilers eventually, as we learn of ones that refuse to accept throwspecs. Closes [8395aa91d1]. check-in: 799b4851e5 user: tangent tags: trunk

Changes to lib/dbdriver.cpp.

127
128
129
130
131
132
133



134






135
136
137
138
139
140
141
void
DBDriver::copy(const DBDriver& other)
{
	if (connected()) {
		disconnect();
	}




	if (other.connected()) {






		connect(other.mysql_);
	}
}


void
DBDriver::disconnect()







>
>
>

>
>
>
>
>
>







127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
void
DBDriver::copy(const DBDriver& other)
{
	if (connected()) {
		disconnect();
	}

	applied_options_.clear();
	pending_options_.clear();

	if (other.connected()) {
		pending_options_.resize(other.applied_options_.size());
		for (OptionList::const_iterator it = other.applied_options_.begin();
				it != other.applied_options_.end(); ++it) {
			pending_options_.push_back(*it);
		}

		connect(other.mysql_);
	}
}


void
DBDriver::disconnect()