Merge lp:drizzle/mordred into lp:~drizzle-trunk/drizzle/development

Proposed by Monty Taylor
Status: Superseded
Proposed branch: lp:drizzle/mordred
Merge into: lp:~drizzle-trunk/drizzle/development
Diff against target: None lines
To merge this branch: bzr merge lp:drizzle/mordred
Reviewer Review Type Date Requested Status
Jay Pipes Pending
Review via email: mp+11460@code.launchpad.net

This proposal supersedes a proposal from 2009-09-09.

This proposal has been superseded by a proposal from 2009-09-09.

To post a comment you must log in.
Revision history for this message
Monty Taylor (mordred) wrote : Posted in a previous version of this proposal

All of the stuff we got done while folks were on vacations. Mainly:

Header file cleanups.
plugin-slot-reorg almost finished.
Some cast warning fixes.
A Solaris build fix.

Revision history for this message
Jay Pipes (jaypipes) wrote : Posted in a previous version of this proposal

Please merge trunk and resolve conflicts :)

Thanks!

Jay

review: Needs Fixing
Revision history for this message
Stewart Smith (stewart) wrote :

On Wed, Sep 09, 2009 at 06:15:44PM -0000, Monty Taylor wrote:
> Monty Taylor has proposed merging lp:drizzle/mordred into lp:drizzle.
>
> Requested reviews:
> Jay Pipes (jaypipes)
> --
> https://code.launchpad.net/~mordred/drizzle/devel/+merge/11460
> You are subscribed to branch lp:drizzle.

> === modified file '.bzrignore'
> --- .bzrignore 2009-07-29 17:45:51 +0000
> +++ .bzrignore 2009-09-09 00:38:19 +0000
> @@ -274,3 +274,5 @@
> po/POTFILES.in
> drizzled/message/command_reader
> TAGS
> +*replication.pb.*

I don't think this should be such a blanket wildcard, should instead be
specific paths.

> --- client/drizzle.cc 2009-07-20 18:10:47 +0000
> +++ client/drizzle.cc 2009-09-09 00:38:19 +0000
> @@ -34,17 +34,13 @@
> #if defined(HAVE_CURSES_H) && defined(HAVE_TERM_H)
> -#include <curses.h>
> +# include <curses.h>

Oh my, I get to be the style nazi :)

no space before 'include' after # :)

--
Stewart Smith

Revision history for this message
Monty Taylor (mordred) wrote :

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Stewart Smith wrote:
> On Wed, Sep 09, 2009 at 06:15:44PM -0000, Monty Taylor wrote:
>> Monty Taylor has proposed merging lp:drizzle/mordred into lp:drizzle.
>>
>> Requested reviews:
>> Jay Pipes (jaypipes)
>> --
>> https://code.launchpad.net/~mordred/drizzle/devel/+merge/11460
>> You are subscribed to branch lp:drizzle.
>
>> === modified file '.bzrignore'
>> --- .bzrignore 2009-07-29 17:45:51 +0000
>> +++ .bzrignore 2009-09-09 00:38:19 +0000
>> @@ -274,3 +274,5 @@
>> po/POTFILES.in
>> drizzled/message/command_reader
>> TAGS
>> +*replication.pb.*
>
> I don't think this should be such a blanket wildcard, should instead be
> specific paths.

Agree.

>> --- client/drizzle.cc 2009-07-20 18:10:47 +0000
>> +++ client/drizzle.cc 2009-09-09 00:38:19 +0000
>> @@ -34,17 +34,13 @@
>> #if defined(HAVE_CURSES_H) && defined(HAVE_TERM_H)
>> -#include <curses.h>
>> +# include <curses.h>
>
> Oh my, I get to be the style nazi :)
>
> no space before 'include' after # :)
>

Hrm. I thought we'd decided to do pre-processor indentation like:

#ifdef foo
# include <bar>
#else
# ifdef blah
# #include <sys/types.h>
# endif
#endif

Did we not?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkqqfZ4ACgkQ2Jv7/VK1RgEnOACdFU4LI0oNQMctd/rnjWbD3Y1m
+p0AoKHfc2vYxMzKRrszEdZMxyV7PfJY
=eOoN
-----END PGP SIGNATURE-----

Revision history for this message
Jay Pipes (jaypipes) wrote :

Monty Taylor wrote:
> Stewart Smith wrote:
>> On Wed, Sep 09, 2009 at 06:15:44PM -0000, Monty Taylor wrote:
>>> --- client/drizzle.cc 2009-07-20 18:10:47 +0000
>>> +++ client/drizzle.cc 2009-09-09 00:38:19 +0000
>>> @@ -34,17 +34,13 @@
>>> #if defined(HAVE_CURSES_H) && defined(HAVE_TERM_H)
>>> -#include <curses.h>
>>> +# include <curses.h>
>> Oh my, I get to be the style nazi :)
>>
>> no space before 'include' after # :)
>>
>
> Hrm. I thought we'd decided to do pre-processor indentation like:
>
> #ifdef foo
> # include <bar>
> #else
> # ifdef blah
> # #include <sys/types.h>
> # endif
> #endif
>
> Did we not?

We did. That said, you only changed one line of that block and left the
rest of the block with no indentation ;P

-jay

lp:drizzle/mordred updated
1127. By Brian Aker <brian@gaz>

Merge Jay

1128. By Brian Aker <brian@gaz>

Merge Jay Alter table + Brian dead code

1129. By Brian Aker <brian@gaz>

Merge Jay

1130. By Brian Aker <brian@gaz>

Merge Jay

1131. By Brian Aker <brian@gaz>

Merge Eric

1132. By Brian Aker <brian@gaz>

Merge Jay (build only related)

1133. By Brian Aker <brian@gaz>

Merge of Jay

1134. By Brian Aker <brian@gaz>

Old message removal by Eric (no actual code has been harmed in the production of
this patch...)

1135. By Brian Aker <brian@gaz>

Merge of Lex -> Statement refactoring

1136. By Brian Aker <brian@gaz>

Merge for bug fixes.

1137. By Brian Aker <brian@gaz>

Merge Lee

1138. By Brian Aker <brian@gaz>

Merge of Joe Daly's work

1139. By Brian Aker <brian@gaz>

Merge Padraig

1140. By Brian Aker <brian@gaz>

Merge Monty (fix for distcheck)

1141. By Brian Aker <brian@gaz>

Merge language bits from Monty.

1142. By Brian Aker <brian@gaz>

Merge bug fix from Medina

1143. By Brian Aker <brian@gaz>

Merge Diego.

1144. By Brian Aker <brian@gaz>

Merge Monty

1145. By Brian Aker <brian@gaz>

Merge Stewart

1146. By Brian Aker <brian@gaz>

Merge Jay

1147. By Brian Aker <brian@gaz>

Update to po files.

1148. By Brian Aker <brian@gaz>

Update from Jay.

1149. By Brian Aker <brian@gaz>

Bug fix Diego

1150. By Brian Aker <brian@gaz>

Merge Eric

1151. By Brian Aker <brian@gaz>

Merge Stewart.

1152. By Brian Aker <brian@gaz>

Merge Stewarts cleanup for proto on tinyint

1153. By Brian Aker <brian@gaz>

Fix for memory leak (go Stewart!)

1154. By Brian Aker <brian@gaz>

Merging Monty

1155. By Brian Aker <brian@gaz>

Merge Monty + Brian for plugins.

1156. By Brian Aker <brian@gaz>

  Brian Aker 2009-10-02 [merge] Patrick + leak fix +test fix by Brian

1157. By Brian Aker <brian@gaz>

Fix for OS-X

1158. By Brian Aker <brian@gaz>

Merge of Padraig

1159. By Brian Aker <brian@gaz>

Merge Monty

1160. By Brian Aker <brian@gaz>

Merge Stewart.

1161. By Brian Aker <brian@gaz>

NULL commit

1162. By Brian Aker <brian@gaz>

Merge Stewart

1163. By Brian Aker <brian@gaz>

Merge Stewart.

1164. By Brian Aker <brian@gaz>

Small cleanup.

1165. By Brian Aker <brian@gaz>

SE cleanup interface.

1166. By Brian Aker <brian@gaz>

Merge Jay

1167. By Brian Aker <brian@gaz>

Merging Padraig

1168. By Brian Aker <brian@gaz>

Merge Monty

1169. By Brian Aker <brian@gaz>

Merge Eric

1170. By Brian Aker <brian@gaz>

Merge Stewart.

1171. By Brian Aker <brian@gaz>

Merge Padraig

1172. By Brian Aker <brian@gaz>

Update to delete table to centralize the replication logic.

1173. By Brian Aker <brian@gaz>

Merge Monty

1174. By Brian Aker <brian@gaz>

Merge monty

1175. By Brian Aker <brian@gaz>

Single line fix for 32bit open solaris

1176. By Brian Aker <brian@gaz>

Merge 32bit failures

1177. By Brian Aker <brian@gaz>

Collection of merges from me.

1178. By Brian Aker <brian@gaz>

Merge Diego

1179. By Brian Aker <brian@gaz>

Merge Stewart

1180. By Brian Aker <brian@gaz>

Merge Diego Medina

1181. By Brian Aker <brian@gaz>

Merge Monty, default class.

1182. By Brian Aker <brian@gaz>

Minor Merge

1183. By Brian Aker <brian@gaz>

Merge Monty

1184. By Brian Aker <brian@gaz>

Merge memory

1185. By Brian Aker <brian@gaz>

Merge Engine changes.

1186. By Brian Aker <brian@gaz>

Merge of Monty

1187. By Brian Aker <brian@gaz>

Merge Jay

1188. By Brian Aker <brian@gaz>

Merge Stewart

1189. By Brian Aker <brian@gaz>

Adding in memcached_functions

1190. By Brian Aker <brian@gaz>

Merge Jay.

1191. By Brian Aker <brian@gaz>

Adding test cases that came from SergP.

1192. By Brian Aker <brian@gaz>

Merge Stewart's dead code removal

1193. By Brian Aker <brian@gaz>

Merge Jay

1194. By Brian Aker <brian@gaz>

Removed test for ARCH (it only looked at Intel style systems). Left in SELECT for it.

1195. By Brian Aker <brian@gaz>

Merge Diego

1196. By Brian Aker <brian@gaz>

Small fixes

1197. By Brian Aker <brian@gaz>

Remove test for 32bit max on heap tables.

Yeah... set the HEAP table to max on a 32bit machine and watch the Piñata
go. The value shouldn't be max, but should be some number less then MAX...
aka don't let the user blow up.

1198. By Brian Aker <brian@gaz>

Merge Brian

1199. By Brian Aker <brian@gaz>

Fix comment.

1200. By Brian Aker <brian@gaz>

Clean up some mispellings

1201. By Brian Aker <brian@gaz>

Merge Monty

1202. By Brian Aker <brian@gaz>

Merge Eric

1203. By Brian Aker <brian@gaz>

Merge Monty

1204. By Brian Aker <brian@gaz>

Merge Jay.

1205. By Brian Aker <brian@gaz>

Remove dead function.

1206. By Brian Aker <brian@gaz>

Merging Jay.

1207. By Brian Aker <brian@gaz>

Merge of Padraig && Brian

1208. By Brian Aker <brian@gaz>

Merge Jay

1209. By Brian Aker <brian@gaz>

Merge Monty

1210. By Brian Aker <brian@gaz>

Merge new Truncate

1211. By Brian Aker <brian@gaz>

Reverses old patch which introduced memory leaks. Also found a solution
(worked on Fedora11) to get rid of dlerror() memory leak.

1212. By Brian Aker <brian@gaz>

Rollup of Brian, Padraig, and Stewart patches.

1213. By Brian Aker <brian@gaz>

Fixes startup failures when temporary tables were left behind in a crash.

1214. By Brian Aker <brian@gaz>

Fixes leaked memory during a fail proto read.

1215. By Brian Aker <brian@gaz>

Jay's replication patches

1216. By Brian Aker <brian@gaz>

Fix for ENUM tests (commented out non-utf-8 tests).

1217. By Brian Aker <email address hidden>

Removed bits of charset support from the parser.

1218. By Brian Aker <brian@gaz>

Merge Eric

1219. By Brian Aker <brian@gaz>

Merge Stewart (test re-enable)

1220. By Brian Aker <brian@gaz>

Remove open mode/dead bits around dead temp type.

1221. By Brian Aker <brian@gaz>

Monty + Brian Merge.

1222. By Brian Aker <brian@gaz>

Merge Brian + Stewart

1223. By Brian Aker <brian@gaz>

Merge of Padraig

1224. By Brian Aker <brian@gaz>

Collected Merge.

1225. By Brian Aker <brian@gaz>

Merge for staging.

1226. By Brian Aker <brian@gaz>

Merge Monty

1227. By Brian Aker <brian@gaz>

Bundle Brian + Monty (been through staging, just collecting it as want
overall patch as seen by staging).

1228. By Brian Aker <brian@gaz>

Mege of TableIdentifier gran patch

1229. By Brian Aker <brian@gaz>

Merge Jay

1230. By Brian Aker <brian@gaz>

Fix from Trond.

1231. By Brian Aker <brian@gaz>

Open Table list fix from Monty.

1232. By Brian Aker <brian@gaz>

Whitespace fix.

1233. By Brian Aker <brian@gaz>

Small Innodb fix

1234. By Brian Aker <brian@gaz>

Merge Padraig

1235. By Brian Aker <brian@gaz>

Merge of Brian + Jay test fixes.

1236. By Brian Aker <brian@gaz>

Merge Brian + Monty. This has the HEAP -> MEMORY change in it, so some
breakage for wrong table name is expected.

1237. By Brian Aker <brian@gaz>

Merge current set for staging.

1238. By Brian Aker <brian@gaz>

Merge for staging.

1239. By Brian Aker <brian@gaz>

Bundle for staging.

1240. By Brian Aker <brian@gaz>

Merge Monty

1241. By Brian Aker <brian@gaz>

Merge build

1242. By Brian Aker <brian@gaz>

A few fixes.

1243. By Brian Aker <brian@gaz>

Merge of Padraig/Monty/Trond

1244. By Brian Aker <brian@gaz>

Fixed from Monty.

1245. By Brian Aker <brian@gaz>

Merge Jay

1246. By Brian Aker <brian@gaz>

MErge Padraig

1247. By Brian Aker <brian@gaz>

Merge from Padraig

1248. By Brian Aker <brian@gaz>

Merge from Dennis Schoen

1249. By Brian Aker <brian@gaz>

Merge Valgrind.

1250. By Brian Aker <brian@gaz>

Merge Monty

1251. By Brian Aker <brian@gaz>

Merging in massif option to test-run.pl

1252. By Brian Aker <brian@gaz>

Merge Jay

1253. By Brian Aker <brian@gaz>

Merge Monty

1254. By Brian Aker <brian@gaz>

Merge

1255. By Brian Aker <brian@gaz>

Merge Monty

1256. By Brian Aker <brian@gaz>

Null commit

1257. By Brian Aker <brian@gaz>

Merge of Diego fix.

1258. By Brian Aker <brian@gaz>

Merge Monty

1259. By Brian Aker <brian@gaz>

Merge Monty.

1260. By Brian Aker <brian@gaz>

Merge Monty.

1261. By Brian Aker <brian@gaz>

Merge Monty.

1262. By Brian Aker <brian@gaz>

Merge Monty

1263. By Brian Aker <brian@gaz>

Merge Monty

1264. By Brian Aker <brian@gaz>

Added merge-clean rule that I use :)

1265. By Brian Aker <brian@gaz>

Updated Makefile.am to push client rules to include.am

1266. By Brian Aker <brian@gaz>

Merge Stewart.

1267. By Brian Aker <brian@gaz>

Merge Joe

1268. By Brian Aker <brian@gaz>

Merge Monty

1269. By Brian Aker <brian@gaz>

Merge Joe Daly

1270. By Brian Aker <brian@gaz>

Merge Jay

1271. By Brian Aker <brian@gaz>

Merge Eric

1272. By Brian Aker <brian@gaz>

Merge Monty

1273. By Brian Aker <brian@gaz>

Revert db patch.

1274. By Brian Aker <brian@gaz>

Remove dead code.

1275. By Brian Aker <brian@gaz>

Merge rot13()

1276. By Brian Aker <brian@gaz>

Merge Padraig

1277. By Brian Aker <brian@gaz>

Merged Lee, enabled jp tests by default.

1278. By Brian Aker <brian@gaz>

Merge Jay

1279. By Brian Aker <brian@gaz>

Remove show engine status, and show open tables (which no longer applies in
our design).

1280. By Brian Aker <brian@gaz>

Fix for bad build.

1281. By Brian Aker <brian@gaz>

Rollup of Brian, Jay

1282. By Brian Aker <brian@gaz>

Merge Lee

1283. By Brian Aker <brian@gaz>

Merge Monty

1284. By Brian Aker <brian@gaz>

Merge Monty

1285. By Brian Aker <brian@gaz>

Remove giant include header to its own file.

1286. By Brian Aker <brian@gaz>

Merge Monty.

1287. By Brian Aker <brian@gaz>

Merge Stewart.

1288. By Brian Aker <brian@gaz>

Adding support for RPM/merge Brian

1289. By Brian Aker <brian@gaz>

Merge of Brian/Padraig

1290. By Brian Aker <brian@gaz>

Merge bug fix.

1291. By Brian Aker <brian@gaz>

Merge Stewart.

1292. By Brian Aker <brian@gaz>

Merge in security refactor.

1293. By Brian Aker <brian@gaz>

Merge in Tim's error work.

1294. By Brian Aker <brian@gaz>

Merge Padraig

1295. By Brian Aker <brian@gaz>

Disabling support for memcached plugins until we can test for version of
memcached.

1296. By Brian Aker <brian@gaz>

Remove WEIGHT_STRING() from parser (where it does not belong). If someone
wants to they can reimplement this as a straight function.

1297. By Brian Aker <brian@gaz>

Fix style issue.

1298. By Brian Aker <brian@gaz>

Monty update for Pandora

1299. By Brian Aker <brian@gaz>

Merge.

1300. By Brian Aker <brian@gaz>

Merge in data_dictionary.

1301. By Brian Aker <brian@gaz>

Merge of Brian stuff

1302. By Brian Aker <brian@gaz>

Merge of dead yacc bits.

1303. By Brian Aker <brian@gaz>

Many updates. Brian, Monty.

1304. By Brian Aker <brian@gaz>

Giant merge! Of everything for DD currently.

1305. By Brian Aker <brian@gaz>

Merge.

1306. By Brian Aker <brian@gaz>

Merge JDaly, Lint fixes by brian.

1307. By Brian Aker <brian@gaz>

Merge Padraig.

1308. By Brian Aker <brian@gaz>

Merge of stewart.

1309. By Brian Aker <brian@gaz>

Merge of all patches in build.

1310. By Brian Aker <brian@gaz>

Merge Jay

1311. By Brian Aker <brian@gaz>

Merge Monty

1312. By Brian Aker <brian@gaz>

Merge of Brian

1313. By Brian Aker <brian@gaz>

Merge Brian

1314. By Brian Aker <brian@gaz>

Merge Padraig.

1315. By Brian Aker <brian@gaz>

MErge Strewart.

1316. By Brian Aker <brian@gaz>

Merge up build to staging.

1317. By Brian Aker <brian@gaz>

Merge.

1318. By Brian Aker <brian@gaz>

Merge Stewart.

1319. By Brian Aker <brian@gaz>

Merge.

1320. By Brian Aker <brian@gaz>

MErge.

1321. By Brian Aker <brian@gaz>

Merge.

1322. By Brian Aker <brian@gaz>

Merge Monty/Brian

1323. By Brian Aker <brian@gaz>

Merge Jay's bugfix.

1324. By Brian Aker <brian@gaz>

Merge Jay.

1325. By Brian Aker <brian@gaz>

Merge of Jay

1326. By Brian Aker <brian@gaz>

Merge Jay

1327. By Brian Aker <brian@gaz>

Open solaris fix.

1328. By Brian Aker <brian@gaz>

Bad config.h

1329. By Brian Aker <brian@gaz>

Merge Eric

1330. By Brian Aker <brian@gaz>

Merge in show status work.

1331. By Brian Aker <brian@gaz>

Merge in Padraig changes.

1332. By Brian Aker <brian@gaz>

Merge Monty

1333. By Brian Aker <brian@gaz>

Fix naming issue.

1334. By Brian Aker <brian@gaz>

Merge Lee.

1335. By Brian Aker <brian@gaz>

Merge Jay

1336. By Brian Aker <brian@gaz>

Merge Jay

1337. By Brian Aker <brian@gaz>

Mege Monty

1338. By Brian Aker <brian@gaz>

Merge in Jay's bug fix.

1339. By Brian Aker <brian@gaz>

Jay + extended test case.

1340. By Brian Aker <brian@gaz>

Merge small removal of variables.

1341. By Brian Aker <brian@gaz>

See if these are now cleaned up.

1342. By Brian Aker <brian@gaz>

Merge Brian

1343. By Brian Aker <brian@gaz>

Additional DD.

1344. By Brian Aker <brian@gaz>

Merge Brian

1345. By Brian Aker <brian@gaz>

Corrections.

1346. By Brian Aker <brian@gaz>

Solve non-null termination issue.

1347. By Brian Aker <brian@gaz>

Update/fix for leak.

1348. By Brian Aker <brian@gaz>

Merge Monty (really Tim)

1349. By Brian Aker <brian@gaz>

Merge Padraig

1350. By Brian Aker <brian@gaz>

Merge Brian

1351. By Brian Aker <brian@gaz>

Style changes.

1352. By Brian Aker <brian@gaz>

I'm not entire sure I buy that column default should be varbinary...

1353. By Brian Aker <brian@gaz>

Merge Stewart, but I dropped the plugin for now.

1354. By Brian Aker <brian@gaz>

Merge in I_S tables.

1355. By Brian Aker <brian@gaz>

Make check catch

1356. By Brian Aker <brian@gaz>

Merge for Brian

1357. By Brian Aker <brian@gaz>

Merge Eric.

1358. By Brian Aker <brian@gaz>

Merge Eric.

1359. By Brian Aker <brian@gaz>

Merge Pandora

1360. By Brian Aker <brian@gaz>

Merge Brian

1361. By Brian Aker <brian@gaz>

Merge more cleanup from TableIdentifier.

1362. By Brian Aker <brian@gaz>

Merge Brian

1363. By Brian Aker <brian@gaz>

Merge Brian

1364. By Brian Aker <brian@gaz>

Go at this again.

1365. By Brian Aker <brian@gaz>

Merge Stefan

1366. By Brian Aker <brian@gaz>

Merge Stewart.

1367. By Brian Aker <brian@gaz>

Merge

1368. By Brian Aker <brian@gaz>

Fix build issues, disabled tests (someone needs to go through them... who is
not me).

1369. By Brian Aker <brian@gaz>

Small interface bits.

1370. By Brian Aker <brian@gaz>

Remove dead call.

1371. By Brian Aker <brian@gaz>

Small corrections.

1372. By Brian Aker <brian@gaz>

Save on an identifier creation.

1373. By Brian Aker <brian@gaz>

Simple style cleanup.

1374. By Brian Aker <brian@gaz>

Solaris fix.

1375. By Brian Aker <brian@gaz>

Merge Brian.

1376. By Brian Aker <brian@gaz>

Fix for goto that could be removed.

1377. By Brian Aker <brian@gaz>

Merge DED

1378. By Brian Aker <brian@gaz>

Fix for a path vs fullname connection.

1379. By Brian Aker <brian@gaz>

Merge docs.

1380. By Brian Aker <brian@gaz>

Merge to Trunk.

1381. By Brian Aker <brian@gaz>

Merge Monty.

1382. By Brian Aker <brian@gaz>

We were printing out info on charset (which we don't need to do... and don't
technically have the data for).

1383. By Brian Aker <brian@gaz>

Change Set to Enum

1384. By Brian Aker <brian@gaz>

Merge

1385. By Brian Aker <brian@gaz>

Merge bug fix.

1386. By Brian Aker <brian@gaz>

Adding catalog string.

1387. By Brian Aker <brian@gaz>

Fix for cases where not all files are removed during a deletion of a schema.
I've added a dump of the directory if this happens (I want to see this in
the valgrind reports on lp).

1388. By Brian Aker <brian@gaz>

The temporary engine can handle its own for dictionary calls.

1389. By Brian Aker <brian@gaz>

Large reord in ALTER TABLE for RENAME.

1390. By Brian Aker <brian@gaz>

Update interface to use Identifiers directly.

1391. By Brian Aker <brian@gaz>

Updating interface.

1392. By Brian Aker <brian@gaz>

new code for show tables.

1393. By Brian Aker <brian@gaz>

Merge Monty

1394. By Brian Aker <brian@gaz>

Merge Monty

1395. By Brian Aker <brian@gaz>

Merge.

1396. By Brian Aker <brian@gaz>

Simple rename.

1397. By Brian Aker <brian@gaz>

Merge Monty

1398. By Brian Aker <brian@gaz>

Merge monty

1399. By Brian Aker <brian@gaz>

Merge Monty

1400. By Brian Aker <brian@gaz>

Merge.

1401. By Brian Aker <brian@gaz>

Merge of ALTER TABLE code.

1402. By Brian Aker <brian@gaz>

Re-enabling blackhole.

1403. By Brian Aker <brian@gaz>

Merge Eric

1404. By Brian Aker <brian@gaz>

Merge.

1405. By Brian Aker <brian@gaz>

Merge stewart.

1406. By Brian Aker <email address hidden>

Merge Andrew

1407. By Brian Aker <email address hidden>

Merge Siddharth, ran formatting across it.

Someone really should take these programs apart and clean them up.

1408. By Brian Aker <email address hidden>

Merge Monty

1409. By Brian Aker <email address hidden>

MErge Eric.

1410. By Brian Aker <email address hidden>

Correct output, preserve indention.

1411. By Brian Aker <brian@gaz>

Merge (fixes known issues in ALTER TABLE not resetting correctly DFE).

1412. By Brian Aker <brian@gaz>

Innodb is now in the house (aka... it handls its own DFE).

1413. By Brian Aker <brian@gaz>

doCreateTable() was still taking a pointer instead of a session reference.

1414. By Brian Aker <brian@gaz>

Remove dead type.

1415. By Brian Aker <brian@gaz>

Mass overhaul to use schema_identifier.

1416. By Brian Aker <brian@gaz>

Merge Lee.

1417. By Brian Aker <brian@gaz>

Interface for Stewart.

1418. By Brian Aker <brian@gaz>

Merge Monty's fix.

1419. By Brian Aker <brian@gaz>

Merge.

1420. By Brian Aker <brian@gaz>

Updated to use show schemas specific table.

1421. By Brian Aker <brian@gaz>

Removed dead function.

1422. By Brian Aker <brian@gaz>

Merge from Monty.

1423. By Brian Aker <brian@gaz>

Merge linuxjedi

1424. By Brian Aker <brian@gaz>

Merge Stewart.

1425. By Brian Aker <brian@gaz>

Merge Siddharth

1426. By Brian Aker <brian@gaz>

Merge jobin

1427. By Brian Aker <brian@gaz>

Merge Monty

1428. By Brian Aker <brian@gaz>

Merge.

1429. By Brian Aker <brian@gaz>

Merge

1430. By Brian Aker <brian@gaz>

Merge Zimin

1431. By Brian Aker <brian@gaz>

Merge Stewart.

1432. By Brian Aker <brian@gaz>

Merge Siddharth

1433. By Brian Aker <brian@gaz>

Merge.

1434. By Brian Aker <brian@gaz>

Rework to move show commands merge/etc.

1435. By Brian Aker <brian@gaz>

Merge Monty fix.

1436. By Brian Aker <brian@gaz>

Move toward not having to call current_session (first pass).

1437. By Brian Aker <brian@gaz>

Merge.

1438. By Brian Aker <brian@gaz>

Merge

1439. By Brian Aker <brian@gaz>

Fix for bad header.

1440. By Brian Aker <brian@gaz>

Merge.

1441. By Brian Aker <brian@gaz>

Fixing tests to work with PBXT.

1442. By Brian Aker <brian@gaz>

Merge Jay

1443. By Brian Aker <brian@gaz>

Merge Jay

1444. By Brian Aker <brian@gaz>

Merge Stewart.

1445. By Brian Aker <brian@gaz>

Update for most recent version of libmemcached

1446. By Brian Aker <brian@gaz>

Merge Jay

1447. By Brian Aker <brian@gaz>

Test fix

1448. By Brian Aker <brian@gaz>

Fix for bug on show tables.:w
:x

1449. By Brian Aker <brian@gaz>

Merge Stewart

1450. By Brian Aker <brian@gaz>

Merge Jay

1451. By Brian Aker <brian@gaz>

Merge Eric

1452. By Brian Aker <brian@gaz>

Remove dead code Merge from Tim.

1453. By Brian Aker <brian@gaz>

Merge Joe

1454. By Brian Aker <brian@gaz>

Merge Monty

1455. By Brian Aker <brian@gaz>

Null merge

1456. By Brian Aker <brian@gaz>

Merge in remove checksum code.

1457. By Brian Aker <brian@gaz>

Commit.

