목차
Table of Contents
1. 분석 목적 4
2. SQLITE 소스 정보 4
3. SQLITE 콘솔 프로그램 분석 (/src/shell.c) 5
3.1. SQLITE 실행 5
3.2. 함수 호출 과정 7
3.3. main() 함수 8
3.4. process_input() 함수 11
3.5. one_input_line() 함수 15
3.6. do_meta_command() 함수 16
3.7. sqlite3_exec() 함수 16
3.7.1. sqlite3_prepare() 함수 17
3.7.1.1 sqlite3RunParser() 함수 18
3.7.1.2 sqlite3VdbeSetSql() 함수 18
3.7.2. sqlite3_step() 함수 19
3.7.2.1 sqlite3Step() 함수 19
3.7.2.1.1. sqlite3VdbeList() 함수 및 sqlite3VdbeExec() 함수 19
3.7.2.1.2. OPCODE의 수행과정을 보기 위한 첫 번째 방법 20
3.7.2.1.3. OPCODE의 수행과정을 보기 위한 두 번째 방법 24
3.7.3. sqlite3_finalize() 함수 27
3.7.3.1 sqlite3VdbeReset() 함수 27
3.7.3.2 sqlite3VdbeDelete() 함수 28
4. 후 기 28
1. 분석 목적 4
2. SQLITE 소스 정보 4
3. SQLITE 콘솔 프로그램 분석 (/src/shell.c) 5
3.1. SQLITE 실행 5
3.2. 함수 호출 과정 7
3.3. main() 함수 8
3.4. process_input() 함수 11
3.5. one_input_line() 함수 15
3.6. do_meta_command() 함수 16
3.7. sqlite3_exec() 함수 16
3.7.1. sqlite3_prepare() 함수 17
3.7.1.1 sqlite3RunParser() 함수 18
3.7.1.2 sqlite3VdbeSetSql() 함수 18
3.7.2. sqlite3_step() 함수 19
3.7.2.1 sqlite3Step() 함수 19
3.7.2.1.1. sqlite3VdbeList() 함수 및 sqlite3VdbeExec() 함수 19
3.7.2.1.2. OPCODE의 수행과정을 보기 위한 첫 번째 방법 20
3.7.2.1.3. OPCODE의 수행과정을 보기 위한 두 번째 방법 24
3.7.3. sqlite3_finalize() 함수 27
3.7.3.1 sqlite3VdbeReset() 함수 27
3.7.3.2 sqlite3VdbeDelete() 함수 28
4. 후 기 28
본문내용
본 문서는 DB 프로그램인 SQLITE의 OPCODE를 볼 수 있도록 하는 것을 주 목적으로 한다.
본 문서는 OPCODE를 보기위한 방법 두 가지를 소개한다. 그 두 가지 방법을 실행하기 위하여 SQLITE를 실행하고 SQL 문을 입력 후 OPCODE가 나오기까지의 과정을 SQLITE의 소스를 분석함으로써 어떠한 방식으로 수행되며, 어떠한 주요 함수들이 호출되어 OPCODE가 생성되는 것인지 그 과정을 간략히 분석하였다.
본 문서는 OPCODE를 보기위한 방법을 중심으로 작성한 것이다. 따라서 SQL 문이 OPCODE로 변환되는 과정 및 소스, 각 호출되는 함수들의 상세한 기능 및 프로그램 흐름상 넣지 않아도 문제가 없다고 판단되는 함수는 기술하지 않는다.
또한, 각 주요 함수내의 소스도 흐름상 필요한 주요한 부분만을 기술하고 나머지는 기술하지 않았으며 OPCODE의 설명 또한 이 문서에서는 기술하지 않는다. OPCODE의 설명은 #첨부문서 2. OPCODES 설명서 장을 보도록 한다.
본 문서는 OPCODE를 보기위한 방법 두 가지를 소개한다. 그 두 가지 방법을 실행하기 위하여 SQLITE를 실행하고 SQL 문을 입력 후 OPCODE가 나오기까지의 과정을 SQLITE의 소스를 분석함으로써 어떠한 방식으로 수행되며, 어떠한 주요 함수들이 호출되어 OPCODE가 생성되는 것인지 그 과정을 간략히 분석하였다.
본 문서는 OPCODE를 보기위한 방법을 중심으로 작성한 것이다. 따라서 SQL 문이 OPCODE로 변환되는 과정 및 소스, 각 호출되는 함수들의 상세한 기능 및 프로그램 흐름상 넣지 않아도 문제가 없다고 판단되는 함수는 기술하지 않는다.
또한, 각 주요 함수내의 소스도 흐름상 필요한 주요한 부분만을 기술하고 나머지는 기술하지 않았으며 OPCODE의 설명 또한 이 문서에서는 기술하지 않는다. OPCODE의 설명은 #첨부문서 2. OPCODES 설명서 장을 보도록 한다.
소개글