CUBRID Engine
latest
Main Page
Namespaces
Classes
Files
File List
File Members
heap_attrinfo.h
Go to the documentation of this file.
1
/*
2
* Copyright 2008 Search Solution Corporation
3
* Copyright 2016 CUBRID Corporation
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*/
18
19
/*
20
* Heap attribute info - interface between heap and query modules
21
*/
22
23
#ifndef _HEAP_ATTRINFO_H_
24
#define _HEAP_ATTRINFO_H_
25
26
#if defined (SERVER_MODE) || defined (SA_MODE)
27
#include "
object_representation_sr.h
"
28
29
typedef
enum
30
{
31
HEAP_READ_ATTRVALUE,
32
HEAP_WRITTEN_ATTRVALUE,
33
HEAP_UNINIT_ATTRVALUE,
34
HEAP_WRITTEN_LOB_ATTRVALUE
35
} HEAP_ATTRVALUE_STATE;
36
37
typedef
enum
38
{
39
HEAP_INSTANCE_ATTR,
40
HEAP_SHARED_ATTR,
41
HEAP_CLASS_ATTR
42
} HEAP_ATTR_TYPE;
43
44
typedef
struct
heap_attrvalue HEAP_ATTRVALUE;
45
struct
heap_attrvalue
46
{
47
ATTR_ID
attrid;
/* attribute identifier */
48
HEAP_ATTRVALUE_STATE state;
/* State of the attribute value. Either of has been read, has been updated, or is
49
* not initialized */
50
int
do_increment;
51
HEAP_ATTR_TYPE attr_type;
/* Instance, class, or shared attribute */
52
OR_ATTRIBUTE
*last_attrepr;
/* Used for default values */
53
OR_ATTRIBUTE
*read_attrepr;
/* Pointer to a desired attribute information */
54
DB_VALUE
dbvalue;
/* DB values of the attribute in memory */
55
};
56
57
typedef
struct
heap_cache_attrinfo
HEAP_CACHE_ATTRINFO
;
58
struct
heap_cache_attrinfo
59
{
60
OID
class_oid;
/* Class object identifier */
61
int
last_cacheindex;
/* An index identifier when the last_classrepr was obtained from the classrepr cache.
62
* Otherwise, -1 */
63
int
read_cacheindex;
/* An index identifier when the read_classrepr was obtained from the classrepr cache.
64
* Otherwise, -1 */
65
OR_CLASSREP
*last_classrepr;
/* Currently cached catalog attribute info. */
66
OR_CLASSREP
*read_classrepr;
/* Currently cached catalog attribute info. */
67
OID
inst_oid;
/* Instance Object identifier */
68
int
inst_chn;
/* Current chn of instance object */
69
int
num_values;
/* Number of desired attribute values */
70
HEAP_ATTRVALUE *values;
/* Value for the attributes */
71
};
72
73
#else
/* !defined (SERVER_MODE) && !defined (SA_MODE) */
74
75
/* XASL generation uses pointer to heap_cache_attrinfo. we need to just declare a dummy struct here. */
76
typedef
struct
heap_cache_attrinfo
HEAP_CACHE_ATTRINFO
;
77
struct
heap_cache_attrinfo
78
{
79
int
dummy
;
80
};
81
82
#endif
/* !defined (SERVER_MODE) && !defined (SA_MODE) */
83
84
#endif
/* _HEAP_ATTRINFO_H_ */
or_attribute
Definition:
object_representation_sr.h:90
db_value
Definition:
dbtype_def.h:1080
ATTR_ID
int ATTR_ID
Definition:
storage_common.h:638
heap_cache_attrinfo
Definition:
heap_attrinfo.h:77
heap_cache_attrinfo::dummy
int dummy
Definition:
heap_attrinfo.h:79
or_classrep
Definition:
object_representation_sr.h:197
object_representation_sr.h
db_identifier
Definition:
dbtype_def.h:960
src
query
heap_attrinfo.h
Generated by
1.8.11