summaryrefslogtreecommitdiffstats
path: root/storage/perfschema/pfs_prepared_stmt.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 18:07:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 18:07:14 +0000
commita175314c3e5827eb193872241446f2f8f5c9d33c (patch)
treecd3d60ca99ae00829c52a6ca79150a5b6e62528b /storage/perfschema/pfs_prepared_stmt.h
parentInitial commit. (diff)
downloadmariadb-10.5-upstream.tar.xz
mariadb-10.5-upstream.zip
Adding upstream version 1:10.5.12.upstream/1%10.5.12upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'storage/perfschema/pfs_prepared_stmt.h')
-rw-r--r--storage/perfschema/pfs_prepared_stmt.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/storage/perfschema/pfs_prepared_stmt.h b/storage/perfschema/pfs_prepared_stmt.h
new file mode 100644
index 00000000..1b017b50
--- /dev/null
+++ b/storage/perfschema/pfs_prepared_stmt.h
@@ -0,0 +1,95 @@
+/* Copyright (c) 2014, 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, version 2.0,
+ as published by the Free Software Foundation.
+
+ This program is also distributed with certain software (including
+ but not limited to OpenSSL) that is licensed under separate terms,
+ as designated in a particular file or component or in included license
+ documentation. The authors of MySQL hereby grant you an additional
+ permission to link the program and your derivative works with the
+ separately licensed software that they have included with MySQL.
+
+ 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, version 2.0, 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,
+ 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
+
+#ifndef PFS_PS_H
+#define PFS_PS_H
+
+/**
+ @file storage/perfschema/pfs_prepared_statement.h
+ Stored Program data structures (declarations).
+*/
+
+#include "pfs_stat.h"
+#include "mysql/psi/psi.h"
+#include "mysql/psi/mysql_ps.h"
+#include "pfs_program.h"
+
+#define PS_NAME_LENGTH NAME_LEN
+
+struct PFS_ALIGNED PFS_prepared_stmt : public PFS_instr
+{
+ /** Column OBJECT_INSTANCE_BEGIN */
+ const void *m_identity;
+
+ /** STATEMENT_ID */
+ ulonglong m_stmt_id;
+
+ /** STATEMENT_NAME */
+ char m_stmt_name[PS_NAME_LENGTH];
+ uint m_stmt_name_length;
+
+ /** SQL_TEXT */
+ char m_sqltext[COL_INFO_SIZE];
+ uint m_sqltext_length;
+
+ /** Column OWNER_THREAD_ID */
+ ulonglong m_owner_thread_id;
+
+ /** Column OWNER_EVENT_ID. */
+ ulonglong m_owner_event_id;
+
+ /** Column OBJECT_OWNER_TYPE. */
+ enum_object_type m_owner_object_type;
+
+ /** Column OBJECT_OWNER_SCHEMA. */
+ char m_owner_object_schema[COL_OBJECT_SCHEMA_SIZE];
+ uint m_owner_object_schema_length;
+
+ /** Column OBJECT_OWNER_NAME. */
+ char m_owner_object_name[COL_OBJECT_NAME_SIZE];
+ uint m_owner_object_name_length;
+
+ /** COLUMN TIMER_PREPARE. Prepared stmt prepare stat. */
+ PFS_single_stat m_prepare_stat;
+
+ /** COLUMN COUNT_REPREPARE. Prepared stmt reprepare stat. */
+ PFS_single_stat m_reprepare_stat;
+
+ /** Prepared stmt execution stat. */
+ PFS_statement_stat m_execute_stat;
+
+ /** Reset data for this record. */
+ void reset_data();
+};
+
+int init_prepared_stmt(const PFS_global_param *param);
+void cleanup_prepared_stmt(void);
+
+void reset_prepared_stmt_instances();
+
+PFS_prepared_stmt*
+create_prepared_stmt(void *identity,
+ PFS_thread *thread, PFS_program *pfs_program,
+ PFS_events_statements *pfs_stmt, uint stmt_id,
+ const char* stmt_name, uint stmt_name_length);
+void delete_prepared_stmt(PFS_prepared_stmt *pfs_ps);
+#endif