1458. By Brian Aker <brian@gaz>

Merge Joe

1459. By Brian Aker <brian@gaz>

Merge Monty

1460. By Brian Aker <brian@gaz>

Seeing static effects valgrind output

1461. By Brian Aker <brian@gaz>

Merge version requirement

1462. By Brian Aker <brian@gaz>

Merge PBXT

1463. By Brian Aker <brian@gaz>

Merge change to load by default

1464. By Brian Aker <brian@gaz>

Merge Jay

1465. By Brian Aker <brian@gaz>

Merge

1466. By Brian Aker <brian@gaz>

Merge

1467. By Brian Aker <brian@gaz>

Merge.

1468. By Brian Aker <brian@gaz>

Fix

1469. By Brian Aker <brian@gaz>

Stored.

1470. By Brian Aker <brian@gaz>

Merge of Monty

1471. By Brian Aker <brian@gaz>

Merge Monty

1472. By Brian Aker <brian@gaz>

Testing bug fix

1473. By Brian Aker <brian@gaz>

Merge docs

1474. By Brian Aker <brian@gaz>

Merge Jay

1475. By Brian Aker <brian@gaz>

Merge Stewart.

1476. By Brian Aker <brian@gaz>

Merge Monty

1477. By Brian Aker <brian@gaz>

Merge Monty

1478. By Brian Aker <brian@gaz>

Merge Paul

1479. By Brian Aker <brian@gaz>

Merge Monty

1480. By Brian Aker <brian@gaz>

Merge range.

1481. By Brian Aker <brian@gaz>

Remove dead code.

1482. By Brian Aker <brian@gaz>

Remove dead index call.

1483. By Brian Aker <brian@gaz>

Small change to move over call to cursor API.

1484. By Brian Aker <brian@gaz>

Use typdef for SessionList

1485. By Brian Aker <brian@gaz>

Updates to confine memroot

1486. By Brian Aker <brian@gaz>

More encapsulation.

1487. By Brian Aker <brian@gaz>

More updates for memory::Root

1488. By Brian Aker <brian@gaz>

Small bug fix for when make_field lacks a mem_root.

1489. By Brian Aker <brian@gaz>

Fix for bad manual-gdb (merged from Monty)

1490. By Brian Aker <brian@gaz>

Updates to remove a fe bits of dead code around C support for plugins
written only in C.

1491. By Brian Aker <brian@gaz>

Remove call bits in dead mrr caller.

1492. By Brian Aker <brian@gaz>

Dead code removal.

1493. By Brian Aker <brian@gaz>

Remove dead call around "fixing" case where MRR lacked buffer.

1494. By Brian Aker <brian@gaz>

Remove usage of multi_malloc

1495. By Brian Aker <brian@gaz>

Updates to remove multi_malloc()

1496. By Brian Aker <brian@gaz>

Dead code pull

1497. By Brian Aker <brian@gaz>

Small fixes, remove malloc usage in share creation.

1498. By Brian Aker <brian@gaz>

Merge Monty

1499. By Brian Aker <brian@gaz>

Merge up Padraig

1500. By Brian Aker <brian@gaz>

Fix for PPC

1501. By Brian Aker <brian@gaz>

Merge Jay

1502. By Brian Aker <brian@gaz>

Merge in heap != myisam

1503. By Brian Aker <brian@gaz>

Merge Brian

1504. By Brian Aker <brian@gaz>

Fixes for "big" suite.

1505. By Brian Aker <brian@gaz>

Merge Jay

1506. By Brian Aker <brian@gaz>

encapsulate engine inside of cursor.

1507. By Brian Aker <brian@gaz>

Small cleanup on handler

1508. By Brian Aker <brian@gaz>

Fix for PBXT build issue

1509. By Brian Aker <brian@gaz>

Merge Monty

1510. By Brian Aker <brian@gaz>

Merge Monty

1511. By Brian Aker <brian@gaz>

This should be dead code, but I am going to see if that was the case.

1512. By Brian Aker <brian@gaz>

Merge of Paul. All PBXT related changes.

1513. By Brian Aker <brian@gaz>

This patch reverts the ROR change which created a memory leak (bzr diff -r 1294..1293)

1514. By Brian Aker <brian@gaz>

Merge Joe

1515. By Brian Aker <brian@gaz>

Merge Monty

1516. By Brian Aker <brian@gaz>

Merge of Sanders (iocache macro to inline).

1517. By Brian Aker <brian@gaz>

Merge Paul's latest PBXT (includes version 1.1)

1518. By Brian Aker <brian@gaz>

Merge Monty -> cppcheck changes, plus change to deleteTable

1519. By Brian Aker <brian@gaz>

Merge Eric. This changed options such that = is now interpreted from last, not first

1520. By Brian Aker <brian@gaz>

Merge Monty

1521. By Brian Aker <brian@gaz>

Merge Eric

1522. By Brian Aker <brian@gaz>

MErge Paul. PBXT only

1523. By Brian Aker <brian@gaz>

Merge joe.

1524. By Brian Aker <brian@gaz>

Merge name changes

1525. By Brian Aker <brian@gaz>

Merge for command line app struct conversion

1526. By Brian Aker <brian@gaz>

Merge in modifications to make TableShare and actual object.

Crazy.

1527. By Brian Aker <brian@gaz>

Merge Monty.

1528. By Brian Aker <brian@gaz>

Merge of TableShare keynames typelib removal.

1529. By Brian Aker <brian@gaz>

MErge Monty (this includes Innodb fix for Stewart).

1530. By Brian Aker <brian@gaz>

Merge Stewart, this increases the max size of indexed columns.

1531. By Brian Aker <brian@gaz>

Rollup merge for typelib/tableshare cleanup.

1532. By Brian Aker <brian@gaz>

just remove entirely the need for fieldnames.

1533. By Brian Aker <brian@gaz>

Merge in key/pair for engine.

1534. By Brian Aker <brian@gaz>

Remove of KeyPartInfo

1535. By Brian Aker <brian@gaz>

Rename of KEY to KeyInfo

1536. By Brian Aker <brian@gaz>

Merge Stewart Innodb only.

1537. By Brian Aker <brian@gaz>

Remove dead options/rename Option and remove the update that we no longer
use.

1538. By Brian Aker <brian@gaz>

Code shuffle on ReadRecord

1539. By Brian Aker <brian@gaz>

Simplify out Open_tables_state() backup/restore (no longer needed).

1540. By Brian Aker <brian@gaz>

Merge. Rename of JoinCache, ReadRecords, and a fix for Hades for stewart's
embedded work.

1541. By Brian Aker <brian@gaz>

Merge of overall patch for TableShare new() work.

1542. By Brian Aker <brian@gaz>

Merge (rename of JOIN to Join)

1543. By Brian Aker <brian@gaz>

Merge Monty

1544. By Brian Aker <brian@gaz>

Merge of events

1545. By Brian Aker <brian@gaz>

Fix for table -> table_share call.

1546. By Brian Aker <brian@gaz>

Merge of Joe's patch (and I updated the author file to include his name as
well).

1547. By Brian Aker <brian@gaz>

This fixes a bug where we did a full open for a temporary table for CREATE
TABLE LIKE when all we really needed to do was look at the definition.

BTW I realized this bug while looking at placeholders and seeing that one
was somehow being reused for a temporary table. We don't have nearly enough
logic in the system to correctly make sure that placeholders do not get
recycled (though they should not be).

1548. By Brian Aker <brian@gaz>

Merge Patrick

1549. By Brian Aker <brian@gaz>

Fix for misspelling.

1550. By Brian Aker <brian@gaz>

Remove dead define.

1551. By Brian Aker <brian@gaz>

This fixes the issue with filesort() possibly crashing on a Function based
table.

1552. By Brian Aker <brian@gaz>

It is somewhat amazing that EXPLAIN works at all (too many myisam assumptions)

1553. By Brian Aker <brian@gaz>

Merge Brian, includes work to move all TableShare to being newed, introduced
placeholder to be used for placeholders. This also includes a number of bug
fixes.

1554. By Brian Aker <brian@gaz>

Merge for auto increment bug.

1555. By Brian Aker <brian@gaz>

Merge Joe, stats.

1556. By Brian Aker <brian@gaz>

Merge Monty

1557. By Brian Aker <brian@gaz>

Confirmation for bug fix.

1558. By Brian Aker <brian@gaz>

Merge Paul's work to use TableShare

1559. By Brian Aker <brian@gaz>

Merge of temp directory change.

1560. By Brian Aker <brian@gaz>

Merge Monty (pandora).

1561. By Brian Aker <brian@gaz>

Merge of tmp files cleanup.

1562. By Brian Aker <brian@gaz>

Merge Joe's scheduler fix

1563. By Brian Aker <brian@gaz>

Merge Hartmut

1564. By Brian Aker <brian@gaz>

Merge Translations

1565. By Brian Aker <brian@gaz>

Merge Patrick

1566. By Brian Aker <brian@gaz>

This fixes the issue where a tmp file might still exist once Innodb has
finished an alter table.

1567. By Brian Aker <brian@gaz>

Remove restriction on schemas named temporary.

1568. By Brian Aker <brian@gaz>

Merge of Brian, Paul. PBXT compile issue, and test framework cleanup.

1569. By Brian Aker <brian@gaz>

Merge of Joe

1570. By Brian Aker <brian@gaz>

Clean up message for compression failure.

1571. By Brian Aker <brian@gaz>

Merge Stewart.

1572. By Brian Aker <brian@gaz>

Merge of Stewart.

1573. By Brian Aker <brian@gaz>

Merge Monty, just a note for freebsd during configure.

1574. By Brian Aker <brian@gaz>

Rollup patch for hiding tableshare.

1575. By Brian Aker <brian@gir>

First part, remove pack flags.

1576. By Brian Aker <brian@gir>

Remove pack flag from Create.

1577. By Brian Aker <brian@gir>

Next bit of pack removal (this removes it from where we store it).

1578. By Brian Aker <brian@gir>

Merge Brian

1579. By Monty Taylor

Merged in pthread atomics unittests and archive_reader
boost::program_options, with build fixes for solaris.

1580. By Brian Aker <brian@gaz>

MErge VJ

1581. By Monty Taylor

Merged in update of drizzleslap build warning suppression.

1582. By Brian Aker <brian@gaz>

Merge auth_ldap information.

1583. By Brian Aker <brian@gaz>

Merge in Stewart's Embedded work.

1584. By Brian Aker <brian@gaz>

Fix for compiler warning.

1585. By Brian Aker <brian@gaz>

Merge Brian, mostly encapsulation around TableShare.

1586. By Monty Taylor

Merged in atomic unittest expansion.

1587. By Monty Taylor

Mereged fix of InnoDB autoincrement behavior.

1588. By Monty Taylor

Fixed solaris build issue.

1589. By Brian Aker <brian@gaz>

Merge row.

1590. By Brian Aker <brian@gaz>

Merge Stewart.

1591. By Brian Aker <brian@gaz>

Small bits of field abstraction.

1592. By Brian Aker <brian@gaz>

Merge for getTable() to have its own getField.* type methods.

1593. By Brian Aker <brian@gaz>

Merge in Barry.

1594. By Brian Aker <brian@gaz>

Merge Stewart.

1595. By Brian Aker <brian@gaz>

Merge Stewart.

1596. By Brian Aker <brian@gaz>

rand() merge from Stewart.

1597. By Brian Aker <brian@gaz>

Merge Monty

1598. By Brian Aker <brian@gaz>

NULL Merge.

1599. By Brian Aker <brian@gaz>

Merge Andrew.

1600. By Brian Aker <brian@gaz>

Rollup patch. Mainly has current_session removed.

1601. By Brian Aker <brian@gaz>

Move functions to class methods.

1602. By Brian Aker <brian@gaz>

Update for current_session removal.

1603. By Brian Aker <brian@gaz>

Remove current_session from usage in table stats logging.

1604. By Brian Aker <brian@gaz>

REmove current_session for heap, show temp

1605. By Brian Aker <brian@gaz>

Remove current_session from myisam.

1606. By Brian Aker <brian@gaz>

datetime was still allowing an alter table with an invalid date.

1607. By Brian Aker <brian@gaz>

Cursor now fully handles the update to timestamp for the engine.

1608. By Brian Aker <brian@gaz>

This encapsulates prev/next.

1609. By Brian Aker <brian@gaz>

Rollup merge.

1610. By Brian Aker <brian@gaz>

Merge in some recent changes to tableshare.

1611. By Brian Aker <brian@gaz>

MErge up CSV.

1612. By Brian Aker <brian@gaz>

Merge Monty

1613. By Brian Aker <brian@gaz>

Fix solaris warning.

1614. By Brian Aker <brian@gaz>

Merge Joe

1615. By Brian Aker <brian@gaz>

MErge VJ

1616. By Brian Aker <brian@gaz>

Discovery that create table like was not going through replication path
correctly.

1617. By Brian Aker <brian@gaz>

Merge Joe.

1618. By Brian Aker <brian@gaz>

This is a rollup set of patches for modifications to TableIdentifier to have
a getKey() which is now used for open_cache and table_share_def cache. This
also includes additional unittests on TableIdentifier, and makes use of some
cleanup, though not perfect, to TableShare for its contructors.

1619. By Monty Taylor

Added include.

1620. By Monty Taylor

Merged Pawel from lp:~pblokus/drizzle/unittests-plugin-interfaces

1621. By Monty Taylor

Fixed a missing make distcheck entry.

1622. By Monty Taylor

Merged Joe Daly from lp:~skinny.moey/drizzle/fix_global_stats

1623. By Monty Taylor

Fixed a non-initialized issue on OSX.

1624. By Monty Taylor

Merged Vijay's refactoring of drizzletest from
lp:~vjsamuel/drizzle/refactor-drizzletest

1625. By Monty Taylor

Merged Brian's TableShare key usage from lp:~brianaker/drizzle/tableshare-key

1626. By Monty Taylor

Merged in BlitzDB.

1627. By Monty Taylor

Killed a valgrind warning that had snuck in.

1628. By Monty Taylor

Rollup patch featuring: boost::program_options support for plugins, a
valgrind fix, a bugfix for password processing and a few build fixes.

1629. By Monty Taylor

Merged in Brian's const TableIdentifiter work.

1630. By Monty Taylor

Added sleep call to try to avoid the spurrious socket errors on freebsd.

1631. By Monty Taylor

Fixed the OSX build. Again.

1632. By Monty Taylor

Undid attempt at fixing sporadic freebsd issue.

1633. By Monty Taylor

Merge of Patrick's schema_dictionary test changes, Stewart's HA Status
variable move and more module program_options work.

1634. By Monty Taylor

Merge of the last bits of program_options plugin module integration:
printing help messages.

1635. By Brian Aker <brian@gaz>

Merge up of Brian to trunk. Mainly work on ha_open, and some current_session
work.

1636. By Brian Aker <brian@gaz>

Merge in work for count_cuted_fields

1637. By Brian Aker <brian@gaz>

Merge in changes to call error on bad data input.

1638. By Monty Taylor

Fixes from Brian to increase strictness/correctness, Toru to remove
current_session from blitzdb, a race condition bugfix from Joe Daly,
and moving of when plugins call program_options from Monty.

1639. By Monty Taylor

