CUBRID Engine  latest
query_manager.c File Reference
#include "config.h"
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include "query_manager.h"
#include "file_manager.h"
#include "compile_context.h"
#include "log_append.hpp"
#include "object_primitive.h"
#include "object_representation.h"
#include "xserver_interface.h"
#include "query_executor.h"
#include "stream_to_xasl.h"
#include "session.h"
#include "filter_pred_cache.h"
#include "crypt_opfunc.h"
#include "thread_entry.hpp"
#include "xasl_cache.h"
#include "xasl_unpack_info.hpp"
Include dependency graph for query_manager.c:

Go to the source code of this file.

Classes

struct  oid_block_list
 
struct  qmgr_tran_entry
 
struct  qmgr_temp_file_list
 
struct  qmgr_query_table
 

Macros

#define pthread_mutex_init(a, b)
 
#define pthread_mutex_destroy(a)
 
#define pthread_mutex_lock(a)   0
 
#define pthread_mutex_unlock(a)
 
#define IS_IN_METHOD_OR_JSP_CALL()   (method_Num_method_jsp_calls > 0)
 
#define QMGR_MAX_QUERY_ENTRY_PER_TRAN   100
 
#define QMGR_TEMP_FILE_FREE_LIST_SIZE   100
 
#define QMGR_NUM_TEMP_FILE_LISTS   (TEMP_FILE_MEMBUF_NUM_TYPES)
 
#define QMGR_SQL_ID_LENGTH   13
 
#define QMGR_IS_VALID_MEMBUF_TYPE(m)   ((m) == TEMP_FILE_MEMBUF_NORMAL || (m) == TEMP_FILE_MEMBUF_KEY_BUFFER)
 
#define OID_BLOCK_ARRAY_SIZE   10
 

Typedefs

typedef enum qmgr_page_type QMGR_PAGE_TYPE
 
typedef struct oid_block_list OID_BLOCK_LIST
 
typedef struct qmgr_tran_entry QMGR_TRAN_ENTRY
 
typedef struct qmgr_temp_file_list QMGR_TEMP_FILE_LIST
 
typedef struct qmgr_query_table QMGR_QUERY_TABLE
 

Enumerations

enum  qmgr_page_type { QMGR_UNKNOWN_PAGE, QMGR_MEMBUF_PAGE, QMGR_TEMP_FILE_PAGE }
 

Functions

static QMGR_PAGE_TYPE qmgr_get_page_type (PAGE_PTR page_p, QMGR_TEMP_FILE *temp_file_p)
 
static bool qmgr_is_allowed_result_cache (QUERY_FLAG flag)
 
static bool qmgr_can_get_from_cache (QUERY_FLAG flag)
 
static bool qmgr_can_get_result_from_cache (QUERY_FLAG flag)
 
static void qmgr_put_page_header (PAGE_PTR page_p, QFILE_PAGE_HEADER *header_p)
 
static QMGR_QUERY_ENTRYqmgr_allocate_query_entry (THREAD_ENTRY *thread_p, QMGR_TRAN_ENTRY *tran_entry_p)
 
static void qmgr_free_query_entry (THREAD_ENTRY *thread_p, QMGR_TRAN_ENTRY *tran_entry_p, QMGR_QUERY_ENTRY *q_ptr)
 
static void qmgr_deallocate_query_entries (QMGR_QUERY_ENTRY *q_ptr)
 
static void qmgr_deallocate_oid_blocks (OID_BLOCK_LIST *oid_block)
 
static void qmgr_add_query_entry (THREAD_ENTRY *thread_p, QMGR_QUERY_ENTRY *q_ptr, int trans_ind)
 
static QMGR_QUERY_ENTRYqmgr_find_query_entry (QMGR_QUERY_ENTRY *query_list_p, QUERY_ID query_id)
 
static void qmgr_delete_query_entry (THREAD_ENTRY *thread_p, QUERY_ID query_id, int trans_ind)
 
static void qmgr_free_tran_entries (void)
 
