~ubuntu-branches/ubuntu/trusty/mysql-5.6/trusty

« back to all changes in this revision

Viewing changes to storage/perfschema/table_session_connect.h

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-02-12 11:54:27 UTC
  • Revision ID: package-import@ubuntu.com-20140212115427-oq6tfsqxl1wuwehi
Tags: upstream-5.6.15
ImportĀ upstreamĀ versionĀ 5.6.15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
 
2
 
 
3
  This program is free software; you can redistribute it and/or modify
 
4
  it under the terms of the GNU General Public License as published by
 
5
  the Free Software Foundation; version 2 of the License.
 
6
 
 
7
  This program is distributed in the hope that it will be useful,
 
8
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
9
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
10
  GNU General Public License for more details.
 
11
 
 
12
  You should have received a copy of the GNU General Public License
 
13
  along with this program; if not, write to the Free Software Foundation,
 
14
  51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
 
15
 
 
16
#ifndef TABLE_SESSION_CONNECT_H
 
17
#define TABLE_SESSION_CONNECT_H
 
18
 
 
19
#include "pfs_column_types.h"
 
20
#include "cursor_by_thread_connect_attr.h"
 
21
#include "table_helper.h"
 
22
 
 
23
#define MAX_ATTR_NAME_CHARS 32
 
24
#define MAX_ATTR_VALUE_CHARS 1024
 
25
#define MAX_UTF8_BYTES 6
 
26
 
 
27
/** symbolic names for field offsets, keep in sync with field_types */
 
28
enum field_offsets {
 
29
  FO_PROCESS_ID,
 
30
  FO_ATTR_NAME,
 
31
  FO_ATTR_VALUE,
 
32
  FO_ORDINAL_POSITION
 
33
};
 
34
 
 
35
/**
 
36
  A row of PERFORMANCE_SCHEMA.SESSION_CONNECT_ATTRS and
 
37
  PERFORMANCE_SCHEMA.SESSION_ACCOUNT_CONNECT_ATTRS.
 
38
*/
 
39
struct row_session_connect_attrs
 
40
{
 
41
  /** Column PROCESS_ID. */
 
42
  ulong m_process_id;
 
43
  /** Column ATTR_NAME. In UTF-8 */
 
44
  char m_attr_name[MAX_ATTR_NAME_CHARS * MAX_UTF8_BYTES];
 
45
  /** Length in bytes of @c m_attr_name. */
 
46
  uint m_attr_name_length;
 
47
  /** Column ATTR_VALUE. In UTF-8 */
 
48
  char m_attr_value[MAX_ATTR_VALUE_CHARS * MAX_UTF8_BYTES];
 
49
  /** Length in bytes of @c m_attr_name. */
 
50
  uint m_attr_value_length;
 
51
  /** Column ORDINAL_POSITION. */
 
52
  ulong m_ordinal_position;
 
53
};
 
54
 
 
55
class table_session_connect : public cursor_by_thread_connect_attr
 
56
{
 
57
protected:
 
58
  table_session_connect(const PFS_engine_table_share *share);
 
59
 
 
60
public:
 
61
  ~table_session_connect();
 
62
 
 
63
protected:
 
64
  virtual void make_row(PFS_thread *pfs, uint ordinal);
 
65
  virtual bool thread_fits(PFS_thread *thread);
 
66
  virtual int read_row_values(TABLE *table, unsigned char *buf,
 
67
                              Field **fields, bool read_all);
 
68
protected:
 
69
  /** Fields definition. */
 
70
  static TABLE_FIELD_DEF m_field_def;
 
71
  /** Current row. */
 
72
  row_session_connect_attrs m_row;
 
73
  /** Safe copy of @c PFS_thread::m_session_connect_attrs. */
 
74
  char *m_copy_session_connect_attrs;
 
75
  /** Safe copy of @c PFS_thread::m_session_connect_attrs_length. */
 
76
  uint m_copy_session_connect_attrs_length;
 
77
};
 
78
 
 
79
/** @} */
 
80
#endif