Code_base.cpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #include <common/StmtArea.hpp>
  14. #include "Code_base.hpp"
  15. #include "Code_root.hpp"
  16. // Plan_base
  17. Plan_base::~Plan_base()
  18. {
  19. }
  20. StmtArea&
  21. Plan_base::stmtArea() const
  22. {
  23.     ctx_assert(m_root != 0);
  24.     return m_root->m_stmtArea;
  25. }
  26. DescArea&
  27. Plan_base::descArea(DescUsage u) const
  28. {
  29.     return stmtArea().descArea(u);
  30. }
  31. ConnArea&
  32. Plan_base::connArea() const
  33. {
  34.     return stmtArea().connArea();
  35. }
  36. DictCatalog&
  37. Plan_base::dictCatalog() const
  38. {
  39.     return connArea().dictCatalog();
  40. }
  41. DictSchema&
  42. Plan_base::dictSchema() const
  43. {
  44.     return connArea().dictSchema();
  45. }
  46. Ndb*
  47. Plan_base::ndbObject() const
  48. {
  49.     Ndb* ndb = connArea().ndbObject();
  50.     ctx_assert(ndb != 0);
  51.     return ndb;
  52. }
  53. NdbSchemaCon*
  54. Plan_base::ndbSchemaCon() const
  55. {
  56.     NdbSchemaCon* ndbSchemaCon = connArea().ndbSchemaCon();
  57.     ctx_assert(ndbSchemaCon != 0);
  58.     return ndbSchemaCon;
  59. }
  60. NdbConnection*
  61. Plan_base::ndbConnection() const
  62. {
  63.     NdbConnection* ndbConnection = connArea().ndbConnection();
  64.     ctx_assert(ndbConnection != 0);
  65.     return ndbConnection;
  66. }
  67. void
  68. Plan_base::printList(Ctx& ctx, Plan_base* a[], unsigned n)
  69. {
  70.     for (unsigned i = 0; i < n; i++) {
  71. if (a[i] == 0)
  72.     ctx.print(" -");
  73. else
  74.     a[i]->print(ctx);
  75.     }
  76. }
  77. // Exec_base
  78. Exec_base::Code::~Code()
  79. {
  80. }
  81. Exec_base::Data::~Data()
  82. {
  83. }
  84. Exec_base::~Exec_base()
  85. {
  86.     delete m_code; // remove when code becomes shared
  87.     m_code = 0;
  88.     delete m_data;
  89.     m_data = 0;
  90. }
  91. StmtArea&
  92. Exec_base::stmtArea() const
  93. {
  94.     ctx_assert(m_root != 0);
  95.     return m_root->m_stmtArea;
  96. }
  97. DescArea&
  98. Exec_base::descArea(DescUsage u) const
  99. {
  100.     return stmtArea().descArea(u);
  101. }
  102. ConnArea&
  103. Exec_base::connArea() const
  104. {
  105.     return stmtArea().connArea();
  106. }
  107. DictSchema&
  108. Exec_base::dictSchema() const
  109. {
  110.     return connArea().dictSchema();
  111. }
  112. Ndb*
  113. Exec_base::ndbObject() const
  114. {
  115.     Ndb* ndb = connArea().ndbObject();
  116.     ctx_assert(ndb != 0);
  117.     return ndb;
  118. }
  119. NdbSchemaCon*
  120. Exec_base::ndbSchemaCon() const
  121. {
  122.     NdbSchemaCon* ndbSchemaCon = connArea().ndbSchemaCon();
  123.     ctx_assert(ndbSchemaCon != 0);
  124.     return ndbSchemaCon;
  125. }
  126. NdbConnection*
  127. Exec_base::ndbConnection() const
  128. {
  129.     NdbConnection* ndbConnection = connArea().ndbConnection();
  130.     ctx_assert(ndbConnection != 0);
  131.     return ndbConnection;
  132. }
  133. void
  134. Exec_base::printList(Ctx& ctx, Exec_base* a[], unsigned n)
  135. {
  136.     for (unsigned i = 0; i < n; i++) {
  137. ctx_assert(a[i] != 0);
  138. a[i]->print(ctx);
  139.     }
  140. }