cci_schema_info

설명

스키마 정보를 읽어온다. 성공적으로 수행되었을 경우 결과는 request handle에 의해 관리되고, fetch, getdata를 통해서 결과를 가져올 수 있다. class_name, attr_name을 pattern match에 의해서 검색해야 할 경우 flag를 설정한다. 

CCI_CLASS_NAME_PATTERN_MATCH, CCI_ATTR_NAME_PATTERN_MATCH 두 개의 flag가 사용된다. Or 연산자( | )로 둘을 설정할 수 있다. Pattern match를 사용할 경우 속도가 매우 떨어질 수 있다. 

type에 대한 튜플(tuple)의 구성은 아래 표와 같다. 

타입에 대한 튜플 구성

타입

컬럼 순서

컬럼 이름

컬럼 타입

CCI_SCH_CLASS

1

NAME

char*

2

TYPE

short
0 : system class
1 : vclass
2 : class
3 : proxy

CCI_SCH_VCLASS

1

NAME

char*

2

TYPE

short
1 : vclass
3 : proxy

CCI_SCH_ATTRIBUTE

1

NAME

char*

2

DOMAIN

int

3

SCALE

int

4

PRECISION

int

5

INDEXED

int
1 : indexed

6

NON_NULL

int
1 : non null

7

SHARED

int
1 : shared

8

UNIQUE

int
1 : unique

9

DEFAULT

void*

10

ATTR_ORDER

int
base : 1

11

CLASS_NAME

char*

12

SOURCE_CLASS

char*

13

IS_KEY

short
1 : key

CCI_SCH_CLASS_METHOD

1

NAME

char*

2

RET_DOMAIN

int

3

ARG_DOMAIN

char*

CCI_SCH_METHOD_FILE

1

METHOD_FILE

char*

CCI_SCH_SUPERCLASS

1

CLASS_NAME

char*

2

TYPE

short

CCI_SCH_SUBCLASS

1

CLASS_NAME

char*

2

TYPE

short

CCI_SCH_CONSTRAINT

1

TYPE
0 : unique
1 : index
2 : reverse unique
3 : reverse index

int

2

NAME

char*

3

ATTR_NAME

char*

4

NUM_PAGES

int

5

NUM_KEYS

int

6

PRIMARY_KEY
1 : primary key

short

7

KEY_ORDER

short
base : 1

CCI_SCH_TRIGGER

1

NAME

char*

2

STATUS

char*

3

EVENT

char*

4

TARGET_CLASS

char*

5

TARGET_ATTR

char*

6

ACTION_TIME

char*

7

ACTION

char*

8

PRIORITY

float

9

CONDITION_TIME

char*

10

CONDITION

char*

CCI_SCH_CLASS_PRIVILEGE

1

CLASS_NAME

char*

2

PRIVELEGE

char*

3

GRANTABLE

char*

CCI_SCH_ATTR_PRIVILEGE

1

ATTR_NAME

char*

2

PRIVILEGE

char*

3

GRANTABLE

char*

CCI_SCH_PRIMARY_KEY

1

CLASS_NAME

char*

2

ATTR_NAME

char*

3

KEY_SEQ

short
base : 1

4

KEY_NAME

char*

Pattern match

CCI_SCH_TYPE

Class name

ATTR_name

CCI_SCH_CLASS (VCLASS)

O

none

CCI_SCH_ATTRIBUTE (CLASS ATTRIBUTE)

O

O

CCI_SCH_CLASS_PRIVILEGE

O

none

CCI_SCH_ATTR_PRIVILEGE

X

O

CCI_SCH_PRIMARY_KEY

O

none

패턴 flag가 설정되지 않을 경우 주어진 클래스 이름 또는 속성 이름은 exact string match를 사용하며, 따라서 NULL이 주어질 경우 결과는 없다. 패턴 flag가 설정되어 있을 경우 클래스 이름 또는 속성 이름이 NULL일 경우 "%"와 동일한 결과를 얻는다. 

참고 CCI_SCH_CLASS, CCI_SCH_VCLASS의 TYPE 컬럼 : proxy 타입이 추가됨. OLEDB, ODBC, PHP에서 사용할 경우 proxy와 vclass를 구분하지 않고 vclass로 보임. 

구문

int cci_schema_info(int conn_handle, T_CCI_SCHEMA_TYPE type, char *class_name, char *attr_name, char flag, T_CCI_ERROR *err_buf)

리턴 값