CUBRID Engine  latest
query_manager.h File Reference
#include "dbtype_def.h"
#include "file_manager.h"
#include "list_file.h"
#include "storage_common.h"
#include "thread_compat.hpp"
Include dependency graph for query_manager.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  qmgr_temp_file
 
struct  qmgr_wait_args
 
struct  qmgr_query_entry
 

Macros

#define qmgr_free_old_page_and_init(thread_p, page_p, tfile_vfidp)
 
#define NULL_PAGEID_IN_PROGRESS   -2
 

Typedefs

typedef struct qmgr_temp_file QMGR_TEMP_FILE
 
typedef struct qmgr_wait_args QMGR_WAIT_ARGS
 
typedef struct qmgr_query_entry QMGR_QUERY_ENTRY
 

Enumerations

enum  QMGR_TEMP_FILE_MEMBUF_TYPE { TEMP_FILE_MEMBUF_NONE = -1, TEMP_FILE_MEMBUF_NORMAL, TEMP_FILE_MEMBUF_KEY_BUFFER, TEMP_FILE_MEMBUF_NUM_TYPES }
 
enum  QMGR_TRAN_STATUS {
  QMGR_TRAN_NULL, QMGR_TRAN_RUNNING, QMGR_TRAN_DELAYED_START, QMGR_TRAN_WAITING,
  QMGR_TRAN_RESUME_TO_DEALLOCATE, QMGR_TRAN_RESUME_DUE_DEADLOCK, QMGR_TRAN_TERMINATED
}
 
enum  QMGR_QUERY_TYPE {
  OTHERS, M_QUERY, UNION_QUERY, VALUE_QUERY,
  GROUPBY_QUERY, ORDERBY_QUERY, DISTINCT_QUERY, ANALYTIC_QUERY
}
 
enum  QMGR_QUERY_STATUS { QUERY_IN_PROGRESS, QUERY_COMPLETED, QUERY_CLOSED }
 

Functions

QMGR_QUERY_ENTRYqmgr_get_query_entry (THREAD_ENTRY *thread_p, QUERY_ID query_id, int trans_ind)
 
int qmgr_allocate_tran_entries (THREAD_ENTRY *thread_p, int trans_cnt)
 
void qmgr_dump (void)
 
int qmgr_initialize (THREAD_ENTRY *thread_p)
 
void qmgr_finalize (THREAD_ENTRY *thread_p)
 
void qmgr_clear_trans_wakeup (THREAD_ENTRY *thread_p, int tran_index, bool tran_died, bool is_abort)
 
void qmgr_add_modified_class (THREAD_ENTRY *thread_p, const OID *class_oid)
 
PAGE_PTR qmgr_get_old_page (THREAD_ENTRY *thread_p, VPID *vpidp, QMGR_TEMP_FILE *tfile_vfidp)
 
void qmgr_free_old_page (THREAD_ENTRY *thread_p, PAGE_PTR page_ptr, QMGR_TEMP_FILE *tfile_vfidp)
 
void qmgr_set_dirty_page (THREAD_ENTRY *thread_p, PAGE_PTR page_ptr, int free_page, LOG_DATA_ADDR *addrp, QMGR_TEMP_FILE *tfile_vfidp)
 
PAGE_PTR qmgr_get_new_page (THREAD_ENTRY *thread_p, VPID *vpidp, QMGR_TEMP_FILE *tfile_vfidp)
 
QMGR_TEMP_FILEqmgr_create_new_temp_file (THREAD_ENTRY *thread_p, QUERY_ID query_id, QMGR_TEMP_FILE_MEMBUF_TYPE membuf_type)
 
QMGR_TEMP_FILEqmgr_create_result_file (THREAD_ENTRY *thread_p, QUERY_ID query_id)
 
int qmgr_free_list_temp_file (THREAD_ENTRY *thread_p, QUERY_ID query_id, QMGR_TEMP_FILE *tfile_vfidp)
 
int qmgr_free_temp_file_list (THREAD_ENTRY *thread_p, QMGR_TEMP_FILE *tfile_vfidp, QUERY_ID query_id, bool is_error)
 
void qmgr_set_query_error (THREAD_ENTRY *thread_p, QUERY_ID query_id)
 
void qmgr_setup_empty_list_file (char *page_buf)
 
