mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Copyright (c) 2014, 2023, Oracle and/or its affiliates.
 | 
						|
 | 
						|
  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
 |