static void qmgr_clear_relative_cache_entries (THREAD_ENTRY *thread_p, QMGR_TRAN_ENTRY *tran_entry_p)
 
static bool qmgr_is_related_class_modified (THREAD_ENTRY *thread_p, XASL_CACHE_ENTRY *xasl_cache, int tran_index)
 
static OID_BLOCK_LISTqmgr_allocate_oid_block (THREAD_ENTRY *thread_p)
 
static void qmgr_free_oid_block (THREAD_ENTRY *thread_p, OID_BLOCK_LIST *oid_block)
 
static int qmgr_init_external_file_page (THREAD_ENTRY *thread_p, PAGE_PTR page, void *args)
 
static PAGE_PTR qmgr_get_external_file_page (THREAD_ENTRY *thread_p, VPID *vpid, QMGR_TEMP_FILE *vfid)
 
static int qmgr_free_query_temp_file_helper (THREAD_ENTRY *thread_p, QMGR_QUERY_ENTRY *query_p)
 
static int qmgr_free_query_temp_file (THREAD_ENTRY *thread_p, QMGR_QUERY_ENTRY *qptr, int tran_idx)
 
static QMGR_TEMP_FILEqmgr_allocate_tempfile_with_buffer (int num_buffer_pages)
 
static void qmgr_initialize_temp_file_list (QMGR_TEMP_FILE_LIST *temp_file_list_p, QMGR_TEMP_FILE_MEMBUF_TYPE membuf_type)
 
static void qmgr_finalize_temp_file_list (QMGR_TEMP_FILE_LIST *temp_file_list_p)
 
static QMGR_TEMP_FILEqmgr_get_temp_file_from_list (QMGR_TEMP_FILE_LIST *temp_file_list_p)
 
static void qmgr_put_temp_file_into_list (QMGR_TEMP_FILE *temp_file_p)
 
static int copy_bind_value_to_tdes (THREAD_ENTRY *thread_p, int num_bind_vals, DB_VALUE *bind_vals)
 
static void qmgr_mark_query_as_completed (QMGR_QUERY_ENTRY *query_p)
 
QMGR_QUERY_ENTRYqmgr_get_query_entry (THREAD_ENTRY *thread_p, QUERY_ID query_id, int tran_index)
 
static void qmgr_initialize_tran_entry (QMGR_TRAN_ENTRY *tran_entry_p)
 
int qmgr_allocate_tran_entries (THREAD_ENTRY *thread_p, int num_new_entries)
 
int qmgr_initialize (THREAD_ENTRY *thread_p)
 
void qmgr_finalize (THREAD_ENTRY *thread_p)
 
int xqmgr_prepare_query (THREAD_ENTRY *thread_p, COMPILE_CONTEXT *context, xasl_stream *stream)
 
static QFILE_LIST_IDqmgr_process_query (THREAD_ENTRY *thread_p, XASL_NODE *xasl_tree, char *xasl_stream, int xasl_stream_size, int dbval_count, const DB_VALUE *dbvals_p, QUERY_FLAG flag, QMGR_QUERY_ENTRY *query_p, QMGR_TRAN_ENTRY *tran_entry_p)
 
QFILE_LIST_IDxqmgr_execute_query (THREAD_ENTRY *thread_p, const XASL_ID *xasl_id_p, QUERY_ID *query_id_p, int dbval_count, void *dbval_p, QUERY_FLAG *flag_p, CACHE_TIME *client_cache_time_p, CACHE_TIME *server_cache_time_p, int query_timeout, xasl_cache_ent **ret_cache_entry_p)
 
QFILE_LIST_IDxqmgr_prepare_and_execute_query (THREAD_ENTRY *thread_p, char *xasl_stream, int xasl_stream_size, QUERY_ID *query_id_p, int dbval_count, void *dbval_p, QUERY_FLAG *flag_p, int query_timeout)
 
int xqmgr_end_query (THREAD_ENTRY *thread_p, QUERY_ID query_id)
 
int xqmgr_drop_all_query_plans (THREAD_ENTRY *thread_p)
 
void xqmgr_dump_query_plans (THREAD_ENTRY *thread_p, FILE *out_fp)
 
void xqmgr_dump_query_cache (THREAD_ENTRY *thread_p, FILE *out_fp)
 
void qmgr_clear_trans_wakeup (THREAD_ENTRY *thread_p, int tran_index, bool is_tran_died, bool is_abort)
 
void qmgr_add_modified_class (THREAD_ENTRY *thread_p, const OID *class_oid_p)
 
PAGE_PTR qmgr_get_old_page (THREAD_ENTRY *thread_p, VPID *vpid_p, QMGR_TEMP_FILE *tfile_vfid_p)
 
void qmgr_free_old_page (THREAD_ENTRY *thread_p, PAGE_PTR page_p, QMGR_TEMP_FILE *tfile_vfid_p)
 
void qmgr_set_dirty_page (THREAD_ENTRY *thread_p, PAGE_PTR page_p, int free_page, LOG_DATA_ADDR *addr_p, QMGR_TEMP_FILE *tfile_vfid_p)
 
PAGE_PTR qmgr_get_new_page (THREAD_ENTRY *thread_p, VPID *vpid_p, QMGR_TEMP_FILE *tfile_vfid_p)
 
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_temp_file_list (THREAD_ENTRY *thread_p, QMGR_TEMP_FILE *tfile_vfid_p, QUERY_ID query_id, bool is_error)
 
int qmgr_free_list_temp_file (THREAD_ENTRY *thread_p, QUERY_ID query_id, QMGR_TEMP_FILE *tfile_vfid_p)
 
void qmgr_set_query_error (THREAD_ENTRY *thread_p, QUERY_ID query_id)
 
void qmgr_setup_empty_list_file (char *page_p)
 
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)
 

Variables

int method_Num_method_jsp_calls
 
QMGR_QUERY_TABLE qmgr_Query_table
 
static struct drand48_data qmgr_rand_buf
 

Macro Definition Documentation

#define IS_IN_METHOD_OR_JSP_CALL ( )    (method_Num_method_jsp_calls > 0)

Definition at line 58 of file query_manager.c.

Referenced by xqmgr_execute_query().

#define OID_BLOCK_ARRAY_SIZE   10

Definition at line 88 of file query_manager.c.

Referenced by qmgr_add_modified_class().

#define pthread_mutex_destroy (   a)

Definition at line 54 of file query_manager.c.

Referenced by qmgr_finalize_temp_file_list().

#define pthread_mutex_init (   a,
 
)

Definition at line 53 of file query_manager.c.

Referenced by qmgr_initialize_temp_file_list().

#define pthread_mutex_lock (   a)    0
#define pthread_mutex_unlock (   a)
#define QMGR_IS_VALID_MEMBUF_TYPE (   m)    ((m) == TEMP_FILE_MEMBUF_NORMAL || (m) == TEMP_FILE_MEMBUF_KEY_BUFFER)
#define QMGR_MAX_QUERY_ENTRY_PER_TRAN   100
#define QMGR_NUM_TEMP_FILE_LISTS   (TEMP_FILE_MEMBUF_NUM_TYPES)

Definition at line 66 of file query_manager.c.

Referenced by qmgr_finalize().

#define QMGR_SQL_ID_LENGTH   13

Definition at line 68 of file query_manager.c.

Referenced by qmgr_get_sql_id().

#define QMGR_TEMP_FILE_FREE_LIST_SIZE   100

Definition at line 64 of file query_manager.c.

Referenced by qmgr_initialize_temp_file_list(), and qmgr_put_temp_file_into_list().

Typedef Documentation

Definition at line 79 of file query_manager.c.

Definition at line 122 of file query_manager.c.

Definition at line 110 of file query_manager.c.

Definition at line 96 of file query_manager.c.

Enumeration Type Documentation

Enumerator
QMGR_UNKNOWN_PAGE 
QMGR_MEMBUF_PAGE 
QMGR_TEMP_FILE_PAGE 