int qmgr_get_temp_file_membuf_pages (QMGR_TEMP_FILE *temp_file_p)
 
int qmgr_get_sql_id (THREAD_ENTRY *thread_p, char **sql_id_buf, char *query, size_t sql_len)
 
struct drand48_data * qmgr_get_rand_buf (THREAD_ENTRY *thread_p)
 
QUERY_ID qmgr_get_current_query_id (THREAD_ENTRY *thread_p)
 
char * qmgr_get_query_sql_user_text (THREAD_ENTRY *thread_p, QUERY_ID query_id, int tran_index)
 

Macro Definition Documentation

#define NULL_PAGEID_IN_PROGRESS   -2

Definition at line 50 of file query_manager.h.

Referenced by qfile_has_next_page(), and xqfile_get_list_file_page().

Typedef Documentation

Definition at line 122 of file query_manager.h.

Definition at line 75 of file query_manager.h.

Definition at line 94 of file query_manager.h.

Enumeration Type Documentation

Enumerator
QUERY_IN_PROGRESS 
QUERY_COMPLETED 
QUERY_CLOSED 

Definition at line 115 of file query_manager.h.

Enumerator
OTHERS 
M_QUERY 
UNION_QUERY 
VALUE_QUERY 
GROUPBY_QUERY 
ORDERBY_QUERY 
DISTINCT_QUERY 
ANALYTIC_QUERY 

Definition at line 103 of file query_manager.h.

Enumerator
TEMP_FILE_MEMBUF_NONE 
TEMP_FILE_MEMBUF_NORMAL 
TEMP_FILE_MEMBUF_KEY_BUFFER 
TEMP_FILE_MEMBUF_NUM_TYPES 

Definition at line 52 of file query_manager.h.

Enumerator
QMGR_TRAN_NULL 
QMGR_TRAN_RUNNING 
QMGR_TRAN_DELAYED_START 
QMGR_TRAN_WAITING 
QMGR_TRAN_RESUME_TO_DEALLOCATE 
QMGR_TRAN_RESUME_DUE_DEADLOCK 
QMGR_TRAN_TERMINATED 

Definition at line 61 of file query_manager.h.

Function Documentation

int qmgr_allocate_tran_entries ( THREAD_ENTRY thread_p,
int  trans_cnt 
)
void qmgr_dump ( void  )

Referenced by qmgr_free_tran_entries().

Here is the caller graph for this function:

void qmgr_free_old_page ( THREAD_ENTRY thread_p,
PAGE_PTR  page_ptr,
QMGR_TEMP_FILE tfile_vfidp 
)
QUERY_ID qmgr_get_current_query_id ( THREAD_ENTRY thread_p)
char* qmgr_get_query_sql_user_text ( THREAD_ENTRY thread_p,
QUERY_ID  query_id,
int  tran_index 
)

Definition at line 3528 of file query_manager.c.

References NULL, qmgr_get_query_entry(), xasl_cache_ent::sql_info, execution_info::sql_user_text, and qmgr_query_entry::xasl_ent.

Referenced by qexec_execute_query().

Here is the caller graph for this function:

struct drand48_data* qmgr_get_rand_buf ( THREAD_ENTRY thread_p)

Definition at line 3488 of file query_manager.c.

References qmgr_rand_buf.

Referenced by fetch_peek_arith(), and qexec_execute_query().

Here is the caller graph for this function:

int qmgr_get_sql_id ( THREAD_ENTRY thread_p,
char **  sql_id_buf,
char *  query,
size_t  sql_len 
)
int qmgr_get_temp_file_membuf_pages ( QMGR_TEMP_FILE temp_file_p)
void qmgr_set_dirty_page ( THREAD_ENTRY thread_p,
PAGE_PTR  page_ptr,
int  free_page,
LOG_DATA_ADDR addrp,
QMGR_TEMP_FILE tfile_vfidp 
)

Definition at line 2455 of file query_manager.c.

References assert, FREE, log_skip_logging(), pgbuf_set_dirty(), qmgr_get_page_type(), QMGR_MEMBUF_PAGE, QMGR_TEMP_FILE_PAGE, and QMGR_UNKNOWN_PAGE.

Referenced by qfile_set_dirty_page().

Here is the caller graph for this function: