File sp_constants.hpp¶
File List > cubrid > src > sp > sp_constants.hpp
Go to the documentation of this file
/*
*
* Copyright 2016 CUBRID Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
#ifndef _SP_CONSTASNTS_HPP_
#define _SP_CONSTASNTS_HPP_
#define SP_CLASS_NAME "_db_stored_procedure"
#define SP_ARG_CLASS_NAME "_db_stored_procedure_args"
#define SP_CODE_CLASS_NAME "_db_stored_procedure_code"
#define SP_ATTR_LIST \
MAP_LIST_ITEM(UNIQUE_NAME) \
MAP_LIST_ITEM(SP_NAME) \
MAP_LIST_ITEM(SP_TYPE) \
MAP_LIST_ITEM(RETURN_TYPE) \
MAP_LIST_ITEM(ARG_COUNT) \
MAP_LIST_ITEM(ARGS) \
MAP_LIST_ITEM(LANG) \
MAP_LIST_ITEM(PKG_NAME) \
MAP_LIST_ITEM(IS_SYSTEM_GENERATED) \
MAP_LIST_ITEM(DIRECTIVE) \
MAP_LIST_ITEM(TARGET_CLASS) \
MAP_LIST_ITEM(TARGET_METHOD) \
MAP_LIST_ITEM(OWNER) \
MAP_LIST_ITEM(SQL_DATA_ACCESS) \
MAP_LIST_ITEM(COMMENT) \
MAP_LIST_ITEM(CREATED_TIME) \
MAP_LIST_ITEM(UPDATED_TIME)
#define SP_ATTR_UNIQUE_NAME "unique_name"
#define SP_ATTR_SP_NAME "sp_name"
#define SP_ATTR_SP_TYPE "sp_type"
#define SP_ATTR_RETURN_TYPE "return_type"
#define SP_ATTR_ARG_COUNT "arg_count"
#define SP_ATTR_ARGS "args"
#define SP_ATTR_LANG "lang"
#define SP_ATTR_PKG_NAME "pkg_name"
#define SP_ATTR_IS_SYSTEM_GENERATED "is_system_generated"
#define SP_ATTR_DIRECTIVE "directive"
#define SP_ATTR_TARGET_CLASS "target_class"
#define SP_ATTR_TARGET_METHOD "target_method"
#define SP_ATTR_OWNER "owner"
#define SP_ATTR_SQL_DATA_ACCESS "sql_data_access"
#define SP_ATTR_COMMENT "comment"
#define SP_ATTR_CREATED_TIME "created_time"
#define SP_ATTR_UPDATED_TIME "updated_time"
enum index_sp_attr
{
#define MAP_LIST_ITEM(item) INDEX_SP_ATTR_##item,
SP_ATTR_LIST
#undef MAP_LIST_ITEM
NUM_SP_ATTR
};
#define SP_ARG_ATTR_LIST \
MAP_LIST_ITEM(SP_OF) \
MAP_LIST_ITEM(INDEX_OF) \
MAP_LIST_ITEM(IS_SYSTEM_GENERATED) \
MAP_LIST_ITEM(ARG_NAME) \
MAP_LIST_ITEM(DATA_TYPE) \
MAP_LIST_ITEM(MODE) \
MAP_LIST_ITEM(DEFAULT_VALUE) \
MAP_LIST_ITEM(IS_OPTIONAL) \
MAP_LIST_ITEM(COMMENT)
#define SP_ARG_ATTR_SP_OF "sp_of"
#define SP_ARG_ATTR_INDEX_OF "index_of"
#define SP_ARG_ATTR_IS_SYSTEM_GENERATED "is_system_generated"
#define SP_ARG_ATTR_ARG_NAME "arg_name"
#define SP_ARG_ATTR_DATA_TYPE "data_type"
#define SP_ARG_ATTR_MODE "mode"
#define SP_ARG_ATTR_DEFAULT_VALUE "default_value"
#define SP_ARG_ATTR_IS_OPTIONAL "is_optional"
#define SP_ARG_ATTR_COMMENT "comment"
enum index_sp_arg_attr
{
#define MAP_LIST_ITEM(item) INDEX_SP_ARG_ATTR_##item,
SP_ARG_ATTR_LIST
#undef MAP_LIST_ITEM
NUM_SP_ARG_ATTR
};
#define SP_CODE_ATTR_LIST \
MAP_LIST_ITEM(NAME) \
MAP_LIST_ITEM(CREATED_TIME) \
MAP_LIST_ITEM(OWNER) \
MAP_LIST_ITEM(IS_STATIC) \
MAP_LIST_ITEM(IS_SYSTEM_GENERATED) \
MAP_LIST_ITEM(STYPE) \
MAP_LIST_ITEM(SCODE) \
MAP_LIST_ITEM(OTYPE) \
MAP_LIST_ITEM(OCODE)
#define SP_CODE_ATTR_NAME "name"
#define SP_CODE_ATTR_CREATED_TIME "created_time"
#define SP_CODE_ATTR_OWNER "owner"
#define SP_CODE_ATTR_IS_STATIC "is_static"
#define SP_CODE_ATTR_IS_SYSTEM_GENERATED "is_system_generated"
#define SP_CODE_ATTR_STYPE "stype"
#define SP_CODE_ATTR_SCODE "scode"
#define SP_CODE_ATTR_OTYPE "otype"
#define SP_CODE_ATTR_OCODE "ocode"
enum index_sp_code_attr
{
#define MAP_LIST_ITEM(item) INDEX_SP_CODE_ATTR_##item,
SP_CODE_ATTR_LIST
#undef MAP_LIST_ITEM
NUM_SP_CODE_ATTR
};
typedef enum
{
SP_TYPE_PROCEDURE = 1,
SP_TYPE_FUNCTION
} SP_TYPE_ENUM;
typedef enum
{
SP_MODE_IN = 1,
SP_MODE_OUT,
SP_MODE_INOUT
} SP_MODE_ENUM;
typedef enum
{
SP_LANG_PLCSQL = 0,
SP_LANG_JAVA = 1
} SP_LANG_ENUM;
typedef enum
{
SP_SQL_TYPE_UNKNOWN = -1,
SP_SQL_TYPE_NO_SQL,
SP_SQL_TYPE_CONTAINS_SQL,
SP_SQL_TYPE_READS_SQL_DATA,
SP_SQL_TYPE_MODIFIES_SQL_DATA
} SP_SQL_DATA_ACCESS_TYPE;
// refactor following
#define METHOD_MAX_RECURSION_DEPTH 15
typedef enum
{
METHOD_SUCCESS = 1,
METHOD_EOF,
METHOD_ERROR
} METHOD_CALL_STATUS;
enum METHOD_TYPE
{
METHOD_TYPE_NONE = 0,
METHOD_TYPE_INSTANCE_METHOD,
METHOD_TYPE_CLASS_METHOD,
METHOD_TYPE_JAVA_SP,
METHOD_TYPE_PLCSQL
};
enum METHOD_AUTH
{
METHOD_AUTH_OWNER = 0,
METHOD_AUTH_INVOKER = 1
};
enum METHOD_REQUEST
{
METHOD_REQUEST_ARG_PREPARE = 0x40,
METHOD_REQUEST_INVOKE = 0x01,
METHOD_REQUEST_ERROR = 0x04,
METHOD_REQUEST_CALLBACK = 0x08,
METHOD_REQUEST_END = 0x20,
METHOD_REQUEST_COMPILE = 0x80,
METHOD_REQUEST_SQL_SEMANTICS = 0xA0,
METHOD_REQUEST_GLOBAL_SEMANTICS = 0xA1
};
enum METHOD_RESPONSE
{
METHOD_RESPONSE_SUCCESS,
METHOD_RESPONSE_ERROR
};
enum METHOD_CALLBACK_RESPONSE
{
METHOD_CALLBACK_END_TRANSACTION = 1,
METHOD_CALLBACK_QUERY_PREPARE = 2,
METHOD_CALLBACK_QUERY_EXECUTE = 3,
METHOD_CALLBACK_GET_DB_PARAMETER = 4,
METHOD_CALLBACK_CURSOR = 7,
METHOD_CALLBACK_FETCH = 8,
METHOD_CALLBACK_GET_SCHEMA_INFO = 9,
METHOD_CALLBACK_OID_GET = 10,
METHOD_CALLBACK_OID_PUT = 11,
METHOD_CALLBACK_OID_CMD = 17,
METHOD_CALLBACK_COLLECTION = 18,
// METHOD_CALLBACK_GET_DB_VERSION = 15,
METHOD_CALLBACK_NEXT_RESULT = 19,
METHOD_CALLBACK_EXECUTE_BATCH = 20,
METHOD_CALLBACK_EXECUTE_ARRAY = 21,
METHOD_CALLBACK_CURSOR_UPDATE = 22,
METHOD_CALLBACK_MAKE_OUT_RS = 33,
METHOD_CALLBACK_GET_GENERATED_KEYS = 34,
METHOD_CALLBACK_LOB_NEW = 35,
METHOD_CALLBACK_LOB_WRITE = 36,
METHOD_CALLBACK_LOB_READ = 37,
METHOD_CALLBACK_CURSOR_CLOSE = 42,
METHOD_CALLBACK_SET_PL_SESSION_PARAM = 50,
// COMPILE
METHOD_CALLBACK_GET_SQL_SEMANTICS = 100,
METHOD_CALLBACK_GET_GLOBAL_SEMANTICS = 101,
// AUTH
METHOD_CALLBACK_CHANGE_RIGHTS = 200,
// CLASS ACCESS
METHOD_CALLBACK_GET_CODE_ATTR = 201
};
enum METHOD_ARG_MODE
{
METHOD_ARG_MODE_IN = 1,
METHOD_ARG_MODE_OUT,
METHOD_ARG_MODE_INOUT
};
#define METHOD_GROUP_ID uint64_t
#define METHOD_REQ_ID int
#endif // _SP_CONSTASNTS_HPP_