Definition at line 73 of file query_manager.c.

Function Documentation

static int copy_bind_value_to_tdes ( THREAD_ENTRY thread_p,
int  num_bind_vals,
DB_VALUE bind_vals 
)
static
static void qmgr_add_query_entry ( THREAD_ENTRY thread_p,
QMGR_QUERY_ENTRY q_ptr,
int  trans_ind 
)
static
static OID_BLOCK_LIST* qmgr_allocate_oid_block ( THREAD_ENTRY thread_p)
static
static QMGR_TEMP_FILE * qmgr_allocate_tempfile_with_buffer ( int  num_buffer_pages)
static

Definition at line 2597 of file query_manager.c.

References ARG_FILE_LINE, DB_ALIGN, DB_PAGESIZE, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), MAX_ALIGNMENT, and NULL.

Referenced by qmgr_create_new_temp_file(), and qmgr_initialize_temp_file_list().

Here is the caller graph for this function:

int qmgr_allocate_tran_entries ( THREAD_ENTRY thread_p,
int  num_new_entries 
)
static bool qmgr_can_get_from_cache ( QUERY_FLAG  flag)
static
static bool qmgr_can_get_result_from_cache ( QUERY_FLAG  flag)
static
static void qmgr_clear_relative_cache_entries ( THREAD_ENTRY thread_p,
QMGR_TRAN_ENTRY tran_entry_p 
)
static
static void qmgr_deallocate_oid_blocks ( OID_BLOCK_LIST oid_block)
static

Definition at line 396 of file query_manager.c.

References oid_block_list::next.

Referenced by qmgr_free_tran_entries().

Here is the caller graph for this function:

static void qmgr_deallocate_query_entries ( QMGR_QUERY_ENTRY q_ptr)
static

Definition at line 417 of file query_manager.c.

References qmgr_query_entry::er_msg, free_and_init, qmgr_query_entry::list_id, qmgr_query_entry::next, p, and QFILE_FREE_AND_INIT_LIST_ID.

Referenced by qmgr_free_tran_entries().

Here is the caller graph for this function:

static void qmgr_delete_query_entry ( THREAD_ENTRY thread_p,
QUERY_ID  query_id,
int  trans_ind 
)
static
void qmgr_finalize_temp_file_list ( QMGR_TEMP_FILE_LIST temp_file_list_p)
static

Definition at line 3248 of file query_manager.c.

References assert, qmgr_temp_file_list::count, free_and_init, qmgr_temp_file_list::list, qmgr_temp_file_list::mutex, qmgr_temp_file::next, NULL, and pthread_mutex_destroy.

Referenced by qmgr_finalize(), and qmgr_initialize().

Here is the caller graph for this function:

static QMGR_QUERY_ENTRY * qmgr_find_query_entry ( QMGR_QUERY_ENTRY query_list_p,
QUERY_ID  query_id 
)
static

Definition at line 475 of file query_manager.c.

References qmgr_query_entry::next, and qmgr_query_entry::query_id.

Referenced by qmgr_create_new_temp_file(), qmgr_create_result_file(), qmgr_free_list_temp_file(), qmgr_get_query_entry(), and xqmgr_end_query().

Here is the caller graph for this function:

static void qmgr_free_oid_block ( THREAD_ENTRY thread_p,
OID_BLOCK_LIST oid_block 
)
static

Definition at line 2264 of file query_manager.c.

References oid_block_list::last_oid_idx, oid_block_list::next, and p.

Referenced by qmgr_clear_trans_wakeup().

Here is the caller graph for this function:

