Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
row0vers.ic
Package: mysql-3.23.35.tar.gz [view]
Upload User: tsgydb
Upload Date: 2007-04-14
Package Size: 10674k
Code Size: 2k
Category:
MySQL
Development Platform:
Visual C++
- /******************************************************
- Row versions
- (c) 1997 Innobase Oy
- Created 2/6/1997 Heikki Tuuri
- *******************************************************/
- #include "row0row.h"
- #include "dict0dict.h"
- #include "read0read.h"
- #include "page0page.h"
- #include "log0recv.h"
- /*************************************************************************
- Fetches the trx id of a clustered index record or version. */
- UNIV_INLINE
- dulint
- row_vers_get_trx_id(
- /*================*/
- /* out: trx id or ut_dulint_zero if the
- clustered index record not found */
- rec_t* rec, /* in: clustered index record, or an old
- version of it */
- dict_table_t* table) /* in: table */
- {
- return(row_get_rec_trx_id(rec, dict_table_get_first_index(table)));
- }
- /*************************************************************************
- Checks if a consistent read can be performed immediately on the index
- record, or if an older version is needed. */
- UNIV_INLINE
- ibool
- row_vers_clust_rec_sees_older(
- /*==========================*/
- /* out: FALSE if can read immediately */
- rec_t* rec, /* in: record which should be read or passed
- over by a read cursor */
- dict_index_t* index, /* in: clustered index */
- read_view_t* view) /* in: read view */
- {
- ut_ad(index->type & DICT_CLUSTERED);
- if (read_view_sees_trx_id(view, row_get_rec_trx_id(rec, index))) {
- return(FALSE);
- }
- return(TRUE);
- }
- /*************************************************************************
- Checks if a secondary index record can be read immediately by a consistent
- read, or if an older version may be needed. To be sure, we will have to
- look in the clustered index. */
- UNIV_INLINE
- ibool
- row_vers_sec_rec_may_see_older(
- /*===========================*/
- /* out: FALSE if can be read immediately */
- rec_t* rec, /* in: record which should be read or passed */
- dict_index_t* index, /* in: secondary index */
- read_view_t* view) /* in: read view */
- {
- page_t* page;
- ut_ad(!(index->type & DICT_CLUSTERED));
- page = buf_frame_align(rec);
- if ((ut_dulint_cmp(page_get_max_trx_id(page), view->up_limit_id) >= 0)
- || recv_recovery_is_on()) {
- /* It may be that the record was inserted or modified by a
- transaction the view should not see: we have to look in the
- clustered index */
- return(TRUE);
- }
- return(FALSE);
- }