Feature Matrix
This chapter briefly describes the features added to each major version.
Architecture
System Architecture
The following is a feature matrix for system architecture.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
Shared Nothing Cluster | X | X | O | O |
DA (Direct Attach) | O | O | O | O |
JDBC DA (Direct Attach) | X | X | O | O |
C/S (Client/Server) Dedicated | X | O | O | O |
C/S (Client/Server) Shared | X | O | O | O |
multi-process applications | O | O | O | O |
multi-threaded applications | O | O | O | O |
Linux platform | O | O | O | O |
HP platform | X | O | O | O |
AIX platform | X | O | O | O |
Windows Client Platform | X | O | O | O |
CDC(Change Data Capture) replication | X | O | O | O |
CDC replication with log mirror | X | O | O | O |
multi-level start up | X | O | O | O |
parallel database loading | O | O | O | O |
parallel index build | X | O | O | O |
SQL plan cache | X | O | O | O |
Storage Internal
The following is a feature matrix for storage internal.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
memory dictionary tablespace | O | O | O | O |
memory data tablespace | O | O | O | O |
memory undo tablespace | O | O | O | O |
memory temporary tablespace | X | O | O | O |
memory bitmap data segment | O | O | O | O |
memory bitmap undo segment | O | O | O | O |
memory bitmap instant segment | X | O | O | O |
memory heap table | O | O | O | O |
memory instant table | X | O | O | O |
memory B-tree index | O | O | O | O |
memory instant B-tree | X | O | O | O |
memory instant hash | X | O | O | O |
global secondary index | X | X | O | O |
Transaction Control
The following is a feature matrix for transaction control.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
CDS(Concurrency Data Store) database mode | O | O | O | O |
TDS(Transactional Data Store) database mode | O | O | O | O |
read-only database | X | O | O | O |
read/write database | O | O | O | O |
flat transaction | O | O | O | O |
distributed transaction | X | O | O | O |
read-only transaction | X | O | O | O |
read/write transaction | O | O | O | O |
READ COMMITTED isolation level | O | O | O | O |
SERIALIZABLE isolation level with SELECT FOR UPDATE | O | O | O | O |
MVCC(Multi Version Concurrency Control) | O | O | O | O |
multi-version read consistency | O | O | O | O |
multi-statement consistent read | O | O | O | O |
implicit lock for DML | O | O | O | O |
writer don't blocks readers | O | O | O | O |
row-level locking | O | O | O | O |
deadlock detection | O | O | O | O |
deadlock resolution | O | O | O | O |
lock granularity | O | O | O | O |
read lock | O | O | O | O |
write lock | O | O | O | O |
intention lock | O | O | O | O |
WAL(Write Ahead Logging) | O | O | O | O |
repeat history | O | O | O | O |
restart recovery | O | O | O | O |
circular logging | O | O | O | O |
buffered logging | O | O | O | O |
logging group | X | O | O | O |
supplemental logging | X | O | O | O |
mirrored logging | X | O | O | O |
synchronous commit | O | O | O | O |
asynchronous commit | O | O | O | O |
grouped commit | O | O | O | O |
total rollback | O | O | O | O |
implicit statement rollback | O | O | O | O |
savepoint management | X | O | O | O |
Backup & Recovery
The following is a feature matrix for backup & recovery.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
off-line backup | O | O | O | O |
on-line backup | X | O | O | O |
full backup | X | O | O | O |
incremental backup | X | O | O | O |
complete recovery | O | O | O | O |
incomplete recovery | X | O | O | O |
auto instance recovery | O | O | O | O |
tablespace recovery | X | O | O | O |
file recovery | X | O | O | O |
Database Information
DICTIONARY_SCHEMA Schema
The following is a feature matrix for DICTIONARY_SCHEMA schema.
Family | Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|---|
Views of ALL_family | ALL_ALL_TABLES | X | O | O | O |
ALL_ARGUMENTS | X | X | O | O | |
ALL_CATALOG | X | O | O | O | |
ALL_CLUSTER_TABLES | X | X | O | O | |
ALL_COL_COMMENTS | X | O | O | O | |
ALL_COL_PLACE | X | X | O | X | |
ALL_COL_PRIVS | X | O | O | O | |
ALL_COL_PRIVS_MADE | X | O | O | O | |
ALL_COL_PRIVS_RECD | X | O | O | O | |
ALL_CONSTRAINTS | X | O | O | O | |
ALL_CONS_COLUMNS | X | O | O | O | |
ALL_DB_PRIVS | X | O | O | O | |
ALL_DB_PRIVS_MADE | X | O | O | O | |
ALL_DB_PRIVS_RECD | X | O | O | O | |
ALL_DEPENDENCIES | X | X | O | O | |
ALL_GLOBAL_SECONDARY_INDEXES | X | X | O | O | |
ALL_GSI_PLACE | X | X | O | O | |
ALL_INDEXES | X | O | O | O | |
ALL_IND_COLUMNS | X | O | O | O | |
ALL_IND_PLACE | X | X | O | O | |
ALL_NONSCHEMA_COMMENTS | X | O | O | O | |
ALL_OBJECTS | X | O | O | O | |
ALL_PROCEDURES | X | X | O | O | |
ALL_PROC_PRIVS | X | X | O | O | |
ALL_PROC_PRIV_MADE | X | X | O | O | |
ALL_PROC_PRIV_RECD | X | X | O | O | |
ALL_SCHEMAS | X | O | O | O | |
ALL_SCHEMA_PATH | X | O | O | O | |
ALL_SCHEMA_PRIVS | X | O | O | O | |
ALL_SCHEMA_PRIVS_MADE | X | O | O | O | |
ALL_SCHEMA_PRIVS_RECD | X | O | O | O | |
ALL_SEQUENCES | X | O | O | O | |
ALL_SEQ_PRIVS | X | O | O | O | |
ALL_SEQ_PRIVS_MADE | X | O | O | O | |
ALL_SEQ_PRIVS_RECD | X | O | O | O | |
ALL_SHARD_KEY_COLUMNS | X | X | O | O | |
ALL_SOURCE | X | X | O | O | |
ALL_SYNONYMS | X | O | O | O | |
ALL_TABLES | X | O | O | O | |
ALL_TAB_COLS | X | O | O | O | |
ALL_TAB_COLUMNS | X | O | O | O | |
ALL_TAB_COMMENTS | X | O | O | O | |
ALL_TAB_IDENTITY_COLS | X | O | O | O | |
ALL_TAB_PLACE | X | X | X | O | |
ALL_TAB_SHARDS | X | X | O | O | |
ALL_TAB_PRIVS | X | O | O | O | |
ALL_TAB_PRIVS_MADE | X | O | O | O | |
ALL_TAB_PRIVS_RECD | X | O | O | O | |
ALL_TBS_PRIVS | X | O | O | O | |
ALL_TBS_PRIVS_MADE | X | O | O | O | |
ALL_TBS_PRIVS_RECD | X | O | O | O | |
ALL_USERS | X | O | O | O | |
ALL_VIEWS | X | O | O | O | |
Views of DBA_family | DBA_ALL_TABLES | X | O | O | O |
DBA_ARGUMENTS | X | X | O | O | |
DBA_CATALOG | X | O | O | O | |
DBA_CLUSTER | X | X | O | O | |
DBA_CLUSTER_COMMENTS | X | X | O | O | |
DBA_CLUSTER_TABLES | X | X | O | O | |
DBA_COL_COMMENTS | X | O | O | O | |
DBA_COL_PLACE | X | X | O | X | |
DBA_COL_PRIVS | X | O | O | O | |
DBA_CONSTRAINTS | X | O | O | O | |
DBA_CONS_COLUMNS | X | O | O | O | |
DBA_DB_PRIVS | X | O | O | O | |
DBA_DEPENDENCIES | X | X | O | O | |
DBA_EXTENTS | X | O | O | O | |
DBA_GLOBAL_SECONDARY_INDEXES | X | X | O | O | |
DBA_GSI_PLACE | X | X | O | O | |
DBA_INDEXES | X | O | O | O | |
DBA_IND_COLUMNS | X | O | O | O | |
DBA_IND_PLACE | X | X | O | O | |
DBA_NONSCHEMA_COMMENTS | X | O | O | O | |
DBA_OBJECTS | X | O | O | O | |
DBA_PROCEDURES | X | X | O | O | |
DBA_PROC_PRIVS | X | X | O | O | |
DBA_PROFILES | X | O | O | O | |
DBA_SCHEMAS | X | O | O | O | |
DBA_SCHEMA_PATH | X | O | O | O | |
DBA_SCHEMA_PRIVS | X | O | O | O | |
DBA_SEQUENCES | X | O | O | O | |
DBA_SEQ_PRIVS | X | O | O | O | |
DBA_SHARD_KEY_COLUMNS | X | X | O | O | |
DBA_SOURCE | X | X | O | O | |
DBA_STAT_SYSTEM | X | X | O | O | |
DBA_SYNONYMS | X | O | O | O | |
DBA_SYS_PRIVS | X | O | O | O | |
DBA_TABLES | X | O | O | O | |
DBA_TABLESPACES | X | O | O | O | |
DBA_TAB_COLS | X | O | O | O | |
DBA_TAB_COLUMNS | X | O | O | O | |
DBA_TAB_COMMENTS | X | O | O | O | |
DBA_TAB_IDENTITY_COLS | X | O | O | O | |
DBA_TAB_PLACE | X | X | O | O | |
DBA_TAB_PRIVS | X | O | O | O | |
DBA_TAB_SHARDS | X | X | O | O | |
DBA_TBS_PRIVS | X | O | O | O | |
DBA_USERS | X | O | O | O | |
DBA_VIEWS | X | O | O | O | |
Views of USER_family | USER_ALL_TABLES | X | O | O | O |
USER_ARGUMENTS | X | X | O | O | |
USER_CATALOG | X | O | O | O | |
USER_CLUSTER_TABLES | X | X | O | O | |
USER_COL_COMMENTS | X | O | O | O | |
USER_COL_PLACE | X | X | O | X | |
USER_COL_PRIVS | X | O | O | O | |
USER_COL_PRIVS_MADE | X | O | O | O | |
USER_COL_PRIVS_RECD | X | O | O | O | |
USER_CONSTRAINTS | X | O | O | O | |
USER_CONS_COLUMNS | X | O | O | O | |
USER_DEPENDENCIES | X | X | O | O | |
USER_EXTENTS | X | O | O | O | |
USER_GLOBAL_SECONDARY_INDEXES | X | X | O | O | |
USER_GSI_PLACE | X | X | O | O | |
USER_INDEXES | X | O | O | O | |
USER_IND_COLUMNS | X | O | O | O | |
USER_IND_PLACE | X | X | O | O | |
USER_OBJECTS | X | O | O | O | |
USER_PROCEDURES | X | X | O | O | |
USER_PROC_PRIVS | X | X | O | O | |
USER_PROC_PRIVS_MADE | X | X | O | O | |
USER_PROC_PRIVS_RECD | X | X | O | O | |
USER_SCHEMAS | X | O | O | O | |
USER_SCHEMA_PATH | X | O | O | O | |
USER_SCHEMA_PRIVS | X | O | O | O | |
USER_SCHEMA_PRIVS_MADE | X | O | O | O | |
USER_SCHEMA_PRIVS_RECD | X | O | O | O | |
USER_SEQUENCES | X | O | O | O | |
USER_SEQ_PRIVS | X | O | O | O | |
USER_SEQ_PRIVS_MADE | X | O | O | O | |
USER_SEQ_PRIVS_RECD | X | O | O | O | |
USER_SHARD_KEY_COLUMNS | X | X | O | O | |
USER_SOURCE | X | X | O | O | |
USER_SYNONYMS | X | O | O | O | |
USER_SYS_PRIVS | X | O | O | O | |
USER_TABLES | X | O | O | O | |
USER_TABLESPACES | X | O | O | O | |
USER_TAB_COLS | X | O | O | O | |
USER_TAB_COLUMNS | X | O | O | O | |
USER_TAB_COMMENTS | X | O | O | O | |
USER_TAB_IDENTITY_COLS | X | O | O | O | |
USER_TAB_PLACE | X | X | O | O | |
USER_TAB_PRIVS | X | O | O | O | |
USER_TAB_PRIVS_MADE | X | O | O | O | |
USER_TAB_PRIVS_RECD | X | O | O | O | |
USER_TAB_SHARDS | X | X | O | O | |
USER_USERS | X | O | O | O | |
USER_VIEWS | X | O | O | O | |
Other views | AUDIT_POLICIES | X | X | X | O |
AUDIT_POLICY_ENABLED | X | X | X | O | |
AUDIT_POLICY_OPTIONS | X | X | X | O | |
AUDIT_TRAIL | X | X | X | O | |
DATABASE_PROPERTIES | X | O | O | O | |
DBC_TABLE_TYPE_INFO | X | O | O | O | |
DICTIONARY | X | O | O | O | |
DICT_COLUMNS | X | O | O | O | |
IMPLEMENTATION_INFO | X | O | O | O | |
IMPLEMENTATION_INFO_BASE | X | O | O | O | |
JDBC_CLIENT_PROPS | X | O | O | O | |
PRODUCT | X | O | O | O | |
SESSION_PRIVS | X | O | O | O | |
SUPPLEMENTAL_LOG_TABLE_INFO | X | O | O | O | |
Aliased Synonym | COLS | X | O | O | O |
DICT | X | O | O | O | |
IND | X | O | O | O | |
OBJ | X | O | O | O | |
SEQ | X | O | O | O | |
TABS | X | O | O | O |
INFORMATION_SCHEMA Schema
The following is a feature matrix for INFORMATION_SCHEMA schema.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
COLUMNS | X | O | O | O |
COLUMN_PRIVILEGES | X | O | O | O |
CONSTRAINT_COLUMN_USAGE | X | O | O | O |
CONSTRAINT_TABLE_USAGE | X | O | O | O |
INFORMATION_SCHEMA_CATALOG_NAME | X | O | O | O |
KEY_COLUMN_USAGE | X | O | O | O |
PARAMETERS | X | X | O | O |
REFERENTIAL_CONSTRAINTS | X | O | O | O |
ROUTINES | X | X | O | O |
ROUTINE_PRIVILEGES | X | X | O | O |
ROUTINE_ROUTINE_USAGE | X | X | O | O |
ROUTINE_SEQUENCE_USAGE | X | X | O | O |
ROUTINE_TABLE_USAGE | X | X | O | O |
SCHEMATA | X | O | O | O |
SEQUENCES | X | O | O | O |
SQL_FEATURES | X | O | O | O |
SQL_IMPLEMENTATION_INFO | X | O | O | O |
SQL_PACKAGES | X | O | O | O |
SQL_PARTS | X | O | O | O |
SQL_SIZING | X | O | O | O |
STATISTICS | X | O | O | O |
TABLES | X | O | O | O |
TABLE_CONSTRAINTS | X | O | O | O |
TABLE_PRIVILEGES | X | O | O | O |
USAGE_PRIVILEGES | X | O | O | O |
VIEWS | X | O | O | O |
VIEW_ROUTINE_USAGE | X | X | O | O |
VIEW_TABLE_USAGE | X | O | O | O |
PERFORMANCE_VIEW_SCHEMA Schema
The following is a feature matrix for PERFORMANCE_VIEW_SCHEMA schema.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
GV$____ | X | X | O | O |
V$AGABLE_INFO | X | X | O | O |
V$ARCHIVELOG | X | O | O | O |
V$AUDITABLE_DB_PRIVILEGES | X | X | X | O |
V$AUDITABLE_SYSTEM_ACTIONS | X | X | X | O |
V$BACKUP | X | O | O | O |
V$BALANCER | X | O | O | O |
V$CLUSTER_DISPATCHER | X | X | O | O |
V$CLUSTER_LOCATION | X | X | O | O |
V$CLUSTER_MEMBER | X | X | O | O |
V$COLUMNS | X | O | O | O |
V$CONTROLFILE | X | O | O | O |
V$DATAFILE | X | O | O | O |
V$DB_FILE | X | O | O | O |
V$DISPATCHER | X | O | O | O |
V$ERROR_CODE | X | O | O | O |
V$GLOBAL_TRANSACTION | X | O | O | O |
V$JOURNALING | X | X | O | O |
V$INCREMENTAL_BACKUP | X | O | O | O |
V$INSTANCE | X | O | O | O |
V$KEYWORDS | X | O | O | O |
V$LATCH | X | O | O | O |
V$LOCK_WAIT | X | O | O | O |
V$LOGFILE | X | O | O | O |
V$PROCESS_MEM_STAT | X | O | O | O |
V$PROCESS_SQL_STAT | X | O | O | O |
V$PROCESS_STAT | X | O | O | O |
V$PROPERTY | X | O | O | O |
V$PSM_RESERVED_WORDS | X | X | O | O |
V$QUEUE | X | O | O | O |
V$RESERVED_WORDS | X | O | O | O |
V$SESSION | X | O | O | O |
V$SESSION_AUDIT | X | X | X | O |
V$SESSION_CONNECT_INFO | X | O | O | O |
V$SESSION_EVENT | X | X | O | O |
V$SESSION_MEM_STAT | X | O | O | O |
V$SESSION_SQL_STAT | X | O | O | O |
V$SESSION_STAT | X | O | O | O |
V$SESSION_WAIT | X | X | O | O |
V$SHARED_MODE | X | O | O | O |
V$SHARED_SERVER | X | O | O | O |
V$SHM_SEGMENT | X | O | O | O |
V$SPROPERTY | X | O | O | O |
V$SQLFN_METADATA | X | O | O | O |
V$SQL_CACHE | X | O | O | O |
V$SQL_COMMAND | X | X | O | O |
V$SQL_HISTORY | X | X | O | O |
V$STATEMENT | X | O | O | O |
V$SYSTEM_EVENT | X | X | O | O |
V$SYSTEM_MEM_STAT | X | O | O | O |
V$SYSTEM_SQL_STAT | X | O | O | O |
V$SYSTEM_STAT | X | O | O | O |
V$TABLES | X | O | O | O |
V$TABLESPACE | X | O | O | O |
V$TABLESPACE_STAT | X | X | O | O |
V$TRANSACTION | X | O | O | O |
V$WAIT_EVENT_CLASS_NAME | X | X | O | O |
V$WAIT_EVENT_NAME | X | X | O | O |
V$XA_TRANSATION | X | X | O | O |
Server Property
The following is a feature matrix for server property.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
AGING_INTERVAL | O | O | O | O |
AGING_PLAN_INTERVAL | X | O | O | O |
ARCHIVELOG_DIR | O | O | X | X |
ARCHIVELOG_DIR_1 ~ DIR_10 | X | O | O | O |
ARCHIVELOG_FILE | X | O | O | O |
ARCHIVELOG_MODE | X | O | O | O |
BACKUP_DIR_1 ~ DIR_10 | X | O | O | O |
BLOCK_READ_COUNT | O | O | O | O |
BULK_IO_PAGE_COUNT | X | O | O | O |
CDISPATCHER_HOT_POLICY_INTERVAL | X | X | O | O |
CDISPATCHER_SOCKET_BUFFER_SIZE | X | X | O | O |
CDISPATCHER_THREADS | X | X | O | O |
CHAR_LENGTH_UNITS | X | O | O | O |
CHARACTER_SET | X | O | O | O |
CHECK_DEDICATE_CONNECTION_INTERVAL | X | X | O | O |
CHECK_DEDICATE_SOCKET | X | X | O | X |
CLIENT_MAX_COUNT | O | O | O | O |
CLIENT_NUMA_POLICY | X | X | O | O |
CLOSE_PSM_CHILD_STMTS | X | X | O | O |
CLUSTER_ASYNC_COMMIT | X | X | O | O |
CLUSTER_ASYNC_REPLICATION | X | X | O | O |
CLUSTER_CM_BUFFER_COUNT | X | X | O | O |
CLUSTER_CM_BUFFER_SIZE | X | X | O | O |
CLUSTER_CM_READ_BUFFER_SIZE | X | X | O | O |
CLUSTER_COMMIT_SLAVES | X | X | O | O |
CLUSTER_COMMIT_STREAM_ISOLATION | X | X | O | O |
CLUSTER_CONNECTION | X | X | O | O |
CLUSTER_CONNECTION_TIMEOUT_SEC | X | X | O | O |
CLUSTER_DATA_SYNC_SERVERS | X | X | O | O |
CLUSTER_DISPATCHER_IN_QUEUE_SIZE | X | X | O | O |
CLUSTER_DISPATCHER_NUMA_STREAM_MAP | X | X | O | O |
CLUSTER_DISPATCHER_OUT_QUEUE_SIZE | X | X | O | O |
CLUSTER_HEARTBEAT_INTERVAL | X | X | O | O |
CLUSTER_HEARTBEAT_RETRY_COUNT | X | X | O | O |
CLUSTER_IGNORE_INACTIVE_MEMBER | X | X | O | O |
CLUSTER_MAX_PACKET_SIZE | X | X | O | O |
CLUSTER_MAX_PAYLOAD_SIZE | X | X | O | O |
CLUSTER_PACKET_ALLOCATION_TIMEOUT | X | X | O | O |
CLUSTER_SERVER_RESPONSE_QUEUE_SIZE | X | X | O | O |
CLUSTER_SPLIT_BRAIN_RESOLUTION_POLICY | X | X | O | O |
CLUSTER_SPLIT_BRAIN_RETRY_COUNT | X | X | O | O |
COMMITTER_HOT_POLICY_INTERVAL | X | X | O | O |
CONTROL_FILE_0 ~ FILE_7 | X | O | O | O |
CONTROL_FILE_COUNT | X | O | O | O |
CONTROL_FILE_TEMP_NAME | X | O | O | O |
COORDINATOR_COMMIT_WRITE_MODE | X | X | O | O |
CSERVERS | X | X | O | O |
DA_CLIENT_NUMA_MODE | X | X | O | O |
DATA_STORE_MODE | O | O | O | O |
DATABASE_ACCESS_MODE | X | O | O | O |
DATABASE_INSTANCE_NAME | X | X | O | O |
DDL_AUTOCOMMIT | X | O | O | O |
DDL_LOCK_TIMEOUT | O | O | O | O |
DEFAULT_GLOBAL_SECONDARY_INDEX_CREATION | X | X | O | O |
DEFAULT_INDEX_LOGGING | X | O | O | O |
DEFAULT_INDEX_PCTFREE | X | X | O | O |
DEFAULT_INITRANS | O | O | O | O |
DEFAULT_MAXTRANS | O | O | O | O |
DEFAULT_PCTFREE | O | O | O | O |
DEFAULT_PCTUSED | O | O | O | O |
DEFAULT_REMOVAL_BACKUP_FILE | X | O | O | O |
DEFAULT_REMOVAL_OBSOLETE_BACKUP_LIST | X | O | O | O |
DEFAULT_SHARDING | X | X | O | O |
DISABLE_DDL_CDC_GIVEUP | X | O | O | O |
DISABLE_UPDATE_PK_CDC_GIVEUP | X | O | O | O |
DISALLOWED_PROTOCOL_TARGETTYPE | X | X | O | O |
DISALLOWED_PROTOCOL_TARGETTYPE_WITH_ALL | X | X | X | O |
DISALLOWED_PROTOCOL_TARGETTYPE_WITH_NAME | X | X | O | O |
DISPATCHERS | X | O | O | O |
DISPATCHER_CM_BUFFER_SIZE | X | O | O | O |
DISPATCHER_CM_UNIT_SIZE | X | O | O | O |
DISPATCHER_CONNECTIONS | X | O | O | O |
DISPATCHER_HOT_POLICY_INTERVAL | X | X | O | O |
DISPATCHER_LOAD_BALANCING | X | X | O | O |
DISPATCHER_NUMA_STREAM_MAP | X | X | O | O |
DISPATCHER_QUEUE_SIZE | X | O | O | O |
DISPATCHER_REQUEST_MINI_QUEUE_COUNT | X | X | O | O |
DISPATCHER_RESPONSE_MINI_QUEUE_COUNT | X | X | O | O |
FETCH_FAILOVER | X | X | O | O |
GLOBAL_CONNECTION_ALLOW_SESSION_DEPENDENCY | X | X | X | O |
GLOBAL_JOURNAL_BUFFER_SIZE | X | X | O | O |
GLOBAL_JOURNAL_BUFFER_TOTAL_MAX_SIZE | X | X | O | O |
GLOBAL_PROPERTY_LOCK_TIMEOUT | X | X | O | O |
GLOBAL_TRANSACTION_COMMIT_WRITE_MODE | X | X | O | O |
GLOBAL_TRANSACTION_ISOLATION_SCOPE | X | X | O | O |
GLOBAL_TRANSACTION_LOG_DIR | X | X | O | O |
GLOBAL_TRANSACTION_LOG_FILE_SIZE | X | X | O | O |
GMASTER_NUMA_NODE | X | X | O | O |
GMON_AUTOSTART | X | X | O | O |
HINT_ERROR | X | O | O | O |
IDLE_TIMEOUT | O | O | O | O |
IN_DOUBT_DECISION | X | O | O | O |
INDEX_BUILD_PARALLEL_FACTOR | X | O | O | O |
INDEX_TREE_MERGE_PARALLEL_FACTOR | X | X | O | O |
INST_ALLOCATOR_COUNT | X | X | O | O |
INST_TABLE_BLOCK_SIZE | X | X | O | O |
JOURNAL_TEMP_DIR | X | X | O | O |
KEEPALIVE_IDLE_TIME | X | O | O | O |
LOCAL_CLUSTER_MEMBER | X | X | O | O |
LOCAL_CLUSTER_MEMBER_HOST | X | X | O | O |
LOCAL_CLUSTER_MEMBER_PORT | X | X | O | O |
LOCAL_JOURNAL_BUFFER_SIZE | X | X | O | O |
LOCATION_FILE | X | X | O | O |
LOCATOR_QUERY_TIMEOUT | X | X | O | O |
LOCK_HASH_TABLE_SIZE | X | O | O | O |
LOG_BLOCK_SIZE | O | O | O | O |
LOG_BUFFER_SIZE | O | O | O | O |
LOG_DIR | O | O | O | O |
LOG_FILE_SIZE | O | O | O | O |
LOG_GROUP_COUNT | O | O | O | O |
LOG_MIRROR_MODE | X | O | O | O |
LOG_MIRROR_SHARED_MEMORY_STATIC_SIZE | X | O | O | O |
LOG_MIRROR_TIMEOUT | X | O | O | O |
LOG_SYNC_INTERVAL | X | O | O | O |
LOG_SYNC_INTERVAL_MSEC | X | X | O | O |
MAX_GROUP_COUNT | X | X | O | O |
MAX_JOURNAL_FILE_SIZE | X | X | O | O |
MAX_NODE_COUNT | X | X | O | O |
MAXIMUM_CONCURRENT_ACTIVITIES | X | O | O | O |
MAXIMUM_FLANGE_COUNT | X | X | O | O |
MAXIMUM_FLUSH_LOG_BLOCK_COUNT | O | O | O | O |
MAXIMUM_FLUSH_PAGE_COUNT | O | O | O | O |
MAXIMUM_JOURNAL_REPLAY_COUNT | X | X | X | O |
MAXIMUM_NAMED_CURSOR_COUNT | X | O | O | O |
MAXIMUM_SESSION_CM_BUFFER_SIZE | X | O | O | O |
MEASURE_CLUSTER_LATENCY | X | X | O | O |
MEDIA_RECOVERY_LOG_BUFFER_SIZE | X | O | X | X |
MEMORY_MERGE_RUN_COUNT | X | O | O | O |
MEMORY_SORT_RUN_SIZE | X | O | O | O |
MIN_SAMPLE_ROW_COUNT | X | X | O | O |
MINIMUM_UNDO_PAGE_COUNT | O | O | O | O |
NET_BUFFER_SIZE | X | O | O | O |
NLS_DATE_FORMAT | X | O | O | O |
NLS_TIME_FORMAT | X | O | O | O |
NLS_TIME_WITH_TIME_ZONE_FORMAT | X | O | O | O |
NLS_TIMESTAMP_FORMAT | X | O | O | O |
NLS_TIMESTAMP_WITH_TIME_ZONE_FORMAT | X | O | O | O |
NUMA | X | X | O | O |
NUMA_MAP | X | X | O | O |
OFFLINE_MEMBER_AFTER_FAILOVER | X | X | O | O |
ONLINE_JOURNAL_REPLAY_THRESHOLD | X | X | X | O |
OS_GROUP_ACCESS | X | X | O | O |
PACKET_COMPRESSION_THRESHOLD | X | X | X | O |
PAGE_CHECKSUM_TYPE | X | O | O | O |
PARALLEL_IO_FACTOR | O | O | O | O |
PARALLEL_IO_GROUP_1 ~ GROUP_16 | O | O | O | O |
PARALLEL_LOAD_FACTOR | O | O | O | O |
PENDING_LOG_BUFFER_COUNT | O | O | O | O |
PLAN_CACHE | X | O | O | O |
PLAN_CACHE_SIZE | X | O | O | O |
PRIVATE_STATIC_AREA_SIZE | X | O | O | O |
PROCESS_MAX_COUNT | O | O | O | O |
QUERY_TIMEOUT | O | O | O | O |
READABLE_ARCHIVELOG_DIR_COUNT | X | O | O | O |
READABLE_BACKUP_DIR_COUNT | X | O | O | O |
REBALANCE_BLOCK_READ_COUNT | X | X | O | O |
RECOMPILE_CHECK_MINIMUM_PAGE_COUNT | X | O | O | X |
RECOMPILE_PAGE_PERCENT | X | O | O | X |
RECOVERY_LOG_BUFFER_SIZE | X | X | O | O |
REDO_LOG_COMPRESSION_THRESHOLD | X | X | X | O |
REFINE_RELATION | X | O | O | O |
SESSION_FATAL_BEHAVIOR | X | O | O | O |
SESSION_MEMORY_INIT_SIZE | X | X | X | O |
SESSION_MEMORY_SHRINK_THRESHOLD | X | X | X | O |
SHARED_MEMORY_ADDRESS | O | O | O | O |
SHARED_MEMORY_STATIC_KEY | O | O | O | O |
SHARED_MEMORY_STATIC_NAME | O | O | O | O |
SHARED_MEMORY_STATIC_SIZE | O | O | O | O |
SHARED_REQUEST_QUEUE_COUNT | X | O | O | O |
SHARED_SERVERS | X | O | O | O |
SHARED_SESSION | X | O | O | O |
SNAPSHOT_STATEMENT_TIMEOUT | X | O | O | O |
SQL_HISTORY_SIZE | X | X | O | O |
SUPPLEMENTAL_LOG_DATA_PRIMARY_KEY | X | O | O | O |
SYSTEM_LOGGER_DIR | X | O | O | O |
SYSTEM_MEMORY_AUX_TABLESPACE_SIZE | X | X | X | O |
SYSTEM_MEMORY_DATA_TABLESPACE_SIZE | O | O | O | O |
SYSTEM_MEMORY_DICT_TABLESPACE_SIZE | O | O | O | O |
SYSTEM_MEMORY_TEMP_TABLESPACE_SIZE | O | O | O | O |
SYSTEM_MEMORY_UNDO_TABLESPACE_SIZE | O | O | O | O |
SYSTEM_TABLESPACE_DIR | O | O | O | O |
SYSTEM_UDS_DIR | X | X | O | O |
TCP_NODELAY | X | X | O | O |
TEMP_SEGMENT_CACHE_SIZE | X | X | X | O |
TEMP_UNDO_ENABLED | X | X | X | O |
TIMED_STATISTICS | X | X | O | O |
TIMER_INTERVAL | O | O | X | X |
TIMEZONE | X | O | O | O |
TRACE_ALTER_SYSTEM | X | O | O | O |
TRACE_DDL | O | O | O | O |
TRACE_LOG_ID | X | O | O | O |
TRACE_LOG_MSGBUG_SIZE | X | X | O | O |
TRACE_LOG_TIME_DETAIL | X | O | O | O |
TRACE_LOGGER | X | X | O | O |
TRACE_LOGGER_REMOTE_HOST | X | X | O | O |
TRACE_LOGGER_REMOTE_PORT | X | X | O | O |
TRACE_LOGIN | X | O | O | O |
TRACE_LONG_RUN_CURSOR | X | O | O | O |
TRACE_LONG_RUN_SQL | X | O | O | O |
TRACE_XA | X | O | O | O |
TRANSACTION_ALLOCATION_TIMEOUT | X | X | X | O |
TRANSACTION_COMMIT_WRITE_MODE | O | O | O | O |
TRANSACTION_MAXIMUM_UNDO_PAGE_COUNT | X | O | O | O |
TRANSACTION_TABLE_SIZE | O | O | O | O |
TRANSACTION_TIMEOUT | X | X | O | O |
UNDO_RELATION_ALLOCATION_TIMEOUT | X | X | X | O |
UNDO_RELATION_COUNT | O | O | O | O |
UNDO_SHRINK_THRESHOLD | X | O | O | O |
USE_LARGE_PAGES | X | X | X | O |
SQL
SQL Element
Data Type
The following is a feature matrix for data type.
Type | Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|---|
Character string type | CHAR | O | O | O | O |
VARCHAR | O | O | O | O | |
LONG VARCHAR | X | O | O | O | |
Binary string type | BINARY | O | O | O | O |
VARBINARY | O | O | O | O | |
LONG VARBINARY | X | O | O | O | |
Decimal number type | SMALLINT | X | O | O | O |
INTEGER | X | O | O | O | |
BIGINT | X | O | O | O | |
NUMERIC | O | O | O | O | |
DECIMAL | X | X | O | O | |
NUMBER | X | O | O | O | |
REAL | X | O | O | O | |
DOUBLE PRECISION | X | O | O | O | |
FLOAT | X | O | O | O | |
Binary number type | NATIVE_SMALLINT | X | O | O | O |
NATIVE_INTEGER | X | O | O | O | |
NATIVE_BIGINT | X | O | O | O | |
NATIVE_REAL | X | O | O | O | |
NATIVE_DOUBLE | X | O | O | O | |
BOOLEAN type | BOOLEAN | O | O | O | O |
Date/ time type | DATE | O | O | O | O |
TIME | O | O | O | O | |
TIME WITH TIME ZONE | O | O | O | O | |
TIMESTAMP | O | O | O | O | |
TIMESTAMP WITH TIME ZONE | O | O | O | O | |
INTERVAL type | INTERVAL YEAR TO MONTH | O | O | O | O |
INTERVAL YEAR | O | O | O | O | |
INTERVAL MONTH | O | O | O | O | |
INTERVAL DAY TO SECOND | O | O | O | O | |
INTERVAL DAY | O | O | O | O | |
INTERVAL HOUR | O | O | O | O | |
INTERVAL MINUTE | O | O | O | O | |
INTERVAL SECOND | O | O | O | O | |
INTERVAL DAY TO HOUR | O | O | O | O | |
INTERVAL DAY TO MINUTE | O | O | O | O | |
INTERVAL HOUR TO MINUTE | O | O | O | O | |
INTERVAL HOUR TO SECOND | O | O | O | O | |
INTERVAL MINUTE TO SECOND | O | O | O | O | |
ROWID type | ROWID | X | O | O | O |
Function
The following is a feature matrix for function.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
expr1 * expr2 | O | O | O | O |
expr1 + expr2 | O | O | O | O |
datetime + interval | X | O | O | O |
+ expr | O | O | O | O |
expr1 - expr2 | O | O | O | O |
datetime - interval | X | O | O | O |
- expr | O | O | O | O |
expr1 / expr2 | O | O | O | O |
str1 || str2 | O | O | O | O |
expr <comp> expr | O | O | O | O |
expr <comp> ( subquery ) | X | O | O | O |
( subquery ) <comp> expr | X | O | O | O |
( subquery ) <comp> ( subquery ) | X | O | O | O |
( expr, ... ) <comp> ( expr, ... ) | X | O | O | O |
( expr, ... ) <comp> ( subquery ) | X | O | O | O |
( subquery ) <comp> ( expr, ... ) | X | O | O | O |
expr <comp> {ALL|ANY|SOME} ( expr, ... ) | X | O | O | O |
expr <comp> {ALL|ANY|SOME} ( subquery ) | X | O | O | O |
( subquery ) <comp> {ALL|ANY|SOME} ( expr, ... ) | X | O | O | O |
( subquery ) <comp> {ALL|ANY|SOME} ( subquery ) | X | O | O | O |
( expr, ... ) <comp> {ALL|ANY|SOME} ( expr_list, ... ) | X | O | O | O |
( expr, ... ) <comp> {ALL|ANY|SOME} ( subquery ) | X | O | O | O |
( subquery ) <comp> {ALL|ANY|SOME} ( expr_list, ... ) | X | O | O | O |
ABS( num ) | O | O | O | O |
ACOS( num ) | O | O | O | O |
ADDDATE( date, interval ) | X | O | O | O |
ADDDATE( expr, days ) | X | O | O | O |
ADDTIME( expr1, expr2 ) | X | O | O | O |
ADD_MONTHS( date, number ) | X | O | O | O |
AND | O | O | O | O |
ASCII( char ) | X | X | O | O |
ASIN( num ) | O | O | O | O |
ATAN( num ) | O | O | O | O |
ATAN2( num1, num2 ) | O | O | O | O |
AVG( num ) | X | O | O | O |
expr1 [NOT] BETWEEN [ASYMMETRIC|SYMMETRIC] expr2 AND expr3 | X | O | O | O |
BITAND( num1, num2 ) | O | O | O | O |
BITNOT( num ) | O | O | O | O |
BITOR( num1, num2 ) | O | O | O | O |
BITXOR( num1, num2 ) | O | O | O | O |
BIT_LENGTH( str ) | O | O | O | O |
BYTE_LENGTH( str ) | O | O | O | O |
CASE .. WHEN .. THEN .. ELSE .. END | X | O | O | O |
CASE2( condition, result, ... ) | X | O | O | O |
CAST( expr AS datatype ) | O | O | O | O |
CBRT( num ) | O | O | O | O |
CEIL( num ) | O | O | O | O |
CEILING( num ) | O | O | O | O |
CHAR_LENGTH( str ) | O | O | O | O |
CHARACTER_LENGTH( str ) | O | O | O | O |
CHR( num ) | X | X | O | O |
CLOCK_DATE() | O | O | O | O |
CLOCK_LOCALTIME() | O | O | O | O |
CLOCK_LOCALTIMESTAMP() | O | O | O | O |
CLOCK_TIME() | O | O | O | O |
CLOCK_TIMESTAMP() | O | O | O | O |
COALESCE( expr1, ..., exprN ) | X | O | O | O |
CONCAT( str1, str2 ) | O | O | O | O |
CONCATENATE( str1, str2 ) | O | O | O | O |
COS( num ) | O | O | O | O |
COT( num ) | O | O | O | O |
COUNT( expr ) | X | O | O | O |
COUNT(*) | X | O | O | O |
CURRENT_CATALOG | O | O | O | O |
CURRENT_DATE | O | O | O | O |
CURRENT_SCHEMA | O | O | O | O |
CURRENT_TIME | O | O | O | O |
CURRENT_TIMESTAMP | O | O | O | O |
CURRENT_USER | O | O | O | O |
seq.CURRVAL | O | O | O | O |
CURRVAL( seq ) | O | O | O | O |
DATEADD( datepart, number, date ) | O | O | O | O |
DATEDIFF( datepart, startdate, enddate ) | X | O | O | O |
DATE_ADD( date, interval ) | X | O | O | O |
DATE_PART( field, datetime ) | X | O | O | O |
DECODE( expr, comparison, result, ... ) | X | O | O | O |
DEGREES( radians ) | O | O | O | O |
DIGEST ( data, type ) | X | X | O | O |
DUMP( expr ) | X | O | O | O |
EXISTS( subquery ) | X | O | O | O |
EXP( num ) | O | O | O | O |
EXTRACT( field FROM datetime ) | X | O | O | O |
FACTORIAL( num ) | O | O | O | O |
FLOOR( num ) | O | O | O | O |
FROM_BASE64( str ) | X | X | O | O |
GREATEST( expr, ... ) | X | O | O | O |
HEX( str ) | X | X | O | O |
expr1 [NOT] IN ( expr, ... ) | X | O | O | O |
expr1 [NOT] IN ( subquery ) | X | O | O | O |
subquery [NOT] IN ( <expr_list> ) | X | O | O | O |
subquery [NOT] IN ( subquery ) | X | O | O | O |
<expr_list> [NOT] IN ( <expr_list>, ... ) | X | O | O | O |
<expr_list> [NOT] IN ( subquery ) | X | O | O | O |
subquery [NOT] IN ( <expr_list>, ... ) | X | O | O | O |
INITCAP( str ) | X | O | O | O |
INSTR( str, substr, ... ) | X | O | O | O |
IS NOT NULL | O | O | O | O |
IS NULL | O | O | O | O |
LAST_DAY( date ) | X | O | O | O |
LAST_IDENTITY_VALUE() | X | X | O | O |
LEAST( expr, ... ) | X | O | O | O |
LENGTH( str ) | O | O | O | O |
LENGTHB( str ) | O | O | O | O |
string [NOT] LIKE pattern ESCAPE escape_char | X | O | O | O |
LN( num ) | O | O | O | O |
LOCALTIME | O | O | O | O |
LOCALTIMESTAMP | O | O | O | O |
LOCAL_GROUP_ID() | X | X | O | O |
LOCAL_GROUP_NAME() | X | X | O | O |
LOCAL_MEMBER_ID() | X | X | O | O |
LOCAL_MEMBER_NAME() | X | X | O | O |
LOG( num2 ) | O | O | O | O |
LOG( num1, num2 ) | O | O | O | O |
LOGON_USER() | X | O | O | O |
LOWER( str ) | O | O | O | O |
LPAD( str, length, fill ) | X | O | O | O |
LTRIM( str, [ str ] ) | X | O | O | O |
MAX( expr ) | X | O | O | O |
MIN( expr ) | X | O | O | O |
MOD( num1, num2 ) | O | O | O | O |
MONTHS_BETWEEN( date1, date2 ) | X | X | X | O |
NEXT_DAY( date, day ) | X | X | O | O |
seq.NEXTVAL | O | O | O | O |
NEXTVAL( seq ) | O | O | O | O |
NEXT VALUE FOR seq | O | O | O | O |
NOT | X | O | O | O |
NULLIF( expr1, expr2 ) | X | O | O | O |
NVL( expr1, expr2 ) | X | O | O | O |
NVL2( expr1, expr2, expr3 ) | X | O | O | O |
OCTET_LENGTH( str ) | O | O | O | O |
OVERLAY( str1 PLACING str2 FROM start FOR length ) | X | O | O | O |
OR | X | O | O | O |
PI() | O | O | O | O |
POSITION( str1 IN str2 ) | O | O | O | O |
POWER( num1, num2 ) | O | O | O | O |
RADIANS( degrees ) | O | O | O | O |
RANDOM( min, max ) | O | O | O | O |
REPEAT( str, num ) | X | O | O | O |
REPLACE( str, from, to ) | X | O | O | O |
REVERSE( str ) | X | X | X | O |
ROUND( num ) | X | O | O | O |
ROUND( date, fmt ) | X | O | O | O |
ROWID_GRID_BLOCK_ID( rowid ) | X | X | O | O |
ROWID_GRID_BLOCK_SEQ( rowid ) | X | X | O | O |
ROWID_MEMBER_ID( rowid ) | X | X | O | O |
ROWID_OBJECT_ID( rowid ) | X | O | O | O |
ROWID_PAGE_ID( rowid ) | X | O | O | O |
ROWID_ROW_NUMBER( rowid ) | X | O | O | O |
ROWID_SHARD_ID( rowid ) | X | X | O | O |
ROWID_TABLESPACE_ID( rowid ) | X | O | O | O |
ROWNUM | X | X | O | O |
RPAD( str, length, fill ) | X | O | O | O |
RTRIM( str, [ str ] ) | X | O | O | O |
SESSION_ID() | X | O | O | O |
SESSION_SERIAL() | X | O | O | O |
SESSION_USER | X | O | O | O |
SHARD_GROUP_ID( table, expr ) | X | X | O | O |
SHARD_GROUP_NAME( table_name, shard_key_value [, ...] ) | X | X | O | O |
SHARD_ID( table, expr ) | X | X | O | O |
SHARD_NAME( table_name, shard_key_value [, ...] ) | X | X | O | O |
SHIFT_LEFT( num, cnt ) | O | O | O | O |
SHIFT_RIGHT( num, cnt ) | O | O | O | O |
SIGN( num ) | O | O | O | O |
SIN( num ) | O | O | O | O |
SPLIT_PART( str, delimiter, field ) | X | O | O | O |
SQRT( num ) | O | O | O | O |
STATEMENT_DATE() | O | O | O | O |
STATEMENT_LOCALTIME() | O | O | O | O |
STATEMENT_LOCALTIMESTAMP() | O | O | O | O |
STATEMENT_TIME() | O | O | O | O |
STATEMENT_TIMESTAMP() | O | O | O | O |
STATEMENT_VIEW_SCN() | X | O | O | O |
STATEMENT_VIEW_SCN_DCN() | X | X | O | O |
STATEMENT_VIEW_SCN_GCN() | X | X | O | O |
STATEMENT_VIEW_SCN_LCN() | X | X | O | O |
STDDEV( [ ALL | DISTINCT ] expr ) | X | X | X | O |
STDDEV_POP( expr ) | X | X | X | O |
STDDEV_SAMP( expr ) | X | X | X | O |
SUBSTR( str FROM start FOR length ) | X | O | O | O |
SUBSTR( str, start, length ) | X | O | O | O |
SUBSTRB( str, start, length ) | X | O | O | O |
SUBSTRING( str FROM start FOR length ) | X | O | O | O |
SUBSTRING( str, start, length ) | X | O | O | O |
SUM( expr ) | X | O | O | O |
SYSDATE | O | O | O | O |
SYS_EXTRACT_UTC( datetime_with_timezone ) | X | X | O | O |
SYSTIME | O | O | O | O |
SYSTIMESTAMP | O | O | O | O |
TAN( num ) | O | O | O | O |
TO_CHAR( datetime, fmt ) | X | O | O | O |
TO_CHAR( number, fmt ) | X | O | O | O |
TO_BASE64( str ) | X | X | O | O |
TO_DATE( str, fmt ) | X | O | O | O |
TO_NATIVE_DOUBLE( str, fmt ) | X | O | O | O |
TO_NATIVE_REAL( str, fmt ) | X | O | O | O |
TO_NUMBER( num, fmt ) | X | O | O | O |
TO_TIME( str, fmt ) | X | O | O | O |
TO_TIME_TZ( str, fmt ) | X | O | O | O |
TO_TIME_WITH_TIME_ZONE( str, fmt ) | X | O | O | O |
TO_TIMESTAMP( str, fmt ) | X | O | O | O |
TO_TIMESTAMP_TZ( str, fmt ) | X | O | O | O |
TO_TIMESTAMP_WITH_TIME_ZONE( str, fmt ) | X | O | O | O |
TRANSACTION_DATE() | O | O | O | O |
TRANSACTION_LOCALTIME() | O | O | O | O |
TRANSACTION_LOCALTIMESTAMP() | O | O | O | O |
TRANSACTION_TIME() | O | O | O | O |
TRANSACTION_TIMESTAMP() | O | O | O | O |
TRANSLATE( str, from, to ) | X | O | O | O |
TRIM( LEADING|TRAILING|BOTH trim_char FROM source ) | O | O | O | O |
TRUNC( num, scale ) | X | O | O | O |
TRUNC( date, fmt ) | X | O | O | O |
UPPER( str ) | O | O | O | O |
UNHEX( str ) | X | X | O | O |
UNHEX_TO_CHARSTR( str ) | X | X | O | O |
USER_ID() | O | O | O | O |
UUID() | X | X | O | O |
VAR_POP( expr ) | X | X | X | O |
VAR_SAMP( expr ) | X | X | X | O |
VARIANCE( [ ALL | DISTINCT ] expr ) | X | X | X | O |
VERSION() | O | O | O | O |
WIDTH_BUCKET( num, min, max, cnt ) | O | O | O | O |
Object
SQL Object
The following is a feature matrix for DDL which creates/ drops/ alters an SQL object.
Object | Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|---|
Database object | ALTER DATABASE ARCHIVELOG | X | O | O | O |
ALTER DATABASE ADD LOGFILE | X | O | O | O | |
ALTER DATABASE DROP LOGFILE | X | O | O | O | |
ALTER DATABASE RENAME LOGFILE | X | O | O | O | |
ALTER DATABASE BEGIN/END BACKUP | X | O | O | O | |
ALTER DATABASE RECOVER | X | O | O | O | |
ALTER DATABASE RECOVER TABLESPACE | X | O | O | O | |
ALTER DATABASE REGISTER | X | O | O | O | |
ALTER DATABASE RESTORE | X | O | O | O | |
ANALYZE SYSTEM | X | X | O | O | |
COMMENT ON object IS .. | X | O | O | O | |
Profile object | CREATE PROFILE | X | O | O | O |
DROP PROFILE | X | O | O | O | |
ALTER PROFILE | X | O | O | O | |
Audit policy object | CREATE AUDIT POLICY | X | X | X | O |
DROP AUDIT POLICY | X | X | X | O | |
ALTER AUDIT POLICY | X | X | X | O | |
AUDIT POLICY | X | X | X | O | |
NOAUDIT POLICY | X | X | X | O | |
Authorization object | CREATE USER | X | O | O | O |
DROP USER | X | O | O | O | |
ALTER USER | X | O | O | O | |
GRANT privileges TO | X | O | O | O | |
REVOKE privileges FROM | X | O | O | O | |
Schema object | CREATE SCHEMA | X | O | O | O |
DROP SCHEMA | X | O | O | O | |
Tablespace object | CREATE MEMORY DATA TABLESPACE | X | O | O | O |
CREATE MEMORY TEMPORARY TABLESPACE | X | O | O | O | |
DROP TABLESPACE | X | O | O | O | |
ALTER TABLESPACE .. RENAME TO | X | O | O | O | |
ALTER TABLESPACE .. BEGIN/END BACKUP | X | O | O | O | |
ALTER TABLESPACE .. ADD [DATAFILE|MEMORY] | O | O | O | O | |
ALTER TABLESPACE .. DROP [DATAFILE|MEMORY] | X | O | O | O | |
ALTER TABLESPACE .. RENAME DATAFILE | X | O | O | O | |
ALTER TABLESPACE .. { ONLINE | OFFLINE } | X | O | O | O | |
Table object | CREATE TABLE | O | O | O | O |
CREATE TABLE AS SELECT | X | O | O | O | |
CREATE GLOBAL TEMPORARY TABLE | X | X | X | O | |
CREATE GLOBAL TEMPORARY TABLE AS SELECT | X | X | X | O | |
DROP TABLE | O | O | O | O | |
TRUNCATE TABLE | X | O | O | O | |
ALTER TABLE .. STORAGE | X | O | O | O | |
ALTER TABLE .. RENAME TO | X | O | O | O | |
ALTER TABLE .. ADD COLUMN | X | O | O | O | |
ALTER TABLE .. SET UNUSED COLUMN | X | O | O | O | |
ALTER TABLE .. ALTER COLUMN | X | O | O | O | |
ALTER TABLE .. RENAME COLUMN | X | O | O | O | |
ALTER TABLE .. RENAME CONSTRAINT | X | X | X | O | |
ALTER TABLE .. ADD CONSTRAINT | X | O | O | O | |
ALTER TABLE .. DROP CONSTRAINT | X | O | O | O | |
ALTER TABLE .. ALTER CONSTRAINT | X | O | O | O | |
ALTER TABLE .. ADD SUPPLEMENTAL LOG | X | O | O | O | |
ALTER TABLE .. DROP SUPPLEMENTAL LOG | X | O | O | O | |
ALTER TABLE .. READ { ONLY | WRITE } | X | X | X | O | |
ANALYZE TABLE | X | X | O | O | |
View object | CREATE VIEW | X | O | O | O |
DROP VIEW | X | O | O | O | |
ALTER VIEW | X | O | O | O | |
Index object | CREATE INDEX | O | O | O | O |
DROP INDEX | O | O | O | O | |
ALTER INDEX .. AGING | X | X | O | O | |
ALTER INDEX .. STORAGE | X | O | O | O | |
ALTER INDEX .. RENAME | X | X | X | O | |
Sequence object | CREATE SEQUENCE | O | O | O | O |
DROP SEQUENCE | O | O | O | O | |
ALTER SEQUENCE | X | O | O | O | |
Synonym object | CREATE SYNONYM | X | O | O | O |
DROP SYNONYM | X | O | O | O | |
CREATE PUBLIC SYNONYM | X | O | O | O | |
DROP PUBLIC SYNONYM | X | O | O | O | |
Stored procedure object | CREATE PROCEDURE | X | X | O | O |
DROP PROCEDURE | X | X | O | O | |
ALTER PROCEDURE | X | X | O | O | |
Stored function object | CREATE FUNCTION | X | X | O | O |
DROP FUNCTION | X | X | O | O | |
ALTER FUNCTION | X | X | O | O |
Cluster Object
The following is a feature matrix for DDL which creates/ drops/ alters a cluster object.
Object | Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|---|
Cluster system object | ALTER DATABASE REBALANCE | X | X | O | O |
ALTER DATABASE DROP INACTIVE CLUSTER MEMBERS | X | X | O | O | |
Cluster group object | CREATE CLUSTER GROUP | X | X | O | O |
DROP CLUSTER GROUP | X | X | O | O | |
Cluster member object | ALTER CLUSTER GROUP name ADD MEMBER | X | X | O | O |
ALTER CLUSTER GROUP name OFFLINE MEMBER | X | X | O | O | |
ALTER DATABASE RESET LOCAL CLUSTER MEMBER | X | X | O | O | |
ALTER SYSTEM IRRECOVERABLE CLUSTER MEMBER | X | X | X | O | |
ALTER SYSTEM JOIN DATABASE | X | X | O | O | |
Cluster location object | CREATE CLUSTER LOCATION | X | X | O | O |
DROP CLUSTER LOCATION | X | X | O | O | |
ALTER CLUSTER LOCATION | X | X | O | O | |
Cluster table and shard object | ALTER TABLE name REBALANCE | X | X | O | O |
ALTER TABLE name MOVE SHARD | X | X | O | O | |
ALTER TABLE name SPLIT SHARD | X | X | O | O | |
ALTER TABLE name RENAME SHARD | X | X | X | O | |
Global secondary index object | ALTER TABLE name ADD GLOBAL SECONDARY INDEX | X | X | O | O |
ALTER TABLE name DROP GLOBAL SECONDARY INDEX | X | X | O | O | |
ALTER TABLE name ALTER GLOBAL SECONDARY INDEX | X | X | O | O |
SQL Language
DML
The following is a feature matrix for DML which manipulates data.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
INSERT INTO .. | O | O | O | O |
INSERT INTO .. RETURNING query | X | O | O | O |
INSERT INTO .. RETURNING .. INTO .. | X | O | O | O |
DELETE FROM .. | O | O | O | O |
DELETE FROM .. RETURNING query | X | O | O | O |
DELETE FROM .. RETURNING .. INTO .. | X | O | O | O |
DELETE FROM .. WHERE CURRENT OF cursor | X | O | O | O |
UPDATE .. | O | O | O | O |
UPDATE .. RETURNING query | X | O | O | O |
UPDATE .. RETURNING .. INTO .. | X | O | O | O |
UPDATE .. WHERE CURRENT OF cursor | X | O | O | O |
CALL proc_name | X | X | O | O |
Query
The following is a feature matrix for SELECT statement which enquires data.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
<query expression> | O | O | O | O |
<query specification> | O | O | O | O |
<select list> | O | O | O | O |
<from clause> | O | O | O | O |
<joined table> | X | O | O | O |
<where clause> | O | O | O | O |
<group by clause> | X | O | O | O |
<order by clause> | X | O | O | O |
<offset limit clause> | O | O | O | O |
<set operator> | X | O | O | O |
<subquery> | X | O | O | O |
<hint clause> | X | O | O | O |
Control Language
The following is a feature matrix for control statement.
Control statement | Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|---|
Transaction | COMMIT | O | O | O | O |
ROLLBACK | O | O | O | O | |
SAVEPOINT | X | O | O | O | |
RELEASE SAVEPOINT | X | O | O | O | |
LOCK TABLE | X | O | O | O | |
SET CONSTRAINTS | X | O | O | O | |
SET TRANSACTION | X | O | O | O | |
Session | SET SESSION CHARACTERISTICS AS | X | O | O | O |
SET SESSION AUTHORIZATION | X | O | O | O | |
SET TIME ZONE | X | O | O | O | |
ALTER SESSION SET property | O | O | O | O | |
System | ALTER SYSTEM {OPEN|MOUNT} DATABASE | X | O | O | O |
ALTER SYSTEM CHECKPOINT | O | O | O | O | |
ALTER SYSTEM KILL SESSION | X | O | O | O | |
ALTER SYSTEM RECONNECT GLOBAL CONNECTION | X | X | X | O | |
ALTER SYSTEM SWITCH LOGFILE | X | O | O | O | |
ALTER SYSTEM SET property | X | O | O | O | |
ALTER SYSTEM RESET property | X | O | O | O |
PSM Language
The following is a feature matrix for persistent stored module (PSM) language element.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
Assignment Statement | X | X | O | O |
Basic LOOP Statement | X | X | O | O |
Block (BEGIN .. END) | X | X | O | O |
CASE Statement | X | X | O | O |
CLOSE Statement | X | X | O | O |
Collection Method Invocation | X | X | O | O |
Collection Variable Declaration | X | X | O | O |
CONTINUE Statement | X | X | O | O |
Cursor FOR LOOP Statement | X | X | O | O |
Cursor Variable Declaration | X | X | O | O |
DELETE Statement Extension | X | X | O | O |
EXCEPTION_INIT Pragma | X | X | O | O |
Exception Declaration | X | X | O | O |
Exception Handler | X | X | O | O |
EXECUTE IMMEDIATE Statement | X | X | O | O |
EXIT Statement | X | X | O | O |
Explicit Cursor Declaration and Definition | X | X | O | O |
FETCH Statement | X | X | O | O |
FOR LOOP Statement | X | X | O | O |
GOTO Statement | X | X | O | O |
IF Statement | X | X | O | O |
Implicit Cursor Attribute | X | X | O | O |
INSERT Statement Extension | X | X | O | O |
Named Cursor Attribute | X | X | O | O |
NULL Statement | X | X | O | O |
OPEN Statement | X | X | O | O |
OPEN FOR Statement | X | X | O | O |
Procedure Call | X | X | O | O |
Procedure Declaration and Definition | X | X | O | O |
RAISE Statement | X | X | O | O |
Record Variable Declaration | X | X | O | O |
RETURN Statement | X | X | O | O |
RETURNING INTO clause | X | X | O | O |
%ROWTYPE Attribute | X | X | O | O |
Scalar Variable Declaration | X | X | O | O |
SELECT INTO Statement | X | X | O | O |
SQLCODE Function | X | X | O | O |
SQLERRM Function | X | X | O | O |
%TYPE Attribute | X | X | O | O |
UPDATE Statement Extension | X | X | O | O |
WHILE LOOP Statement | X | X | O | O |
API
ODBC
The following is a feature matrix for the ODBC standard API.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
SQLAllocHandle() | O | O | O | O |
SQLBindCol() | O | O | O | O |
SQLBindParameter() | O | O | O | O |
SQLCloseCursor() | O | O | O | O |
SQLColAttribute() | X | O | O | O |
SQLColumnPrivileges() | X | O | O | O |
SQLColumns() | X | O | O | O |
SQLConnect() | O | O | O | O |
SQLDescribeCol() | O | O | O | O |
SQLDescribeParam() | O | O | O | O |
SQLDisconnect() | O | O | O | O |
SQLDriverConnect() | X | O | O | O |
SQLEndTran() | O | O | O | O |
SQLExecDirect() | O | O | O | O |
SQLExecute() | O | O | O | O |
SQLExtendedFetch() | X | O | O | O |
SQLFetch() | O | O | O | O |
SQLFetchScroll() | X | O | O | O |
SQLForeignKeys() | X | O | O | O |
SQLFreeHandle() | O | O | O | O |
SQLFreeStmt() | O | O | O | O |
SQLGetConnectAttr() | O | O | O | O |
SQLGetCursorName() | X | O | O | O |
SQLGetData() | X | O | O | O |
SQLGetDescField() | O | O | O | O |
SQLGetDescRec() | O | O | O | O |
SQLGetDiagField() | O | O | O | O |
SQLGetDiagRec() | O | O | O | O |
SQLGetEnvAttr() | O | O | O | O |
SQLGetFunctions() | O | O | O | O |
SQLGetInfo() | X | O | O | O |
SQLGetStmtAttr() | O | O | O | O |
SQLGetTypeInfo() | X | O | O | O |
SQLMoreResults() | X | O | O | O |
SQLNumParams() | O | O | O | O |
SQLNumResultCols() | O | O | O | O |
SQLParamData() | X | O | O | O |
SQLPrepare() | O | O | O | O |
SQLPrimaryKeys() | X | O | O | O |
SQLProcedureColumns() | X | O | O | O |
SQLProcedures() | X | O | O | O |
SQLPutData() | X | O | O | O |
SQLRowCount() | O | O | O | O |
SQLSetConnectAttr() | O | O | O | O |
SQLSetCursorName() | X | O | O | O |
SQLSetDescField() | O | O | O | O |
SQLSetDescRec() | O | O | O | O |
SQLSetEnvAttr() | O | O | O | O |
SQLSetPos() | X | O | O | O |
SQLSetStmtAttr() | O | O | O | O |
SQLSpecialColumns() | X | O | O | O |
SQLStatistics() | X | O | O | O |
SQLTablePrivileges() | X | O | O | O |
SQLTables() | X | O | O | O |
The following is a feature matrix for API other than the ODBC standard API.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
xa_open | X | O | O | O |
xa_close | X | O | O | O |
xa_start | X | O | O | O |
xa_end | X | O | O | O |
xa_rollback | X | O | O | O |
xa_prepare | X | O | O | O |
xa_commit | X | O | O | O |
xa_recover | X | O | O | O |
xa_forget | X | O | O | O |
SQLGetXaSwitch | X | O | O | O |
SQLGetXaConnectionHandle | X | O | O | O |
SQLGetGroupCount | X | X | X | O |
SQLGetGroupIDs | X | X | X | O |
SQLGetGroupName | X | X | X | O |
SQLGetSuitableGroupID | X | X | X | O |
JDBC
The following is a class feature matrix for JDBC.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
CallableStatement | X | X | O | O |
CommonDataSource | X | O | O | O |
Connection | X | O | O | O |
ConnectionPoolDataSource | X | O | O | O |
DatabaseMetaData | X | O | O | O |
DataSource | X | O | O | O |
Driver | X | O | O | O |
ParameterMetaData | X | O | O | O |
PooledConnection | X | O | O | O |
PreparedStatement | X | O | O | O |
ResultSet | X | O | O | O |
ResultSetMetaData | X | O | O | O |
RowId | X | O | O | O |
Savepoint | X | O | O | O |
Statement | X | O | O | O |
XAConnection | X | O | O | O |
XADataSource | X | O | O | O |
XAResource | X | O | O | O |
GoldilocksInterval | X | O | O | O |
GoldilocksTypes | X | O | O | O |
Embedded SQL
Precompiler Option
The following is a feature matrix for precompiler option.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--help | X | O | O | O |
--include-path | X | O | O | O |
--no-prompt | X | O | O | O |
--output | X | O | O | O |
--unsafe-null | X | O | O | O |
--version | X | O | O | O |
Embedded SQL-only Syntax
The following is a feature matrix of embedded SQL-only syntax.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
EXEC SQL AT | X | O | O | O |
EXEC SQL ATOMIC INSERT | X | O | O | O |
EXEC SQL AUTOCOMMIT | X | O | O | O |
EXEC SQL BEGIN DECLARE SECTION | X | O | O | O |
EXEC SQL COMMIT RELEASE | X | O | O | O |
EXEC SQL CONNECT | X | O | O | O |
EXEC SQL CONTEXT ALLOCATE | X | O | O | O |
EXEC SQL CONTEXT FREE | X | O | O | O |
EXEC SQL CONTEXT USE | X | O | O | O |
EXEC SQL DISCONNECT | X | O | O | O |
EXEC SQL END DECLARE SECTION | X | O | O | O |
EXEC SQL FOR | X | O | O | O |
EXEC SQL GET GROUPID | X | X | X | O |
EXEC SQL INCLUDE | X | O | O | O |
EXEC SQL INCLUDE SQLCA | X | O | O | O |
EXEC SQL OPTION | X | O | O | O |
EXEC SQL ROLLBACK RELEASE | X | O | O | O |
EXEC SQL WHENEVER | X | O | O | O |
Host Variable Data Type
The following is a feature matrix for embedded SQL data type which can be used for HOST variables.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
C native type | X | O | O | O |
struct, union | X | O | O | O |
typedef | X | O | O | O |
VARCHAR | X | O | O | O |
LONG VARCHAR | X | O | O | O |
BINARY | X | O | O | O |
LONG VARBINARY | X | O | O | O |
BOOLEAN | X | O | O | O |
NUMBER | X | O | O | O |
DATE | X | O | O | O |
TIME | X | O | O | O |
TIME WITH TIMEZONE | X | O | O | O |
TIMESTAMP | X | O | O | O |
TIMESTAMP WITH TIMEZONE | X | O | O | O |
INTERVAL YEAR | X | O | O | O |
INTERVAL MONTH | X | O | O | O |
INTERVAL DAY | X | O | O | O |
INTERVAL HOUR | X | O | O | O |
INTERVAL MINUTE | X | O | O | O |
INTERVAL SECOND | X | O | O | O |
INTERVAL YEAR TO MONTH | X | O | O | O |
INTERVAL DAY TO HOUR | X | O | O | O |
INTERVAL DAY TO MINUTE | X | O | O | O |
INTERVAL DAY TO SECOND | X | O | O | O |
INTERVAL HOUR TO MINUTE | X | O | O | O |
INTERVAL HOUR TO SECOND | X | O | O | O |
INTERVAL MINUTE TO SECOND | X | O | O | O |
Dynamic SQL
The following is a feature matrix for dynamic SQL.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
SELECT .. INTO | X | O | O | O |
EXECUTE IMMEDIATE sql | X | O | O | O |
PREPARE stmt | X | O | O | O |
EXECUTE stmt | X | O | O | O |
DECLARE cursor FOR sql | X | O | O | O |
DECLARE cursor FOR stmt | X | O | O | O |
OPEN cursor | X | O | O | O |
OPEN cursor USING | X | O | O | O |
FETCH cursor INTO | X | O | O | O |
CLOSE cursor | X | O | O | O |
DELETE .. WHERE CURRENT OF cursor | X | O | O | O |
UPDATE .. WHERE CURRENT OF cursor | X | O | O | O |
PyDBC
Module
The following is a method feature matrix for pygoldilocks provided by PyDBC.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
connect | X | X | X | O |
Date | X | X | X | O |
Time | X | X | X | O |
Timestamp | X | X | X | O |
DateFromTicks | X | X | X | O |
TimeFromTicks | X | X | X | O |
TimestampFromTicks | X | X | X | O |
Binary | X | X | X | O |
STRING | X | X | X | O |
BINARY | X | X | X | O |
NUMBER | X | X | X | O |
DATETIME | X | X | X | O |
ROWID | X | X | X | O |
getDecimalSeparator | X | X | X | O |
setDecimalSeparator | X | X | X | O |
The following is an attribute feature matrix for pygoldilocks module.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
apilevel | X | X | X | O |
threadsafety | X | X | X | O |
paramstyle | X | X | X | O |
version | X | X | X | O |
lowercase | X | X | X | O |
Connection
The following is a method feature matrix for connection object.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
cursor | X | X | X | O |
commit | X | X | X | O |
rollback | X | X | X | O |
close | X | X | X | O |
getinfo | X | X | X | O |
execute | X | X | X | O |
set_attr | X | X | X | O |
The following is an attribute feature matrix for connection object.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
autocommit | X | X | X | O |
searchescape | X | X | X | O |
timeout | X | X | X | O |
Cursor
The following is a method feature matrix for cursor object.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
excute | X | X | X | O |
executemany | X | X | X | O |
fetchone | X | X | X | O |
fetchall | X | X | X | O |
fetchmany | X | X | X | O |
commit | X | X | X | O |
rollback | X | X | X | O |
skip | X | X | X | O |
nextset | X | X | X | O |
close | X | X | X | O |
setinputsizes | X | X | X | O |
setoutputsize | X | X | X | O |
callproc | X | X | X | O |
callfunc | X | X | X | O |
tables | X | X | X | O |
columns | X | X | X | O |
statistics | X | X | X | O |
rowIdColumns | X | X | X | O |
rowVerColumns | X | X | X | O |
primaryKeys | X | X | X | O |
foreignKeys | X | X | X | O |
procedures | X | X | X | O |
getTypeInfo | X | X | X | O |
The following is an attribute feature matrix for cursor object.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
Description | X | X | X | O |
rowcount | X | X | X | O |
arraysize | X | X | X | O |
connection | X | X | X | O |
fast_executemany | X | X | X | O |
Row
The following is an attribute feature matrix for row object.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
cursor_description | X | X | X | O |
Utility
gcreatedb
Command Usage
The following is a feature matrix for command usage of gcreatedb.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--character_set | O | O | O | O |
--char_length_units | X | O | O | O |
--cluster | X | X | O | O |
--db_comment | O | O | O | O |
--help | O | O | O | O |
--host | X | X | O | O |
--member | X | X | O | O |
--port | X | X | O | O |
--silent | O | O | O | O |
--timezone | X | O | O | O |
glsnr
Command Usage
The following is a feature matrix for command usage of glsnr.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--help | X | O | O | O |
--home | X | X | O | O |
--silent | X | O | O | O |
--start | X | O | O | O |
--status | X | O | O | O |
--stop | X | O | O | O |
Configuration File
The following is a feature matrix for configuration of glsnr.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
BACKLOG | X | O | O | O |
DEFAULT_CS_MODE | X | O | O | O |
LISTENER_LOG_DIR | X | X | O | O |
LISTEN_PORT | X | O | O | O |
TCP_EXCLUDED | X | O | O | O |
TCP_INVITED | X | O | O | O |
TCP_HOST | X | O | O | O |
TCP_VALIDNODE_CHECKING | X | O | O | O |
TIMEOUT | X | O | O | O |
USR_DIR | X | X | O | O |
gsql/gsqlnet
Command Usage
The following is a feature matrix for command usage of gsql.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
username password | O | O | O | O |
--as {SYSDBA|ADMIN} | X | O | O | O |
--conn-string | X | O | O | O |
--dsn | X | O | O | O |
--enable-color | O | O | O | O |
--help | O | O | O | O |
--import | O | O | O | O |
--no-prompt | O | O | O | O |
--prompt | O | O | O | O |
--silent | O | O | O | O |
--version | O | O | O | O |
Interactive gsql Command
The following is a feature matrix for interactive gsql command.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
| O | O | O | O |
| X | O | O | O |
| X | X | O | O |
| X | X | O | O |
| X | X | O | O |
| X | O | O | O |
| X | O | O | O |
| X | O | O | O |
| X | X | X | O |
| X | O | O | O |
| X | O | O | O |
| X | O | O | O |
| X | O | O | O |
| X | O | O | O |
| X | O | O | O |
| X | O | O | O |
| X | O | O | O |
| X | O | O | O |
| X | X | O | O |
| O | O | O | O |
| X | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| X | X | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| X | O | O | O |
| X | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| X | O | O | O |
| O | O | O | O |
| O | O | O | O |
| O | O | O | O |
| X | O | O | O |
| X | O | O | O |
| O | O | O | O |
gloader/gloadernet
Command Usage
The following is a feature matrix for command usage of gloader.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
username password | O | O | O | O |
--array | O | O | O | O |
--atomic | O | O | O | O |
--bad | O | O | O | O |
--buffered | X | O | O | O |
--commit | O | O | O | O |
--control | O | O | O | O |
--data | O | O | O | O |
--dsn | X | O | O | O |
--errors | X | O | O | O |
--export | O | O | O | O |
--fieldterm | X | X | O | O |
--filesize | X | O | O | O |
--format | X | O | O | O |
--help | O | O | O | O |
--import | O | O | O | O |
--lineterm | X | X | O | O |
--log | O | O | O | O |
--no-prompt | O | O | O | O |
--parallel | O | O | O | O |
--propagation | X | O | O | O |
--qualifier | X | X | O | O |
--silent | O | O | O | O |
--AsTIMESTAMP | X | O | O | O |
--where | X | X | X | O |
Control File Syntax
The following is a feature matrix for control file syntax of gloader.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
CHARACTERSET | X | O | O | O |
FIELDS TERMINATED BY | O | O | O | O |
OPTIONALLY ENCLOSED BY | O | O | O | O |
TABLE table_name | O | O | O | O |
TABLE schema_name.table_name | X | O | O | O |
LTRIM | X | X | O | O |
RTRIM | X | X | O | O |
LINES TERMINATED BY | X | X | O | O |
WHERE | X | X | X | O |
gdump
Command Usage
The following is a feature matrix for command usage of gdump.
Item | Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|---|
Common arguments | --silent | X | O | O | O |
File type | BACKUP | X | O | O | O |
COMMIT_LOG | X | X | O | O | |
CONTROL | X | O | O | O | |
DATA | X | O | O | O | |
LOG | X | O | O | O | |
LOG_BUFFER | X | X | O | O | |
PEND_BUFFER | X | X | O | O | |
PROPERTY | X | O | O | O | |
BACKUP file arguments | --body | X | O | O | O |
--tbs | X | O | O | O | |
--number | X | O | O | O | |
--fetch | X | O | O | O | |
CONTROL file arguments | --section | X | O | O | O |
DATA file arguments | --header | X | O | O | O |
--number | X | O | O | O | |
--fetch | X | O | O | O | |
LOG file arguments | --all | X | X | O | O |
--fetch | X | O | O | O | |
--header | X | X | O | O | |
--number | X | O | O | O | |
--offset | X | O | O | O |
tablediff
Configuration File
The following is a feature matrix for configuration file of tablediff.
Item | Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|---|
Source table | SOURCE_PASSWORD | X | O | O | O |
SOURCE_SCHEMA | X | O | O | O | |
SOURCE_TABLE | X | O | O | O | |
SOURCE_URL | X | O | O | O | |
SOURCE_USER | X | O | O | O | |
Target table | TARGET_PASSWORD | X | O | O | O |
TARGET_SCHEMA | X | O | O | O | |
TARGET_TABLE | X | O | O | O | |
TARGET_URL | X | O | O | O | |
TARGET_USER | X | O | O | O | |
Sync operation | TARGET_INSERT | X | O | O | O |
TARGET_UPDATE | X | O | O | O | |
TARGET_DELETE | X | O | O | O | |
SOURCE_INSERT | X | O | O | O | |
Operation options | DIFF_BIN_FILE | X | O | O | O |
DIFF_OUT_FILE | X | O | O | O | |
DISPLAY_CALL_STACK | X | O | O | O | |
DISPLAY_ROW_UNIT | X | O | O | O | |
EXCLUDE_COLUMNS | X | O | O | O | |
LOGGING_ON_DIFF | X | O | O | O | |
LOGGING_ON_SUCCESS | X | O | O | O | |
JOB_QUEUE_SIZE | X | O | O | O | |
JOB_THREAD | X | O | O | O | |
JOB_UNIT_SIZE | X | O | O | O | |
PARTITION_RANGE | X | O | O | O | |
SYNC_OUT_FILE | X | O | O | O | |
WHERE_CLAUSE | X | O | O | O |
gsyncher
Command Usage
The following is a feature matrix for command usage of gsyncher.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--log | X | O | O | O |
--silent | X | O | O | O |
--home | X | X | O | O |
--copy-right | X | O | O | O |
--backup-path | X | O | O | O |
--help | X | O | O | O |
gmon
Command Usage
The following is a feature matrix for command usage of gmon.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--start | X | X | O | O |
--stop | X | X | O | O |
--status | X | X | O | O |
--home | X | X | O | O |
--silent | X | X | O | O |
--no-copyright | X | X | O | O |
--help | X | X | O | O |
gtrclogger
Command Usage
The following is a feature matrix for command usage of gtrclogger.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--dir | X | X | O | O |
--help | X | X | O | O |
--port | X | X | O | O |
--start | X | X | O | O |
--stop | X | X | O | O |
glocator
Command Usage
The following is a feature matrix for command usage of glocator.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--create | X | X | O | O |
--start | X | X | O | O |
--stop | X | X | O | O |
--conf | X | X | O | O |
--status | X | X | O | O |
--sync | X | X | X | O |
--silent | X | X | O | O |
--no-copyright | X | X | O | O |
--help | X | X | O | O |
Configuration File
The following is a feature matrix for configuration file of glocator.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
PORT | X | X | O | O |
WORKER_COUNT | X | X | O | O |
SESSION_QUEUE_SIZE | X | X | O | O |
SESSION_ALLOCATOR_SIZE | X | X | O | O |
PACKET_ALLOCATOR_SIZE | X | X | O | O |
SYSTEM_LOGGER_DIR | X | X | O | O |
SYSTEM_UDS_DIR | X | X | O | O |
LOCATION_FILE_DIR | X | X | O | O |
LOCATION_FILE_SIZE | X | X | O | O |
LOCATION_FILE_MAX_SIZE | X | X | O | O |
SESSION_TIMEOUT | X | X | O | O |
FAILOVER_TIMEOUT | X | X | O | O |
ALTERNATE_LOCATORS | X | X | X | O |
SYNC_RETRY_COUNT | X | X | X | O |
SYNC_RESPONSE_TIMEOUT | X | X | X | O |
gagent
Command Usage
The following is a feature matrix for command usage of gagent.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--start | X | X | O | O |
--stop | X | X | O | O |
--conf | X | X | O | O |
--status | X | X | O | O |
--home | X | X | O | O |
--silent | X | X | O | O |
--no-copyright | X | X | O | O |
--help | X | X | O | O |
Configuration File
The following is a feature matrix for configuration file of gagent.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
PORT | X | X | O | O |
LOCATOR_HOST | X | X | O | O |
LOCATOR_PORT | X | X | O | O |
COMMAND_QUEUE_SIZE | X | X | O | O |
COMMAND_ALLOCATOR_SIZE | X | X | O | O |
PACKET_ALLOCATOR_SIZE | X | X | O | O |
SYSTEM_LOGGER_DIR | X | X | O | O |
SESSION_TIMEOUT | X | X | O | O |
UPDATE_LOCATION_TIME | X | X | O | O |
ALTERNATE_LOCATORS | X | X | X | O |
gloctl
Command Usage
The following is a feature matrix for command usage of gloctl.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--dsn | X | X | O | X |
--conf | X | X | X | O |
--ip | X | X | O | O |
--port | X | X | O | O |
--import | X | X | O | O |
--silent | X | X | O | O |
--no-copyright | X | X | O | O |
--help | X | X | O | O |
Configuration File
The following is a feature matrix for configuration file of gloctl.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
PORT | X | X | X | O |
LOCATOR_HOST | X | X | X | O |
LOCATOR_PORT | X | X | X | O |
Replication
cyclone
Command Usage
The following is a feature matrix for command usage of cyclone.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--conf | X | O | O | O |
--encrypt | X | X | O | O |
--group | X | O | O | O |
--help | X | O | O | O |
--key | X | X | O | O |
--master | X | O | O | O |
--reset | X | O | O | O |
--silent | X | O | O | O |
--slave | X | O | O | O |
--start | X | O | O | O |
--status | X | O | O | O |
--stop | X | O | O | O |
--sync | X | O | O | O |
--stand-alone | X | X | X | O |
--recovery | X | X | X | O |
--local | X | X | X | O |
Configuration File
The following is a feature matrix for configuration file of cyclone.
Configuration | Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|---|
Common configuration | COMM_CHUNK_COUNT | X | O | O | O |
DSN | X | O | O | O | |
USER_ENCRYPT_PW | X | X | O | O | |
GROUP_NAME | X | O | O | O | |
HOST_IP | X | O | O | O | |
HOST_EXTERNAL_IP | X | X | O | O | |
HOST_PORT | X | O | O | O | |
PORT | X | O | O | O | |
PROTOCOL | X | X | O | O | |
USER_ID | X | O | O | O | |
USER_PW | X | O | O | O | |
MASTER configuration | CAPTURE_TABLE | X | O | O | O |
LOG_PATH | X | O | O | O | |
READ_LOG_BLOCK_COUNT | X | O | O | O | |
TRANS_SORT_AREA_SIZE | X | O | O | O | |
TRANS_FILE_PATH | X | O | O | O | |
SYNCHER_COUNT | X | O | O | O | |
SYNC_ARRAY_SIZE | X | O | O | O | |
GIVEUP_INTERVAL | X | O | O | O | |
LOG_CAPTURE_INTERVAL_1 | X | X | O | O | |
LOG_CAPTURE_INTERVAL_2 | X | X | O | O | |
SLAVE configuration | APPLIER_COUNT | X | O | O | O |
APPLY_ARRAY_SIZE | X | O | X | X | |
APPLY_COMMIT_SIZE | X | O | O | O | |
APPLY_TABLE | X | O | O | O | |
MASTER_IP | X | O | O | O | |
PROPAGATE_MODE | X | O | O | O | |
CLUSTER | X | X | X | O | |
ORACLE_DRIVER | X | X | X | O |
logmirror
Command Usage
The following is a feature matrix for command usage of logmirror.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--conf | X | O | O | O |
--help | X | O | O | O |
--infiniband | X | O | O | O |
--master | X | O | O | O |
--silent | X | O | O | O |
--slave | X | O | O | O |
--start | X | O | O | O |
--stop | X | O | O | O |
Configuration File
The following is a feature matrix for configuration file of logmirror.
Configuration | Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|---|
Common configuration | PORT | X | O | O | O |
MASTER configuration | DSN | X | O | O | O |
HOST_IP | X | O | O | O | |
HOST_PORT | X | O | O | O | |
PROTOCOL | X | X | O | O | |
USER_ID | X | O | O | O | |
USER_PW | X | O | O | O | |
SLAVE configuration | LOG_PATH | X | O | O | O |
MASTER_IP | X | O | O | O |
cymon
Command Usage
The following is a feature matrix for command usage of cymon.
Feature | 1.x | 2.x | 3.1 | 3.2 |
|---|---|---|---|---|
--conf | X | O | O | O |
--help | X | O | O | O |
--cycle | X | O | O | O |
--key | X | X | O | O |
--start | X | O | O | O |
--stop | X | O | O | O |
--status | X | O | O | O |
What's New in GOLDILOCKS 3.2
This chapter briefly describes the features added to GOLDILOCKS 3.2.
Architecture
System Architecture
It has not been changed.
Storage Internal
It has not been changed.
Transaction Control
It has not been changed.
Backup & Recovery
It has not been changed.
Database Information
DICTIONARY_SCHEMA
The following views have been added to enquire the information about audit policy object.
AUDIT_TRAIL has been added to enquire the audit record.
The following views are deleted.
ALL_COL_PLACE
DBA_COL_PLACE
USER_COL_PLACE
INFORMATION_SCHEMA
It has not been changed.
PERFORMANCE_VIEW_SCHEMA
The following views have been added to enquire the information which can be listed in a system action and in a privilege action when defining audit policy options.
Server Property
Property for Global Temporary Table Has Been Added
TEMP_UNDO_ENABLED property has been added to assign the undo logging tablespace for the global temporary table. TEMP_SEGMENT_CACHE_SIZE has been added to assign the segment cache size of the global temporary table or the global temporary index.
Recompile Feature Based on the Change of Pages Are Deleted
The recompile feature based on the change of pages, which is supported until 3.1, are deleted. Therefore, the following properties are not supported any more.
Property for Auxiliary Tablespace Has Been Added
SYSTEM_MEMORY_AUX_TABLESPACE_SIZE property has been added to determine the size of the auxiliary tablespace
Property for Communication Data Compression Has Been Added
PACKET_COMPRESSION_THRESHOLD property has been added to determine whether to compress the communication data.
Property for Redo Log Compression Has Been Added
REDO_LOG_COMPRESSION_THRESHOLD property has been added to determine whether to compress the redo log.
USE_LARGE_PAGES Property Has Been Added
USE_LARGE_PAGES property has been added to use HugePage.
SQL
SQL Element
Data Type
It has not been changed.
Function
The following aggregation functions related to variation have been added. STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP The string function REVERSE has been added. The date function MONTHS_BETWEEN has been added.
Object
Audit Policy
Audit policy object which can audit SQL performance has been added.
Global Temporary Table
Global temporary table which is a temporary table depending on the session has been added.
SQL Language
Parallel Processing of ANALYZE TABLE Statement
Parallel processing option has been added to ANALYZE TABLE statement.
Audit Policy DDL
The following DDLs which can control audit policy objects have been added.
Creating audit policy
Dropping audit policy
Altering audit policy
Activating audit policy
Deactivating audit policy
Dropping audit trail
User DDL
User's default index tablespace has been added.
Creating a user
Altering a user
Table DDL
The following DDLs which alters the table object have been added.
Altering the name of the table constraints
Altering the table properties
Altering the specific shard name of a table in a cluster environment
DDL creating global temporary table has been added.
Index DDL
The following DDL altering an index object has been added.
Altering the index name
Cluster System DDL
The following DDL altering a cluster system object has been added.
Assigning an irrecoverable cluster member
System DCL
The following DCL controlling a system object has been added.
Setting the reconnection of a session using GLOBAL CONNECTION
API
ODBC
odbc.ini
LOCATOR_SERVICE and PACKET_COMPRESSION_THRESHOLD have been added to odbc.ini file as a data source name keyword.
ALTERNATE_LOCATORS and CONNECTION_TIMEOUT have been added as a location keyword.
GLOBAL CONNECTION
It supports global connection.
Statement Attributes
SQL_ATTR_FETCH_FAILOVER has been added to the statement property values.
JDBC
Connection Property
packet_compression_threshold has been added to connection property.
Embedded SQL
EXEC SQL GET GROUPID INTO statement has been added.
PDO
PDO driver which can access GOLDILOCKS from PDO has been added from Venus 3.2 version.
PyDBC
PyDBC which is API for python language is provided from Venus 3.2 version.
Ruby
Ruby driver which is API for ruby language is provided from Venus 3.2 version.
Hibernate
The source which can interwork with hibernate, Java ORM framework, is provided from Venus 3.2 version.
Utility
gcreatedb
It has not been changed.
glsnr
It has not been changed.
gsql/gsqlnet
DDL Output of an Audit Policy Object
\ddl_audit_policy, an interactive command, has been added to output DDL of an audit object.SET HEADING {ON | OFF}
\set heading has been added to set whether to output the header in the query result.gloader/gloadernet
WHERE Clause
The following conditional clauses can be set in an export (data download).
--group-id
gloader command argument --group-id has been added.
--directio-size
gloader command argument --directio-size has been added.
gdump
It has not been changed.
tablediff
It has not been changed.
gsyncher
It has not been changed.
gmon
It has not been changed.
gtrclogger
It has not been changed.
glocator
Configuration
ALTERNATE_LOCATORS has been added as a configuration keyword which is related to the replication.
Argument
--sync option has been added to an argument.
gagent
Configuration
ALTERNATE_LOCATORS has been added as a configuration keyword.
gloctl
Configuration
Configuration file which sets the driving environment of gloctl has been added.
conf option which assigns the configuration file has been added.
--dsn
dsn option of when driving gloctl is deleted.
Replication
cyclone
Recovery function has been added.
Operating CYCLONE in Cluster function has been added.
Database supporting the slave supports ORACLE_DRIVER as well as GOLDILOCKS.
Executing optionsof the standalone have been added.
Local executing options have been added.
logmirror
It has not been changed.
cymon
It has not been changed.
Patch Notes
3.2.14 Patch Note
ISSUE-6253 It supports the property to use the normal page when it fails to allocate the shared memory using the large page.
Description
It supports USE_LARGE_PAGES property. This property allows to use the normal page and the large page when allocating the shared memory. This property also allows to allocate the shared memory using the normal page when it fails to allocate the shared memory using the large page.
Workaround
The patch is required.
3.2.13 Patch Note
ISSUE-5862 If the connection object is shared in the multi-thread program of JDBC, the deadlock occurs.
Description
If the connection object is shared and used in the multi-thread program, the deadlock occurs.
Workaround
Create each different connection object per the thread, and use them.
3.2.12 Patch Note
ISSUE-4362 It is abnormally terminated because cserver refers to the freed memory in the cluster.
Description
If executing another dml after freeing the memory used in c server session when the remote member performs dml in the cluster, then it is abnormally terminated. It is because it uses the freed memory, and this is a bug, but this error has been fixed.
3.2.11 Patch Note
ISSUE-3869 The result of row status is wrong when executing array fetch in ODBC.
Description
When executing array fetch in ODBC, the status value of the row can be seen after calling SQLFetch function. If the returned value of SQLFetch is not SQL_SUCCESS, then it is required to check the row status or the diagnostic. However, even when the returned value of SQLFetch is SQL_SUCCESS_WITH_INFO, the diagnostic message is seen but all row statuses are SQL_ROW_SUCCESS, which are wrong.
Symptom
The following is the string data which can not be converted to number.
CREATE TABLE T1 ( I1 VARCHAR(10) ); INSERT INTO T1 VALUES ( '1' ); INSERT INTO T1 VALUES ( '2A' ); INSERT INTO T1 VALUES ( '3' ); INSERT INTO T1 VALUES ( 'AB' ); COMMIT;
The following is a part of an example of executing array fetch after converting the data above to the numeric type.
sRet = SQLPrepare( sStmt,
(SQLCHAR*)"SELECT I1 FROM T1 ORDER BY I1",
SQL_NTS );
sRet = SQLBindCol( sStmt,
1,
SQL_C_LONG,
sI1,
sizeof(SQLINTEGER),
sI1Ind );
sRet = SQLSetStmtAttr( sStmt,
SQL_ATTR_ROW_BIND_TYPE,
(SQLPOINTER)SQL_BIND_BY_COLUMN,
0 );
sRet = SQLSetStmtAttr( sStmt,
SQL_ATTR_ROW_STATUS_PTR,
sRowStatus,
0 );
sRet = SQLExecute( sStmt );
sRet = SQLFetch( sStmt );
switch( sRet )
{
case SQL_SUCCESS_WITH_INFO:
for( i = 0; i < sFetched; i++ )
printf( "row status: %d\n", sRowStatus[i]);
break;
default
break;
}The data can not be converted to number is included, but all row statuses are SQL_ROW_SUCCESS.
row status: 0 row status: 0 row status: 0 row status: 0
Workaround
The patch is required.
ISSUE-3534 gagent does not shutdown the server, but the server is terminated by itself during the cluster failover process.
Description
If gagent receives the non-viability result during the cluster failover process, then gagent used to shutdown the server by executing SHUTDOWN ABORT. However it has been changed so the server is terminated by itself.
ISSUE-3534 glocator is changed to transfer the result only to gagent which enquired while processing the cluster failover.
Description
glocator transfers the failover result not only to gagent which enquired but also to another gagent which is a failover target, during the cluster failover process. However, in this case, gagent which is a failover target also transfers a query to glocator to process the cluster failover. Therefore, glocator is changed to transfer the result only to gagent which enquired.
ISSUE-3314 When registerOutParameter() and set..() which are the method of CallableStatement in JDBC are used in the same parameter, then the normal value can not be get.
Description
A bind type is set to INPUT OUTPUT by using registerOutParameter() method and set...() method to get the out parameter value by calling the procedure whose bind type is not clear by using CallableStatement. Then, it does not return the normal value when calling get...() method to get the result value of the out parameter.
Symptom
Create a table and a procedure as follows.
CREATE TABLE PROC_TABLE ( I1 INTEGER );
INSERT INTO PROC_TABLE VALUES ( 1 );
INSERT INTO PROC_TABLE VALUES ( 2 );
INSERT INTO PROC_TABLE VALUES ( 3 );
INSERT INTO PROC_TABLE VALUES ( 4 );
INSERT INTO PROC_TABLE VALUES ( 5 );
INSERT INTO PROC_TABLE VALUES ( 6 );
COMMIT;
CREATE OR REPLACE PROCEDURE PROC_TEST_1( A1 INTEGER, A2 OUT INTEGER )
IS
BEGIN
SELECT COUNT(*)
INTO A2
FROM PROC_TABLE
WHERE I1 >= A1;
END;
/The following is a result of calling the procedure PROC_TEST_1 in gsql. The result value is stored in the out value of the second parameter.
gSQL> var v1 integer gSQL> var v2 integer gSQL> exec :v1 := 1 gSQL> call proc_test_1 (:v1,:v2); Procedure Call complete. gSQL> print NAME VALUE ------------------ ----- VAR_ELAPSED_TIME__ null V1 1 V2 6 gSQL>
The following is a part of the program code, calling procedure PROC_TEST_1.
CallableStatement sCstmt = aCon.prepareCall( "CALL PROC_TEST_1( ?, ? )" );
sCstmt.setInt( 1, 1 );
sCstmt.setInt( 2, 1 );
sCstmt.registerOutParameter( 1, Types.INTEGER );
sCstmt.registerOutParameter( 2, Types.INTEGER );
sCstmt.execute();
System.out.println("OUTPUT: " + sCstmt.getInt(1) + ", " + sCstmt.getInt(2) );
sCstmt.close();When executing the program, then the out parameter value is stored in the first parameter as follows instead of the second parameter.
OUTPUT: 6, 0
Workaround
Make sure the input, output types as follows, and avoid using set method neither registerOutParameter method above, then the normal result is output.
CallableStatement sCstmt = aCon.prepareCall( "CALL PROC_TEST_1( ?, ? )" );
sCstmt.setInt( 1, 1 );
sCstmt.registerOutParameter( 2, Types.INTEGER );
sCstmt.execute();
System.out.println("OUTPUT: " + sCstmt.getInt(1) + ", " + sCstmt.getInt(2) );
sCstmt.close();OUTPUT: 1, 6
ISSUE-3302 An error occurs when executing getBytes() method which is the method of CallableStatement in JDBC.
Description
When the out parameter type in CallableStatement is either BINARY, VARBINARY or LONG VARBINARY, then using getBytes() method causes an error.
Symptom
The following is an example of registering the out parameter as Types.BINARY in CallableStatement.
CallableStatement sCStmt = aCon.prepareCall( "BEGIN ? := x'aaff'; END; " ); sCStmt.registerOutParameter(1, java.sql.Types.BINARY); sCStmt.executeUpdate(); byte[] sValue = sCStmt.getBytes(1);
When executing the program containing the codes above, then an error occurs.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1 at indep.jdbc.dt.RowCache.readBytes(RowCache.java:637) at indep.jdbc.dt.Column.getBytes(Column.java:589) at indep.jdbc.core.JdbcCallableStatement.getBytes(JdbcCallableStatement.java:316)
Workaround
The patch is required.
gloader command argument --group-id has been added.
Description
--group-id argument uploads the data in the sharded table by group in the cluster environment.
gloader command argument --directio-size has been added.
Description
--directio-size argument is used to modify the direct IO size.
3.2.10 Patch Note
ISSUE-3253 When recovering the offline tablespace during the service, then it does not recover the log written on the log buffer.
Description
When switching the offline tablespace in GOLDILOCKS to online, it may requires the recovery or may not. The recovery is required when IMMEDIATE option is used in the offline statement, or when that tablespace was shifted to offline due to an error occurred in the data file during the operation. In this case, the log about that tablespace may remain in the buffer, but the recovery is performed only with the logs written on the log file, so the system can be abnormally terminated or the database becomes inconsistent.
Symptom
It creates the table T1 in the tablespace created by a user, then deletes the datafile and creates the checkpoint while the transaction TX1 updates T1. If the datafile does not exists while performing the checkpoint, then it shifts that tablespace to offline, then rolls back the transaction TX1. Moreover, if recovering the offline tablespace and shifting to online when the log in the log buffer is not written on the disk yet, then the it is abnormally terminated.
Workaround
The patch is required.
ISSUE-3222 When GOLDILOCKS system process in the cluster environment hangs up, then the entire system stops.
Description
If the GOLDILOCKS system process of the remote cluster member hangs up, so it can not transfer the respond when waiting for the response after transferring the protocol to the remote cluster member in the cluster environment, then not only the session waiting for the response but also the entire system stops. It happens because the query timeout or the session status is not checked for the protocol which should receive the respond within GOLDILOCKS. This error has been fixed by terminating the session which does not responds within the specified time or by making the remote cluster member which does not responds to be failover then proceeding the service.
When using the policy terminating the session, it waits for the time (seconds) specified in CLUSTER_PROTOCOL_SESSION_FATAL_POLICY_TIMEOUT, then terminates the session. However, when using the failover policy, it waits for the time (seconds) specified in CLUSTER_PROTOCOL_FAILOVER_POLICY_TIMEOUT, then it makes the remote cluster member which does not responds to be failover.
Symptom
When committing in the session connected to G1N1 after making the commit server of G1N2 member in an 1 by 2 cluster which consists of G1N1, G1N2 to hang up, then the session can not receive the response so stops.
When performing ALTER SYSTEM SWITCH LOGFILE in the session connected to G1N1 after making the gmaster of G1N2 member to hangup, then the session can not receive the response and stops.
Workaround
The patch is required.
ISSUE-3175 gpec can not process the annotation in #define statement.
Description
If an annotation exists in #define statements, then gpec can not process it.
Symptom
The macro AA in the following gc file should be same, which is 1. However, gpec can not process the annotation in the macro, so it is processed wrong. If gpec processes the following gc file, then the warning message is output.
#define AA 1 /* comment */ #define AA 1
ERR-42000(41028): 'AA' macro is already defined at line 3, in file test.gc
Workaround
The patch is required.
ISSUE-3175 gpec can not process define statement normally in #if, #else.
Description
If #define is used between #if and #endif or between #else and #endif, the gpec can not normally process it.
Symptom
If #define which belongs to the false condition exists between #if and #endif or between #else and #endif, the gpec should not process it, but it actually processes it.
gpec should not process #define AA 2 which is the false condition in the following gc file, but actually gpec does not ignore it instead processes it so that an error occurs.
#if 1 #define AA 1 #else #define AA 2 #endif
ERR-42000(41028): 'AA' macro is already defined at line 4, in file test.gc
Workaround
The patch is required.
ISSUE-3175 The number #define statements which are processed by gpec is fixed.
Description
The number of #define statements managed by gpec is fixed into 256, and if it exceeds 256, then an error occurs.
Symptom
If the number of each different #define statements in the gc file exceed 256, then the following error occurs.
ERR-42000(41000): syntax error at line 258, in file test.gc ERR-42000(41027): too many 'define' macro (256)
Workaround
The patch is required.
ISSUE-3175 gpec can not process the empty bracket annotation normally.
Description
If the bracket annotation containing any contents comes next to the empty bracket annotation such as /**/ , then gpec can not parsing it normally.
Symptom
An empty bracket annotation and an ordinary bracket annotation are used together in the following gc file.
/**/ EXEC SQL BEGIN DECLARE SECTION; int value; EXEC SQL END DECLARE SECTION; /* comment */ EXEC SQL SELECT 1 INTO :value FROM DUAL;
If gpec parses this gc file, then the following error occurs during the progress.
ERR-42000(41000): syntax error at line 8, in file a.gc:
SELECT 1 INTO :value FROM DUAL;
^ ^
Error at line 1
ERR-42000(41002): Host variable "value" not declared
ERR-42000(41006): Fatal error while doing embedded SQL precompilingWorkaround
Do not use an empty bracket annotation.
ISSUE-3243 When glsnr receives the wrong protocol it is terminated.
Description
When glsnr receives the wrong protocol, then it is terminated, and this error has been fixed. After the modification glsnr is not terminated though the following log message is output.
2020-01-15 17:57:51.835036 THREAD(27742,139777341413120)] [LISTENER] Invalid communication protocol : 192.168.0.123
Symptom
When glsnr receives the wrong protocol, glsnr outputs the following log message then is terminated.
[2020-01-15 11:14:28.738666 THREAD(5706,140285308184384)] [LISTENER] abnormally terminated ERR-08S01(24001): Invalid communication protocol
Workaround
The patch is required.
ISSUE-3174 LOCALITY_GROUP_POLICY, LOCALITY_GROUP_PATH, LOCALITY_MEMBER_POLICY, LOCALITY_MEMBER_PATH have been added to ODBC properties.
Description
The followings have been added to ODBC properties.
LOCALITY_GROUP_POLICY
LOCALITY_GROUP_PATH
LOCALITY_MEMBER_POLICY
LOCALITY_MEMBER_PATH
ISSUE-3220 When multiple subquery conditions exists for more than three joins, some subquery conditions are omitted
Description
If two or more subquery conditions exist when joining three more more tables, then the location in which the subquery conditions are processes is determined. (push-down subquery filter) In this case, if the first subquery condition is placed at the lowest table, and the second subquery condition is placed at the upper join, then the first subquery condition is omitted.
Symptom
Create the table and the data as follows.
CREATE TABLE r ( r_c1 INTEGER,
r_c2 INTEGER );
COMMIT;
CREATE TABLE s ( s_c1 INTEGER,
s_c2 INTEGER );
COMMIT;
CREATE TABLE t ( t_c1 INTEGER,
t_c2 INTEGER );
COMMIT;
CREATE TABLE u ( u_c1 INTEGER,
u_c2 INTEGER );
COMMIT;
CREATE TABLE v ( v_c1 INTEGER,
v_c2 INTEGER );
COMMIT;
INSERT INTO r VALUES ( 1, 1 );
INSERT INTO s VALUES ( 1, 1 );
INSERT INTO t VALUES ( 1, 1 );
INSERT INTO u VALUES ( 1, 1 );
INSERT INTO v VALUES ( 1, 1 );
COMMIT;If EXISTS condition exists like as the following query, then the result satisfying the condition does not exist.
SELECT
*
FROM r,
s,
t
WHERE r_c1 = s_c1
AND s_c1 = t_c1
AND EXISTS (
SELECT u_c1
FROM u
GROUP BY u_c1
HAVING u_c1 < 0
)
;
no rows selected.However, if AND NOT EXISTS subquery condition is inserted to the query above as follows, then the wrong query result is created.
--# wrong result
SELECT
*
FROM r,
s,
t
WHERE r_c1 = s_c1
AND s_c1 = t_c1
AND EXISTS (
SELECT u_c1
FROM u
GROUP BY u_c1
HAVING u_c1 < 0
)
AND NOT EXISTS ( SELECT *
FROM v
WHERE v_c1 = r_c1 + s_c1 )
;
R_C1 R_C2 S_C1 S_C2 T_C1 T_C2
---- ---- ---- ---- ---- ----
1 1 1 1 1 1
1 row selected.Workaround
Insert NO_PUSH_SUBQ hint to NOT EXISTS subquery as follows, then the correct result is obtained.
SELECT
*
FROM r,
s,
t
WHERE r_c1 = s_c1
AND s_c1 = t_c1
AND EXISTS (
SELECT u_c1
FROM u
GROUP BY u_c1
HAVING u_c1 < 0
)
AND NOT EXISTS ( SELECT /*+ NO_PUSH_SUBQ */ *
FROM v
WHERE v_c1 = r_c1 + s_c1 )
;
no rows selected.ISSUE-3199 It can not be processed normally when obtaining GroupId in array in EmbeddedSQL.
Description
The program is abnormally terminated when obtaining GroupId in array then executing the cached SQL statement again.
Symptom
EXEC SQL BEGIN DECLARE SECTION;
int sGroupId[5];
int sValue[5];
EXEC SQL END DECLARE SECTION;
int i;
for( i = 0; i < 5; i++ ) {
sValue[i] = i;
}
EXEC SQL GET GROUPID INTO: sGroupId
INSERT INTO TEST_T1 VALUES( :sValue );
EXEC SQL
INSERT INTO TEST_T1 VALUES( :sValue );The program is abnormally terminated if performing the cached INSERT INTO TEST_T1 VALUES( :sValue ) statement again.
Workaround
Do not use an array, otherwise alter the host variable not to use the cached SQL statement.
ISSUE-3197 gpec can not process < ... > string normally.
Description
If < > exists on the same line, then gpec can not parsing it normally.
Symptom
for( i = 0; i < 5; i++ ) { // > COMMENT
sValue[i] = i;
}It can not process < 5; i++ ) { // > string normally, so an error occurs when performing gpec.
Workaround
Write the gc file by relocating the bracket or the comment as follows.
for( i = 0; i < 5; i++ ) // > COMMENT
{
sValue[i] = i;
}for( i = 0; i < 5; i++ ) {
// > COMMENT
sValue[i] = i;
}3.2.9 Patch Note
ISSUE-3188 set heading has been added in gsql.
Description
It can be set whether to output the header in the query result by using set heading {on|off}.
3.2.8 Patch Note
ISSUE-3175 gpec can not process a non-ascii character.
Description
When gpec processes the preprocessor whose #if, #ifdef, #elif and #else are false groups, the contents in the group are converted into whitespaces. However, a non-ascii character in the false group is not converted into a whitespace.
Symptom
#if 0
EXEC SQL INSERT INTO TEST_T1 VALUES( :sC1, :sC2 ); -- 주석
#endifWhen gpec processes the example above, then all contents should be converted into whitespaces, but a non-ascii character remains the same.
주석
Workaround
Process a non-ascii character in a form of c annotation.
ISSUE-2958 The group ID of the SQL statement can be obtained in the embedded SQL.
Description
It obtains the the group ID of the delete/ insert/ select/ update statement in the table in which the shard key is set, in the cluster environment which uses the global connection. For more information, refer to EXEC SQL GET GROUPID INTO.
ISSUE-3186 When two nodes are abnormally terminated at a time, then a hang may occur during the failover.
Description
When a domain coordinator node and a global coordinator node are abnormally terminated at a time, then a hang may occur during the failover, and this error has been fixed.
Symptom
A hang may occur during the failover, then the online transaction service of the groups to which the abnormally terminated nodes belong may stop operating.
Workaround
The patch is required.
3.2.7 Patch Note
ISSUE-3093 An error occurs while gpec parses the preprocessor #define.
Description
An error occurs when C reserved word comes to the alternative string of the preprocessor #define.
Symptom
#define SQLCA_STORAGE_CLASS extern
A parsing error occurs when executing gpec.
$ gpec test.gc FileName: test.gc Pre-compile test.gc -> test.c ERR-42000(41000): syntax error at line 1, in file test.gc: #define SQLCA_STORAGE_CLASS extern ............................^ Error at line 1, in file test.gc
Workaround
Define the keyword in an ordinary header file which does not execute gpec.
3.2.6 Patch Note
ISSUE-3149 gpec can not parse the file normally which uses a structure array in SELECT INTO statement.
Description
gpec can not process the gc file normally which uses a structure array as a host variable in SELECT INTO statement.
Symptom
EXEC SQL BEGIN DECLARE SECTION;
typedef struct AA
{
char c1[10+1];
char c2[10+1];
char c3[10+1];
char c4[10+1];
} AA;
AA sArr[10];
EXEC SQL END DECLARE SECTION;
EXEC SQL SELECT c1,c2,c3, c4
INTO :sArr FROM EMP;
STL_TRY(sqlca.sqlcode == 0);SELECT INTO statement in the example above is altered to the following incorrect statement.
sqlargs.sqlstmt = (char *)"SELECT c1,c2,c3,c4\n" " INTO :sArr ?, ?FROM EMP\n"
Workaround
The patch is required.
ISSUE-3145 SSA is increasing due to allocating the new memory even though the available memory exists in the session.
Description
The memories used after the session is started can be reused, and it is managed into multiple levels according to its size for an efficient memory allocation for the memory fragment. However, the new memory chunk is allocated when reallocating the released memory instead of the memory which is available to be reallocated to minimize the fragment, then it continuously increases SSA, and this error has been fixed.
Symptom
When viewing V$SYSTEM_MEM_STAT while retrieving the table which includes LONG VARBINARY type, it can be viewed that VARIABLE_STATIC_ALLOC_SIZE is continuously increasing.
gSQL> SELECT STAT_NAME, ROUND(STAT_VALUE/1024/1024) FROM V$SYSTEM_MEM_STAT WHERE STAT_NAME = 'VARIABLE_STATIC_ALLOC_SIZE'; STAT_NAME ROUND(STAT_VALUE/1024/1024) -------------------------- --------------------------- VARIABLE_STATIC_ALLOC_SIZE 1800.25 1 row selected. gSQL> SELECT STAT_NAME, ROUND(STAT_VALUE/1024/1024) FROM V$SYSTEM_MEM_STAT WHERE STAT_NAME = 'VARIABLE_STATIC_ALLOC_SIZE'; STAT_NAME ROUND(STAT_VALUE/1024/1024) -------------------------- --------------------------- VARIABLE_STATIC_ALLOC_SIZE 3663.41 1 row selected.
Workaround
The patch is required.
ISSUE-3144 gloader can not import the data normally when the first character of the field delimiter and that of the line terminator are the same.
Description
If the first character of the field delimiter and that of the line terminator are the same, then the data may be missing or gloader process may be abnormally terminated.
Symptom
>$ cat test.dat 1234^C2^C3456^S >$ gloader test test -i --tablename TEST --fieldterm ^C --lineterm ^R\n --data test.dat gSQL> SELECT * FROM TEST I1 I2 I3 ---- -- ------- 1234 C2 3456S 1 row selected.
The first character of the field delimiter and that of the line terminator are the same, which is ^. The correct result value of the column I3 when gloader imported the data is supposed to be 3456^S, but the actual value is an incorrect value in which ^ is missing.
Workaround
Use different characters for the first character of the field delimiter and that of the line terminator each other.
3.2.5 Patch Note
ISSUE-3093 gpec can process #define and #undef only when they were declared in the declare section. Also, it does not alter the statement about the false value of if group such as #ifdef into a white space.
Description
gpec processed #define and #undef which were declared in the declare section, so it can not process the macro in the if group such as #if, #ifdef. Also it does not alter the c code of the if group which corresponds to the false value into a white space, so preprocessor is not available in the middle of the c code or the SQL statement.
Symptom
If preprocessors #define and #undef are not declared in the declare section, then gpec can not recognize the corresponding macro because it could not process #define and #undef. A user should repeatedly write the same contents because it can not use SQL the preprocessor corresponding to the if group in the middle of SQL.
#define _DEV_ EXEC SQL BEGIN DECLARE SECTION; char #ifdef _DEV_ 1 sTrue[10]; 2 #else sFalse[10]; #endif EXEC SQL END DECLARE SECTION; EXEC SQL SELECT 3 #ifdef _DEV_ "true" INTO :sTrue #else "false" INTO :sFalse #endif FROM DUAL;
1 It is false because _DEV_ is declared outside of the declare section.
2 The preprocessor is not processed as a white space, so gpec processes it as a parsing error.
3 An error occurs during parsing the SQL statement.
Workaround
Declare the preprocessors #define and #undef in the declare section, and do not use preprocessors in the middle of the c code and the SQL statement.
ISSUE-3075 An error occurs because the data type is changed when repeatedly executingPreparedStatement.setCharactertStream(int, Reader, int) method and PreparedStatement.addBatch() method in JDBC
Description
The data type was determined by using the parameter length when executing PreparedStatement class method of JDBC such as setAsciiStream(), setBinaryStream(), setCharacterStream() methods, and it has been changed to use only the long data type.
Symptom
When calling addBatch() method after setting the data of the length which was allowed for the VARCHAR type by setCharacterStream() method, and trying to set the data which exceeds the length which was allowed for the VARCHAR by setCharacterStream() method, then the data type is changed from VARCHAR to LONG VARCHAR, which is an error.
gSQL> create table t1 ( i1 long varchar ); Table created.
sPstmt.setCharacterStream( 1, new StringReader( DATA ), DATA.length() ); sPstmt.addBatch(); sPstmt.setCharacterStream( 2, new StringReader(BIG_DATA), BIG_DATA.length() ); sPstmt.addBatch();
Caused by: java.sql.SQLException: Parameter type[LONG VARCHAR] is mismatch with previous type[VARCHAR] during batch
Workaround
set Ascii/ Binary/ Character Stream() methods of PrepraredStatement class have two methods, which are the method with the parameter length and the method without the parameter length. Use the method without the parameter length among them.
ISSUE-3056 Characters which returns TRUE/ FALSE when performing ResultSet.getBoolean() in JDBC have been diversified.
Description
Previously, only "true", "false" character strings could be converted into boolean type when ResultSet.getBoolean() in JDBC, but "t", "f", "y", "n", "yes", "no", "on", "off", "1" and "0" characters can also be converted into boolean type now.
Symptom
When reading "0" and "1" with ResultSet.getBoolean(), then an error occurs.
gSQL> create table t1 ( i1 varchar(10) ); Table created. gSQL> insert into t1 values ( '1' ); 1 row created. gSQL> commit; Commit complete.
ResultSet rs = stmt.executeQuery("select * from t1");
while(rs.next())
{
System.out.println( rs.getBoolean(1) );
}Exception in thread "main" java.sql.SQLException: The value[1] is out of range of [boolean] type
Workaround
The patch is required.
ISSUE-3055 Transferring an invalid character when connecting server and client whose character sets are different each other
Description
It transfers an invalid character when connecting server and client whose character sets are different each other, and this error has been fixed.
Symptom
The user "가" is created in Linux server.
gSQL> create user "가" identified by test; User created. gSQL> grant create session to "가"; Grant succeeded. gSQL> commit; Commit complete.
An error occurs when connecting from Windows client to Linux server.
D:\goldilocks_home\bin>gsqlnet.exe "가" test ERR-28000(16004): invalid username/password; logon denied
It is operated normally when connecting from Linux client to Linux server.
% gsqlnet "가" test gSQL>
Workaround
Either set character sets in the server and that in the client same, or include only ASCII in a string which is used for the connection.
ISSUE-2359 cluster peer without a parent session
Description
A cluster peer without a parent session exists in a remote node, and this error has been fixed.
Symptom
When an error occurs while altering password when a parent session tries to login, then a cluster peer without a parent session may exist in a remote node A cluster peer session may be created in a remote node while altering password, and if it fails to alter the password then the parent session is terminated without terminating the cluster peer session.
Workaround
The patch is required.
3.2.4 Patch Note
ISSUE-3026 Altering the location of AT statement when performing \ddl_tablespace in gsql
Description
AT statement is located in a wrong position when performing \ddl_tablespace in gsql, and this error has been fixed.
Symptom
An error occurs when perfroming SQL statement which is created with \ddl_tablespace.gSQL> create tablespace test_tbs datafile 'test.dbf' size 10m;
Tablespace created.
gSQL> \ddl_tablespace test_tbs
SET SESSION AUTHORIZATION "SYS";
CREATE MEMORY DATA TABLESPACE "TEST_TBS"
DATAFILE
'/home/sunje/goldilocks_data/db/test.dbf'
AT "G2N1"
SIZE 10485760 REUSE
,
'/home/sunje/goldilocks_data/db/test.dbf'
AT "G2N2"
SIZE 10485760 REUSE
ONLINE
LOGGING
EXTSIZE 262144
;
COMMIT;gSQL> CREATE MEMORY DATA TABLESPACE "TEST_TBS"
DATAFILE
'/home/sunje/goldilocks_data/db/test.dbf'
AT "G2N1"
SIZE 10485760 REUSE
,
'/home/sunje/goldilocks_data/db/test.dbf'
AT "G2N2"
SIZE 10485760 REUSE
ONLINE
LOGGING
EXTSIZE 262144;
ERR-42000(40000): syntax error:
AT "G2N1"
^^
Error at line 4Workaround
Alter the location of AT statement in SQL which is created with \ddl_tablespace.
gSQL> CREATE MEMORY DATA TABLESPACE "TEST_TBS"
DATAFILE
'/home/sunje/goldilocks_data/db/test.dbf'
SIZE 10485760 REUSE
AT "G2N1"
,
'/home/sunje/goldilocks_data/db/test.dbf'
SIZE 10485760 REUSE
AT "G2N2"
ONLINE LOGGING
EXTSIZE 262144;
Tablespace created.ISSUE-3023 BEGIN BACKUP AT DOMAIN error
Description
It is not normally operated when using AT DOMAIN clause to backup only within a specific group or a member, and this error has been fixed.
Symptom
BEGIN BACKUP fails even when the member G1N2 is being operated with ARCHIVELOG as follows.
gSQL> SELECT ARCHIVELOG_MODE FROM V$ARCHIVELOG; ARCHIVELOG_MODE --------------- ARCHIVELOG 1 row selected. gSQL> ALTER DATABASE BEGIN BACKUP AT G1N2; ERR-HY000(16247): MEMBER(G1N1): cannot BACKUP; noarchivelog mode
Workaround
Perform BACKUP BEGIN/ END without using AT DOMAIN.
3.2.3 Patch Note
ISSUE-3006 A transaction is created when performing EXPLAIN PLAN ONLY
Description
A transaction is created when performing EXPLAIN PLAN ONLY, and this error has been fixed.
Symptom
gSQL> select * from x$transaction;
no rows selected.
gSQL> \explain plan only update t2 set c2 = 1 where c1 = 10;
>>> start print plan
< Execution Plan >
==================================================================================================
| IDX | NODE DESCRIPTION | ROWS |
--------------------------------------------------------------------------------------------------
| 0 | UPDATE STATEMENT | |
| 1 | UPDATE ("T2") | 0 |
| 2 | INDEX ACCESS ("T2", "T2_PRIMARY_KEY_INDEX") [CLONED] | 0 |
==================================================================================================
0 - SQL : UPDATE "PUBLIC"."T2"@LOCAL "_A1" SET("C2")=(:_V0) WHERE "_A1"."C1" = :_V1
2 - READ INDEX COLUMNS : C1
MIN RANGE : C1 = 10
MAX RANGE : C1 = 10
<<< end print plan
gSQL> select * from x$transaction;
PHYSICAL_TRANS_ID LOGICAL_TRANS_ID DRIVER_MEMBER_POS DRIVER_MEMBER_ID DRIVER_TRANS_ID SLOT_ID STATE IS_XA INDOUBT_TRANS_BEHAVIOR ATTRIBUTE ISOLATION_LEVEL VIEW_SCN COMMIT_SCN PREV_COMMIT_SCN TCN BEGIN_LSN USED_UNDO_PAGE_COUNT UNDO_SEGMENT_ID SEQ BEGIN_TIME PROPAGATE_LOG REPREPARABLE GRID_SEQ WEIGHT
----------------- ---------------- ----------------- ---------------- --------------- ------- ------ ----- ---------------------- --------- --------------- -------- ---------- --------------- --- --------- -------------------- --------------- --- -------------------------- ------------- ------------ -------- ------
-65480 458808 0 1 458808 56 ACTIVE FALSE 0 READ_ONLY READ COMMITTED 502.1.77 -1.-1.-1 502.0.77 1 -1 0 4294901760 7 2019-07-02 17:40:13.659857 TRUE TRUE 7 HIGH
1 row selected.
gSQL> commit;
Commit complete.
gSQL> select * from x$transaction;
no rows selected.Workaround
The patch is required.
3.2.2 Patch Note
ISSUE-2947 The previous version data of a remote group which was executed in the same session is retrieved in cluster environment.
Description
If selecting after executing a domain transaction which is updatable only in a specific remote group of a session, then the previous version data is retrieved, and this error has been fixed.
Symptom
Add a record to a shard in G1 after creating a sharded table in cluster groups G1, G2 as follows.
gSQL> CREATE TABLE T1 ( C1 NUMBER ) SHARDING BY RANGE ( C1 ) SHARD S1 VALUES LESS THAN ( 1000 ) AT CLUSTER GROUP G1, SHARD S2 VALUES LESS THAN ( MAXVALUE ) AT CLUSTER GROUP G2; Table created. gSQL> ALTER TABLE T1 ADD PRIMARY KEY ( C1 ); Table altered. gSQL> INSERT INTO T1 VALUES ( 1 ); 1 row created. gSQL> COMMIT; Commit complete.
Delete a record (transaction T1) of group G1 in a session (session 1) connected to a member of group G2, then execute a global transaction (transaction T2) in another session (session 2) and commit. When committing T1 and retrieving the record of G1, while T2 is completed in group G1 and is not completed in G2, then the deleted recorded is retrieved.
gSQL> DELETE FROM T1 WHERE C1 = 1; // T1 -- session 1 1 row deleted. gSQL> CREATE TABLE T2 ( I1 INTEGER ); // T2 -- session 2 Table created. gSQL> COMMIT; // -- session 2 Commit complete. gSQL> COMMIT; // -- session 1 Commit complete. gSQL> SELECT * FROM T1 WHERE C1 = 1; // -- session 1 C1 -- 1 1 row selected.
Workaround
When selecting after executing a domain transaction in the same session, execute it by replace SELECT statement with SELECT FOR UPDATE.
ISSUE-2965 Data is missing when BigDecimal types is used as a parameter in JDBC
Description
It the value exceeding the double type precision is used as a parameter in BigDecimal type, then the data is missing, and this error has been fixed.
Symptom
The data is missing without the user's intention.
gSQL> CREATE TABLE T1 ( C1 NUMBER ); Table created.
PreparedStatement pstmt = con.prepareStatement("INSERT INTO T1 VALUES (?)");
pstmt.setBigDecimal(1, new BigDecimal("12345678901234567890.123456789"));
pstmt.executeUpdate();gSQL> select * from t1;
C1
--------------------
12345678901234600000
1 row selected.Workaround
Process it with a string instead of the BigDecimal type.
pstmt.setString(1, "12345678901234567890.123456789");
gSQL> \set numsize 40
gSQL> select * from t1;
C1
------------------------------
12345678901234567890.123456789
1 row selected.ISSUE-2955 gsqlnet can not consecutively execute cstartup or cshutdown in cluster environment.
Description
gsqlnet builds the connecting information of a location file and glocator through ODBC. This information is built when executing cstartup or cshutdown for the first time. When executing cstartup or cshutdown for the second time, then it ignores the information construction process. However, the flag configuration is wrong, so an error occurs.
Symptom
An error occurs when gsqlnet process executes cstartup or cshutdown, then executes it again.
Workaround
Restart gsqlnet session and execute cstartup or cshutdown.
ISSUE-2943 agable scn does not increase when a query timeout occurs in cluster environment.
Description
When processing DML in async in a cluster environment, it sets the view scn information of remote members in a session. In this case, if an exception such as query timeout occurs when there is not anyremote member to whom DML is successfully transferred, then the view scn information of remotemembers set in the session can not be initialized, and which is a bug. Therefore, the agable scn of the system does not increase while the session is connected even though the statement in progress does not exist in a system.
Therefore, it is fixed to initialize the view scn information of remote members when an exception occurs while processing an async to prevent an error.
Symptom
agable scn stops after a query timeout occurs in cluster environment, so the undo, data segments become insufficient.
Workaround
Terminate the session in which a query timeout occurred.
ISSUE-2927 Deadlock Due to the Lack of Transaction Slot
Description
A hang may occur due to the lack of transaction slots when all server processes allocate transaction slots and the transactions do not release slots. It is fixed to make an error on the corresponding patch when the specified time passed.
Symptom
A hang may occur due to the lack of transaction slots when multiple transactions simultaneously occur in multiple sessions.
Workaround
The patch is required.
ISSUE-2922 Adding SQL_ATTR_FETCH_FAILOVER to statement attribute in ODBC
Description
SQL_ATTR_FETCH_FAILOVER has been added to statement attribute in ODBC, and the following values can be set.
SQL_FETCH_FAILOVER_OFF
SQL_FETCH_FAILOVER_ON
SQLSetStmtAttr( stmt,
SQL_ATTR_FETCH_FAILOVER,
(SQLPOINTER)SQL_FETCH_FAILOVER_ON,
0 )Symptom
There is not any symptom.
Workaround
The patch is required.
ISSUE-2513 EXEC SQL AT :sConn DISCONNECT can not detect VARCHAR type
Description
gpec detects VARCHAR type as char type in EXEC SQL AT clause.
Symptom
When using VARCHAR type variable in EXEC SQL AT clause, gpec does not process it as VARCHAR type but processes it as char type.
Example gc file
EXEC SQL BEGIN DECLARE SECTION; VARCHAR sAT[20]; EXEC SQL END DECLARE SECTION; EXEC SQL AT :sAT DISCONNECT;
Example c file generated by gpec
sqlargs.conn = (char *)sAT; sqlargs.sql_ca = &sqlca; sqlargs.sql_state = SQLSTATE; sqlargs.sqltype = 35; sqlargs.sqlfn = (char *)__FILE__; sqlargs.sqlln = __LINE__; sqlargs.sqlstmt = NULL; sqlargs.atomic = 0; sqlargs.unsafenull = 0; sqlargs.iters = 0; DBESQL_Disconnect(NULL, &sqlargs, NULL, 0);
It processes VARCHAR type as char * type, so an error occurs when compiling a c file created by gpec.
Workaround
Use char type instead of VARCHAR type.
ISSUE-2349 When gpec processes a preprocessor, __LINE__ macro indiates the wrong line.
Description
When gpec processes a preprocessor such as #if, __LINE__ macro indicates the wrong line.
Symptom
When gpec processes a preprocessor such as #if, #ifdef, #ifndef, #else, #elif, a comment has been added so it leads to a wrong value unlike the intended __LINE__ macro value.
Example gc file
#if 0
printf("[%s:%d] if\n", __FILE__, __LINE__);
#else
printf("[%s:%d] else\n", __FILE__, __LINE__);
#endif
printf("[%s:%d] endif\n", __FILE__, __LINE__);The following is a result of which gpec processes the code.
Example c file generated by gpec
#if 0
/*Macro condition FALSE*/
printf("[%s:%d] if\n", __FILE__, __LINE__);
#else
/*Macro condition TRUE*/
printf("[%s:%d] else\n", __FILE__, __LINE__);
#endif
printf("[%s:%d] endif\n", __FILE__, __LINE__);If gpec executes the created c file, then unexpected line is output.
$ ./pp_bug [pp_bug.gc:9] else [pp_bug.gc:11] endif
The following is a normal __LINE__ macro value.
$ ./pp_bug [pp_bug.gc:7] else [pp_bug.gc:9] endif
Workaround
The patch is required.
3.2.1 Patch Note
ISSUE-2902 Deadlock When Referring to the Global Sequence Value in Cluster Environment
Description
A deadlock occurs while acquiring the global sequence latch for the entire cluster member to get the next value because the cashed value in local members were run out when referring to the global sequence value in cluster environment.
Symptom
A hang occurs due to a deadlock when repeatedly performing a statement of which multiple sessions simultaneously refers to the global sequence.
Workaround
The patch is required.