void qmgr_free_old_page ( THREAD_ENTRY thread_p,
PAGE_PTR  page_p,
QMGR_TEMP_FILE tfile_vfid_p 
)
static void qmgr_free_query_entry ( THREAD_ENTRY thread_p,
QMGR_TRAN_ENTRY tran_entry_p,
QMGR_QUERY_ENTRY q_ptr 
)
static
static int qmgr_free_query_temp_file ( THREAD_ENTRY thread_p,
QMGR_QUERY_ENTRY qptr,
int  tran_idx 
)
static
static int qmgr_free_query_temp_file_helper ( THREAD_ENTRY thread_p,
QMGR_QUERY_ENTRY query_p 
)
static
QUERY_ID qmgr_get_current_query_id ( THREAD_ENTRY thread_p)
static PAGE_PTR qmgr_get_external_file_page ( THREAD_ENTRY thread_p,
VPID vpid,
QMGR_TEMP_FILE vfid 
)
static

Definition at line 2581 of file query_manager.c.

References assert, ASSERT_ERROR, file_alloc(), NO_ERROR, NULL, PAGE_QRESULT, pgbuf_get_page_ptype(), qmgr_init_external_file_page(), qmgr_temp_file::temp_vfid, and VPID_SET_NULL.

Referenced by qmgr_get_new_page().

Here is the caller graph for this function:

static QMGR_PAGE_TYPE qmgr_get_page_type ( PAGE_PTR  page_p,
QMGR_TEMP_FILE temp_file_p 
)
static
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 
)
QMGR_TEMP_FILE * qmgr_get_temp_file_from_list ( QMGR_TEMP_FILE_LIST temp_file_list_p)
static
int qmgr_get_temp_file_membuf_pages ( QMGR_TEMP_FILE temp_file_p)
static int qmgr_init_external_file_page ( THREAD_ENTRY thread_p,
PAGE_PTR  page,
void *  args 
)
static

Definition at line 2559 of file query_manager.c.

References DONT_FREE, NO_ERROR, PAGE_QRESULT, pgbuf_set_dirty(), pgbuf_set_page_ptype(), QFILE_PAGE_HEADER_INITIALIZER, and qmgr_put_page_header().

Referenced by qmgr_get_external_file_page().

Here is the caller graph for this function:

static bool qmgr_is_related_class_modified ( THREAD_ENTRY thread_p,
XASL_CACHE_ENTRY xasl_cache,
int  tran_index 
)
static
static void qmgr_mark_query_as_completed ( QMGR_QUERY_ENTRY query_p)
static

Definition at line 255 of file query_manager.c.

References QUERY_COMPLETED, and qmgr_query_entry::query_status.

Referenced by xqmgr_execute_query(), and xqmgr_prepare_and_execute_query().

Here is the caller graph for this function:

void qmgr_set_dirty_page ( THREAD_ENTRY thread_p,
PAGE_PTR  page_p,
int  free_page,
LOG_DATA_ADDR addr_p,
QMGR_TEMP_FILE tfile_vfid_p 
)

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:

int xqmgr_drop_all_query_plans ( THREAD_ENTRY thread_p)

Definition at line 2015 of file query_manager.c.

References fpcache_drop_all(), NO_ERROR, and xcache_drop_all().

Referenced by qmgr_drop_all_query_plans(), and sqmgr_drop_all_query_plans().

Here is the caller graph for this function:

void xqmgr_dump_query_cache ( THREAD_ENTRY thread_p,
FILE *  out_fp 
)

Definition at line 2040 of file query_manager.c.

References qfile_dump_list_cache_internal().

Referenced by qmgr_dump_query_cache(), and sqmgr_dump_query_cache().

Here is the caller graph for this function:

void xqmgr_dump_query_plans ( THREAD_ENTRY thread_p,
FILE *  out_fp 
)

Definition at line 2028 of file query_manager.c.

References fpcache_dump(), and xcache_dump().

Referenced by qmgr_dump_query_plans(), and sqmgr_dump_query_plans().

Here is the caller graph for this function:

QFILE_LIST_ID* xqmgr_execute_query ( THREAD_ENTRY thread_p,
const XASL_ID xasl_id_p,
QUERY_ID *  query_id_p,
int  dbval_count,
void *  dbval_p,
QUERY_FLAG flag_p,
CACHE_TIME client_cache_time_p,
CACHE_TIME server_cache_time_p,
int  query_timeout,
xasl_cache_ent **  ret_cache_entry_p 
)

