summaryrefslogtreecommitdiff
path: root/storage/ndb/src/old_files/client/odbc/common/StmtInfo.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/ndb/src/old_files/client/odbc/common/StmtInfo.hpp')
-rw-r--r--storage/ndb/src/old_files/client/odbc/common/StmtInfo.hpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/storage/ndb/src/old_files/client/odbc/common/StmtInfo.hpp b/storage/ndb/src/old_files/client/odbc/common/StmtInfo.hpp
new file mode 100644
index 00000000000..9cd489be6da
--- /dev/null
+++ b/storage/ndb/src/old_files/client/odbc/common/StmtInfo.hpp
@@ -0,0 +1,86 @@
+/* Copyright (C) 2003 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#ifndef ODBC_COMMON_StmtInfo_hpp
+#define ODBC_COMMON_StmtInfo_hpp
+
+#include <common/common.hpp>
+
+// general type (determined by SQL command)
+enum StmtType {
+ Stmt_type_undef = 0,
+ Stmt_type_query, // select
+ Stmt_type_DML, // insert, update, delete
+ Stmt_type_DDL, // create, drop, alter table
+ Stmt_type_info // virtual query
+};
+
+// specific SQL command (first 1-2 words)
+enum StmtName {
+ Stmt_name_undef = 0,
+ Stmt_name_select,
+ Stmt_name_insert,
+ Stmt_name_update,
+ Stmt_name_delete,
+ Stmt_name_create_table,
+ Stmt_name_create_index,
+ Stmt_name_drop_table,
+ Stmt_name_drop_index
+};
+
+/**
+ * @class StmtInfo
+ * @brief Statement Info
+ *
+ * Statement info. This is a separate class which could
+ * be used in cases not tied to statement execution.
+ */
+class StmtInfo {
+public:
+ StmtInfo();
+ void setName(StmtName name);
+ StmtName getName() const;
+ const char* getDesc() const;
+ StmtType getType() const;
+ void free(Ctx& ctx);
+private:
+ friend class StmtArea;
+ StmtName m_name;
+ const char* m_function; // not allocated
+ SQLINTEGER m_functionCode;
+};
+
+inline
+StmtInfo::StmtInfo() :
+ m_name(Stmt_name_undef),
+ m_function(""),
+ m_functionCode(SQL_DIAG_UNKNOWN_STATEMENT)
+{
+}
+
+inline void
+StmtInfo::setName(StmtName name)
+{
+ m_name = name;
+}
+
+inline StmtName
+StmtInfo::getName() const
+{
+ return m_name;
+}
+
+#endif