Fix some issues with the grouping commands, and greatly expand test coverage

keep-around/97eccfd706a523136e243db5485bbc0c81bf7dd6
Timothy Warren 9 years ago
parent 6dfb94b375
commit c53024ae6a
  1. 6
      .gitignore
  2. 7
      .travis.yml
  3. 39
      classes/query_builder.php
  4. 3
      composer.json
  5. 341
      docs/classes.svg
  6. 170
      docs/classes/BadConnectionException.html
  7. 170
      docs/classes/BadDBDriverException.html
  8. 546
      docs/classes/DB_PDO.html
  9. 250
      docs/classes/DB_SQL.html
  10. 94
      docs/classes/DB_Util.html
  11. 793
      docs/classes/Firebird.html
  12. 335
      docs/classes/Firebird_Result.html
  13. 131
      docs/classes/Firebird_SQL.html
  14. 122
      docs/classes/Firebird_Util.html
  15. 915
      docs/classes/MySQL.html
  16. 131
      docs/classes/MySQL_SQL.html
  17. 122
      docs/classes/MySQL_Util.html
  18. 897
      docs/classes/ODBC.html
  19. 131
      docs/classes/ODBC_SQL.html
  20. 122
      docs/classes/ODBC_Util.html
  21. 915
      docs/classes/PgSQL.html
  22. 131
      docs/classes/PgSQL_SQL.html
  23. 122
      docs/classes/PgSQL_Util.html
  24. 716
      docs/classes/Query_Builder.html
  25. 349
      docs/classes/Query_Builder_Base.html
  26. 90
      docs/classes/Query_Parser.html
  27. 900
      docs/classes/SQLite.html
  28. 131
      docs/classes/SQLite_SQL.html
  29. 122
      docs/classes/SQLite_Util.html
  30. 417
      docs/classes/iDB_PDO.html
  31. 135
      docs/classes/iDB_SQL.html
  32. 172
      docs/classes/iDB_Util.html
  33. 85
      docs/classes/iPDO.html
  34. 468
      docs/classes/iQuery_Builder.html
  35. 5
      docs/css/bootstrap.css
  36. 1
      docs/css/bootstrap.min.css
  37. 43
      docs/css/template.css
  38. 14
      docs/deprecated.html
  39. 162
      docs/errors.html
  40. 14
      docs/graph_class.html
  41. 20
      docs/js/template.js
  42. 20
      docs/markers.html
  43. 346
      docs/namespaces/default.html
  44. 115
      docs/namespaces/global.html
  45. 74
      docs/packages/.html
  46. 45
      docs/packages/Default.html
  47. 57
      docs/packages/Query.Drivers.html
  48. 41
      docs/packages/Query.Query.html
  49. 155
      docs/packages/Query.html
  50. 8383
      docs/structure.xml
  51. 4
      phpdoc.dist.xml
  52. 236
      tests/core/db_qb_test.php
  53. 1
      tests/databases/firebird/firebird-qb.php
  54. 1
      tests/databases/firebird/firebird.php
  55. BIN
      tests/db_files/FB_TEST_DB.FDB
  56. 1
      tests/php_test.ini
  57. 12
      tests/simpletest/autorun.php

6
.gitignore vendored