Definition at line 1243 of file query_manager.c.

References ARG_FILE_LINE, assert, ASSERT_ERROR, CACHE_TIME_AS_ARGS, CACHE_TIME_MAKE, CACHE_TIME_RESET, copy_bind_value_to_tdes(), db_private_alloc, db_private_free, db_private_free_and_init, DO_NOT_COLLECT_EXEC_STATS, ER_ERROR_SEVERITY, er_log_debug, ER_QM_QENTRY_RUNOUT, ER_QPROC_INVALID_XASLNODE, er_set(), FILE_QUERY_AREA, i, qmgr_query_entry::is_holdable, IS_IN_METHOD_OR_JSP_CALL, IS_TRIGGER_INVOLVED, IS_XASL_CACHE_PINNED_REFERENCE, IS_XASL_TRACE_JSON, IS_XASL_TRACE_TEXT, qfile_list_id::last_pgptr, qmgr_query_entry::list_ent, xasl_cache_ent::list_ht_no, qfile_list_cache_entry::list_id, qmgr_query_entry::list_id, LOG_FIND_THREAD_TRAN_INDEX, NO_ERROR, NULL, or_unpack_db_value(), perfmon_inc_stat(), pr_clear_value(), pr_valstring(), PSTAT_PC_NUM_INVALID_XASL_ID, qfile_clone_list_id(), qfile_destroy_list(), qfile_duplicate_list(), qfile_end_use_of_list_cache_entry(), QFILE_FLAG_RESULT_FILE, QFILE_FREE_AND_INIT_LIST_ID, qfile_lookup_list_cache_entry(), qfile_update_list_cache_entry(), qmgr_add_query_entry(), qmgr_allocate_query_entry(), qmgr_delete_query_entry(), qmgr_free_query_temp_file(), qmgr_is_allowed_result_cache(), qmgr_is_related_class_modified(), qmgr_mark_query_as_completed(), QMGR_MAX_QUERY_ENTRY_PER_TRAN, qmgr_process_query(), QMGR_TRAN_NULL, QMGR_TRAN_RUNNING, QMGR_TRAN_TERMINATED, qmgr_query_entry::query_flag, qmgr_query_entry::query_id, qfile_list_id::query_id, QUERY_IN_PROGRESS, qmgr_query_entry::query_status, QUERY_TRACE_JSON, QUERY_TRACE_TEXT, RESULT_HOLDABLE, session_set_trigger_state(), xasl_id::sha1, SHA1_AS_ARGS, db_value_array::size, qmgr_temp_file::temp_file_type, qfile_list_id::tfile_vfid, thread_get_recursion_depth(), thread_set_trace_format(), thread_trace_on(), qfile_list_cache_entry::time_created, xasl_id::time_stored, qmgr_query_table::tran_entries_p, qmgr_tran_entry::trans_stat, db_value_array::vals, xasl_clone::xasl, xasl_clone::xasl_buf, XASL_CLONE_INITIALIZER, qmgr_query_entry::xasl_ent, qmgr_query_entry::xasl_id, XASL_ID_COPY, xcache_can_entry_cache_list(), xcache_find_xasl_id_for_execute(), xcache_retire_clone(), and xcache_unfix().

Referenced by qmgr_execute_query(), and sqmgr_execute_query().

Here is the caller graph for this function:

Variable Documentation

int method_Num_method_jsp_calls

Definition at line 54 of file method_scan.c.

Referenced by method_receive_results_for_stand_alone().

QMGR_QUERY_TABLE qmgr_Query_table
Initial value:
= { NULL, 0, NULL,
{{PTHREAD_MUTEX_INITIALIZER, NULL, 0}, {PTHREAD_MUTEX_INITIALIZER, NULL, 0}}
}
#define NULL
Definition: freelistheap.h:34

Definition at line 135 of file query_manager.c.

struct drand48_data qmgr_rand_buf
static

Definition at line 140 of file query_manager.c.

Referenced by qmgr_get_rand_buf(), and qmgr_initialize().