mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
5.7.13
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user