@ -3,4 +3,8 @@ index.html
tests/db_files/*
._*
tests/settings.json
.php_cs
.php_cs
coverage/*
vendor/*
composer.lock
docs/phpdoc*

@ -4,10 +4,15 @@ php:
- 5.2
- 5.3
- 5.4
- 5.5
before_script:
- sh -c "psql -c 'DROP DATABASE IF EXISTS test;' -U postgres"
- sh -c "psql -c 'create database test;' -U postgres"
- sh -c "mysql -e 'create database IF NOT EXISTS test;'"
- phpenv config-add ./tests/php_test.ini
script: php ./tests/index.php
script: php ./tests/index.php
install:
- composer install --dev

@ -82,7 +82,7 @@ class Query_Builder implements iQuery_Builder {
// 'conjunction' => ' AND ',
// 'string' => 'k=?'
// )
protected $query_map;
protected $query_map = array();
// Map for having clause
protected $having_map;
@ -523,11 +523,28 @@ class Query_Builder implements iQuery_Builder {
// Simple key value, or an operator
$item .= (count($f_array) === 1) ? '=?' : " {$f_array[1]} ?";
// Get the type of the first item in the query map
$first_item = end($this->query_map);
// Determine the correct conjunction
if (empty($this->query_map))
{
$conj = ' WHERE ';
}
elseif ($first_item['type'] === 'group_start')
{
$conj = '';
}
else
{
$conj = " {$conj} ";
}
// Put in the query map for select statements
$this->query_map[] = array(
'type' => 'where',
'conjunction' => ( ! empty($this->query_map)) ? " {$conj} " : ' WHERE ',
'conjunction' => $conj,
'string' => $item
);
}
@ -542,8 +559,8 @@ class Query_Builder implements iQuery_Builder {
*
* @param mixed $key
* @param mixed $val
* @param string
* @param string
* @param string $in - The (not) in fragment
* @param string $conj - The where in conjunction
* @return $this
*/
protected function _where_in($key, $val=array(), $in='IN', $conj='AND')
@ -749,7 +766,8 @@ class Query_Builder implements iQuery_Builder {
{
if ( ! is_scalar($field))
{
$this->group_array = $this->db->quote_ident($field);
$new_group_array = array_map(array($this->db, 'quote_ident'), $field);
$this->group_array = array_merge($this->group_array, $new_group_array);
}
else
{
@ -828,8 +846,8 @@ class Query_Builder implements iQuery_Builder {
{
$this->query_map[] = array(
'type' => 'group_start',
'conjunction' => '',
'string' => ' ('
'conjunction' => (empty($this->query_map)) ? ' WHERE ' : ' ',
'string' => '('
);
return $this;
@ -885,7 +903,7 @@ class Query_Builder implements iQuery_Builder {
$this->query_map[] = array(
'type' => 'group_end',
'conjunction' => '',
'string' => ' ) '
'string' => ')'
);
return $this;
@ -1150,7 +1168,7 @@ class Query_Builder implements iQuery_Builder {
*
* @param string $type
* @param string $table
* @param bool
* @param bool $reset
* @resturn string
*/
protected function _get_compile($type, $table, $reset)
@ -1192,6 +1210,7 @@ class Query_Builder implements iQuery_Builder {
// Set empty arrays
$this->values = array();
$this->query_map = array();
// Set select string as an empty string, for proper handling
// of the 'distinct' keyword
@ -1331,7 +1350,7 @@ class Query_Builder implements iQuery_Builder {
// Set the where clause
if ( ! empty($this->query_map))
{
foreach($this->query_map as $q)
foreach($this->query_map as $k => $q)
{
$sql .= $q['conjunction'] . $q['string'];
}

@ -19,6 +19,9 @@
"homepage": "https://timshomepage.net",
"role": "Developer"
}],
"require-dev": {
"phpunit/php-code-coverage": ">=1.2.10,<1.3.0",
},
"require": {
"php": ">=5.2.0"
},

@ -4,35 +4,32 @@
<!-- Generated by graphviz version 2.26.3 (20100126.1600)
-->
<!-- Title: G Pages: 1 -->
<svg width="690pt" height="1246pt"
viewBox="0.00 0.00 690.00 1246.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 1242)">
<svg width="680pt" height="1267pt"
viewBox="0.00 0.00 680.00 1267.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 1263)">
<title>G</title>
<polygon fill="white" stroke="white" points="-4,5 -4,-1242 687,-1242 687,5 -4,5"/>
<g id="graph2" class="cluster"><title>cluster_default</title>
<polyline fill="none" stroke="none" points="235,-152 662,-152 "/>
<path fill="none" stroke="none" d="M662,-152C668,-152 674,-158 674,-164"/>
<polyline fill="none" stroke="none" points="674,-164 674,-1218 "/>
<path fill="none" stroke="none" d="M674,-1218C674,-1224 668,-1230 662,-1230"/>
<polyline fill="none" stroke="none" points="662,-1230 235,-1230 "/>
<path fill="none" stroke="none" d="M235,-1230C229,-1230 223,-1224 223,-1218"/>
<polyline fill="none" stroke="none" points="223,-1218 223,-164 "/>
<path fill="none" stroke="none" d="M223,-164C223,-158 229,-152 235,-152"/>
<polygon fill="white" stroke="white" points="-4,5 -4,-1263 677,-1263 677,5 -4,5"/>
<g id="graph2" class="cluster"><title>cluster_Global</title>
<polyline fill="none" stroke="gray" points="242,-152 652,-152 "/>
<path fill="none" stroke="gray" d="M652,-152C658,-152 664,-158 664,-164"/>
<polyline fill="none" stroke="gray" points="664,-164 664,-1239 "/>
<path fill="none" stroke="gray" d="M664,-1239C664,-1245 658,-1251 652,-1251"/>
<polyline fill="none" stroke="gray" points="652,-1251 242,-1251 "/>
<path fill="none" stroke="gray" d="M242,-1251C236,-1251 230,-1245 230,-1239"/>
<polyline fill="none" stroke="gray" points="230,-1239 230,-164 "/>
<path fill="none" stroke="gray" d="M230,-164C230,-158 236,-152 242,-152"/>
<text text-anchor="middle" x="447" y="-1237.1" font-family="Times Roman,serif" font-size="11.00" fill="gray">\</text>
</g>
<!-- \\Query_Parser -->
<g id="node2" class="node"><title>\\Query_Parser</title>
<a xlink:href="classes.query_parser.html" xlink:title="Query_Parser" target="_parent">
<polygon fill="none" stroke="black" points="632,-1222 536,-1222 536,-1186 632,-1186 632,-1222"/>
<text text-anchor="middle" x="584" y="-1200.6" font-family="Courier,monospace" font-size="11.00">Query_Parser</text>
</a>
<polygon fill="none" stroke="black" points="624,-1222 534,-1222 534,-1186 624,-1186 624,-1222"/>
<text text-anchor="middle" x="579" y="-1200.6" font-family="Times Roman,serif" font-size="11.00">Query_Parser</text>
</g>
<!-- \\DB_PDO -->
<g id="node3" class="node"><title>\\DB_PDO</title>
<a xlink:href="classes.db_pdo.html" xlink:title="«abstract»&lt;br/&gt;DB_PDO" target="_parent">
<polygon fill="none" stroke="black" points="329,-466 245,-466 245,-430 329,-430 329,-466"/>
<text text-anchor="start" x="253" y="-453.433" font-family="Courier,monospace" font-size="11.00">«abstract»</text>
<text text-anchor="start" x="266.5" y="-440.233" font-family="Courier,monospace" font-size="11.00">DB_PDO</text>
</a>
<polygon fill="none" stroke="black" points="325,-466 249,-466 249,-430 325,-430 325,-466"/>
<text text-anchor="start" x="257.5" y="-453.433" font-family="Times Roman,serif" font-size="11.00">«abstract»</text>
<text text-anchor="start" x="264" y="-440.233" font-family="Times Roman,serif" font-size="11.00">DB_PDO</text>
</g>
<!-- \\PDO -->
<g id="node27" class="node"><title>\\PDO</title>
@ -41,273 +38,229 @@
</g>
<!-- \\DB_PDO&#45;&gt;\\PDO -->
<g id="edge3" class="edge"><title>\\DB_PDO&#45;&gt;\\PDO</title>
<path fill="none" stroke="black" d="M244.421,-448C199.3,-448 128.295,-448 81.9376,-448"/>
<polygon fill="none" stroke="black" points="81.8642,-444.5 71.8642,-448 81.8642,-451.5 81.8642,-444.5"/>
<path fill="none" stroke="black" d="M248.879,-448C204.032,-448 129.635,-448 81.7269,-448"/>
<polygon fill="none" stroke="black" points="81.6312,-444.5 71.6312,-448 81.6311,-451.5 81.6312,-444.5"/>
</g>
<!-- \\Query_Builder -->
<g id="node4" class="node"><title>\\Query_Builder</title>
<a xlink:href="classes.query_builder.html" xlink:title="Query_Builder" target="_parent">
<polygon fill="none" stroke="black" points="636,-1168 532,-1168 532,-1132 636,-1132 636,-1168"/>
<text text-anchor="middle" x="584" y="-1146.6" font-family="Courier,monospace" font-size="11.00">Query_Builder</text>
</a>
<polygon fill="none" stroke="black" points="626,-1168 532,-1168 532,-1132 626,-1132 626,-1168"/>
<text text-anchor="middle" x="579" y="-1146.6" font-family="Times Roman,serif" font-size="11.00">Query_Builder</text>
</g>
<!-- \\iQuery_Builder -->
<g id="node6" class="node"><title>\\iQuery_Builder</title>
<a xlink:href="classes.iquery_builder.html" xlink:title="iQuery_Builder" target="_parent">
<polygon fill="none" stroke="black" points="342,-1168 232,-1168 232,-1132 342,-1132 342,-1168"/>
<text text-anchor="middle" x="287" y="-1146.6" font-family="Courier,monospace" font-size="11.00">iQuery_Builder</text>
</a>
<g id="node25" class="node"><title>\\iQuery_Builder</title>
<polygon fill="none" stroke="black" points="336,-1168 238,-1168 238,-1132 336,-1132 336,-1168"/>
<text text-anchor="middle" x="287" y="-1146.6" font-family="Times Roman,serif" font-size="11.00">iQuery_Builder</text>
</g>
<!-- \\Query_Builder&#45;&gt;\\iQuery_Builder -->
<g id="edge31" class="edge"><title>\\Query_Builder&#45;&gt;\\iQuery_Builder</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M531.927,-1150C482.07,-1150 406.665,-1150 352.701,-1150"/>
<polygon fill="none" stroke="black" points="352.547,-1146.5 342.547,-1150 352.547,-1153.5 352.547,-1146.5"/>
</g>
<!-- \\iDB_SQL -->
<g id="node5" class="node"><title>\\iDB_SQL</title>
<a xlink:href="classes.idb_sql.html" xlink:title="iDB_SQL" target="_parent">
<polygon fill="none" stroke="black" points="319,-736 255,-736 255,-700 319,-700 319,-736"/>
<text text-anchor="middle" x="287" y="-714.6" font-family="Courier,monospace" font-size="11.00">iDB_SQL</text>
</a>
<g id="edge5" class="edge"><title>\\Query_Builder&#45;&gt;\\iQuery_Builder</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M531.435,-1150C480.879,-1150 400.848,-1150 346.235,-1150"/>
<polygon fill="none" stroke="black" points="346.007,-1146.5 336.007,-1150 346.007,-1153.5 346.007,-1146.5"/>
</g>
<!-- \\DB_Util -->
<g id="node7" class="node"><title>\\DB_Util</title>
<a xlink:href="classes.db_util.html" xlink:title="«abstract»&lt;br/&gt;DB_Util" target="_parent">
<polygon fill="none" stroke="black" points="329,-1006 245,-1006 245,-970 329,-970 329,-1006"/>
<text text-anchor="start" x="253" y="-993.433" font-family="Courier,monospace" font-size="11.00">«abstract»</text>
<text text-anchor="start" x="263" y="-980.233" font-family="Courier,monospace" font-size="11.00">DB_Util</text>
</a>
<g id="node5" class="node"><title>\\DB_Util</title>
<polygon fill="none" stroke="black" points="325,-1006 249,-1006 249,-970 325,-970 325,-1006"/>
<text text-anchor="start" x="257.5" y="-993.433" font-family="Times Roman,serif" font-size="11.00">«abstract»</text>
<text text-anchor="start" x="266.5" y="-980.233" font-family="Times Roman,serif" font-size="11.00">DB_Util</text>
</g>
<!-- \\BadDBDriverException -->
<g id="node8" class="node"><title>\\BadDBDriverException</title>
<a xlink:href="common.html" xlink:title="BadDBDriverException" target="_parent">
<polygon fill="none" stroke="black" points="659,-304 509,-304 509,-268 659,-268 659,-304"/>
<text text-anchor="middle" x="584" y="-282.6" font-family="Courier,monospace" font-size="11.00">BadDBDriverException</text>
</a>
<g id="node6" class="node"><title>\\BadDBDriverException</title>
<polygon fill="none" stroke="black" points="650,-304 508,-304 508,-268 650,-268 650,-304"/>
<text text-anchor="middle" x="579" y="-282.6" font-family="Times Roman,serif" font-size="11.00">BadDBDriverException</text>
</g>
<!-- \\InvalidArgumentException -->
<g id="node29" class="node"><title>\\InvalidArgumentException</title>
<g id="node30" class="node"><title>\\InvalidArgumentException</title>
<ellipse fill="none" stroke="black" cx="287" cy="-126" rx="138.86" ry="18"/>
<text text-anchor="middle" x="287" y="-121.4" font-family="Times Roman,serif" font-size="14.00" fill="gray">\InvalidArgumentException</text>
</g>
<!-- \\BadDBDriverException&#45;&gt;\\InvalidArgumentException -->
<g id="edge5" class="edge"><title>\\BadDBDriverException&#45;&gt;\\InvalidArgumentException</title>
<path fill="none" stroke="black" d="M516.286,-267.962C511.227,-265.357 506.392,-262.386 502,-259 455.429,-223.099 479.379,-179.93 430,-148 425,-144.767 419.701,-141.944 414.199,-139.483"/>
<g id="edge7" class="edge"><title>\\BadDBDriverException&#45;&gt;\\InvalidArgumentException</title>
<path fill="none" stroke="black" d="M515.792,-267.846C510.904,-265.262 506.232,-262.327 502,-259 455.775,-222.654 479.379,-179.93 430,-148 425,-144.767 419.701,-141.944 414.199,-139.483"/>
<polygon fill="none" stroke="black" points="415.351,-136.174 404.768,-135.674 412.73,-142.664 415.351,-136.174"/>
</g>
<!-- \\BadConnectionException -->
<g id="node9" class="node"><title>\\BadConnectionException</title>
<a xlink:href="common.html" xlink:title="BadConnectionException" target="_parent">
<polygon fill="none" stroke="black" points="666,-250 502,-250 502,-214 666,-214 666,-250"/>
<text text-anchor="middle" x="584" y="-228.6" font-family="Courier,monospace" font-size="11.00">BadConnectionException</text>
</a>
<g id="node7" class="node"><title>\\BadConnectionException</title>
<polygon fill="none" stroke="black" points="656,-250 502,-250 502,-214 656,-214 656,-250"/>
<text text-anchor="middle" x="579" y="-228.6" font-family="Times Roman,serif" font-size="11.00">BadConnectionException</text>
</g>
<!-- \\UnexpectedValueException -->
<g id="node31" class="node"><title>\\UnexpectedValueException</title>
<g id="node32" class="node"><title>\\UnexpectedValueException</title>
<ellipse fill="none" stroke="black" cx="287" cy="-72" rx="142.885" ry="18"/>
<text text-anchor="middle" x="287" y="-67.4" font-family="Times Roman,serif" font-size="14.00" fill="gray">\UnexpectedValueException</text>
</g>
<!-- \\BadConnectionException&#45;&gt;\\UnexpectedValueException -->
<g id="edge7" class="edge"><title>\\BadConnectionException&#45;&gt;\\UnexpectedValueException</title>
<path fill="none" stroke="black" d="M516.365,-213.859C511.289,-211.277 506.428,-208.339 502,-205 456.528,-170.71 477.626,-130.229 430,-99 422.863,-94.32 415.119,-90.405 407.053,-87.1346"/>
<g id="edge9" class="edge"><title>\\BadConnectionException&#45;&gt;\\UnexpectedValueException</title>
<path fill="none" stroke="black" d="M516.256,-213.95C511.211,-211.337 506.379,-208.369 502,-205 456.859,-170.276 477.626,-130.229 430,-99 422.863,-94.32 415.119,-90.405 407.053,-87.1346"/>
<polygon fill="none" stroke="black" points="408.047,-83.7705 397.454,-83.5843 405.619,-90.3358 408.047,-83.7705"/>
</g>
<!-- \\PgSQL_SQL -->
<g id="node10" class="node"><title>\\PgSQL_SQL</title>
<a xlink:href="drivers.pgsql.pgsql_sql.html" xlink:title="PgSQL_SQL" target="_parent">
<polygon fill="none" stroke="black" points="622,-844 546,-844 546,-808 622,-808 622,-844"/>
<text text-anchor="middle" x="584" y="-822.6" font-family="Courier,monospace" font-size="11.00">PgSQL_SQL</text>
</a>
<g id="node8" class="node"><title>\\PgSQL_SQL</title>
<polygon fill="none" stroke="black" points="619,-844 539,-844 539,-808 619,-808 619,-844"/>
<text text-anchor="middle" x="579" y="-822.6" font-family="Times Roman,serif" font-size="11.00">PgSQL_SQL</text>
</g>
<!-- \\iDB_SQL -->
<g id="node24" class="node"><title>\\iDB_SQL</title>
<polygon fill="none" stroke="black" points="318,-736 256,-736 256,-700 318,-700 318,-736"/>
<text text-anchor="middle" x="287" y="-714.6" font-family="Times Roman,serif" font-size="11.00">iDB_SQL</text>
</g>
<!-- \\PgSQL_SQL&#45;&gt;\\iDB_SQL -->
<g id="edge33" class="edge"><title>\\PgSQL_SQL&#45;&gt;\\iDB_SQL</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M545.093,-813.561C531.426,-809.093 515.993,-803.937 502,-799 441.327,-777.593 371.756,-751.005 328.588,-734.264"/>
<polygon fill="none" stroke="black" points="329.85,-730.999 319.262,-730.641 327.316,-737.524 329.85,-730.999"/>
<g id="edge11" class="edge"><title>\\PgSQL_SQL&#45;&gt;\\iDB_SQL</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M538.973,-812.161C527.056,-807.988 513.982,-803.357 502,-799 441.314,-776.932 371.402,-750.382 328.201,-733.844"/>
<polygon fill="none" stroke="black" points="329.199,-730.479 318.609,-730.169 326.694,-737.015 329.199,-730.479"/>
</g>
<!-- \\PgSQL_Util -->
<g id="node11" class="node"><title>\\PgSQL_Util</title>
<a xlink:href="drivers.pgsql.pgsql_util.html" xlink:title="PgSQL_Util" target="_parent">
<polygon fill="none" stroke="black" points="626,-1114 542,-1114 542,-1078 626,-1078 626,-1114"/>
<text text-anchor="middle" x="584" y="-1092.6" font-family="Courier,monospace" font-size="11.00">PgSQL_Util</text>
</a>
<g id="node9" class="node"><title>\\PgSQL_Util</title>
<polygon fill="none" stroke="black" points="617,-1114 541,-1114 541,-1078 617,-1078 617,-1114"/>
<text text-anchor="middle" x="579" y="-1092.6" font-family="Times Roman,serif" font-size="11.00">PgSQL_Util</text>
</g>
<!-- \\PgSQL_Util&#45;&gt;\\DB_Util -->
<g id="edge9" class="edge"><title>\\PgSQL_Util&#45;&gt;\\DB_Util</title>
<path fill="none" stroke="black" d="M541.747,-1082.47C528.941,-1078.26 514.862,-1073.54 502,-1069 446.048,-1049.26 382.529,-1025.11 339.128,-1008.34"/>
<polygon fill="none" stroke="black" points="340.227,-1005.02 329.637,-1004.67 337.7,-1011.54 340.227,-1005.02"/>
<g id="edge13" class="edge"><title>\\PgSQL_Util&#45;&gt;\\DB_Util</title>
<path fill="none" stroke="black" d="M540.948,-1082.85C528.512,-1078.5 514.647,-1073.6 502,-1069 444.323,-1048.03 378.311,-1023 334.819,-1006.38"/>
<polygon fill="none" stroke="black" points="335.941,-1003.06 325.351,-1002.75 333.439,-1009.6 335.941,-1003.06"/>
</g>
<!-- \\PgSQL -->
<g id="node12" class="node"><title>\\PgSQL</title>
<a xlink:href="drivers.pgsql.pgsql_driver.html" xlink:title="PgSQL" target="_parent">
<polygon fill="none" stroke="black" points="611,-574 557,-574 557,-538 611,-538 611,-574"/>
<text text-anchor="middle" x="584" y="-552.6" font-family="Courier,monospace" font-size="11.00">PgSQL</text>
</a>
<g id="node10" class="node"><title>\\PgSQL</title>
<polygon fill="none" stroke="black" points="606,-574 552,-574 552,-538 606,-538 606,-574"/>
<text text-anchor="middle" x="579" y="-552.6" font-family="Times Roman,serif" font-size="11.00">PgSQL</text>
</g>
<!-- \\PgSQL&#45;&gt;\\DB_PDO -->
<g id="edge11" class="edge"><title>\\PgSQL&#45;&gt;\\DB_PDO</title>
<path fill="none" stroke="black" d="M556.942,-547.408C540.912,-542.239 520.233,-535.433 502,-529 446.048,-509.258 382.529,-485.111 339.128,-468.343"/>
<polygon fill="none" stroke="black" points="340.227,-465.016 329.637,-464.671 337.7,-471.544 340.227,-465.016"/>
<g id="edge15" class="edge"><title>\\PgSQL&#45;&gt;\\DB_PDO</title>
<path fill="none" stroke="black" d="M551.863,-546.656C537.09,-541.525 518.508,-535.003 502,-529 444.323,-508.026 378.311,-483.004 334.819,-466.376"/>
<polygon fill="none" stroke="black" points="335.941,-463.058 325.351,-462.753 333.439,-469.596 335.941,-463.058"/>
</g>
<!-- \\ODBC_Util -->
<g id="node13" class="node"><title>\\ODBC_Util</title>
<a xlink:href="drivers.odbc.odbc_util.html" xlink:title="ODBC_Util" target="_parent">
<polygon fill="none" stroke="black" points="622,-1060 546,-1060 546,-1024 622,-1024 622,-1060"/>
<text text-anchor="middle" x="584" y="-1038.6" font-family="Courier,monospace" font-size="11.00">ODBC_Util</text>
</a>
<g id="node11" class="node"><title>\\ODBC_Util</title>
<polygon fill="none" stroke="black" points="615,-1060 543,-1060 543,-1024 615,-1024 615,-1060"/>
<text text-anchor="middle" x="579" y="-1038.6" font-family="Times Roman,serif" font-size="11.00">ODBC_Util</text>
</g>
<!-- \\ODBC_Util&#45;&gt;\\DB_Util -->
<g id="edge13" class="edge"><title>\\ODBC_Util&#45;&gt;\\DB_Util</title>
<path fill="none" stroke="black" d="M545.477,-1035C492.953,-1025.45 398.67,-1008.3 339.653,-997.573"/>
<polygon fill="none" stroke="black" points="340.244,-994.123 329.779,-995.778 338.991,-1001.01 340.244,-994.123"/>
<g id="edge17" class="edge"><title>\\ODBC_Util&#45;&gt;\\DB_Util</title>
<path fill="none" stroke="black" d="M542.314,-1035.22C489.861,-1025.52 393.362,-1007.67 335.2,-996.914"/>
<polygon fill="none" stroke="black" points="335.626,-993.433 325.156,-995.056 334.353,-1000.32 335.626,-993.433"/>
</g>
<!-- \\ODBC_SQL -->
<g id="node14" class="node"><title>\\ODBC_SQL</title>
<a xlink:href="drivers.odbc.odbc_sql.html" xlink:title="ODBC_SQL" target="_parent">
<polygon fill="none" stroke="black" points="619,-790 549,-790 549,-754 619,-754 619,-790"/>
<text text-anchor="middle" x="584" y="-768.6" font-family="Courier,monospace" font-size="11.00">ODBC_SQL</text>
</a>
<g id="node12" class="node"><title>\\ODBC_SQL</title>
<polygon fill="none" stroke="black" points="617,-790 541,-790 541,-754 617,-754 617,-790"/>
<text text-anchor="middle" x="579" y="-768.6" font-family="Times Roman,serif" font-size="11.00">ODBC_SQL</text>
</g>
<!-- \\ODBC_SQL&#45;&gt;\\iDB_SQL -->
<g id="edge35" class="edge"><title>\\ODBC_SQL&#45;&gt;\\iDB_SQL</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M548.764,-765.593C493.827,-755.605 387.971,-736.358 329.099,-725.654"/>
<polygon fill="none" stroke="black" points="329.489,-722.168 319.024,-723.823 328.237,-729.055 329.489,-722.168"/>
<g id="edge19" class="edge"><title>\\ODBC_SQL&#45;&gt;\\iDB_SQL</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M540.826,-764.94C486.106,-754.821 385.729,-736.258 328.978,-725.763"/>
<polygon fill="none" stroke="black" points="329.379,-722.278 318.91,-723.901 328.106,-729.161 329.379,-722.278"/>
</g>
<!-- \\ODBC -->
<g id="node15" class="node"><title>\\ODBC</title>
<a xlink:href="drivers.odbc.odbc_driver.html" xlink:title="ODBC" target="_parent">
<polygon fill="none" stroke="black" points="611,-520 557,-520 557,-484 611,-484 611,-520"/>
<text text-anchor="middle" x="584" y="-498.6" font-family="Courier,monospace" font-size="11.00">ODBC</text>
</a>
<g id="node13" class="node"><title>\\ODBC</title>
<polygon fill="none" stroke="black" points="606,-520 552,-520 552,-484 606,-484 606,-520"/>
<text text-anchor="middle" x="579" y="-498.6" font-family="Times Roman,serif" font-size="11.00">ODBC</text>
</g>
<!-- \\ODBC&#45;&gt;\\DB_PDO -->
<g id="edge15" class="edge"><title>\\ODBC&#45;&gt;\\DB_PDO</title>
<path fill="none" stroke="black" d="M556.856,-497.065C507.751,-488.137 403.375,-469.159 339.79,-457.598"/>
<polygon fill="none" stroke="black" points="340.031,-454.085 329.566,-455.739 338.779,-460.972 340.031,-454.085"/>
<g id="edge21" class="edge"><title>\\ODBC&#45;&gt;\\DB_PDO</title>
<path fill="none" stroke="black" d="M551.792,-496.968C502.303,-487.816 396.973,-468.338 335.113,-456.898"/>
<polygon fill="none" stroke="black" points="335.672,-453.442 325.203,-455.065 334.399,-460.325 335.672,-453.442"/>
</g>
<!-- \\MySQL_Util -->
<g id="node16" class="node"><title>\\MySQL_Util</title>
<a xlink:href="drivers.mysql.mysql_util.html" xlink:title="MySQL_Util" target="_parent">
<polygon fill="none" stroke="black" points="626,-1006 542,-1006 542,-970 626,-970 626,-1006"/>
<text text-anchor="middle" x="584" y="-984.6" font-family="Courier,monospace" font-size="11.00">MySQL_Util</text>
</a>
<g id="node14" class="node"><title>\\MySQL_Util</title>
<polygon fill="none" stroke="black" points="618,-1006 540,-1006 540,-970 618,-970 618,-1006"/>
<text text-anchor="middle" x="579" y="-984.6" font-family="Times Roman,serif" font-size="11.00">MySQL_Util</text>
</g>
<!-- \\MySQL_Util&#45;&gt;\\DB_Util -->
<g id="edge17" class="edge"><title>\\MySQL_Util&#45;&gt;\\DB_Util</title>
<path fill="none" stroke="black" d="M541.447,-988C488.447,-988 397.876,-988 340.305,-988"/>
<polygon fill="none" stroke="black" points="339.956,-984.5 329.956,-988 339.956,-991.5 339.956,-984.5"/>
<g id="edge23" class="edge"><title>\\MySQL_Util&#45;&gt;\\DB_Util</title>
<path fill="none" stroke="black" d="M539.316,-988C486.322,-988 392.513,-988 335.42,-988"/>
<polygon fill="none" stroke="black" points="335.205,-984.5 325.205,-988 335.205,-991.5 335.205,-984.5"/>
</g>
<!-- \\MySQL -->
<g id="node17" class="node"><title>\\MySQL</title>
<a xlink:href="drivers.mysql.mysql_driver.html" xlink:title="MySQL" target="_parent">
<polygon fill="none" stroke="black" points="611,-466 557,-466 557,-430 611,-430 611,-466"/>
<text text-anchor="middle" x="584" y="-444.6" font-family="Courier,monospace" font-size="11.00">MySQL</text>
</a>
<g id="node15" class="node"><title>\\MySQL</title>
<polygon fill="none" stroke="black" points="606,-466 552,-466 552,-430 606,-430 606,-466"/>
<text text-anchor="middle" x="579" y="-444.6" font-family="Times Roman,serif" font-size="11.00">MySQL</text>
</g>
<!-- \\MySQL&#45;&gt;\\DB_PDO -->
<g id="edge19" class="edge"><title>\\MySQL&#45;&gt;\\DB_PDO</title>
<path fill="none" stroke="black" d="M556.856,-448C507.751,-448 403.375,-448 339.79,-448"/>
<polygon fill="none" stroke="black" points="339.566,-444.5 329.566,-448 339.566,-451.5 339.566,-444.5"/>
<g id="edge25" class="edge"><title>\\MySQL&#45;&gt;\\DB_PDO</title>
<path fill="none" stroke="black" d="M551.266,-448C501.608,-448 396.953,-448 335.287,-448"/>
<polygon fill="none" stroke="black" points="335.035,-444.5 325.035,-448 335.035,-451.5 335.035,-444.5"/>
</g>
<!-- \\MySQL_SQL -->
<g id="node18" class="node"><title>\\MySQL_SQL</title>
<a xlink:href="drivers.mysql.mysql_sql.html" xlink:title="MySQL_SQL" target="_parent">
<polygon fill="none" stroke="black" points="623,-736 545,-736 545,-700 623,-700 623,-736"/>
<text text-anchor="middle" x="584" y="-714.6" font-family="Courier,monospace" font-size="11.00">MySQL_SQL</text>
</a>
<g id="node16" class="node"><title>\\MySQL_SQL</title>
<polygon fill="none" stroke="black" points="620,-736 538,-736 538,-700 620,-700 620,-736"/>
<text text-anchor="middle" x="579" y="-714.6" font-family="Times Roman,serif" font-size="11.00">MySQL_SQL</text>
</g>
<!-- \\MySQL_SQL&#45;&gt;\\iDB_SQL -->
<g id="edge37" class="edge"><title>\\MySQL_SQL&#45;&gt;\\iDB_SQL</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M544.867,-718C489.111,-718 387.199,-718 329.599,-718"/>
<polygon fill="none" stroke="black" points="329.381,-714.5 319.381,-718 329.381,-721.5 329.381,-714.5"/>
<g id="edge27" class="edge"><title>\\MySQL_SQL&#45;&gt;\\iDB_SQL</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M537.783,-718C482.4,-718 384.499,-718 328.813,-718"/>
<polygon fill="none" stroke="black" points="328.595,-714.5 318.595,-718 328.595,-721.5 328.595,-714.5"/>
</g>
<!-- \\SQLite_Util -->
<g id="node19" class="node"><title>\\SQLite_Util</title>
<a xlink:href="drivers.sqlite.sqlite_util.html" xlink:title="SQLite_Util" target="_parent">
<polygon fill="none" stroke="black" points="629,-952 539,-952 539,-916 629,-916 629,-952"/>
<text text-anchor="middle" x="584" y="-930.6" font-family="Courier,monospace" font-size="11.00">SQLite_Util</text>
</a>
<g id="node17" class="node"><title>\\SQLite_Util</title>
<polygon fill="none" stroke="black" points="617,-952 541,-952 541,-916 617,-916 617,-952"/>
<text text-anchor="middle" x="579" y="-930.6" font-family="Times Roman,serif" font-size="11.00">SQLite_Util</text>
</g>
<!-- \\SQLite_Util&#45;&gt;\\DB_Util -->
<g id="edge21" class="edge"><title>\\SQLite_Util&#45;&gt;\\DB_Util</title>
<path fill="none" stroke="black" d="M538.245,-942.319C484.784,-952.039 396.477,-968.095 340.06,-978.353"/>
<polygon fill="none" stroke="black" points="339.125,-974.965 329.912,-980.198 340.377,-981.852 339.125,-974.965"/>
<g id="edge29" class="edge"><title>\\SQLite_Util&#45;&gt;\\DB_Util</title>
<path fill="none" stroke="black" d="M540.225,-941.171C487.246,-950.968 392.288,-968.529 334.918,-979.139"/>
<polygon fill="none" stroke="black" points="334.205,-975.711 325.008,-980.971 335.478,-982.594 334.205,-975.711"/>
</g>
<!-- \\SQLite -->
<g id="node20" class="node"><title>\\SQLite</title>
<a xlink:href="drivers.sqlite.sqlite_driver.html" xlink:title="SQLite" target="_parent">
<polygon fill="none" stroke="black" points="612,-412 556,-412 556,-376 612,-376 612,-412"/>
<text text-anchor="middle" x="584" y="-390.6" font-family="Courier,monospace" font-size="11.00">SQLite</text>
</a>
<g id="node18" class="node"><title>\\SQLite</title>
<polygon fill="none" stroke="black" points="606,-412 552,-412 552,-376 606,-376 606,-412"/>
<text text-anchor="middle" x="579" y="-390.6" font-family="Times Roman,serif" font-size="11.00">SQLite</text>
</g>
<!-- \\SQLite&#45;&gt;\\DB_PDO -->
<g id="edge23" class="edge"><title>\\SQLite&#45;&gt;\\DB_PDO</title>
<path fill="none" stroke="black" d="M555.42,-400.405C524.567,-407.21 473.936,-418.061 430,-426 400.191,-431.386 366.734,-436.58 339.68,-440.567"/>
<polygon fill="none" stroke="black" points="339.035,-437.124 329.646,-442.034 340.047,-444.05 339.035,-437.124"/>
<g id="edge31" class="edge"><title>\\SQLite&#45;&gt;\\DB_PDO</title>
<path fill="none" stroke="black" d="M551.907,-400.321C522.121,-407.153 472.804,-418.118 430,-426 398.567,-431.788 363.052,-437.258 335.279,-441.295"/>
<polygon fill="none" stroke="black" points="334.437,-437.88 325.039,-442.77 335.435,-444.809 334.437,-437.88"/>
</g>
<!-- \\SQLite_SQL -->
<g id="node21" class="node"><title>\\SQLite_SQL</title>
<a xlink:href="drivers.sqlite.sqlite_sql.html" xlink:title="SQLite_SQL" target="_parent">
<polygon fill="none" stroke="black" points="626,-682 542,-682 542,-646 626,-646 626,-682"/>
<text text-anchor="middle" x="584" y="-660.6" font-family="Courier,monospace" font-size="11.00">SQLite_SQL</text>
</a>
<g id="node19" class="node"><title>\\SQLite_SQL</title>
<polygon fill="none" stroke="black" points="619,-682 539,-682 539,-646 619,-646 619,-682"/>
<text text-anchor="middle" x="579" y="-660.6" font-family="Times Roman,serif" font-size="11.00">SQLite_SQL</text>
</g>
<!-- \\SQLite_SQL&#45;&gt;\\iDB_SQL -->
<g id="edge39" class="edge"><title>\\SQLite_SQL&#45;&gt;\\iDB_SQL</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M541.763,-671.68C485.225,-681.959 385.535,-700.085 329.079,-710.349"/>
<polygon fill="none" stroke="black" points="328.273,-706.938 319.06,-712.171 329.525,-713.825 328.273,-706.938"/>
<g id="edge33" class="edge"><title>\\SQLite_SQL&#45;&gt;\\iDB_SQL</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M538.705,-671.452C483.474,-681.666 384.742,-699.925 328.755,-710.278"/>
<polygon fill="none" stroke="black" points="328.015,-706.856 318.819,-712.116 329.288,-713.739 328.015,-706.856"/>
</g>
<!-- \\Firebird_SQL -->
<g id="node22" class="node"><title>\\Firebird_SQL</title>
<a xlink:href="drivers.firebird.firebird_sql.html" xlink:title="Firebird_SQL" target="_parent">
<polygon fill="none" stroke="black" points="632,-628 536,-628 536,-592 632,-592 632,-628"/>
<text text-anchor="middle" x="584" y="-606.6" font-family="Courier,monospace" font-size="11.00">Firebird_SQL</text>
</a>
<g id="node20" class="node"><title>\\Firebird_SQL</title>
<polygon fill="none" stroke="black" points="621,-628 537,-628 537,-592 621,-592 621,-628"/>
<text text-anchor="middle" x="579" y="-606.6" font-family="Times Roman,serif" font-size="11.00">Firebird_SQL</text>
</g>
<!-- \\Firebird_SQL&#45;&gt;\\iDB_SQL -->
<g id="edge41" class="edge"><title>\\Firebird_SQL&#45;&gt;\\iDB_SQL</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M535.322,-625.653C524.333,-629.291 512.742,-633.21 502,-637 441.327,-658.407 371.756,-684.995 328.588,-701.736"/>
<polygon fill="none" stroke="black" points="327.316,-698.476 319.262,-705.359 329.85,-705.001 327.316,-698.476"/>
<g id="edge35" class="edge"><title>\\Firebird_SQL&#45;&gt;\\iDB_SQL</title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M536.173,-624.821C525.029,-628.731 513.05,-632.982 502,-637 441.314,-659.068 371.402,-685.618 328.201,-702.156"/>
<polygon fill="none" stroke="black" points="326.694,-698.985 318.609,-705.831 329.199,-705.521 326.694,-698.985"/>
</g>
<!-- \\Firebird_Result -->
<g id="node23" class="node"><title>\\Firebird_Result</title>
<a xlink:href="drivers.firebird.firebird_result.html" xlink:title="Firebird_Result" target="_parent">
<polygon fill="none" stroke="black" points="642,-196 526,-196 526,-160 642,-160 642,-196"/>
<text text-anchor="middle" x="584" y="-174.6" font-family="Courier,monospace" font-size="11.00">Firebird_Result</text>
</a>
<g id="node21" class="node"><title>\\Firebird_Result</title>
<polygon fill="none" stroke="black" points="627,-196 531,-196 531,-160 627,-160 627,-196"/>
<text text-anchor="middle" x="579" y="-174.6" font-family="Times Roman,serif" font-size="11.00">Firebird_Result</text>
</g>
<!-- \\PDOStatement -->
<g id="node41" class="node"><title>\\PDOStatement</title>
<g id="node47" class="node"><title>\\PDOStatement</title>
<ellipse fill="none" stroke="black" cx="287" cy="-18" rx="85.1942" ry="18"/>
<text text-anchor="middle" x="287" y="-13.4" font-family="Times Roman,serif" font-size="14.00" fill="gray">\PDOStatement</text>
</g>
<!-- \\Firebird_Result&#45;&gt;\\PDOStatement -->
<g id="edge25" class="edge"><title>\\Firebird_Result&#45;&gt;\\PDOStatement</title>
<path fill="none" stroke="black" d="M568.617,-159.537C543.074,-130.208 488.863,-73.3967 430,-45 413.026,-36.8113 393.802,-31.1023 375.082,-27.1231"/>
<polygon fill="none" stroke="black" points="375.542,-23.6464 365.053,-25.141 374.184,-30.5136 375.542,-23.6464"/>
<g id="edge37" class="edge"><title>\\Firebird_Result&#45;&gt;\\PDOStatement</title>
<path fill="none" stroke="black" d="M564.649,-159.998C540.297,-130.794 487.857,-73.4973 430,-45 413.189,-36.72 394.116,-30.9715 375.503,-26.9826"/>
<polygon fill="none" stroke="black" points="376.018,-23.5165 365.527,-24.9979 374.652,-30.382 376.018,-23.5165"/>
</g>
<!-- \\Firebird -->
<g id="node24" class="node"><title>\\Firebird</title>
<a xlink:href="drivers.firebird.firebird_driver.html" xlink:title="Firebird" target="_parent">
<polygon fill="none" stroke="black" points="619,-358 549,-358 549,-322 619,-322 619,-358"/>
<text text-anchor="middle" x="584" y="-336.6" font-family="Courier,monospace" font-size="11.00">Firebird</text>
</a>
<g id="node22" class="node"><title>\\Firebird</title>
<polygon fill="none" stroke="black" points="608,-358 550,-358 550,-322 608,-322 608,-358"/>
<text text-anchor="middle" x="579" y="-336.6" font-family="Times Roman,serif" font-size="11.00">Firebird</text>
</g>
<!-- \\Firebird&#45;&gt;\\DB_PDO -->
<g id="edge27" class="edge"><title>\\Firebird&#45;&gt;\\DB_PDO</title>
<path fill="none" stroke="black" d="M548.914,-348.465C533.935,-352.851 516.582,-358.991 502,-367 465.738,-386.918 467.783,-409.147 430,-426 401.827,-438.566 367.775,-444.139 339.968,-446.536"/>
<polygon fill="none" stroke="black" points="339.354,-443.072 329.642,-447.307 339.875,-450.053 339.354,-443.072"/>
<g id="edge39" class="edge"><title>\\Firebird&#45;&gt;\\DB_PDO</title>
<path fill="none" stroke="black" d="M549.812,-347.602C534.963,-352.113 516.944,-358.604 502,-367 465.931,-387.264 467.783,-409.147 430,-426 400.273,-439.26 364,-444.733 335.425,-446.904"/>
<polygon fill="none" stroke="black" points="335.024,-443.423 325.272,-447.563 335.478,-450.408 335.024,-443.423"/>
</g>
<!-- \\Firebird_Util -->
<g id="node25" class="node"><title>\\Firebird_Util</title>
<a xlink:href="drivers.firebird.firebird_util.html" xlink:title="Firebird_Util" target="_parent">
<polygon fill="none" stroke="black" points="636,-898 532,-898 532,-862 636,-862 636,-898"/>
<text text-anchor="middle" x="584" y="-876.6" font-family="Courier,monospace" font-size="11.00">Firebird_Util</text>
</a>
<g id="node23" class="node"><title>\\Firebird_Util</title>
<polygon fill="none" stroke="black" points="620,-898 538,-898 538,-862 620,-862 620,-898"/>
<text text-anchor="middle" x="579" y="-876.6" font-family="Times Roman,serif" font-size="11.00">Firebird_Util</text>
</g>
<!-- \\Firebird_Util&#45;&gt;\\DB_Util -->
<g id="edge29" class="edge"><title>\\Firebird_Util&#45;&gt;\\DB_Util</title>
<path fill="none" stroke="black" d="M531.833,-896.81C521.902,-900.114 511.611,-903.609 502,-907 446.048,-926.742 382.529,-950.889 339.128,-967.657"/>
<polygon fill="none" stroke="black" points="337.7,-964.456 329.637,-971.329 340.227,-970.984 337.7,-964.456"/>
<g id="edge41" class="edge"><title>\\Firebird_Util&#45;&gt;\\DB_Util</title>
<path fill="none" stroke="black" d="M537.778,-894.258C526.185,-898.321 513.582,-902.788 502,-907 444.323,-927.974 378.311,-952.996 334.819,-969.624"/>
<polygon fill="none" stroke="black" points="333.439,-966.404 325.351,-973.247 335.941,-972.942 333.439,-966.404"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 17 KiB

@ -1,4 +1,4 @@
<!DOCTYPE html><html xmlns:date="http://exslt.org/dates-and-times" lang="en">
<!DOCTYPE html><html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
@ -20,7 +20,6 @@
<a href="#api" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b></a><ul class="dropdown-menu">
<li><a>Packages</a></li>
<li><a href="../packages/Default.html"><i class="icon-folder-open"></i> Default</a></li>
<li><a href="../packages/Query.html"><i class="icon-folder-open"></i> Query</a></li>
</ul>
</li>
@ -32,11 +31,9 @@
<a href="#reports" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b></a><ul class="dropdown-menu">
<li><a href="../errors.html"><i class="icon-remove-sign"></i> Errors 
<span class="label label-info">23</span></a></li>
<span class="label label-info">0</span></a></li>
<li><a href="../markers.html"><i class="icon-map-marker"></i> Markers 
<ul><li>todo 
<span class="label label-info">2</span>
</li></ul></a></li>
<ul></ul></a></li>
<li><a href="../deprecated.html"><i class="icon-stop"></i> Deprecated elements 
<span class="label label-info">0</span></a></li>
</ul>
@ -55,171 +52,40 @@
<span class="btn-group visibility" data-toggle="buttons-checkbox"><button class="btn public active" title="Show public elements">Public</button><button class="btn protected" title="Show protected elements">Protected</button><button class="btn private" title="Show private elements">Private</button><button class="btn inherited active" title="Show inherited elements">Inherited</button></span><div class="btn-group view pull-right" data-toggle="buttons-radio">
<button class="btn details" title="Show descriptions and method names"><i class="icon-list"></i></button><button class="btn simple" title="Show only method names"><i class="icon-align-justify"></i></button>
</div>
<ul class="side-nav nav nav-list">
<li class="nav-header">
<i class="icon-custom icon-method"></i> Methods</li>
<li class="method public "><a href="#__construct" title="__construct :: "><span class="description">__construct()
</span><pre>__construct()</pre></a></li>
<li class="method public "><a href="#__toString" title="__toString :: "><span class="description">__toString()
</span><pre>__toString()</pre></a></li>
<li class="method public "><a href="#getCode" title="getCode :: "><span class="description">getCode()
</span><pre>getCode()</pre></a></li>
<li class="method public "><a href="#getFile" title="getFile :: "><span class="description">getFile()
</span><pre>getFile()</pre></a></li>
<li class="method public "><a href="#getLine" title="getLine :: "><span class="description">getLine()
</span><pre>getLine()</pre></a></li>
<li class="method public "><a href="#getMessage" title="getMessage :: "><span class="description">getMessage()
</span><pre>getMessage()</pre></a></li>
<li class="method public "><a href="#getPrevious" title="getPrevious :: "><span class="description">getPrevious()
</span><pre>getPrevious()</pre></a></li>
<li class="method public "><a href="#getTrace" title="getTrace :: "><span class="description">getTrace()
</span><pre>getTrace()</pre></a></li>
<li class="method public "><a href="#getTraceAsString" title="getTraceAsString :: "><span class="description">getTraceAsString()
</span><pre>getTraceAsString()</pre></a></li>
</ul>
<ul class="side-nav nav nav-list"></ul>
</div>
<div class="span8">
<a name="%5CBadConnectionException" id="\BadConnectionException"></a><div href="../classes/BadConnectionException.html" class="element class">
<a id="\BadConnectionException"></a><ul class="breadcrumb">
<li>
<a href="../index.html"><i class="icon-custom icon-class"></i></a><span class="divider">\</span>
</li>
<li class="active">
<span class="divider">\</span><a href="../classes/BadConnectionException.html">BadConnectionException</a>
</li>
</ul>
<div class="element class">
<p class="short_description">Generic exception for bad connection strings</p>
<div class="details">
<p class="long_description"></p>
<div class="long_description"></div>
<table class="table table-bordered">
<tr>
<th>package</th>
<td><a href="..//packages/Query.Query.html">Query</a></td>
<td><a href="../packages/Query.Query.html">Query</a></td>
</tr>
<tr>
<th>subpackage</th>
<td>Query</td>
</tr>
</table>
<h3>
<i class="icon-custom icon-method"></i> Methods</h3>
<a name="__construct" id="__construct"></a><div class="element clickable method public __construct" data-toggle="collapse" data-target=".__construct .collapse">
<h2>__construct()
</h2>
<pre>__construct() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::__construct()</td>
</tr></table>
</div></div>
</div>
<a name="__toString" id="__toString"></a><div class="element clickable method public __toString" data-toggle="collapse" data-target=".__toString .collapse">
<h2>__toString()
</h2>
<pre>__toString() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::__toString()</td>
</tr></table>
</div></div>
</div>
<a name="getCode" id="getCode"></a><div class="element clickable method public getCode" data-toggle="collapse" data-target=".getCode .collapse">
<h2>getCode()
</h2>
<pre>getCode() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getCode()</td>
</tr></table>
</div></div>
</div>
<a name="getFile" id="getFile"></a><div class="element clickable method public getFile" data-toggle="collapse" data-target=".getFile .collapse">
<h2>getFile()
</h2>
<pre>getFile() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getFile()</td>
</tr></table>
</div></div>
</div>
<a name="getLine" id="getLine"></a><div class="element clickable method public getLine" data-toggle="collapse" data-target=".getLine .collapse">
<h2>getLine()
</h2>
<pre>getLine() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getLine()</td>
</tr></table>
</div></div>
</div>
<a name="getMessage" id="getMessage"></a><div class="element clickable method public getMessage" data-toggle="collapse" data-target=".getMessage .collapse">
<h2>getMessage()
</h2>
<pre>getMessage() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getMessage()</td>
</tr></table>
</div></div>
</div>
<a name="getPrevious" id="getPrevious"></a><div class="element clickable method public getPrevious" data-toggle="collapse" data-target=".getPrevious .collapse">
<h2>getPrevious()
</h2>
<pre>getPrevious() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getPrevious()</td>
</tr></table>
</div></div>
</div>
<a name="getTrace" id="getTrace"></a><div class="element clickable method public getTrace" data-toggle="collapse" data-target=".getTrace .collapse">
<h2>getTrace()
</h2>
<pre>getTrace() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getTrace()</td>
</tr></table>
</div></div>
</div>
<a name="getTraceAsString" id="getTraceAsString"></a><div class="element clickable method public getTraceAsString" data-toggle="collapse" data-target=".getTraceAsString .collapse">
<h2>getTraceAsString()
</h2>
<pre>getTraceAsString() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getTraceAsString()</td>
</tr></table>
</div></div>
</div>
</div>
</div>
</div>
</div>
<div class="row"><footer class="span12">
Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a2</a> and<br>
generated on 2013-05-03T13:07:08-04:00.<br></footer></div>
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.1.0
</a> and<br>
generated on 2013-12-06T22:52:34-05:00.<br></footer></div>
</div>
</body>
</html>

@ -1,4 +1,4 @@
<!DOCTYPE html><html xmlns:date="http://exslt.org/dates-and-times" lang="en">
<!DOCTYPE html><html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
@ -20,7 +20,6 @@
<a href="#api" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b></a><ul class="dropdown-menu">
<li><a>Packages</a></li>
<li><a href="../packages/Default.html"><i class="icon-folder-open"></i> Default</a></li>
<li><a href="../packages/Query.html"><i class="icon-folder-open"></i> Query</a></li>
</ul>
</li>
@ -32,11 +31,9 @@
<a href="#reports" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b></a><ul class="dropdown-menu">
<li><a href="../errors.html"><i class="icon-remove-sign"></i> Errors 
<span class="label label-info">23</span></a></li>
<span class="label label-info">0</span></a></li>
<li><a href="../markers.html"><i class="icon-map-marker"></i> Markers 
<ul><li>todo 
<span class="label label-info">2</span>
</li></ul></a></li>
<ul></ul></a></li>
<li><a href="../deprecated.html"><i class="icon-stop"></i> Deprecated elements 
<span class="label label-info">0</span></a></li>
</ul>
@ -55,171 +52,40 @@
<span class="btn-group visibility" data-toggle="buttons-checkbox"><button class="btn public active" title="Show public elements">Public</button><button class="btn protected" title="Show protected elements">Protected</button><button class="btn private" title="Show private elements">Private</button><button class="btn inherited active" title="Show inherited elements">Inherited</button></span><div class="btn-group view pull-right" data-toggle="buttons-radio">
<button class="btn details" title="Show descriptions and method names"><i class="icon-list"></i></button><button class="btn simple" title="Show only method names"><i class="icon-align-justify"></i></button>
</div>
<ul class="side-nav nav nav-list">
<li class="nav-header">
<i class="icon-custom icon-method"></i> Methods</li>
<li class="method public "><a href="#__construct" title="__construct :: "><span class="description">__construct()
</span><pre>__construct()</pre></a></li>
<li class="method public "><a href="#__toString" title="__toString :: "><span class="description">__toString()
</span><pre>__toString()</pre></a></li>
<li class="method public "><a href="#getCode" title="getCode :: "><span class="description">getCode()
</span><pre>getCode()</pre></a></li>
<li class="method public "><a href="#getFile" title="getFile :: "><span class="description">getFile()
</span><pre>getFile()</pre></a></li>
<li class="method public "><a href="#getLine" title="getLine :: "><span class="description">getLine()
</span><pre>getLine()</pre></a></li>
<li class="method public "><a href="#getMessage" title="getMessage :: "><span class="description">getMessage()
</span><pre>getMessage()</pre></a></li>
<li class="method public "><a href="#getPrevious" title="getPrevious :: "><span class="description">getPrevious()
</span><pre>getPrevious()</pre></a></li>
<li class="method public "><a href="#getTrace" title="getTrace :: "><span class="description">getTrace()
</span><pre>getTrace()</pre></a></li>
<li class="method public "><a href="#getTraceAsString" title="getTraceAsString :: "><span class="description">getTraceAsString()
</span><pre>getTraceAsString()</pre></a></li>
</ul>
<ul class="side-nav nav nav-list"></ul>
</div>
<div class="span8">
<a name="%5CBadDBDriverException" id="\BadDBDriverException"></a><div href="../classes/BadDBDriverException.html" class="element class">
<a id="\BadDBDriverException"></a><ul class="breadcrumb">
<li>
<a href="../index.html"><i class="icon-custom icon-class"></i></a><span class="divider">\</span>
</li>
<li class="active">
<span class="divider">\</span><a href="../classes/BadDBDriverException.html">BadDBDriverException</a>
</li>
</ul>
<div class="element class">
<p class="short_description">Generic exception for bad drivers</p>
<div class="details">
<p class="long_description"></p>
<div class="long_description"></div>
<table class="table table-bordered">
<tr>
<th>package</th>
<td><a href="..//packages/Query.Query.html">Query</a></td>
<td><a href="../packages/Query.Query.html">Query</a></td>
</tr>
<tr>
<th>subpackage</th>
<td>Query</td>
</tr>
</table>
<h3>
<i class="icon-custom icon-method"></i> Methods</h3>
<a name="__construct" id="__construct"></a><div class="element clickable method public __construct" data-toggle="collapse" data-target=".__construct .collapse">
<h2>__construct()
</h2>
<pre>__construct() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::__construct()</td>
</tr></table>
</div></div>
</div>
<a name="__toString" id="__toString"></a><div class="element clickable method public __toString" data-toggle="collapse" data-target=".__toString .collapse">
<h2>__toString()
</h2>
<pre>__toString() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::__toString()</td>
</tr></table>
</div></div>
</div>
<a name="getCode" id="getCode"></a><div class="element clickable method public getCode" data-toggle="collapse" data-target=".getCode .collapse">
<h2>getCode()
</h2>
<pre>getCode() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getCode()</td>
</tr></table>
</div></div>
</div>
<a name="getFile" id="getFile"></a><div class="element clickable method public getFile" data-toggle="collapse" data-target=".getFile .collapse">
<h2>getFile()
</h2>
<pre>getFile() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getFile()</td>
</tr></table>
</div></div>
</div>
<a name="getLine" id="getLine"></a><div class="element clickable method public getLine" data-toggle="collapse" data-target=".getLine .collapse">
<h2>getLine()
</h2>
<pre>getLine() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getLine()</td>
</tr></table>
</div></div>
</div>
<a name="getMessage" id="getMessage"></a><div class="element clickable method public getMessage" data-toggle="collapse" data-target=".getMessage .collapse">
<h2>getMessage()
</h2>
<pre>getMessage() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getMessage()</td>
</tr></table>
</div></div>
</div>
<a name="getPrevious" id="getPrevious"></a><div class="element clickable method public getPrevious" data-toggle="collapse" data-target=".getPrevious .collapse">
<h2>getPrevious()
</h2>
<pre>getPrevious() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getPrevious()</td>
</tr></table>
</div></div>
</div>
<a name="getTrace" id="getTrace"></a><div class="element clickable method public getTrace" data-toggle="collapse" data-target=".getTrace .collapse">
<h2>getTrace()
</h2>
<pre>getTrace() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getTrace()</td>
</tr></table>
</div></div>
</div>
<a name="getTraceAsString" id="getTraceAsString"></a><div class="element clickable method public getTraceAsString" data-toggle="collapse" data-target=".getTraceAsString .collapse">
<h2>getTraceAsString()
</h2>
<pre>getTraceAsString() </pre>
<div class="labels"></div>
<div class="row collapse"><div class="span8">
<p class="long_description"></p>
<table class="table table-bordered"><tr>
<th>inherited_from</th>
<td>Exception::getTraceAsString()</td>
</tr></table>
</div></div>
</div>
</div>
</div>
</div>
</div>
<div class="row"><footer class="span12">
Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a2</a> and<br>
generated on 2013-05-03T13:07:08-04:00.<br></footer></div>
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.1.0
</a> and<br>
generated on 2013-12-06T22:52:34-05:00.<br></footer></div>
</div>
</body>
</html>

@ -1,4 +1,4 @@
<!DOCTYPE html><html xmlns:date="http://exslt.org/dates-and-times" lang="en">
<!DOCTYPE html><html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
@ -20,7 +20,6 @@
<a href="#api" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b></a><ul class="dropdown-menu">
<li><a>Packages</a></li>
<li><a href="../packages/Default.html"><i class="icon-folder-open"></i> Default</a></li>
<li><a href="../packages/Query.html"><i class="icon-folder-open"></i> Query</a></li>
</ul>
</li>
@ -32,11 +31,9 @@
<a href="#reports" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b></a><ul class="dropdown-menu">
<li><a href="../errors.html"><i class="icon-remove-sign"></i> Errors 
<span class="label label-info">23</span></a></li>
<span class="label label-info">0</span></a></li>
<li><a href="../markers.html"><i class="icon-map-marker"></i> Markers 
<ul><li>todo 
<span class="label label-info">2</span>
</li></ul></a></li>
<ul></ul></a></li>
<li><a href="../deprecated.html"><i class="icon-stop"></i> Deprecated elements 
<span class="label label-info">0</span></a></li>
</ul>
@ -57,90 +54,78 @@
</div>
<ul class="side-nav nav nav-list">
<li class="nav-header">
<i class="icon-custom icon-method"></i> Methods</li>
<li class="method public "><a href="#__construct" title="__construct :: PDO constructor wrapper"><span class="description">PDO constructor wrapper</span><pre>__construct()</pre></a></li>
<li class="method public "><a href="#__sleep" title="__sleep :: "><span class="description">__sleep()
</span><pre>__sleep()</pre></a></li>
<li class="method public "><a href="#__wakeup" title="__wakeup :: "><span class="description">__wakeup()
</span><pre>__wakeup()</pre></a></li>
<li class="method public "><a href="#affected_rows" title="affected_rows :: Returns number of rows affected by an INSERT, UPDATE, DELETE type query"><span class="description">Returns number of rows affected by an INSERT, UPDATE, DELETE type query</span><pre>affected_rows()</pre></a></li>
<li class="method public "><a href="#beginTransaction" title="beginTransaction :: "><span class="description">beginTransaction()
</span><pre>beginTransaction()</pre></a></li>
<li class="method public "><a href="#commit" title="commit :: "><span class="description">commit()
</span><pre>commit()</pre></a></li>
<li class="method public "><a href="#driver_query" title="driver_query :: Method to simplify retreiving db results for meta-data queries"><span class="description">Method to simplify retreiving db results for meta-data queries</span><pre>driver_query()</pre></a></li>
<li class="method public "><a href="#empty_table" title="empty_table :: Deletes all the rows from a table. Does the same as the truncate
<i class="icon-custom icon-method"></i> Methods
<ul>
<li class="method public "><a href="#method___construct" title="__construct() :: PDO constructor wrapper"><span class="description">PDO constructor wrapper</span><pre>__construct()</pre></a></li>
<li class="method public "><a href="#method_affected_rows" title="affected_rows() :: Returns number of rows affected by an INSERT, UPDATE, DELETE type query"><span class="description">Returns number of rows affected by an INSERT, UPDATE, DELETE type query</span><pre>affected_rows()</pre></a></li>
<li class="method public "><a href="#method_driver_query" title="driver_query() :: Method to simplify retreiving db results for meta-data queries"><span class="description">Method to simplify retreiving db results for meta-data queries</span><pre>driver_query()</pre></a></li>
<li class="method public "><a href="#method_empty_table" title="empty_table() :: Deletes all the rows from a table. Does the same as the truncate
method if the database does not support 'TRUNCATE';"><span class="description">Deletes all the rows from a table. Does the same as the truncate
method if the database does not support 'TRUNCATE';</span><pre>empty_table()</pre></a></li>
<li class="method public "><a href="#errorCode" title="errorCode :: "><span class="description">errorCode()