CUBRID Engine  latest
system_parameter.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 /*
21  * system_parameter.h - system parameters
22  */
23 
24 #ifndef _SYSTEM_PARAMETER_H_
25 #define _SYSTEM_PARAMETER_H_
26 
27 #ident "$Id$"
28 
29 #include "config.h"
30 
31 #include <stdio.h>
32 
33 #include "error_manager.h"
34 #include "error_code.h"
35 #include "porting.h"
36 
37 typedef enum
38 {
69 } SYSPRM_ERR;
70 
72 {
76  /*
77  * COMPAT_ANSI, COMPAT_DB2, COMPAT_MAXDB, COMPAT_MSSQL, COMPAT_POSTGRESQL */
78 };
79 typedef enum compat_mode COMPAT_MODE;
80 
82 {
85 };
87 
88 /* NOTE:
89  * System parameter ids must respect the order in prm_Def array
90  * When adding a new system paramter, insert it before PRM_LAST_ID and change PRM_LAST_ID to it
91  */
93 {
257 #if defined (ENABLE_UNUSED_FUNCTION)
258  PRM_ID_SINGLE_BYTE_COMPARE,
259 #endif
293  /* All the compound parameters *must* be at the end of the array so that the changes they cause are not overridden by
294  * other parameters (for example in sysprm_load_and_init the parameters are set to their default in the order they
295  * are found in this array). */
343 
349 
350  /* Debugging system parameter */
352 
354 
358 
360 
364 
370 
373 
376 
378 
380 
382 
384 
386 
388 
390 
392 
394 
397 
400 
402 
405 
407 
410 
415 
421 
436 
438 
440 
443 
455  /* change PRM_LAST_ID when adding new system parameters */
457 };
458 typedef enum param_id PARAM_ID;
459 
460 /*
461  * System parameter data types
462  */
463 typedef enum
464 {
472 
475 
478 {
479  int i;
480  bool b;
481  float f;
482  char *str;
484  UINT64 bi;
485 };
486 
489 {
491  unsigned int flag;
492  int datatype;
494 };
495 
498 {
502 };
503 
505 {
509 };
511 
512 #define SYSPRM_LOAD_IS_IGNORE_HA(flags) ((flags) & SYSPRM_IGNORE_HA)
513 #define SYSPRM_LOAD_IS_IGNORE_INTL(flags) ((flags) & SYSPRM_IGNORE_INTL_PARAMS)
514 
515 #ifdef __cplusplus
516 extern "C"
517 {
518 #endif
519 
520 #if defined (CS_MODE)
521 /* when system parameters are loaded, session parameters need to be cached for
522  * future clients that connect to broker
523  */
524  extern SESSION_PARAM *cached_session_parameters;
525 #endif /* CS_MODE */
526 
527  extern const char *prm_get_name (PARAM_ID prm_id);
528 
529  extern void *prm_get_value (PARAM_ID prm_id);
530 
531  extern int prm_get_integer_value (PARAM_ID prm_id);
532  extern float prm_get_float_value (PARAM_ID prm_id);
533  extern bool prm_get_bool_value (PARAM_ID prm_id);
534  extern char *prm_get_string_value (PARAM_ID prm_id);
535  extern int *prm_get_integer_list_value (PARAM_ID prm_id);
536  extern UINT64 prm_get_bigint_value (PARAM_ID prm_id);
537 
538  extern void prm_set_integer_value (PARAM_ID prm_id, int value);
539  extern void prm_set_float_value (PARAM_ID prm_id, float value);
540  extern void prm_set_bool_value (PARAM_ID prm_id, bool value);
541  extern void prm_set_string_value (PARAM_ID prm_id, char *value);
542  extern void prm_set_integer_list_value (PARAM_ID prm_id, int *value);
543  extern void prm_set_bigint_value (PARAM_ID prm_id, UINT64 value);
544 
545  extern bool sysprm_find_err_in_integer_list (PARAM_ID prm_id, int error_code);
546  extern bool sysprm_find_fi_code_in_integer_list (PARAM_ID prm_id, int fi_code);
547 
548  extern int sysprm_load_and_init (const char *db_name, const char *conf_file, const int load_flags);
549  extern int sysprm_load_and_init_client (const char *db_name, const char *conf_file);
550  extern int sysprm_reload_and_init (const char *db_name, const char *conf_file);
551  extern void sysprm_final (void);
552  extern void sysprm_dump_parameters (FILE * fp);
553  extern void sysprm_set_er_log_file (const char *base_db_name);
554  extern void sysprm_dump_server_parameters (FILE * fp);
555  extern SYSPRM_ERR sysprm_obtain_parameters (char *data, SYSPRM_ASSIGN_VALUE ** prm_values);
558  extern int sysprm_get_force_server_parameters (SYSPRM_ASSIGN_VALUE ** change_values);
559  extern void sysprm_tune_client_parameters (void);
560  extern void sysprm_free_session_parameters (SESSION_PARAM ** session_parameters);
561 
562 #if !defined (CS_MODE)
563  extern void xsysprm_change_server_parameters (const SYSPRM_ASSIGN_VALUE * assignments);
564  extern void xsysprm_obtain_server_parameters (SYSPRM_ASSIGN_VALUE * prm_values);
566  extern void xsysprm_dump_server_parameters (FILE * fp);
567 #endif /* !CS_MODE */
568 
569  extern int sysprm_set_force (const char *pname, const char *pvalue);
570  extern int sysprm_set_to_default (const char *pname, bool set_to_force);
571  extern int sysprm_check_range (const char *pname, void *value);
572  extern int sysprm_get_range (const char *pname, void *min, void *max);
573  extern int prm_get_master_port_id (void);
574  extern bool prm_get_commit_on_shutdown (void);
575 
576  extern char *sysprm_pack_session_parameters (char *ptr, SESSION_PARAM * session_parameters);
577  extern int sysprm_packed_session_parameters_length (SESSION_PARAM * session_parameters, int offset);
578  extern char *sysprm_unpack_session_parameters (char *ptr, SESSION_PARAM ** session_parameters_ptr);
579  extern char *sysprm_pack_assign_values (char *ptr, const SYSPRM_ASSIGN_VALUE * assign_values);
580  extern int sysprm_packed_assign_values_length (const SYSPRM_ASSIGN_VALUE * assign_values, int offset);
581  extern char *sysprm_unpack_assign_values (char *ptr, SYSPRM_ASSIGN_VALUE ** assign_values_ptr);
582  extern void sysprm_free_assign_values (SYSPRM_ASSIGN_VALUE ** assign_values_ptr);
583  extern void sysprm_change_parameter_values (const SYSPRM_ASSIGN_VALUE * assignments, bool check, bool set_flag);
584 
585 #if defined (SERVER_MODE)
586  extern int sysprm_session_init_session_parameters (SESSION_PARAM ** session_params, int *found_session_parameters);
587 #endif /* SERVER_MODE */
588 
589 #if defined (CS_MODE)
590  extern void sysprm_update_client_session_parameters (SESSION_PARAM * session_parameters);
591 #endif /* CS_MODE */
592 
593 #if !defined (SERVER_MODE)
594  extern char *sysprm_print_parameters_for_qry_string (void);
595  extern char *sysprm_print_parameters_for_ha_repl (void);
596  extern SYSPRM_ERR sysprm_validate_change_parameters (const char *data, bool check,
597  SYSPRM_ASSIGN_VALUE ** assignments_ptr);
598  extern SYSPRM_ERR sysprm_make_default_values (const char *data, char *default_val_buf, const int buf_size);
599  extern int sysprm_init_intl_param (void);
600 #endif /* !SERVER_MODE */
601 
602  extern int sysprm_print_assign_values (SYSPRM_ASSIGN_VALUE * prm_values, char *buffer, int length);
603  extern int sysprm_set_error (SYSPRM_ERR rc, const char *data);
604  extern int sysprm_get_session_parameters_count (void);
605 
606 #ifdef __cplusplus
607 }
608 #endif
609 
610 #endif /* _SYSTEM_PARAMETER_H_ */
void xsysprm_change_server_parameters(const SYSPRM_ASSIGN_VALUE *assignments)
#define NO_ERROR
Definition: error_code.h:46
int * prm_get_integer_list_value(PARAM_ID prm_id)
int sysprm_get_force_server_parameters(SYSPRM_ASSIGN_VALUE **change_values)
void prm_set_float_value(PARAM_ID prm_id, float value)
SYSPRM_ERR sysprm_validate_change_parameters(const char *data, bool check, SYSPRM_ASSIGN_VALUE **assignments_ptr)
int sysprm_set_to_default(const char *pname, bool set_to_force)
enum compat_mode COMPAT_MODE
sysprm_load_flag
void prm_set_string_value(PARAM_ID prm_id, char *value)
int sysprm_print_assign_values(SYSPRM_ASSIGN_VALUE *prm_values, char *buffer, int length)
enum param_id PARAM_ID
void prm_set_bool_value(PARAM_ID prm_id, bool value)
int sysprm_reload_and_init(const char *db_name, const char *conf_file)
float prm_get_float_value(PARAM_ID prm_id)
void sysprm_free_assign_values(SYSPRM_ASSIGN_VALUE **assign_values_ptr)
char * sysprm_pack_session_parameters(char *ptr, SESSION_PARAM *session_parameters)
bool sysprm_find_fi_code_in_integer_list(PARAM_ID prm_id, int fi_code)
const char * prm_get_name(PARAM_ID prm_id)
int sysprm_init_intl_param(void)
int sysprm_load_and_init(const char *db_name, const char *conf_file, const int load_flags)
void sysprm_tune_client_parameters(void)
enum query_trace_format QUERY_TRACE_FORMAT
int sysprm_packed_assign_values_length(const SYSPRM_ASSIGN_VALUE *assign_values, int offset)
void xsysprm_obtain_server_parameters(SYSPRM_ASSIGN_VALUE *prm_values)
void sysprm_change_parameter_values(const SYSPRM_ASSIGN_VALUE *assignments, bool check, bool set_flag)
bool prm_get_commit_on_shutdown(void)
void prm_set_bigint_value(PARAM_ID prm_id, UINT64 value)
void * prm_get_value(PARAM_ID prm_id)
compat_mode
SYSPRM_DATATYPE
#define min(a, b)
int prm_get_master_port_id(void)
unsigned int flag
char * sysprm_unpack_session_parameters(char *ptr, SESSION_PARAM **session_parameters_ptr)
char * sysprm_pack_assign_values(char *ptr, const SYSPRM_ASSIGN_VALUE *assign_values)
query_trace_format
SYSPRM_ERR sysprm_change_server_parameters(const SYSPRM_ASSIGN_VALUE *assignments)
param_id
SYSPRM_ERR sysprm_make_default_values(const char *data, char *default_val_buf, const int buf_size)
int sysprm_packed_session_parameters_length(SESSION_PARAM *session_parameters, int offset)
void prm_set_integer_value(PARAM_ID prm_id, int value)
bool sysprm_find_err_in_integer_list(PARAM_ID prm_id, int error_code)
char * db_name
void prm_set_integer_list_value(PARAM_ID prm_id, int *value)
#define max(a, b)
bool prm_get_bool_value(PARAM_ID prm_id)
void sysprm_dump_parameters(FILE *fp)
void sysprm_set_er_log_file(const char *base_db_name)
void xsysprm_dump_server_parameters(FILE *fp)
int sysprm_set_error(SYSPRM_ERR rc, const char *data)
static int rc
Definition: serial.c:50
char * prm_get_string_value(PARAM_ID prm_id)
void sysprm_free_session_parameters(SESSION_PARAM **session_parameters)
SYSPRM_ERR sysprm_obtain_parameters(char *data, SYSPRM_ASSIGN_VALUE **prm_values)
char * sysprm_print_parameters_for_qry_string(void)
enum sysprm_load_flag SYSPRM_LOAD_FLAG
int sysprm_load_and_init_client(const char *db_name, const char *conf_file)
void sysprm_final(void)
SYSPRM_ERR
int sysprm_get_session_parameters_count(void)
void sysprm_dump_server_parameters(FILE *fp)
UINT64 prm_get_bigint_value(PARAM_ID prm_id)
int sysprm_get_range(const char *pname, void *min, void *max)
char * sysprm_print_parameters_for_ha_repl(void)
SYSPRM_ASSIGN_VALUE * next
SYSPRM_VALUE value
int prm_get_integer_value(PARAM_ID prm_id)
SYSPRM_ERR sysprm_obtain_server_parameters(SYSPRM_ASSIGN_VALUE **prm_values_ptr)
int sysprm_set_force(const char *pname, const char *pvalue)
char * sysprm_unpack_assign_values(char *ptr, SYSPRM_ASSIGN_VALUE **assign_values_ptr)
SYSPRM_ASSIGN_VALUE * xsysprm_get_force_server_parameters(void)
int sysprm_check_range(const char *pname, void *value)