1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00
This commit is contained in:
Sergei Golubchik
2016-07-28 15:52:12 +02:00
parent 51ed64a520
commit 15f60c1a73
976 changed files with 148320 additions and 35656 deletions

View File

@@ -1,4 +1,4 @@
/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
/* Copyright (c) 2011, 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
@@ -21,6 +21,13 @@
#include "my_global.h"
#include "cursor_by_thread.h"
#include "pfs_instr.h"
#include "pfs_buffer_container.h"
ha_rows
cursor_by_thread::get_row_count(void)
{
return global_thread_container.get_row_count();
}
cursor_by_thread::cursor_by_thread(const PFS_engine_table_share *share)
: PFS_engine_table(share, &m_pos),
@@ -37,17 +44,14 @@ int cursor_by_thread::rnd_next(void)
{
PFS_thread *pfs;
for (m_pos.set_at(&m_next_pos);
m_pos.m_index < thread_max;
m_pos.next())
m_pos.set_at(&m_next_pos);
PFS_thread_iterator it= global_thread_container.iterate(m_pos.m_index);
pfs= it.scan_next(& m_pos.m_index);
if (pfs != NULL)
{
pfs= &thread_array[m_pos.m_index];
if (pfs->m_lock.is_populated())
{
make_row(pfs);
m_next_pos.set_after(&m_pos);
return 0;
}
make_row(pfs);
m_next_pos.set_after(&m_pos);
return 0;
}
return HA_ERR_END_OF_FILE;
@@ -59,9 +63,9 @@ cursor_by_thread::rnd_pos(const void *pos)
PFS_thread *pfs;
set_position(pos);
DBUG_ASSERT(m_pos.m_index < thread_max);
pfs= &thread_array[m_pos.m_index];
if (pfs->m_lock.is_populated())
pfs= global_thread_container.get(m_pos.m_index);
if (pfs != NULL)
{
make_row(pfs);
return 0;