Merged in staging changes: Mark's syslog patch and vijay's program_options.

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2009-07-29 17:45:51 +0000
3+++ .bzrignore 2009-09-09 00:38:19 +0000
4@@ -274,3 +274,5 @@
5 po/POTFILES.in
6 drizzled/message/command_reader
7 TAGS
8+*replication.pb.*
9+drizzled/message/table_raw_reader
10
11=== modified file 'Makefile.am'
12--- Makefile.am 2009-08-07 19:45:29 +0000
13+++ Makefile.am 2009-09-09 00:38:19 +0000
14@@ -146,7 +146,6 @@
15 mysys/mf_sort.cc \
16 mysys/mf_tempfile.cc \
17 mysys/mf_wcomp.cc \
18- mysys/mulalloc.cc \
19 mysys/my_access.cc \
20 mysys/my_alloc.cc \
21 mysys/my_bit.cc \
22@@ -286,23 +285,6 @@
23 mv $@-t $@ ; \
24 fi
25
26-if HAVE_LCOV
27-
28-lcov: lcov-clean test lcov/index.html
29-
30-lcov/drizzle.output: drizzled/drizzled
31- mkdir -p lcov
32- ${LCOV} --directory ${top_srcdir}/lcov --capture --output-file lcov/drizzle.output
33-
34-lcov/index.html: lcov/drizzle.output
35- ${GENHTML} -o lcov lcov/drizzle.output
36-
37-lcov-clean:
38- ln -fs pars/pars0lex.l ${top_srcdir}/storage/innobase/pars0lex.l
39- ln -fs pars/lexyy.c ${top_srcdir}/storage/innobase/lexyy.c
40- ln -fs pars/pars0grm.c ${top_srcdir}/storage/innobase/pars0grm.c
41- ln -fs pars/pars0grm.y ${top_srcdir}/storage/innobase/pars0grm.y
42-
43- ${LCOV} --directory ${top_srcdir} --zerocounters
44-
45-endif
46+clean-local:
47+ find . -name '*.gcno' -exec rm -f {} \;
48+
49
50=== modified file 'client/client_priv.h'
51--- client/client_priv.h 2009-04-17 21:01:47 +0000
52+++ client/client_priv.h 2009-09-09 00:38:19 +0000
53@@ -14,23 +14,25 @@
54 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
55
56 /* Common defines for all clients */
57-
58-#include <drizzled/global.h>
59+#ifndef CLIENT_CLIENT_PRIV_H
60+#define CLIENT_CLIENT_PRIV_H
61+
62+#include "config.h"
63+
64+#include CSTDINT_H
65+#include CINTTYPES_H
66+
67+#include <cstdio>
68+#include <cassert>
69+#include <ctime>
70+
71+#include <fcntl.h>
72+
73 #include <libdrizzle/drizzle_client.h>
74-#include <mysys/my_getopt.h>
75
76+#include "mysys/my_getopt.h"
77 #include "client/get_password.h"
78
79-#if TIME_WITH_SYS_TIME
80-# include <sys/time.h>
81-# include <time.h>
82-#else
83-# if HAVE_SYS_TIME_H
84-# include <sys/time.h>
85-# else
86-# include <time.h>
87-# endif
88-#endif
89
90 enum options_client
91 {
92@@ -93,3 +95,5 @@
93 OPT_MAX_CLIENT_OPTION,
94 OPT_SHOW_PROGRESS_SIZE
95 };
96+
97+#endif /* CLIENT_CLIENT_PRIV_H */
98
99=== modified file 'client/drizzle.cc'
100--- client/drizzle.cc 2009-07-20 18:10:47 +0000
101+++ client/drizzle.cc 2009-09-09 00:38:19 +0000
102@@ -34,17 +34,13 @@
103 **/
104
105 #include "client_priv.h"
106-#include <string>
107-#include <algorithm>
108-#include <mystrings/m_ctype.h>
109-#include <stdarg.h>
110-#include "client/linebuffer.h"
111-#include <signal.h>
112+
113+#include <cstdarg>
114+#include <csignal>
115 #include <sys/ioctl.h>
116-#include <drizzled/configmake.h>
117
118 #if defined(HAVE_CURSES_H) && defined(HAVE_TERM_H)
119-#include <curses.h>
120+# include <curses.h>
121 #ifdef __sun
122 #undef clear
123 #undef erase
124@@ -71,6 +67,7 @@
125 #endif
126 #endif
127 #endif
128+#include <cmath>
129
130 #ifdef HAVE_LIBREADLINE
131 # if defined(HAVE_READLINE_READLINE_H)
132@@ -99,6 +96,18 @@
133 /* no history */
134 #endif /* HAVE_READLINE_HISTORY */
135
136+#include <clocale>
137+#include <string>
138+#include <algorithm>
139+#include <iostream>
140+#include <map>
141+
142+#include "mystrings/m_ctype.h"
143+#include "client/linebuffer.h"
144+#include "drizzled/configmake.h"
145+#include "drizzled/gettext.h"
146+
147+
148 #define DRIZZLE_DEFAULT_INPUT_LINE 65536
149
150 /**
151@@ -111,25 +120,12 @@
152 completion_matches((char *)str, (CPFunction *)func)
153 #endif
154
155-#if defined(HAVE_LOCALE_H)
156-#include <locale.h>
157-#endif
158-
159-#include <drizzled/gettext.h>
160-
161-
162-void* sql_alloc(unsigned size); // Don't use drizzled alloc for these
163-void sql_element_free(void *ptr);
164-
165
166 #if !defined(HAVE_VIDATTR)
167 #undef vidattr
168 #define vidattr(A) {} // Can't get this to work
169 #endif
170
171-#include <iostream>
172-#include <map>
173-
174 using namespace std;
175
176 const string VER("14.14");
177@@ -1144,8 +1140,6 @@
178
179 int main(int argc,char *argv[])
180 {
181- char buff[80];
182-
183 #if defined(ENABLE_NLS)
184 # if defined(HAVE_LOCALE_H)
185 setlocale(LC_ALL, "");
186@@ -1317,10 +1311,9 @@
187 sprintf(histfile_tmp, "%s.TMP", histfile);
188 }
189 }
190- sprintf(buff, "%s",
191- _("Type 'help;' or '\\h' for help. Type '\\c' to clear the buffer.\n"));
192
193- put_info(buff,INFO_INFO,0,0);
194+ put_info(_("Type 'help;' or '\\h' for help. "
195+ "Type '\\c' to clear the buffer.\n"),INFO_INFO,0,0);
196 status.exit_status= read_and_execute(!status.batch);
197 if (opt_outfile)
198 end_tee();
199@@ -1570,12 +1563,12 @@
200 {"select_limit", OPT_SELECT_LIMIT,
201 N_("Automatic limit for SELECT when using --safe-updates"),
202 (char**) &select_limit,
203- (char**) &select_limit, 0, GET_UINT32, REQUIRED_ARG, 1000L, 1, ULONG_MAX,
204+ (char**) &select_limit, 0, GET_UINT32, REQUIRED_ARG, 1000L, 1, UINT32_MAX,
205 0, 1, 0},
206 {"max_join_size", OPT_MAX_JOIN_SIZE,
207 N_("Automatic limit for rows in a join when using --safe-updates"),
208 (char**) &max_join_size,
209- (char**) &max_join_size, 0, GET_UINT32, REQUIRED_ARG, 1000000L, 1, ULONG_MAX,
210+ (char**) &max_join_size, 0, GET_UINT32, REQUIRED_ARG, 1000000L, 1, UINT32_MAX,
211 0, 1, 0},
212 {"secure-auth", OPT_SECURE_AUTH, N_("Refuse client connecting to server if it uses old (pre-4.1.1) protocol"), (char**) &opt_secure_auth,
213 (char**) &opt_secure_auth, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
214@@ -1772,7 +1765,8 @@
215 case 'B':
216 status.batch= 1;
217 status.add_to_history= 0;
218- set_if_bigger(opt_silent,1); // more silent
219+ if (opt_silent < 1)
220+ opt_silent= 1;
221 break;
222 case 'V':
223 usage(1);
224@@ -1986,7 +1980,7 @@
225 bool *ml_comment)
226 {
227 unsigned char inchar;
228- char buff[80], *pos, *out;
229+ char *pos, *out;
230 COMMANDS *com;
231 bool need_space= 0;
232 bool ss_comment= 0;
233@@ -2076,8 +2070,12 @@
234 }
235 else
236 {
237- sprintf(buff,_("Unknown command '\\%c'."),inchar);
238- if (put_info(buff,INFO_ERROR,0,0) > 0)
239+ string buff(_("Unknown command: "));
240+ buff.push_back('\'');
241+ buff.push_back(inchar);
242+ buff.push_back('\'');
243+ buff.push_back('.');
244+ if (put_info(buff.c_str(),INFO_ERROR,0,0) > 0)
245 return(1);
246 *out++='\\';
247 *out++=(char) inchar;
248@@ -2544,36 +2542,9 @@
249 completion_iter= completion_map.begin();
250 }
251
252-/* for gnu readline */
253-
254-#ifndef HAVE_INDEX
255-extern "C" {
256- extern char *index(const char *,int c),*rindex(const char *,int);
257-
258- char *index(const char *s,int c)
259- {
260- for (;;)
261- {
262- if (*s == (char) c) return (char*) s;
263- if (!*s++) return NULL;
264- }
265- }
266-
267- char *rindex(const char *s,int c)
268- {
269- register char *t;
270-
271- t = NULL;
272- do if (*s == (char) c) t = (char*) s; while (*s++);
273- return (char*) t;
274- }
275-}
276-#endif
277-
278
279 static int reconnect(void)
280 {
281- /* purecov: begin tested */
282 if (opt_reconnect)
283 {
284 put_info(_("No connection. Trying to reconnect..."),INFO_INFO,0,0);
285@@ -2583,7 +2554,6 @@
286 }
287 if (!connected)
288 return put_info(_("Can't connect to the server\n"),INFO_ERROR,0,0);
289- /* purecov: end */
290 return 0;
291 }
292
293@@ -3624,7 +3594,7 @@
294 else
295 {
296 /* Quick re-connect */
297- opt_rehash= 0; /* purecov: tested */
298+ opt_rehash= 0;
299 }
300 // command used
301 assert(buffer!=NULL);
302
303=== modified file 'client/drizzledump.cc'
304--- client/drizzledump.cc 2009-07-11 02:27:48 +0000
305+++ client/drizzledump.cc 2009-09-09 00:38:19 +0000
306@@ -35,8 +35,8 @@
307 #include <mysys/my_sys.h>
308 #include <mystrings/m_string.h>
309 #include <mystrings/m_ctype.h>
310-#include <mysys/hash.h>
311-#include <stdarg.h>
312+#include "drizzled/hash.h"
313+#include <cstdarg>
314 #include <algorithm>
315
316 #include <drizzled/gettext.h>
317@@ -163,16 +163,20 @@
318 (1<<6) | /* MAXDB */\
319 (1<<10) /* ANSI */\
320 )
321-TYPELIB compatible_mode_typelib= {array_elements(compatible_mode_names) - 1,
322- "", compatible_mode_names, NULL};
323+TYPELIB compatible_mode_typelib=
324+{
325+ sizeof(compatible_mode_names)/sizeof(compatible_mode_names[0]) -1,
326+ "", compatible_mode_names, NULL
327+};
328
329-HASH ignore_table;
330+drizzled::hash_set<string> ignore_table;
331
332 static struct my_option my_long_options[] =
333 {
334 {"all", 'a', "Deprecated. Use --create-options instead.",
335- (char**) &create_options, (char**) &create_options, 0, GET_BOOL, NO_ARG, 1,
336- 0, 0, 0, 0, 0},
337+ reinterpret_cast<char**>(&create_options),
338+ reinterpret_cast<char**>(&create_options),
339+ 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
340 {"all-databases", 'A',
341 "Dump all the databases. This will be same as --databases with all databases selected.",
342 (char**) &opt_alldbs, (char**) &opt_alldbs, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
343@@ -530,19 +534,6 @@
344 } /* write_footer */
345
346
347-static void free_table_ent(char *key)
348-{
349- free(key);
350-}
351-
352-
353-static unsigned char* get_table_key(const char *entry, size_t *length, bool)
354-{
355- *length= strlen(entry);
356- return (unsigned char*) entry;
357-}
358-
359-
360 bool get_one_option(int optid, const struct my_option *, char *argument)
361 {
362 char *endchar= NULL;
363@@ -656,9 +647,8 @@
364 fprintf(stderr, _("Illegal use of option --ignore-table=<database>.<table>\n"));
365 exit(1);
366 }
367- char * tmpptr= strdup(argument);
368- if (!(tmpptr) || my_hash_insert(&ignore_table, (unsigned char*)tmpptr))
369- exit(EX_EOM);
370+ string tmpptr(argument);
371+ ignore_table.insert(tmpptr);
372 break;
373 }
374 case (int) OPT_COMPATIBLE:
375@@ -706,11 +696,6 @@
376 load_defaults("drizzle",load_default_groups,argc,argv);
377 defaults_argv= *argv;
378
379- if (hash_init(&ignore_table, charset_info, 16, 0, 0,
380- (hash_get_key) get_table_key,
381- (hash_free_key) free_table_ent, 0))
382- return(EX_EOM);
383-
384 if ((ho_error= handle_options(argc, argv, my_long_options, get_one_option)))
385 return(ho_error);
386
387@@ -924,8 +909,6 @@
388 if (md_result_file && md_result_file != stdout)
389 fclose(md_result_file);
390 free(opt_password);
391- if (hash_inited(&ignore_table))
392- hash_free(&ignore_table);
393 if (defaults_argv)
394 free_defaults(defaults_argv);
395 my_end(my_end_arg);
396@@ -2382,9 +2365,11 @@
397
398 /* Return 1 if we should copy the table */
399
400-static bool include_table(const unsigned char *hash_key, size_t len)
401+static bool include_table(const char *hash_key, size_t key_size)
402 {
403- return !hash_search(&ignore_table, hash_key, len);
404+ string match(hash_key, key_size);
405+ drizzled::hash_set<string>::iterator iter= ignore_table.find(match);
406+ return (iter == ignore_table.end());
407 }
408
409
410@@ -2396,6 +2381,7 @@
411 drizzle_result_st result;
412 drizzle_return_t ret;
413
414+ memset(hash_key, 0, DRIZZLE_MAX_DB_SIZE+DRIZZLE_MAX_TABLE_SIZE+2);
415 afterdot= strcpy(hash_key, database) + strlen(database);
416 *afterdot++= '.';
417
418@@ -2417,7 +2403,7 @@
419 while ((table= getTableName(0)))
420 {
421 char *end= strcpy(afterdot, table) + strlen(table);
422- if (include_table((unsigned char*) hash_key, end - hash_key))
423+ if (include_table(hash_key, end - hash_key))
424 {
425 dump_table(table,database);
426 free(order_by);
427@@ -2861,7 +2847,6 @@
428 drizzle_result_st result;
429
430 compatible_mode_normal_str[0]= 0;
431- memset(&ignore_table, 0, sizeof(ignore_table));
432
433 exit_code= get_options(&argc, &argv);
434 if (exit_code)
435
436=== modified file 'client/drizzleimport.cc'
437--- client/drizzleimport.cc 2009-07-11 02:27:48 +0000
438+++ client/drizzleimport.cc 2009-09-09 00:38:19 +0000
439@@ -27,12 +27,14 @@
440 #define IMPORT_VERSION "3.7"
441
442 #include "client_priv.h"
443+
444+#include <pthread.h>
445+
446+#include <sstream>
447 #include <string>
448
449-#include <pthread.h>
450-
451 /* Added this for string translation. */
452-#include <drizzled/gettext.h>
453+#include "drizzled/gettext.h"
454
455 using namespace std;
456
457@@ -604,7 +606,7 @@
458 {
459 struct timespec abstime;
460
461- set_timespec(abstime, 3);
462+ set_timespec(&abstime, 3);
463 pthread_cond_timedwait(&count_threshhold, &counter_mutex, &abstime);
464 }
465 /* Before exiting the lock we set ourselves up for the next thread */
466@@ -647,7 +649,7 @@
467 if (!(con= db_connect(current_host,current_db,current_user,opt_password)))
468 {
469 free_defaults(argv_to_free);
470- return(1); /* purecov: deadcode */
471+ return(1);
472 }
473
474 if (drizzle_query_str(con, &result,
475
476=== modified file 'client/drizzleslap.cc'
477--- client/drizzleslap.cc 2009-07-13 19:24:14 +0000
478+++ client/drizzleslap.cc 2009-09-09 00:38:19 +0000
479@@ -70,25 +70,29 @@
480
481 */
482
483-#define SLAP_VERSION "1.5"
484-
485-#define HUGE_STRING_LENGTH 8196
486-#define RAND_STRING_SIZE 126
487-#define DEFAULT_BLOB_SIZE 1024
488-
489-#include "client_priv.h"
490-#include <signal.h>
491-#include <stdarg.h>
492+#include "client/client_priv.h"
493+
494+#include <cctype>
495+#include <csignal>
496+#include <cstdarg>
497+#include <cmath>
498+
499 #include <sys/types.h>
500 #include <sys/wait.h>
501-#include <ctype.h>
502+
503 #include <string>
504
505 /* Added this for string translation. */
506-#include <drizzled/gettext.h>
507+#include "drizzled/gettext.h"
508
509 using namespace std;
510
511+#define SLAP_VERSION "1.5"
512+
513+#define HUGE_STRING_LENGTH 8196
514+#define RAND_STRING_SIZE 126
515+#define DEFAULT_BLOB_SIZE 1024
516+
517 #ifdef HAVE_SMEM
518 static char *shared_memory_base_name=0;
519 #endif
520@@ -176,7 +180,7 @@
521
522 const char *default_dbug_option= "d:t:o,/tmp/drizzleslap.trace";
523 const char *opt_csv_str;
524-File csv_file;
525+int csv_file;
526
527 static int get_options(int *argc,char ***argv);
528 static uint32_t opt_drizzle_port= 0;
529@@ -222,7 +226,7 @@
530 uint32_t users;
531 uint32_t real_users;
532 uint64_t rows;
533- long int create_timing;
534+ long create_timing;
535 uint64_t create_count;
536 };
537
538@@ -301,15 +305,23 @@
539 #define ALPHANUMERICS_SIZE (sizeof(ALPHANUMERICS)-1)
540
541
542-static long int timedif(struct timeval a, struct timeval b)
543+static long timedif(const timespec& start, const timespec& end)
544 {
545- register int us, s;
546-
547- us = a.tv_usec - b.tv_usec;
548- us /= 1000;
549- s = a.tv_sec - b.tv_sec;
550- s *= 1000;
551- return s + us;
552+ timespec temp;
553+ if ((end.tv_nsec-start.tv_nsec) < 0)
554+ {
555+ /*
556+ * Elementary school subtraction... borrow a second from the
557+ * seconds column and add it to the nsec column so that we don't
558+ * end up with a negative nsec.
559+ */
560+ temp.tv_sec = end.tv_sec-start.tv_sec-1;
561+ temp.tv_nsec = 1000000000+end.tv_nsec-start.tv_nsec;
562+ } else {
563+ temp.tv_sec = end.tv_sec-start.tv_sec;
564+ temp.tv_nsec = end.tv_nsec-start.tv_nsec;
565+ }
566+ return (temp.tv_sec*1000)+(temp.tv_nsec/1000000);
567 }
568
569 int main(int argc, char **argv)
570@@ -1541,7 +1553,7 @@
571 {
572 if (create_string && !stat(create_string, &sbuf))
573 {
574- File data_file;
575+ int data_file;
576 if (!S_ISREG(sbuf.st_mode))
577 {
578 fprintf(stderr,"%s: Create file was not a regular file\n",
579@@ -1598,7 +1610,7 @@
580
581 if (user_supplied_query && !stat(user_supplied_query, &sbuf))
582 {
583- File data_file;
584+ int data_file;
585 if (!S_ISREG(sbuf.st_mode))
586 {
587 fprintf(stderr,"%s: User query supplied file was not a regular file\n",
588@@ -1645,7 +1657,7 @@
589 if (user_supplied_pre_statements
590 && !stat(user_supplied_pre_statements, &sbuf))
591 {
592- File data_file;
593+ int data_file;
594 if (!S_ISREG(sbuf.st_mode))
595 {
596 fprintf(stderr,"%s: User query supplied file was not a regular file\n",
597@@ -1692,7 +1704,7 @@
598 if (user_supplied_post_statements
599 && !stat(user_supplied_post_statements, &sbuf))
600 {
601- File data_file;
602+ int data_file;
603 if (!S_ISREG(sbuf.st_mode))
604 {
605 fprintf(stderr,"%s: User query supplied file was not a regular file\n",
606@@ -1887,10 +1899,9 @@
607 statement *after_create;
608 int len;
609 uint64_t count;
610- struct timeval start_time, end_time;
611-
612-
613- gettimeofday(&start_time, NULL);
614+ timespec start_time, end_time;
615+
616+ clock_gettime(CLOCK_REALTIME, &start_time);
617
618 len= snprintf(query, HUGE_STRING_LENGTH, "CREATE SCHEMA `%s`", db);
619
620@@ -1989,9 +2000,9 @@
621 goto limit_not_met;
622 }
623
624- gettimeofday(&end_time, NULL);
625+ clock_gettime(CLOCK_REALTIME, &end_time);
626
627- sptr->create_timing= timedif(end_time, start_time);
628+ sptr->create_timing= timedif(start_time, end_time);
629
630 return(0);
631 }
632@@ -2040,7 +2051,7 @@
633 uint32_t x;
634 uint32_t y;
635 unsigned int real_concurrency;
636- struct timeval start_time, end_time;
637+ timespec start_time, end_time;
638 option_string *sql_type;
639 thread_context *con;
640 pthread_t mainthread; /* Thread descriptor */
641@@ -2123,7 +2134,7 @@
642 pthread_mutex_unlock(&sleeper_mutex);
643 pthread_cond_broadcast(&sleep_threshhold);
644
645- gettimeofday(&start_time, NULL);
646+ clock_gettime(CLOCK_REALTIME, &start_time);
647
648 /*
649 We loop until we know that all children have cleaned up.
650@@ -2131,17 +2142,17 @@
651 pthread_mutex_lock(&counter_mutex);
652 while (thread_counter)
653 {
654- struct timespec abstime;
655+ timespec abstime;
656
657- set_timespec(abstime, 3);
658+ set_timespec(&abstime, 3);
659 pthread_cond_timedwait(&count_threshhold, &counter_mutex, &abstime);
660 }
661 pthread_mutex_unlock(&counter_mutex);
662
663- gettimeofday(&end_time, NULL);
664-
665-
666- sptr->timing= timedif(end_time, start_time);
667+ clock_gettime(CLOCK_REALTIME, &end_time);
668+
669+
670+ sptr->timing= timedif(start_time, end_time);
671 sptr->users= concur;
672 sptr->real_users= real_concurrency;
673 sptr->rows= limit;
674@@ -2167,7 +2178,7 @@
675 }
676 pthread_mutex_unlock(&sleeper_mutex);
677
678- set_timespec(abstime, *timer_length);
679+ set_timespec(&abstime, *timer_length);
680
681 pthread_mutex_lock(&timer_alarm_mutex);
682 pthread_cond_timedwait(&timer_alarm_threshold, &timer_alarm_mutex, &abstime);
683
684=== modified file 'client/drizzletest.cc'
685--- client/drizzletest.cc 2009-08-20 17:40:03 +0000
686+++ client/drizzletest.cc 2009-09-09 00:38:19 +0000
687@@ -53,13 +53,13 @@
688
689 #include PCRE_HEADER
690
691-#include <mysys/hash.h>
692-#include <stdarg.h>
693+#include <cstdarg>
694
695 #include "errname.h"
696
697 /* Added this for string translation. */
698-#include <drizzled/gettext.h>
699+#include "drizzled/gettext.h"
700+#include "drizzled/hash.h"
701
702 #ifndef DRIZZLE_RETURN_SERVER_GONE
703 #define DRIZZLE_RETURN_HANDSHAKE_FAILED DRIZZLE_RETURN_ERROR_CODE
704@@ -94,7 +94,7 @@
705 const char *opt_user= NULL, *opt_host= NULL, *unix_sock= NULL,
706 *opt_basedir= "./";
707 const char *opt_logdir= "";
708-const char *opt_include= NULL, *opt_charsets_dir;
709+const char *opt_include= NULL;
710 const char *opt_testdir= NULL;
711 static uint32_t opt_port= 0;
712 static int opt_max_connect_retries;
713@@ -156,8 +156,6 @@
714 static struct st_test_file* file_stack_end;
715
716
717-static const CHARSET_INFO *charset_info= &my_charset_utf8_general_ci; /* Default charset */
718-
719 static int embedded_server_arg_count=0;
720 static char *embedded_server_args[MAX_EMBEDDED_SERVER_ARGS];
721
722@@ -206,7 +204,8 @@
723 /*Perl/shell-like variable registers */
724 VAR var_reg[10];
725
726-HASH var_hash;
727+
728+drizzled::hash_map<string, VAR *> var_hash;
729
730 struct st_connection
731 {
732@@ -391,8 +390,13 @@
733 enum enum_commands type;
734 };
735
736-TYPELIB command_typelib= {array_elements(command_names),"",
737- command_names, 0};
738+TYPELIB command_typelib=
739+{
740+ sizeof(command_names)/sizeof(command_names[0]),
741+ "",
742+ command_names,
743+ 0
744+};
745
746 string ds_res, ds_progress, ds_warning_messages;
747
748@@ -412,7 +416,7 @@
749 VAR* var_from_env(const char *, const char *);
750 VAR* var_init(VAR* v, const char *name, int name_len, const char *val,
751 int val_len);
752-extern "C" void var_free(void* v);
753+void var_free(pair<string, VAR*> v);
754 VAR* var_get(const char *var_name, const char** var_name_end,
755 bool raw, bool ignore_not_existing);
756 void eval_expr(VAR* v, const char *p, const char** p_end);
757@@ -884,9 +888,10 @@
758
759 close_connections();
760 close_files();
761- hash_free(&var_hash);
762+ for_each(var_hash.begin(), var_hash.end(), var_free);
763+ var_hash.clear();
764
765- vector<struct st_command *>::iterator iter;
766+ vector<st_command *>::iterator iter;
767 for (iter= q_lines.begin() ; iter < q_lines.end() ; iter++)
768 {
769 struct st_command * q_line= *iter;
770@@ -1329,10 +1334,10 @@
771
772 */
773
774-static int compare_files2(File fd, const char* filename2)
775+static int compare_files2(int fd, const char* filename2)
776 {
777 int error= RESULT_OK;
778- File fd2;
779+ int fd2;
780 uint32_t len, len2;
781 char buff[512], buff2[512];
782 const char *fname= filename2;
783@@ -1407,7 +1412,7 @@
784
785 static int compare_files(const char* filename1, const char* filename2)
786 {
787- File fd;
788+ int fd;
789 int error;
790
791 if ((fd= my_open(filename1, O_RDONLY, MYF(0))) < 0)
792@@ -1436,7 +1441,7 @@
793 static int string_cmp(string* ds, const char *fname)
794 {
795 int error;
796- File fd;
797+ int fd;
798 char temp_file_path[FN_REFLEN];
799
800 if ((fd= create_temp_file(temp_file_path, NULL,
801@@ -1569,7 +1574,7 @@
802 char* ptr= str;
803
804 /* Check if the first non space character is c1 */
805- while(*ptr && my_isspace(charset_info, *ptr))
806+ while(*ptr && isspace(*ptr))
807 ptr++;
808 if (*ptr == c1)
809 {
810@@ -1578,7 +1583,7 @@
811
812 /* Last non space charecter should be c2 */
813 ptr= strchr(str, '\0')-1;
814- while(*ptr && my_isspace(charset_info, *ptr))
815+ while(*ptr && isspace(*ptr))
816 ptr--;
817 if (*ptr == c2)
818 {
819@@ -1603,14 +1608,6 @@
820 }
821
822
823-unsigned char *get_var_key(const unsigned char* var, size_t *len, bool)
824-{
825- register char* key;
826- key = ((VAR*)var)->name;
827- *len = ((VAR*)var)->name_len;
828- return (unsigned char*)key;
829-}
830-
831
832 VAR *var_init(VAR *v, const char *name, int name_len, const char *val,
833 int val_len)
834@@ -1648,12 +1645,12 @@
835 }
836
837
838-void var_free(void *v)
839+void var_free(pair<string, VAR *> v)
840 {
841- free(((VAR*) v)->str_val);
842- free(((VAR*) v)->env_s);
843- if (((VAR*)v)->alloced)
844- free(v);
845+ free(v.second->str_val);
846+ free(v.second->env_s);
847+ if (v.second->alloced)
848+ free(v.second);
849 }
850
851
852@@ -1665,7 +1662,8 @@
853 tmp = def_val;
854
855 v = var_init(0, name, strlen(name), tmp, strlen(tmp));
856- my_hash_insert(&var_hash, (unsigned char*)v);
857+ string var_name(name);
858+ var_hash.insert(make_pair(var_name, v));
859 return v;
860 }
861
862@@ -1684,7 +1682,7 @@
863 const char *save_var_name = var_name, *end;
864 uint32_t length;
865 end = (var_name_end) ? *var_name_end : 0;
866- while (my_isvar(charset_info,*var_name) && var_name != end)
867+ while ((isalnum(*var_name) || *var_name == '_') && var_name != end)
868 var_name++;
869 if (var_name == save_var_name)
870 {
871@@ -1696,14 +1694,20 @@
872 if (length >= MAX_VAR_NAME_LENGTH)
873 die("Too long variable name: %s", save_var_name);
874
875- if (!(v = (VAR*) hash_search(&var_hash, (const unsigned char*) save_var_name,
876- length)))
877+ string save_var_name_str(save_var_name, length);
878+ drizzled::hash_map<string, VAR*>::iterator iter=
879+ var_hash.find(save_var_name_str);
880+ if (iter == var_hash.end())
881 {
882 char buff[MAX_VAR_NAME_LENGTH+1];
883 strncpy(buff, save_var_name, length);
884 buff[length]= '\0';
885 v= var_from_env(buff, "");
886 }
887+ else
888+ {
889+ v= (*iter).second;
890+ }
891 var_name--; /* Point at last character */
892 }
893 else
894@@ -1728,11 +1732,13 @@
895
896 static VAR *var_obtain(const char *name, int len)
897 {
898- VAR* v;
899- if ((v = (VAR*)hash_search(&var_hash, (const unsigned char *) name, len)))
900- return v;
901- v = var_init(0, name, len, "", 0);
902- my_hash_insert(&var_hash, (unsigned char*)v);
903+ string var_name(name, len);
904+ drizzled::hash_map<string, VAR*>::iterator iter=
905+ var_hash.find(var_name);
906+ if (iter != var_hash.end())
907+ return (*iter).second;
908+ VAR *v = var_init(0, name, len, "", 0);
909+ var_hash.insert(make_pair(var_name, v));
910 return v;
911 }
912
913@@ -2272,7 +2278,7 @@
914 string ds_cmd;
915
916 /* Skip leading space */
917- while (*cmd && my_isspace(charset_info, *cmd))
918+ while (*cmd && isspace(*cmd))
919 cmd++;
920 if (!*cmd)
921 die("Missing argument in exec");
922@@ -2895,7 +2901,7 @@
923 if (!*p)
924 die("Missing connection name in send_quit");
925 name= p;
926- while (*p && !my_isspace(charset_info,*p))
927+ while (*p && !isspace(*p))
928 p++;
929
930 if (*p)
931@@ -2955,7 +2961,7 @@
932 static void do_perl(struct st_command *command)
933 {
934 int error;
935- File fd;
936+ int fd;
937 FILE *res_file;
938 char buf[FN_REFLEN];
939 char temp_file_path[FN_REFLEN];
940@@ -3163,10 +3169,10 @@
941 const char *offset_start= p;
942 if (*offset_start)
943 {
944- for (; my_isdigit(charset_info, *p); p++)
945+ for (; isdigit(*p); p++)
946 offset = offset * 10 + *p - '0';
947
948- if(*p && !my_isspace(charset_info, *p))
949+ if(*p && !isspace(*p))
950 die("Invalid integer argument \"%s\"", offset_start);
951 command->last_argument= p;
952 }
953@@ -3243,19 +3249,19 @@
954 if (!*p)
955 die("Missing arguments to let");
956 var_name= p;
957- while (*p && (*p != '=') && !my_isspace(charset_info,*p))
958+ while (*p && (*p != '=') && !isspace(*p))
959 p++;
960 var_name_end= p;
961 if (var_name == var_name_end ||
962 (var_name+1 == var_name_end && *var_name == '$'))
963 die("Missing variable name in let");
964- while (my_isspace(charset_info,*p))
965+ while (isspace(*p))
966 p++;
967 if (*p++ != '=')
968 die("Missing assignment operator in let");
969
970 /* Find start of <var_val> */
971- while (*p && my_isspace(charset_info,*p))
972+ while (*p && isspace(*p))
973 p++;
974
975 do_eval(&let_rhs_expr, p, command->end, false);
976@@ -3297,13 +3303,13 @@
977 char *sleep_start, *sleep_end= command->end;
978 double sleep_val;
979
980- while (my_isspace(charset_info, *p))
981+ while (isspace(*p))
982 p++;
983 if (!*p)
984 die("Missing argument to %.*s", command->first_word_len, command->query);
985 sleep_start= p;
986 /* Check that arg starts with a digit, not handled by my_strtod */
987- if (!my_isdigit(charset_info, *sleep_start))
988+ if (!isdigit(*sleep_start))
989 die("Invalid argument to %.*s \"%s\"", command->first_word_len,
990 command->query,command->first_argument);
991 string buff_str(sleep_start, sleep_end-sleep_start);
992@@ -3331,7 +3337,7 @@
993 if (!*p)
994 die("Missing file name argument");
995 name= p;
996- while (*p && !my_isspace(charset_info,*p))
997+ while (*p && !isspace(*p))
998 p++;
999 if (*p)
1000 *p++= 0;
1001@@ -3340,25 +3346,6 @@
1002 }
1003
1004
1005-static void do_set_charset(struct st_command *command)
1006-{
1007- char *charset_name= command->first_argument;
1008- char *p;
1009-
1010- if (!charset_name || !*charset_name)
1011- die("Missing charset name in 'character_set'");
1012- /* Remove end space */
1013- p= charset_name;
1014- while (*p && !my_isspace(charset_info,*p))
1015- p++;
1016- if(*p)
1017- *p++= 0;
1018- command->last_argument= p;
1019- charset_info= get_charset_by_csname(charset_name, MY_CS_PRIMARY);
1020- if (!charset_info)
1021- abort_not_supported_test("Test requires charset '%s'", charset_name);
1022-}
1023-
1024 static uint32_t get_errcode_from_name(char *error_name, char *error_end)
1025 {
1026 size_t err_name_len= error_end - error_name;
1027@@ -3412,7 +3399,7 @@
1028 /* Check sqlstate string validity */
1029 while (*p && p < end)
1030 {
1031- if (my_isdigit(charset_info, *p) || my_isupper(charset_info, *p))
1032+ if (isdigit(*p) || isupper(*p))
1033 *to_ptr++= *p++;
1034 else
1035 die("The sqlstate may only consist of digits[0-9] " \
1036@@ -3444,7 +3431,7 @@
1037 /* Check that the string passed to str2int only contain digits */
1038 while (*p && p != end)
1039 {
1040- if (!my_isdigit(charset_info, *p))
1041+ if (!isdigit(*p))
1042 die("Invalid argument to error: '%s' - " \
1043 "the errno may only consist of digits[0-9]",
1044 command->first_argument);
1045@@ -3544,7 +3531,7 @@
1046 if (*from != ' ' && *from)
1047 die("Wrong string argument in %s", command->query);
1048
1049- while (my_isspace(charset_info,*from)) /* Point to next string */
1050+ while (isspace(*from)) /* Point to next string */
1051 from++;
1052
1053 *to =0; /* End of string marker */
1054@@ -3596,7 +3583,7 @@
1055 if (!*p)
1056 die("Missing connection name in connect");
1057 name= p;
1058- while (*p && !my_isspace(charset_info,*p))
1059+ while (*p && !isspace(*p))
1060 p++;
1061 if (*p)
1062 *p++= 0;
1063@@ -3613,7 +3600,7 @@
1064 if (!*p)
1065 die("Missing connection name in disconnect");
1066 name= p;
1067- while (*p && !my_isspace(charset_info,*p))
1068+ while (*p && !isspace(*p))
1069 p++;
1070
1071 if (*p)
1072@@ -3878,11 +3865,11 @@
1073 {
1074 const char* end;
1075 /* Step past any spaces in beginning of option*/
1076- while (*con_options && my_isspace(charset_info, *con_options))
1077+ while (*con_options && isspace(*con_options))
1078 con_options++;
1079 /* Find end of this option */
1080 end= con_options;
1081- while (*end && !my_isspace(charset_info, *end))
1082+ while (*end && !isspace(*end))
1083 end++;
1084 if (!strncmp(con_options, "SSL", 3))
1085 con_ssl= 1;
1086@@ -4037,7 +4024,7 @@
1087 die("missing ')' in %s", cmd_name);
1088 p= (char*)expr_end+1;
1089
1090- while (*p && my_isspace(charset_info, *p))
1091+ while (*p && isspace(*p))
1092 p++;
1093 if (*p && *p != '{')
1094 die("Missing '{' after %s. Found \"%s\"", cmd_name, p);
1095@@ -4064,7 +4051,7 @@
1096 {
1097 char* p= command->first_argument;
1098
1099- while (*p && my_isspace(charset_info, *p))
1100+ while (*p && isspace(*p))
1101 p++;
1102
1103 if (!(*p))
1104@@ -4136,7 +4123,7 @@
1105 {
1106 char c, last_quote= 0;
1107 char *p= buf, *buf_end= buf + size - 1;
1108- int skip_char= 0;
1109+ bool skip_char= false;
1110 enum {R_NORMAL, R_Q, R_SLASH_IN_Q,
1111 R_COMMENT, R_LINE_START} state= R_LINE_START;
1112
1113@@ -4144,17 +4131,16 @@
1114 start_lineno= cur_file->lineno;
1115 for (; p < buf_end ;)
1116 {
1117- skip_char= 0;
1118+ skip_char= false;
1119 c= my_getc(cur_file->file);
1120 if (feof(cur_file->file))
1121 {
1122- found_eof:
1123 if (cur_file->file != stdin)
1124 {
1125 fclose(cur_file->file);
1126 cur_file->file= 0;
1127 }
1128- free((unsigned char*) cur_file->file_name);
1129+ free(const_cast<char *>(cur_file->file_name));
1130 cur_file->file_name= 0;
1131 if (cur_file == file_stack)
1132 {
1133@@ -4190,10 +4176,8 @@
1134 return(0);
1135 }
1136 else if ((c == '{' &&
1137- (!my_strnncoll_simple(charset_info, (const unsigned char*) "while", 5,
1138- (unsigned char*) buf, min((ptrdiff_t)5, p - buf), 0) ||
1139- !my_strnncoll_simple(charset_info, (const unsigned char*) "if", 2,
1140- (unsigned char*) buf, min((ptrdiff_t)2, p - buf), 0))))
1141+ (!strncmp("while", buf, min((ptrdiff_t)5, p - buf)) ||
1142+ !strncmp("if", buf, min((ptrdiff_t)2, p - buf)))))
1143 {
1144 /* Only if and while commands can be terminated by { */
1145 *p++= c;
1146@@ -4222,7 +4206,7 @@
1147 /* A # or - in the first position of the line - this is a comment */
1148 state = R_COMMENT;
1149 }
1150- else if (my_isspace(charset_info, c))
1151+ else if ((c == ' ') || (c == '\t') || (c == '\n'))
1152 {
1153 /* Skip all space at begining of line */
1154 if (c == '\n')
1155@@ -4230,7 +4214,7 @@
1156 /* Query hasn't started yet */
1157 start_lineno= cur_file->lineno;
1158 }
1159- skip_char= 1;
1160+ skip_char= true;
1161 }
1162 else if (end_of_query(c))
1163 {
1164@@ -4267,37 +4251,7 @@
1165 }
1166
1167 if (!skip_char)
1168- {
1169- /* Could be a multibyte character */
1170- /* This code is based on the code in "sql_load.cc" */
1171- int charlen = my_mbcharlen(charset_info, c);
1172- /* We give up if multibyte character is started but not */
1173- /* completed before we pass buf_end */
1174- if ((charlen > 1) && (p + charlen) <= buf_end)
1175- {
1176- int i;
1177- char* mb_start = p;
1178-
1179- *p++ = c;
1180-
1181- for (i= 1; i < charlen; i++)
1182- {
1183- if (feof(cur_file->file))
1184- goto found_eof;
1185- c= my_getc(cur_file->file);
1186- *p++ = c;
1187- }
1188- if (! my_ismbchar(charset_info, mb_start, p))
1189- {
1190- /* It was not a multiline char, push back the characters */
1191- /* We leave first 'c', i.e. pretend it was a normal char */
1192- while (p > mb_start)
1193- my_ungetc(*--p);
1194- }
1195- }
1196- else
1197- *p++= c;
1198- }
1199+ *p++= c;
1200 }
1201 die("The input buffer is too small for this query.x\n" \
1202 "check your query or increase MAX_QUERY and recompile");
1203@@ -4330,7 +4284,7 @@
1204 *to++ = *p++; /* Save the newline */
1205
1206 /* Skip any spaces on next line */
1207- while (*p && my_isspace(charset_info, *p))
1208+ while (*p && isspace(*p))
1209 p++;
1210
1211 last_c_was_quote= 0;
1212@@ -4382,11 +4336,11 @@
1213 char save;
1214 char *end, *start= (char*)ptr+3;
1215 /* Skip leading spaces */
1216- while (*start && my_isspace(charset_info, *start))
1217+ while (*start && isspace(*start))
1218 start++;
1219 end= start;
1220 /* Find end of command(next space) */
1221- while (*end && !my_isspace(charset_info, *end))
1222+ while (*end && !isspace(*end))
1223 end++;
1224 save= *end;
1225 *end= 0;
1226@@ -4432,7 +4386,7 @@
1227 const char *p= eol;
1228
1229 /* Skip past all spacing chars and comments */
1230- while (*p && (my_isspace(charset_info, *p) || *p == '#' || *p == '\n'))
1231+ while (*p && (isspace(*p) || *p == '#' || *p == '\n'))
1232 {
1233 /* Skip past comments started with # and ended with newline */
1234 if (*p && *p == '#')
1235@@ -4515,7 +4469,7 @@
1236 }
1237
1238 /* Skip leading spaces */
1239- while (*p && my_isspace(charset_info, *p))
1240+ while (*p && isspace(*p))
1241 p++;
1242
1243 if (!(command->query_buf= command->query= strdup(p)))
1244@@ -4523,12 +4477,12 @@
1245
1246 /* Calculate first word length(the command), terminated by space or ( */
1247 p= command->query;
1248- while (*p && !my_isspace(charset_info, *p) && *p != '(')
1249+ while (*p && !isspace(*p) && *p != '(')
1250 p++;
1251 command->first_word_len= (uint32_t) (p - command->query);
1252
1253 /* Skip spaces between command and first argument */
1254- while (*p && my_isspace(charset_info, *p))
1255+ while (*p && isspace(*p))
1256 p++;
1257 command->first_argument= p;
1258
1259@@ -4545,9 +4499,6 @@
1260 0, 0, 0, 0, 0, 0},
1261 {"basedir", 'b', "Basedir for tests.", (char**) &opt_basedir,
1262 (char**) &opt_basedir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
1263- {"character-sets-dir", OPT_CHARSETS_DIR,
1264- "Directory where character sets are.", (char**) &opt_charsets_dir,
1265- (char**) &opt_charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
1266 {"compress", 'C', "Use the compressed server/client protocol.",
1267 (char**) &opt_compress, (char**) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0,
1268 0, 0, 0},
1269@@ -5626,10 +5577,6 @@
1270 cur_block->ok= true; /* Outer block should always be executed */
1271 cur_block->cmd= cmd_none;
1272
1273- if (hash_init(&var_hash, charset_info,
1274- 1024, 0, 0, get_var_key, var_free, MYF(0)))
1275- die("Variable hash initialization failed");
1276-
1277 var_set_string("$DRIZZLE_SERVER_VERSION", drizzle_version());
1278
1279 memset(&master_pos, 0, sizeof(master_pos));
1280@@ -5886,7 +5833,7 @@
1281 timer_output();
1282 break;
1283 case Q_CHARACTER_SET:
1284- do_set_charset(command);
1285+ die("Drizzle does not support multiple character sets");
1286 break;
1287 case Q_DISABLE_RECONNECT:
1288 set_reconnect(&cur_con->con, 0);
1289@@ -6078,7 +6025,7 @@
1290
1291 uint64_t timer_now(void)
1292 {
1293- return my_micro_time() / 1000;
1294+ return my_get_usec_since_epoch() / 1000;
1295 }
1296
1297
1298@@ -6117,7 +6064,8 @@
1299 replace_column[column_number-1]= strdup(to);
1300 if (replace_column[column_number-1] == NULL)
1301 die("Out of memory");
1302- set_if_bigger(max_replace_column, column_number);
1303+ if (max_replace_column < column_number)
1304+ max_replace_column= column_number;
1305 }
1306 free(start);
1307 command->last_argument= command->end;
1308@@ -6199,7 +6147,7 @@
1309 insert_pointer_name(&to_array,to);
1310 }
1311 for (i= 1,pos= word_end_chars ; i < 256 ; i++)
1312- if (my_isspace(charset_info,i))
1313+ if (isspace(i))
1314 *pos++= i;
1315 *pos=0; /* End pointer */
1316 if (!(glob_replace= init_replace((char**) from_array.typelib.type_names,
1317@@ -7170,10 +7118,11 @@
1318 return(1);
1319 if (new_pos != pa->str)
1320 {
1321- my_ptrdiff_t diff=PTR_BYTE_DIFF(new_pos,pa->str);
1322+ ptrdiff_t diff= static_cast<ptrdiff_t>(
1323+ reinterpret_cast<unsigned char*>(new_pos)
1324+ - reinterpret_cast<unsigned char*>(pa->str));
1325 for (i=0 ; i < pa->typelib.count ; i++)
1326- pa->typelib.type_names[i]= ADD_TO_PTR(pa->typelib.type_names[i],diff,
1327- char*);
1328+ pa->typelib.type_names[i]= reinterpret_cast<const char *>(reinterpret_cast<const unsigned char *>(pa->typelib.type_names[i])+diff);
1329 pa->str=new_pos;
1330 }
1331 pa->max_length+=PS_MALLOC;
1332
1333=== modified file 'client/errname.cc'
1334--- client/errname.cc 2009-08-05 22:50:03 +0000
1335+++ client/errname.cc 2009-09-09 00:38:19 +0000
1336@@ -18,9 +18,9 @@
1337 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1338 */
1339
1340-#include <drizzled/global.h>
1341+#include "config.h"
1342
1343-#include <client/errname.h>
1344+#include "client/errname.h"
1345
1346 using namespace std;
1347
1348@@ -615,7 +615,7 @@
1349 { "ER_UNSUPORTED_LOG_ENGINE",1579 },
1350 { "ER_BAD_LOG_STATEMENT",1580 },
1351 { "ER_CANT_RENAME_LOG_TABLE",1581 },
1352- { "ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT",1582 },
1353+ { "ER_WRONG_PARAMCOUNT_TO_FUNCTION",1582 },
1354 { "ER_WRONG_PARAMETERS_TO_NATIVE_FCT",1583 },
1355 { "ER_WRONG_PARAMETERS_TO_STORED_FCT",1584 },
1356 { "ER_NATIVE_FCT_NAME_COLLISION",1585 },
1357
1358=== modified file 'client/errname.h'
1359--- client/errname.h 2009-08-11 20:20:52 +0000
1360+++ client/errname.h 2009-09-09 00:38:19 +0000
1361@@ -18,11 +18,13 @@
1362 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1363 */
1364
1365-#ifndef _CLIENT_ERRNAME_H
1366-#define _CLIENT_ERRNAME_H
1367+#ifndef CLIENT_ERRNAME_H
1368+#define CLIENT_ERRNAME_H
1369
1370 /* List of error names to error codes, available from 5.0 */
1371
1372+#include CSTDINT_H
1373+
1374 #include <string>
1375 #include <map>
1376
1377@@ -36,4 +38,4 @@
1378 std::map<std::string, uint32_t> error_code_map;
1379 };
1380
1381-#endif /* _CLIENT_ERRNAME_H */
1382+#endif /* CLIENT_ERRNAME_H */
1383
1384=== modified file 'client/get_password.cc'
1385--- client/get_password.cc 2009-04-17 21:01:47 +0000
1386+++ client/get_password.cc 2009-09-09 00:38:19 +0000
1387@@ -22,13 +22,15 @@
1388 ** This is an own file to avoid conflicts with curses
1389 */
1390
1391-#include <drizzled/global.h>
1392-#include "client/get_password.h"
1393-
1394-#include <string.h>
1395-#include <stdio.h>
1396-#include <stdlib.h>
1397-#include <ctype.h>
1398+#include "config.h"
1399+
1400+#include CSTDINT_H
1401+
1402+#include <cstring>
1403+#include <cstdio>
1404+#include <cstdlib>
1405+#include <cctype>
1406+
1407 #include <unistd.h>
1408
1409 #include <sys/ioctl.h>
1410@@ -45,6 +47,10 @@
1411 # endif
1412 #endif
1413
1414+#include "client/get_password.h"
1415+
1416+using namespace std;
1417+
1418 /*
1419 Can't use fgets, because readline will get confused
1420 length is max number of chars in to, not counting \0
1421@@ -60,7 +66,7 @@
1422 char tmp;
1423 if (read(fd,&tmp,1) != 1)
1424 break;
1425- if (tmp == '\b' || (int) tmp == 127)
1426+ if (tmp == '\b' || static_cast<int>(tmp) == 127)
1427 {
1428 if (pos != to)
1429 {
1430
1431=== modified file 'client/linebuffer.cc'
1432--- client/linebuffer.cc 2009-07-20 00:22:07 +0000
1433+++ client/linebuffer.cc 2009-09-09 00:38:19 +0000
1434@@ -15,11 +15,13 @@
1435
1436 /* readline for batch mode */
1437
1438-#include <drizzled/global.h>
1439-#include <mysys/my_sys.h>
1440+#include "config.h"
1441+
1442+#include <vector>
1443+
1444+#include "mysys/my_sys.h"
1445 #include "client/linebuffer.h"
1446
1447-#include <vector>
1448
1449 using namespace std;
1450
1451
1452=== modified file 'client/linebuffer.h'
1453--- client/linebuffer.h 2009-07-20 00:15:20 +0000
1454+++ client/linebuffer.h 2009-09-09 00:38:19 +0000
1455@@ -17,6 +17,8 @@
1456 #define CLIENT_LINEBUFFER_H
1457
1458 #include <vector>
1459+#include <sstream>
1460+#include CSTDINT_H
1461
1462 class LineBuffer
1463 {
1464
1465=== modified file 'config/uncrustify.cfg'
1466--- config/uncrustify.cfg 2009-07-15 21:16:34 +0000
1467+++ config/uncrustify.cfg 2009-09-09 00:38:19 +0000
1468@@ -1,145 +1,1112 @@
1469-indent_align_string=true
1470-indent_braces=false
1471-indent_braces_no_func=false
1472-indent_brace_parent=false
1473-indent_namespace=false
1474-indent_extern=false
1475-indent_class=true
1476-indent_class_colon=false
1477-indent_else_if=false
1478-indent_func_call_param=false
1479-indent_func_def_param=false
1480-indent_func_proto_param=false
1481-indent_func_class_param=false
1482-indent_func_ctor_var_param=false
1483-indent_template_param=false
1484-indent_func_param_double=false
1485-indent_relative_single_line_comments=false
1486-indent_col1_comment=false
1487-indent_access_spec_body=false
1488-indent_paren_nl=false
1489-indent_comma_paren=false
1490-indent_bool_paren=false
1491-indent_square_nl=false
1492-indent_preserve_sql=false
1493-sp_balance_nested_parens=false
1494-align_keep_tabs=false
1495-align_with_tabs=false
1496-align_on_tabstop=false
1497-align_number_left=false
1498-align_func_params=false
1499-align_same_func_call_params=false
1500-align_var_def_colon=false
1501-align_var_def_inline=false
1502-align_right_cmt_mix=false
1503-align_mix_var_proto=false
1504-align_single_line_func=false
1505-align_single_line_brace=false
1506-align_nl_cont=false
1507-align_left_shift=true
1508-nl_collapse_empty_body=true
1509-nl_assign_leave_one_liners=true
1510-nl_class_leave_one_liners=false
1511-nl_enum_leave_one_liners=false
1512-nl_getset_leave_one_liners=true
1513-nl_func_leave_one_liners=true
1514-nl_if_leave_one_liners=false
1515-nl_multi_line_cond=false
1516-nl_multi_line_define=false
1517-nl_before_case=false
1518-nl_after_case=false
1519-nl_after_return=true
1520-nl_after_semicolon=true
1521-nl_after_brace_open=true
1522-nl_after_brace_open_cmt=false
1523-nl_after_vbrace_open=false
1524-nl_define_macro=false
1525-nl_squeeze_ifdef=false
1526-nl_ds_struct_enum_cmt=false
1527-nl_ds_struct_enum_close_brace=false
1528-nl_create_if_one_liner=false
1529-nl_create_for_one_liner=false
1530-nl_create_while_one_liner=false
1531-ls_for_split_full=false
1532-ls_func_split_full=false
1533-nl_after_multiline_comment=true
1534-eat_blanks_after_open_brace=true
1535-eat_blanks_before_close_brace=true
1536-mod_pawn_semicolon=false
1537-mod_full_paren_if_bool=false
1538-mod_remove_extra_semicolon=true
1539-mod_sort_import=false
1540-mod_sort_using=true
1541-mod_sort_include=false
1542-mod_move_case_break=true
1543-cmt_indent_multi=true
1544-cmt_c_group=false
1545-cmt_c_nl_start=false
1546-cmt_c_nl_end=false
1547-cmt_cpp_group=false
1548-cmt_cpp_nl_start=false
1549-cmt_cpp_nl_end=false
1550-cmt_cpp_to_c=false
1551-cmt_star_cont=true
1552-cmt_multi_check_last=true
1553-pp_indent_at_level=false
1554-pp_region_indent_code=false
1555-pp_if_indent_code=false
1556-pp_define_at_level=false
1557-indent_columns=2
1558-nl_func_var_def_blk=1
1559-code_width=76
1560-nl_max=2
1561-nl_after_func_proto_group=3
1562-nl_after_func_body=2
1563-nl_before_block_comment=2
1564-nl_before_c_comment=2
1565-nl_before_cpp_comment=0
1566-mod_add_long_function_closebrace_comment=15
1567-mod_add_long_switch_closebrace_comment=15
1568-cmt_sp_after_star_cont=1
1569-indent_with_tabs=0
1570-sp_before_assign=remove
1571-sp_enum_before_assign=remove
1572-sp_after_assign=add
1573-sp_enum_after_assign=add
1574-sp_after_operator=add
1575-sp_after_cast=remove
1576-sp_cpp_cast_paren=remove
1577-nl_start_of_file=remove
1578-nl_assign_brace=add
1579-nl_fcall_brace=add
1580-nl_enum_brace=add
1581-nl_struct_brace=add
1582-nl_union_brace=add
1583-nl_if_brace=add
1584-nl_brace_else=add
1585-nl_elseif_brace=add
1586-nl_else_brace=add
1587-nl_else_if=remove
1588-nl_brace_finally=add
1589-nl_finally_brace=add
1590-nl_try_brace=add
1591-nl_getset_brace=add
1592-nl_for_brace=add
1593-nl_catch_brace=add
1594-nl_brace_catch=add
1595-nl_while_brace=add
1596-nl_do_brace=add
1597-nl_brace_while=add
1598-nl_switch_brace=add
1599-nl_namespace_brace=add
1600-nl_template_class=add
1601-nl_class_brace=add
1602-nl_class_init_args=add
1603-nl_func_type_name=remove
1604-nl_func_proto_type_name=remove
1605-nl_func_paren=remove
1606-nl_func_decl_start=remove
1607-nl_func_decl_args=remove
1608-nl_func_decl_end=remove
1609-nl_fdef_brace=add
1610-mod_full_brace_do=add
1611-mod_full_brace_function=add
1612-mod_paren_on_return=remove
1613-pp_space=add
1614+#
1615+# Uncrustify optoins (with comments) for Drizzle
1616+#
1617+
1618+nl_after_brace_close = TRUE
1619+
1620+# The type of line endings
1621+newlines = lf # auto/lf/crlf/cr
1622+
1623+# The original size of tabs in the input
1624+input_tab_size = 8 # number
1625+
1626+# The size of tabs in the output (only used if align_with_tabs=true)
1627+output_tab_size = 3 # number
1628+
1629+# The ascii value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
1630+string_escape_char = 92 # number
1631+
1632+# Alternate string escape char for Pawn. Only works right before the quote char.
1633+string_escape_char2 = 0 # number
1634+
1635+#
1636+# Indenting
1637+#
1638+
1639+# The number of columns to indent per level.
1640+# Usually 2, 3, 4, or 8.
1641+indent_columns = 2 # number
1642+
1643+# How to use tabs when indenting code
1644+# 0=spaces only
1645+# 1=indent with tabs, align with spaces
1646+# 2=indent and align with tabs
1647+indent_with_tabs = 0 # number
1648+
1649+# Whether to indent strings broken by '\' so that they line up
1650+indent_align_string = true # false/true
1651+
1652+# The number of spaces to indent multi-line XML strings.
1653+# Requires indent_align_string=True
1654+indent_xml_string = 0 # number
1655+
1656+# Spaces to indent '{' from level
1657+indent_brace = 0 # number
1658+
1659+# Whether braces are indented to the body level
1660+indent_braces = false # false/true
1661+
1662+# Disabled indenting function braces if indent_braces is true
1663+indent_braces_no_func = false # false/true
1664+
1665+# Indent based on the size of the brace parent, ie 'if' => 3 spaces, 'for' => 4 spaces, etc.
1666+indent_brace_parent = false # false/true
1667+
1668+# Whether the 'namespace' body is indented
1669+indent_namespace = false # false/true
1670+
1671+# Whether the 'extern "C"' body is indented
1672+indent_extern = false # false/true
1673+
1674+# Whether the 'class' body is indented
1675+indent_class = true # false/true
1676+
1677+# Whether to indent the stuff after a leading class colon
1678+indent_class_colon = true # false/true
1679+
1680+# False=treat 'else\nif' as 'else if' for indenting purposes
1681+# True=indent the 'if' one level
1682+indent_else_if = false # false/true
1683+
1684+# True: indent continued function call parameters one indent level
1685+# False: align parameters under the open paren
1686+indent_func_call_param = false # false/true
1687+
1688+# Same as indent_func_call_param, but for function defs
1689+indent_func_def_param = false # false/true
1690+
1691+# Same as indent_func_call_param, but for function protos
1692+indent_func_proto_param = false # false/true
1693+
1694+# Same as indent_func_call_param, but for class declarations
1695+indent_func_class_param = false # false/true
1696+
1697+# Same as indent_func_call_param, but for class variable constructors
1698+indent_func_ctor_var_param = false # false/true
1699+
1700+# Same as indent_func_call_param, but for templates
1701+indent_template_param = false # false/true
1702+
1703+# Double the indent for indent_func_xxx_param options
1704+indent_func_param_double = false # false/true
1705+
1706+# Indentation column for standalone 'const' function decl/proto qualifier
1707+indent_func_const = 0 # number
1708+
1709+# Indentation column for standalone 'throw' function decl/proto qualifier
1710+indent_func_throw = 0 # number
1711+
1712+# The number of spaces to indent a continued '->' or '.'
1713+# Usually set to 0, 1, or indent_columns.
1714+indent_member = 3 # number
1715+
1716+# Spaces to indent single line ('//') comments on lines before code
1717+indent_sing_line_comments = 0 # number
1718+
1719+# If set, will indent trailing single line ('//') comments relative
1720+# to the code instead of trying to keep the same absolute column
1721+indent_relative_single_line_comments = false # false/true
1722+
1723+# Spaces to indent 'case' from 'switch'
1724+# Usually 0 or indent_columns.
1725+indent_switch_case = 0 # number
1726+
1727+# Spaces to shift the 'case' line, without affecting any other lines
1728+# Usually 0.
1729+indent_case_shift = 0 # number
1730+
1731+# Spaces to indent '{' from 'case'.
1732+# By default, the brace will appear under the 'c' in case.
1733+# Usually set to 0 or indent_columns.
1734+indent_case_brace = 0 # number
1735+
1736+# Whether to indent comments found in first column
1737+indent_col1_comment = false # false/true
1738+
1739+# How to indent goto labels
1740+# >0 : absolute column where 1 is the leftmost column
1741+# <=0 : subtract from brace indent
1742+indent_label = 1 # number
1743+
1744+# Same as indent_label, but for access specifiers that are followed by a colon
1745+indent_access_spec = 1 # number
1746+
1747+# Indent the code after an access specifier by one level.
1748+# If set, this option forces 'indent_access_spec=0'
1749+indent_access_spec_body = false # false/true
1750+
1751+# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
1752+indent_paren_nl = false # false/true
1753+
1754+# Controls the indent of a close paren after a newline.
1755+# 0: Indent to body level
1756+# 1: Align under the open paren
1757+# 2: Indent to the brace level
1758+indent_paren_close = 0 # number
1759+
1760+# Controls the indent of a comma when inside a paren.If TRUE, aligns under the open paren
1761+indent_comma_paren = false # false/true
1762+
1763+# Controls the indent of a BOOL operator when inside a paren.If TRUE, aligns under the open paren
1764+indent_bool_paren = false # false/true
1765+
1766+# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
1767+indent_square_nl = false # false/true
1768+
1769+# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies
1770+indent_preserve_sql = false # false/true
1771+
1772+#
1773+# Spacing options
1774+#
1775+
1776+# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
1777+sp_arith = force # ignore/add/remove/force
1778+
1779+# Add or remove space before assignment operator '=', '+=', etc
1780+sp_before_assign = remove # ignore/add/remove/force
1781+
1782+# Add or remove space after assignment operator '=', '+=', etc
1783+sp_after_assign = force # ignore/add/remove/force
1784+
1785+# Add or remove space around assignment '=' in enum
1786+sp_enum_assign = ignore # ignore/add/remove/force
1787+
1788+# Add or remove space around boolean operators '&&' and '||'
1789+sp_bool = force # ignore/add/remove/force
1790+
1791+# Add or remove space around compare operator '<', '>', '==', etc
1792+sp_compare = force # ignore/add/remove/force
1793+
1794+# Add or remove space inside '(' and ')'
1795+sp_inside_paren = remove # ignore/add/remove/force
1796+
1797+# Add or remove space between nested parens
1798+sp_paren_paren = remove # ignore/add/remove/force
1799+
1800+# Whether to balance spaces inside nested parens
1801+sp_balance_nested_parens = false # false/true
1802+
1803+# Add or remove space between ')' and '{'
1804+sp_paren_brace = ignore # ignore/add/remove/force
1805+
1806+# Add or remove space before pointer star '*'
1807+sp_before_ptr_star = force # ignore/add/remove/force
1808+
1809+# Add or remove space before pointer star '*' that isn't followed by a variable name
1810+# If set to 'ignore', sp_before_ptr_star is used instead.
1811+sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force
1812+
1813+# Add or remove space between pointer stars '*'
1814+sp_between_ptr_star = remove # ignore/add/remove/force
1815+
1816+# Add or remove space after pointer star '*', if followed by a word.
1817+sp_after_ptr_star = remove # ignore/add/remove/force
1818+
1819+# Add or remove space after a pointer star '*', if followed by a func proto/def.
1820+sp_after_ptr_star_func = ignore # ignore/add/remove/force
1821+
1822+# Add or remove space before a pointer star '*', if followed by a func proto/def.
1823+sp_before_ptr_star_func = ignore # ignore/add/remove/force
1824+
1825+# Add or remove space before a reference sign '&'
1826+sp_before_byref = remove # ignore/add/remove/force
1827+
1828+# Add or remove space before a reference sign '&' that isn't followed by a variable name
1829+# If set to 'ignore', sp_before_byref is used instead.
1830+sp_before_unnamed_byref = ignore # ignore/add/remove/force
1831+
1832+# Add or remove space after reference sign '&', if followed by a word.
1833+sp_after_byref = force # ignore/add/remove/force
1834+
1835+# Add or remove space after a reference sign '&', if followed by a func proto/def.
1836+sp_after_byref_func = ignore # ignore/add/remove/force
1837+
1838+# Add or remove space before a reference sign '&', if followed by a func proto/def.
1839+sp_before_byref_func = ignore # ignore/add/remove/force
1840+
1841+# Add or remove space between type and word
1842+sp_after_type = force # ignore/add/remove/force
1843+
1844+# Add or remove space in 'template <' vs 'template<'.
1845+# If set to ignore, sp_before_angle is used.
1846+sp_template_angle = ignore # ignore/add/remove/force
1847+
1848+# Add or remove space before '<>'
1849+sp_before_angle = remove # ignore/add/remove/force
1850+
1851+# Add or remove space inside '<' and '>'
1852+sp_inside_angle = remove # ignore/add/remove/force
1853+
1854+# Add or remove space after '<>'
1855+sp_after_angle = force # ignore/add/remove/force
1856+
1857+# Add or remove space between '<>' and '(' as found in 'new List<byte>();'
1858+sp_angle_paren = ignore # ignore/add/remove/force
1859+
1860+# Add or remove space between '<>' and a word as in 'List<byte> m;'
1861+sp_angle_word = ignore # ignore/add/remove/force
1862+
1863+# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
1864+sp_before_sparen = force # ignore/add/remove/force
1865+
1866+# Add or remove space inside if-condition '(' and ')'
1867+sp_inside_sparen = remove # ignore/add/remove/force
1868+
1869+# Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
1870+sp_after_sparen = force # ignore/add/remove/force
1871+
1872+# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
1873+sp_sparen_brace = add # ignore/add/remove/force
1874+
1875+# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
1876+sp_special_semi = ignore # ignore/add/remove/force
1877+
1878+# Add or remove space before ';'
1879+sp_before_semi = remove # ignore/add/remove/force
1880+
1881+# Add or remove space before ';' in non-empty 'for' statements
1882+sp_before_semi_for = ignore # ignore/add/remove/force
1883+
1884+# Add or remove space before a semicolon of an empty part of a for statment.
1885+sp_before_semi_for_empty = force # ignore/add/remove/force
1886+
1887+# Add or remove space after the final semicolon of an empty part of a for statment: for ( ; ; <here> ).
1888+sp_after_semi_for_empty = ignore # ignore/add/remove/force
1889+
1890+# Add or remove space before '[' (except '[]')
1891+sp_before_square = ignore # ignore/add/remove/force
1892+
1893+# Add or remove space before '[]'
1894+sp_before_squares = ignore # ignore/add/remove/force
1895+
1896+# Add or remove space inside '[' and ']'
1897+sp_inside_square = remove # ignore/add/remove/force
1898+
1899+# Add or remove space after ','
1900+sp_after_comma = force # ignore/add/remove/force
1901+
1902+# Add or remove space before ','
1903+sp_before_comma = remove # ignore/add/remove/force
1904+
1905+# Add or remove space after class ':'
1906+sp_after_class_colon = ignore # ignore/add/remove/force
1907+
1908+# Add or remove space before class ':'
1909+sp_before_class_colon = ignore # ignore/add/remove/force
1910+
1911+# Add or remove space between 'operator' and operator sign
1912+sp_after_operator = ignore # ignore/add/remove/force
1913+
1914+# Add or remove space between the operator symbol and the open paren, as in 'operator ++('
1915+sp_after_operator_sym = ignore # ignore/add/remove/force
1916+
1917+# Add or remove space after C/D cast, ie 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a'
1918+sp_after_cast = remove # ignore/add/remove/force
1919+
1920+# Add or remove spaces inside cast parens
1921+sp_inside_paren_cast = remove # ignore/add/remove/force
1922+
1923+# Add or remove space between the type and open paren in a C++ cast, ie 'int(exp)' vs 'int (exp)'
1924+sp_cpp_cast_paren = remove # ignore/add/remove/force
1925+
1926+# Add or remove space between 'sizeof' and '('
1927+sp_sizeof_paren = remove # ignore/add/remove/force
1928+
1929+# Add or remove space after the tag keyword (Pawn)
1930+sp_after_tag = ignore # ignore/add/remove/force
1931+
1932+# Add or remove space inside enum '{' and '}'
1933+sp_inside_braces_enum = force # ignore/add/remove/force
1934+
1935+# Add or remove space inside struct/union '{' and '}'
1936+sp_inside_braces_struct = force # ignore/add/remove/force
1937+
1938+# Add or remove space inside '{' and '}'
1939+sp_inside_braces = force # ignore/add/remove/force
1940+
1941+# Add or remove space inside '{}'
1942+sp_inside_braces_empty = ignore # ignore/add/remove/force
1943+
1944+# Add or remove space between return type and function name
1945+# A minimum of 1 is forced except for pointer return types.
1946+sp_type_func = force # ignore/add/remove/force
1947+
1948+# Add or remove space between function name and '(' on function declaration
1949+sp_func_proto_paren = remove # ignore/add/remove/force
1950+
1951+# Add or remove space between function name and '(' on function definition
1952+sp_func_def_paren = remove # ignore/add/remove/force
1953+
1954+# Add or remove space inside empty function '()'
1955+sp_inside_fparens = ignore # ignore/add/remove/force
1956+
1957+# Add or remove space inside function '(' and ')'
1958+sp_inside_fparen = remove # ignore/add/remove/force
1959+
1960+# Add or remove space between ']' and '(' when part of a function call.
1961+sp_square_fparen = ignore # ignore/add/remove/force
1962+
1963+# Add or remove space between ')' and '{' of function
1964+sp_fparen_brace = add # ignore/add/remove/force
1965+
1966+# Add or remove space between function name and '(' on function calls
1967+sp_func_call_paren = remove # ignore/add/remove/force
1968+
1969+# Add or remove space between the user function name and '(' on function calls
1970+# You need to set a keyword to be a user function, like this: 'set func_call_user _' in the config file.
1971+sp_func_call_user_paren = ignore # ignore/add/remove/force
1972+
1973+# Add or remove space between a constructor/destructor and the open paren
1974+sp_func_class_paren = remove # ignore/add/remove/force
1975+
1976+# Add or remove space between 'return' and '('
1977+sp_return_paren = remove # ignore/add/remove/force
1978+
1979+# Add or remove space between '__attribute__' and '('
1980+sp_attribute_paren = remove # ignore/add/remove/force
1981+
1982+# Add or remove space between 'defined' and '(' in '#if defined (FOO)'
1983+sp_defined_paren = remove # ignore/add/remove/force
1984+
1985+# Add or remove space between 'throw' and '(' in 'throw (something)'
1986+sp_throw_paren = ignore # ignore/add/remove/force
1987+
1988+# Add or remove space between macro and value
1989+sp_macro = ignore # ignore/add/remove/force
1990+
1991+# Add or remove space between macro function ')' and value
1992+sp_macro_func = ignore # ignore/add/remove/force
1993+
1994+# Add or remove space between 'else' and '{' if on the same line
1995+sp_else_brace = ignore # ignore/add/remove/force
1996+
1997+# Add or remove space between '}' and 'else' if on the same line
1998+sp_brace_else = ignore # ignore/add/remove/force
1999+
2000+# Add or remove space between '}' and the name of a typedef on the same line
2001+sp_brace_typedef = force # ignore/add/remove/force
2002+
2003+# Add or remove space between 'catch' and '{' if on the same line
2004+sp_catch_brace = ignore # ignore/add/remove/force
2005+
2006+# Add or remove space between '}' and 'catch' if on the same line
2007+sp_brace_catch = ignore # ignore/add/remove/force
2008+
2009+# Add or remove space between 'finally' and '{' if on the same line
2010+sp_finally_brace = ignore # ignore/add/remove/force
2011+
2012+# Add or remove space between '}' and 'finally' if on the same line
2013+sp_brace_finally = ignore # ignore/add/remove/force
2014+
2015+# Add or remove space between 'try' and '{' if on the same line
2016+sp_try_brace = ignore # ignore/add/remove/force
2017+
2018+# Add or remove space between get/set and '{' if on the same line
2019+sp_getset_brace = ignore # ignore/add/remove/force
2020+
2021+# Add or remove space before the '::' operator
2022+sp_before_dc = remove # ignore/add/remove/force
2023+
2024+# Add or remove space after the '::' operator
2025+sp_after_dc = remove # ignore/add/remove/force
2026+
2027+# Add or remove around the D named array initializer ':' operator
2028+sp_d_array_colon = ignore # ignore/add/remove/force
2029+
2030+# Add or remove space after the '!' (not) operator.
2031+sp_not = force # ignore/add/remove/force
2032+
2033+# Add or remove space after the '~' (invert) operator.
2034+sp_inv = remove # ignore/add/remove/force
2035+
2036+# Add or remove space after the '&' (address-of) operator.
2037+# This does not affect the spacing after a '&' that is part of a type.
2038+sp_addr = remove # ignore/add/remove/force
2039+
2040+# Add or remove space around the '.' or '->' operators
2041+sp_member = remove # ignore/add/remove/force
2042+
2043+# Add or remove space after the '*' (dereference) operator.
2044+# This does not affect the spacing after a '*' that is part of a type.
2045+sp_deref = remove # ignore/add/remove/force
2046+
2047+# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'
2048+sp_sign = remove # ignore/add/remove/force
2049+
2050+# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'
2051+sp_incdec = remove # ignore/add/remove/force
2052+
2053+# Add or remove space before a backslash-newline at the end of a line
2054+sp_before_nl_cont = add # ignore/add/remove/force
2055+
2056+# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;'
2057+sp_after_oc_scope = ignore # ignore/add/remove/force
2058+
2059+# Add or remove space after the colon in message specs
2060+# '-(int) f:(int) x;' vs '-(int) f: (int) x;'
2061+sp_after_oc_colon = ignore # ignore/add/remove/force
2062+
2063+# Add or remove space before the colon in message specs
2064+# '-(int) f: (int) x;' vs '-(int) f : (int) x;'
2065+sp_before_oc_colon = ignore # ignore/add/remove/force
2066+
2067+# Add or remove space after the colon in message specs
2068+# '[object setValue:1];' vs '[object setValue: 1];'
2069+sp_after_send_oc_colon = ignore # ignore/add/remove/force
2070+
2071+# Add or remove space before the colon in message specs
2072+# '[object setValue:1];' vs '[object setValue :1];'
2073+sp_before_send_oc_colon = ignore # ignore/add/remove/force
2074+
2075+# Add or remove space after the (type) in message specs
2076+# '-(int) f: (int) x;' vs '-(int) f: (int)x;'
2077+sp_after_oc_type = ignore # ignore/add/remove/force
2078+
2079+# Add or remove space around the ':' in 'b ? t : f'
2080+sp_cond_colon = ignore # ignore/add/remove/force
2081+
2082+# Add or remove space around the '?' in 'b ? t : f'
2083+sp_cond_question = ignore # ignore/add/remove/force
2084+
2085+# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
2086+sp_case_label = remove # ignore/add/remove/force
2087+
2088+#
2089+# Code alignment (not left column spaces/tabs)
2090+#
2091+
2092+# Whether to keep non-indenting tabs
2093+align_keep_tabs = false # false/true
2094+
2095+# Whether to use tabs for alinging
2096+align_with_tabs = false # false/true
2097+
2098+# Whether to bump out to the next tab when aligning
2099+align_on_tabstop = false # false/true
2100+
2101+# Whether to left-align numbers
2102+align_number_left = false # false/true
2103+
2104+# Align variable definitions in prototypes and functions
2105+align_func_params = false # false/true
2106+
2107+# Align parameters in single-line functions that have the same name.
2108+# The function names must already be aligned with each other.
2109+align_same_func_call_params = false # false/true
2110+
2111+# The span for aligning variable definitions (0=don't align)
2112+align_var_def_span = 1 # number
2113+
2114+# How to align the star in variable definitions.
2115+# 0=Part of the type 'void * foo;'
2116+# 1=Part of the variable 'void *foo;'
2117+# 2=Dangling 'void *foo;'
2118+align_var_def_star_style = 1 # number
2119+
2120+# How to align the '&' in variable definitions.
2121+# 0=Part of the type
2122+# 1=Part of the variable
2123+# 2=Dangling
2124+align_var_def_amp_style = 0 # number
2125+
2126+# The threshold for aligning variable definitions (0=no limit)
2127+align_var_def_thresh = 1 # number
2128+
2129+# The gap for aligning variable definitions
2130+align_var_def_gap = 0 # number
2131+
2132+# Whether to align the colon in struct bit fields
2133+align_var_def_colon = false # false/true
2134+
2135+# Whether to align inline struct/enum/union variable definitions
2136+align_var_def_inline = false # false/true
2137+
2138+# The span for aligning on '=' in assignments (0=don't align)
2139+align_assign_span = 0 # number
2140+
2141+# The threshold for aligning on '=' in assignments (0=no limit)
2142+align_assign_thresh = 12 # number
2143+
2144+# The span for aligning on '=' in enums (0=don't align)
2145+align_enum_equ_span = 0 # number
2146+
2147+# The threshold for aligning on '=' in enums (0=no limit)
2148+align_enum_equ_thresh = 0 # number
2149+
2150+# The span for aligning struct/union (0=don't align)
2151+align_var_struct_span = 0 # number
2152+
2153+# The threshold for aligning struct/union member definitions (0=no limit)
2154+align_var_struct_thresh = 0 # number
2155+
2156+# The gap for aligning struct/union member definitions
2157+align_var_struct_gap = 0 # number
2158+
2159+# The span for aligning struct initializer values (0=don't align)
2160+align_struct_init_span = 3 # number
2161+
2162+# The minimum space between the type and the synonym of a typedef
2163+align_typedef_gap = 3 # number
2164+
2165+# The span for aligning single-line typedefs (0=don't align)
2166+align_typedef_span = 5 # number
2167+
2168+# How to align typedef'd functions with other typedefs
2169+# 0: Don't mix them at all
2170+# 1: align the open paren with the types
2171+# 2: align the function type name with the other type names
2172+align_typedef_func = 0 # number
2173+
2174+# Controls the positioning of the '*' in typedefs. Just try it.
2175+# 0: Align on typdef type, ignore '*'
2176+# 1: The '*' is part of type name: typedef int *pint;
2177+# 2: The '*' is part of the type, but dangling: typedef int *pint;
2178+align_typedef_star_style = 0 # number
2179+
2180+# Controls the positioning of the '&' in typedefs. Just try it.
2181+# 0: Align on typdef type, ignore '&'
2182+# 1: The '&' is part of type name: typedef int &pint;
2183+# 2: The '&' is part of the type, but dangling: typedef int &pint;
2184+align_typedef_amp_style = 0 # number
2185+
2186+# The span for aligning comments that end lines (0=don't align)
2187+align_right_cmt_span = 3 # number
2188+
2189+# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment
2190+align_right_cmt_mix = false # false/true
2191+
2192+# If a trailing comment is more than this number of columns away from the text it follows,
2193+# it will qualify for being aligned.
2194+align_right_cmt_gap = 0 # number
2195+
2196+# The span for aligning function prototypes (0=don't align)
2197+align_func_proto_span = 0 # number
2198+
2199+# Minimum gap between the return type and the function name.
2200+align_func_proto_gap = 0 # number
2201+
2202+# Whether to mix aligning prototype and variable declarations.
2203+# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options.
2204+align_mix_var_proto = false # false/true
2205+
2206+# Align single-line functions with function prototypes, uses align_func_proto_span
2207+align_single_line_func = false # false/true
2208+
2209+# Aligning the open brace of single-line functions.
2210+# Requires align_single_line_func=true, uses align_func_proto_span
2211+align_single_line_brace = false # false/true
2212+
2213+# Gap for align_single_line_brace.
2214+align_single_line_brace_gap = 0 # number
2215+
2216+# The span for aligning ObjC msg spec (0=don't align)
2217+align_oc_msg_spec_span = 0 # number
2218+
2219+# Whether to align macros wrapped with a backslash and a newline.
2220+# This will not work right if the macro contains a multi-line comment.
2221+align_nl_cont = true # false/true
2222+
2223+# The minimum space between label and value of a preprocessor define
2224+align_pp_define_gap = 4 # number
2225+
2226+# The span for aligning on '#define' bodies (0=don't align)
2227+align_pp_define_span = 3 # number
2228+
2229+# Align lines that start with '<<' with previous '<<'. Default=true
2230+align_left_shift = true # false/true
2231+
2232+#
2233+# Newline adding and removing options
2234+#
2235+
2236+# Whether to collapse empty blocks between '{' and '}'
2237+nl_collapse_empty_body = true # false/true
2238+
2239+# Don't split one-line braced assignments - 'foo_t f = { 1, 2 };'
2240+nl_assign_leave_one_liners = false # false/true
2241+
2242+# Don't split one-line braced statements inside a class xx { } body
2243+nl_class_leave_one_liners = false # false/true
2244+
2245+# Don't split one-line enums: 'enum foo { BAR = 15 };'
2246+nl_enum_leave_one_liners = false # false/true
2247+
2248+# Don't split one-line get or set functions
2249+nl_getset_leave_one_liners = false # false/true
2250+
2251+# Don't split one-line function definitions - 'int foo() { return 0; }'
2252+nl_func_leave_one_liners = false # false/true
2253+
2254+# Don't split one-line if/else statements - 'if(a) b++;'
2255+nl_if_leave_one_liners = false # false/true
2256+
2257+# Add or remove newlines at the start of the file
2258+nl_start_of_file = remove # ignore/add/remove/force
2259+
2260+# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
2261+nl_start_of_file_min = 0 # number
2262+
2263+# Add or remove newline at the end of the file
2264+nl_end_of_file = force # ignore/add/remove/force
2265+
2266+# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
2267+nl_end_of_file_min = 1 # number
2268+
2269+# Add or remove newline between '=' and '{'
2270+nl_assign_brace = force # ignore/add/remove/force
2271+
2272+# Add or remove newline between '=' and '[' (D only)
2273+nl_assign_square = force # ignore/add/remove/force
2274+
2275+# Add or remove newline after '= [' (D only). Will also affect the newline before the ']'
2276+nl_after_square_assign = force # ignore/add/remove/force
2277+
2278+# The number of newlines after a block of variable definitions
2279+nl_func_var_def_blk = 1 # number
2280+
2281+# Add or remove newline between a function call's ')' and '{', as in:
2282+# list_for_each(item, &list) { }
2283+nl_fcall_brace = force # ignore/add/remove/force
2284+
2285+# Add or remove newline between 'enum' and '{'
2286+nl_enum_brace = force # ignore/add/remove/force
2287+
2288+# Add or remove newline between 'struct and '{'
2289+nl_struct_brace = force # ignore/add/remove/force
2290+
2291+# Add or remove newline between 'union' and '{'
2292+nl_union_brace = force # ignore/add/remove/force
2293+
2294+# Add or remove newline between 'if' and '{'
2295+nl_if_brace = force # ignore/add/remove/force
2296+
2297+# Add or remove newline between '}' and 'else'
2298+nl_brace_else = force # ignore/add/remove/force
2299+
2300+# Add or remove newline between 'else if' and '{'
2301+# If set to ignore, nl_if_brace is used instead
2302+nl_elseif_brace = force # ignore/add/remove/force
2303+
2304+# Add or remove newline between 'else' and '{'
2305+nl_else_brace = force # ignore/add/remove/force
2306+
2307+# Add or remove newline between 'else' and 'if'
2308+nl_else_if = remove # ignore/add/remove/force
2309+
2310+# Add or remove newline between '}' and 'finally'
2311+nl_brace_finally = force # ignore/add/remove/force
2312+
2313+# Add or remove newline between 'finally' and '{'
2314+nl_finally_brace = force # ignore/add/remove/force
2315+
2316+# Add or remove newline between 'try' and '{'
2317+nl_try_brace = force # ignore/add/remove/force
2318+
2319+# Add or remove newline between get/set and '{'
2320+nl_getset_brace = force # ignore/add/remove/force
2321+
2322+# Add or remove newline between 'for' and '{'
2323+nl_for_brace = force # ignore/add/remove/force
2324+
2325+# Add or remove newline between 'catch' and '{'
2326+nl_catch_brace = force # ignore/add/remove/force
2327+
2328+# Add or remove newline between '}' and 'catch'
2329+nl_brace_catch = force # ignore/add/remove/force
2330+
2331+# Add or remove newline between 'while' and '{'
2332+nl_while_brace = force # ignore/add/remove/force
2333+
2334+# Add or remove newline between 'do' and '{'
2335+nl_do_brace = force # ignore/add/remove/force
2336+
2337+# Add or remove newline between '}' and 'while' of 'do' statement
2338+nl_brace_while = force # ignore/add/remove/force
2339+
2340+# Add or remove newline between 'switch' and '{'
2341+nl_switch_brace = force # ignore/add/remove/force
2342+
2343+# Add or remove newline when condition spans two or more lines
2344+nl_multi_line_cond = false # false/true
2345+
2346+# Force a newline in a define after the macro name for multi-line defines.
2347+nl_multi_line_define = true # false/true
2348+
2349+# Whether to put a newline before 'case' statement
2350+nl_before_case = true # false/true
2351+
2352+# Add or remove newline between ')' and 'throw'
2353+nl_before_throw = ignore # ignore/add/remove/force
2354+
2355+# Whether to put a newline after 'case' statement
2356+nl_after_case = true # false/true
2357+
2358+# Newline between namespace and {
2359+nl_namespace_brace = add # ignore/add/remove/force
2360+
2361+# Add or remove newline between 'template<>' and whatever follows.
2362+nl_template_class = add # ignore/add/remove/force
2363+
2364+# Add or remove newline between 'class' and '{'
2365+nl_class_brace = add # ignore/add/remove/force
2366+
2367+# Add or remove newline after each ',' in the constructor member initialization
2368+nl_class_init_args = force # ignore/add/remove/force
2369+
2370+# Add or remove newline between return type and function name in definition
2371+nl_func_type_name = ignore # ignore/add/remove/force
2372+
2373+# Add or remove newline between return type and function name in a prototype
2374+nl_func_proto_type_name = remove # ignore/add/remove/force
2375+
2376+# Add or remove newline between a function name and the opening '('
2377+nl_func_paren = remove # ignore/add/remove/force
2378+
2379+# Add or remove newline after '(' in a function declaration
2380+nl_func_decl_start = remove # ignore/add/remove/force
2381+
2382+# Add or remove newline after each ',' in a function declaration
2383+nl_func_decl_args = remove # ignore/add/remove/force
2384+
2385+# Add or remove newline before the ')' in a function declaration
2386+nl_func_decl_end = remove # ignore/add/remove/force
2387+
2388+# Add or remove newline between function signature and '{'
2389+nl_fdef_brace = add # ignore/add/remove/force
2390+
2391+# Whether to put a newline after 'return' statement
2392+nl_after_return = true # false/true
2393+
2394+# Add or remove a newline between the return keyword and return expression.
2395+nl_return_expr = remove # ignore/add/remove/force
2396+
2397+# Whether to put a newline after semicolons, except in 'for' statements
2398+nl_after_semicolon = true # false/true
2399+
2400+# Whether to put a newline after brace open.
2401+# This also adds a newline before the matching brace close.
2402+nl_after_brace_open = true # false/true
2403+
2404+# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is
2405+# placed between the open brace and a trailing single-line comment.
2406+nl_after_brace_open_cmt = false # false/true
2407+
2408+# Whether to put a newline after a virtual brace open.
2409+# These occur in un-braced if/while/do/for statement bodies.
2410+nl_after_vbrace_open = true # false/true
2411+
2412+# Whether to alter newlines in '#define' macros
2413+nl_define_macro = true # false/true
2414+
2415+# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'
2416+nl_squeeze_ifdef = false # false/true
2417+
2418+# Add or remove newline before 'if'
2419+nl_before_if = ignore # ignore/add/remove/force
2420+
2421+# Add or remove newline after 'if'
2422+nl_after_if = ignore # ignore/add/remove/force
2423+
2424+# Add or remove newline before 'for'
2425+nl_before_for = ignore # ignore/add/remove/force
2426+
2427+# Add or remove newline after 'for'
2428+nl_after_for = ignore # ignore/add/remove/force
2429+
2430+# Add or remove newline before 'while'
2431+nl_before_while = ignore # ignore/add/remove/force
2432+
2433+# Add or remove newline after 'while'
2434+nl_after_while = ignore # ignore/add/remove/force
2435+
2436+# Add or remove newline before 'switch'
2437+nl_before_switch = force # ignore/add/remove/force
2438+
2439+# Add or remove newline after 'switch'
2440+nl_after_switch = force # ignore/add/remove/force
2441+
2442+# Add or remove newline before 'do'
2443+nl_before_do = ignore # ignore/add/remove/force
2444+
2445+# Add or remove newline after 'do'
2446+nl_after_do = ignore # ignore/add/remove/force
2447+
2448+# Whether to double-space commented-entries in struct/enum
2449+nl_ds_struct_enum_cmt = false # false/true
2450+
2451+# Whether to double-space before the close brace of a struct/union/enum
2452+nl_ds_struct_enum_close_brace = false # false/true
2453+
2454+# Add or remove a newline around a class colon.
2455+# Related to pos_class_colon, nl_class_init_args, and pos_comma.
2456+nl_class_colon = ignore # ignore/add/remove/force
2457+
2458+# Change simple unbraced if statements into a one-liner
2459+# 'if(b)\n i++;' => 'if(b) i++;'
2460+nl_create_if_one_liner = false # false/true
2461+
2462+# Change simple unbraced for statements into a one-liner
2463+# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);'
2464+nl_create_for_one_liner = false # false/true
2465+
2466+# Change simple unbraced while statements into a one-liner
2467+# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);'
2468+nl_create_while_one_liner = false # false/true
2469+
2470+#
2471+# Positioning options
2472+#
2473+
2474+# The position of arithmetic operators in wrapped expressions
2475+pos_arith = lead # ignore/lead/trail
2476+
2477+# The position of assignment in wrapped expressions
2478+pos_assign = trail # ignore/lead/trail
2479+
2480+# The position of boolean operators in wrapped expressions
2481+pos_bool = lead # ignore/lead/trail
2482+
2483+# The position of the comma in wrapped expressions
2484+pos_comma = trail # ignore/lead/trail
2485+
2486+# The position of the comma in the constructor initialization list
2487+pos_class_comma = trail # ignore/lead/trail
2488+
2489+# The position of colons between constructor and member initialization
2490+pos_class_colon = lead # ignore/lead/trail
2491+
2492+#
2493+# Line Splitting options
2494+#
2495+
2496+# Try to limit code width to N number of columns
2497+code_width = 76 # number
2498+
2499+# Whether to fully split long 'for' statements at semi-colons
2500+ls_for_split_full = true # false/true
2501+
2502+# Whether to fully split long function protos/calls at commas
2503+ls_func_split_full = true # false/true
2504+
2505+#
2506+# Blank line options
2507+#
2508+
2509+# The maximum consecutive newlines
2510+nl_max = 4 # number
2511+
2512+# The number of newlines after a function prototype, if followed by another function prototype
2513+nl_after_func_proto = 0 # number
2514+
2515+# The number of newlines after a function prototype, if not followed by another function prototype
2516+nl_after_func_proto_group = 3 # number
2517+
2518+# The number of newlines after '}' of a multi-line function body
2519+nl_after_func_body = 3 # number
2520+
2521+# The number of newlines after '}' of a single line function body
2522+nl_after_func_body_one_liner = 1 # number
2523+
2524+# The minimum number of newlines before a multi-line comment.
2525+# Doesn't apply if after a brace open or another multi-line comment.
2526+nl_before_block_comment = 2 # number
2527+
2528+# The minimum number of newlines before a single-line C comment.
2529+# Doesn't apply if after a brace open or other single-line C comments.
2530+nl_before_c_comment = 1 # number
2531+
2532+# The minimum number of newlines before a CPP comment.
2533+# Doesn't apply if after a brace open or other CPP comments.
2534+nl_before_cpp_comment = 0 # number
2535+
2536+# Whether to force a newline after a mulit-line comment.
2537+nl_after_multiline_comment = false # false/true
2538+
2539+# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
2540+# Will not change the newline count if after a brace open.
2541+# 0 = No change.
2542+nl_before_access_spec = 1 # number
2543+
2544+# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
2545+# 0 = No change.
2546+nl_after_access_spec = 1 # number
2547+
2548+# The number of newlines between a function def and the function comment.
2549+# 0 = No change.
2550+nl_comment_func_def = 0 # number
2551+
2552+# Whether to remove blank lines after '{'
2553+eat_blanks_after_open_brace = true # false/true
2554+
2555+# Whether to remove blank lines before '}'
2556+eat_blanks_before_close_brace = true # false/true
2557+
2558+#
2559+# Code modifying options (non-whitespace)
2560+#
2561+
2562+# Add or remove braces on single-line 'do' statement
2563+mod_full_brace_do = add # ignore/add/remove/force
2564+
2565+# Add or remove braces on single-line 'for' statement
2566+mod_full_brace_for = add # ignore/add/remove/force
2567+
2568+# Add or remove braces on single-line function defintions. (Pawn)
2569+mod_full_brace_function = ignore # ignore/add/remove/force
2570+
2571+# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'.
2572+mod_full_brace_if = ignore # ignore/add/remove/force
2573+
2574+# Don't remove braces around statements that span N newlines
2575+mod_full_brace_nl = 0 # number
2576+
2577+# Add or remove braces on single-line 'while' statement
2578+mod_full_brace_while = add # ignore/add/remove/force
2579+
2580+# Add or remove unnecessary paren on 'return' statement
2581+mod_paren_on_return = remove # ignore/add/remove/force
2582+
2583+# Whether to change optional semicolons to real semicolons
2584+mod_pawn_semicolon = false # false/true
2585+
2586+# Add parens on 'while' and 'if' statement around bools
2587+mod_full_paren_if_bool = true # false/true
2588+
2589+# Whether to remove superfluous semicolons
2590+mod_remove_extra_semicolon = true # false/true
2591+
2592+# If a function body exceeds the specified number of newlines and doesn't have a comment after
2593+# the close brace, a comment will be added.
2594+mod_add_long_function_closebrace_comment = 5 # number
2595+
2596+# If a switch body exceeds the specified number of newlines and doesn't have a comment after
2597+# the close brace, a comment will be added.
2598+mod_add_long_switch_closebrace_comment = 5 # number
2599+
2600+# If TRUE, will sort consecutive single-line 'import' statements [Java, D]
2601+mod_sort_import = false # false/true
2602+
2603+# If TRUE, will sort consecutive single-line 'using' statements [C#]
2604+mod_sort_using = false # false/true
2605+
2606+# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C]
2607+# This is generally a bad idea, as it may break your code.
2608+mod_sort_include = false # false/true
2609+
2610+# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace.
2611+mod_move_case_break = false # false/true
2612+
2613+# If TRUE, it will remove a void 'return;' that appears as the last statement in a function.
2614+mod_remove_empty_return = true # false/true
2615+
2616+#
2617+# Comment modifications
2618+#
2619+
2620+# Try to wrap comments at cmt_width columns
2621+cmt_width = 0 # number
2622+
2623+# If false, disable all multi-line comment changes, including cmt_width and leading chars.
2624+# Default is true.
2625+cmt_indent_multi = true # false/true
2626+
2627+# Whether to group c-comments that look like they are in a block
2628+cmt_c_group = false # false/true
2629+
2630+# Whether to put an empty '/*' on the first line of the combined c-comment
2631+cmt_c_nl_start = false # false/true
2632+
2633+# Whether to put a newline before the closing '*/' of the combined c-comment
2634+cmt_c_nl_end = false # false/true
2635+
2636+# Whether to group cpp-comments that look like they are in a block
2637+cmt_cpp_group = false # false/true
2638+
2639+# Whether to put an empty '/*' on the first line of the combined cpp-comment
2640+cmt_cpp_nl_start = false # false/true
2641+
2642+# Whether to put a newline before the closing '*/' of the combined cpp-comment
2643+cmt_cpp_nl_end = false # false/true
2644+
2645+# Whether to change cpp-comments into c-comments
2646+cmt_cpp_to_c = false # false/true
2647+
2648+# Whether to put a star on subsequent comment lines
2649+cmt_star_cont = true # false/true
2650+
2651+# The number of spaces to insert at the start of subsequent comment lines
2652+cmt_sp_before_star_cont = 0 # number
2653+
2654+# The number of spaces to insert after the star on subsequent comment lines
2655+cmt_sp_after_star_cont = 1 # number
2656+
2657+# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
2658+# the comment are the same length. Default=True
2659+cmt_multi_check_last = true # false/true
2660+
2661+# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment.
2662+# Will substitue $(filename) with the current file's name.
2663+cmt_insert_file_header = "" # string
2664+
2665+# The filename that contains text to insert before a function implementation if the function isn't preceeded with a C/C++ comment.
2666+# Will substitue $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff.
2667+# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... }
2668+cmt_insert_func_header = "" # string
2669+
2670+# The filename that contains text to insert before a class if the class isn't preceeded with a C/C++ comment.
2671+# Will substitue $(class) with the class name.
2672+cmt_insert_class_header = "" # string
2673+
2674+# If a preprocessor is encountered when stepping backwards from a function name, then
2675+# this option decides whether the comment should be inserted.
2676+# Affects cmt_insert_func_header and cmt_insert_class_header.
2677+cmt_insert_before_preproc = false # false/true
2678+
2679+#
2680+# Preprocessor options
2681+#
2682+
2683+# Control indent of preprocessors inside #if blocks at brace level 0
2684+pp_indent = remove # ignore/add/remove/force
2685+
2686+# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false)
2687+pp_indent_at_level = false # false/true
2688+
2689+# If pp_indent_at_level=false, specifies the number of columns to indent per level. Default=1.
2690+pp_indent_count = 1 # number
2691+
2692+# Add or remove space after # based on pp_level of #if blocks
2693+pp_space = add # ignore/add/remove/force
2694+
2695+# Sets the number of spaces added with pp_space
2696+pp_space_count = 1 # number
2697+
2698+# The indent for #region and #endregion in C# and '#pragma region' in C/C++
2699+pp_indent_region = 0 # number
2700+
2701+# Whether to indent the code between #region and #endregion
2702+pp_region_indent_code = false # false/true
2703+
2704+# If pp_indent_at_level=true, sets the indent for #if, #else, and #endif when not at file-level
2705+pp_indent_if = 0 # number
2706+
2707+# Control whether to indent the code between #if, #else and #endif when not at file-level
2708+pp_if_indent_code = false # false/true
2709+
2710+# Whether to indent '#define' at the brace level (true) or from column 1 (false)
2711+pp_define_at_level = false # false/true
2712+
2713+# You can force a token to be a type with the 'type' option.
2714+# Example:
2715+# type myfoo1 myfoo2
2716+#
2717+# You can create custom macro-based indentation using macro-open,
2718+# macro-else and macro-close.
2719+# Example:
2720+# macro-open BEGIN_TEMPLATE_MESSAGE_MAP
2721+# macro-open BEGIN_MESSAGE_MAP
2722+# macro-close END_MESSAGE_MAP
2723+#
2724+# You can assign any keyword to any type with the set option.
2725+# set func_call_user _ N_
2726
2727=== modified file 'configure.ac'
2728--- configure.ac 2009-08-20 16:14:47 +0000
2729+++ configure.ac 2009-09-09 00:38:19 +0000
2730@@ -30,8 +30,6 @@
2731 AC_DEFINE([DRIZZLE_VERSION_ID],RELEASE_ID,
2732 [Version ID that can be easily used for numeric comparison])
2733
2734-AC_DEFINE([_BACKWARD_BACKWARD_WARNING_H],[1],[Hack to disable deprecation warning in gcc])
2735-
2736 # The port that was assigned by IANA.
2737 DRIZZLE_TCP_PORT_DEFAULT=4427
2738
2739@@ -43,11 +41,6 @@
2740 AS_IF([test "x$GPERF" = "x"],
2741 AC_MSG_ERROR("Drizzle requires gperf to build."))
2742
2743-AC_PATH_PROG(LCOV, lcov)
2744-AC_PATH_PROG(GENHTML, genhtml)
2745-
2746-AM_CONDITIONAL(HAVE_LCOV,[test "x$LCOV" != "x"])
2747-
2748 AC_CHECK_PROGS(YACC, ['bison -y'])
2749 AS_IF([test "x$YACC" = "x" -a "$building_from_bzr" = "yes"],[
2750 AC_MSG_ERROR(["bison is required for Drizzle to build from a bzr branch"])
2751@@ -64,7 +57,12 @@
2752 AM_CONDITIONAL([BUILD_GETTEXT],[test "x$MSGMERGE" != "x" -a "x$MSGMERGE" != "x:"])
2753
2754
2755+dnl We need to turn on our CXXFLAGS to make sure it shows up correctly
2756+save_CXXFLAGS="${CXXFLAGS}"
2757+CXXFLAGS="${CXXFLAGS} ${AM_CXXFLAGS}"
2758 AC_CXX_STL_HASH
2759+CXXFLAGS="${save_CXXFLAGS}"
2760+
2761 AC_CXX_CSTDINT
2762 AC_CXX_CINTTYPES
2763
2764@@ -269,21 +267,35 @@
2765 #--------------------------------------------------------------------
2766
2767 AC_HEADER_DIRENT
2768-AC_HEADER_STDC
2769 AC_HEADER_SYS_WAIT
2770 AC_HEADER_STDBOOL
2771+dnl Checks for header files.
2772+dnl mysys/my_lib.cc
2773+AC_CHECK_HEADERS(dirent.h ndir.h sys/dir.h sys/ndir.h)
2774+dnl drizzled/drizzled.cc
2775+AC_CHECK_HEADERS(select.h sys/select.h sys/mman.h)
2776+dnl mysys/mf_tempfile.cc
2777+AC_CHECK_HEADERS(paths.h)
2778+
2779+dnl unverified for now
2780+AC_CHECK_HEADERS(termcap.h asm/termbits.h grp.h)
2781 AC_CHECK_HEADERS(fcntl.h float.h fpu_control.h ieeefp.h)
2782-AC_CHECK_HEADERS(limits.h pwd.h select.h linux/config.h)
2783+AC_CHECK_HEADERS(pwd.h)
2784 AC_CHECK_HEADERS(sys/fpu.h utime.h sys/utime.h )
2785 AC_CHECK_HEADERS(synch.h sys/mman.h sys/socket.h)
2786+AC_CHECK_HEADERS(sched.h)
2787+AC_CHECK_HEADERS(sys/prctl.h ieeefp.h)
2788+AC_CHECK_HEADERS(execinfo.h)
2789+
2790 AC_CHECK_HEADERS([curses.h term.h],[],[],
2791 [[#ifdef HAVE_CURSES_H
2792 # include <curses.h>
2793 #endif
2794 ]])
2795-AC_CHECK_HEADERS(termio.h termios.h sched.h alloca.h)
2796-AC_CHECK_HEADERS(sys/prctl.h ieeefp.h)
2797-AC_CHECK_HEADERS(execinfo.h)
2798+AC_CHECK_HEADERS(termio.h termios.h)
2799+AS_IF([test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"],[
2800+ AC_CHECK_FUNC(gtty, [], [AC_CHECK_LIB(compat, gtty)])
2801+])
2802
2803 #--------------------------------------------------------------------
2804 # Check for system libraries. Adds the library to $LIBS
2805@@ -291,88 +303,57 @@
2806 #--------------------------------------------------------------------
2807
2808 AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
2809-
2810+AC_CHECK_LIB(rt, clock_gettime)
2811 AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
2812-AC_CHECK_FUNC(yp_get_default_domain, [],
2813- [AC_CHECK_LIB(nsl, yp_get_default_domain)])
2814-AC_CHECK_FUNC(p2open, [], [AC_CHECK_LIB(gen, p2open)])
2815 # This may get things to compile even if bind-8 is installed
2816 AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
2817-# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
2818-AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
2819-
2820-# Check rt for aio_read
2821-AC_CHECK_LIB(rt, aio_read)
2822
2823 # For the sched_yield() function on Solaris
2824 AC_CHECK_FUNC(sched_yield, [],
2825 [AC_CHECK_LIB(posix4, [sched_yield],
2826 [AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield function]) LIBS="$LIBS -lposix4"])])
2827
2828-if test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"
2829-then
2830- AC_CHECK_FUNC(gtty, [], [AC_CHECK_LIB(compat, gtty)])
2831-fi
2832
2833 AC_CHECK_TYPES([fp_except], [], [], [
2834 #include <sys/types.h>
2835 #include <ieeefp.h>
2836 ])
2837
2838-my_save_LIBS="$LIBS"
2839+save_LIBS="$LIBS"
2840 LIBS=""
2841 AC_CHECK_LIB(dl,dlopen)
2842 AC_CHECK_FUNCS(dlopen)
2843-if test "$ac_cv_func_dlopen" != "yes"
2844-then
2845+AS_IF([test "$ac_cv_func_dlopen" != "yes"],[
2846 AC_MSG_ERROR([Drizzle requires dlopen])
2847-fi
2848+])
2849 LIBDL_LIBS="$LIBS"
2850-LIBS="$my_save_LIBS"
2851+LIBS="$save_LIBS"
2852 AC_SUBST(LIBDL_LIBS)
2853
2854
2855-AC_ARG_WITH([atomic-ops],
2856- [AS_HELP_STRING([--with-atomic-ops=rwlocks|smp|up],
2857- [Implement atomic operations using pthread rwlocks or atomic CPU
2858- instructions for multi-processor or uniprocessor
2859- configuration. By default gcc built-in sync functions are used,
2860- if available and 'smp' configuration otherwise.])],
2861- [with_atomic_ops="$withval"],
2862- [with_atomic_ops=smp])
2863-
2864-case "$with_atomic_ops" in
2865- "up") AC_DEFINE([MY_ATOMIC_MODE_DUMMY], [1],
2866- [Assume single-CPU mode, no concurrency]) ;;
2867- "rwlocks") AC_DEFINE([MY_ATOMIC_MODE_RWLOCKS], [1],
2868- [Use pthread rwlocks for atomic ops]) ;;
2869- "smp")
2870- AC_CACHE_CHECK(
2871- [whether the compiler provides atomic builtins],
2872- [ac_cv_gcc_atomic_builtins],
2873- [AC_RUN_IFELSE(
2874- [AC_LANG_PROGRAM([],[[
2875- int foo= -10; int bar= 10;
2876- if (!__sync_fetch_and_add(&foo, bar) || foo)
2877- return -1;
2878- bar= __sync_lock_test_and_set(&foo, bar);
2879- if (bar || foo != 10)
2880- return -1;
2881- bar= __sync_val_compare_and_swap(&bar, foo, 15);
2882- if (bar)
2883- return -1;
2884- return 0;
2885- ]])],
2886- [ac_cv_gcc_atomic_builtins=yes],
2887- [ac_cv_gcc_atomic_builtins=no])])
2888-
2889- if test "x$ac_cv_gcc_atomic_builtins" = "xyes"; then
2890- AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
2891- [Define to 1 if compiler provides atomic builtins.])
2892- fi
2893- ;;
2894- *) AC_MSG_ERROR(["$with_atomic_ops" is not a valid value for --with-atomic-ops]) ;;
2895-esac
2896+AC_CACHE_CHECK(
2897+ [whether the compiler provides atomic builtins],
2898+ [drizzle_cv_gcc_atomic_builtins],
2899+ [AC_RUN_IFELSE(
2900+ [AC_LANG_PROGRAM([],[[
2901+ int foo= -10; int bar= 10;
2902+ if (!__sync_fetch_and_add(&foo, bar) || foo)
2903+ return -1;
2904+ bar= __sync_lock_test_and_set(&foo, bar);
2905+ if (bar || foo != 10)
2906+ return -1;
2907+ bar= __sync_val_compare_and_swap(&bar, foo, 15);
2908+ if (bar)
2909+ return -1;
2910+ return 0;
2911+ ]])],
2912+ [drizzle_cv_gcc_atomic_builtins=yes],
2913+ [drizzle_cv_gcc_atomic_builtins=no])])
2914+
2915+AS_IF([test "x$ac_cv_gcc_atomic_builtins" = "xyes"],[
2916+ AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
2917+ [Does the compiler provide atomic builtins.])
2918+])
2919
2920
2921 AC_ARG_WITH([comment],
2922@@ -391,7 +372,6 @@
2923
2924 dnl Checks for typedefs, structures, and compiler characteristics.
2925
2926-AC_STRUCT_TM
2927 # off_t is not a builtin type
2928 AC_CHECK_SIZEOF(off_t, 4)
2929 if test "$ac_cv_sizeof_off_t" -eq 0
2930@@ -399,9 +379,11 @@
2931 AC_MSG_ERROR("Drizzle needs a off_t type.")
2932 fi
2933 AC_CHECK_SIZEOF(size_t)
2934-AC_DEFINE_UNQUOTED([SIZEOF_SIZE_T],[$ac_cv_sizeof_size_t],[Size of size_t as computed by sizeof()])
2935+AC_DEFINE_UNQUOTED([SIZEOF_SIZE_T],[$ac_cv_sizeof_size_t],
2936+ [Size of size_t as computed by sizeof()])
2937 AC_CHECK_SIZEOF(long long)
2938-AC_DEFINE_UNQUOTED(SIZEOF_LONG_LONG,[$ac_cv_sizeof_long_long],[Size of long long as computed by sizeof()])
2939+AC_DEFINE_UNQUOTED(SIZEOF_LONG_LONG,[$ac_cv_sizeof_long_long],
2940+ [Size of long long as computed by sizeof()])
2941
2942 dnl
2943 dnl check if time_t is unsigned
2944@@ -414,27 +396,11 @@
2945 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
2946 AC_CHECK_TYPES([uint, ulong])
2947
2948-DRIZZLE_PTHREAD_YIELD
2949-
2950-
2951-dnl Checks for header files.
2952-AC_CHECK_HEADERS(malloc.h)
2953
2954 dnl Checks for library functions.
2955 AC_FUNC_ALLOCA
2956
2957-AC_CHECK_FUNCS(issetugid)
2958-
2959-# Already-done: stdlib.h string.h unistd.h termios.h
2960-AC_CHECK_HEADERS(stdarg.h dirent.h locale.h ndir.h sys/dir.h \
2961- sys/ndir.h sys/select.h \
2962- sys/mman.h termcap.h termio.h asm/termbits.h grp.h \
2963- paths.h)
2964-
2965-# Already-done: strcasecmp
2966-AC_CHECK_FUNCS(lstat select)
2967-
2968-AC_HEADER_STAT
2969+
2970 DRIZZLE_HAVE_TIOCGWINSZ
2971 DRIZZLE_HAVE_TIOCSTAT
2972
2973@@ -442,34 +408,39 @@
2974
2975 dnl Checks for library functions.
2976
2977-AC_FUNC_UTIME_NULL
2978-AC_FUNC_VPRINTF
2979-
2980 AC_CHECK_FUNCS(fcntl)
2981-if test "x$ac_cv_func_fcntl" != "xyes"
2982-then
2983+AS_IF([test "x$ac_cv_func_fcntl" != "xyes"],[
2984 AC_MSG_ERROR("Drizzle requires fcntl.")
2985-fi
2986+])
2987
2988-AC_CONFIG_LIBOBJ_DIR([gnulib])
2989+AC_CACHE_CHECK([working fdatasync],[ac_cv_func_fdatasync],[
2990+ AC_LANG_PUSH(C++)
2991+ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
2992+#include <unistd.h>
2993+ ]],[[
2994+fdatasync(4);
2995+ ]])],
2996+ [ac_cv_func_fdatasync=yes],
2997+ [ac_cv_func_fdatasync=no])
2998+ AC_LANG_POP()
2999+])
3000+AS_IF([test "x${ac_cv_func_fdatasync}" = "xyes"],
3001+ [AC_DEFINE([HAVE_FDATASYNC],[1],[If the system has a working fdatasync])])
3002
3003 AC_CHECK_FUNCS( \
3004 cuserid fchmod \
3005- fdatasync fpresetsticky fpsetmask fsync \
3006- getpassphrase getpwnam \
3007- getpwuid getrlimit getrusage index initgroups isnan \
3008- localtime_r log log2 gethrtime gmtime_r \
3009+ fsync \
3010+ getpwnam \
3011+ getpwuid getrlimit getrusage initgroups isnan \
3012+ localtime_r log2 gethrtime \
3013 madvise \
3014- mkstemp mlockall poll pread pthread_attr_create mmap mmap64 \
3015- pthread_attr_getstacksize pthread_attr_setprio pthread_attr_setschedparam \
3016- pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
3017- pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
3018- pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \
3019- realpath rename rwlock_init setupterm \
3020+ mkstemp mlockall poll pread mmap mmap64 \
3021+ readlink \
3022+ rename setupterm \
3023 sigaction \
3024 sigthreadmask \
3025- snprintf strpbrk \
3026- tell tempnam \
3027+ snprintf \
3028+ tempnam \
3029 backtrace backtrace_symbols backtrace_symbols_fd)
3030
3031 AC_LANG_PUSH(C++)
3032@@ -483,156 +454,23 @@
3033 ]])
3034 AC_LANG_POP()
3035
3036-
3037-AM_CONDITIONAL(BUILD_THR_RWLOCK,[test "$ac_cv_func_rwlock_init" -a "$ac_cv_funn_pthread_rwlock_rdlock"])
3038-
3039-
3040-# Sanity check: We chould not have any fseeko symbol unless
3041-# large_file_support=yes
3042-AC_CHECK_FUNC(fseeko,
3043-[if test "$large_file_support" = no -a "x$TARGET_LINUX" = "xtrue";
3044-then
3045- AC_MSG_ERROR("Found fseeko symbol but large_file_support is not enabled!")
3046-fi]
3047-)
3048-
3049-# Check definition of pthread_getspecific
3050-AC_CACHE_CHECK([args to pthread_getspecific], [mysql_cv_getspecific_args],
3051- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3052-#if !defined(_REENTRANT)
3053-#define _REENTRANT
3054-#endif
3055-#ifndef _POSIX_PTHREAD_SEMANTICS
3056-#define _POSIX_PTHREAD_SEMANTICS
3057-#endif
3058-#include <pthread.h>
3059- ]], [[
3060-void *pthread_getspecific(pthread_key_t key);
3061-pthread_getspecific((pthread_key_t) NULL);
3062- ]])],
3063- [mysql_cv_getspecific_args=POSIX],
3064- [mysql_cv_getspecific_args=other])])
3065- if test "$mysql_cv_getspecific_args" = "other"
3066- then
3067- AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1],
3068- [For some non posix threads])
3069- fi
3070-
3071- # Check definition of pthread_mutex_init
3072- AC_CACHE_CHECK([args to pthread_mutex_init], [mysql_cv_mutex_init_args],
3073- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3074-#ifndef _REENTRANT
3075-#define _REENTRANT
3076-#endif
3077-#ifndef _POSIX_PTHREAD_SEMANTICS
3078-#define _POSIX_PTHREAD_SEMANTICS
3079-#endif
3080-#include <pthread.h> ]], [[
3081- pthread_mutexattr_t attr;
3082- pthread_mutex_t mp;
3083- pthread_mutex_init(&mp,&attr); ]])],
3084- [mysql_cv_mutex_init_args=POSIX],
3085- [mysql_cv_mutex_init_args=other])])
3086- if test "$mysql_cv_mutex_init_args" = "other"
3087- then
3088- AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1],
3089- [For some non posix threads])
3090- fi
3091-#---END:
3092-
3093-#---START: Used in for client configure
3094 # Check definition of readdir_r
3095-AC_CACHE_CHECK([args to readdir_r], [mysql_cv_readdir_r],
3096- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
3097-#ifndef _REENTRANT
3098-#define _REENTRANT
3099-#endif
3100-#ifndef _POSIX_PTHREAD_SEMANTICS
3101-#define _POSIX_PTHREAD_SEMANTICS
3102-#endif
3103-#include <pthread.h>
3104-#include <dirent.h>]], [[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
3105-readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],
3106- [mysql_cv_readdir_r=POSIX],
3107- [mysql_cv_readdir_r=other])])
3108-if test "$mysql_cv_readdir_r" = "POSIX"
3109-then
3110- AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r])
3111-fi
3112-
3113-# Check definition of posix sigwait()
3114-AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
3115- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
3116-#ifndef _REENTRANT
3117-#define _REENTRANT
3118-#endif
3119-#ifndef _POSIX_PTHREAD_SEMANTICS
3120-#define _POSIX_PTHREAD_SEMANTICS
3121-#endif
3122-#include <pthread.h>
3123-#include <signal.h>
3124- ]], [[
3125-#ifndef _AIX
3126-sigset_t set;
3127-int sig;
3128-sigwait(&set,&sig);
3129-#endif
3130- ]])],
3131- [mysql_cv_sigwait=POSIX],
3132- [mysql_cv_sigwait=other])])
3133-if test "$mysql_cv_sigwait" = "POSIX"
3134-then
3135- AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait])
3136-fi
3137-
3138-if test "$mysql_cv_sigwait" != "POSIX"
3139-then
3140-unset mysql_cv_sigwait
3141-# Check definition of posix sigwait()
3142-AC_CACHE_CHECK([style of sigwait], [mysql_cv_sigwait],
3143- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
3144-#ifndef _REENTRANT
3145-#define _REENTRANT
3146-#endif
3147-#ifndef _POSIX_PTHREAD_SEMANTICS
3148-#define _POSIX_PTHREAD_SEMANTICS
3149-#endif
3150-#include <pthread.h>
3151-#include <signal.h>
3152- ]], [[
3153-sigset_t set;
3154-int sig;
3155-sigwait(&set);
3156- ]])],
3157- [mysql_cv_sigwait=NONPOSIX],
3158- [mysql_cv_sigwait=other])])
3159-if test "$mysql_cv_sigwait" = "NONPOSIX"
3160-then
3161- AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument])
3162-fi
3163-fi
3164-#---END:
3165-
3166-# Check if pthread_attr_setscope() exists
3167-AC_CACHE_CHECK([for pthread_attr_setscope], [mysql_cv_pthread_attr_setscope],
3168- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
3169-#ifndef _REENTRANT
3170-#define _REENTRANT
3171-#endif
3172-#ifndef _POSIX_PTHREAD_SEMANTICS
3173-#define _POSIX_PTHREAD_SEMANTICS
3174-#endif
3175-#include <pthread.h>
3176- ]], [[
3177-pthread_attr_t thr_attr;
3178-pthread_attr_setscope(&thr_attr,0);
3179- ]])],
3180- [mysql_cv_pthread_attr_setscope=yes],
3181- [mysql_cv_pthread_attr_setscope=no])])
3182-if test "$mysql_cv_pthread_attr_setscope" = "yes"
3183-then
3184- AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope])
3185-fi
3186+AC_LANG_PUSH([C++])
3187+AC_CACHE_CHECK([for POSIX readdir_r],
3188+ [drizzle_cv_readdir_r],
3189+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
3190+#include <stdlib.h>
3191+#include <dirent.h>
3192+ ]], [[
3193+readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL);
3194+]])],
3195+ [drizzle_cv_readdir_r=yes],
3196+ [drizzle_cv_readdir_r=no])])
3197+AC_LANG_POP()
3198+AS_IF([test "$drizzle_cv_readdir_r" = "no"],[
3199+ AC_MSG_ERROR([POSIX readdir_r is required])
3200+])
3201+
3202
3203 AC_LANG_PUSH([C++])
3204 AC_CHECK_HEADERS(cxxabi.h)
3205@@ -656,7 +494,7 @@
3206
3207 dnl Has to be done late, as the plugin may need to check for existence of
3208 dnl functions tested above
3209-PANDORA_PLUGINS
3210+PANDORA_PLUGINS([drizzled/plugin/config.h])
3211
3212 dnl GCC Precompiled Header Support
3213 dnl re-enable later
3214
3215=== modified file 'drizzled/Makefile.am'
3216--- drizzled/Makefile.am 2009-08-27 00:39:15 +0000
3217+++ drizzled/Makefile.am 2009-09-09 18:03:41 +0000
3218@@ -31,53 +31,10 @@
3219 atomic/pthread_traits.h \
3220 atomic/sun_studio.h \
3221 atomics.h \
3222- authentication.h \
3223 base.h \
3224 cached_item.h \
3225 calendar.h \
3226 check_stack_overrun.h \
3227- statement.h \
3228- statement/alter_schema.h \
3229- statement/alter_table.h \
3230- statement/analyze.h \
3231- statement/change_schema.h \
3232- statement/check.h \
3233- statement/checksum.h \
3234- statement/commit.h \
3235- statement/create_index.h \
3236- statement/create_schema.h \
3237- statement/create_table.h \
3238- statement/delete.h \
3239- statement/drop_index.h \
3240- statement/drop_schema.h \
3241- statement/drop_table.h \
3242- statement/empty_query.h \
3243- statement/flush.h \
3244- statement/insert.h \
3245- statement/insert_select.h \
3246- statement/kill.h \
3247- statement/load.h \
3248- statement/optimize.h \
3249- statement/release_savepoint.h \
3250- statement/rename_table.h \
3251- statement/replace.h \
3252- statement/replace_select.h \
3253- statement/rollback.h \
3254- statement/rollback_to_savepoint.h \
3255- statement/savepoint.h \
3256- statement/select.h \
3257- statement/set_option.h \
3258- statement/show_create.h \
3259- statement/show_create_schema.h \
3260- statement/show_engine_status.h \
3261- statement/show_errors.h \
3262- statement/show_processlist.h \
3263- statement/show_status.h \
3264- statement/show_warnings.h \
3265- statement/start_transaction.h \
3266- statement/truncate.h \
3267- statement/unlock_tables.h \
3268- statement/update.h \
3269 common.h \
3270 comp_creator.h \
3271 cost_vect.h \
3272@@ -88,10 +45,10 @@
3273 definitions.h \
3274 diagnostics_area.h \
3275 discrete_interval.h \
3276+ discrete_intervals_list.h \
3277 dtcollation.h \
3278 enum.h \
3279 enum_nested_loop_state.h \
3280- errmsg.h \
3281 errmsg_print.h \
3282 error.h \
3283 error_injection.h \
3284@@ -234,7 +191,6 @@
3285 hybrid_type_traits_decimal.h \
3286 hybrid_type_traits_integer.h \
3287 index_hint.h \
3288- info_schema.h \
3289 internal_error_handler.h \
3290 item.h \
3291 item/basic_constant.h \
3292@@ -287,8 +243,8 @@
3293 lex_string.h \
3294 lex_symbol.h \
3295 lock.h \
3296- logging.h \
3297 lookup_symbol.h \
3298+ memory/multi_malloc.h \
3299 my_decimal.h\
3300 my_var.h \
3301 name_resolution_context.h \
3302@@ -296,33 +252,35 @@
3303 natural_join_column.h \
3304 nested_join.h \
3305 open_tables_state.h \
3306+ opt_range.h \
3307 optimizer/key_field.h \
3308 optimizer/position.h \
3309 optimizer/sargable_param.h \
3310- opt_range.h \
3311 order.h \
3312 plugin.h \
3313- plugin/applier.h \
3314 plugin/authentication.h \
3315- plugin/error_message_handler.h \
3316+ plugin/client.h \
3317+ plugin/command_applier.h \
3318+ plugin/command_reader.h \
3319+ plugin/command_replicator.h \
3320+ plugin/error_message.h \
3321 plugin/function.h \
3322 plugin/handle.h \
3323+ plugin/info_schema.h \
3324 plugin/library.h \
3325 plugin/listen.h \
3326- plugin/logging_handler.h \
3327+ plugin/listen_tcp.h \
3328+ plugin/logging.h \
3329 plugin/manifest.h \
3330- plugin/protocol.h \
3331- plugin/qcache.h \
3332+ plugin/null_client.h \
3333+ plugin/query_cache.h \
3334 plugin/registry.h \
3335- plugin/replicator.h \
3336 plugin/scheduler.h \
3337 plugin/storage_engine.h \
3338 probes.h \
3339- qcache.h \
3340 query_id.h \
3341 registry.h \
3342 replication_services.h \
3343- scheduling.h \
3344 security_context.h \
3345 select_create.h \
3346 select_dump.h \
3347@@ -341,8 +299,16 @@
3348 session.h \
3349 set_var.h \
3350 show.h \
3351+ slot/authentication.h \
3352+ slot/command_replicator.h \
3353+ slot/command_applier.h \
3354+ slot/error_message.h \
3355 slot/function.h \
3356+ slot/info_schema.h \
3357 slot/listen.h \
3358+ slot/logging.h \
3359+ slot/query_cache.h \
3360+ slot/scheduler.h \
3361 sql_alloc.h \
3362 sql_array.h \
3363 sql_base.h \
3364@@ -353,7 +319,6 @@
3365 sql_load.h \
3366 sql_locale.h \
3367 sql_parse.h \
3368- sql_plugin.h \
3369 sql_select.h \
3370 sql_sort.h \
3371 sql_state.h \
3372@@ -361,6 +326,48 @@
3373 sql_table.h \
3374 sql_union.h \
3375 stacktrace.h \
3376+ statement.h \
3377+ statement/alter_schema.h \
3378+ statement/alter_table.h \
3379+ statement/analyze.h \
3380+ statement/change_schema.h \
3381+ statement/check.h \
3382+ statement/checksum.h \
3383+ statement/commit.h \
3384+ statement/create_index.h \
3385+ statement/create_schema.h \
3386+ statement/create_table.h \
3387+ statement/delete.h \
3388+ statement/drop_index.h \
3389+ statement/drop_schema.h \
3390+ statement/drop_table.h \
3391+ statement/empty_query.h \
3392+ statement/flush.h \
3393+ statement/insert.h \
3394+ statement/insert_select.h \
3395+ statement/kill.h \
3396+ statement/load.h \
3397+ statement/optimize.h \
3398+ statement/release_savepoint.h \
3399+ statement/rename_table.h \
3400+ statement/replace.h \
3401+ statement/replace_select.h \
3402+ statement/rollback.h \
3403+ statement/rollback_to_savepoint.h \
3404+ statement/savepoint.h \
3405+ statement/select.h \
3406+ statement/set_option.h \
3407+ statement/show_create.h \
3408+ statement/show_create_schema.h \
3409+ statement/show_engine_status.h \
3410+ statement/show_errors.h \
3411+ statement/show_processlist.h \
3412+ statement/show_status.h \
3413+ statement/show_warnings.h \
3414+ statement/start_transaction.h \
3415+ statement/truncate.h \
3416+ statement/unlock_tables.h \
3417+ statement/update.h \
3418 stored_key.h \
3419 structs.h \
3420 symbol_hash.h \
3421@@ -368,8 +375,8 @@
3422 table_ident.h \
3423 table_list.h \
3424 table_map_iterator.h \
3425+ table_proto.h \
3426 table_reference.h \
3427- table_proto.h \
3428 table_share.h \
3429 temporal.h \
3430 temporal_format.h \
3431@@ -379,11 +386,11 @@
3432 tztime.h \
3433 unique.h \
3434 unireg.h \
3435+ user_var_entry.h \
3436 utf8.h \
3437 utf8/checked.h \
3438 utf8/core.h \
3439 utf8/unchecked.h \
3440- user_var_entry.h \
3441 xid.h
3442
3443 noinst_LTLIBRARIES = \
3444@@ -406,6 +413,7 @@
3445
3446
3447 noinst_HEADERS = \
3448+ hash.h \
3449 gettext.h \
3450 global.h \
3451 server_includes.h \
3452@@ -413,66 +421,26 @@
3453 util/test.h
3454
3455 drizzled_SOURCES = \
3456- authentication.cc \
3457 cached_item.cc \
3458 calendar.cc \
3459 check_stack_overrun.cc \
3460- statement/alter_schema.cc \
3461- statement/alter_table.cc \
3462- statement/analyze.cc \
3463- statement/change_schema.cc \
3464- statement/check.cc \
3465- statement/checksum.cc \
3466- statement/commit.cc \
3467- statement/create_index.cc \
3468- statement/create_schema.cc \
3469- statement/create_table.cc \
3470- statement/delete.cc \
3471- statement/drop_index.cc \
3472- statement/drop_schema.cc \
3473- statement/drop_table.cc \
3474- statement/empty_query.cc \
3475- statement/flush.cc \
3476- statement/insert.cc \
3477- statement/insert_select.cc \
3478- statement/kill.cc \
3479- statement/load.cc \
3480- statement/optimize.cc \
3481- statement/release_savepoint.cc \
3482- statement/rename_table.cc \
3483- statement/replace.cc \
3484- statement/replace_select.cc \
3485- statement/rollback.cc \
3486- statement/rollback_to_savepoint.cc \
3487- statement/savepoint.cc \
3488- statement/select.cc \
3489- statement/set_option.cc \
3490- statement/show_create.cc \
3491- statement/show_create_schema.cc \
3492- statement/show_engine_status.cc \
3493- statement/show_errors.cc \
3494- statement/show_processlist.cc \
3495- statement/show_status.cc \
3496- statement/show_warnings.cc \
3497- statement/start_transaction.cc \
3498- statement/truncate.cc \
3499- statement/unlock_tables.cc \
3500- statement/update.cc \
3501 comp_creator.cc \
3502 create_field.cc \
3503 current_session.cc \
3504 diagnostics_area.cc \
3505+ discrete_interval.cc \
3506+ discrete_intervals_list.cc \
3507 drizzled.cc \
3508 dtcollation.cc \
3509- errmsg.cc \
3510+ errmsg_print.cc \
3511 error.cc \
3512- errmsg_print.cc \
3513+ field.cc \
3514 field/blob.cc \
3515 field/date.cc \
3516 field/datetime.cc \
3517- field/enum.cc \
3518 field/decimal.cc \
3519 field/double.cc \
3520+ field/enum.cc \
3521 field/int64_t.cc \
3522 field/long.cc \
3523 field/null.cc \
3524@@ -481,7 +449,6 @@
3525 field/str.cc \
3526 field/timestamp.cc \
3527 field/varstring.cc \
3528- field.cc \
3529 field_conv.cc \
3530 field_iterator.cc \
3531 filesort.cc \
3532@@ -497,17 +464,6 @@
3533 function/get_user_var.cc \
3534 function/last_insert.cc \
3535 function/locate.cc \
3536- function/min_max.cc \
3537- function/num1.cc \
3538- function/numhybrid.cc \
3539- function/num_op.cc \
3540- function/row_count.cc \
3541- function/set_user_var.cc \
3542- function/sign.cc \
3543- function/signed.cc \
3544- function/units.cc \
3545- function/unsigned.cc \
3546- function/user_var_as_out_param.cc \
3547 function/math/abs.cc \
3548 function/math/acos.cc \
3549 function/math/asin.cc \
3550@@ -518,10 +474,10 @@
3551 function/math/divide.cc \
3552 function/math/exp.cc \
3553 function/math/floor.cc \
3554+ function/math/int.cc \
3555 function/math/int_divide.cc \
3556+ function/math/int_val.cc \
3557 function/math/integer.cc \
3558- function/math/int.cc \
3559- function/math/int_val.cc \
3560 function/math/ln.cc \
3561 function/math/log.cc \
3562 function/math/minus.cc \
3563@@ -537,6 +493,14 @@
3564 function/math/sin.cc \
3565 function/math/sqrt.cc \
3566 function/math/tan.cc \
3567+ function/min_max.cc \
3568+ function/num1.cc \
3569+ function/num_op.cc \
3570+ function/numhybrid.cc \
3571+ function/row_count.cc \
3572+ function/set_user_var.cc \
3573+ function/sign.cc \
3574+ function/signed.cc \
3575 function/str/alloc_buffer.cc \
3576 function/str/binary.cc \
3577 function/str/char.cc \
3578@@ -573,8 +537,8 @@
3579 function/time/date_format.cc \
3580 function/time/dayname.cc \
3581 function/time/dayofmonth.cc \
3582+ function/time/dayofyear.cc \
3583 function/time/extract.cc \
3584- function/time/dayofyear.cc \
3585 function/time/from_days.cc \
3586 function/time/from_unixtime.cc \
3587 function/time/hour.cc \
3588@@ -584,9 +548,9 @@
3589 function/time/minute.cc \
3590 function/time/month.cc \
3591 function/time/now.cc \
3592- function/time/quarter.cc \
3593 function/time/period_add.cc \
3594 function/time/period_diff.cc \
3595+ function/time/quarter.cc \
3596 function/time/second.cc \
3597 function/time/sysdate_local.cc \
3598 function/time/timestamp_diff.cc \
3599@@ -595,11 +559,15 @@
3600 function/time/unix_timestamp.cc \
3601 function/time/weekday.cc \
3602 function/time/year.cc \
3603+ function/units.cc \
3604+ function/unsigned.cc \
3605+ function/user_var_as_out_param.cc \
3606 ha_trx_info.cc \
3607 hybrid_type_traits.cc \
3608 hybrid_type_traits_decimal.cc \
3609 hybrid_type_traits_integer.cc \
3610 index_hint.cc \
3611+ item.cc \
3612 item/bin_string.cc \
3613 item/cache.cc \
3614 item/cache_decimal.cc \
3615@@ -617,10 +585,10 @@
3616 item/field.cc \
3617 item/float.cc \
3618 item/hex_string.cc \
3619+ item/ident.cc \
3620 item/insert_value.cc \
3621+ item/int.cc \
3622 item/int_with_ref.cc \
3623- item/ident.cc \
3624- item/int.cc \
3625 item/null.cc \
3626 item/num.cc \
3627 item/outer_ref.cc \
3628@@ -633,31 +601,42 @@
3629 item/sum.cc \
3630 item/type_holder.cc \
3631 item/uint.cc \
3632- item.cc \
3633 join.cc \
3634 join_cache.cc \
3635 join_table.cc \
3636 key.cc \
3637 key_map.cc \
3638 lock.cc \
3639- logging.cc \
3640 lookup_symbol.cc \
3641+ memory/multi_malloc.cc \
3642 my_decimal.cc \
3643+ name_resolution_context.cc \
3644 name_resolution_context_state.cc \
3645 natural_join_column.cc \
3646- optimizer/key_field.cc \
3647 opt_range.cc \
3648 opt_sum.cc \
3649+ optimizer/key_field.cc \
3650+ plugin/library.cc \
3651+ plugin/listen_tcp.cc \
3652 plugin/registry.cc \
3653- qcache.cc \
3654+ plugin/loader.cc \
3655 query_id.cc \
3656 records.cc \
3657- scheduling.cc \
3658+ replication_services.cc \
3659 session.cc \
3660 set_var.cc \
3661 show.cc \
3662+ slot/authentication.cc \
3663+ slot/command_replicator.cc \
3664+ slot/command_applier.cc \
3665+ slot/error_message.cc \
3666 slot/function.cc \
3667+ slot/info_schema.cc \
3668 slot/listen.cc \
3669+ slot/logging.cc \
3670+ slot/query_cache.cc \
3671+ slot/scheduler.cc \
3672+ sql_alloc.cc \
3673 sql_base.cc \
3674 sql_delete.cc \
3675 sql_derived.cc \
3676@@ -668,7 +647,6 @@
3677 sql_load.cc \
3678 sql_locale.cc \
3679 sql_parse.cc \
3680- sql_plugin.cc \
3681 sql_select.cc \
3682 sql_state.cc \
3683 sql_string.cc \
3684@@ -677,17 +655,56 @@
3685 sql_update.cc \
3686 sql_yacc.yy \
3687 stacktrace.cc \
3688+ statement/alter_schema.cc \
3689+ statement/alter_table.cc \
3690+ statement/analyze.cc \
3691+ statement/change_schema.cc \
3692+ statement/check.cc \
3693+ statement/checksum.cc \
3694+ statement/commit.cc \
3695+ statement/create_index.cc \
3696+ statement/create_schema.cc \
3697+ statement/create_table.cc \
3698+ statement/delete.cc \
3699+ statement/drop_index.cc \
3700+ statement/drop_schema.cc \
3701+ statement/drop_table.cc \
3702+ statement/empty_query.cc \
3703+ statement/flush.cc \
3704+ statement/insert.cc \
3705+ statement/insert_select.cc \
3706+ statement/kill.cc \
3707+ statement/load.cc \
3708+ statement/optimize.cc \
3709+ statement/release_savepoint.cc \
3710+ statement/rename_table.cc \
3711+ statement/replace.cc \
3712+ statement/replace_select.cc \
3713+ statement/rollback.cc \
3714+ statement/rollback_to_savepoint.cc \
3715+ statement/savepoint.cc \
3716+ statement/select.cc \
3717+ statement/set_option.cc \
3718+ statement/show_create.cc \
3719+ statement/show_create_schema.cc \
3720+ statement/show_engine_status.cc \
3721+ statement/show_errors.cc \
3722+ statement/show_processlist.cc \
3723+ statement/show_status.cc \
3724+ statement/show_warnings.cc \
3725+ statement/start_transaction.cc \
3726+ statement/truncate.cc \
3727+ statement/unlock_tables.cc \
3728+ statement/update.cc \
3729 strfunc.cc \
3730 table.cc \
3731 table_list.cc \
3732- table_map_iterator.cc \
3733+ table_map_iterator.cc \
3734 table_share.cc \
3735 temporal.cc \
3736 temporal_format.cc \
3737 temporal_interval.cc \
3738- thr_malloc.cc \
3739 time.cc \
3740- replication_services.cc \
3741 tztime.cc \
3742 uniques.cc \
3743 user_var_entry.cc \
3744@@ -712,7 +729,6 @@
3745 plugin/storage_engine.h.gch \
3746 sql_base.h.gch \
3747 sql_parse.h.gch \
3748- sql_plugin.h.gch \
3749 util/convert.h.gch \
3750 util/test.h.gch
3751 else
3752@@ -728,6 +744,7 @@
3753 $(PCHHEADERS)
3754
3755 EXTRA_DIST = \
3756+ plugin/config.h.in \
3757 $(BUILT_MAINT_SRC) \
3758 symbol_hash.gperf \
3759 function_hash.gperf \
3760
3761=== modified file 'drizzled/atomic/sun_studio.h'
3762--- drizzled/atomic/sun_studio.h 2009-07-02 03:41:45 +0000
3763+++ drizzled/atomic/sun_studio.h 2009-09-09 00:38:19 +0000
3764@@ -175,4 +175,4 @@
3765 }
3766 #endif /* defined(_KERNEL) || defined(_INT64_TYPE) */
3767
3768-#endif /* DRIZZLED_ATOMIC_SOLARIS_H */
3769+#endif /* DRIZZLED_ATOMIC_SUN_STUDIO_H */
3770
3771=== modified file 'drizzled/atomics.h'
3772--- drizzled/atomics.h 2009-07-30 06:49:08 +0000
3773+++ drizzled/atomics.h 2009-09-09 00:38:19 +0000
3774@@ -136,12 +136,14 @@
3775 struct atomic {
3776 };
3777
3778+/* *INDENT-OFF* */
3779 #define __DRIZZLE_DECL_ATOMIC(T) \
3780 template<> struct atomic<T> \
3781 : internal::atomic_impl<T,T,ATOMIC_TRAITS<T,T> > { \
3782 atomic<T>() : internal::atomic_impl<T,T,ATOMIC_TRAITS<T,T> >() {} \
3783 T operator=( T rhs ) { return store_with_release(rhs); } \
3784 };
3785+/* *INDENT-ON* */
3786
3787
3788 __DRIZZLE_DECL_ATOMIC(long)
3789@@ -158,6 +160,7 @@
3790 /* 32-bit platforms don't have a GCC atomic operation for 64-bit types,
3791 * so we'll use pthread locks to handler 64-bit types on that platforms
3792 */
3793+/* *INDENT-OFF* */
3794 # if SIZEOF_SIZE_T >= SIZEOF_LONG_LONG
3795 __DRIZZLE_DECL_ATOMIC(long long)
3796 __DRIZZLE_DECL_ATOMIC(unsigned long long)
3797@@ -172,7 +175,8 @@
3798 __DRIZZLE_DECL_ATOMIC64(long long)
3799 __DRIZZLE_DECL_ATOMIC64(unsigned long long)
3800 # endif
3801+/* *INDENT-ON* */
3802
3803 }
3804
3805-#endif /* DRIZZLED_ATOMIC_H */
3806+#endif /* DRIZZLED_ATOMICS_H */
3807
3808=== modified file 'drizzled/base.h'
3809--- drizzled/base.h 2009-08-17 22:19:53 +0000
3810+++ drizzled/base.h 2009-09-09 00:38:19 +0000
3811@@ -26,8 +26,8 @@
3812 * @TODO Convert HA_XXX defines into enums and/or bitmaps
3813 */
3814
3815-#ifndef DRIZZLE_SERVER_BASE_H
3816-#define DRIZZLE_SERVER_BASE_H
3817+#ifndef DRIZZLED_BASE_H
3818+#define DRIZZLED_BASE_H
3819
3820 #define CHSIZE_USED
3821
3822@@ -240,7 +240,7 @@
3823 #define HA_VAR_LENGTH_KEY 8
3824 #define HA_NULL_PART_KEY 64
3825 #define HA_USES_COMMENT 4096
3826-#define HA_USES_BLOCK_SIZE ((uint32_t) 32768)
3827+#define HA_USES_BLOCK_SIZE (static_cast<uint32_t>(32768))
3828 #define HA_SORT_ALLOWS_SAME 512 /* Intern bit when sorting records */
3829
3830 /* These flags can be added to key-seg-flag */
3831@@ -269,8 +269,8 @@
3832 #define HA_OPTION_CREATE_FROM_ENGINE 256
3833 #define HA_OPTION_NULL_FIELDS 1024
3834 #define HA_OPTION_PAGE_CHECKSUM 2048
3835-#define HA_OPTION_TEMP_COMPRESS_RECORD ((uint32_t) 16384) /* set by isamchk */
3836-#define HA_OPTION_READ_ONLY_DATA ((uint32_t) 32768) /* Set by isamchk */
3837+static const uint32_t HA_OPTION_TEMP_COMPRESS_RECORD= 16384;/* set by isamchk */
3838+static const uint32_t HA_OPTION_READ_ONLY_DATA= 32768; /* Set by isamchk */
3839
3840 /* Bits in flag to create() */
3841
3842@@ -413,7 +413,7 @@
3843 #define HA_NAMELEN 64 /* Max length of saved filename */
3844 #define NO_SUCH_KEY (~(uint32_t)0) /* used as a key no. */
3845
3846-typedef ulong key_part_map;
3847+typedef unsigned long key_part_map;
3848 #define HA_WHOLE_KEY (~(key_part_map)0)
3849
3850 /* Intern constants in databases */
3851@@ -526,8 +526,8 @@
3852 typedef uint64_t ha_rows;
3853 #define rows2double(A) uint64_t2double(A)
3854
3855-#define HA_POS_ERROR (~ (ha_rows) 0)
3856-#define HA_OFFSET_ERROR (~ (my_off_t) 0)
3857+#define HA_POS_ERROR (~ static_cast<ha_rows>(0))
3858+#define HA_OFFSET_ERROR (~ static_cast<uint64_t>(0))
3859
3860 #if SIZEOF_OFF_T == 4
3861 #define MAX_FILE_SIZE INT32_MAX
3862@@ -537,4 +537,4 @@
3863
3864 #define HA_VARCHAR_PACKLENGTH(field_length) ((field_length) < 256 ? 1 :2)
3865
3866-#endif /* DRIZZLE_SERVER_BASE_H */
3867+#endif /* DRIZZLED_BASE_H */
3868
3869=== modified file 'drizzled/cached_item.cc'
3870--- drizzled/cached_item.cc 2009-06-23 21:20:32 +0000
3871+++ drizzled/cached_item.cc 2009-09-09 00:38:19 +0000
3872@@ -40,18 +40,18 @@
3873 bool use_result_field)
3874 {
3875 if (item->real_item()->type() == Item::FIELD_ITEM &&
3876- !(((Item_field *) (item->real_item()))->field->flags & BLOB_FLAG))
3877+ !((static_cast<Item_field *>(item->real_item()))->field->flags & BLOB_FLAG))
3878 {
3879- Item_field *real_item= (Item_field *) item->real_item();
3880+ Item_field *real_item= static_cast<Item_field *>(item->real_item());
3881 Field *cached_field= use_result_field ? real_item->result_field :
3882 real_item->field;
3883 return new Cached_item_field(cached_field);
3884 }
3885 switch (item->result_type()) {
3886 case STRING_RESULT:
3887- return new Cached_item_str(session, (Item_field *) item);
3888+ return new Cached_item_str(session, static_cast<Item_field *>(item));
3889 case INT_RESULT:
3890- return new Cached_item_int((Item_field *) item);
3891+ return new Cached_item_int(static_cast<Item_field *>(item));
3892 case REAL_RESULT:
3893 return new Cached_item_real(item);
3894 case DECIMAL_RESULT:
3895@@ -73,8 +73,8 @@
3896 */
3897
3898 Cached_item_str::Cached_item_str(Session *session, Item *arg)
3899- :item(arg), value(min(arg->max_length,
3900- (uint32_t)session->variables.max_sort_length))
3901+ :item(arg), value(min(static_cast<size_t>(arg->max_length),
3902+ session->variables.max_sort_length))
3903 {}
3904
3905 bool Cached_item_str::cmp(void)
3906
3907=== modified file 'drizzled/cached_item.h'
3908--- drizzled/cached_item.h 2008-11-16 23:47:43 +0000
3909+++ drizzled/cached_item.h 2009-09-09 00:38:19 +0000
3910@@ -85,7 +85,7 @@
3911 {
3912 field= arg_field;
3913 /* TODO: take the memory allocation below out of the constructor. */
3914- buff= (unsigned char*) sql_calloc(length=field->pack_length());
3915+ buff= reinterpret_cast<unsigned char*>(sql_calloc(length=field->pack_length()));
3916 }
3917 bool cmp(void);
3918 };
3919
3920=== modified file 'drizzled/common.h'
3921--- drizzled/common.h 2009-08-04 06:52:55 +0000
3922+++ drizzled/common.h 2009-09-09 00:38:19 +0000
3923@@ -21,12 +21,10 @@
3924 ** Common definition between mysql server & client
3925 */
3926
3927-#ifndef DRIZZLED_DRIZZLE_COMMON_H
3928-#define DRIZZLED_DRIZZLE_COMMON_H
3929+#ifndef DRIZZLED_COMMON_H
3930+#define DRIZZLED_COMMON_H
3931
3932-#include <unistd.h>
3933-#include <stdint.h>
3934-#include <drizzled/korr.h>
3935+#include "drizzled/korr.h"
3936
3937 /*
3938 This is included in the server and in the client.
3939@@ -114,9 +112,9 @@
3940 /*
3941 Maximum length of comments
3942 */
3943-#define TABLE_COMMENT_MAXLEN 2048
3944-#define COLUMN_COMMENT_MAXLEN 1024
3945-#define INDEX_COMMENT_MAXLEN 1024
3946+static const uint32_t TABLE_COMMENT_MAXLEN= 2048;
3947+static const uint32_t COLUMN_COMMENT_MAXLEN= 1024;
3948+static const uint32_t INDEX_COMMENT_MAXLEN= 1024;
3949
3950 /*
3951 USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain
3952@@ -126,8 +124,7 @@
3953 */
3954 #define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2
3955
3956-#define LOCAL_HOST "localhost"
3957-#define LOCAL_HOST_NAMEDPIPE "."
3958+static const char * const LOCAL_HOST= "localhost";
3959
3960 /*
3961 You should add new commands to the end of this list, otherwise old
3962@@ -303,4 +300,4 @@
3963 #define NET_HEADER_SIZE 4 /* standard header size */
3964 #define COMP_HEADER_SIZE 3 /* compression header extra size */
3965
3966-#endif
3967+#endif /* DRIZZLED_COMMON_H */
3968
3969=== modified file 'drizzled/comp_creator.h'
3970--- drizzled/comp_creator.h 2008-11-18 22:12:56 +0000
3971+++ drizzled/comp_creator.h 2009-09-09 00:38:19 +0000
3972@@ -20,9 +20,9 @@
3973 #ifndef DRIZZLED_COMP_CREATOR_H
3974 #define DRIZZLED_COMP_CREATOR_H
3975
3976+class Item;
3977 class Item_bool_func2;
3978
3979-
3980 class Comp_creator
3981 {
3982 public:
3983@@ -43,6 +43,4 @@
3984 Comp_creator *comp_lt_creator(bool invert);
3985 Comp_creator *comp_ne_creator(bool invert);
3986
3987-
3988-
3989 #endif /* DRIZZLED_COMP_CREATOR_H */
3990
3991=== modified file 'drizzled/create_field.cc'
3992--- drizzled/create_field.cc 2009-07-31 23:47:15 +0000
3993+++ drizzled/create_field.cc 2009-09-09 00:38:19 +0000
3994@@ -22,7 +22,7 @@
3995 */
3996
3997 #include "drizzled/server_includes.h"
3998-#include <errno.h>
3999+#include <cerrno>
4000 #include "drizzled/sql_select.h"
4001 #include "drizzled/error.h"
4002 #include "drizzled/field.h"
4003@@ -219,7 +219,7 @@
4004 flags|= NO_DEFAULT_VALUE_FLAG;
4005
4006 if (fld_length && !(length= (uint32_t) atoi(fld_length)))
4007- fld_length= 0; /* purecov: inspected */
4008+ fld_length= 0;
4009 sign_len= fld_type_modifier & UNSIGNED_FLAG ? 0 : 1;
4010
4011 switch (fld_type)
4012@@ -374,7 +374,7 @@
4013 {
4014 my_error((fld_type == DRIZZLE_TYPE_VARCHAR) ? ER_TOO_BIG_FIELDLENGTH : ER_TOO_BIG_DISPLAYWIDTH,
4015 MYF(0),
4016- fld_name, max_field_charlength); /* purecov: inspected */
4017+ fld_name, max_field_charlength);
4018 return true;
4019 }
4020 fld_type_modifier&= AUTO_INCREMENT_FLAG;
4021
4022=== modified file 'drizzled/create_field.h'
4023--- drizzled/create_field.h 2009-08-05 08:52:52 +0000
4024+++ drizzled/create_field.h 2009-09-09 00:38:19 +0000
4025@@ -70,7 +70,7 @@
4026
4027 inline enum column_format_type column_format() const
4028 {
4029- return (enum column_format_type)
4030+ return static_cast<enum column_format_type>
4031 ((flags >> COLUMN_FORMAT_FLAGS) & COLUMN_FORMAT_MASK);
4032 }
4033
4034
4035=== modified file 'drizzled/db.cc'
4036--- drizzled/db.cc 2009-08-19 23:35:29 +0000
4037+++ drizzled/db.cc 2009-09-09 00:38:19 +0000
4038@@ -38,8 +38,6 @@
4039
4040 using namespace drizzled;
4041
4042-extern drizzled::ReplicationServices replication_services;
4043-
4044 #define MY_DB_OPT_FILE "db.opt"
4045 #define MAX_DROP_TABLE_Q_LEN 1024
4046
4047@@ -190,6 +188,7 @@
4048
4049 bool mysql_create_db(Session *session, const char *db, HA_CREATE_INFO *create_info)
4050 {
4051+ ReplicationServices &replication_services= ReplicationServices::singleton();
4052 char path[FN_REFLEN+16];
4053 long result= 1;
4054 int error_erno;
4055@@ -277,6 +276,7 @@
4056
4057 bool mysql_alter_db(Session *session, const char *db, HA_CREATE_INFO *create_info)
4058 {
4059+ ReplicationServices &replication_services= ReplicationServices::singleton();
4060 long result=1;
4061 int error= 0;
4062 char path[FN_REFLEN+16];
4063@@ -340,7 +340,7 @@
4064
4065 bool mysql_rm_db(Session *session,char *db,bool if_exists)
4066 {
4067- long deleted=0;
4068+ long deleted= 0;
4069 int error= false;
4070 char path[FN_REFLEN+16];
4071 MY_DIR *dirp;
4072@@ -420,10 +420,11 @@
4073 query= session->query;
4074 query_length= session->query_length;
4075 }
4076+ ReplicationServices &replication_services= ReplicationServices::singleton();
4077 replication_services.rawStatement(session, session->getQueryString(), session->getQueryLength());
4078 session->clear_error();
4079 session->server_status|= SERVER_STATUS_DB_DROPPED;
4080- session->my_ok((uint32_t) deleted);
4081+ session->my_ok(deleted);
4082 session->server_status&= ~SERVER_STATUS_DB_DROPPED;
4083 }
4084 else
4085@@ -432,12 +433,13 @@
4086 TableList *tbl;
4087 uint32_t db_len;
4088
4089- if (!(query= (char*) session->alloc(MAX_DROP_TABLE_Q_LEN)))
4090+ if (!(query= reinterpret_cast<char*>(session->alloc(MAX_DROP_TABLE_Q_LEN))))
4091 goto exit; /* not much else we can do */
4092 query_pos= query_data_start= strcpy(query,"drop table ")+11;
4093 query_end= query + MAX_DROP_TABLE_Q_LEN;
4094 db_len= strlen(db);
4095
4096+ ReplicationServices &replication_services= ReplicationServices::singleton();
4097 for (tbl= dropped_tables; tbl; tbl= tbl->next_local)
4098 {
4099 uint32_t tbl_name_len;
4100@@ -447,7 +449,7 @@
4101 if (query_pos + tbl_name_len + 1 >= query_end)
4102 {
4103 /* These DDL methods and logging protected with LOCK_create_db */
4104- replication_services.rawStatement(session, query, (size_t) (query_pos -1 - query));
4105+ replication_services.rawStatement(session, query, query_pos -1 - query);
4106 query_pos= query_data_start;
4107 }
4108
4109@@ -460,7 +462,7 @@
4110 if (query_pos != query_data_start)
4111 {
4112 /* These DDL methods and logging protected with LOCK_create_db */
4113- replication_services.rawStatement(session, query, (size_t) (query_pos -1 - query));
4114+ replication_services.rawStatement(session, query, query_pos -1 - query);
4115 }
4116 }
4117
4118@@ -495,7 +497,7 @@
4119 tot_list_next= &tot_list;
4120
4121 for (uint32_t idx= 0;
4122- idx < (uint32_t) dirp->number_off_files && !session->killed ;
4123+ idx < static_cast<uint32_t>(dirp->number_off_files) && !session->killed ;
4124 idx++)
4125 {
4126 FILEINFO *file=dirp->dir_entry+idx;
4127@@ -532,14 +534,14 @@
4128
4129 /* Drop the table nicely */
4130 *extension= 0; // Remove extension
4131- TableList *table_list=(TableList*)
4132+ TableList *table_list=reinterpret_cast<TableList*>(
4133 session->calloc(sizeof(*table_list) +
4134- db_len + 1 +
4135- strlen(file->name) + 1);
4136+ db_len + 1 +
4137+ strlen(file->name) + 1));
4138
4139 if (!table_list)
4140 goto err;
4141- table_list->db= (char*) (table_list+1);
4142+ table_list->db= reinterpret_cast<char*>(table_list+1);
4143 table_list->table_name= strcpy(table_list->db, db) + db_len + 1;
4144 filename_to_tablename(file->name, table_list->table_name,
4145 strlen(file->name) + 1);
4146@@ -745,7 +747,7 @@
4147 */
4148
4149 new_db_file_name.length= new_db_name->length;
4150- new_db_file_name.str= (char *)malloc(new_db_name->length + 1);
4151+ new_db_file_name.str= reinterpret_cast<char *>(malloc(new_db_name->length + 1));
4152 if (new_db_file_name.str == NULL)
4153 return true; /* the error is set */
4154 memcpy(new_db_file_name.str, new_db_name->str, new_db_name->length);
4155
4156=== modified file 'drizzled/db.h'
4157--- drizzled/db.h 2009-07-09 01:35:10 +0000
4158+++ drizzled/db.h 2009-09-09 00:38:19 +0000
4159@@ -18,8 +18,8 @@
4160 */
4161
4162
4163-#ifndef DRIZZLE_SERVER_DB_H
4164-#define DRIZZLE_SERVER_DB_H
4165+#ifndef DRIZZLED_DB_H
4166+#define DRIZZLED_DB_H
4167
4168 namespace drizzled { namespace message { class Schema; } }
4169
4170@@ -37,4 +37,4 @@
4171 extern int creating_database; // How many database locks are made
4172 extern int creating_table; // How many mysql_create_table() are running
4173
4174-#endif
4175+#endif /* DRIZZLED_DB_H */
4176
4177=== modified file 'drizzled/definitions.h'
4178--- drizzled/definitions.h 2009-08-22 02:06:02 +0000
4179+++ drizzled/definitions.h 2009-09-09 00:38:19 +0000
4180@@ -26,10 +26,10 @@
4181 #ifndef DRIZZLE_SERVER_DEFINITIONS_H
4182 #define DRIZZLE_SERVER_DEFINITIONS_H
4183
4184-#include <drizzled/enum.h>
4185-
4186 #include <stdint.h>
4187
4188+#include "drizzled/enum.h"
4189+
4190 /* These paths are converted to other systems (WIN95) before use */
4191
4192 #define LANGUAGE "english/"
4193@@ -39,15 +39,113 @@
4194
4195 #define ER(X) error_message((X))
4196
4197+#if !defined(FLT_MIN)
4198+#define FLT_MIN ((float)1.40129846432481707e-45)
4199+#endif
4200+#if !defined(FLT_MAX)
4201+#define FLT_MAX ((float)3.40282346638528860e+38)
4202+#endif
4203+
4204+/* From limits.h instead */
4205+#ifndef DBL_MIN
4206+#define DBL_MIN 4.94065645841246544e-324
4207+#endif
4208+#ifndef DBL_MAX
4209+#define DBL_MAX 1.79769313486231470e+308
4210+#endif
4211+#ifndef SIZE_T_MAX
4212+#define SIZE_T_MAX ~((size_t) 0)
4213+#endif
4214+
4215+
4216+/* Define missing math constants. */
4217+#ifndef M_PI
4218+#define M_PI 3.14159265358979323846
4219+#endif
4220+#ifndef M_E
4221+#define M_E 2.7182818284590452354
4222+#endif
4223+#ifndef M_LN2
4224+#define M_LN2 0.69314718055994530942
4225+#endif
4226+
4227+#ifndef FN_LIBCHAR
4228+#define FN_LIBCHAR '/'
4229+#define FN_ROOTDIR "/"
4230+#endif
4231+#define MY_NFILE 64 /* This is only used to save filenames */
4232+#ifndef OS_FILE_LIMIT
4233+#define OS_FILE_LIMIT 65535
4234+#endif
4235+
4236+/*
4237+ How much overhead does malloc have. The code often allocates
4238+ something like 1024-MALLOC_OVERHEAD bytes
4239+*/
4240+#define MALLOC_OVERHEAD 8
4241+
4242+/* get memory in huncs */
4243+static const uint32_t ONCE_ALLOC_INIT= 4096;
4244+/* Typical record cash */
4245+static const uint32_t RECORD_CACHE_SIZE= 64*1024;
4246+/* Typical key cash */
4247+static const uint32_t KEY_CACHE_SIZE= 8*1024*1024;
4248+
4249+/* Default size of a key cache block */
4250+static const uint32_t KEY_CACHE_BLOCK_SIZE= 1024;
4251+
4252+#define MY_FILEPOS_ERROR -1
4253+
4254+/* Defines for time function */
4255+#define SCALE_SEC 100
4256+#define SCALE_USEC 10000
4257+#define MY_HOW_OFTEN_TO_ALARM 2 /* How often we want info on screen */
4258+#define MY_HOW_OFTEN_TO_WRITE 1000 /* How often we want info on screen */
4259+
4260+/* Length of decimal number represented by INT32. */
4261+#define MY_INT32_NUM_DECIMAL_DIGITS 11
4262+
4263+/* Length of decimal number represented by INT64. */
4264+#define MY_INT64_NUM_DECIMAL_DIGITS 21
4265+
4266+/*
4267+ Io buffer size; Must be a power of 2 and
4268+ a multiple of 512. May be
4269+ smaller what the disk page size. This influences the speed of the
4270+ isam btree library. eg to big to slow.
4271+*/
4272+#define IO_SIZE 4096
4273+/* Max file name len */
4274+#define FN_LEN 256
4275+/* Max length of extension (part of FN_LEN) */
4276+#define FN_EXTLEN 20
4277+/* Max length of full path-name */
4278+#define FN_REFLEN 512
4279+/* File extension character */
4280+#define FN_EXTCHAR '.'
4281+/* ~ is used as abbrev for home dir */
4282+#define FN_HOMELIB '~'
4283+/* ./ is used as abbrev for current dir */
4284+#define FN_CURLIB '.'
4285+/* Parent directory; Must be a string */
4286+#define FN_PARENTDIR ".."
4287+
4288+/* Quote argument (before cpp) */
4289+#ifndef QUOTE_ARG
4290+# define QUOTE_ARG(x) #x
4291+#endif
4292+/* Quote argument, (after cpp) */
4293+#ifndef STRINGIFY_ARG
4294+# define STRINGIFY_ARG(x) QUOTE_ARG(x)
4295+#endif
4296 #define LIBLEN FN_REFLEN-FN_LEN /* Max l{ngd p} dev */
4297 /* extra 4+4 bytes for slave tmp tables */
4298 #define MAX_DBKEY_LENGTH (NAME_LEN*2+1+1+4+4)
4299 #define MAX_ALIAS_NAME 256
4300 #define MAX_FIELD_NAME 34 /* Max colum name length +2 */
4301 #define MAX_SYS_VAR_LENGTH 32
4302-#define MAX_KEY MAX_INDEXES /* Max used keys */
4303-#define MAX_REF_PARTS 16 /* Max parts used as ref */
4304-#define MAX_KEY_LENGTH 4096 /* max possible key */
4305+static const uint32_t MAX_REF_PARTS= 16; /* Max parts used as ref */
4306+static const uint32_t MAX_KEY_LENGTH= 4096; /* max possible key */
4307 #define MAX_KEY_LENGTH_DECIMAL_WIDTH 4 /* strlen("4096") */
4308 #if SIZEOF_OFF_T > 4
4309 #define MAX_REFLENGTH 8 /* Max length for record ref */
4310@@ -67,9 +165,9 @@
4311 #define MAX_DATETIME_COMPRESSED_WIDTH 14 /* YYYYMMDDHHMMSS */
4312
4313 #define MAX_TABLES (sizeof(table_map)*8-3) /* Max tables in join */
4314-#define PARAM_TABLE_BIT (((table_map) 1) << (sizeof(table_map)*8-3))
4315-#define OUTER_REF_TABLE_BIT (((table_map) 1) << (sizeof(table_map)*8-2))
4316-#define RAND_TABLE_BIT (((table_map) 1) << (sizeof(table_map)*8-1))
4317+#define PARAM_TABLE_BIT ((static_cast<table_map>(1)) << (sizeof(table_map)*8-3))
4318+#define OUTER_REF_TABLE_BIT ((static_cast<table_map>(1)) << (sizeof(table_map)*8-2))
4319+#define RAND_TABLE_BIT ((static_cast<table_map>(1)) << (sizeof(table_map)*8-1))
4320 #define PSEUDO_TABLE_BITS (PARAM_TABLE_BIT | OUTER_REF_TABLE_BIT | \
4321 RAND_TABLE_BIT)
4322 #define MAX_FIELDS 4096 /* Limit in the .frm file */
4323@@ -103,11 +201,12 @@
4324
4325 /* Defines for use with openfrm, openprt and openfrd */
4326
4327-#define READ_ALL 1 /* openfrm: Read all parameters */
4328-#define CHANGE_FRM 2 /* openfrm: open .frm as O_RDWR */
4329-#define EXTRA_RECORD 8 /* Reservera plats f|r extra record */
4330-#define DONT_GIVE_ERROR 256 /* Don't do frm_error on openfrm */
4331-#define DELAYED_OPEN 4096 /* Open table later */
4332+static const uint32_t READ_ALL= 1; /* openfrm: Read all parameters */
4333+static const uint32_t CHANGE_FRM= 2; /* openfrm: open .frm as O_RDWR */
4334+static const uint32_t EXTRA_RECORD= 8; /* Reservera plats f|r extra record */
4335+static const uint32_t DONT_GIVE_ERROR= 256; /* Don't do frm_error on openfrm */
4336+static const uint32_t DELAYED_OPEN= 4096; /* Open table later */
4337+
4338 /**
4339 This flag is used in function get_all_tables() which fills
4340 I_S tables with data which are retrieved from frm files and storage engine
4341@@ -216,11 +315,11 @@
4342 The cost of average seek
4343 DISK_SEEK_BASE_COST + DISK_SEEK_PROP_COST*BLOCKS_IN_AVG_SEEK =1.0.
4344 */
4345-#define DISK_SEEK_BASE_COST ((double)0.9)
4346+#define DISK_SEEK_BASE_COST (static_cast<double>(0.9))
4347
4348 #define BLOCKS_IN_AVG_SEEK 128
4349
4350-#define DISK_SEEK_PROP_COST ((double)0.1/BLOCKS_IN_AVG_SEEK)
4351+#define DISK_SEEK_PROP_COST (static_cast<double>(0.1)/BLOCKS_IN_AVG_SEEK)
4352
4353
4354 /**
4355@@ -470,7 +569,7 @@
4356 #define HA_LEX_CREATE_IF_NOT_EXISTS 2
4357 #define HA_LEX_CREATE_TABLE_LIKE 4
4358 #define HA_OPTION_NO_CHECKSUM (1L << 17)
4359-#define HA_MAX_REC_LENGTH 65535
4360+static const uint32_t HA_MAX_REC_LENGTH= 65535;
4361
4362 /* Options of START TRANSACTION statement (and later of SET TRANSACTION stmt) */
4363 #define DRIZZLE_START_TRANS_OPT_WITH_CONS_SNAPSHOT 1
4364@@ -540,7 +639,7 @@
4365 #define HA_MRR_NO_NULL_ENDPOINTS 128
4366
4367 typedef int myf;
4368-#define MYF(v) (myf) (v)
4369+#define MYF(v) static_cast<myf>(v)
4370
4371 #define MY_I_S_MAYBE_NULL 1
4372 #define MY_I_S_UNSIGNED 2
4373
4374=== added file 'drizzled/discrete_interval.cc'
4375--- drizzled/discrete_interval.cc 1970-01-01 00:00:00 +0000
4376+++ drizzled/discrete_interval.cc 2009-09-09 00:38:19 +0000
4377@@ -0,0 +1,65 @@
4378+/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
4379+ * vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4380+ *
4381+ * Copyright (C) 2008 Sun Microsystems
4382+ *
4383+ * This program is free software; you can redistribute it and/or modify
4384+ * it under the terms of the GNU General Public License as published by
4385+ * the Free Software Foundation; version 2 of the License.
4386+ *
4387+ * This program is distributed in the hope that it will be useful,
4388+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4389+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4390+ * GNU General Public License for more details.
4391+ *
4392+ * You should have received a copy of the GNU General Public License
4393+ * along with this program; if not, write to the Free Software
4394+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
4395+ */
4396+
4397+#include "drizzled/global.h"
4398+
4399+#include "drizzled/discrete_interval.h"
4400+
4401+Discrete_interval::Discrete_interval(uint64_t start,
4402+ uint64_t val,
4403+ uint64_t incr)
4404+ : interval_min(start), interval_values(val),
4405+ interval_max((val == UINT64_MAX) ? val : start + val * incr),
4406+ next(NULL)
4407+{ }
4408+
4409+
4410+Discrete_interval::Discrete_interval()
4411+ : interval_min(0), interval_values(0),
4412+ interval_max(0), next(NULL)
4413+{ }
4414+
4415+
4416+void Discrete_interval::replace(uint64_t start, uint64_t val, uint64_t incr)
4417+{
4418+ interval_min= start;
4419+ interval_values= val;
4420+ interval_max= (val == UINT64_MAX) ? val : start + val * incr;
4421+}
4422+
4423+
4424+bool Discrete_interval::merge_if_contiguous(uint64_t start,
4425+ uint64_t val,
4426+ uint64_t incr)
4427+{
4428+ if (interval_max == start)
4429+ {
4430+ if (val == UINT64_MAX)
4431+ {
4432+ interval_values= interval_max= val;
4433+ }
4434+ else
4435+ {
4436+ interval_values+= val;
4437+ interval_max= start + val * incr;
4438+ }
4439+ return 0;
4440+ }
4441+ return 1;
4442+}
4443
4444=== modified file 'drizzled/discrete_interval.h'
4445--- drizzled/discrete_interval.h 2009-02-12 22:45:08 +0000
4446+++ drizzled/discrete_interval.h 2009-09-09 00:38:19 +0000
4447@@ -18,8 +18,8 @@
4448 */
4449
4450
4451-#ifndef DRIZZLED_DISCRETE_INTERVALS_H
4452-#define DRIZZLED_DISCRETE_INTERVALS_H
4453+#ifndef DRIZZLED_DISCRETE_INTERVAL_H
4454+#define DRIZZLED_DISCRETE_INTERVAL_H
4455
4456 /*
4457 Such interval is "discrete": it is the set of
4458@@ -37,21 +37,9 @@
4459 uint64_t interval_max; // excluded bound. Redundant.
4460 public:
4461 Discrete_interval *next; // used when linked into Discrete_intervals_list
4462- void replace(uint64_t start, uint64_t val, uint64_t incr)
4463- {
4464- interval_min= start;
4465- interval_values= val;
4466- interval_max= (val == UINT64_MAX) ? val : start + val * incr;
4467- }
4468- Discrete_interval(uint64_t start, uint64_t val, uint64_t incr) :
4469- interval_min(start), interval_values(val),
4470- interval_max((val == UINT64_MAX) ? val : start + val * incr),
4471- next(NULL)
4472- {};
4473- Discrete_interval() :
4474- interval_min(0), interval_values(0),
4475- interval_max(0), next(NULL)
4476- {};
4477+ void replace(uint64_t start, uint64_t val, uint64_t incr);
4478+ Discrete_interval(uint64_t start, uint64_t val, uint64_t incr);
4479+ Discrete_interval();
4480 uint64_t minimum() const { return interval_min; };
4481 uint64_t values() const { return interval_values; };
4482 uint64_t maximum() const { return interval_max; };
4483@@ -60,119 +48,10 @@
4484 same increment for that, user of the class has to ensure that). That is
4485 just a space optimization. Returns 0 if merge succeeded.
4486 */
4487- bool merge_if_contiguous(uint64_t start, uint64_t val, uint64_t incr)
4488- {
4489- if (interval_max == start)
4490- {
4491- if (val == UINT64_MAX)
4492- {
4493- interval_values= interval_max= val;
4494- }
4495- else
4496- {
4497- interval_values+= val;
4498- interval_max= start + val * incr;
4499- }
4500- return 0;
4501- }
4502- return 1;
4503- };
4504-};
4505-
4506-
4507-
4508-/* List of Discrete_interval objects */
4509-class Discrete_intervals_list {
4510-private:
4511- Discrete_interval *head;
4512- Discrete_interval *tail;
4513- /*
4514- When many intervals are provided at the beginning of the execution of a
4515- statement (in a replication slave or SET INSERT_ID), "current" points to
4516- the interval being consumed by the thread now (so "current" goes from
4517- "head" to "tail" then to NULL).
4518- */
4519- Discrete_interval *current;
4520- uint32_t elements; // number of elements
4521-
4522- /* helper function for copy construct and assignment operator */
4523- void copy_(const Discrete_intervals_list& from)
4524- {
4525- for (Discrete_interval *i= from.head; i; i= i->next)
4526- {
4527- Discrete_interval j= *i;
4528- append(&j);
4529- }
4530- }
4531-public:
4532- Discrete_intervals_list() :
4533- head(NULL), tail(NULL),
4534- current(NULL), elements(0) {};
4535- Discrete_intervals_list(const Discrete_intervals_list& from) :
4536- head(NULL), tail(NULL),
4537- current(NULL), elements(0)
4538- {
4539- copy_(from);
4540- }
4541- Discrete_intervals_list& operator=(const Discrete_intervals_list& from)
4542- {
4543- empty();
4544- copy_(from);
4545- return *this;
4546- }
4547- void empty_no_free()
4548- {
4549- head= current= NULL;
4550- elements= 0;
4551- }
4552- void empty()
4553- {
4554- for (Discrete_interval *i= head; i;)
4555- {
4556- Discrete_interval *next= i->next;
4557- delete i;
4558- i= next;
4559- }
4560- empty_no_free();
4561- }
4562-
4563- const Discrete_interval* get_next()
4564- {
4565- Discrete_interval *tmp= current;
4566- if (current != NULL)
4567- current= current->next;
4568- return tmp;
4569- }
4570- ~Discrete_intervals_list() { empty(); };
4571- uint64_t minimum() const { return (head ? head->minimum() : 0); };
4572- uint64_t maximum() const { return (head ? tail->maximum() : 0); };
4573- uint32_t nb_elements() const { return elements; }
4574-
4575- bool append(uint64_t start, uint64_t val, uint64_t incr)
4576- {
4577- /* first, see if this can be merged with previous */
4578- if ((head == NULL) || tail->merge_if_contiguous(start, val, incr))
4579- {
4580- /* it cannot, so need to add a new interval */
4581- Discrete_interval *new_interval= new Discrete_interval(start, val, incr);
4582- return(append(new_interval));
4583- }
4584- return(0);
4585- }
4586-
4587- bool append(Discrete_interval *new_interval)
4588- {
4589- if (unlikely(new_interval == NULL))
4590- return(1);
4591- if (head == NULL)
4592- head= current= new_interval;
4593- else
4594- tail->next= new_interval;
4595- tail= new_interval;
4596- elements++;
4597- return(0);
4598- }
4599-
4600-};
4601-
4602-#endif /* DRIZZLED_DISCRETE_INTERVALS_H */
4603+ bool merge_if_contiguous(uint64_t start, uint64_t val, uint64_t incr);
4604+};
4605+
4606+
4607+
4608+
4609+#endif /* DRIZZLED_DISCRETE_INTERVAL_H */
4610
4611=== added file 'drizzled/discrete_intervals_list.cc'
4612--- drizzled/discrete_intervals_list.cc 1970-01-01 00:00:00 +0000
4613+++ drizzled/discrete_intervals_list.cc 2009-09-09 00:38:19 +0000
4614@@ -0,0 +1,105 @@
4615+/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
4616+ * vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4617+ *
4618+ * Copyright (C) 2009 Sun Microsystems
4619+ *
4620+ * This program is free software; you can redistribute it and/or modify
4621+ * it under the terms of the GNU General Public License as published by
4622+ * the Free Software Foundation; version 2 of the License.
4623+ *
4624+ * This program is distributed in the hope that it will be useful,
4625+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4626+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4627+ * GNU General Public License for more details.
4628+ *
4629+ * You should have received a copy of the GNU General Public License
4630+ * along with this program; if not, write to the Free Software
4631+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
4632+ */
4633+
4634+#include "drizzled/global.h"
4635+
4636+#include "drizzled/discrete_intervals_list.h"
4637+#include "drizzled/discrete_interval.h"
4638+
4639+void Discrete_intervals_list::copy_(const Discrete_intervals_list& from)
4640+{
4641+ for (Discrete_interval *i= from.head; i; i= i->next)
4642+ {
4643+ Discrete_interval j= *i;
4644+ append(&j);
4645+ }
4646+}
4647+
4648+Discrete_intervals_list::Discrete_intervals_list()
4649+ : head(NULL), tail(NULL), current(NULL), elements(0)
4650+{ }
4651+
4652+Discrete_intervals_list::Discrete_intervals_list(const Discrete_intervals_list& from)
4653+ : head(NULL), tail(NULL), current(NULL), elements(0)
4654+{
4655+ copy_(from);
4656+}
4657+
4658+Discrete_intervals_list& Discrete_intervals_list::operator=(const Discrete_intervals_list& from)
4659+{
4660+ empty();
4661+ copy_(from);
4662+ return *this;
4663+}
4664+
4665+void Discrete_intervals_list::empty()
4666+{
4667+ for (Discrete_interval *i= head; i;)
4668+ {
4669+ Discrete_interval *next= i->next;
4670+ delete i;
4671+ i= next;
4672+ }
4673+ empty_no_free();
4674+}
4675+
4676+const Discrete_interval* Discrete_intervals_list::get_next()
4677+{
4678+ Discrete_interval *tmp= current;
4679+ if (current != NULL)
4680+ current= current->next;
4681+ return tmp;
4682+}
4683+
4684+uint64_t Discrete_intervals_list::minimum() const
4685+{
4686+ return (head) ? head->minimum() : 0;
4687+}
4688+
4689+uint64_t Discrete_intervals_list::maximum() const
4690+{
4691+ return (head) ? tail->maximum() : 0;
4692+}
4693+
4694+bool Discrete_intervals_list::append(uint64_t start,
4695+ uint64_t val,
4696+ uint64_t incr)
4697+{
4698+ /* first, see if this can be merged with previous */
4699+ if ((head == NULL) || tail->merge_if_contiguous(start, val, incr))
4700+ {
4701+ /* it cannot, so need to add a new interval */
4702+ Discrete_interval *new_interval= new Discrete_interval(start, val, incr);
4703+ return(append(new_interval));
4704+ }
4705+ return(0);
4706+}
4707+
4708+bool Discrete_intervals_list::append(Discrete_interval *new_interval)
4709+{
4710+ if (unlikely(new_interval == NULL))
4711+ return(1);
4712+ if (head == NULL)
4713+ head= current= new_interval;
4714+ else
4715+ tail->next= new_interval;
4716+ tail= new_interval;
4717+ elements++;
4718+ return(0);
4719+}
4720
4721=== added file 'drizzled/discrete_intervals_list.h'
4722--- drizzled/discrete_intervals_list.h 1970-01-01 00:00:00 +0000
4723+++ drizzled/discrete_intervals_list.h 2009-09-09 00:38:19 +0000
4724@@ -0,0 +1,72 @@
4725+/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
4726+ * vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4727+ *
4728+ * Copyright (C) 2009 Sun Microsystems
4729+ *
4730+ * This program is free software; you can redistribute it and/or modify
4731+ * it under the terms of the GNU General Public License as published by
4732+ * the Free Software Foundation; version 2 of the License.
4733+ *
4734+ * This program is distributed in the hope that it will be useful,
4735+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4736+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4737+ * GNU General Public License for more details.
4738+ *
4739+ * You should have received a copy of the GNU General Public License
4740+ * along with this program; if not, write to the Free Software
4741+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
4742+ */
4743+
4744+
4745+#ifndef DRIZZLED_DISCRETE_INTERVALS_LIST_H
4746+#define DRIZZLED_DISCRETE_INTERVALS_LIST_H
4747+
4748+class Discrete_interval;
4749+
4750+/* List of Discrete_interval objects */
4751+class Discrete_intervals_list {
4752+private:
4753+ Discrete_interval *head;
4754+ Discrete_interval *tail;
4755+ /*
4756+ When many intervals are provided at the beginning of the execution of a
4757+ statement (in a replication slave or SET INSERT_ID), "current" points to
4758+ the interval being consumed by the thread now (so "current" goes from
4759+ "head" to "tail" then to NULL).
4760+ */
4761+ Discrete_interval *current;
4762+ uint32_t elements; // number of elements
4763+
4764+ /* helper function for copy construct and assignment operator */
4765+ void copy_(const Discrete_intervals_list& from);
4766+
4767+public:
4768+ Discrete_intervals_list();
4769+ Discrete_intervals_list(const Discrete_intervals_list& from);
4770+ Discrete_intervals_list& operator=(const Discrete_intervals_list& from);
4771+ ~Discrete_intervals_list() { empty(); };
4772+
4773+ inline void empty_no_free()
4774+ {
4775+ head= current= NULL;
4776+ elements= 0;
4777+ }
4778+
4779+ void empty();
4780+
4781+ const Discrete_interval* get_next();
4782+
4783+ uint64_t minimum() const;
4784+ uint64_t maximum() const;
4785+
4786+ uint32_t nb_elements() const
4787+ {
4788+ return elements;
4789+ }
4790+
4791+ bool append(uint64_t start, uint64_t val, uint64_t incr);
4792+ bool append(Discrete_interval *new_interval);
4793+
4794+};
4795+
4796+#endif /* DRIZZLED_DISCRETE_INTERVALS_LIST_H */
4797
4798=== modified file 'drizzled/drizzled.cc'
4799--- drizzled/drizzled.cc 2009-08-24 14:57:56 +0000
4800+++ drizzled/drizzled.cc 2009-09-09 00:38:19 +0000
4801@@ -18,14 +18,72 @@
4802 */
4803
4804
4805-#include <drizzled/server_includes.h>
4806+#include <drizzled/global.h>
4807+
4808+
4809+#include <ctime>
4810+#include <clocale>
4811+#include <csignal>
4812+#include <cerrno>
4813+
4814+#ifdef HAVE_SYS_PRCTL_H
4815+#include <sys/prctl.h>
4816+#endif
4817+
4818+#include <netdb.h>
4819+#include <netinet/tcp.h>
4820+
4821+#include <sys/stat.h>
4822+
4823+#ifdef HAVE_SYSENT_H
4824+# include <sysent.h>
4825+#endif
4826+#ifdef HAVE_PWD_H
4827+# include <pwd.h> // For getpwent
4828+#endif
4829+#ifdef HAVE_GRP_H
4830+# include <grp.h>
4831+#endif
4832+
4833+#include <sys/resource.h>
4834+
4835+#ifdef HAVE_SELECT_H
4836+# include <select.h>
4837+#endif
4838+
4839+#ifdef HAVE_SYS_SELECT_H
4840+# include <sys/select.h>
4841+#endif
4842+
4843+#include <sys/utsname.h>
4844+
4845+#ifdef HAVE_SYS_MMAN_H
4846+# include <sys/mman.h>
4847+#endif
4848+
4849+#if defined(__FreeBSD__) && defined(HAVE_IEEEFP_H)
4850+# include <ieeefp.h>
4851+# ifdef HAVE_FP_EXCEPT // Fix type conflict
4852+typedef fp_except fp_except_t;
4853+# endif
4854+#endif /* __FreeBSD__ && HAVE_IEEEFP_H */
4855+
4856+#ifdef HAVE_FPU_CONTROL_H
4857+# include <fpu_control.h>
4858+#endif
4859+
4860+#ifdef HAVE_SYS_FPU_H
4861+/* for IRIX to use set_fpc_csr() */
4862+# include <sys/fpu.h>
4863+#endif
4864+
4865+#include <google/protobuf/stubs/common.h>
4866+
4867+#include <mysys/my_getopt.h>
4868+#include <mysys/my_pthread.h> // For thr_setconcurency()
4869+#include <drizzled/gettext.h>
4870 #include <drizzled/configmake.h>
4871 #include <drizzled/atomics.h>
4872-
4873-#include <netdb.h>
4874-#include <netinet/tcp.h>
4875-#include <signal.h>
4876-
4877 #include <mysys/my_bit.h>
4878 #include <mysys/hash.h>
4879 #include <drizzled/stacktrace.h>
4880@@ -40,30 +98,12 @@
4881 #include <drizzled/session.h>
4882 #include <drizzled/db.h>
4883 #include <drizzled/item/create.h>
4884-#include <drizzled/errmsg.h>
4885 #include <drizzled/unireg.h>
4886-#include <drizzled/scheduling.h>
4887 #include "drizzled/temporal_format.h" /* For init_temporal_formats() */
4888 #include "drizzled/slot/listen.h"
4889-
4890-#include <google/protobuf/stubs/common.h>
4891-
4892-#if TIME_WITH_SYS_TIME
4893-# include <sys/time.h>
4894-# include <time.h>
4895-#else
4896-# if HAVE_SYS_TIME_H
4897-# include <sys/time.h>
4898-# else
4899-# include <time.h>
4900-# endif
4901-#endif
4902-
4903-#ifdef HAVE_SYS_PRCTL_H
4904-#include <sys/prctl.h>
4905-#endif
4906-
4907-#include <locale.h>
4908+#include "drizzled/slot/error_message.h"
4909+#include "drizzled/plugin/client.h"
4910+
4911
4912 #define mysqld_charset &my_charset_utf8_general_ci
4913
4914@@ -76,50 +116,6 @@
4915 #define MAX_MEM_TABLE_SIZE SIZE_MAX
4916
4917 extern "C" { // Because of SCO 3.2V4.2
4918-#include <errno.h>
4919-#include <sys/stat.h>
4920-#include <mysys/my_getopt.h>
4921-#ifdef HAVE_SYSENT_H
4922-#include <sysent.h>
4923-#endif
4924-#ifdef HAVE_PWD_H
4925-#include <pwd.h> // For getpwent
4926-#endif
4927-#ifdef HAVE_GRP_H
4928-#include <grp.h>
4929-#endif
4930-
4931-#include <sys/resource.h>
4932-
4933-#ifdef HAVE_SELECT_H
4934-# include <select.h>
4935-#endif
4936-
4937-#ifdef HAVE_SYS_SELECT_H
4938-#include <sys/select.h>
4939-#endif
4940-
4941-#include <sys/utsname.h>
4942-
4943-#ifdef HAVE_SYS_MMAN_H
4944-#include <sys/mman.h>
4945-#endif
4946-
4947-#if defined(__FreeBSD__) && defined(HAVE_IEEEFP_H)
4948-#include <ieeefp.h>
4949-#ifdef HAVE_FP_EXCEPT // Fix type conflict
4950-typedef fp_except fp_except_t;
4951-#endif
4952-#endif /* __FreeBSD__ && HAVE_IEEEFP_H */
4953-
4954-#ifdef HAVE_FPU_CONTROL_H
4955-#include <fpu_control.h>
4956-#endif
4957-
4958-#ifdef HAVE_SYS_FPU_H
4959-/* for IRIX to use set_fpc_csr() */
4960-#include <sys/fpu.h>
4961-#endif
4962
4963 inline void setup_fpu()
4964 {
4965@@ -152,14 +148,19 @@
4966
4967 } /* cplusplus */
4968
4969-#include <mysys/my_pthread.h> // For thr_setconcurency()
4970-
4971-#include <drizzled/gettext.h>
4972
4973 #ifdef SOLARIS
4974 extern "C" int gethostname(char *name, int namelen);
4975 #endif
4976
4977+#if defined(BACKTRACE_DEMANGLE)
4978+# include <cxxabi.h>
4979+extern "C" char *my_demangle(const char *mangled_name, int *status)
4980+{
4981+ return ::abi::__cxa_demangle(mangled_name, NULL, NULL, status);
4982+}
4983+#endif
4984+
4985 extern "C" void handle_segfault(int sig);
4986
4987 using namespace std;
4988@@ -225,7 +226,6 @@
4989 static const char *default_character_set_name;
4990 static const char *character_set_filesystem_name;
4991 static char *lc_time_names_name;
4992-static char *my_bind_addr_str;
4993 static char *default_collation_name;
4994 static char *default_storage_engine_str;
4995 static const char *compiled_default_collation_name= "utf8_general_ci";
4996@@ -259,8 +259,8 @@
4997 requires a 4-byte integer.
4998 */
4999 uint32_t drizzled_tcp_port;
5000-
The diff has been truncated for viewing.