summaryrefslogtreecommitdiff
path: root/mysql/mysql/service_rules_table.h
diff options
context:
space:
mode:
Diffstat (limited to 'mysql/mysql/service_rules_table.h')
-rw-r--r--mysql/mysql/service_rules_table.h192
1 files changed, 0 insertions, 192 deletions
diff --git a/mysql/mysql/service_rules_table.h b/mysql/mysql/service_rules_table.h
deleted file mode 100644
index aca3926..0000000
--- a/mysql/mysql/service_rules_table.h
+++ /dev/null
@@ -1,192 +0,0 @@
-#ifdef __cplusplus
-#ifndef SERVICE_RULES_TABLE_INCLUDED
-#define SERVICE_RULES_TABLE_INCLUDED
-
-/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
-
- 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; version 2 of the
- License.
-
- 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
-
-#include <my_global.h>
-#include <my_dbug.h>
-#include <string>
-
-#ifndef MYSQL_ABI_CHECK
-#include <stdlib.h>
-#endif
-
-
-/**
- @file service_rules_table.h
-
- Plugin service that provides access to the rewrite rules table that is used
- by the Rewriter plugin. No other use intended.
-*/
-
-class THD;
-struct TABLE_LIST;
-class Field;
-
-namespace rules_table_service
-{
-
-
-/**
- There must be one function of this kind in order for the symbols in the
- server's dynamic library to be visible to plugins.
-*/
-int dummy_function_to_ensure_we_are_linked_into_the_server();
-
-
-/**
- Frees a const char pointer allocated in the server's dynamic library using
- new[].
-*/
-void free_string(const char *str);
-
-
-/**
- Writable cursor that allows reading and updating of rows in a persistent
- table.
-*/
-class Cursor
-{
-public:
- typedef int column_id;
-
- static const column_id ILLEGAL_COLUMN_ID= -1;
-
- /**
- Creates a cursor to an already-opened table. The constructor is kept
- explicit because of implicit conversions from void*.
- */
- explicit Cursor(THD *thd);
-
- /// Creates a past-the-end cursor.
- Cursor() :
- m_thd(NULL), m_table_list(NULL), m_is_finished(true)
- {}
-
- column_id pattern_column() const { return m_pattern_column; }
- column_id pattern_database_column() const
- {
- return m_pattern_database_column;
- }
- column_id replacement_column() const { return m_replacement_column; }
- column_id enabled_column() const { return m_enabled_column; }
- column_id message_column() const { return m_message_column; }
- column_id pattern_digest_column() const { return m_pattern_digest_column; }
- column_id normalized_pattern_column() const {
- return m_normalized_pattern_column;
- }
-
- /**
- True if the table does not contain columns named 'pattern', 'replacement',
- 'enabled' and 'message'. In this case the cursor is equal to any
- past-the-end Cursor.
- */
- bool table_is_malformed() { return m_table_is_malformed; }
-
- /**
- Fetches the value of the column with the given number as a C string.
-
- This interface is meant for crossing dynamic library boundaries, hence the
- use of C-style const char*. The function casts a column value to a C
- string and returns a copy, allocated in the callee's DL. The pointer
- must be freed using free_string().
-
- @param fieldno One of PATTERN_COLUMN, REPLACEMENT_COLUMN, ENABLED_COLUMN
- or MESSAGE_COLUMN.
- */
- const char *fetch_string(int fieldno);
-
- /**
- Equality operator. The only cursors that are equal are past-the-end
- cursors.
- */
- bool operator== (const Cursor &other)
- {
- return (m_is_finished == other.m_is_finished);
- }
-
- /**
- Inequality operator. All cursors are considered different except
- past-the-end cursors.
- */
- bool operator!= (const Cursor &other) { return !(*this == other); }
-
- /**
- Advances this Cursor. Read errors are kept, and had_serious_read_error()
- will tell if there was an unexpected error (e.g. not EOF) while reading.
- */
- Cursor &operator++ ()
- {
- if (!m_is_finished)
- read();
- return *this;
- }
-
- /// Prepares the write buffer for updating the current row.
- void make_writeable();
-
- /**
- Sets the value of column colno to a string value.
-
- @param colno The column number.
- @param str The string.
- @param length The string's length.
- */
- void set(int colno, const char* str, size_t length);
-
- /// Writes the row in the write buffer to the table at the current row.
- int write();
-
- /// True if there was an unexpected error while reading, e.g. other than EOF.
- bool had_serious_read_error() const;
-
- /// Closes the table scan if initiated and commits the transaction.
- ~Cursor();
-
-private:
- int field_index(const char *field_name);
-
- int m_pattern_column;
- int m_pattern_database_column;
- int m_replacement_column;
- int m_enabled_column;
- int m_message_column;
- int m_pattern_digest_column;
- int m_normalized_pattern_column;
-
- THD *m_thd;
- TABLE_LIST *m_table_list;
-
- bool m_is_finished;
- bool m_table_is_malformed;
- int m_last_read_status;
-
- int read();
-};
-
-
-/**
- A past-the-end Cursor. All past-the-end cursors are considered equal
- when compared with operator ==.
-*/
-Cursor end();
-
-}
-
-#endif // SERVICE_RULES_TABLE_INCLUDED
-#endif // __cplusplus