blob: db99f2824aa5811be4e2b94f0e44156c3f755678 [file] [log] [blame]
/* -*-C++-*- */
/**********************************************************************
// @@@ START COPYRIGHT @@@
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you 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.
//
// @@@ END COPYRIGHT @@@
**********************************************************************/
#ifndef COMSMALLDEFS_H
#define COMSMALLDEFS_H
/* -*-C++-*-
*****************************************************************************
*
* File: ComSmallDefs.h
* Description: Small definitions are declared here that are used throughout
* the SQL/ARK product.
*
*
* Created: 10/27/95
* Language: C++
*
*
*
*****************************************************************************
*/
#include <iosfwd>
using namespace std;
#include <stdio.h>
#include "NAAssert.h" // required after including a RogueWave file!
#include "NABoolean.h"
#include "NAString.h"
#include "Int64.h"
#include "dfs2rec.h"
#ifndef NULL
#define NULL 0
#endif
// A better, fuller Int64 implementation has been developed in Int64
// replace the old ComSInt64 here. Both will be replaced by long long
// when we have a modern C compiler
#define ComSInt64 Int64
typedef unsigned short ComUInt16;
typedef short ComSInt16;
typedef UInt32 ComUInt32;
typedef Int32 ComSInt32;
// ++ MV
#define MAX_COMSINT32 2147483647
#define MAX_NEG_COMSINT32 -2147483648
#define UINT32_MAX_LENGTH 12
// -- MV
// max precision supported by system hardware. Signed NUMERICs upto this
// range are declared as INT64 (largeint).
#define MAX_HARDWARE_SUPPORTED_SIGNED_NUMERIC_PRECISION 18
//Unsigned NUMERICs upto this range are supported by hardware.
#define MAX_HARDWARE_SUPPORTED_UNSIGNED_NUMERIC_PRECISION 20
typedef NAString ComString;
typedef ComSInt64 ComTimestamp;
typedef Int32 ComUserID;
typedef NABoolean ComBoolean;
// user and role definitions have been moved to NAUserId.h
// Defaults for system attributes
#define SMD_LOCATION "$SYSTEM"
#define SMD_VERSION "1000"
#define COM_VOLATILE_SCHEMA_PREFIX "VOLATILE_SCHEMA_"
// prefix of temp tables for common subexpressions
#define COM_CSE_TABLE_PREFIX "CSE_TEMP_"
// 'reserved' tables in public_access_schema for sql internal use
#define COM_PUBLIC_ACCESS_SCHEMA "PUBLIC_ACCESS_SCHEMA"
#define HIVE_SYSTEM_CATALOG "HIVE"
#define HIVE_SYSTEM_CATALOG_LC "hive"
#define HIVE_SYSTEM_SCHEMA "HIVE"
#define HIVE_SYSTEM_SCHEMA_LC "hive"
// default schema name to be passed to hive methods at runtime
#define HIVE_DEFAULT_SCHEMA_EXE "default"
#define HIVE_STATS_CATALOG "TRAFODION"
#define HIVE_STATS_SCHEMA "\"_HIVESTATS_\""
#define HIVE_STATS_SCHEMA_NO_QUOTES "_HIVESTATS_"
#define HIVE_EXT_SCHEMA_PREFIX "_HV_"
#define HBASE_EXT_MAP_SCHEMA "_HB_MAP_"
#define HBASE_SYSTEM_CATALOG "HBASE"
#define HBASE_SYSTEM_SCHEMA "HBASE"
#define HBASE_CELL_SCHEMA "_CELL_"
#define HBASE_ROW_SCHEMA "_ROW_"
#define HBASE_MAP_SCHEMA "_MAP_"
#define HBASE_HIST_NAME "SB_HISTOGRAMS"
#define HBASE_HISTINT_NAME "SB_HISTOGRAM_INTERVALS"
#define HBASE_PERS_SAMP_NAME "SB_PERSISTENT_SAMPLES"
#define HBASE_HIST_PK "SB_HISTOGRAMS_PK"
#define HBASE_HISTINT_PK "SB_HISTOGRAM_INTERVALS_PK"
#define HBASE_PERS_SAMP_PK "SB_PERSISTENT_SAMPLES_PK"
#define HBASE_EXT_SCHEMA_PREFIX "_HB_"
#define HBASE_STATS_CATALOG "TRAFODION"
#define HBASE_STATS_SCHEMA "\"_HBASESTATS_\""
#define HBASE_STATS_SCHEMA_NO_QUOTES "_HBASESTATS_"
// default null format for data in hive files.
#define HIVE_DEFAULT_NULL_STRING "\\N"
#define TRAFODION_SYSCAT_LIT "TRAFODION"
#define SEABASE_SYSTEM_SCHEMA "SEABASE"
#define SEABASE_OLD_PRIVMGR_SCHEMA "PRIVMGR_MD"
#define SEABASE_PRIVMGR_SCHEMA "_PRIVMGR_MD_"
#define SEABASE_UDF_SCHEMA "_UDF_"
#define TRAF_SAMPLE_PREFIX "TRAF_SAMPLE_" // prefix for a sample table used by update stats
#define LOB_MD_PREFIX "LOBMD_"
#define LOB_DESC_CHUNK_PREFIX "LOBDescChunks_"
#define LOB_DESC_HANDLE_PREFIX "LOBDescHandle_"
#define SEABASE_DEFAULT_COL_FAMILY "#1"
// reserved names for seabase metadata where SQL table information is kept
// there are places in the code that assume metadata schema and table
// names are less than 100 characters. If you create a name that is
// bigger than this, be sure to changes places like GET cidd
#define SEABASE_MD_SCHEMA "_MD_"
#define SEABASE_COLUMNS "COLUMNS"
#define SEABASE_DEFAULTS "DEFAULTS"
#define SEABASE_INDEXES "INDEXES"
#define SEABASE_KEYS "KEYS"
#define SEABASE_LIBRARIES "LIBRARIES"
#define SEABASE_LIBRARIES_USAGE "LIBRARIES_USAGE"
#define SEABASE_OBJECTS "OBJECTS"
#define SEABASE_OBJECTS_UNIQ_IDX "OBJECTS_UNIQ_IDX"
#define SEABASE_OBJECTUID "OBJECTUID"
#define SEABASE_REF_CONSTRAINTS "REF_CONSTRAINTS"
#define SEABASE_ROUTINES "ROUTINES"
#define SEABASE_SEQ_GEN "SEQ_GEN"
#define SEABASE_TABLES "TABLES"
#define SEABASE_TABLE_CONSTRAINTS "TABLE_CONSTRAINTS"
#define SEABASE_TABLE_CONSTRAINTS_IDX "TABLE_CONSTRAINTS_IDX"
#define SEABASE_TEXT "TEXT"
#define SEABASE_UNIQUE_REF_CONSTR_USAGE "UNIQUE_REF_CONSTR_USAGE"
#define SEABASE_VIEWS "VIEWS"
#define SEABASE_VIEWS_USAGE "VIEWS_USAGE"
#define SEABASE_VERSIONS "VERSIONS"
#define SEABASE_AUTHS "AUTHS"
#define SEABASE_VALIDATE_SPJ "VALIDATEROUTINE"
#define SEABASE_VALIDATE_LIBRARY "UDR_LIBRARY"
#define SEABASE_SCHEMA_OBJECTNAME "__SCHEMA__"
#define SEABASE_SEQ_GEN "SEQ_GEN"
// DTM log files are created in this schema. It is a reserved schema.
#define SEABASE_DTM_SCHEMA "_DTM_"
// Trafodion statistics repository reserved schema
#define SEABASE_REPOS_SCHEMA "_REPOS_"
#define REPOS_METRIC_QUERY_AGGR_TABLE "METRIC_QUERY_AGGR_TABLE"
#define REPOS_METRIC_QUERY_TABLE "METRIC_QUERY_TABLE"
#define REPOS_METRIC_SESSION_TABLE "METRIC_SESSION_TABLE"
#define REPOS_METRIC_TEXT_TABLE "METRIC_TEXT_TABLE"
#define SEABASE_REGRESS_DEFAULT_SCHEMA "SCH"
// Trafodion system library and procedures reserved schema
// Procedures are defined in CmpSeabaseDDLroutine.h
#define SEABASE_LIBMGR_SCHEMA "_LIBMGR_"
#define SEABASE_LIBMGR_LIBRARY "DB__LIBMGRNAME"
#define SEABASE_LIBMGR_LIBRARY_CPP "DB__LIBMGR_LIB_CPP"
// reserved column names for traf internal system usage
#define TRAF_SALT_COLNAME "_SALT_"
#define TRAF_DIVISION_COLNAME_PREFIX "_DIVISION_"
#define TRAF_SYSKEY_COLNAME "SYSKEY"
// length of explain_plan column in metric_query_table.
// explain_plan greater than this length are chunked and store in multiple
// rows in metric_text_table
// Note: This symbol is used in the DDL for the Repository tables.
// If you change it, consider whether the Repository tables will need
// an upgrade. See file sqlcomp/CmpSeabaseDDLrepos.h.
#define REPOS_MAX_EXPLAIN_PLAN_LEN 1000000
#define REPOS_MAX_EXPLAIN_PLAN_LEN_STR "1000000"
/****** *****/
enum ComActivationTime { COM_UNKNOWN_TIME, COM_BEFORE , COM_AFTER };
#define COM_BEFORE_LIT "B "
#define COM_AFTER_LIT "A "
#define COM_UNKNOWN_TIME_LIT " "
enum ComOperation{COM_UNKNOWN_IUD, COM_INSERT, COM_DELETE, COM_UPDATE,
COM_SELECT, COM_ROUTINE};
#define COM_INSERT_LIT "I "
#define COM_DELETE_LIT "D "
#define COM_UPDATE_LIT "U "
#define COM_SELECT_LIT "S "
#define COM_ROUTINE_LIT "R "
#define COM_UNKNOWN_IUD_LIT " "
enum ComGranularity { COM_UNKNOWN_GRANULARITY, COM_ROW, COM_STATEMENT };
#define COM_ROW_LIT "R "
#define COM_STATEMENT_LIT "S "
#define COM_UNKNOWN_GRANULARITY_LIT " "
enum ComYesNo { COM_YES, COM_NO, COM_NULL };
#define COM_YES_LIT "Y "
#define COM_NO_LIT "N "
#define COM_NULL_LIT " "
//----------------------------------------------------------------------------
//++ MVS
enum ComMVType { COM_MJV
,COM_MAV
,COM_MAJV
,COM_MV_OTHER
,COM_MV_UNKNOWN
};
#define COM_MJV_LIT "J "
#define COM_MAV_LIT "A "
#define COM_MAJV_LIT "X "
#define COM_MV_OTHER_LIT "O "
#define COM_MV_UNKNOWN_LIT " "
enum ComMVStatus { COM_MVSTATUS_INITIALIZED
,COM_MVSTATUS_NOT_INITIALIZED
,COM_MVSTATUS_NO_INITIALIZATION
,COM_MVSTATUS_UNAVAILABLE
,COM_MVSTATUS_UNKNOWN
};
#define COM_MVSTATUS_INITIALIZED_LIT "Y "
#define COM_MVSTATUS_NOT_INITIALIZED_LIT "N "
#define COM_MVSTATUS_NO_INITIALIZATION_LIT "I "
#define COM_MVSTATUS_UNAVAILABLE_LIT "U "
#define COM_MVSTATUS_UNKNOWN_LIT " "
enum ComMvAuditType { COM_MV_AUDIT
,COM_MV_NO_AUDIT
,COM_MV_NO_AUDIT_ON_REFRESH
,COM_MV_AUDIT_UNKNOWN
};
#define COM_MV_AUDIT_LIT "A "
#define COM_MV_NO_AUDIT_LIT "N "
#define COM_MV_NO_AUDIT_ON_REFRESH_LIT "R "
#define COM_MV_AUDIT_UNKNOWN_LIT " "
enum ComMVAttribute { COM_MVATTRIBUTE_UNKNOWN }; // For future use
#define COM_MV_ATTRIBUTE_UNKNOWN_LIT " "
enum ComMVRefreshType { COM_ON_STATEMENT
,COM_ON_REQUEST
,COM_RECOMPUTE
,COM_BY_USER
,COM_UNKNOWN_RTYPE
};
#define COM_ON_STATEMENT_LIT "S "
#define COM_ON_REQUEST_LIT "R "
#define COM_RECOMPUTE_LIT "C "
#define COM_BY_USER_LIT "U "
#define COM_UNKNOWN_RTYPE_LIT " "
enum ComMVSUsedTableAttribute { COM_NO_ATTRIBUTE
,COM_IGNORE_CHANGES
,COM_INSERT_ONLY
};
#define COM_NO_ATTRIBUTE_LIT "NO"
#define COM_IGNORE_CHANGES_LIT "IC"
#define COM_INSERT_ONLY_LIT "IO"
enum ComMVSUsageType { COM_USER_SPECIFIED
,COM_DIRECT_USAGE
,COM_EXPANDED_USAGE
,COM_UNKNOWN_USAGE
};
#define COM_USER_SPECIFIED_LIT "U "
#define COM_DIRECT_USAGE_LIT "D "
#define COM_EXPANDED_USAGE_LIT "E "
#define COM_UNKNOWN_USAGE_LIT " "
enum ComLeftJoinTableType { COM_NO_LEFT_JOIN
,COM_LEFT_INNER
,COM_LEFT_OUTER
,COM_LEFT_JOIN_UNKNOWN
};
#define COM_NO_LEFT_JOIN_LIT "N "
#define COM_LEFT_INNER_LIT "I "
#define COM_LEFT_OUTER_LIT "O "
#define COM_LEFT_JOIN_UNKNOWN_LIT " "
enum ComMVColType { COM_MVCOL_GROUPBY
,COM_MVCOL_CONST
,COM_MVCOL_AGGREGATE
,COM_MVCOL_DUPLICATE
,COM_MVCOL_OTHER
,COM_MVCOL_FUNCTION
,COM_MVCOL_BASECOL
,COM_MVCOL_REDUNDANT
,COM_MVCOL_COMPLEX
,COM_MVCOL_UNKNOWN
};
#define COM_MVCOL_GROUPBY_LIT "GRP "
#define COM_MVCOL_CONST_LIT "CNS "
#define COM_MVCOL_AGGREGATE_LIT "AGG "
#define COM_MVCOL_DUPLICATE_LIT "DUP "
#define COM_MVCOL_REDUNDANT_LIT "RED "
#define COM_MVCOL_COMPLEX_LIT "CPX "
#define COM_MVCOL_OTHER_LIT "OTH "
#define COM_MVCOL_FUNCTION_LIT "FUN "
#define COM_MVCOL_BASECOL_LIT "BAS "
#define COM_MVCOL_UNKNOWN_LIT " "
// For the operator types (the types (ITM_...) are taken from OperTypeEnum)
#define COM_COUNT_LIT "CNT "
#define COM_COUNT_NONULL_LIT "CTN "
#define COM_SUM_LIT "SUM "
#define COM_AVG_LIT "AVG "
#define COM_MIN_LIT "MIN "
#define COM_MAX_LIT "MAX "
#define COM_VARIANCE_LIT "VAR "
#define COM_STDDEV_LIT "STD "
#define COM_BASECOL_LIT "BCL "
#define COM_UNKNOWN_AGG_LIT " "
enum ComMVIncRefStatus { COM_REF_STAT_UNKNOWN
,COM_REF_STAT_OK
,COM_REF_STAT_RECOMPUTE_REQUIRED
,COM_REF_STAT_LOCK_REQUIRED
};
#define COM_REF_STAT_OK_LIT "OK"
#define COM_REF_STAT_RECOMPUTE_REQUIRED_LIT "RR"
#define COM_REF_STAT_LOCK_REQUIRED_LIT "LR"
#define COM_REF_STAT_UNKNOWN_LIT " "
enum ComRangeLogType { COM_NO_RANGELOG
,COM_MANUAL_RANGELOG
,COM_AUTO_RANGELOG
,COM_MIXED_RANGELOG
,COM_RANGELOG_UNKNOWN
};
#define COM_NO_RANGELOG_LIT "N "
#define COM_MANUAL_RANGELOG_LIT "M "
#define COM_AUTO_RANGELOG_LIT "A "
#define COM_MIXED_RANGELOG_LIT "X "
#define COM_RANGELOG_UNKNOWN_LIT " "
enum ComMvsAllowed { COM_NO_MVS_ALLOWED
,COM_ALL_MVS_ALLOWED
,COM_ON_STATEMENT_MVS_ALLOWED
,COM_ON_REQUEST_MVS_ALLOWED
,COM_RECOMPUTE_MVS_ALLOWED
,COM_MVS_ALLOWED_UNKNOWN
};
#define COM_NO_MVS_ALLOWED_LIT "N "
#define COM_ALL_MVS_ALLOWED_LIT "A "
#define COM_ON_STATEMENT_MVS_ALLOWED_LIT "S "
#define COM_ON_REQUEST_MVS_ALLOWED_LIT "R "
#define COM_RECOMPUTE_MVS_ALLOWED_LIT "C "
#define COM_MVS_ALLOWED_UNKNOWN_LIT " "
// This enum marks the type of table that should be created by
// /catman/CatExecCreateTable . I guess that TransientObject
// could also be an option here.
enum ComTableType { COM_REGULAR_TABLE
,COM_TRIGTEMP_TABLE
,COM_IUD_LOG_TABLE
,COM_RANGE_LOG_TABLE
,COM_MVS_UMD
,COM_MV_TABLE
,COM_EXCEPTION_TABLE
,COM_INDEX_TABLE // added for parallel create/drop
,COM_GHOST_REGULAR_TABLE
,COM_GHOST_MV_TABLE
,COM_GHOST_INDEX_TABLE
,COM_GHOST_IUD_LOG_TABLE
,COM_SG_TABLE
,COM_SCHEMA_LABEL_TABLE
};
#define COM_REGULAR_TABLE_LIT "RT"
#define COM_TRIGTEMP_TABLE_LIT "TT"
#define COM_IUD_LOG_TABLE_LIT "IU"
#define COM_RANGE_LOG_TABLE_LIT "RL"
#define COM_MVS_UMD_LIT "UM"
#define COM_MV_TABLE_LIT "MV"
#define COM_EXCEPTION_TABLE_LIT "ET"
#define COM_INDEX_TABLE_LIT "IT" // added for parallel create/drop
#define COM_GHOST_REGULAR_TABLE_LIT "GR"
#define COM_GHOST_MV_TABLE_LIT "GM"
#define COM_GHOST_INDEX_TABLE_LIT "GI"
#define COM_GHOST_IUD_LOG_TABLE_LIT "GU"
#define COM_SG_TABLE_LIT "SG"
#define COM_SCHEMA_LABEL_TABLE_LIT "SL"
#define EPOCH_INITIAL_VALUE 100
// JulianTimestamp time of UNIX "epoch", 00:00:00 Jan 1, 1970
const Int64 COM_EPOCH_TIMESTAMP=210866760000000000LL;
// enums used to specify the MV REWRITE PUBLISH operations
// and SYSTEM DEFAULTS propagation
enum ComPublishMVOperationType { COM_PUBLISH_MV_CREATE,
COM_PUBLISH_MV_CREATE_AND_REFRESH,
COM_PUBLISH_MV_DROP,
COM_PUBLISH_MV_REFRESH,
COM_PUBLISH_MV_REFRESH_RECOMPUTE,
COM_PUBLISH_MV_RENAME,
COM_PUBLISH_MV_ALTER_IGNORE_CHANGES,
COM_PUBLISH_MV_TOUCH,
COM_PUBLISH_MV_REPUBLISH,
COM_PUBLISH_MV_DEFAULT,
COM_PUBLISH_MV_UNKNOWN
};
#define COM_PUBLISH_MV_CREATE_LIT "CT"
#define COM_PUBLISH_MV_CREATE_AND_REFRESH_LIT "CR"
#define COM_PUBLISH_MV_DROP_LIT "DP"
#define COM_PUBLISH_MV_REFRESH_LIT "RF"
#define COM_PUBLISH_MV_REFRESH_RECOMPUTE_LIT "RR"
#define COM_PUBLISH_MV_RENAME_LIT "MR"
#define COM_PUBLISH_MV_ALTER_IGNORE_CHANGES_LIT "AI"
#define COM_PUBLISH_MV_REPUBLISH_LIT "RP"
#define COM_PUBLISH_MV_TOUCH_LIT "MT"
#define COM_PUBLISH_MV_UNKNOWN_LIT " "
//-- MVS
//----------------------------------------------------------------------------
// -- Histograms
enum ComHistReasonType { COM_HIST_NOT_CREATED
,COM_HIST_MANUAL
,COM_HIST_INITIAL
,COM_HIST_AUTO_REGEN_NEEDED
};
#define COM_HIST_NOT_CREATED_LIT " "
#define COM_HIST_MANUAL_LIT "M"
#define COM_HIST_INITIAL_LIT "I"
#define COM_HIST_AUTO_REGEN_NEEDED_LIT "N"
//-- Histograms
//---------------------------------------------------------------------------
//----------------------------------------------------------------------------
// NOTE: the following literals get generated into plans, don't change them
// (adding new ones is ok)
//
// COM_SQL_MP_NAME, COM_SQL_MP_USER_TABLE_NAME, COM_SQL_MP_SYSTEM_TABLE_NAME,
// COM_SQL_MP_INDEX_NAME, COM_SQL_MP_PVIEW_NAME, COM_SQL_MP_SVIEW_NAME and
// the corresponding literals ie. COM_SQL_MP_NAME_LIT,
// COM_SQL_MP_USER_TABLE_NAME_LIT, ... are not actually used even though
// w:\smdio\CmUtil.cpp refers to these variables.
//
// In Release 2, MP alias resides in the table name space.
// COM_UDR_NAME is not used as name space for procedure. Valid name space
// value is COM_TABLE_NAME, TA. However, COM_UDR_NAME is referenced by
// sqlparser.y, CmpDescribe.cpp for showddl procedure work. It is also
// referenced by to properly report error in case users has not fixed up their
// database and still have UR name space value in the Objects table for
// procedures/routines.
enum ComAnsiNameSpace { COM_UNKNOWN_NAME = 0
, COM_CONSTRAINT_NAME = 1
, COM_INDEX_NAME = 2
, COM_MODULE_NAME = 3
, COM_TABLE_NAME = 4
, COM_SQL_MP_NAME = 5
, COM_LOCK_NAME = 6
, COM_SQL_MP_USER_TABLE_NAME = 7
, COM_SQL_MP_SYSTEM_TABLE_NAME = 8
, COM_SQL_MP_INDEX_NAME = 9
, COM_SQL_MP_PVIEW_NAME = 10
, COM_SQL_MP_SVIEW_NAME = 11
, COM_TRIGTEMP_TABLE_NAME = 12
, COM_TRIGGER_NAME = 13
, COM_IUD_LOG_TABLE_NAME = 14
, COM_RANGE_LOG_TABLE_NAME = 15
, COM_MVRG_NAME = 16
, COM_UDR_NAME = 17
, COM_LOB_TABLE_NAME = 18
, COM_SCHEMA_LABEL_NAME = 19
, COM_EXCEPTION_TABLE_NAME = 20
, COM_GHOST_TABLE_NAME = 21
, COM_GHOST_INDEX_NAME = 22
, COM_GHOST_IUD_LOG_TABLE_NAME = 23
, COM_SEQUENCE_GENERATOR_NAME = 24
, COM_UDF_NAME = 25
, COM_UUDF_ACTION_NAME = 26
, COM_LIBRARY_NAME = 27
};
#define COM_NAME_LIT_LEN 2
#define COM_UNKNOWN_NAME_LIT " "
#define COM_CONSTRAINT_NAME_LIT "CN"
#define COM_INDEX_NAME_LIT "IX"
#define COM_IUD_LOG_TABLE_NAME_LIT "IL" // MV
#define COM_RANGE_LOG_TABLE_NAME_LIT "RL"
#define COM_MVRG_NAME_LIT "RG" // OZ
#define COM_TRIGGER_NAME_LIT "TR"
#define COM_MODULE_NAME_LIT "MD"
#define COM_TABLE_NAME_LIT "TA"
#define COM_TRIGTEMP_TABLE_NAME_LIT "TT"
#define COM_UDR_NAME_LIT "UR"
#define COM_LOB_TABLE_NAME_LIT "LO"
#define COM_SCHEMA_LABEL_NAME_LIT "SL"
#define COM_EXCEPTION_TABLE_NAME_LIT "EX"
#define COM_GHOST_TABLE_NAME_LIT "GT"
#define COM_GHOST_INDEX_NAME_LIT "GI"
#define COM_GHOST_IUD_LOG_TABLE_NAME_LIT "GG"
#define COM_SEQUENCE_GENERATOR_NAME_LIT "SG"
#define COM_UDF_NAME_LIT "UF"
#define COM_UUDF_ACTION_NAME_LIT "AC"
#define COM_LIBRARY_NAME_LIT "LB"
// These are not used even though smdio\CmUtil.cpp references them.
// They are put here as place holders.
#define COM_SQL_MP_NAME_LIT " "
#define COM_SQL_MP_USER_TABLE_NAME_LIT " "
#define COM_SQL_MP_SYSTEM_TABLE_NAME_LIT " "
#define COM_SQL_MP_INDEX_NAME_LIT " "
#define COM_SQL_MP_PVIEW_NAME_LIT " "
#define COM_SQL_MP_SVIEW_NAME_LIT " "
#define COM_LOCK_NAME_LIT "LK"
enum ComClusteringScheme { COM_UNKNOWN_CLUSTERING
, COM_KEY_SEQ_CLUSTERING
, COM_ENTRY_SEQ_CLUSTERING
, COM_RELATIVE_CLUSTERING
};
#define COM_CLUSTERING_LIT_LEN 2
#define COM_UNKNOWN_CLUSTERING_LIT " "
#define COM_KEY_SEQ_CLUSTERING_LIT "KS"
#define COM_ENTRY_SEQ_CLUSTERING_LIT "ES"
#define COM_MAXIMUM_NUMBER_OF_COLUMNS 20000
#define COM_DIV_EXPR_BASE_TEXT_SUBID 20000
#define COM_MAXIMUM_LENGTH_OF_COMMENT 1000
enum ComColumnClass { COM_UNKNOWN_CLASS
, COM_SYSTEM_COLUMN
, COM_USER_COLUMN
, COM_ADDED_USER_COLUMN
, COM_MV_SYSTEM_ADDED_COLUMN
, COM_ALTERED_USER_COLUMN
};
#define COM_UNKNOWN_CLASS_LIT " "
#define COM_SYSTEM_COLUMN_LIT "S "
#define COM_USER_COLUMN_LIT "U "
#define COM_ADDED_USER_COLUMN_LIT "A "
#define COM_MV_SYSTEM_ADDED_COLUMN_LIT "M "
#define COM_ALTERED_USER_COLUMN_LIT "C "
/* This enum will be saved as integer in metadata tables
* If you change it, that will affect the existing values
* Make sure to add new values at the end
*/
enum ComColumnDefaultClass { COM_CURRENT_DEFAULT = 0
, COM_NO_DEFAULT = 1
, COM_NULL_DEFAULT = 2
, COM_USER_DEFINED_DEFAULT = 3
, COM_USER_FUNCTION_DEFAULT = 4
, COM_IDENTITY_GENERATED_BY_DEFAULT = 5
, COM_IDENTITY_GENERATED_ALWAYS =6
, COM_ALWAYS_COMPUTE_COMPUTED_COLUMN_DEFAULT = 7
, COM_ALWAYS_DEFAULT_COMPUTED_COLUMN_DEFAULT = 8
, COM_UUID_DEFAULT = 9
, COM_CURRENT_UT_DEFAULT = 10
, COM_FUNCTION_DEFINED_DEFAULT = 11
};
#define COM_CURRENT_DEFAULT_LIT "CD"
#define COM_CURRENT_UT_DEFAULT_LIT "UT"
#define COM_FUNCTION_DEFINED_DEFAULT_LIT "FD"
#define COM_NO_DEFAULT_LIT " "
#define COM_NULL_DEFAULT_LIT "ND"
#define COM_USER_DEFINED_DEFAULT_LIT "UD"
#define COM_USER_FUNCTION_DEFAULT_LIT "UF"
#define COM_UUID_DEFAULT_LIT "UI"
#define COM_IDENTITY_GENERATED_BY_DEFAULT_LIT "ID"
#define COM_IDENTITY_GENERATED_ALWAYS_LIT "IA"
#define COM_ALWAYS_COMPUTE_COMPUTED_COLUMN_DEFAULT_LIT "AC"
#define COM_ALWAYS_DEFAULT_COMPUTED_COLUMN_DEFAULT_LIT "AD"
/* This enum will be saved as integer in metadata tables
* If you change it, that will affect the existing values
* Make sure to add new values at the end
*/
enum ComParamDefaultClass { COM_CURRENT_PARAM_DEFAULT = COM_CURRENT_DEFAULT
, COM_NO_PARAM_DEFAULT
= COM_NO_DEFAULT
, COM_NULL_PARAM_DEFAULT = COM_NULL_DEFAULT
, COM_USER_DEFINED_PARAM_DEFAULT = COM_USER_DEFINED_DEFAULT
, COM_USER_FUNCTION_PARAM_DEFAULT = COM_USER_FUNCTION_DEFAULT
// IDENTITY GENERATED BY DEFAULT not applicable
// IDENTITY GENERATED ALWAYS not applicable
, COM_ALWAYS_COMPUTE_COMPUTED_PARAM_DEFAULT // for future internal use only
= COM_ALWAYS_COMPUTE_COMPUTED_COLUMN_DEFAULT
, COM_ALWAYS_DEFAULT_COMPUTED_PARAM_DEFAULT // for future internal use only
= COM_ALWAYS_DEFAULT_COMPUTED_COLUMN_DEFAULT
, COM_UUID_PARAM_DEAULT = COM_UUID_DEFAULT
, COM_CURRENT_UT_PARAM_DEFAULT = COM_CURRENT_UT_DEFAULT
, COM_FUNCTION_DEFINED_PARAM_DEFAULT
= COM_FUNCTION_DEFINED_DEFAULT
};
#define COM_NO_PARAM_DEFAULT_LIT " "
#define COM_CURRENT_PARAM_DEFAULT_LIT "CD"
#define COM_CURRENT_UT_PARAM_DEFAULT_LIT "UT"
#define COM_NULL_PARAM_DEFAULT_LIT "ND"
#define COM_USER_DEFINED_PARAM_DEFAULT_LIT "UD"
#define COM_USER_FUNCTION_PARAM_DEFAULT_LIT "UF"
#define COM_ALWAYS_COMPUTE_COMPUTED_PARAM_DEFAULT_LIT "AC"
#define COM_ALWAYS_DEFAULT_COMPUTED_PARAM_DEFAULT_LIT "AD"
#define COM_FUNCTION_DEFINED_PARAM_DEFAULT_LIT "FD"
// Represents the kind of string value stored in TEXT table. Note
// that changing existing values will require an UPGRADE of the
// metadata.
enum ComTextType {COM_VIEW_TEXT = 0,
COM_CHECK_CONSTR_TEXT = 1,
COM_HBASE_OPTIONS_TEXT = 2,
COM_TABLE_COMMENT_TEXT = 3,
COM_COMPUTED_COL_TEXT = 4,
COM_HBASE_COL_FAMILY_TEXT = 5,
COM_HBASE_SPLIT_TEXT = 6,
COM_STORED_DESC_TEXT = 7,
COM_VIEW_REF_COLS_TEXT = 8,
COM_OBJECT_COMMENT_TEXT = COM_TABLE_COMMENT_TEXT,
COM_COLUMN_COMMENT_TEXT = 12
};
enum ComColumnDirection { COM_UNKNOWN_DIRECTION
, COM_INPUT_COLUMN
, COM_OUTPUT_COLUMN
, COM_INOUT_COLUMN
};
#define COM_UNKNOWN_DIRECTION_LIT " "
#define COM_INPUT_COLUMN_LIT "I "
#define COM_OUTPUT_COLUMN_LIT "O "
#define COM_INOUT_COLUMN_LIT "N "
enum ComParamDirection { COM_UNKNOWN_PARAM_DIRECTION = COM_UNKNOWN_DIRECTION
, COM_INPUT_PARAM = COM_INPUT_COLUMN
, COM_OUTPUT_PARAM = COM_OUTPUT_COLUMN
, COM_INOUT_PARAM = COM_INOUT_COLUMN
};
#define COM_UNKNOWN_PARAM_DIRECTION_LIT " "
#define COM_INPUT_PARAM_LIT "I "
#define COM_OUTPUT_PARAM_LIT "O "
#define COM_INOUT_PARAM_LIT "N "
enum ComStoreByDetails { COM_STOREBY_DETAILS_UNKNOWN
, COM_STOREBY_DETAILS_V1
, COM_STOREBY_DETAILS_V2
};
#define COM_STOREBY_DETAILS_UNKNOWN_LIT " "
#define COM_STOREBY_DETAILS_V1_LIT "V1"
#define COM_STOREBY_DETAILS_V2_LIT "V2"
// The enum ComCompressionType are used in
// sqlutils/mxtool/replicate_schema_ddl.java
// Sync the changes with the java file also
enum ComCompressionType { COM_NO_COMPRESSION
, COM_SOFTWARE_COMPRESSION
, COM_HARDWARE_COMPRESSION
, COM_UNKNOWN_COMPRESSION
, COM_SYSTEM_COMPRESSION
, COM_SOURCE_COMPRESSION
};
#define COM_UNKNOWN_COMPRESSION_LIT " "
#define COM_NO_COMPRESSION_LIT "N "
#define COM_HARDWARE_COMPRESSION_LIT "H "
#define COM_SOFTWARE_COMPRESSION_LIT "S "
enum ComColumnOrdering { COM_UNKNOWN_ORDER
, COM_ASCENDING_ORDER
, COM_DESCENDING_ORDER
};
#define COM_UNKNOWN_ORDER_LIT " "
#define COM_ASCENDING_ORDER_LIT "A "
#define COM_DESCENDING_ORDER_LIT "D "
enum ComRoutineParamType { COM_NORMAL_PARAM_TYPE
, COM_SAS_PUT_FORMAT_NAME_PARAM_TYPE
, COM_SAS_PUT_LOCALE_ID_PARAM_TYPE
, COM_SAS_SCORE_TABLE_NAME_PARAM_TYPE
};
#define COM_NORMAL_PARAM_TYPE_LIT " "
#define COM_SAS_PUT_FORMAT_NAME_PARAM_TYPE_LIT "SF"
#define COM_SAS_PUT_LOCALE_ID_PARAM_TYPE_LIT "SL"
#define COM_SAS_SCORE_TABLE_NAME_PARAM_TYPE_LIT "SM"
enum ComConstraintType { COM_UNKNOWN_CONSTRAINT
, COM_CHECK_CONSTRAINT
, COM_FOREIGN_KEY_CONSTRAINT
, COM_PRIMARY_KEY_CONSTRAINT
, COM_UNIQUE_CONSTRAINT
};
#define COM_CHECK_CONSTRAINT_LIT "C "
#define COM_FOREIGN_KEY_CONSTRAINT_LIT "F "
#define COM_PRIMARY_KEY_CONSTRAINT_LIT "P "
#define COM_UNIQUE_CONSTRAINT_LIT "U "
#define COM_UNKNOWN_CONSTRAINT_LIT " "
enum ComObjectClass { COM_CLASS_USER_METADATA
, COM_CLASS_MV_UMD
, COM_CLASS_USER_TABLE
, COM_CLASS_SYSTEM_METADATA
, COM_CLASS_UNKNOWN
, COM_CLASS_SYSTEM_TABLE
};
#define COM_CLASS_LIT_LEN 2
#define COM_CLASS_USER_METADATA_LIT "UM"
#define COM_CLASS_MV_UMD_LIT "MU"
#define COM_CLASS_USER_TABLE_LIT "UT"
#define COM_CLASS_SYSTEM_METADATA_LIT "SM"
#define COM_CLASS_SYSTEM_TABLE_LIT "ST"
#define COM_CLASS_UNKNOWN_LIT " "
enum ComComponentPrivilegeClass { COM_INTERNAL_COMPONENT_PRIVILEGE =0
, COM_EXTERNAL_COMPONENT_PRIVILEGE
};
#define COM_INTERNAL_COMPONENT_PRIVILEGE_LIT "IN"
#define COM_EXTERNAL_COMPONENT_PRIVILEGE_LIT "EX"
// Values are identical to 'enum rec_datetime_field' in dfs2rec.h
enum ComDateTimeStartEnd { COM_DTSE_UNKNOWN = 0
, COM_DTSE_YEAR = 1
, COM_DTSE_MONTH
, COM_DTSE_DAY
, COM_DTSE_HOUR
, COM_DTSE_MINUTE
, COM_DTSE_SECOND
, COM_DTSE_FRACTION // used only in MP, not ARK!
};
enum ComCreateViewBehavior { COM_CREATE_VIEW_BEHAVIOR
, COM_CREATE_OR_REPLACE_VIEW_BEHAVIOR
, COM_CREATE_OR_REPLACE_VIEW_CASCADE_BEHAVIOR
, COM_CREATE_SYSTEM_VIEW_BEHAVIOR
};
enum ComDropBehavior { COM_UNKNOWN_DROP_BEHAVIOR
, COM_CASCADE_DROP_BEHAVIOR
, COM_RESTRICT_DROP_BEHAVIOR
, COM_NO_CHECK_DROP_BEHAVIOR
, COM_CASCADE_INVALIDATE_DEPENDENT_BEHAVIOR
};
enum ComDropType { COM_DROP_SINGLE
, COM_DROP_ALL
};
enum ComLibraryPathType { COM_LIBRARY_PATH_FULL = 2
, COM_LIBRARY_PATH_PARTIAL
};
enum ComRegisterBehavior { COM_UNKNOWN_REGISTER_BEHAVIOR
, COM_CASCADE_REGISTER_BEHAVIOR
, COM_RESTRICT_REGISTER_BEHAVIOR
};
enum ComUnregisterBehavior { COM_UNKNOWN_UNREGISTER_BEHAVIOR
, COM_CASCADE_UNREGISTER_BEHAVIOR
, COM_RESTRICT_UNREGISTER_BEHAVIOR
};
// Values are identical to '#define REC_xxx value' in dfs2rec.h
enum ComFSDataType { COM_UNKNOWN_FSDT = -1
, COM_FCHAR_FSDT = REC_BYTE_F_ASCII
, COM_FCHAR_DBL_FSDT = REC_BYTE_F_DOUBLE
, COM_VCHAR_FSDT = REC_BYTE_V_ASCII
, COM_VCHAR_DBL_FSDT = REC_BYTE_V_DOUBLE
, COM_VCHAR_LONG_FSDT = REC_BYTE_V_ASCII_LONG
, COM_SIGNED_BIN8_FSDT = REC_BIN8_SIGNED
, COM_UNSIGNED_BIN8_FSDT = REC_BIN8_UNSIGNED
, COM_SIGNED_BIN16_FSDT = REC_BIN16_SIGNED
, COM_UNSIGNED_BIN16_FSDT = REC_BIN16_UNSIGNED
, COM_SIGNED_BIN32_FSDT = REC_BIN32_SIGNED
, COM_UNSIGNED_BIN32_FSDT = REC_BIN32_UNSIGNED
, COM_SIGNED_BIN64_FSDT = REC_BIN64_SIGNED
, COM_UNSIGNED_BPINT_FSDT = REC_BPINT_UNSIGNED
, COM_FLOAT32_FSDT = REC_FLOAT32
, COM_FLOAT64_FSDT = REC_FLOAT64
, COM_UNSIGNED_DECIMAL_FSDT = REC_DECIMAL_UNSIGNED
, COM_SIGNED_DECIMAL_FSDT = REC_DECIMAL_LSE
, COM_SIGNED_NUM_BIG_FSDT = REC_NUM_BIG_SIGNED
, COM_UNSIGNED_NUM_BIG_FSDT = REC_NUM_BIG_UNSIGNED
, COM_BLOB = REC_BLOB
, COM_CLOB = REC_CLOB
, COM_BOOLEAN = REC_BOOLEAN
, COM_DATETIME_FSDT = REC_DATETIME
, COM_INTERVAL_MIN_FSDT = REC_MIN_INTERVAL
, COM_INTERVAL_YEAR_YEAR_FSDT = REC_INT_YEAR
, COM_INTERVAL_MON_MON_FSDT = REC_INT_MONTH
, COM_INTERVAL_YEAR_MON_FSDT = REC_INT_YEAR_MONTH
, COM_INTERVAL_DAY_DAY_FSDT = REC_INT_DAY
, COM_INTERVAL_HOUR_HOUR_FSDT = REC_INT_HOUR
, COM_INTERVAL_DAY_HOUR_FSDT = REC_INT_DAY_HOUR
, COM_INTERVAL_MIN_MIN_FSDT = REC_INT_MINUTE
, COM_INTERVAL_HOUR_MIN_FSDT = REC_INT_HOUR_MINUTE
, COM_INTERVAL_DAY_MIN_FSDT = REC_INT_DAY_MINUTE
, COM_INTERVAL_SEC_SEC_FSDT = REC_INT_SECOND
, COM_INTERVAL_MIN_SEC_FSDT = REC_INT_MINUTE_SECOND
, COM_INTERVAL_HOUR_SEC_FSDT = REC_INT_HOUR_SECOND
, COM_INTERVAL_DAY_SEC_FSDT = REC_INT_DAY_SECOND
, COM_INTERVAL_MAX_FSDT = REC_MAX_INTERVAL
, COM_LAST_FSDT // last value
};
// TBD: clean these grantee/grantor types
enum ComGranteeType { COM_UNKNOWN_GRANTEE_TYPE
, COM_PUBLIC_GRANTEE
, COM_USER_GRANTEE
// Can get rid of schema owner and possibly "any"
, COM_SCHEMA_OWNER_GRANTEE
, COM_ANY_GRANTEE
};
// There is no corresponding *_LIT value for COM_ANY_GRANTEE as it is
// only used in matching; it is never stored in metadata.
#define COM_UNKNOWN_GRANTEE_TYPE_LIT " "
#define COM_PUBLIC_GRANTEE_LIT "P "
#define COM_USER_GRANTEE_LIT "U "
// Can get rid of schema owner
#define COM_SCHEMA_OWNER_GRANTEE_LIT "O "
enum ComIdClass { COM_UNKNOWN_ID_CLASS
, COM_ROLE_CLASS
, COM_USER_CLASS
};
#define COM_UNKNOWN_ID_CLASS_LIT " "
#define COM_ROLE_CLASS_LIT "R "
#define COM_USER_CLASS_LIT "U "
enum ComIdStatus { COM_UNKNOWN_ID_STATUS
, COM_AVAILABLE_ID_STATUS
, COM_USED_ID_STATUS
, COM_PROTECTED_ID_STATUS
};
#define COM_UNKNOWN_ID_STATUS_LIT " "
#define COM_AVAILABLE_ID_STATUS_LIT "A "
#define COM_USED_ID_STATUS_LIT "U "
#define COM_PROTECTED_ID_STATUS_LIT "P "
/* TBD: can remove
enum ComGranteeClass { COM_UNKNOWN_GRANTEE_CLASS
, COM_ROLE_CLASS
, COM_LDAP_GROUP_CLASS
, COM_USER_CLASS
};
#define COM_UNKNOWN_GRANTEE_CLASS_LIT " "
#define COM_ROLE_CLASS_LIT "R "
#define COM_LDAP_GROUP_CLASS_LIT "G "
#define COM_USER_CLASS_LIT "U "
enum ComGrantorClass { COM_UNKNOWN_GRANTOR_CLASS
, COM_ROLE_CLASS
, COM_LDAP_GROUP_CLASS
, COM_USER_CLASS
};
#define COM_UNKNOWN_GRANTOR_CLASS_LIT " "
*/
enum ComGrantorType { COM_UNKNOWN_GRANTOR_TYPE
, COM_SYSTEM_GRANTOR
, COM_USER_GRANTOR
// can get rid of these next 2: owner and any
, COM_SCHEMA_OWNER_GRANTOR
, COM_ANY_GRANTOR
};
// There is no corresponding *_LIT value for COM_ANY_GRANTOR as it is
// only used in matching; it is never stored in metadata.
#define COM_UNKNOWN_GRANTOR_TYPE_LIT " "
#define COM_SYSTEM_GRANTOR_LIT "S "
#define COM_USER_GRANTOR_LIT "U "
// can get rid of schema owner
#define COM_SCHEMA_OWNER_GRANTOR_LIT "O "
enum ComRoleIdStatus { COM_UNKNOWN_STATUS
, COM_AVAILABLE_STATUS
, COM_USED_STATUS
};
#define COM_UNKNOWN_STATUS_LIT " "
#define COM_AVAILABLE_STATUS_LIT "A "
#define COM_USED_STATUS_LIT "U "
enum ComLevels { COM_UNKNOWN_LEVEL
, COM_CASCADED_LEVEL
, COM_LOCAL_LEVEL
};
// For any new object type, add a define for the corresponding string literal
// below, and a case in comObjectTypeLit().
enum ComObjectType { COM_UNKNOWN_OBJECT
, COM_BASE_TABLE_OBJECT
, COM_CHECK_CONSTRAINT_OBJECT
, COM_INDEX_OBJECT
, COM_LIBRARY_OBJECT
, COM_LOCK_OBJECT
, COM_MODULE_OBJECT
, COM_NOT_NULL_CONSTRAINT_OBJECT
, COM_PRIMARY_KEY_CONSTRAINT_OBJECT
, COM_REFERENTIAL_CONSTRAINT_OBJECT
, COM_STORED_PROCEDURE_OBJECT
, COM_UNIQUE_CONSTRAINT_OBJECT
, COM_USER_DEFINED_ROUTINE_OBJECT
, COM_VIEW_OBJECT
, COM_MV_OBJECT // MV
, COM_MVRG_OBJECT // OZ
, COM_TRIGGER_OBJECT
, COM_LOB_TABLE_OBJECT
, COM_TRIGGER_TABLE_OBJECT
, COM_SYNONYM_OBJECT
, COM_PRIVATE_SCHEMA_OBJECT
, COM_SHARED_SCHEMA_OBJECT
, COM_EXCEPTION_TABLE_OBJECT
, COM_SEQUENCE_GENERATOR_OBJECT
};
// OBJECT_LIT values are also used by COM_AUD* defines below
#define COM_OBJECT_LIT_LEN 2
#define COM_UNKNOWN_OBJECT_LIT " "
#define COM_BASE_TABLE_OBJECT_LIT "BT"
#define COM_CHECK_CONSTRAINT_OBJECT_LIT "CC"
#define COM_INDEX_OBJECT_LIT "IX"
#define COM_LIBRARY_OBJECT_LIT "LB"
#define COM_LOCK_OBJECT_LIT "LK"
#define COM_MODULE_OBJECT_LIT "MD"
#define COM_NOT_NULL_CONSTRAINT_OBJECT_LIT "NN"
#define COM_PRIMARY_KEY_CONSTRAINT_OBJECT_LIT "PK"
#define COM_REFERENTIAL_CONSTRAINT_OBJECT_LIT "RC"
#define COM_STORED_PROCEDURE_OBJECT_LIT "SP"
#define COM_UNIQUE_CONSTRAINT_OBJECT_LIT "UC"
#define COM_USER_DEFINED_ROUTINE_OBJECT_LIT "UR"
#define COM_VIEW_OBJECT_LIT "VI"
#define COM_MV_OBJECT_LIT "MV"
#define COM_MVRG_OBJECT_LIT "RG" // OZ
#define COM_TRIGGER_OBJECT_LIT "TR"
#define COM_LOB_TABLE_OBJECT_LIT "LT"
#define COM_TRIGGER_TABLE_OBJECT_LIT "TT"
#define COM_SYNONYM_OBJECT_LIT "SY"
#define COM_SHARED_SCHEMA_OBJECT_LIT "SS"
#define COM_PRIVATE_SCHEMA_OBJECT_LIT "PS"
#define COM_EXCEPTION_TABLE_OBJECT_LIT "EX"
#define COM_SEQUENCE_GENERATOR_OBJECT_LIT "SG"
// This enum has a similar one, SG_IE_TYPE, in parser/ElemDDLSGOptions.h
// Should keep them in sync.
enum ComSequenceGeneratorType { COM_UNKNOWN_SG
, COM_INTERNAL_SG
, COM_EXTERNAL_SG
, COM_INTERNAL_COMPUTED_SG
};
#define COM_UNKNOWN_SG_LIT " "
#define COM_INTERNAL_SG_LIT "I "
#define COM_EXTERNAL_SG_LIT "E "
#define COM_INTERNAL_COMPUTED_SG_LIT "C "
enum ComODBCDataType { COM_UNKNOWN_ODT
, COM_CHARACTER_ODT
, COM_VARCHAR_ODT
, COM_LONG_VARCHAR_ODT
, COM_NUMERIC_SIGNED_ODT
, COM_NUMERIC_UNSIGNED_ODT
, COM_TINYINT_SIGNED_ODT
, COM_TINYINT_UNSIGNED_ODT
, COM_SMALLINT_SIGNED_ODT
, COM_SMALLINT_UNSIGNED_ODT
, COM_INTEGER_SIGNED_ODT
, COM_INTEGER_UNSIGNED_ODT
, COM_LARGEINT_SIGNED_ODT
, COM_LARGEINT_UNSIGNED_ODT
, COM_BIGINT_SIGNED_ODT
, COM_FLOAT_ODT
, COM_REAL_ODT
, COM_DOUBLE_ODT
, COM_DECIMAL_SIGNED_ODT
, COM_DECIMAL_UNSIGNED_ODT
, COM_LARGE_DECIMAL_SIGNED_ODT
, COM_LARGE_DECIMAL_UNSIGNED_ODT
, COM_BLOB_ODT
, COM_CLOB_ODT
, COM_BOOLEAN_ODT
, COM_DATETIME_ODT
, COM_TIMESTAMP_ODT
, COM_DATE_ODT
, COM_TIME_ODT
, COM_INTERVAL_ODT
};
#define COM_UNKNOWN_ODT_LIT " "
#define COM_CHARACTER_ODT_LIT "CHARACTER "
#define COM_VARCHAR_ODT_LIT "VARCHAR "
#define COM_LONG_VARCHAR_ODT_LIT "LONG VARCHAR "
#define COM_NUMERIC_SIGNED_ODT_LIT "SIGNED NUMERIC "
#define COM_NUMERIC_UNSIGNED_ODT_LIT "UNSIGNED NUMERIC "
#define COM_TINYINT_SIGNED_ODT_LIT "SIGNED TINYINT "
#define COM_TINYINT_UNSIGNED_ODT_LIT "UNSIGNED TINYINT "
#define COM_SMALLINT_SIGNED_ODT_LIT "SIGNED SMALLINT "
#define COM_SMALLINT_UNSIGNED_ODT_LIT "UNSIGNED SMALLINT "
#define COM_INTEGER_SIGNED_ODT_LIT "SIGNED INTEGER "
#define COM_INTEGER_UNSIGNED_ODT_LIT "UNSIGNED INTEGER "
#define COM_LARGEINT_SIGNED_ODT_LIT "SIGNED LARGEINT "
#define COM_LARGEINT_UNSIGNED_ODT_LIT "UNSIGNED LARGEINT "
#define COM_BIGINT_SIGNED_ODT_LIT "SIGNED BIGINT "
#define COM_FLOAT_ODT_LIT "FLOAT "
#define COM_REAL_ODT_LIT "REAL "
#define COM_DOUBLE_ODT_LIT "DOUBLE "
#define COM_DECIMAL_SIGNED_ODT_LIT "SIGNED DECIMAL "
#define COM_DECIMAL_UNSIGNED_ODT_LIT "UNSIGNED DECIMAL "
#define COM_DATETIME_ODT_LIT "DATETIME "
#define COM_TIMESTAMP_ODT_LIT "TIMESTAMP "
#define COM_DATE_ODT_LIT "DATE "
#define COM_TIME_ODT_LIT "TIME "
#define COM_INTERVAL_ODT_LIT "INTERVAL "
#define COM_BLOB_ODT_LIT "BLOB "
#define COM_CLOB_ODT_LIT "CLOB "
#define COM_BOOLEAN_ODT_LIT "BOOLEAN "
enum ComAccessPathType { COM_UNKNOWN_ACCESS_PATH_TYPE
, COM_BASE_TABLE_TYPE
, COM_INDEX_TYPE
, COM_LOB_TABLE_TYPE
};
#define COM_ACCESS_PATH_TYPE_LIT_LEN 2
#define COM_UNKNOWN_ACCESS_PATH_TYPE_LIT " "
#define COM_BASE_TABLE_TYPE_LIT "BT"
#define COM_INDEX_TYPE_LIT "IX"
#define COM_LOB_TABLE_TYPE_LIT "LT"
enum ComPartitioningScheme { COM_UNSPECIFIED_PARTITIONING
, COM_NO_PARTITIONING
, COM_SINGLE_PARTITIONING = COM_NO_PARTITIONING
, COM_RANGE_PARTITIONING
, COM_SYSTEM_PARTITIONING
, COM_ROUND_ROBIN_PARTITIONING
, COM_HASH_V1_PARTITIONING
, COM_HASH_V2_PARTITIONING
, COM_UNKNOWN_PARTITIONING
};
#define COM_PARTITIONING_LIT_LEN 2
#define COM_UNSPECIFIED_PARTITIONING_LIT " "
#define COM_NO_PARTITIONING_LIT "N "
#define COM_SINGLE_PARTITIONING_LIT COM_NO_PARTITIONING_LIT
#define COM_RANGE_PARTITIONING_LIT "RP"
#define COM_SYSTEM_PARTITIONING_LIT "SP"
#define COM_ROUND_ROBIN_PARTITIONING_LIT "RR"
#define COM_HASH_V1_PARTITIONING_LIT "HP"
#define COM_HASH_V2_PARTITIONING_LIT "H2"
#define COM_UNKNOWN_PARTITIONING_LIT COM_UNSPECIFIED_PARTITIONING_LIT
// aligned_format: All columns are stored in an internal row aligned format,
// and the whole row is stored in one hbase cell.
// hbase_format: each col is stored as one hbase cell with data in native
// format (for ex: INT datatype is stored as 4-byte integer)
// hbase_str_format: same as hbase_format except data is stored in displayable
// string format(for ex: 100 is stored as string '100')
enum ComRowFormat { COM_UNKNOWN_FORMAT_TYPE
, COM_ALIGNED_FORMAT_TYPE
, COM_HBASE_FORMAT_TYPE
, COM_HBASE_STR_FORMAT_TYPE
};
#define COM_ROWFORMAT_LIT_LEN 2
#define COM_UNKNOWN_FORMAT_LIT " "
#define COM_ALIGNED_FORMAT_LIT "AF"
#define COM_HBASE_FORMAT_LIT "HF"
#define COM_HBASE_STR_FORMAT_LIT "HS"
// table load action: regular, SET or MULTISET.
// Regular: will error out if duplicate key is inserted.
// SET: will silently ignore duplicate rows on insert.
// Error will not be returned.
// MULTISET: will allow duplicate rows by adding a SYSKEY.
// This option not currently supported.
enum ComInsertMode { COM_UNKNOWN_TABLE_INSERT_MODE,
COM_REGULAR_TABLE_INSERT_MODE // reject dups
, COM_SET_TABLE_INSERT_MODE // discard/ignore dups
, COM_MULTISET_TABLE_INSERT_MODE // allow dups
};
#define COM_INSERT_MODE_LIT_LEN 2
#define COM_UNKNOWN_TABLE_INSERT_MODE_LIT " "
#define COM_REGULAR_TABLE_INSERT_MODE_LIT "RD"
#define COM_SET_TABLE_INSERT_MODE_LIT "DD"
#define COM_MULTISET_TABLE_INSERT_MODE_LIT "AD"
// The order of ComPrivilegeType matters. As new privileges begin to be used
// they should be added after privileges that are already used. This is so we
// can have code that can check if a privilege is higher than what a certain
// schema version can understand.
enum ComPrivilegeType { COM_UNKNOWN_PRIVILEGE = 0 // must always be first
// Privileges used in schema v2000
, COM_SELECT_PRIVILEGE
, COM_INSERT_PRIVILEGE
, COM_DELETE_PRIVILEGE
, COM_UPDATE_PRIVILEGE
, COM_USAGE_PRIVILEGE
, COM_REFERENCE_PRIVILEGE
, COM_EXECUTE_PRIVILEGE
, COM_DATABASE_ADMINISTRATOR_PRIVILEGE
// Privileges used in schema v2300
, COM_CREATE_PRIVILEGE
, COM_CREATE_TABLE_PRIVILEGE
, COM_CREATE_VIEW_PRIVILEGE
, COM_ALTER_PRIVILEGE
, COM_ALTER_TABLE_PRIVILEGE
// Privileges implemented but not externalized
, COM_CREATE_LIBRARY_PRIVILEGE
, COM_CREATE_MV_PRIVILEGE
, COM_CREATE_PROCEDURE_PRIVILEGE
, COM_CREATE_SYNONYM_PRIVILEGE
, COM_CREATE_TRIGGER_PRIVILEGE
, COM_CREATE_MV_GROUP_PRIVILEGE
, COM_ALTER_LIBRARY_PRIVILEGE
, COM_ALTER_MV_PRIVILEGE
, COM_ALTER_SYNONYM_PRIVILEGE
, COM_ALTER_MV_GROUP_PRIVILEGE
, COM_ALTER_TRIGGER_PRIVILEGE
, COM_ALTER_VIEW_PRIVILEGE
, COM_DROP_PRIVILEGE
, COM_DROP_TABLE_PRIVILEGE
, COM_DROP_LIBRARY_PRIVILEGE
, COM_DROP_MV_PRIVILEGE
, COM_DROP_MV_GROUP_PRIVILEGE
, COM_DROP_PROCEDURE_PRIVILEGE
, COM_DROP_SYNONYM_PRIVILEGE
, COM_DROP_TRIGGER_PRIVILEGE
, COM_DROP_VIEW_PRIVILEGE
// Privileges used in schema v2500
, COM_ALTER_ROUTINE_PRIVILEGE
, COM_ALTER_ROUTINE_ACTION_PRIVILEGE
, COM_CREATE_ROUTINE_PRIVILEGE
, COM_CREATE_ROUTINE_ACTION_PRIVILEGE
, COM_DROP_ROUTINE_PRIVILEGE
, COM_DROP_ROUTINE_ACTION_PRIVILEGE
// Privileges defined for Business Continuity
, COM_BUSINESS_CONTINUITY_PRIVILEGE
, COM_BACKUP_PRIVILEGE
, COM_RESTORE_PRIVILEGE
, COM_ARCHIVE_PRIVILEGE
// The Privileges below are not yet used; the ones that become used should
// be moved to before those that remain unused.
, COM_TRIGGER_PRIVILEGE
, COM_MAINTAIN_PRIVILEGE
, COM_REFRESH_PRIVILEGE
, COM_REORG_PRIVILEGE
, COM_UPDATE_STATS_PRIVILEGE
};
#define COM_PRIVILEGE_LIT_LEN 2
#define COM_UNKNOWN_PRIVILEGE_LIT " "
#define COM_SELECT_PRIVILEGE_LIT "S "
#define COM_INSERT_PRIVILEGE_LIT "I "
#define COM_DELETE_PRIVILEGE_LIT "D "
#define COM_UPDATE_PRIVILEGE_LIT "U "
#define COM_USAGE_PRIVILEGE_LIT "Y "
#define COM_REFERENCE_PRIVILEGE_LIT "R "
#define COM_EXECUTE_PRIVILEGE_LIT "E "
#define COM_ALTER_TABLE_PRIVILEGE_LIT "AB"
#define COM_ALTER_LIBRARY_PRIVILEGE_LIT "AL"
#define COM_ALTER_MV_PRIVILEGE_LIT "AM"
#define COM_ALTER_SYNONYM_PRIVILEGE_LIT "AS"
#define COM_ALTER_VIEW_PRIVILEGE_LIT "AV"
#define COM_TRIGGER_PRIVILEGE_LIT "T "
#define COM_MAINTAIN_PRIVILEGE_LIT "M "
#define COM_REFRESH_PRIVILEGE_LIT "RF"
#define COM_REORG_PRIVILEGE_LIT "RO"
#define COM_UPDATE_STATS_PRIVILEGE_LIT "US"
// ADDITIONAL PRIVILEGES LITs FOR SCHEMA PRIVILEGES TABLE
#define COM_DATABASE_ADMINISTRATOR_PRIVILEGE_LIT "AD"
#define COM_ALTER_PRIVILEGE_LIT "A "
#define COM_ALTER_TRIGGER_PRIVILEGE_LIT "AT"
#define COM_ALTER_MV_GROUP_PRIVILEGE_LIT "AG"
#define COM_ALTER_ROUTINE_PRIVILEGE_LIT "AR"
#define COM_ALTER_ROUTINE_ACTION_PRIVILEGE_LIT "AA"
#define COM_CREATE_PRIVILEGE_LIT "C "
#define COM_CREATE_TABLE_PRIVILEGE_LIT "CB"
#define COM_CREATE_LIBRARY_PRIVILEGE_LIT "CL"
#define COM_CREATE_MV_PRIVILEGE_LIT "CM"
#define COM_CREATE_PROCEDURE_PRIVILEGE_LIT "CP"
#define COM_CREATE_SYNONYM_PRIVILEGE_LIT "CS"
#define COM_CREATE_TRIGGER_PRIVILEGE_LIT "CT"
#define COM_CREATE_VIEW_PRIVILEGE_LIT "CV"
#define COM_CREATE_MV_GROUP_PRIVILEGE_LIT "CG"
#define COM_CREATE_ROUTINE_PRIVILEGE_LIT "CR"
#define COM_CREATE_ROUTINE_ACTION_PRIVILEGE_LIT "CA"
#define COM_DROP_PRIVILEGE_LIT "DR"
#define COM_DROP_TABLE_PRIVILEGE_LIT "DB"
#define COM_DROP_LIBRARY_PRIVILEGE_LIT "DL"
#define COM_DROP_MV_PRIVILEGE_LIT "DM"
#define COM_DROP_MV_GROUP_PRIVILEGE_LIT "DG"
#define COM_DROP_PROCEDURE_PRIVILEGE_LIT "DP"
#define COM_DROP_ROUTINE_PRIVILEGE_LIT "DD"
#define COM_DROP_ROUTINE_ACTION_PRIVILEGE_LIT "DA"
#define COM_DROP_SYNONYM_PRIVILEGE_LIT "DS"
#define COM_DROP_TRIGGER_PRIVILEGE_LIT "DT"
#define COM_DROP_VIEW_PRIVILEGE_LIT "DV"
#define COM_BUSINESS_CONTINUITY_PRIVILEGE_LIT "BC"
#define COM_BACKUP_PRIVILEGE_LIT "BA"
#define COM_RESTORE_PRIVILEGE_LIT "RS"
#define COM_ARCHIVE_PRIVILEGE_LIT "AC"
// Values for Query Invalidation
enum ComQIActionType { COM_QI_INVALID_ACTIONTYPE = 0
, COM_QI_USER_GRANT_ROLE
, COM_QI_ROLE_GRANT_ROLE
, COM_QI_OBJECT_SELECT
, COM_QI_OBJECT_INSERT
, COM_QI_OBJECT_DELETE
, COM_QI_OBJECT_UPDATE
, COM_QI_OBJECT_USAGE
, COM_QI_OBJECT_REFERENCES
, COM_QI_SCHEMA_SELECT
, COM_QI_SCHEMA_INSERT
, COM_QI_SCHEMA_DELETE
, COM_QI_SCHEMA_UPDATE
, COM_QI_SCHEMA_USAGE
, COM_QI_SCHEMA_REFERENCES
, COM_QI_OBJECT_EXECUTE
, COM_QI_SCHEMA_EXECUTE
, COM_QI_USER_GRANT_SPECIAL_ROLE
, COM_QI_OBJECT_REDEF
, COM_QI_STATS_UPDATED
, COM_QI_GRANT_ROLE
} ;
#define COM_QI_INVALID_ACTIONTYPE_LIT " "
#define COM_QI_USER_GRANT_ROLE_LIT "UR"
#define COM_QI_ROLE_GRANT_ROLE_LIT "RR"
#define COM_QI_OBJECT_SELECT_LIT "OS"
#define COM_QI_OBJECT_INSERT_LIT "OI"
#define COM_QI_OBJECT_DELETE_LIT "OD"
#define COM_QI_OBJECT_UPDATE_LIT "OU"
#define COM_QI_OBJECT_USAGE_LIT "OG"
#define COM_QI_OBJECT_REFERENCES_LIT "OF"
#define COM_QI_SCHEMA_SELECT_LIT "SS"
#define COM_QI_SCHEMA_INSERT_LIT "SI"
#define COM_QI_SCHEMA_DELETE_LIT "SD"
#define COM_QI_SCHEMA_UPDATE_LIT "SU"
#define COM_QI_SCHEMA_USAGE_LIT "SG"
#define COM_QI_SCHEMA_REFERENCES_LIT "SF"
#define COM_QI_OBJECT_EXECUTE_LIT "OE"
#define COM_QI_SCHEMA_EXECUTE_LIT "SE"
#define COM_QI_USER_GRANT_SPECIAL_ROLE_LIT "UZ"
#define COM_QI_OBJECT_REDEF_LIT "OR"
#define COM_QI_STATS_UPDATED_LIT "US"
#define COM_QI_GRANT_ROLE_LIT "GG"
enum ComRCDeleteRule { COM_UNKNOWN_DELETE_RULE
, COM_CASCADE_DELETE_RULE
, COM_NO_ACTION_DELETE_RULE
, COM_SET_DEFAULT_DELETE_RULE
, COM_SET_NULL_DELETE_RULE
, COM_RESTRICT_DELETE_RULE
};
#define COM_UNKNOWN_DELETE_RULE_LIT " "
#define COM_CASCADE_DELETE_RULE_LIT "CA"
#define COM_NO_ACTION_DELETE_RULE_LIT "NA"
#define COM_SET_DEFAULT_DELETE_RULE_LIT "SD"
#define COM_SET_NULL_DELETE_RULE_LIT "SN"
#define COM_RESTRICT_DELETE_RULE_LIT "RE"
enum ComRCMatchOption { COM_UNKNOWN_MATCH_OPTION
, COM_FULL_MATCH_OPTION
, COM_NONE_MATCH_OPTION
, COM_PARTIAL_MATCH_OPTION
};
#define COM_UNKNOWN_MATCH_OPTION_LIT " "
#define COM_FULL_MATCH_OPTION_LIT "F "
#define COM_NONE_MATCH_OPTION_LIT "N "
#define COM_PARTIAL_MATCH_OPTION_LIT "P "
enum ComRCUpdateRule { COM_UNKNOWN_UPDATE_RULE
, COM_CASCADE_UPDATE_RULE
, COM_NO_ACTION_UPDATE_RULE
, COM_SET_DEFAULT_UPDATE_RULE
, COM_SET_NULL_UPDATE_RULE
, COM_RESTRICT_UPDATE_RULE
};
#define COM_UNKNOWN_UPDATE_RULE_LIT " "
#define COM_CASCADE_UPDATE_RULE_LIT "CA"
#define COM_NO_ACTION_UPDATE_RULE_LIT "NA"
#define COM_SET_DEFAULT_UPDATE_RULE_LIT "SD"
#define COM_SET_NULL_UPDATE_RULE_LIT "SN"
#define COM_RESTRICT_UPDATE_RULE_LIT "RE"
enum ComRoutineLanguage { COM_UNKNOWN_ROUTINE_LANGUAGE
, COM_LANGUAGE_JAVA
, COM_LANGUAGE_C
, COM_LANGUAGE_CPP
, COM_LANGUAGE_SQL
};
#define COM_UNKNOWN_ROUTINE_LANGUAGE_LIT " "
#define COM_LANGUAGE_JAVA_LIT "J "
#define COM_LANGUAGE_C_LIT "C "
#define COM_LANGUAGE_CPP_LIT "C+"
#define COM_LANGUAGE_SQL_LIT "S "
// Parameter passing styles for stored procedures and user-defined
// functions.
enum ComRoutineParamStyle { COM_UNKNOWN_ROUTINE_PARAM_STYLE
, COM_STYLE_GENERAL
, COM_STYLE_JAVA_CALL
, COM_STYLE_JAVA_OBJ
, COM_STYLE_SQL
, COM_STYLE_SQLROW
, COM_STYLE_SQLROW_TM
, COM_STYLE_CPP_OBJ
};
#define COM_UNKNOWN_ROUTINE_PARAM_STYLE_LIT " "
#define COM_STYLE_GENERAL_LIT "G "
#define COM_STYLE_JAVA_CALL_LIT "J "
#define COM_STYLE_JAVA_OBJ_LIT "JO"
#define COM_STYLE_SQL_LIT "S "
#define COM_STYLE_SQLROW_LIT "SR"
#define COM_STYLE_SQLROW_TM_LIT "TM"
#define COM_STYLE_CPP_OBJ_LIT "C+"
#define COM_UNKNOWN_ROUTINE_PARAM_STYLE_VERSION 0
#define COM_ROUTINE_PARAM_STYLE_VERSION_1 1
// Routine parallelism attribute
enum ComRoutineParallelism { COM_ROUTINE_NO_PARALLELISM
, COM_ROUTINE_ANY_PARALLELISM
};
#define COM_ROUTINE_NO_PARALLELISM_LIT "NO"
#define COM_ROUTINE_ANY_PARALLELISM_LIT "AP"
// Routine security attribute for definer/invoker rights
enum ComRoutineExternalSecurity { COM_ROUTINE_EXTERNAL_SECURITY_INVOKER // the default
, COM_ROUTINE_EXTERNAL_SECURITY_DEFINER
, COM_ROUTINE_EXTERNAL_SECURITY_IMPLEMENTATION_DEFINED
};
#define COM_ROUTINE_EXTERNAL_SECURITY_INVOKER_LIT "I "
#define COM_ROUTINE_EXTERNAL_SECURITY_DEFINER_LIT "D "
#define COM_ROUTINE_EXTERNAL_SECURITY_IMPLEMENTATION_DEFINED_LIT "X "
// Routine pass through input value type: either TEXT or BINARY
enum ComRoutinePassThroughInputType { COM_ROUTINE_PASS_THROUGH_INPUT_TEXT_TYPE
, COM_ROUTINE_PASS_THROUGH_INPUT_BINARY_TYPE
};
#define COM_ROUTINE_PASS_THROUGH_INPUT_TEXT_TYPE_LIT "TEXT"
#define COM_ROUTINE_PASS_THROUGH_INPUT_BINARY_TYPE_LIT "BINARY"
// Do not change the following order of definitions
// because they are used for indexing into an array.
enum ComRoutinePTIAttrKind { COM_ROUTINE_PTI_ATTR_KIND_PASS_THROUGH_INPUT_TYPE
, COM_ROUTINE_PTI_ATTR_KIND_VALUE_ENCODING_VERSION
, COM_ROUTINE_PTI_ATTR_KIND_UNKNOWN
};
enum ComRoutinePTIAttrValueKind { COM_ROUTINE_PTI_ATTR_VALUE_KIND_WORD
, COM_ROUTINE_PTI_ATTR_VALUE_KIND_NUMBER
, COM_ROUTINE_PTI_ATTR_VALUE_KIND_UNKNOWN
};
#define COM_ROUTINE_PTI_ATTR_NAME_TYPE_LIT "TYPE="
#define COM_ROUTINE_PTI_ATTR_NAME_ENCODED_LIT "ENCODED="
enum ComUdrParamFlags
{
UDR_PARAM_IN = 0x0001, // For IN and INOUT parameters
UDR_PARAM_OUT = 0x0002, // For OUT and INOUT parameters
UDR_PARAM_NULLABLE = 0x0004, // The parameter type is nullable
UDR_PARAM_LM_OBJ_TYPE = 0x0008 // If set the Language Manager will
// map the SQL type to an external type
// using its "object mapping" instead of
// the default mapping. This allows, for
// example, the SQL INTEGER type to map
// to either int or java.lang.Integer in
// Java.
};
enum ComUdrFlags
{
UDR_ISOLATE = 0x0001, // Cannot run in priv mode
UDR_CALL_ON_NULL = 0x0002, // OK to invoke if an input is NULL
UDR_EXTRA_CALL = 0x0004, // UDR expects a cleanup call
UDR_FINAL_CALL = UDR_EXTRA_CALL, // FINAL CALL and EXTRA CALL
// mean the same thing. EXTRA
// CALL is deprecated.
UDR_DETERMINISTIC = 0x0008, // Always same outputs given same inputs
UDR_LM_NOLOAD = 0x0010, // Don't load Language Manager at startup
UDR_RESETSTATS = 0x0020, // Reset UDR Server statistics
UDR_RESULT_SET = 0x0040, // Differentiate TDB/TCB for result sets
UDR_TMUDF = 0x0080 // This is a table mapping udf
};
enum ComRoutineSQLAccess { COM_UNKNOWN_ROUTINE_SQL_ACCESS
, COM_NO_SQL
, COM_CONTAINS_SQL
, COM_READS_SQL
, COM_MODIFIES_SQL
};
#define COM_UNKNOWN_ROUTINE_SQL_ACCESS_LIT " "
#define COM_NO_SQL_LIT "N "
#define COM_CONTAINS_SQL_LIT "C "
#define COM_READS_SQL_LIT "R "
#define COM_MODIFIES_SQL_LIT "M "
enum ComRoutineTransactionAttributes { COM_UNKNOWN_ROUTINE_TRANSACTION_ATTRIBUTE
, COM_NO_TRANSACTION_REQUIRED
, COM_TRANSACTION_REQUIRED
};
#define COM_UNKNOWN_ROUTINE_TRANSACTION_ATTRIBUTE_LIT " "
#define COM_NO_TRANSACTION_REQUIRED_LIT "NO"
#define COM_TRANSACTION_REQUIRED_LIT "RQ"
enum ComRoutineType { COM_UNKNOWN_ROUTINE_TYPE
, COM_PROCEDURE_TYPE
, COM_SCALAR_UDF_TYPE
, COM_TABLE_UDF_TYPE
, COM_UNIVERSAL_UDF_TYPE
, COM_ACTION_UDF_TYPE
};
#define COM_UNKNOWN_ROUTINE_TYPE_LIT " "
#define COM_PROCEDURE_TYPE_LIT "P "
#define COM_SCALAR_UDF_TYPE_LIT "F "
#define COM_TABLE_UDF_TYPE_LIT "T "
#define COM_UNIVERSAL_UDF_TYPE_LIT "U "
#define COM_ACTION_UDF_TYPE_LIT "AC"
// Routine execution mode
enum ComRoutineExecutionMode { COM_ROUTINE_FAST_EXECUTION
, COM_ROUTINE_SAFE_EXECUTION
};
#define COM_ROUTINE_FAST_EXECUTION_LIT "FA"
#define COM_ROUTINE_SAFE_EXECUTION_LIT "SF"
enum ComUdfOptimizationHintKind { COM_UDF_INITIAL_CPU_COST
, COM_UDF_INITIAL_IO_COST
, COM_UDF_INITIAL_MESSAGE_COST
, COM_UDF_NORMAL_CPU_COST
, COM_UDF_NORMAL_IO_COST
, COM_UDF_NORMAL_MESSAGE_COST
, COM_UDF_NUMBER_OF_UNIQUE_OUTPUT_VALUES
};
enum ComUudfParamKind { COM_UUDF_PARAM_OMITTED
, COM_UUDF_PARAM_ACTION
, COM_UUDF_PARAM_SAS_FORMAT
, COM_UUDF_PARAM_SAS_LOCALE
, COM_UUDF_PARAM_SAS_MODEL_INPUT_TABLE
};
#define COM_UUDF_PARAM_OMITTED_LIT ""
#define COM_UUDF_PARAM_ACTION_LIT "ACTION"
#define COM_UUDF_PARAM_SAS_FORMAT_LIT "SAS_FORMAT"
#define COM_UUDF_PARAM_SAS_LOCALE_LIT "SAS_LOCALE"
#define COM_UUDF_PARAM_SAS_MODEL_INPUT_TABLE_LIT "SAS_MODEL_INPUT_TABLE"
enum ComStoreOption { COM_UNKNOWN_STORE_OPTION
, COM_ENTRY_ORDER_STORE_OPTION
, COM_KEY_COLUMN_LIST_STORE_OPTION
, COM_NONDROPPABLE_PK_STORE_OPTION
, COM_RELATIVE_ORDER_STORE_OPTION
};
// Exception table enums
enum ComExceptionTableType { COM_UNKNOWN_EXCEPTION_TABLE_TYPE
, COM_VALIDATE_EXCEPTION_TABLE_TYPE
};
#define COM_UNKNOWN_EXCEPTION_TABLE_TYPE_LIT " "
#define COM_VALIDATE_EXCEPTION_TABLE_TYPE_LIT "VD"
// [Distribution] Literals & defines for replication rules
enum ComReplicationRule { COM_UNKNOWN_REPLICATION,
COM_AUTOMATIC_REPLICATION,
COM_MANUAL_REPLICATION};
#define COM_UNKNOWN_REPLICATION_LIT " "
#define COM_AUTOMATIC_REPLICATION_LIT "A "
#define COM_MANUAL_REPLICATION_LIT "M "
// [Distribution/Versioning] Literals & defines for future schema level operations
enum ComSchemaOperation { COM_NO_SCHEMA_OPERATION,
COM_UPGRADE_OPERATION,
COM_DOWNGRADE_OPERATION,
COM_VOLATILE_SCHEMA_OPERATION,
COM_DISABLE_CREATE_OPERATION,
COM_UNKNOWN_SCHEMA_OPERATION};
#define COM_NO_SCHEMA_OPERATION_LIT " "
#define COM_UPGRADE_OPERATION_LIT "UG"
#define COM_DOWNGRADE_OPERATION_LIT "DG"
#define COM_VOLATILE_SCHEMA_OPERATION_LIT "VS"
#define COM_DISABLE_CREATE_OPERATION_LIT "DC"
#define COM_UNKNOWN_SCHEMA_OPERATION_LIT "??"
//Schema Type
enum ComSchemaType { COM_USER_TYPE,
COM_PUBLIC_TYPE,
COM_SYSTEM_TYPE};
#define COM_USER_TYPE_LIT "U"
#define COM_PUBLIC_TYPE_LIT "P"
#define COM_SYSTEM_TYPE_LIT "S"
//Schema Class
enum ComSchemaClass { COM_SCHEMA_CLASS_UNKNOWN = 2,
COM_SCHEMA_CLASS_PRIVATE = 3,
COM_SCHEMA_CLASS_SHARED = 4,
COM_SCHEMA_CLASS_DEFAULT = 5
};
enum ComSQLDataType { COM_UNKNOWN_SDT
, COM_CHARACTER_SDT
, COM_VARCHAR_SDT
, COM_LONG_VARCHAR_SDT
, COM_BPINT_UNSIGNED_SDT
, COM_NUMERIC_SIGNED_SDT
, COM_NUMERIC_UNSIGNED_SDT
, COM_TINYINT_SIGNED_SDT
, COM_TINYINT_UNSIGNED_SDT
, COM_SMALLINT_SIGNED_SDT
, COM_SMALLINT_UNSIGNED_SDT
, COM_INTEGER_SIGNED_SDT
, COM_INTEGER_UNSIGNED_SDT
, COM_LARGEINT_SIGNED_SDT
, COM_LARGEINT_UNSIGNED_SDT
, COM_FLOAT_SDT
, COM_REAL_SDT
, COM_DOUBLE_SDT
, COM_DECIMAL_SIGNED_SDT
, COM_DECIMAL_UNSIGNED_SDT
, COM_LARGE_DECIMAL_SIGNED_SDT
, COM_LARGE_DECIMAL_UNSIGNED_SDT
, COM_BLOB_SDT
, COM_CLOB_SDT
, COM_BOOLEAN_SDT
, COM_DATETIME_SDT
, COM_TIMESTAMP_SDT
, COM_DATE_SDT
, COM_TIME_SDT
, COM_INTERVAL_SDT
};
#define COM_UNKNOWN_SDT_LIT " "
#define COM_CHARACTER_SDT_LIT "CHARACTER "
#define COM_VARCHAR_SDT_LIT "VARCHAR "
#define COM_LONG_VARCHAR_SDT_LIT "LONG VARCHAR "
#define COM_NUMERIC_SIGNED_SDT_LIT "SIGNED NUMERIC "
#define COM_NUMERIC_UNSIGNED_SDT_LIT "UNSIGNED NUMERIC "
#define COM_TINYINT_SIGNED_SDT_LIT "SIGNED TINYINT "
#define COM_TINYINT_UNSIGNED_SDT_LIT "UNSIGNED TINYINT "
#define COM_SMALLINT_SIGNED_SDT_LIT "SIGNED SMALLINT "
#define COM_SMALLINT_UNSIGNED_SDT_LIT "UNSIGNED SMALLINT "
#define COM_INTEGER_SIGNED_SDT_LIT "SIGNED INTEGER "
#define COM_INTEGER_UNSIGNED_SDT_LIT "UNSIGNED INTEGER "
#define COM_BPINT_UNSIGNED_SDT_LIT "UNSIGNED BP INT "
#define COM_LARGEINT_SIGNED_SDT_LIT "SIGNED LARGEINT "
#define COM_LARGEINT_UNSIGNED_SDT_LIT "UNSIGNED LARGEINT "
#define COM_FLOAT_SDT_LIT "FLOAT "
#define COM_REAL_SDT_LIT "REAL "
#define COM_DOUBLE_SDT_LIT "DOUBLE "
#define COM_DECIMAL_SIGNED_SDT_LIT "SIGNED DECIMAL "
#define COM_DECIMAL_UNSIGNED_SDT_LIT "UNSIGNED DECIMAL "
#define COM_DATETIME_SDT_LIT "DATETIME "
#define COM_TIMESTAMP_SDT_LIT "TIMESTAMP "
#define COM_DATE_SDT_LIT "DATE "
#define COM_TIME_SDT_LIT "TIME "
#define COM_INTERVAL_SDT_LIT "INTERVAL "
#define COM_BLOB_SDT_LIT "BLOB "
#define COM_CLOB_SDT_LIT "CLOB "
#define COM_BOOLEAN_SDT_LIT "BOOLEAN "
enum ComViewCheckOption { COM_UNKNOWN_CHECK_OPTION
, COM_CASCADE_CHECK_OPTION
, COM_LOCAL_CHECK_OPTION
, COM_NONE_CHECK_OPTION
};
#define COM_UNKNOWN_CHECK_OPTION_LIT " "
#define COM_CASCADE_CHECK_OPTION_LIT "C "
#define COM_LOCAL_CHECK_OPTION_LIT "L "
#define COM_NONE_CHECK_OPTION_LIT "N "
// Added in v2500
enum ComViewType { COM_UNKNOWN_VIEW_TYPE
, COM_USER_VIEW_TYPE
, COM_SYSTEM_VIEW_TYPE
};
#define COM_UNKNOWN_VIEW_TYPE_LIT " "
#define COM_USER_VIEW_TYPE_LIT "UV"
#define COM_SYSTEM_VIEW_TYPE_LIT "SV"
enum ComAutoRebindOption { COM_UNKNOWN_RBND_OPTION
, COM_CUR_DEFAULTS_CUR_DEFINES_RBND_OPTION
, COM_STO_DEFAULTS_STO_DEFINES_RBND_OPTION
, COM_CUR_DEFAULTS_STO_DEFINES_RBND_OPTION
, COM_STO_DEFAULTS_CUR_DEFINES_RBND_OPTION
, COM_NONE_RBND_OPTION
};
#define COM_UNKNOWN_RBND_OPTION_LIT " "
#define COM_CUR_DEFAULTS_CUR_DEFINES_RBND_OPTION_LIT "CC"
#define COM_STO_DEFAULTS_STO_DEFINES_RBND_OPTION_LIT "SS"
#define COM_CUR_DEFAULTS_STO_DEFINES_RBND_OPTION_LIT "CS"
#define COM_STO_DEFAULTS_CUR_DEFINES_RBND_OPTION_LIT "SC"
#define COM_NONE_RBND_OPTION_LIT "OF"
enum ComPartnStatus { COM_UNKNOWN_PARTN_STATUS
, COM_PARTN_AVAILABLE
, COM_PARTN_OFFLINE
, COM_PARTN_CORRUPT
, COM_PARTN_PHANTOM};
#define COM_UNKNOWN_PARTN_STATUS_LIT " "
#define COM_PARTN_AVAILABLE_LIT "AV"
#define COM_PARTN_OFFLINE_LIT "UO"
#define COM_PARTN_CORRUPT_LIT "UC"
#define COM_PARTN_PHANTOM_LIT "PH"
enum ComUtilOperation { COM_UNKNOWN_UTIL
, COM_UTIL_BACKUP
, COM_UTIL_DROP_LABEL
, COM_UTIL_DUP
, COM_UTIL_EXPORT
, COM_UTIL_IMPORT
, COM_UTIL_MODIFY_TABLE
, COM_UTIL_MODIFY_INDEX
, COM_UTIL_POPULATE_INDEX
, COM_UTIL_PURGEDATA
, COM_UTIL_RECOVER
, COM_UTIL_RESTORE
, COM_UTIL_UPDATE_STATISTICS
, COM_UTIL_REFRESH
, COM_UTIL_UPDATE_PARTITION_METADATA
, COM_UTIL_ALL_METADATA_UPGRADE
, COM_UTIL_ALL_METADATA_DOWNGRADE
, COM_UTIL_TRANSFORM
, COM_UTIL_VALIDATE
};
#define COM_UNKNOWN_UTIL_LIT " "
#define COM_UTIL_BACKUP_LIT "BK"
#define COM_UTIL_DROP_LABEL_LIT "DL"
#define COM_UTIL_DUP_LIT "DP"
#define COM_UTIL_EXPORT_LIT "EX"
#define COM_UTIL_IMPORT_LIT "IM"
#define COM_UTIL_MODIFY_TABLE_LIT "MT"
#define COM_UTIL_MODIFY_INDEX_LIT "MI"
#define COM_UTIL_POPULATE_INDEX_LIT "PI"
#define COM_UTIL_PURGEDATA_LIT "PD"
#define COM_UTIL_RECOVER_LIT "RC"
#define COM_UTIL_RESTORE_LIT "RS"
#define COM_UTIL_UPDATE_STATISTICS_LIT "US"
#define COM_UTIL_REFRESH_LIT "RF"
#define COM_UTIL_TRANSFORM_LIT "TR"
#define COM_UTIL_UPDATE_PARTITION_METADATA_LIT "UP"
#define COM_UTIL_ALL_METADATA_UPGRADE_LIT "MU"
#define COM_UTIL_ALL_METADATA_DOWNGRADE_LIT "MD"
#define COM_UTIL_VALIDATE_LIT "VA"
enum ComDdlStatus { COM_UNKNOWN_DDL_STATUS
, COM_NO_DDL_IN_PROGRESS
, COM_ROW_HIDING
, COM_KEY_RANGE_CHECKING };
#define COM_UNKNOWN_DDL_STATUS_LIT " "
#define COM_NO_DDL_IN_PROGRESS_LIT "N "
#define COM_ROW_HIDING_LIT "RH"
#define COM_KEY_RANGE_CHECKING_LIT "KR"
// Support for the NOT DROPPABLE and INSERT_ONLY attributes
enum ComTableFeature { COM_UNKNOWN_TABLE_FEATURE
, COM_DROPPABLE
, COM_DROPPABLE_INSERT_ONLY
, COM_NOT_DROPPABLE
, COM_NOT_DROPPABLE_INSERT_ONLY };
#define COM_UNKNOWN_TABLE_FEATURE_LIT " "
#define COM_DROPPABLE_LIT "Y "
#define COM_DROPPABLE_INSERT_ONLY_LIT "YI"
#define COM_NOT_DROPPABLE_LIT "N "
#define COM_NOT_DROPPABLE_INSERT_ONLY_LIT "NI"
enum ComDiskFileFormat { UNKNOWN = 0,
SQLMP = 100, // MP
SQLARK = 200, // simulator
SQLMX = 300 // real MX
};
enum ComLobsStorage {
Lob_Invalid_Storage = 0,
Lob_Local_File = 1,
Lob_HDFS_File = 2,
Lob_HBASE_Table = 3,
Lob_Cloud_File = 4,
Lob_Seaquest_Table = 5,
Lob_MySQL_Table = 6,
Lob_InMemory_File = 7,
Lob_External_HDFS_File = 8,
Lob_External_HBASE_Table = 9,
Lob_External_Local_File = 10,
Lob_Empty = 11
};
// for the TRANSFORM utility - equivalent definitions in catapirequest.h
enum ComTransformDependent { COM_TR_DROP_DEPENDENT
, COM_TR_CASCADE_DEPENDENT
, COM_TR_RECREATE_DEPENDENT
, COM_TR_KEEP_DEPENDENT };
enum ComPrivilegeChecks { COM_PRIV_CHECK_PASS = 0,
COM_PRIV_NO_CHECK = 1,
COM_PRIV_CHECK_FAIL = 2 };
// for serialization of primary keys
enum ComPkeySerialization
{ COM_SER_NOT_SPECIFIED = 0, // not specified, will be set based on
// the table type
COM_SERIALIZED = 1, // pkey is serialized
COM_NOT_SERIALIZED = 2 // pkey is not serialized
};
// DDL Operation literals
#define COM_OP_NONE_LIT " "
#define COM_OP_ALTER_CATALOG_LIT "AC"
#define COM_OP_ALTER_INDEX_LIT "AI"
#define COM_OP_ALTER_LIBRARY_LIT "AL"
#define COM_OP_ALTER_MV_LIT "AM"
#define COM_OP_ALTER_MV_GROUP_LIT "AG"
#define COM_OP_ALTER_PROCEDURE_LIT "AP"
#define COM_OP_ALTER_ROUTINE_LIT "AR"
#define COM_OP_ALTER_ROUTINE_ACTION_LIT "AA"
#define COM_OP_ALTER_TABLE_LIT "AB"
#define COM_OP_ALTER_TRIGGER_LIT "AT"
#define COM_OP_ALTER_VIEW_LIT "AV"
#define COM_OP_CREATE_CATALOG_LIT "CC"
#define COM_OP_CREATE_COMPONENT_LIT "CN"
#define COM_OP_CREATE_COMPONENT_PRIVILEGE_LIT "CO"
#define COM_OP_CREATE_INDEX_LIT "CI"
#define COM_OP_CREATE_LIBRARY_LIT "CL"
#define COM_OP_CREATE_MV_LIT "CM"
#define COM_OP_CREATE_MV_GROUP_LIT "CG"
#define COM_OP_CREATE_PROCEDURE_LIT "CP"
#define COM_OP_CREATE_ROLE_LIT "CE"
#define COM_OP_CREATE_ROUTINE_LIT "CR"
#define COM_OP_CREATE_ROUTINE_ACTION_LIT "CA"
#define COM_OP_CREATE_SCHEMA_LIT "CH"
#define COM_OP_CREATE_TABLE_LIT "CB"
#define COM_OP_CREATE_TRIGGER_LIT "CT"
#define COM_OP_CREATE_VIEW_LIT "CV"
#define COM_OP_DROP_CATALOG_LIT "DC"
#define COM_OP_DROP_COMPONENT_LIT "DN"
#define COM_OP_DROP_COMPONENT_PRIVILEGE_LIT "DO"
#define COM_OP_DROP_INDEX_LIT "DI"
#define COM_OP_DROP_LIBRARY_LIT "DL"
#define COM_OP_DROP_MV_LIT "DM"
#define COM_OP_DROP_MV_GROUP_LIT "DG"
#define COM_OP_DROP_PROCEDURE_LIT "DP"
#define COM_OP_DROP_ROLE_LIT "DE"
#define COM_OP_DROP_ROUTINE_LIT "DR"
#define COM_OP_DROP_ROUTINE_ACTION_LIT "DA"
#define COM_OP_DROP_SCHEMA_LIT "DH"
#define COM_OP_DROP_TABLE_LIT "DB"
#define COM_OP_DROP_TRIGGER_LIT "DT"
#define COM_OP_DROP_VIEW_LIT "DV"
#define COM_OP_REGISTER_COMPONENT_LIT "RC"
#define COM_OP_UNREGISTER_COMPONENT_LIT "UC"
// DDL Suboperation literals
#define COM_SUBOP_NONE_LIT " "
#define COM_SUBOP_ADD_COLUMN_LIT "A "
#define COM_SUBOP_ADD_CHECK_CONSTRAINT_LIT "AC"
#define COM_SUBOP_ADD_INFORMATION_LIT "AD"
#define COM_SUBOP_ADD_RI_CONSTRAINT_LIT "AF"
#define COM_SUBOP_ADD_PK_CONSTRAINT_LIT "AP"
#define COM_SUBOP_ALTER_ATTRIBUTE_LIT "AT"
#define COM_SUBOP_ADD_UNIQUE_CONSTRAINT_LIT "AU"
#define COM_SUBOP_ALTER_COLUMN_SG_OPTION_LIT "CG"
#define COM_SUBOP_ALTER_COLUMN_RECALIBRATE_LIT "CR"
#define COM_SUBOP_CASCADE_LIT "CS"
#define COM_SUBOP_CASCADE_INVALIDATE_LIT "CI"
#define COM_SUBOP_COMPILE_LIT "CM"
#define COM_SUBOP_DROP_CHECK_CONSTRAINT_LIT "DC"
#define COM_SUBOP_DROP_RI_CONSTRAINT_LIT "DF"
#define COM_SUBOP_DISABLE_LIT "DI"
#define COM_SUBOP_DROP_PK_CONSTRAINT_LIT "DP"
#define COM_SUBOP_DROP_UNIQUE_CONSTRAINT_LIT "DU"
#define COM_SUBOP_ENABLE_LIT "EN"
#define COM_SUBOP_REMOVE_INFORMATION_LIT "RM"
#define COM_SUBOP_RENAME_LIT "RN"
#define COM_SUBOP_RESTRICT_LIT "RS"
#define COM_SUBOP_UNIQUE_LIT "UQ"
// Audit object literals
#define COM_AUD_UNKNOWN_OBJECT_LIT " "
#define COM_AUD_BASE_TABLE_OBJECT_LIT COM_BASE_TABLE_OBJECT_LIT
#define COM_AUD_CATALOG_OBJECT_LIT "CA"
#define COM_AUD_COMPONENT_OBJECT_LIT "CO"
#define COM_AUD_COMPONENT_PRIVILEGE_OBJECT_LIT "CP"
#define COM_AUD_INDEX_OBJECT_LIT COM_INDEX_OBJECT_LIT
#define COM_AUD_LIBRARY_OBJECT_LIT COM_LIBRARY_OBJECT_LIT
#define COM_AUD_MV_OBJECT_LIT COM_MV_OBJECT_LIT
#define COM_AUD_MVRG_OBJECT_LIT COM_MVRG_OBJECT_LIT
#define COM_AUD_ROLE_OBJECT_LIT "RO"
#define COM_AUD_ROUTINE_ACTION_OBJECT_LIT "RA"
#define COM_AUD_SCHEMA_OBJECT_LIT "SC"
#define COM_AUD_STORED_PROCEDURE_OBJECT_LIT COM_STORED_PROCEDURE_OBJECT_LIT
#define COM_AUD_TRIGGER_OBJECT_LIT COM_TRIGGER_OBJECT_LIT
#define COM_AUD_USER_DEFINED_ROUTINE_OBJECT_LIT COM_USER_DEFINED_ROUTINE_OBJECT_LIT
#define COM_AUD_VIEW_OBJECT_LIT COM_VIEW_OBJECT_LIT
// for parsing and implementing authentication option for Register User
enum ComAuthenticationType{
COM_UNKNOWN_AUTH,
COM_PRIMARY_AUTH,
COM_SECONDARY_AUTH,
COM_DEFAULT_AUTH
};
// Security Audit Logging Object Changes Operations Literals
#define COM_DBS_OBJ_CHGS_CREATE_TABLE_LIT "CT"
// Security Audit Logging Object-specific Object Subtypes
#define COM_DBS_OBJ_CHGS_NO_SUBTYPE_LIT "NS"
// Security Audit Logging User Management Operations Literals
#define COM_DBS_USER_MGMT_ALTER_USER_LIT "AU"
#define COM_DBS_USER_MGMT_ALTER_USER_SET_IMMUTABLE_LIT "SI"
#define COM_DBS_USER_MGMT_ALTER_USER_RESET_IMMUTABLE_LIT "RI"
#define COM_DBS_USER_MGMT_ALTER_USER_SET_LOGON_ROLE_LIT "LR"
#define COM_DBS_USER_MGMT_ALTER_USER_SET_EXTERNAL_NAME_LIT "EN"
#define COM_DBS_USER_MGMT_ALTER_USER_SET_IS_VALID_USER_LIT "IV" // online
#define COM_DBS_USER_MGMT_ALTER_USER_SET_IS_NOT_VALID_USER_LIT "NV" // offline
#define COM_DBS_USER_MGMT_ALTER_USER_SET_AUTH_LIT "AT"
#define COM_DBS_USER_MGMT_ALTER_USER_SET_UNKNOWN_SUB_OP_LIT "UN"
#define COM_DBS_USER_MGMT_REGISTER_USER_LIT "RU"
#define COM_DBS_USER_MGMT_UNREGISTER_USER_LIT "UR"
#define COM_DBS_USER_MGMT_REGISTER_NEO_ROLE_LIT "NR"
#define COM_DBS_USER_MGMT_CREATE_ROLE_LIT "CR"
#define COM_DBS_USER_MGMT_DROP_ROLE_LIT "DR"
#define COM_DBS_USER_MGMT_GRANT_ROLE_LIT "GR"
#define COM_DBS_USER_MGMT_REVOKE_ROLE_LIT "RR"
#define COM_DBS_USER_MGMT_WITH_GRANT_LIT "WG"
#define COM_DBS_USER_MGMT_WITHOUT_GRANT_LIT "NG"
// Boolean Literals
#define COM_DBS_SUCCEED_LIT "S"
#define COM_DBS_FAIL_LIT "F"
#define COM_DBS_YES_LIT "Y"
#define COM_DBS_NO_LIT "N"
// used with removeNATable for QI support
enum ComQiScope
{
REMOVE_FROM_ALL_USERS = 100,
REMOVE_MINE_ONLY
};
//
// (Maximum) size of TEXT.TEXT metadata column in bytes (for NSK) or NAWchars (for SeaQuest)
//
#ifndef COM_TEXT__TEXT__MD_COL_MAX_SIZE
#define COM_TEXT__TEXT__MD_COL_MAX_SIZE 3000
#endif // ! defined(COM_TEXT__TEXT__MD_COL_MAX_SIZE)
// max size 16Mb
#define MAX_CHAR_COL_LENGTH_IN_BYTES 16777216
#define MAX_CHAR_COL_LENGTH_IN_BYTES_STR "16777216"
enum BMOQuotaRatio
{
NO_RATIO = -1,
MIN_QUOTA = 0,
MAX_QUOTA = 1
};
//
// Definition of class ComUID
//
class ComUID
{
friend void print_ComUID_with_text(FILE *fp, char *text, ComUID value);
friend ComUID read_ComUID_with_text(FILE *fp, char *text);
friend ostream & operator<<(ostream &s, const ComUID &uid);
public:
// constructors
ComUID()
{
data = Int64(0L);
}
ComUID(const Int64 num)
{
data = num;
}
// ---------------------------------------------------------------------
// Compare.
// ---------------------------------------------------------------------
short operator==(const ComUID& value) const
{
return (data == value.data);
}
short operator!=(const ComUID& value) const
{
return (data != value.data);
}
short operator<(const ComUID& value) const
{
return (data < value.data);
}
short operator<=(const ComUID& value) const
{
return (data <= value.data);
}
short operator>(const ComUID& value) const
{
return (data > value.data);
}
short operator>=(const ComUID& value) const
{
return (data >= value.data);
}
void make_UID();
ComBoolean is_valid_UID() const
{
if (this->data == Int64(Lng32(0)))
return FALSE;
else
return TRUE;
} ;
Int64 get_value() const
{
return data;
} ;
Int64 getKey() const
{
return data;
} ;
Int64 castToInt64()
{
return data;
}
inline const Int64 castToInt64() const
{
return data;
}
void convertTo19BytesFixedWidthStringWithZeroesPrefix (ComString &out) const;
protected:
Int64 data;
};
Int64 ComSmallDef_local_GetTimeStamp();
void print_ComUID_with_text(FILE *fp, char *text, ComUID value);
ComUID read_ComUID_with_text(FILE *fp, char *text);
ostream & operator<<(ostream &s, const ComUID &uid);
const char* comObjectTypeLit(ComObjectType objType);
const char* comObjectTypeName(ComObjectType objType);
#endif // COMSMALLDEFS_H