Bu sayfa henüz yerel dilinizde mevcut değildir. Daha fazla dil seçeneği eklemek için yoğun bir şekilde çalışıyoruz. Desteğiniz için teşekkür ederiz.
- What's New
- Function Overview
- Product Bulletin
- Service Overview
- Billing
- Getting Started
-
User Guide
- Permissions Management
- Buying a GaussDB Instance
- GaussDB Instance Connection
-
Database Migration
- Overview of GaussDB Migration Solutions
- Using DRS to Migrate Data from Oracle Database to GaussDB
- Using DRS to Migrate Data from MySQL Database to GaussDB
- Migrating Data to GaussDB Using the Export and Import Functions of DAS
- Using the copy to/from Command to Export and Import Data
- Using CopyManager in JDBC to Export and Import Data
- Using gs_dump and gs_dumpall to Export Data
- Using gs_restore to Import Data
- Using gs_loader to Import Data
- Database Use
-
Instance Management
- Viewing GaussDB Instance Overview Data
- Configuring Security Group Rules for a GaussDB Instance
- Binding and Unbinding an EIP for a GaussDB Instance
- Modifying the Recycle Bin Policy for a GaussDB Instance
- Exporting Information About All GaussDB Instances
- Unsubscribing a Yearly/Monthly GaussDB Instance
- Stopping a GaussDB Instance
- Starting a GaussDB Instance
- Rebooting a GaussDB Instance
- Deleting a Pay-per-Use GaussDB Instance
- Rebuilding a GaussDB Instance
- Stopping a GaussDB Node
- Starting a GaussDB Node
- Rebooting a GaussDB Node
-
Instance Modifications
- Changing the Name of a GaussDB Instance
- Changing the Database Port of a GaussDB Instance
- Changing the M Compatibility Port
- Changing the CPU and Memory Specifications of a GaussDB Instance
- Configuring Read Replicas
- Synchronizing Data to a Single-Replica Instance
- Viewing and Modifying Advanced Features
- Scaling In and Out an Instance
- Scaling Up Storage Space
- Changing the Deployment Model
- Performing a Primary/Standby DN Switchover
- Instance Upgrade
- Plug-in Management
- Data Backup
- Data Restoration
- Parameter Management
- Monitoring and Alarming
- Logs and Auditing
- Quota Adjustment
- SQL Diagnosis
-
Disaster Recovery Management
- Constraints
- Creating a DR Task
- Checking DR Task Statuses
- Promoting the DR Instance to Primary
- Stopping a DR Task
- Deleting a DR Task
- Re-creating a DR Task After the Primary Instance Is Faulty
- Switching Roles of Primary and DR Instances
- Re-establishing a DR Relationship
- Performing a DR Drill
- Enabling or Disabling Log Cache
- Restrictions on the DR Instance
- Managing GaussDB Tasks
- Managing GaussDB Tags
- Resetting the Administrator Password of a GaussDB Instance
-
Developer Guide
-
Developer Guide(Distributed_V2.0-8.x)
- Database System Overview
- Database Security
- Database Quick Start
- Development and Design Proposal
-
Application Development Guide
- Development Specifications
- Obtaining the Driver Package
-
Development Based on JDBC
- JDBC Packages, Driver Classes, and Environment Classes
- Development Process
- Loading a Driver
- Connecting to a Database
- Connecting to a Database (Using SSL)
- Connecting to a Database (Using UDS)
- Running SQL Statements
- Processing Data in a Result Set
- Closing a Database Connection
- Log Management
- Examples: Common Operations
- Example: Retrying SQL Queries for Applications
- Example: Logic Replication Code
- Example: Parameters for Connecting to the Database in Different Scenarios
-
JDBC Interface Reference
- java.sql.Connection
- java.sql.CallableStatement
- java.sql.DatabaseMetaData
- java.sql.Driver
- java.sql.PreparedStatement
- java.sql.ResultSet
- java.sql.ResultSetMetaData
- java.sql.Statement
- javax.sql.ConnectionPoolDataSource
- javax.sql.DataSource
- javax.sql.PooledConnection
- javax.naming.Context
- javax.naming.spi.InitialContextFactory
- CopyManager
- PGReplicationConnection
- PGReplicationStream
- ChainedStreamBuilder
- ChainedCommonStreamBuilder
- Common JDBC Parameters
- FAQs
- JDBC Data Type Mapping
- Development Based on ODBC
- Development Based on libpq
- Psycopg-based Development
-
ECPG-based Development
- Development Process
- ECPG Components
- ECPG Preprocessing and Compiling
- Managing Database Connections
- Running SQL Commands
- Querying the Result Set
- Closing a Database Connection
- Host Variables
- Executing Dynamic SQL Statements
- Error Handling
- Preprocessor Directives
- Using Library Functions
- SQL Descriptor Area
- Examples
- ecpg and Pro*C Compatibility Comparison
- ECPG API Reference
- Development Based on the Go Driver
- Compatibility Reference
- Commissioning
-
SQL Optimization
- Query Execution Process
- Introduction to the SQL Execution Plan
- Optimization Process
- Updating Statistics
- Reviewing and Modifying a Table Definition
- Typical SQL Optimization Methods
- Experience in Rewriting SQL Statements
- Configuring Key Parameters for SQL Tuning
-
Hint-based Optimization
- Plan Hint Optimization
- Hint Specifying the Query Block Where the Hint Is Located
- Hint Specifying the Query Block and Schema of a Table
- Join Order Hints
- Join Operation Hints
- Rows Hints
- Stream Operation Hints
- Scan Hints
- Sublink Name Hints
- Skew Hints
- Parameterized Path Hint
- Hint Errors, Conflicts, and Other Warnings
- GUC Parameter Hints
- Hints for Selecting the Custom Plan or Generic Plan
- Hints Specifying Not to Expand Subqueries
- Hints Specifying Not to Use Global Plan Cache
- Hints of Parameterized Paths at the Same Level
- Hints for Setting Slow SQL Control Rules
- Bitmap Scan Hints
- Hint for Inner Table Materialization During Join
- AGG Hint
- Query Rewriting Hints
- Hints for Specifying ANY Sublink Pullup
- Hints for Specifying the Degree of Parallelism for Scans
- Hints for Specifying Whether to Use Semi-Join
- Hints for Specifying Whether to Use Minmax Optimization
- Checking the Implicit Conversion Performance
- Performing Optimization with SQL Patches
-
Optimization Cases
- Case: Selecting an Appropriate Distribution Key
- Case: Creating an Appropriate Index
- Case: Adjusting Distribution Keys
- Case: Adjusting the GUC Parameter best_agg_plan
- Case: Rewriting SQL Statements to Eliminate Subqueries
- Case: Rewriting SQL Statements to Eliminate Pruning Interference
- Case: Rewriting SQL Statements and Deleting in-clause
- Case: Modifying the GUC Parameter rewrite_rule
- Using DN Gather to Reduce Stream Nodes in the Plan
-
SQL Reference
- GaussDB SQL
- Keywords
-
Data Types
- Numeric Types
- Monetary Types
- Boolean Types
- Character Types
- Binary Types
- Date/Time Types
- Geometric Types
- Network Address Types
- Bit String Types
- UUID Type
- JSON/JSONB Types
- HLL Type
- Range Types
- Object Identifier Types
- Pseudo-Types
- Data Types Used by the Ledger Database
- XML Type
- XMLType
- ACLItem Type
- Array Types
-
Character Sets and Collations
- Character Sets and Collations of the Client Connection
- Database-level Character Sets and Collations
- Schema-level Character Sets and Collations
- Table-level Character Sets and Collations
- Column-level Character Sets and Collations
- Character Sets and Collations of Expressions of the String Type
- Rules for Combining Character Sets and Collations
- Constant and Macro
-
Functions and Operators
- Logical Operators
- Comparison Operators
- Character Processing Functions and Operators
- Binary String Functions and Operators
- Bit String Functions and Operators
- Pattern Matching Operators
- Arithmetic Functions and Operators
- Date and Time Processing Functions and Operators
- Type Conversion Functions
- Geometric Functions and Operators
- Network Address Functions and Operators
- Text Search Functions and Operators
- JSON/JSONB Functions and Operators
- HLL Functions and Operators
- SEQUENCE Functions
- Array Functions and Operators
- Range Functions and Operators
- Aggregate Functions
- Window Functions
- Security Functions
- Ledger Database Functions
- Encrypted Functions and Operators
- Set Returning Functions
- Conditional Expression Functions
- System Information Functions
-
System Administration Functions
- Configuration Setting Functions
- Universal File Access Functions
- Server Signal Functions
- Backup and Restoration Control Functions
- Dual-Cluster DR Control Functions
- Dual-Cluster DR Query Functions
- Snapshot Synchronization Functions
- Database Object Functions
- Advisory Lock Functions
- Logical Replication Functions
- Segment-Page Storage Functions
- Hash Bucket System Functions
- Undo System Functions
- Other Functions
- SPM Functions
- Statistics Information Functions
- Trigger Functions
- Hash Functions
- Prompt Message Function
- Fault Injection System Function
- Redistribution Functions
- Distribution Key Recommendation Functions
- Other System Functions
- Internal Functions
- AI Feature Functions
- Sensitive Data Discovery Function
- Dynamic Data Masking Functions
- Hotkey Feature Functions
- Global SysCache Functions
- Data Damage Detection and Repair Functions
- Functions of the XML Type
- Functions of the XMLType Type
- Pivot Table Functions
- UUID Functions
- SQL Statement Concurrency Control Function
- Obsolete Functions
- Expressions
- Pseudocolumn
- Type Conversion
- System Operation
- Controlling Transactions
-
SQL Syntax
- SQL Syntax
- DCL Syntax Overview
- DDL Syntax Overview
- DML Syntax Overview
- Other Syntax List
-
A
- ABORT
- ALTER AGGREGATE
- ALTER AUDIT POLICY
- ALTER COLUMN ENCRYPTION KEY
- ALTER COORDINATOR
- ALTER DATABASE
- ALTER DATABASE LINK
- ALTER DEFAULT PRIVILEGES
- ALTER DIRECTORY
- ALTER FOREIGN DATA WRAPPER
- ALTER FUNCTION
- ALTER GLOBAL CONFIGURATION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER MASKING POLICY
- ALTER MATERIALIZED VIEW
- ALTER NODE
- ALTER NODE GROUP
- ALTER RESOURCE LABEL
- ALTER RESOURCE POOL
- ALTER ROLE
- ALTER ROW LEVEL SECURITY POLICY
- ALTER SCHEMA
- ALTER SEQUENCE
- ALTER SERVER
- ALTER SESSION
- ALTER SYNONYM
- ALTER SYSTEM KILL SESSION
- ALTER TABLE
- ALTER TABLE PARTITION
- ALTER TABLESPACE
- ALTER TRIGGER
- ALTER TYPE
- ALTER USER
- ALTER VIEW
- ANALYZE | ANALYSE
- B
-
C
- CALL
- CHECKPOINT
- CLEAN CONNECTION
- CLOSE
- CLUSTER
- COMMENT
- COMMIT | END
- COMMIT PREPARED
- COPY
- CREATE AGGREGATE
- CREATE AUDIT POLICY
- CREATE BARRIER
- CREATE CLIENT MASTER KEY
- CREATE COLUMN ENCRYPTION KEY
- CREATE CONVERSION
- CREATE DATABASE
- CREATE DATABASE LINK
- CREATE DIRECTORY
- CREATE EXTENSION
- CREATE FOREIGN DATA WRAPPER
- CREATE FUNCTION
- CREATE GLOBAL INDEX
- CREATE GROUP
- CREATE INCREMENTAL MATERIALIZED VIEW
- CREATE INDEX
- CREATE LANGUAGE
- CREATE MASKING POLICY
- CREATE MATERIALIZED VIEW
- CREATE MODEL
- CREATE NODE
- CREATE NODE GROUP
- CREATE PROCEDURE
- CREATE RESOURCE LABEL
- CREATE RESOURCE POOL
- CREATE ROLE
- CREATE ROW LEVEL SECURITY POLICY
- CREATE SCHEMA
- CREATE SECURITY LABEL
- CREATE SEQUENCE
- CREATE SERVER
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLESPACE
- CREATE TABLE AS
- CREATE TABLE PARTITION
- CREATE TRIGGER
- CREATE TYPE
- CREATE USER
- CREATE VIEW
- CREATE WEAK PASSWORD DICTIONARY
- CURSOR
-
D
- DEALLOCATE
- DECLARE
- DELETE
- DO
- DROP AGGREGATE
- DROP AUDIT POLICY
- DROP CLIENT MASTER KEY
- DROP COLUMN ENCRYPTION KEY
- DROP DATABASE
- DROP DATABASE LINK
- DROP DIRECTORY
- DROP FOREIGN DATA WRAPPER
- DROP FUNCTION
- DROP GLOBAL CONFIGURATION
- DROP GROUP
- DROP INDEX
- DROP LANGUAGE
- DROP MASKING POLICY
- DROP MATERIALIZED VIEW
- DROP MODEL
- DROP NODE
- DROP NODE GROUP
- DROP OWNED
- DROP PROCEDURE
- DROP RESOURCE LABEL
- DROP RESOURCE POOL
- DROP ROLE
- DROP ROW LEVEL SECURITY POLICY
- DROP SCHEMA
- DROP SECURITY LABEL
- DROP SEQUENCE
- DROP SERVER
- DROP SYNONYM
- DROP TABLE
- DROP TABLESPACE
- DROP TRIGGER
- DROP TYPE
- DROP USER
- DROP VIEW
- DROP WEAK PASSWORD DICTIONARY
- E
- F
- G
- I
- L
- M
- P
- R
- S
- T
- U
- V
- Appendix
- Best Practices
- User-defined Functions
- Stored Procedures
- Autonomous Transaction
-
System Catalogs and System Views
- Overview of System Catalogs and System Views
-
System Catalogs
- Partitioned Table
- OLTP Table Compression
- Encrypted Equality Query
- Communications
- Ledger Database
- SPM
- AI
- Auditing
- User and Permission Management
- Connection and Authentication
- Dynamic Data Masking
- DATABASE LINK
- Materialized Views
-
Other System Catalogs
- GS_ASP
- GS_DEPENDENCIES
- GS_DEPENDENCIES_OBJ
- GS_GLOBAL_CONFIG
- GS_JOB_ATTRIBUTE
- GS_JOB_ARGUMENT
- GS_PLAN_TRACE
- GS_POLICY_LABEL
- GS_RECYCLEBIN
- GS_SECURITY_LABEL
- GS_SQL_PATCH
- GS_STATISTIC_EXT_HISTORY
- GS_STATISTIC_HISTORY
- GS_TABLESTATS_HISTORY
- GS_TXN_SNAPSHOT
- GS_UID
- GS_WORKLOAD_RULE
- PG_AGGREGATE
- PG_AM
- PG_AMOP
- PG_AMPROC
- PG_ATTRDEF
- PG_ATTRIBUTE
- PG_CAST
- PG_CLASS
- PG_COLLATION
- PG_CONSTRAINT
- PG_CONVERSION
- PG_DATABASE
- PG_DEPEND
- PG_DESCRIPTION
- PG_DIRECTORY
- PG_ENUM
- PG_EXTENSION
- PG_FOREIGN_DATA_WRAPPER
- PG_FOREIGN_SERVER
- PG_HASHBUCKET
- PG_INDEX
- PG_INHERITS
- PG_JOB
- PG_JOB_PROC
- PG_LANGUAGE
- PG_LARGEOBJECT
- PG_LARGEOBJECT_METADATA
- PG_NAMESPACE
- PG_OBJECT
- PG_OPCLASS
- PG_OPERATOR
- PG_OPFAMILY
- PG_PLTEMPLATE
- PG_PROC
- PG_RANGE
- PG_REPLICATION_ORIGIN
- PG_RESOURCE_POOL
- PG_REWRITE
- PG_SET
- PG_SHDEPEND
- PG_SHDESCRIPTION
- PG_STATISTIC
- PG_STATISTIC_EXT
- PG_SYNONYM
- PG_TABLESPACE
- PG_TRIGGER
- PG_TS_CONFIG
- PG_TS_CONFIG_MAP
- PG_TS_DICT
- PG_TS_PARSER
- PG_TS_TEMPLATE
- PG_TYPE
- PGXC_CLASS
- PGXC_GROUP
- PGXC_SLICE
- PLAN_TABLE_DATA
- STATEMENT_HISTORY
- STREAMING_STREAM
- STREAMING_CONT_QUERY
-
System Views
-
Partitioned Table
- ADM_IND_PARTITIONS
- ADM_IND_SUBPARTITIONS
- ADM_PART_COL_STATISTICS
- ADM_PART_INDEXES
- ADM_PART_TABLES
- ADM_SUBPART_KEY_COLUMNS
- ADM_TAB_PARTITIONS
- DB_IND_PARTITIONS
- DB_IND_SUBPARTITIONS
- DB_PART_COL_STATISTICS
- DB_PART_KEY_COLUMNS
- DB_PART_TABLES
- DB_SUBPART_KEY_COLUMNS
- DB_TAB_PARTITIONS
- DB_TAB_SUBPARTITIONS
- MY_IND_PARTITIONS
- MY_IND_SUBPARTITIONS
- MY_PART_COL_STATISTICS
- MY_PART_INDEXES
- MY_PART_KEY_COLUMNS
- MY_PART_TABLES
- MY_SUBPART_KEY_COLUMNS
- MY_TAB_PARTITIONS
- GS_STATIO_ALL_PARTITIONS
- GS_STAT_XACT_ALL_PARTITIONS
- GS_STAT_ALL_PARTITIONS
- OLTP Table Compression
-
Communications
- COMM_CLIENT_INFO
- GLOBAL_COMM_CLIENT_INFO
- GS_COMM_LISTEN_ADDRESS_EXT_INFO
- GS_GET_LISTEN_ADDRESS_EXT_INFO
- GS_LIBCOMM_FD_INFO
- GS_LIBCOMM_MEMORY_INFO
- GS_STATIC_THREADPOOL_CTRL_STATUS
- PG_COMM_DELAY
- PG_COMM_RECV_STREAM
- PG_COMM_SEND_STREAM
- PG_COMM_STATUS
- PG_GET_INVALID_BACKENDS
- PG_POOLER_STATUS
- PGXC_COMM_DELAY
- PGXC_COMM_RECV_STREAM
- PGXC_COMM_SEND_STREAM
- PGXC_COMM_STATUS
-
Segment-Page Storage
- GLOBAL_GS_SEG_DATAFILES
- GLOBAL_GS_SEG_EXTENTS
- GLOBAL_GS_SEG_SEGMENTS
- GLOBAL_GS_SEG_SPC_EXTENTS
- GLOBAL_GS_SEG_SPC_SEGMENTS
- GS_SEG_DATAFILES
- GS_SEG_DATAFILE_LAYOUT
- GS_SEG_EXTENTS
- GS_SEG_SEGMENTS
- GS_SEG_SEGMENT_LAYOUT
- GS_SEG_SPC_EXTENTS
- GS_SEG_SPC_SEGMENTS
- GS_SEG_SPC_REMAIN_EXTENTS
- GS_SEG_SPC_REMAIN_SEGMENTS
- SPM
- Auditing
-
User and Permission Management
- ADM_COL_PRIVS
- ADM_ROLE_PRIVS
- ADM_ROLES
- ADM_SYS_PRIVS
- ADM_TAB_PRIVS
- ADM_USERS
- DB_COL_PRIVS
- DB_DIRECTORIES
- DB_TAB_PRIVS
- DB_USERS
- GS_DB_PRIVILEGES
- GS_LABELS
- MY_COL_PRIVS
- MY_ROLE_PRIVS
- MY_SYS_PRIVS
- PG_RLSPOLICIES
- PG_ROLES
- PG_SECLABELS
- PG_SHADOW
- PG_USER
- PG_USER_MAPPINGS
- ROLE_ROLE_PRIVS
- ROLE_SYS_PRIVS
- ROLE_TAB_PRIVS
- Dynamic Data Masking
- Transparent Encryption
- DATABASE LINK
- Materialized Views
-
Other System Views
- ADM_ARGUMENTS
- ADM_COL_COMMENTS
- ADM_COLL_TYPES
- ADM_CONS_COLUMNS
- ADM_CONSTRAINTS
- ADM_DATA_FILES
- ADM_DEPENDENCIES
- ADM_DIRECTORIES
- ADM_HIST_SNAPSHOT
- ADM_HIST_SQL_PLAN
- ADM_HIST_SQLSTAT
- ADM_HIST_SQLTEXT
- ADM_IND_COLUMNS
- ADM_IND_EXPRESSIONS
- ADM_INDEXES
- ADM_OBJECTS
- ADM_PROCEDURES
- ADM_SCHEDULER_JOB_ARGS
- ADM_SCHEDULER_JOBS
- ADM_SCHEDULER_PROGRAM_ARGS
- ADM_SCHEDULER_PROGRAMS
- ADM_SCHEDULER_RUNNING_JOBS
- ADM_SEGMENTS
- ADM_SEQUENCES
- ADM_SOURCE
- ADM_SYNONYMS
- ADM_TAB_COL_STATISTICS
- ADM_TAB_COLS
- ADM_TAB_COLUMNS
- ADM_TAB_COMMENTS
- ADM_TAB_HISTOGRAMS
- ADM_TAB_STATISTICS
- ADM_TAB_STATS_HISTORY
- ADM_TABLES
- ADM_TABLESPACES
- ADM_TRIGGERS
- ADM_TYPE_ATTRS
- ADM_TYPES
- ADM_VIEWS
- DB_ARGUMENTS
- DB_ALL_TABLES
- DB_COL_COMMENTS
- DB_COLL_TYPES
- DB_CONS_COLUMNS
- DB_CONSTRAINTS
- DB_DEPENDENCIES
- DB_IND_COLUMNS
- DB_IND_EXPRESSIONS
- DB_INDEXES
- DB_OBJECTS
- DB_PROCEDURES
- DB_SCHEDULER_JOB_ARGS
- DB_SCHEDULER_PROGRAM_ARGS
- DB_SEQUENCES
- DB_SOURCE
- DB_SYNONYMS
- DB_TAB_COL_STATISTICS
- DB_TAB_COLUMNS
- DB_TAB_COMMENTS
- DB_TAB_HISTOGRAMS
- DB_TAB_MODIFICATIONS
- DB_TAB_STATS_HISTORY
- DB_TABLES
- DB_TRIGGERS
- DB_TYPES
- DB_VIEWS
- DICT
- DICTIONARY
- DUAL
- DV_SESSIONS
- DV_SESSION_LONGOPS
- GET_GLOBAL_PREPARED_XACTS
- GLOBAL_BAD_BLOCK_INFO
- GLOBAL_CLEAR_BAD_BLOCK_INFO
- GLOBAL_SQL_PATCH
- GLOBAL_STAT_HOTKEYS_INFO
- GLOBAL_WAL_SENDER_STATUS
- GS_ALL_CONTROL_GROUP_INFO
- GS_ALL_PREPARED_STATEMENTS
- GS_BUCKET_LOCKS
- GS_GET_CONTROL_GROUP_INFO
- GS_GLOBAL_ARCHIVE_STATUS
- GS_GSC_MEMORY_DETAIL
- GS_LSC_MEMORY_DETAIL
- GS_MY_PLAN_TRACE
- GS_SESSION_ALL_SETTINGS
- GS_SQL_COUNT
- GS_WORKLOAD_RULE_STAT
- GV_INSTANCE
- GV_SESSION
- MPP_TABLES
- MY_AUDIT_TRAIL
- MY_COL_COMMENTS
- MY_COLL_TYPES
- MY_CONS_COLUMNS
- MY_CONSTRAINTS
- MY_DEPENDENCIES
- MY_IND_COLUMNS
- MY_IND_EXPRESSIONS
- MY_INDEXES
- MY_JOBS
- MY_OBJECTS
- MY_PROCEDURES
- MY_SCHEDULER_JOB_ARGS
- MY_SCHEDULER_JOBS
- MY_SCHEDULER_PROGRAM_ARGS
- MY_SEQUENCES
- MY_SOURCE
- MY_SYNONYMS
- MY_TAB_COL_STATISTICS
- MY_TAB_COLUMNS
- MY_TAB_COMMENTS
- MY_TAB_HISTOGRAMS
- MY_TAB_MODIFICATIONS
- MY_TAB_STATS_HISTORY
- MY_TAB_STATISTICS
- MY_TABLES
- MY_TABLESPACES
- MY_TRIGGERS
- MY_TYPE_ATTRS
- MY_TYPES
- MY_VIEWS
- NLS_DATABASE_PARAMETERS
- NLS_INSTANCE_PARAMETERS
- PG_AVAILABLE_EXTENSION_VERSIONS
- PG_AVAILABLE_EXTENSIONS
- PG_CONTROL_GROUP_CONFIG
- PG_CURSORS
- PG_EXT_STATS
- PG_GET_SENDERS_CATCHUP_TIME
- PG_GROUP
- PG_INDEXES
- PG_LOCKS
- PG_NODE_ENV
- PG_OS_THREADS
- PG_PREPARED_STATEMENTS
- PG_PREPARED_XACTS
- PG_REPLICATION_SLOTS
- PG_RULES
- PG_RUNNING_XACTS
- PG_SETTINGS
- PG_SHARED_MEMORY_DETAIL
- PG_STATS
- PG_STAT_ACTIVITY
- PG_STAT_ALL_INDEXES
- PG_STAT_ALL_TABLES
- PG_STAT_BAD_BLOCK
- PG_STAT_BGWRITER
- PG_STAT_DATABASE
- PG_STAT_DATABASE_CONFLICTS
- PG_STAT_REPLICATION
- PG_STAT_SYS_INDEXES
- PG_STAT_SYS_TABLES
- PG_STAT_USER_FUNCTIONS
- PG_STAT_USER_INDEXES
- PG_STAT_USER_TABLES
- PG_STAT_XACT_ALL_TABLES
- PG_STAT_XACT_SYS_TABLES
- PG_STAT_XACT_USER_FUNCTIONS
- PG_STAT_XACT_USER_TABLES
- PG_STATIO_ALL_INDEXES
- PG_STATIO_ALL_SEQUENCES
- PG_STATIO_ALL_TABLES
- PG_STATIO_SYS_INDEXES
- PG_STATIO_SYS_SEQUENCES
- PG_STATIO_SYS_TABLES
- PG_STATIO_USER_INDEXES
- PG_STATIO_USER_SEQUENCES
- PG_STATIO_USER_TABLES
- PG_TABLES
- PG_THREAD_WAIT_STATUS
- PG_TIMEZONE_ABBREVS
- PG_TIMEZONE_NAMES
- PG_TOTAL_MEMORY_DETAIL
- PG_TOTAL_USER_RESOURCE_INFO
- PG_TOTAL_USER_RESOURCE_INFO_OID
- PG_VARIABLE_INFO
- PG_VIEWS
- PGXC_GET_STAT_ALL_TABLES
- PGXC_GET_TABLE_SKEWNESS
- PGXC_NODE_ENV
- PGXC_OS_THREADS
- PGXC_PREPARED_XACTS
- PGXC_RUNNING_XACTS
- PGXC_STAT_ACTIVITY
- PGXC_STAT_BAD_BLOCK
- PGXC_SQL_COUNT
- PGXC_THREAD_WAIT_STATUS
- PGXC_TOTAL_MEMORY_DETAIL
- PGXC_VARIABLE_INFO
- PLAN_TABLE
- PV_FILE_STAT
- PV_INSTANCE_TIME
- PV_OS_RUN_INFO
- PV_REDO_STAT
- PV_SESSION_MEMORY
- PV_SESSION_MEMORY_CONTEXT
- PV_SESSION_MEMORY_DETAIL
- PV_SESSION_STAT
- PV_SESSION_TIME
- PV_THREAD_MEMORY_CONTEXT
- PV_TOTAL_MEMORY_DETAIL
- SYS_DUMMY
- V_INSTANCE
- V_MYSTAT
- V_SESSION
- V$GLOBAL_OPEN_CURSOR
- V$GLOBAL_TRANSACTION
- V$LOCK
- V$NLS_PARAMETERS
- V$OPEN_CURSOR
- V$SESSION_WAIT
- V$SYSSTAT
- V$SYSTEM_EVENT
- V$VERSION
-
Partitioned Table
- Discarded
-
Schemas
- Information Schema
-
DBE_PERF Schema
- OS
- Instance
- File
-
Object
- STAT_USER_TABLES
- SUMMARY_STAT_USER_TABLES
- GLOBAL_STAT_USER_TABLES
- STAT_USER_INDEXES
- SUMMARY_STAT_USER_INDEXES
- GLOBAL_STAT_USER_INDEXES
- STAT_SYS_TABLES
- SUMMARY_STAT_SYS_TABLES
- GLOBAL_STAT_SYS_TABLES
- STAT_SYS_INDEXES
- SUMMARY_STAT_SYS_INDEXES
- GLOBAL_STAT_SYS_INDEXES
- STAT_ALL_TABLES
- SUMMARY_STAT_ALL_TABLES
- GLOBAL_STAT_ALL_TABLES
- STAT_ALL_INDEXES
- SUMMARY_STAT_ALL_INDEXES
- GLOBAL_STAT_ALL_INDEXES
- STAT_DATABASE
- SUMMARY_STAT_DATABASE
- GLOBAL_STAT_DATABASE
- STAT_DATABASE_CONFLICTS
- SUMMARY_STAT_DATABASE_CONFLICTS
- GLOBAL_STAT_DATABASE_CONFLICTS
- STAT_XACT_ALL_TABLES
- SUMMARY_STAT_XACT_ALL_TABLES
- GLOBAL_STAT_XACT_ALL_TABLES
- STAT_XACT_SYS_TABLES
- SUMMARY_STAT_XACT_SYS_TABLES
- GLOBAL_STAT_XACT_SYS_TABLES
- STAT_XACT_USER_TABLES
- SUMMARY_STAT_XACT_USER_TABLES
- GLOBAL_STAT_XACT_USER_TABLES
- STAT_XACT_USER_FUNCTIONS
- SUMMARY_STAT_XACT_USER_FUNCTIONS
- GLOBAL_STAT_XACT_USER_FUNCTIONS
- STAT_BAD_BLOCK
- SUMMARY_STAT_BAD_BLOCK
- GLOBAL_STAT_BAD_BLOCK
- STAT_USER_FUNCTIONS
- SUMMARY_STAT_USER_FUNCTIONS
- GLOBAL_STAT_USER_FUNCTIONS
- Workload
-
Session and Thread
- SESSION_STAT
- GLOBAL_SESSION_STAT
- SESSION_TIME
- GLOBAL_SESSION_TIME
- SESSION_MEMORY
- GLOBAL_SESSION_MEMORY
- SESSION_MEMORY_DETAIL
- GLOBAL_SESSION_MEMORY_DETAIL
- SESSION_STAT_ACTIVITY
- GLOBAL_SESSION_STAT_ACTIVITY
- THREAD_WAIT_STATUS
- GLOBAL_THREAD_WAIT_STATUS
- LOCAL_THREADPOOL_STATUS
- GLOBAL_THREADPOOL_STATUS
- SESSION_CPU_RUNTIME
- SESSION_MEMORY_RUNTIME
- LOCAL_ACTIVE_SESSION
- GLOBAL_ACTIVE_SESSION
- Transaction
-
Cache and I/O
- STATIO_USER_TABLES
- SUMMARY_STATIO_USER_TABLES
- GLOBAL_STATIO_USER_TABLES
- STATIO_USER_INDEXES
- SUMMARY_STATIO_USER_INDEXES
- GLOBAL_STATIO_USER_INDEXES
- STATIO_USER_SEQUENCES
- SUMMARY_STATIO_USER_SEQUENCES
- GLOBAL_STATIO_USER_SEQUENCES
- STATIO_SYS_TABLES
- SUMMARY_STATIO_SYS_TABLES
- GLOBAL_STATIO_SYS_TABLES
- STATIO_SYS_INDEXES
- SUMMARY_STATIO_SYS_INDEXES
- GLOBAL_STATIO_SYS_INDEXES
- STATIO_SYS_SEQUENCES
- SUMMARY_STATIO_SYS_SEQUENCES
- GLOBAL_STATIO_SYS_SEQUENCES
- STATIO_ALL_TABLES
- SUMMARY_STATIO_ALL_TABLES
- GLOBAL_STATIO_ALL_TABLES
- STATIO_ALL_INDEXES
- SUMMARY_STATIO_ALL_INDEXES
- GLOBAL_STATIO_ALL_INDEXES
- STATIO_ALL_SEQUENCES
- SUMMARY_STATIO_ALL_SEQUENCES
- GLOBAL_STATIO_ALL_SEQUENCES
- Communication Library
-
Utility
- REPLICATION_STAT
- GLOBAL_REPLICATION_STAT
- REPLICATION_SLOTS
- GLOBAL_REPLICATION_SLOTS
- BGWRITER_STAT
- GLOBAL_BGWRITER_STAT
- POOLER_STATUS
- GLOBAL_COMM_CHECK_CONNECTION_STATUS
- GLOBAL_CKPT_STATUS
- GLOBAL_DOUBLE_WRITE_STATUS
- GLOBAL_PAGEWRITER_STATUS
- GLOBAL_POOLER_STATUS
- GLOBAL_RECORD_RESET_TIME
- GLOBAL_REDO_STATUS
- GLOBAL_RECOVERY_STATUS
- CLASS_VITAL_INFO
- USER_LOGIN
- SUMMARY_USER_LOGIN
- GLOBAL_GET_BGWRITER_STATUS
- GLOBAL_SINGLE_FLUSH_DW_STATUS
- GLOBAL_CANDIDATE_STATUS
- PARALLEL_DECODE_STATUS
- GLOBAL_PARALLEL_DECODE_STATUS
- PARALLEL_DECODE_THREAD_INFO
- GLOBAL_PARALLEL_DECODE_THREAD_INFO
- GLOBAL_ADIO_COMPLETER_STATUS
- GLOBAL_AIO_SLOT_USAGE_STATUS
- Lock
- Wait Event
- Configuration
- Operator
- Workload Manager
- Global Plan Cache
- RTO & RPO
- AI Watchdog
- Discarded
- WDR Snapshot Schema
-
DBE_SQL_UTIL Schema
- DBE_SQL_UTIL.create_hint_sql_patch
- DBE_SQL_UTIL.create_abort_sql_patch
- DBE_SQL_UTIL.drop_sql_patch
- DBE_SQL_UTIL.enable_sql_patch
- DBE_SQL_UTIL.disable_sql_patch
- DBE_SQL_UTIL.show_sql_patch
- DBE_SQL_UTIL.create_hint_sql_patch
- DBE_SQL_UTIL.create_abort_sql_patch
- DBE_SQL_UTIL.create_remote_hint_sql_patch
- DBE_SQL_UTIL.create_remote_abort_sql_patch
- DBE_SQL_UTIL.drop_remote_sql_patch
- DBE_SQL_UTIL.enable_remote_sql_patch
- DBE_SQL_UTIL.disable_remote_sql_patch
-
DBE_PLDEBUGGER Schema
- DBE_PLDEBUGGER.turn_on
- DBE_PLDEBUGGER.turn_off
- DBE_PLDEBUGGER.local_debug_server_info
- DBE_PLDEBUGGER.attach
- DBE_PLDEBUGGER.info_locals
- DBE_PLDEBUGGER.next
- DBE_PLDEBUGGER.continue
- DBE_PLDEBUGGER.abort
- DBE_PLDEBUGGER.print_var
- DBE_PLDEBUGGER.info_code
- DBE_PLDEBUGGER.step
- DBE_PLDEBUGGER.add_breakpoint
- DBE_PLDEBUGGER.delete_breakpoint
- DBE_PLDEBUGGER.info_breakpoints
- DBE_PLDEBUGGER.backtrace
- DBE_PLDEBUGGER.enable_breakpoint
- DBE_PLDEBUGGER.disable_breakpoint
- DBE_PLDEBUGGER.finish
- DBE_PLDEBUGGER.set_var
- DBE_PLDEBUGGER.backtrace
- DBE_PLDEBUGGER.error_end
- DBE_PLDEBUGGER.error_info_locals
-
Configuring GUC Parameters
- Viewing Parameters
- Setting Parameters
-
GUC Parameters
- GUC Parameter Usage
- File Location
- Connection and Authentication
- Resource Consumption
- Parallel Data Import
- Write Ahead Log
- HA Replication
- Query Planning
- Error Reporting and Logging
- Alarm Detection
- Statistics During the Database Running
- Autovacuum
- Default Settings of Client Connection
- Lock Management
- Version and Platform Compatibility
- Fault Tolerance
- Connection Pool Parameters
- Cluster Transaction Parameters
- Dual-Cluster Replication Parameters
- Developer Options
- Auditing
- Transaction Monitoring
- CM Parameters
- GTM Parameters
- Upgrade Parameters
- Miscellaneous Parameters
- Wait Event
- Query
- System Performance Snapshot
- Security Configuration
- HyperLogLog
- User-defined Functions
- Scheduled Task
- Thread Pool
- Backup and Restoration
- AI Features
- Global SysCache Parameters
- Read Parameters of the Standby Node in a Distributed System
- Restoring Data on the Standby Node
- Undo
- Rollback Parameters
- DCF Parameters Settings
- Flashback
- Ledger Database
- Creating an Index Online
- Data Lifecycle Management: OLTP Table Compression
- Session-level Transaction Pushdown and Related Parameters
- Enhanced TOAST
- Reserved Parameters
- Appendix
-
FAQs
- What is the maximum number of columns in a single GaussDB table?
- How do I query the partition and index information of a partitioned table?
- What is OID?
- What is UDF?
- What wildcards are supported in GaussDB? How do I use them?
- Is there a limit on the length of a database object name?
- How do I view the creation time of a table?
- How do I create indexes in parallel?
- How do I create an auto-increment column?
- Can I query the GaussDB memory usage through SQL statements?
- What are the differences between LIMIT 2, LIMIT 2,3 and LIMIT 2 OFFSET 3?
- How do I create a column whose default value is the current time?
- How do I determine whether a column is null?
- How do I obtain the username for connecting to a database?
- How do I query the time difference between two time points?
- What are the types of SQL languages?
- What is the function of a trigger?
- What are the four characteristics of correctly executing database transactions?
- What are the differences between the DROP, TRUNCATE, and DELETE methods in GaussDB?
- How many bytes does a Chinese character occupy in GaussDB?
-
Developer Guide(Centralized_V2.0-8.x)
- Database System Overview
- Database Security
- Database Quick Start
- Development and Design Proposal
-
Application Development Guide
- Development Specifications
- Obtaining the Driver Package
-
Development Based on JDBC
- JDBC Packages, Driver Classes, and Environment Classes
- Development Process
- Loading the Driver
- Connecting to a Database
- Connecting to a Database (Using SSL)
- Connecting to a Database (Using UDS)
- Running SQL Statements
- Processing Data in a Result Set
- Closing a Database Connection
- Log Management
- Examples: Common Operations
- Example: Retrying SQL Queries for Applications
- Example: Importing and Exporting Data Through Local Files
- Example: Migrating Data from MY
- Example: Logic Replication Code
- Example: Parameters for Connecting to the Database in Different Scenarios
-
JDBC API Reference
- java.sql.Connection
- java.sql.CallableStatement
- java.sql.DatabaseMetaData
- java.sql.Driver
- java.sql.PreparedStatement
- java.sql.ResultSet
- java.sql.ResultSetMetaData
- java.sql.Statement
- javax.sql.ConnectionPoolDataSource
- javax.sql.DataSource
- javax.sql.PooledConnection
- javax.naming.Context
- javax.naming.spi.InitialContextFactory
- CopyManager
- PGReplicationConnection
- PGReplicationStream
- ChainedStreamBuilder
- ChainedCommonStreamBuilder
- PGobject
- Common JDBC Parameters
- Troubleshooting
- Mapping for JDBC Data Types
- Development Based on ODBC
- Development Based on libpq
- Psycopg-based Development
- Development Based on the Go Driver
-
ECPG-based Development
- Development Process
- ECPG Components
- ECPG Preprocessing and Compiling
- Managing Database Connections
- Running SQL Commands
- Querying the Result Set
- Closing a Database Connection
- Host Variables
- Executing Dynamic SQL Statements
- Error Handling
- Preprocessor Directives
- Using Library Functions
- SQL Descriptor Area
- Examples
- ecpg and Pro*C Compatibility Comparison
- ECPG API Reference
- Compatibility Reference
- Commissioning
-
SQL Optimization
- Query Execution Process
- Introduction to the SQL Execution Plan
- Optimization Process
- Updating Statistics
- Reviewing and Modifying a Table Definition
- Typical SQL Optimization Methods
- Experience in Rewriting SQL Statements
- Configuring Key Parameters for SQL Tuning
-
Hint-based Optimization
- Plan Hint Optimization
- Hints for Specifying the Query Block Where the Hint Is Located
- Hints for Specifying the Query Block and Schema of a Table
- Join Order Hints
- Join Operation Hints
- Rows Hints
- Stream Operation Hints
- Scan Operation Hints
- Sublink Name Hints
- Hint Errors, Conflicts, and Other Warnings
- Optimizer GUC Parameter Hints
- Hints for Selecting the Custom Plan or Generic Plan
- Hints Specifying Not to Expand Subqueries
- Hint Specifying Not to Use Global Plan Cache
- Hints of Parameterized Paths at the Same Level
- Hints for Setting Slow SQL Control Rules
- Hint for Adaptive Plan Selection
- Hints for Materializing a Sub-plan Result
- Bitmap Scan Hints
- Hints for Inner Table Materialization During Join
- AGG Hint
- Query Rewriting Hints
- Outline Hints
- Hints for Specifying ANY Sublink Pullup
- Hints for Specifying the Degree of Parallelism for Scans
- Hints for Specifying Whether to Use Semi-Join
- Hints for Specifying the Stream Hashagg Optimization
- Hints for Specifying Whether to Use Minmax Optimization
- Introduction to Plan Trace
- Performing Optimization with SQL Patches
- Optimization Cases
-
SQL Reference
- GaussDB SQL
- Keywords
-
Data Types
- Numeric Types
- Monetary Types
- Boolean Types
- Character Types
- Binary Types
- Date/Time Types
- Geometric Types
- Network Address Types
- Bit String Types
- UUID Type
- JSON/JSONB Types
- HLL Type
- Range Types
- Object Identifier Types
- Pseudo-Types
- XML Type
- XMLType
- Data Types Used by the Ledger Database
- SET Type
- ACLItem Type
- Array Types
- Vector Data Types
-
Character Sets and Collations
- Character Sets and Collations of the Client Connection
- Database-level Character Sets and Collations
- Schema-level Character Sets and Collations
- Table-level Character Sets and Collations
- Column-level Character Sets and Collations
- Character Sets and Collations of Expressions of the String Type
- Rules for Combining Character Sets and Collations
- Constant and Macro
-
Functions and Operators
- Logical Operators
- Comparison Operators
- Character Processing Functions and Operators
- Binary String Functions and Operators
- Bit String Functions and Operators
- Pattern Matching Operators
- Arithmetic Functions and Operators
- Date and Time Processing Functions and Operators
- Type Conversion Functions
- Geometric Functions and Operators
- Network Address Functions and Operators
- Text Search Functions and Operators
- JSON/JSONB Functions and Operators
- HLL Functions and Operators
- SEQUENCE Functions
- Array Functions and Operators
- Range Functions and Operators
- Aggregate Functions
- Window Functions
- Security Functions
- Ledger Database Functions
- Encrypted Functions and Operators
- Set Returning Functions
- Conditional Expression Functions
- System Information Functions
-
System Administration Functions
- Configuration Settings Functions
- Universal File Access Functions
- Server Signal Functions
- Backup and Restoration Control Functions
- DR Control Functions for Dual-Database Instances
- DR Query Functions for Dual-Database Instances
- Snapshot Synchronization Functions
- Database Object Functions
- Advisory Lock Functions
- Logical Replication Functions
- Segment-Page Storage Functions
- Hash Bucket System Functions
- Other Functions
- Undo System Functions
- SPM Functions
- Statistics Information Functions
- Trigger Functions
- Hash Functions
- Prompt Message Function
- Global Temporary Table Functions
- Fault Injection System Function
- AI Feature Functions
- Sensitive Data Discovery Function
- Dynamic Data Masking Functions
- Hierarchical Recursion Query Functions
- Other System Functions
- Internal Functions
- Global SysCache Functions
- Data Damage Detection and Repair Functions
- Functions of the XML Type
- Functions of the XMLType Type
- Global PL/SQL Cache Functions
- Pivot Table Functions
- UUID Functions
- SQL Statement Concurrency Control Function
- Vector Calculation Interfaces and Functions
- Deprecated Functions
- Expressions
- Pseudocolumn
- Type Conversion
- System Operation
- Controlling Transactions
-
SQL Syntax
- SQL Syntax
- DCL Syntax Overview
- DDL Syntax Overview
- DML Syntax Overview
- Other Syntax List
-
A
- ABORT
- ALTER AGGREGATE
- ALTER AUDIT POLICY
- ALTER COLUMN ENCRYPTION KEY
- ALTER DATABASE
- ALTER DATABASE LINK
- ALTER DEFAULT PRIVILEGES
- ALTER DIRECTORY
- ALTER EVENT
- ALTER EXTENSION
- ALTER FOREIGN DATA WRAPPER
- ALTER FUNCTION
- ALTER GLOBAL CONFIGURATION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER MASKING POLICY
- ALTER MATERIALIZED VIEW
- ALTER OPERATOR
- ALTER PACKAGE
- ALTER PROCEDURE
- ALTER RESOURCE LABEL
- ALTER RESOURCE POOL
- ALTER ROLE
- ALTER ROW LEVEL SECURITY POLICY
- ALTER SCHEMA
- ALTER SEQUENCE
- ALTER SERVER
- ALTER SESSION
- ALTER SYNONYM
- ALTER SYSTEM KILL SESSION
- ALTER TABLE
- ALTER TABLE PARTITION
- ALTER TABLE SUBPARTITION
- ALTER TABLESPACE
- ALTER TRIGGER
- ALTER TYPE
- ALTER USER
- ALTER USER MAPPING
- ALTER VIEW
- ANALYZE | ANALYSE
- B
-
C
- CALL
- CHECKPOINT
- CLEAN CONNECTION
- CLOSE
- CLUSTER
- COMMENT
- COMMIT | END
- COMMIT PREPARED
- COPY
- CREATE AGGREGATE
- CREATE AUDIT POLICY
- CREATE CAST
- CREATE CLIENT MASTER KEY
- CREATE COLUMN ENCRYPTION KEY
- CREATE CONVERSION
- CREATE DATABASE
- CREATE DATABASE LINK
- CREATE DIRECTORY
- CREATE EVENT
- CREATE EXTENSION
- CREATE FOREIGN DATA WRAPPER
- CREATE FUNCTION
- CREATE GLOBAL INDEX
- CREATE GROUP
- CREATE INCREMENTAL MATERIALIZED VIEW
- CREATE INDEX
- CREATE LANGUAGE
- CREATE MASKING POLICY
- CREATE MATERIALIZED VIEW
- CREATE MODEL
- CREATE OPERATOR
- CREATE OPERATOR CLASS
- CREATE PACKAGE
- CREATE PROCEDURE
- CREATE RESOURCE LABEL
- CREATE RESOURCE POOL
- CREATE ROLE
- CREATE ROW LEVEL SECURITY POLICY
- CREATE RULE
- CREATE SCHEMA
- CREATE SECURITY LABEL
- CREATE SEQUENCE
- CREATE SERVER
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLE AS
- CREATE TABLE PARTITION
- CREATE TABLESPACE
- CREATE TABLE SUBPARTITION
- CREATE TRIGGER
- CREATE TYPE
- CREATE USER
- CREATE USER MAPPING
- CREATE VIEW
- CREATE WEAK PASSWORD DICTIONARY
- CURSOR
-
D
- DEALLOCATE
- DECLARE
- DELETE
- DO
- DROP AGGREGATE
- DROP AUDIT POLICY
- DROP CAST
- DROP CLIENT MASTER KEY
- DROP COLUMN ENCRYPTION KEY
- DROP DATABASE
- DROP DATABASE LINK
- DROP DIRECTORY
- DROP EVENT
- DROP EXTENSION
- DROP FOREIGN DATA WRAPPER
- DROP FUNCTION
- DROP GLOBAL CONFIGURATION
- DROP GROUP
- DROP INDEX
- DROP LANGUAGE
- DROP MASKING POLICY
- DROP MATERIALIZED VIEW
- DROP MODEL
- DROP OPERATOR
- DROP OWNED
- DROP PACKAGE
- DROP PROCEDURE
- DROP RESOURCE LABEL
- DROP RESOURCE POOL
- DROP ROLE
- DROP ROW LEVEL SECURITY POLICY
- DROP RULE
- DROP SCHEMA
- DROP SECURITY LABEL
- DROP SEQUENCE
- DROP SERVER
- DROP SYNONYM
- DROP TABLE
- DROP TABLESPACE
- DROP TRIGGER
- DROP TYPE
- DROP USER
- DROP USER MAPPING
- DROP VIEW
- DROP WEAK PASSWORD DICTIONARY
- E
- F
- G
- I
- L
- M
- P
- R
- S
- T
- U
- V
- Appendix
- Best Practices
- User-defined Functions
-
Stored Procedure
- Stored Procedure
- Data Types
- Data Type Conversion
- Arrays, Collections, and Records
- DECLARE Syntax
- Basic Statements
- Dynamic Statements
- Control Statements
- Transaction Management
- Other Statements
- Cursors
- Advanced Packages
- Retry Management
- Debugging
- Package
- Autonomous Transaction
-
System Catalogs and System Views
- Overview of System Catalogs and System Views
-
System Catalogs
- Partitioned Table
- OLTP Table Compression
- Encrypted Equality Query
- Communications
- Ledger Database
- SPM
- AI
- Auditing
- User and Permission Management
- Connection and Authentication
- Dynamic Data Masking
- DATABASE LINK
- Materialized Views
-
Other System Catalogs
- GS_ASP
- GS_DEPENDENCIES
- GS_DEPENDENCIES_OBJ
- GS_GLOBAL_CONFIG
- GS_JOB_ARGUMENT
- GS_JOB_ATTRIBUTE
- GS_PACKAGE
- GS_PLAN_TRACE
- GS_POLICY_LABEL
- GS_RECYCLEBIN
- GS_SECURITY_LABEL
- GS_SQL_PATCH
- GS_STATISTIC_EXT_HISTORY
- GS_STATISTIC_HISTORY
- GS_TABLESTATS_HISTORY
- GS_TXN_SNAPSHOT
- GS_UID
- GS_WORKLOAD_RULE
- PG_AGGREGATE
- PG_AM
- PG_AMOP
- PG_AMPROC
- PG_ATTRDEF
- PG_ATTRIBUTE
- PG_CAST
- PG_CLASS
- PG_COLLATION
- PG_CONSTRAINT
- PG_CONVERSION
- PG_DATABASE
- PG_DEPEND
- PG_DESCRIPTION
- PG_DIRECTORY
- PG_ENUM
- PG_EXTENSION
- PG_FOREIGN_DATA_WRAPPER
- PG_FOREIGN_SERVER
- PG_HASHBUCKET
- PG_INDEX
- PG_INHERITS
- PG_JOB
- PG_JOB_PROC
- PG_LANGUAGE
- PG_LARGEOBJECT
- PG_LARGEOBJECT_METADATA
- PG_NAMESPACE
- PG_OBJECT
- PG_OPCLASS
- PG_OPERATOR
- PG_OPFAMILY
- PG_PLTEMPLATE
- PG_PROC
- PG_RANGE
- PG_REPLICATION_ORIGIN
- PG_RESOURCE_POOL
- PG_REWRITE
- PG_SHDEPEND
- PG_SHDESCRIPTION
- PG_SET
- PG_STATISTIC
- PG_STATISTIC_EXT
- PG_SYNONYM
- PG_TABLESPACE
- PG_TRIGGER
- PG_TS_CONFIG
- PG_TS_CONFIG_MAP
- PG_TS_DICT
- PG_TS_PARSER
- PG_TS_TEMPLATE
- PG_TYPE
- PGXC_CLASS
- PGXC_GROUP
- PGXC_SLICE
- PLAN_TABLE_DATA
- STATEMENT_HISTORY
- STREAMING_STREAM
- STREAMING_CONT_QUERY
-
System Views
-
Partitioned Table
- ADM_IND_PARTITIONS
- ADM_IND_SUBPARTITIONS
- ADM_PART_COL_STATISTICS
- ADM_PART_INDEXES
- ADM_PART_TABLES
- ADM_SUBPART_COL_STATISTICS
- ADM_SUBPART_KEY_COLUMNS
- ADM_TAB_SUBPARTITIONS
- ADM_TAB_PARTITIONS
- DB_IND_PARTITIONS
- DB_IND_SUBPARTITIONS
- DB_PART_COL_STATISTICS
- DB_PART_INDEXES
- DB_PART_KEY_COLUMNS
- DB_PART_TABLES
- DB_SUBPART_COL_STATISTICS
- DB_SUBPART_KEY_COLUMNS
- DB_TAB_PARTITIONS
- DB_TAB_SUBPARTITIONS
- MY_IND_PARTITIONS
- MY_IND_SUBPARTITIONS
- MY_PART_COL_STATISTICS
- MY_PART_INDEXES
- MY_PART_KEY_COLUMNS
- MY_PART_TABLES
- MY_SUBPART_COL_STATISTICS
- MY_SUBPART_KEY_COLUMNS
- MY_TAB_PARTITIONS
- MY_TAB_SUBPARTITIONS
- GS_STATIO_ALL_PARTITIONS
- GS_STAT_XACT_ALL_PARTITIONS
- GS_STAT_ALL_PARTITIONS
- OLTP Table Compression
- Communications
- Segment-Page Storage
- SPM
- Auditing
-
User and Permission Management
- ADM_COL_PRIVS
- ADM_ROLE_PRIVS
- ADM_ROLES
- ADM_SYS_PRIVS
- ADM_TAB_PRIVS
- ADM_USERS
- DB_COL_PRIVS
- DB_DIRECTORIES
- DB_TAB_PRIVS
- DB_USERS
- GS_DB_PRIVILEGES
- GS_LABELS
- MY_COL_PRIVS
- MY_ROLE_PRIVS
- MY_SYS_PRIVS
- PG_RLSPOLICIES
- PG_ROLES
- PG_SECLABELS
- PG_SHADOW
- PG_USER
- PG_USER_MAPPINGS
- ROLE_ROLE_PRIVS
- ROLE_SYS_PRIVS
- ROLE_TAB_PRIVS
- Dynamic Data Masking
- Transparent Encryption
- DATABASE LINK
- Materialized Views
-
Other System Views
- ADM_ARGUMENTS
- ADM_COL_COMMENTS
- ADM_COLL_TYPES
- ADM_CONS_COLUMNS
- ADM_CONSTRAINTS
- ADM_DATA_FILES
- ADM_DEPENDENCIES
- ADM_DIRECTORIES
- ADM_HIST_SNAPSHOT
- ADM_HIST_SQL_PLAN
- ADM_HIST_SQLSTAT
- ADM_HIST_SQLTEXT
- ADM_IND_COLUMNS
- ADM_IND_EXPRESSIONS
- ADM_INDEXES
- ADM_OBJECTS
- ADM_PROCEDURES
- ADM_RECYCLEBIN
- ADM_SCHEDULER_JOB_ARGS
- ADM_SCHEDULER_JOBS
- ADM_SCHEDULER_PROGRAM_ARGS
- ADM_SCHEDULER_PROGRAMS
- ADM_SCHEDULER_RUNNING_JOBS
- ADM_SEGMENTS
- ADM_SEQUENCES
- ADM_SOURCE
- ADM_SYNONYMS
- ADM_TAB_COL_STATISTICS
- ADM_TAB_COLS
- ADM_TAB_COLUMNS
- ADM_TAB_COMMENTS
- ADM_TAB_HISTOGRAMS
- ADM_TAB_STATISTICS
- ADM_TAB_STATS_HISTORY
- ADM_TABLES
- ADM_TABLESPACES
- ADM_TRIGGERS
- ADM_TYPE_ATTRS
- ADM_TYPES
- ADM_VIEWS
- DB_ARGUMENTS
- DB_ALL_TABLES
- DB_COL_COMMENTS
- DB_COLL_TYPES
- DB_CONS_COLUMNS
- DB_CONSTRAINTS
- DB_DEPENDENCIES
- DB_ERRORS
- DB_IND_COLUMNS
- DB_IND_EXPRESSIONS
- DB_INDEXES
- DB_OBJECTS
- DB_PROCEDURES
- DB_SCHEDULER_JOB_ARGS
- DB_SCHEDULER_PROGRAM_ARGS
- DB_SEQUENCES
- DB_SOURCE
- DB_SYNONYMS
- DB_TAB_COL_STATISTICS
- DB_TAB_COLUMNS
- DB_TAB_COMMENTS
- DB_TAB_HISTOGRAMS
- DB_TAB_MODIFICATIONS
- DB_TAB_STATS_HISTORY
- DB_TABLES
- DB_TRIGGERS
- DB_TYPES
- DB_VIEWS
- DICT
- DICTIONARY
- DUAL
- DV_SESSIONS
- DV_SESSION_LONGOPS
- GS_ALL_CONTROL_GROUP_INFO
- GS_ALL_PREPARED_STATEMENTS
- GS_COMM_PROXY_THREAD_STATUS
- GS_FILE_STAT
- GS_GET_CONTROL_GROUP_INFO
- GS_GLC_MEMORY_DETAIL
- GS_GLOBAL_ARCHIVE_STATUS
- GS_GSC_MEMORY_DETAIL
- GS_INSTANCE_TIME
- GS_LSC_MEMORY_DETAIL
- GS_MY_PLAN_TRACE
- GS_OS_RUN_INFO
- GS_REDO_STAT
- GS_SESSION_ALL_SETTINGS
- GS_SESSION_MEMORY
- GS_SESSION_MEMORY_CONTEXT
- GS_SESSION_MEMORY_DETAIL
- GS_SESSION_STAT
- GS_SESSION_TIME
- GS_SHARED_MEMORY_DETAIL
- GS_SQL_COUNT
- GS_THREAD_MEMORY_CONTEXT
- GS_TOTAL_MEMORY_DETAIL
- GS_TOTAL_NODEGROUP_MEMORY_DETAIL
- GS_WORKLOAD_RULE_STAT
- GV_INSTANCE
- GV_SESSION
- MPP_TABLES
- MY_AUDIT_TRAIL
- MY_COL_COMMENTS
- MY_COLL_TYPES
- MY_CONS_COLUMNS
- MY_CONSTRAINTS
- MY_DEPENDENCIES
- MY_ERRORS
- MY_IND_COLUMNS
- MY_IND_EXPRESSIONS
- MY_INDEXES
- MY_JOBS
- MY_OBJECTS
- MY_PROCEDURES
- MY_RECYCLEBIN
- MY_SCHEDULER_JOB_ARGS
- MY_SCHEDULER_JOBS
- MY_SCHEDULER_PROGRAM_ARGS
- MY_SEQUENCES
- MY_SOURCE
- MY_SYNONYMS
- MY_TAB_COL_STATISTICS
- MY_TAB_COLUMNS
- MY_TAB_COMMENTS
- MY_TAB_HISTOGRAMS
- MY_TAB_MODIFICATIONS
- MY_TAB_STATS_HISTORY
- MY_TAB_STATISTICS
- MY_TABLES
- MY_TABLESPACES
- MY_TRIGGERS
- MY_TYPE_ATTRS
- MY_TYPES
- MY_VIEWS
- NLS_DATABASE_PARAMETERS
- NLS_INSTANCE_PARAMETERS
- PG_AVAILABLE_EXTENSION_VERSIONS
- PG_AVAILABLE_EXTENSIONS
- PG_CONTROL_GROUP_CONFIG
- PG_CURSORS
- PG_EXT_STATS
- PG_GET_SENDERS_CATCHUP_TIME
- PG_GROUP
- PG_GTT_RELSTATS
- PG_GTT_STATS
- PG_GTT_ATTACHED_PIDS
- PG_INDEXES
- PG_LOCKS
- PG_NODE_ENV
- PG_OS_THREADS
- PG_PREPARED_STATEMENTS
- PG_PREPARED_XACTS
- PG_REPLICATION_ORIGIN_STATUS
- PG_REPLICATION_SLOTS
- PG_RULES
- PG_RUNNING_XACTS
- PG_SETTINGS
- PG_STATS
- PG_STAT_ACTIVITY
- PG_STAT_ACTIVITY_NG
- PG_STAT_ALL_INDEXES
- PG_STAT_ALL_TABLES
- PG_STAT_BAD_BLOCK
- PG_STAT_BGWRITER
- PG_STAT_DATABASE
- PG_STAT_DATABASE_CONFLICTS
- PG_STAT_REPLICATION
- PG_STAT_SYS_INDEXES
- PG_STAT_SYS_TABLES
- PG_STAT_USER_FUNCTIONS
- PG_STAT_USER_INDEXES
- PG_STAT_USER_TABLES
- PG_STAT_XACT_ALL_TABLES
- PG_STAT_XACT_SYS_TABLES
- PG_STAT_XACT_USER_FUNCTIONS
- PG_STAT_XACT_USER_TABLES
- PG_STATIO_ALL_INDEXES
- PG_STATIO_ALL_SEQUENCES
- PG_STATIO_ALL_TABLES
- PG_STATIO_SYS_INDEXES
- PG_STATIO_SYS_SEQUENCES
- PG_STATIO_SYS_TABLES
- PG_STATIO_USER_INDEXES
- PG_STATIO_USER_SEQUENCES
- PG_STATIO_USER_TABLES
- PG_TABLES
- PG_THREAD_WAIT_STATUS
- PG_TIMEZONE_ABBREVS
- PG_TIMEZONE_NAMES
- PG_TOTAL_MEMORY_DETAIL
- PG_TOTAL_USER_RESOURCE_INFO
- PG_TOTAL_USER_RESOURCE_INFO_OID
- PG_VARIABLE_INFO
- PG_VIEWS
- PGXC_PREPARED_XACTS
- PGXC_THREAD_WAIT_STATUS
- PLAN_TABLE
- SYS_DUMMY
- V_INSTANCE
- V_MYSTAT
- V_SESSION
- V$GLOBAL_TRANSACTION
- V$LOCK
- V$NLS_PARAMETERS
- V$OPEN_CURSOR
- V$SESSION_WAIT
- V$SYSSTAT
- V$SYSTEM_EVENT
- V$VERSION
-
Partitioned Table
- Discarded
-
Schemas
- Information Schema
-
DBE_PERF Schema
- OS
- Instance
- Memory
- File
-
Object
- STAT_USER_TABLES
- SUMMARY_STAT_USER_TABLES
- GLOBAL_STAT_USER_TABLES
- STAT_USER_INDEXES
- SUMMARY_STAT_USER_INDEXES
- GLOBAL_STAT_USER_INDEXES
- STAT_SYS_TABLES
- SUMMARY_STAT_SYS_TABLES
- GLOBAL_STAT_SYS_TABLES
- STAT_SYS_INDEXES
- SUMMARY_STAT_SYS_INDEXES
- GLOBAL_STAT_SYS_INDEXES
- STAT_ALL_TABLES
- SUMMARY_STAT_ALL_TABLES
- GLOBAL_STAT_ALL_TABLES
- STAT_ALL_INDEXES
- SUMMARY_STAT_ALL_INDEXES
- GLOBAL_STAT_ALL_INDEXES
- STAT_DATABASE
- SUMMARY_STAT_DATABASE
- GLOBAL_STAT_DATABASE
- STAT_DATABASE_CONFLICTS
- SUMMARY_STAT_DATABASE_CONFLICTS
- GLOBAL_STAT_DATABASE_CONFLICTS
- STAT_XACT_ALL_TABLES
- SUMMARY_STAT_XACT_ALL_TABLES
- GLOBAL_STAT_XACT_ALL_TABLES
- STAT_XACT_SYS_TABLES
- SUMMARY_STAT_XACT_SYS_TABLES
- GLOBAL_STAT_XACT_SYS_TABLES
- STAT_XACT_USER_TABLES
- SUMMARY_STAT_XACT_USER_TABLES
- GLOBAL_STAT_XACT_USER_TABLES
- STAT_XACT_USER_FUNCTIONS
- SUMMARY_STAT_XACT_USER_FUNCTIONS
- GLOBAL_STAT_XACT_USER_FUNCTIONS
- STAT_BAD_BLOCK
- SUMMARY_STAT_BAD_BLOCK
- GLOBAL_STAT_BAD_BLOCK
- STAT_USER_FUNCTIONS
- SUMMARY_STAT_USER_FUNCTIONS
- GLOBAL_STAT_USER_FUNCTIONS
- Workload
-
Session/Thread
- SESSION_STAT
- GLOBAL_SESSION_STAT
- SESSION_TIME
- GLOBAL_SESSION_TIME
- SESSION_MEMORY
- GLOBAL_SESSION_MEMORY
- SESSION_MEMORY_DETAIL
- GLOBAL_SESSION_MEMORY_DETAIL
- SESSION_STAT_ACTIVITY
- GLOBAL_SESSION_STAT_ACTIVITY
- THREAD_WAIT_STATUS
- GLOBAL_THREAD_WAIT_STATUS
- LOCAL_THREADPOOL_STATUS
- GLOBAL_THREADPOOL_STATUS
- LOCAL_ACTIVE_SESSION
- Transaction
- Query
-
Cache/IO
- STATIO_USER_TABLES
- SUMMARY_STATIO_USER_TABLES
- GLOBAL_STATIO_USER_TABLES
- STATIO_USER_INDEXES
- SUMMARY_STATIO_USER_INDEXES
- GLOBAL_STATIO_USER_INDEXES
- STATIO_USER_SEQUENCES
- SUMMARY_STATIO_USER_SEQUENCES
- GLOBAL_STATIO_USER_SEQUENCES
- STATIO_SYS_TABLES
- SUMMARY_STATIO_SYS_TABLES
- GLOBAL_STATIO_SYS_TABLES
- STATIO_SYS_INDEXES
- SUMMARY_STATIO_SYS_INDEXES
- GLOBAL_STATIO_SYS_INDEXES
- STATIO_SYS_SEQUENCES
- SUMMARY_STATIO_SYS_SEQUENCES
- GLOBAL_STATIO_SYS_SEQUENCES
- STATIO_ALL_TABLES
- SUMMARY_STATIO_ALL_TABLES
- GLOBAL_STATIO_ALL_TABLES
- STATIO_ALL_INDEXES
- SUMMARY_STATIO_ALL_INDEXES
- GLOBAL_STATIO_ALL_INDEXES
- STATIO_ALL_SEQUENCES
- SUMMARY_STATIO_ALL_SEQUENCES
- GLOBAL_STATIO_ALL_SEQUENCES
-
Utility
- REPLICATION_STAT
- GLOBAL_REPLICATION_STAT
- REPLICATION_SLOTS
- GLOBAL_REPLICATION_SLOTS
- BGWRITER_STAT
- GLOBAL_BGWRITER_STAT
- GLOBAL_CKPT_STATUS
- GLOBAL_DOUBLE_WRITE_STATUS
- GLOBAL_PAGEWRITER_STATUS
- GLOBAL_RECORD_RESET_TIME
- GLOBAL_REDO_STATUS
- GLOBAL_RECOVERY_STATUS
- CLASS_VITAL_INFO
- USER_LOGIN
- SUMMARY_USER_LOGIN
- GLOBAL_SINGLE_FLUSH_DW_STATUS
- GLOBAL_CANDIDATE_STATUS
- PARALLEL_DECODE_STATUS
- GLOBAL_PARALLEL_DECODE_STATUS
- PARALLEL_DECODE_THREAD_INFO
- GLOBAL_PARALLEL_DECODE_THREAD_INFO
- GLOBAL_ADIO_COMPLETER_STATUS
- GLOBAL_AIO_SLOT_USAGE_STATUS
- Lock
- Wait Events
- Configuration
- Operator
- Workload Manager
- Global Plancache
- RTO & RPO
- AI Watchdog
- WDR Snapshot Schema
-
DBE_PLDEBUGGER Schema
- DBE_PLDEBUGGER.turn_on
- DBE_PLDEBUGGER.turn_off
- DBE_PLDEBUGGER.local_debug_server_info
- DBE_PLDEBUGGER.attach
- DBE_PLDEBUGGER.info_locals
- DBE_PLDEBUGGER.next
- DBE_PLDEBUGGER.continue
- DBE_PLDEBUGGER.abort
- DBE_PLDEBUGGER.print_var
- DBE_PLDEBUGGER.info_code
- DBE_PLDEBUGGER.step
- DBE_PLDEBUGGER.add_breakpoint
- DBE_PLDEBUGGER.delete_breakpoint
- DBE_PLDEBUGGER.info_breakpoints
- DBE_PLDEBUGGER.backtrace
- DBE_PLDEBUGGER.enable_breakpoint
- DBE_PLDEBUGGER.disable_breakpoint
- DBE_PLDEBUGGER.finish
- DBE_PLDEBUGGER.set_var
- DBE_PLDEBUGGER.error_backtrace
- DBE_PLDEBUGGER.error_end
- DBE_PLDEBUGGER.error_info_locals
- DB4AI Schema
- DBE_PLDEVELOPER
- DBE_SQL_UTIL Schema
-
Configuring GUC Parameters
- Viewing Parameters
- Setting Parameters
-
GUC Parameters
- GUC Parameter Usage
- File Location
- Connection and Authentication
- Resource Consumption
- Data Import and Export
- Write Ahead Log
- HA Replication
- Query Planning
- SPM
- Error Reporting and Logging
- Alarm Detection
- Statistics During the Database Running
- Autovacuum
- Default Settings of Client Connection
- Lock Management
- Version and Platform Compatibility
- Fault Tolerance
- Connection Pool Parameters
- Transaction
- Replication Parameters of Two Database Instances
- Developer Options
- Auditing
- CM Parameters
- Upgrade Parameters
- Miscellaneous Parameters
- Wait Events
- Query
- System Performance Snapshot
- Security Configuration
- Global Temporary Table
- HyperLogLog
- User-defined Functions
- Scheduled Task
- Thread Pool
- Backup and Restoration
- Undo
- DCF Parameters Settings
- Flashback
- Rollback Parameters
- AI Features
- Global SysCache Parameters
- Restoring Data on the Standby Node
- Delimiter
- Global PL/SQL Cache Parameters
- Ledger Database
- Creating an Index Online
- Data Lifecycle Management: OLTP Table Compression
- Vector Database Parameters
- Enhanced TOAST
- Reserved Parameters
-
FAQ
- What is the maximum number of columns in a single GaussDB table?
- How do I query the partition and index information of a partitioned table?
- What is OID?
- What is UDF?
- What wildcards are supported in GaussDB? How do I use them?
- Is there a limit on the length of a database object name?
- How do I view the creation time of a table?
- How do I create indexes in parallel?
- How do I create an auto-increment column?
- Can I query the GaussDB memory usage through SQL statements?
- What are the differences between LIMIT 2, LIMIT 2,3 and LIMIT 2 OFFSET 3?
- How do I create a column whose default value is the current time?
- How do I determine whether a column is null?
- How do I obtain the username for connecting to a database?
- How do I query the time difference between two time points?
- What are the types of SQL languages?
- What is the function of a trigger?
- What are the four characteristics of correctly executing database transactions?
- What are the differences between the DROP, TRUNCATE, and DELETE methods in GaussDB?
- How many bytes does a Chinese character occupy in GaussDB?
-
Developer Guide(Distributed_V2.0-3.x)
- Database System Overview
- Database Security
- Database Quick Start
- Development and Design Proposal
-
Application Development Guide
- Development Specifications
- Obtaining the Driver Package
-
Development Based on JDBC
- JDBC Package, Driver Class, and Environment Class
- Development Process
- Loading a Driver
- Connecting to a Database
- Connecting to a Database (Using SSL)
- Connecting to a Database (Using UDS)
- Running SQL Statements
- Processing Data in a Result Set
- Closing a Connection
- Log Management
- Examples: Common Operations
- Example: Retrying SQL Queries for Applications
- Example: Logical Replication Code
- Example: Parameters for Connecting to the Database in Different Scenarios
-
JDBC Interface Reference
- java.sql.Connection
- java.sql.CallableStatement
- java.sql.DatabaseMetaData
- java.sql.Driver
- java.sql.PreparedStatement
- java.sql.ResultSet
- java.sql.ResultSetMetaData
- java.sql.Statement
- javax.sql.ConnectionPoolDataSource
- javax.sql.DataSource
- javax.sql.PooledConnection
- javax.naming.Context
- javax.naming.spi.InitialContextFactory
- CopyManager
- PGReplicationConnection
- PGReplicationStream
- ChainedStreamBuilder
- ChainedCommonStreamBuilder
- Common JDBC Parameters
- FAQs
- Mapping for JDBC Data Types
- Development Based on ODBC
- Development Based on libpq
- Psycopg-based Development
-
ECPG-based Development
- Development Process
- ecpg Components
- ecpg Preprocessing and Compiling
- Managing Database Connections
- Running SQL Commands
- Querying the Result Set
- Closing a Database Connection
- Host Variables
- Executing Dynamic SQL Statements
- Error Handling
- Preprocessor Directives
- Using Library Functions
- SQL Descriptor Area
- Examples
- ecpg and Pro*C Compatibility Comparison
- ECPG API Reference
- Development Based on the Go Driver
- Debugging
-
SQL Optimization
- Query Execution Process
- Introduction to the SQL Execution Plan
- Optimization Process
- Updating Statistics
- Reviewing and Modifying a Table Definition
- Typical SQL Optimization Methods
- Experience in Rewriting SQL Statements
- Configuring Key Parameters for SQL Tuning
-
Hint-based Tuning
- Plan Hint Optimization
- Hint Specifying the Query Block Where the Hint Is Located
- Hint Specifying the Query Block and Schema of a Table
- Join Order Hints
- Join Operation Hints
- Rows Hints
- Stream Operation Hints
- Scan Hints
- Sublink Name Hints
- Skew Hints
- Parameterized Path Hint
- Hint Errors, Conflicts, and Other Warnings
- GUC Parameter Hints
- Hints for Selecting the Custom Plan or Generic Plan
- Hints Specifying Not to Expand Subqueries
- Hints Specifying Not to Use Global Plan Cache
- Hint of Parameterized Paths at the Same Level
- Hint for Setting Slow SQL Control Rules
- Bitmap Scan Hints
- Hint for Inner Table Materialization During Join
- AGG Hint
- Checking the Implicit Conversion Performance
- Tuning with SQL PATCH
-
Optimization Cases
- Case: Selecting an Appropriate Distribution Key
- Case: Creating an Appropriate Index
- Case: Adjusting Distribution Keys
- Case: Adjusting the GUC Parameter best_agg_plan
- Case: Rewriting SQL and Deleting Subqueries (1)
- Case: Rewriting SQL Statements to Eliminate Pruning Interference
- Case: Rewriting SQL Statements and Deleting in-clause
- Case: Modifying the GUC Parameter rewrite_rule
- Using DN Gather to Reduce Stream Nodes in the Plan
-
SQL Reference
- SQL
- Keywords
- Data Type
- Constant and Macro
-
Functions and Operators
- Logical Operators
- Comparison Operators
- Character Processing Functions and Operators
- Binary String Functions and Operators
- Bit String Functions and Operators
- Pattern Matching Operators
- Arithmetic Functions and Operators
- Date and Time Processing Functions and Operators
- Type Conversion Functions
- Geometric Functions and Operators
- Network Address Functions and Operators
- Text Search Functions and Operators
- JSON/JSONB Functions and Operators
- HLL Functions and Operators
- SEQUENCE Functions
- Array Functions and Operators
- Range Functions and Operators
- Aggregate Functions
- Window Functions
- Security Functions
- Encrypted Functions and Operators
- Set Returning Functions
- Conditional Expression Functions
- System Information Functions
-
System Administration Functions
- Configuration Settings Functions
- Universal File Access Functions
- Server Signal Functions
- Backup and Restoration Control Functions
- Dual-Cluster DR Control Functions
- Dual-Cluster DR Query Functions
- Snapshot Synchronization Functions
- Database Object Functions
- Advisory Lock Functions
- Logical Replication Functions
- Undo System Functions
- Other Functions
- SQL Statement Concurrency Control Function
- Statistics Information Functions
- Trigger Functions
- Hash Function
- Prompt Message Function
- Fault Injection System Function
- Redistribution Parameters
- Distribution Key Recommendation Functions
- Other System Functions
- Internal Functions
- AI Feature Functions
- Dynamic Data Masking Functions
- Hotkey Feature Functions
- Global SysCache Functions
- Data Damage Detection and Repair Functions
- Functions of the XML Type
- Functions of the XMLType Type
- Obsolete Functions
- Expressions
- Pseudocolumn
- Type Conversion
- System Operation
- Controlling Transactions
- DDL Syntax Overview
- DML Syntax Overview
- DCL Syntax Overview
-
SQL Syntax
- SQL Syntax
- ABORT
- ALTER AUDIT POLICY
- ALTER COLUMN ENCRYPTION KEY
- ALTER COORDINATOR
- ALTER DATABASE
- ALTER DATABASE LINK
- ALTER DEFAULT PRIVILEGES
- ALTER DIRECTORY
- ALTER FOREIGN DATA WRAPPER
- ALTER FUNCTION
- ALTER GLOBAL CONFIGURATION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER MASKING POLICY
- ALTER MATERIALIZED VIEW
- ALTER NODE
- ALTER NODE GROUP
- ALTER RESOURCE LABEL
- ALTER ROLE
- ALTER ROW LEVEL SECURITY POLICY
- ALTER SCHEMA
- ALTER SEQUENCE
- ALTER SERVER
- ALTER SESSION
- ALTER SYNONYM
- ALTER SYSTEM KILL SESSION
- ALTER TABLE
- ALTER TABLE PARTITION
- ALTER TABLESPACE
- ALTER TRIGGER
- ALTER TYPE
- ALTER USER
- ALTER VIEW
- ANALYZE | ANALYSE
- BEGIN
- CALL
- CHECKPOINT
- CLEAN CONNECTION
- CLOSE
- CLUSTER
- COMMENT
- COMMIT | END
- COMMIT PREPARED
- COPY
- CREATE AUDIT POLICY
- CREATE BARRIER
- CREATE CLIENT MASTER KEY
- CREATE COLUMN ENCRYPTION KEY
- CREATE CONVERSION
- CREATE DATABASE
- CREATE DATABASE LINK
- CREATE DIRECTORY
- CREATE FOREIGN DATA WRAPPER
- CREATE FUNCTION
- CREATE GLOBAL INDEX
- CREATE GROUP
- CREATE INCREMENTAL MATERIALIZED VIEW
- CREATE INDEX
- CREATE LANGUAGE
- CREATE MASKING POLICY
- CREATE MATERIALIZED VIEW
- CREATE MODEL
- CREATE NODE
- CREATE NODE GROUP
- CREATE PROCEDURE
- CREATE RESOURCE LABEL
- CREATE ROLE
- CREATE ROW LEVEL SECURITY POLICY
- CREATE SCHEMA
- CREATE SEQUENCE
- CREATE SERVER
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLESPACE
- CREATE TABLE AS
- CREATE TABLE PARTITION
- CREATE TRIGGER
- CREATE TYPE
- CREATE USER
- CREATE VIEW
- CREATE WEAK PASSWORD DICTIONARY
- CURSOR
- DEALLOCATE
- DECLARE
- DELETE
- DO
- DROP AUDIT POLICY
- DROP CLIENT MASTER KEY
- DROP COLUMN ENCRYPTION KEY
- DROP DATABASE
- DROP DATABASE LINK
- DROP DIRECTORY
- DROP FOREIGN DATA WRAPPER
- DROP FUNCTION
- DROP GLOBAL CONFIGURATION
- DROP GROUP
- DROP INDEX
- DROP LANGUAGE
- DROP MASKING POLICY
- DROP MATERIALIZED VIEW
- DROP MODEL
- DROP NODE
- DROP NODE GROUP
- DROP OWNED
- DROP PROCEDURE
- DROP RESOURCE LABEL
- DROP ROLE
- DROP ROW LEVEL SECURITY POLICY
- DROP SCHEMA
- DROP SEQUENCE
- DROP SERVER
- DROP SYNONYM
- DROP TABLE
- DROP TABLESPACE
- DROP TRIGGER
- DROP TYPE
- DROP USER
- DROP VIEW
- DROP WEAK PASSWORD DICTIONARY
- EXECUTE
- EXECUTE DIRECT
- EXPDP DATABASE
- EXPDP TABLE
- EXPLAIN
- EXPLAIN PLAN
- FETCH
- GRANT
- IMPDP DATABASE CREATE
- IMPDP RECOVER
- INSERT
- IMPDP TABLE
- IMPDP TABLE PREPARE
- LOCK
- MOVE
- MERGE INTO
- PREDICT BY
- PREPARE
- PREPARE TRANSACTION
- PURGE
- REASSIGN OWNED
- REINDEX
- REFRESH INCREMENTAL MATERIALIZED VIEW
- REFRESH MATERIALIZED VIEW
- RELEASE SAVEPOINT
- RESET
- REVOKE
- ROLLBACK
- ROLLBACK PREPARED
- ROLLBACK TO SAVEPOINT
- SAVEPOINT
- SELECT
- SELECT INTO
- SET
- SET CONSTRAINTS
- SET ROLE
- SET SESSION AUTHORIZATION
- SET TRANSACTION
- SHOW
- SHUTDOWN
- START TRANSACTION
- TIMECAPSULE TABLE
- TRUNCATE
- UPDATE
- VACUUM
- VALUES
- Appendix
- Best Practices
- User-defined Functions
- Stored Procedures
- Autonomous Transaction
-
System Catalogs and System Views
- Overview of System Catalogs and System Views
-
System Catalogs
- GS_AUDITING_POLICY
- GS_AUDITING_POLICY_ACCESS
- GS_AUDITING_POLICY_FILTERS
- GS_AUDITING_POLICY_PRIVILEGES
- GS_ASP
- GS_CLIENT_GLOBAL_KEYS
- GS_CLIENT_GLOBAL_KEYS_ARGS
- GS_COLUMN_KEYS
- GS_COLUMN_KEYS_ARGS
- GS_DATABASE_LINK
- GS_DB_PRIVILEGE
- GS_DEPENDENCIES
- GS_DEPENDENCIES_OBJ
- GS_ENCRYPTED_COLUMNS
- GS_ENCRYPTED_PROC
- GS_GLOBAL_CONFIG
- GS_JOB_ATTRIBUTE
- GS_JOB_ARGUMENT
- GS_MASKING_POLICY
- GS_MASKING_POLICY_ACTIONS
- GS_MASKING_POLICY_FILTERS
- GS_MATVIEW
- GS_MATVIEW_DEPENDENCY
- GS_MODEL_WAREHOUSE
- GS_OPT_MODEL
- GS_PLAN_TRACE
- GS_POLICY_LABEL
- GS_RECYCLEBIN
- GS_SQL_PATCH
- GS_TXN_SNAPSHOT
- GS_UID
- GS_WORKLOAD_RULE
- PG_AGGREGATE
- PG_AM
- PG_AMOP
- PG_AMPROC
- PG_APP_WORKLOADGROUP_MAPPING
- PG_ATTRDEF
- PG_ATTRIBUTE
- PG_AUTHID
- PG_AUTH_HISTORY
- PG_AUTH_MEMBERS
- PG_CAST
- PG_CLASS
- PG_COLLATION
- PG_CONSTRAINT
- PG_CONVERSION
- PG_DATABASE
- PG_DB_ROLE_SETTING
- PG_DEFAULT_ACL
- PG_DEPEND
- PG_DESCRIPTION
- PG_DIRECTORY
- PG_ENUM
- PG_EXTENSION
- PG_FOREIGN_DATA_WRAPPER
- PG_FOREIGN_SERVER
- PG_HASHBUCKET
- PG_INDEX
- PG_INHERITS
- PG_JOB
- PG_JOB_PROC
- PG_LANGUAGE
- PG_LARGEOBJECT
- PG_LARGEOBJECT_METADATA
- PG_NAMESPACE
- PG_OBJECT
- PG_OPCLASS
- PG_OPERATOR
- PG_OPFAMILY
- PG_PARTITION
- PG_PLTEMPLATE
- PG_PROC
- PG_RANGE
- PG_REPLICATION_ORIGIN
- PG_RESOURCE_POOL
- PG_REWRITE
- PG_RLSPOLICY
- PG_SECLABEL
- PG_SET
- PG_SHDEPEND
- PG_SHDESCRIPTION
- PG_SHSECLABEL
- PG_STATISTIC
- PG_STATISTIC_EXT
- PG_SYNONYM
- PG_TABLESPACE
- PG_TRIGGER
- PG_TS_CONFIG
- PG_TS_CONFIG_MAP
- PG_TS_DICT
- PG_TS_PARSER
- PG_TS_TEMPLATE
- PG_TYPE
- PG_USER_MAPPING
- PG_USER_STATUS
- PGXC_CLASS
- PGXC_GROUP
- PGXC_NODE
- PGXC_REDISTB
- PGXC_SLICE
- PLAN_TABLE_DATA
- STATEMENT_HISTORY
- STREAMING_STREAM
- STREAMING_CONT_QUERY
-
System Views
- ADM_ARGUMENTS
- ADM_AUDIT_OBJECT
- ADM_AUDIT_SESSION
- ADM_AUDIT_STATEMENT
- ADM_AUDIT_TRAIL
- ADM_COL_COMMENTS
- ADM_COL_PRIVS
- ADM_COLL_TYPES
- ADM_CONS_COLUMNS
- ADM_CONSTRAINTS
- ADM_DATA_FILES
- ADM_DEPENDENCIES
- ADM_DIRECTORIES
- ADM_HIST_SNAPSHOT
- ADM_HIST_SQL_PLAN
- ADM_HIST_SQLSTAT
- ADM_HIST_SQLTEXT
- ADM_IND_COLUMNS
- ADM_IND_EXPRESSIONS
- ADM_IND_PARTITIONS
- ADM_IND_SUBPARTITIONS
- ADM_INDEXES
- ADM_OBJECTS
- ADM_PART_COL_STATISTICS
- ADM_PART_INDEXES
- ADM_PART_TABLES
- ADM_PROCEDURES
- ADM_ROLE_PRIVS
- ADM_ROLES
- ADM_SCHEDULER_JOB_ARGS
- ADM_SCHEDULER_JOBS
- ADM_SCHEDULER_PROGRAM_ARGS
- ADM_SCHEDULER_PROGRAMS
- ADM_SCHEDULER_RUNNING_JOBS
- ADM_SEGMENTS
- ADM_SEQUENCES
- ADM_SOURCE
- ADM_SUBPART_KEY_COLUMNS
- ADM_SYNONYMS
- ADM_SYS_PRIVS
- ADM_TAB_COLS
- ADM_TAB_COL_STATISTICS
- ADM_TAB_COLUMNS
- ADM_TAB_COMMENTS
- ADM_TAB_HISTOGRAMS
- ADM_TAB_PARTITIONS
- ADM_TAB_PRIVS
- ADM_TAB_STATISTICS
- ADM_TAB_STATS_HISTORY
- ADM_TABLES
- ADM_TABLESPACES
- ADM_TRIGGERS
- ADM_TYPES
- ADM_TYPE_ATTRS
- ADM_USERS
- ADM_VIEWS
- COMM_CLIENT_INFO
- DB_ALL_TABLES
- DB_ARGUMENTS
- DB_COL_COMMENTS
- DB_COL_PRIVS
- DB_COLL_TYPES
- DB_CONSTRAINTS
- DB_CONS_COLUMNS
- DB_DEPENDENCIES
- DB_IND_COLUMNS
- DB_IND_EXPRESSIONS
- DB_IND_PARTITIONS
- DB_IND_SUBPARTITIONS
- DB_INDEXES
- DB_OBJECTS
- DB_PART_COL_STATISTICS
- DB_PART_KEY_COLUMNS
- DB_PART_TABLES
- DB_PROCEDURES
- DB_SCHEDULER_JOB_ARGS
- DB_SCHEDULER_PROGRAM_ARGS
- DB_SEQUENCES
- DB_SOURCE
- DB_SUBPART_KEY_COLUMNS
- DB_SYNONYMS
- DB_TAB_COL_STATISTICS
- DB_TAB_COLUMNS
- DB_TAB_COMMENTS
- DB_TAB_HISTOGRAMS
- DB_TAB_PARTITIONS
- DB_TAB_STATS_HISTORY
- DB_TAB_SUBPARTITIONS
- DB_TABLES
- DB_TRIGGERS
- DB_TYPES
- DB_USERS
- DB_VIEWS
- DICT
- DICTIONARY
- DV_SESSIONS
- DV_SESSION_LONGOPS
- GET_GLOBAL_PREPARED_XACTS
- GLOBAL_BAD_BLOCK_INFO
- GLOBAL_CLEAR_BAD_BLOCK_INFO
- GLOBAL_COMM_CLIENT_INFO
- GLOBAL_SQL_PATCH
- GLOBAL_STAT_HOTKEYS_INFO
- GLOBAL_WAL_SENDER_STATUS
- GS_ALL_CONTROL_GROUP_INFO
- GS_ALL_PREPARED_STATEMENTS
- GS_AUDITING
- GS_AUDITING_ACCESS
- GS_AUDITING_PRIVILEGE
- GS_CLUSTER_RESOURCE_INFO
- GS_COMM_LISTEN_ADDRESS_EXT_INFO
- GS_DB_LINKS
- GS_DB_PRIVILEGES
- GS_GET_CONTROL_GROUP_INFO
- GS_GET_LISTEN_ADDRESS_EXT_INFO
- GS_GLOBAL_ARCHIVE_STATUS
- GS_GSC_MEMORY_DETAIL
- GS_LABELS
- GS_LSC_MEMORY_DETAIL
- GS_MASKING
- GS_MATVIEWS
- GS_MY_PLAN_TRACE
- GS_SESSION_ALL_SETTINGS
- GS_SQL_COUNT
- GS_STAT_ALL_PARTITIONS
- GS_STAT_XACT_ALL_PARTITIONS
- GS_STATIO_ALL_PARTITIONS
- GS_WORKLOAD_RULE_STAT
- GV_INSTANCE
- GV_SESSION
- MPP_TABLES
- MY_COL_COMMENTS
- MY_COL_PRIVS
- MY_COLL_TYPES
- MY_CONS_COLUMNS
- MY_CONSTRAINTS
- MY_DEPENDENCIES
- MY_IND_COLUMNS
- MY_IND_EXPRESSIONS
- MY_IND_PARTITIONS
- MY_IND_SUBPARTITIONS
- MY_INDEXES
- MY_JOBS
- MY_OBJECTS
- MY_PART_COL_STATISTICS
- MY_PART_INDEXES
- MY_PART_KEY_COLUMNS
- MY_PART_TABLES
- MY_PROCEDURES
- MY_ROLE_PRIVS
- MY_SCHEDULER_JOB_ARGS
- MY_SCHEDULER_PROGRAM_ARGS
- MY_SEQUENCES
- MY_SOURCE
- MY_SUBPART_KEY_COLUMNS
- MY_SYNONYMS
- MY_SYS_PRIVS
- MY_TAB_COL_STATISTICS
- MY_TAB_COLUMNS
- MY_TAB_COMMENTS
- MY_TAB_HISTOGRAMS
- MY_TAB_PARTITIONS
- MY_TAB_STATISTICS
- MY_TAB_STATS_HISTORY
- MY_TABLES
- MY_TABLESPACES
- MY_TRIGGERS
- MY_TYPE_ATTRS
- MY_TYPES
- MY_VIEWS
- NLS_DATABASE_PARAMETERS
- NLS_INSTANCE_PARAMETERS
- PG_AVAILABLE_EXTENSION_VERSIONS
- PG_AVAILABLE_EXTENSIONS
- PG_COMM_DELAY
- PG_COMM_RECV_STREAM
- PG_COMM_SEND_STREAM
- PG_COMM_STATUS
- PG_CONTROL_GROUP_CONFIG
- PG_CURSORS
- PG_EXT_STATS
- PG_GET_INVALID_BACKENDS
- PG_GET_SENDERS_CATCHUP_TIME
- PG_GROUP
- PG_INDEXES
- PG_LOCKS
- PG_NODE_ENV
- PG_OS_THREADS
- PG_POOLER_STATUS
- PG_PREPARED_STATEMENTS
- PG_PREPARED_XACTS
- PG_REPLICATION_SLOTS
- PG_RLSPOLICIES
- PG_ROLES
- PG_RULES
- PG_RUNNING_XACTS
- PG_SECLABELS
- PG_SETTINGS
- PG_SHADOW
- PG_SHARED_MEMORY_DETAIL
- PG_STAT_ACTIVITY
- PG_STAT_ALL_INDEXES
- PG_STAT_ALL_TABLES
- PG_STAT_BAD_BLOCK
- PG_STAT_BGWRITER
- PG_STAT_DATABASE
- PG_STAT_DATABASE_CONFLICTS
- PG_STAT_REPLICATION
- PG_STAT_SYS_INDEXES
- PG_STAT_SYS_TABLES
- PG_STAT_USER_FUNCTIONS
- PG_STAT_USER_INDEXES
- PG_STAT_USER_TABLES
- PG_STAT_XACT_ALL_TABLES
- PG_STAT_XACT_SYS_TABLES
- PG_STAT_XACT_USER_FUNCTIONS
- PG_STAT_XACT_USER_TABLES
- PG_STATS
- PG_STATIO_ALL_INDEXES
- PG_STATIO_ALL_SEQUENCES
- PG_STATIO_ALL_TABLES
- PG_STATIO_SYS_INDEXES
- PG_STATIO_SYS_SEQUENCES
- PG_STATIO_SYS_TABLES
- PG_STATIO_USER_INDEXES
- PG_STATIO_USER_SEQUENCES
- PG_STATIO_USER_TABLES
- PG_THREAD_WAIT_STATUS
- PG_TABLES
- PG_TDE_INFO
- PG_TIMEZONE_ABBREVS
- PG_TIMEZONE_NAMES
- PG_TOTAL_MEMORY_DETAIL
- PG_TOTAL_USER_RESOURCE_INFO
- PG_TOTAL_USER_RESOURCE_INFO_OID
- PG_USER
- PG_USER_MAPPINGS
- PG_VARIABLE_INFO
- PG_VIEWS
- PGXC_COMM_DELAY
- PGXC_COMM_RECV_STREAM
- PGXC_COMM_SEND_STREAM
- PGXC_COMM_STATUS
- PGXC_GET_STAT_ALL_TABLES
- PGXC_GET_TABLE_SKEWNESS
- PGXC_NODE_ENV
- PGXC_OS_THREADS
- PGXC_PREPARED_XACTS
- PGXC_RUNNING_XACTS
- PGXC_SQL_COUNT
- PGXC_STAT_ACTIVITY
- PGXC_STAT_BAD_BLOCK
- PGXC_THREAD_WAIT_STATUS
- PGXC_TOTAL_MEMORY_DETAIL
- PGXC_VARIABLE_INFO
- PLAN_TABLE
- PV_FILE_STAT
- PV_INSTANCE_TIME
- PV_OS_RUN_INFO
- PV_REDO_STAT
- PV_SESSION_MEMORY
- PV_SESSION_MEMORY_CONTEXT
- PV_SESSION_MEMORY_DETAIL
- PV_SESSION_STAT
- PV_SESSION_TIME
- PV_THREAD_MEMORY_CONTEXT
- PV_TOTAL_MEMORY_DETAIL
- ROLE_ROLE_PRIVS
- ROLE_SYS_PRIVS
- ROLE_TAB_PRIVS
- SYS_DUMMY
- V_INSTANCE
- V_MYSTAT
- V_SESSION
- V$NLS_PARAMETERS
- V$SESSION_WAIT
- V$SYSSTAT
- V$SYSTEM_EVENT
- V$VERSION
-
Schemas
- Information Schema
-
DBE_PERF Schema
- OS
- Instance
- Memory
- File
-
Object
- STAT_USER_TABLES
- SUMMARY_STAT_USER_TABLES
- GLOBAL_STAT_USER_TABLES
- STAT_USER_INDEXES
- SUMMARY_STAT_USER_INDEXES
- GLOBAL_STAT_USER_INDEXES
- STAT_SYS_TABLES
- SUMMARY_STAT_SYS_TABLES
- GLOBAL_STAT_SYS_TABLES
- STAT_SYS_INDEXES
- SUMMARY_STAT_SYS_INDEXES
- GLOBAL_STAT_SYS_INDEXES
- STAT_ALL_TABLES
- SUMMARY_STAT_ALL_TABLES
- GLOBAL_STAT_ALL_TABLES
- STAT_ALL_INDEXES
- SUMMARY_STAT_ALL_INDEXES
- GLOBAL_STAT_ALL_INDEXES
- STAT_DATABASE
- SUMMARY_STAT_DATABASE
- GLOBAL_STAT_DATABASE
- STAT_DATABASE_CONFLICTS
- SUMMARY_STAT_DATABASE_CONFLICTS
- GLOBAL_STAT_DATABASE_CONFLICTS
- STAT_XACT_ALL_TABLES
- SUMMARY_STAT_XACT_ALL_TABLES
- GLOBAL_STAT_XACT_ALL_TABLES
- STAT_XACT_SYS_TABLES
- SUMMARY_STAT_XACT_SYS_TABLES
- GLOBAL_STAT_XACT_SYS_TABLES
- STAT_XACT_USER_TABLES
- SUMMARY_STAT_XACT_USER_TABLES
- GLOBAL_STAT_XACT_USER_TABLES
- STAT_XACT_USER_FUNCTIONS
- SUMMARY_STAT_XACT_USER_FUNCTIONS
- GLOBAL_STAT_XACT_USER_FUNCTIONS
- STAT_BAD_BLOCK
- SUMMARY_STAT_BAD_BLOCK
- GLOBAL_STAT_BAD_BLOCK
- STAT_USER_FUNCTIONS
- SUMMARY_STAT_USER_FUNCTIONS
- GLOBAL_STAT_USER_FUNCTIONS
- Workload
-
Session and Thread
- SESSION_STAT
- GLOBAL_SESSION_STAT
- SESSION_TIME
- GLOBAL_SESSION_TIME
- SESSION_MEMORY
- GLOBAL_SESSION_MEMORY
- SESSION_MEMORY_DETAIL
- GLOBAL_SESSION_MEMORY_DETAIL
- SESSION_STAT_ACTIVITY
- GLOBAL_SESSION_STAT_ACTIVITY
- THREAD_WAIT_STATUS
- GLOBAL_THREAD_WAIT_STATUS
- LOCAL_THREADPOOL_STATUS
- GLOBAL_THREADPOOL_STATUS
- SESSION_CPU_RUNTIME
- SESSION_MEMORY_RUNTIME
- LOCAL_ACTIVE_SESSION
- GLOBAL_ACTIVE_SESSION
- Transaction
- Query
-
Cache and I/O
- STATIO_USER_TABLES
- SUMMARY_STATIO_USER_TABLES
- GLOBAL_STATIO_USER_TABLES
- STATIO_USER_INDEXES
- SUMMARY_STATIO_USER_INDEXES
- GLOBAL_STATIO_USER_INDEXES
- STATIO_USER_SEQUENCES
- SUMMARY_STATIO_USER_SEQUENCES
- GLOBAL_STATIO_USER_SEQUENCES
- STATIO_SYS_TABLES
- SUMMARY_STATIO_SYS_TABLES
- GLOBAL_STATIO_SYS_TABLES
- STATIO_SYS_INDEXES
- SUMMARY_STATIO_SYS_INDEXES
- GLOBAL_STATIO_SYS_INDEXES
- STATIO_SYS_SEQUENCES
- SUMMARY_STATIO_SYS_SEQUENCES
- GLOBAL_STATIO_SYS_SEQUENCES
- STATIO_ALL_TABLES
- SUMMARY_STATIO_ALL_TABLES
- GLOBAL_STATIO_ALL_TABLES
- STATIO_ALL_INDEXES
- SUMMARY_STATIO_ALL_INDEXES
- GLOBAL_STATIO_ALL_INDEXES
- STATIO_ALL_SEQUENCES
- SUMMARY_STATIO_ALL_SEQUENCES
- GLOBAL_STATIO_ALL_SEQUENCES
- Communication Library
-
Utility
- REPLICATION_STAT
- GLOBAL_REPLICATION_STAT
- REPLICATION_SLOTS
- GLOBAL_REPLICATION_SLOTS
- PARALLEL_DECODE_STATUS
- GLOBAL_PARALLEL_DECODE_STATUS
- PARALLEL_DECODE_THREAD_INFO
- GLOBAL_PARALLEL_DECODE_THREAD_INFO
- BGWRITER_STAT
- GLOBAL_BGWRITER_STAT
- POOLER_STATUS
- GLOBAL_COMM_CHECK_CONNECTION_STATUS
- GLOBAL_CKPT_STATUS
- GLOBAL_DOUBLE_WRITE_STATUS
- GLOBAL_PAGEWRITER_STATUS
- GLOBAL_POOLER_STATUS
- GLOBAL_RECORD_RESET_TIME
- GLOBAL_REDO_STATUS
- GLOBAL_RECOVERY_STATUS
- CLASS_VITAL_INFO
- USER_LOGIN
- SUMMARY_USER_LOGIN
- GLOBAL_GET_BGWRITER_STATUS
- GLOBAL_SINGLE_FLUSH_DW_STATUS
- GLOBAL_CANDIDATE_STATUS
- Lock
- Wait Event
- Configuration
- Operator
- Workload Manager
- Global Plan Cache
- RTO & RPO
- AI Watchdog
- Discarded
- WDR Snapshot Schema
-
DBE_SQL_UTIL Schema
- DBE_SQL_UTIL.create_hint_sql_patch
- DBE_SQL_UTIL.create_abort_sql_patch
- DBE_SQL_UTIL.drop_sql_patch
- DBE_SQL_UTIL.enable_sql_patch
- DBE_SQL_UTIL.disable_sql_patch
- DBE_SQL_UTIL.show_sql_patch
- DBE_SQL_UTIL.create_hint_sql_patch
- DBE_SQL_UTIL.create_abort_sql_patch
- DBE_SQL_UTIL.create_remote_hint_sql_patch
- DBE_SQL_UTIL.create_remote_abort_sql_patch
- DBE_SQL_UTIL.drop_remote_sql_patch
- DBE_SQL_UTIL.enable_remote_sql_patch
- DBE_SQL_UTIL.disable_remote_sql_patch
-
Configuring Running Parameters
- Viewing Parameters
- Setting Parameters
-
GUC Parameters
- GUC Parameter Usage
- File Location
- Connection and Authentication
- Resource Consumption
- Parallel Data Import
- Write Ahead Log
- HA Replication
- Query Planning
- Error Reporting and Logging
- Alarm Detection
- Statistics During the Database Running
- Automatic Vacuuming
- Default Settings of Client Connection
- Lock Management
- Version and Platform Compatibility
- Fault Tolerance
- Connection Pool Parameters
- Cluster Transaction Parameters
- Dual-Cluster Replication Parameters
- Developer Options
- Auditing
- Transaction Monitoring
- CM Parameters
- GTM Parameters
- Upgrade Parameters
- Miscellaneous Parameters
- Wait Event
- Query
- System Performance Snapshot
- Security Configuration
- HyperLogLog
- User-defined Functions
- Collaborative Analysis
- Acceleration Cluster
- Scheduled Task
- Thread Pool
- Full Text Search
- Backup and Restoration
- AI Features
- Global SysCache Parameters
- Reserved Parameters
- Read Parameters of the Standby Node in a Distributed System
- Restoring Data on the Standby Node
- Undo
- Rollback Parameters
- DCF Parameters Settings
- Flashback
-
Developer Guide(Centralized_V2.0-3.x)
- Database System Overview
- Database Security
- Database Quick Start
- Development and Design Proposal
-
Application Development Guide
- Development Specifications
- Obtaining the Driver Package
-
Development Based on JDBC
- JDBC Package, Driver Class, and Environment Class
- Development Process
- Loading a Driver
- Connecting to a Database
- Connecting to a Database (Using SSL)
- Connecting to a Database (Using UDS)
- Running SQL Statements
- Processing Data in a Result Set
- Closing a Connection
- Log Management
- Examples: Common Operations
- Example: Retrying SQL Queries for Applications
- Example: Importing and Exporting Data Through Local Files
- Example: Migrating Data from MY
- Example: Logical Replication Code
- Example: Parameters for Connecting to the Database in Different Scenarios
-
JDBC API Reference
- java.sql.Connection
- java.sql.CallableStatement
- java.sql.DatabaseMetaData
- java.sql.Driver
- java.sql.PreparedStatement
- java.sql.ResultSet
- java.sql.ResultSetMetaData
- java.sql.Statement
- javax.sql.ConnectionPoolDataSource
- javax.sql.DataSource
- javax.sql.PooledConnection
- javax.naming.Context
- javax.naming.spi.InitialContextFactory
- CopyManager
- PGReplicationConnection
- PGReplicationStream
- ChainedStreamBuilder
- ChainedCommonStreamBuilder
- PGobject
- Common JDBC Parameters
- Troubleshooting
- Mapping for JDBC Data Types
- Development Based on ODBC
- Development Based on libpq
- Psycopg-based Development
- Development Based on the Go Driver
-
ECPG-based Development
- Development Process
- ecpg Components
- ecpg Preprocessing and Compiling
- Managing Database Connections
- Running SQL Commands
- Querying the Result Set
- Closing a Database Connection
- Host Variables
- Executing Dynamic SQL Statements
- Error Handling
- Preprocessor Directives
- Using Library Functions
- SQL Descriptor Area
- Examples
- ECPG API Reference
- Debugging
-
SQL Optimization
- Query Execution Process
- Introduction to the SQL Execution Plan
- Optimization Process
- Updating Statistics
- Reviewing and Modifying a Table Definition
- Typical SQL Optimization Methods
- Experience in Rewriting SQL Statements
- Configuring Key Parameters for SQL Tuning
-
Hint-based Tuning
- Plan Hint Optimization
- Hint Specifying the Query Block Where the Hint Is Located
- Hint Specifying the Query Block and Schema of a Table
- Join Order Hints
- Join Operation Hints
- Rows Hints
- Stream Operation Hints
- Scan Operation Hints
- Sublink Name Hints
- Hint Errors, Conflicts, and Other Warnings
- Optimizer GUC Parameter Hints
- Hint for Selecting the Custom Plan or Generic Plan
- Hints Specifying Not to Expand Subqueries
- Hint Specifying Not to Use Global Plan Cache
- Hint of Parameterized Paths at the Same Level
- Hint for Setting Slow SQL Control Rules
- Hint for Adaptive Plan Selection
- Hint for Materializing a Sub-plan Result
- Bitmap Scan Hints
- Hint for Inner Table Materialization During Join
- AGG Hint
- Introduction to Plan Trace
- Tuning with SQL PATCH
- Optimization Cases
-
SQL Reference
- SQL
- Keywords
- Data Types
- Constant and Macro
-
Functions and Operators
- Logical Operators
- Comparison Operators
- Character Processing Functions and Operators
- Binary String Functions and Operators
- Bit String Functions and Operators
- Pattern Matching Operators
- Arithmetic Functions and Operators
- Date and Time Processing Functions and Operators
- Type Conversion Functions
- Geometric Functions and Operators
- Network Address Functions and Operators
- Text Search Functions and Operators
- JSON/JSONB Functions and Operators
- HLL Functions and Operators
- SEQUENCE Functions
- Array Functions and Operators
- Range Functions and Operators
- Aggregate Functions
- Window Functions
- Security Functions
- Encrypted Functions and Operators
- Set Returning Functions
- Conditional Expression Functions
- System Information Functions
-
System Administration Functions
- Configuration Settings Functions
- Universal File Access Functions
- Server Signal Functions
- Backup and Restoration Control Functions
- DR Control Functions for Dual-Database Instances
- DR Query Functions for Dual-Database Instances
- Snapshot Synchronization Functions
- Database Object Functions
- Advisory Lock Functions
- Logical Replication Functions
- Other Functions
- Undo System Functions
- SQL Statement Concurrency Control Function
- Statistics Information Functions
- Trigger Functions
- Hash Function
- Prompt Message Function
- Global Temporary Table Functions
- Fault Injection System Function
- AI Feature Functions
- Dynamic Data Masking Functions
- Hierarchical Recursion Query Functions
- Other System Functions
- Internal Functions
- Global SysCache Functions
- Data Damage Detection and Repair Functions
- Functions of the XML Type
- Functions of the XMLType Type
- Global PL/SQL Cache Functions
- Obsolete Functions
- Expressions
- Pseudocolumn
- Type Conversion
- System Operation
- Controlling Transactions
- DDL Syntax Overview
- DML Syntax Overview
- DCL Syntax Overview
-
SQL Syntax
- SQL Syntax
- ABORT
- ALTER AGGREGATE
- ALTER AUDIT POLICY
- ALTER COLUMN ENCRYPTION KEY
- ALTER EVENT
- ALTER DATABASE
- ALTER DATABASE LINK
- ALTER DEFAULT PRIVILEGES
- ALTER DIRECTORY
- ALTER FOREIGN DATA WRAPPER
- ALTER FUNCTION
- ALTER GLOBAL CONFIGURATION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER MASKING POLICY
- ALTER MATERIALIZED VIEW
- ALTER OPERATOR
- ALTER PACKAGE
- ALTER PROCEDURE
- ALTER RESOURCE LABEL
- ALTER RESOURCE POOL
- ALTER ROLE
- ALTER ROW LEVEL SECURITY POLICY
- ALTER SCHEMA
- ALTER SEQUENCE
- ALTER SERVER
- ALTER SESSION
- ALTER SYNONYM
- ALTER SYSTEM KILL SESSION
- ALTER TABLE
- ALTER TABLE PARTITION
- ALTER TABLE SUBPARTITION
- ALTER TABLESPACE
- ALTER TRIGGER
- ALTER TYPE
- ALTER USER
- ALTER USER MAPPING
- ALTER VIEW
- ANALYZE | ANALYSE
- BEGIN
- CALL
- CHECKPOINT
- CLEAN CONNECTION
- CLOSE
- CLUSTER
- COMMENT
- COMMIT | END
- COMMIT PREPARED
- COPY
- CREATE AGGREGATE
- CREATE AUDIT POLICY
- CREATE CAST
- CREATE CLIENT MASTER KEY
- CREATE COLUMN ENCRYPTION KEY
- CREATE CONVERSION
- CREATE DATABASE
- CREATE DATABASE LINK
- CREATE DIRECTORY
- CREATE EVENT
- CREATE FOREIGN DATA WRAPPER
- CREATE FUNCTION
- CREATE GROUP
- CREATE INCREMENTAL MATERIALIZED VIEW
- CREATE INDEX
- CREATE LANGUAGE
- CREATE MASKING POLICY
- CREATE MATERIALIZED VIEW
- CREATE MODEL
- CREATE OPERATOR
- CREATE OPERATOR CLASS
- CREATE PACKAGE
- CREATE PROCEDURE
- CREATE RESOURCE LABEL
- CREATE RESOURCE POOL
- CREATE ROLE
- CREATE ROW LEVEL SECURITY POLICY
- CREATE RULE
- CREATE SCHEMA
- CREATE SEQUENCE
- CREATE SERVER
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLE AS
- CREATE TABLE PARTITION
- CREATE TABLESPACE
- CREATE TABLE SUBPARTITION
- CREATE TRIGGER
- CREATE TYPE
- CREATE USER
- CREATE USER MAPPING
- CREATE VIEW
- CREATE WEAK PASSWORD DICTIONARY
- CURSOR
- DEALLOCATE
- DECLARE
- DELETE
- DO
- DROP AGGREGATE
- DROP AUDIT POLICY
- DROP CAST
- DROP CLIENT MASTER KEY
- DROP COLUMN ENCRYPTION KEY
- DROP DATABASE
- DROP DATABASE LINK
- DROP DIRECTORY
- DROP EVENT
- DROP FOREIGN DATA WRAPPER
- DROP FUNCTION
- DROP GLOBAL CONFIGURATION
- DROP GROUP
- DROP INDEX
- DROP LANGUAGE
- DROP MASKING POLICY
- DROP MATERIALIZED VIEW
- DROP MODEL
- DROP OPERATOR
- DROP OWNED
- DROP PACKAGE
- DROP PROCEDURE
- DROP RESOURCE LABEL
- DROP RESOURCE POOL
- DROP ROLE
- DROP ROW LEVEL SECURITY POLICY
- DROP RULE
- DROP SCHEMA
- DROP SEQUENCE
- DROP SERVER
- DROP SYNONYM
- DROP TABLE
- DROP TABLESPACE
- DROP TRIGGER
- DROP TYPE
- DROP USER
- DROP USER MAPPING
- DROP VIEW
- DROP WEAK PASSWORD DICTIONARY
- EXECUTE
- EXPDP DATABASE
- EXPDP TABLE
- EXPLAIN
- EXPLAIN PLAN
- FETCH
- GRANT
- IMPDP DATABASE CREATE
- IMPDP RECOVER
- IMPDP TABLE
- IMPDP TABLE PREPARE
- INSERT
- LOCK
- MERGE INTO
- MOVE
- PREDICT BY
- PREPARE
- PREPARE TRANSACTION
- PURGE
- REASSIGN OWNED
- REFRESH INCREMENTAL MATERIALIZED VIEW
- REFRESH MATERIALIZED VIEW
- REINDEX
- RELEASE SAVEPOINT
- RESET
- REVOKE
- ROLLBACK
- ROLLBACK PREPARED
- ROLLBACK TO SAVEPOINT
- SAVEPOINT
- SELECT
- SELECT INTO
- SET
- SET CONSTRAINTS
- SET ROLE
- SET SESSION AUTHORIZATION
- SET TRANSACTION
- SHOW
- SHOW EVENTS
- SHUTDOWN
- SNAPSHOT
- START TRANSACTION
- TIMECAPSULE TABLE
- TRUNCATE
- UPDATE
- VACUUM
- VALUES
- ALTER EXTENSION
- CREATE EXTENSION
- DROP EXTENSION
- Appendix
- Best Practices
- User-defined Functions
- Stored Procedure
- Autonomous Transaction
-
System Catalogs and System Views
- Overview of System Catalogs and System Views
-
System Catalogs
- GS_ASP
- GS_AUDITING_POLICY
- GS_AUDITING_POLICY_ACCESS
- GS_AUDITING_POLICY_FILTERS
- GS_AUDITING_POLICY_PRIVILEGES
- GS_CLIENT_GLOBAL_KEYS
- GS_CLIENT_GLOBAL_KEYS_ARGS
- GS_COLUMN_KEYS
- GS_COLUMN_KEYS_ARGS
- GS_DATABASE_LINK
- GS_DB_PRIVILEGE
- GS_DEPENDENCIES
- GS_DEPENDENCIES_OBJ
- GS_ENCRYPTED_COLUMNS
- GS_ENCRYPTED_PROC
- GS_GLOBAL_CONFIG
- GS_JOB_ARGUMENT
- GS_JOB_ATTRIBUTE
- GS_MASKING_POLICY
- GS_MASKING_POLICY_ACTIONS
- GS_MASKING_POLICY_FILTERS
- GS_MATVIEW
- GS_MATVIEW_DEPENDENCY
- GS_MODEL_WAREHOUSE
- GS_OPT_MODEL
- GS_PACKAGE
- GS_PLAN_TRACE
- GS_POLICY_LABEL
- GS_RECYCLEBIN
- GS_SQL_PATCH
- GS_TXN_SNAPSHOT
- GS_UID
- GS_WORKLOAD_RULE
- PG_AGGREGATE
- PG_AM
- PG_AMOP
- PG_AMPROC
- PG_APP_WORKLOADGROUP_MAPPING
- PG_ATTRDEF
- PG_ATTRIBUTE
- PG_AUTHID
- PG_AUTH_HISTORY
- PG_AUTH_MEMBERS
- PG_CAST
- PG_CLASS
- PG_COLLATION
- PG_CONSTRAINT
- PG_CONVERSION
- PG_DATABASE
- PG_DB_ROLE_SETTING
- PG_DEFAULT_ACL
- PG_DEPEND
- PG_DESCRIPTION
- PG_DIRECTORY
- PG_ENUM
- PG_EXTENSION
- PG_FOREIGN_DATA_WRAPPER
- PG_FOREIGN_SERVER
- PG_HASHBUCKET
- PG_INDEX
- PG_INHERITS
- PG_JOB
- PG_JOB_PROC
- PG_LANGUAGE
- PG_LARGEOBJECT
- PG_LARGEOBJECT_METADATA
- PG_NAMESPACE
- PG_OBJECT
- PG_OPCLASS
- PG_OPERATOR
- PG_OPFAMILY
- PG_PARTITION
- PG_PLTEMPLATE
- PG_PROC
- PG_RANGE
- PG_REPLICATION_ORIGIN
- PG_RESOURCE_POOL
- PG_REWRITE
- PG_RLSPOLICY
- PG_SECLABEL
- PG_SHDEPEND
- PG_SHDESCRIPTION
- PG_SHSECLABEL
- PG_SET
- PG_STATISTIC
- PG_STATISTIC_EXT
- PG_SYNONYM
- PG_TABLESPACE
- PG_TRIGGER
- PG_TS_CONFIG
- PG_TS_CONFIG_MAP
- PG_TS_DICT
- PG_TS_PARSER
- PG_TS_TEMPLATE
- PG_TYPE
- PG_USER_MAPPING
- PG_USER_STATUS
- PGXC_CLASS
- PGXC_GROUP
- PGXC_NODE
- PGXC_SLICE
- PLAN_TABLE_DATA
- STATEMENT_HISTORY
- STREAMING_STREAM
- STREAMING_CONT_QUERY
-
System Views
- ADM_ARGUMENTS
- ADM_AUDIT_OBJECT
- ADM_AUDIT_SESSION
- ADM_AUDIT_STATEMENT
- ADM_AUDIT_TRAIL
- ADM_COL_COMMENTS
- ADM_COL_PRIVS
- ADM_COLL_TYPES
- ADM_CONS_COLUMNS
- ADM_CONSTRAINTS
- ADM_DATA_FILES
- ADM_DEPENDENCIES
- ADM_DIRECTORIES
- ADM_HIST_SNAPSHOT
- ADM_HIST_SQL_PLAN
- ADM_HIST_SQLSTAT
- ADM_HIST_SQLTEXT
- ADM_IND_COLUMNS
- ADM_IND_EXPRESSIONS
- ADM_IND_PARTITIONS
- ADM_IND_SUBPARTITIONS
- ADM_INDEXES
- ADM_OBJECTS
- ADM_PART_COL_STATISTICS
- ADM_PART_INDEXES
- ADM_PART_TABLES
- ADM_PROCEDURES
- ADM_RECYCLEBIN
- ADM_ROLE_PRIVS
- ADM_ROLES
- ADM_SCHEDULER_JOB_ARGS
- ADM_SCHEDULER_JOBS
- ADM_SCHEDULER_PROGRAM_ARGS
- ADM_SCHEDULER_PROGRAMS
- ADM_SCHEDULER_RUNNING_JOBS
- ADM_SEGMENTS
- ADM_SEQUENCES
- ADM_SOURCE
- ADM_SUBPART_COL_STATISTICS
- ADM_SUBPART_KEY_COLUMNS
- ADM_SYNONYMS
- ADM_SYS_PRIVS
- ADM_TAB_COL_STATISTICS
- ADM_TAB_COLS
- ADM_TAB_HISTOGRAMS
- ADM_TAB_PRIVS
- ADM_TAB_STATISTICS
- ADM_TAB_STATS_HISTORY
- ADM_TAB_SUBPARTITIONS
- ADM_TABLES
- ADM_TABLESPACES
- ADM_TAB_COLUMNS
- ADM_TAB_COMMENTS
- ADM_TAB_PARTITIONS
- ADM_TRIGGERS
- ADM_TYPE_ATTRS
- ADM_TYPES
- ADM_USERS
- ADM_VIEWS
- DB_ALL_TABLES
- DB_ARGUMENTS
- DB_COL_COMMENTS
- DB_COL_PRIVS
- DB_COLL_TYPES
- DB_CONS_COLUMNS
- DB_CONSTRAINTS
- DB_DEPENDENCIES
- DB_ERRORS
- DB_IND_COLUMNS
- DB_IND_EXPRESSIONS
- DB_IND_PARTITIONS
- DB_IND_SUBPARTITIONS
- DB_INDEXES
- DB_OBJECTS
- DB_PART_COL_STATISTICS
- DB_PART_INDEXES
- DB_PART_KEY_COLUMNS
- DB_PART_TABLES
- DB_PROCEDURES
- DB_SCHEDULER_JOB_ARGS
- DB_SCHEDULER_PROGRAM_ARGS
- DB_SEQUENCES
- DB_SOURCE
- DB_SUBPART_COL_STATISTICS
- DB_SUBPART_KEY_COLUMNS
- DB_SYNONYMS
- DB_TAB_COL_STATISTICS
- DB_TAB_COLUMNS
- DB_TAB_COMMENTS
- DB_TAB_HISTOGRAMS
- DB_TAB_PARTITIONS
- DB_TAB_STATS_HISTORY
- DB_TAB_SUBPARTITIONS
- DB_TABLES
- DB_TRIGGERS
- DB_TYPES
- DB_USERS
- DB_VIEWS
- DICT
- DICTIONARY
- DV_SESSION_LONGOPS
- DV_SESSIONS
- GS_ALL_CONTROL_GROUP_INFO
- GS_ALL_PREPARED_STATEMENTS
- GS_AUDITING
- GS_AUDITING_ACCESS
- GS_AUDITING_PRIVILEGE
- GS_CLUSTER_RESOURCE_INFO
- GS_COMM_LISTEN_ADDRESS_EXT_INFO
- GS_COMM_PROXY_THREAD_STATUS
- GS_DB_LINKS
- GS_DB_PRIVILEGES
- GS_FILE_STAT
- GS_GET_CONTROL_GROUP_INFO
- GS_GET_LISTEN_ADDRESS_EXT_INFO
- GS_GLC_MEMORY_DETAIL
- GS_GLOBAL_ARCHIVE_STATUS
- GS_GSC_MEMORY_DETAIL
- GS_INSTANCE_TIME
- GS_LABELS
- GS_LSC_MEMORY_DETAIL
- GS_MASKING
- GS_MATVIEWS
- GS_MY_PLAN_TRACE
- GS_OS_RUN_INFO
- GS_REDO_STAT
- GS_SESSION_ALL_SETTINGS
- GS_SESSION_MEMORY
- GS_SESSION_MEMORY_CONTEXT
- GS_SESSION_MEMORY_DETAIL
- GS_SESSION_STAT
- GS_SESSION_TIME
- GS_SQL_COUNT
- GS_STAT_ALL_PARTITIONS
- GS_STAT_XACT_ALL_PARTITIONS
- GS_STATIO_ALL_PARTITIONS
- GS_THREAD_MEMORY_CONTEXT
- GS_TOTAL_MEMORY_DETAIL
- GS_TOTAL_NODEGROUP_MEMORY_DETAIL
- GS_WLM_WORKLOAD_RECORDS
- GS_WORKLOAD_RULE_STAT
- GV_INSTANCE
- GV_SESSION
- MPP_TABLES
- MY_COL_COMMENTS
- MY_COL_PRIVS
- MY_COLL_TYPES
- MY_CONS_COLUMNS
- MY_CONSTRAINTS
- MY_DEPENDENCIES
- MY_ERRORS
- MY_IND_COLUMNS
- MY_IND_EXPRESSIONS
- MY_IND_PARTITIONS
- MY_IND_SUBPARTITIONS
- MY_INDEXES
- MY_JOBS
- MY_OBJECTS
- MY_PART_COL_STATISTICS
- MY_PART_INDEXES
- MY_PART_KEY_COLUMNS
- MY_PART_TABLES
- MY_PROCEDURES
- MY_RECYCLEBIN
- MY_ROLE_PRIVS
- MY_SCHEDULER_JOB_ARGS
- MY_SCHEDULER_PROGRAM_ARGS
- MY_SEQUENCES
- MY_SOURCE
- MY_SUBPART_COL_STATISTICS
- MY_SUBPART_KEY_COLUMNS
- MY_SYNONYMS
- MY_SYS_PRIVS
- MY_TAB_COL_STATISTICS
- MY_TAB_COLUMNS
- MY_TAB_COMMENTS
- MY_TAB_HISTOGRAMS
- MY_TAB_PARTITIONS
- MY_TAB_STATISTICS
- MY_TAB_STATS_HISTORY
- MY_TAB_SUBPARTITIONS
- MY_TABLES
- MY_TABLESPACES
- MY_TRIGGERS
- MY_TYPE_ATTRS
- MY_TYPES
- MY_VIEWS
- NLS_DATABASE_PARAMETERS
- NLS_INSTANCE_PARAMETERS
- PG_AVAILABLE_EXTENSION_VERSIONS
- PG_AVAILABLE_EXTENSIONS
- PG_COMM_DELAY
- PG_COMM_RECV_STREAM
- PG_COMM_SEND_STREAM
- PG_COMM_STATUS
- PG_CONTROL_GROUP_CONFIG
- PG_CURSORS
- PG_EXT_STATS
- PG_GET_SENDERS_CATCHUP_TIME
- PG_GROUP
- PG_GTT_ATTACHED_PIDS
- PG_GTT_RELSTATS
- PG_GTT_STATS
- PG_INDEXES
- PG_LOCKS
- PG_NODE_ENV
- PG_OS_THREADS
- PG_PREPARED_STATEMENTS
- PG_PREPARED_XACTS
- PG_REPLICATION_ORIGIN_STATUS
- PG_REPLICATION_SLOTS
- PG_RLSPOLICIES
- PG_ROLES
- PG_RULES
- PG_RUNNING_XACTS
- PG_SECLABELS
- PG_SETTINGS
- PG_SHADOW
- PG_STAT_ACTIVITY
- PG_STAT_ACTIVITY_NG
- PG_STAT_ALL_INDEXES
- PG_STAT_ALL_TABLES
- PG_STAT_BAD_BLOCK
- PG_STAT_BGWRITER
- PG_STAT_DATABASE
- PG_STAT_DATABASE_CONFLICTS
- PG_STAT_REPLICATION
- PG_STAT_SYS_INDEXES
- PG_STAT_SYS_TABLES
- PG_STAT_USER_FUNCTIONS
- PG_STAT_USER_INDEXES
- PG_STAT_USER_TABLES
- PG_STAT_XACT_ALL_TABLES
- PG_STAT_XACT_SYS_TABLES
- PG_STAT_XACT_USER_FUNCTIONS
- PG_STAT_XACT_USER_TABLES
- PG_STATS
- PG_STATIO_ALL_INDEXES
- PG_STATIO_ALL_SEQUENCES
- PG_STATIO_ALL_TABLES
- PG_STATIO_SYS_INDEXES
- PG_STATIO_SYS_SEQUENCES
- PG_STATIO_SYS_TABLES
- PG_STATIO_USER_INDEXES
- PG_STATIO_USER_SEQUENCES
- PG_STATIO_USER_TABLES
- PG_TABLES
- PG_TDE_INFO
- PG_THREAD_WAIT_STATUS
- PG_TIMEZONE_ABBREVS
- PG_TIMEZONE_NAMES
- PG_TOTAL_MEMORY_DETAIL
- PG_TOTAL_USER_RESOURCE_INFO
- PG_TOTAL_USER_RESOURCE_INFO_OID
- PG_USER
- PG_USER_MAPPINGS
- PG_VARIABLE_INFO
- PG_VIEWS
- PGXC_PREPARED_XACTS
- PGXC_THREAD_WAIT_STATUS
- PLAN_TABLE
- ROLE_ROLE_PRIVS
- ROLE_SYS_PRIVS
- ROLE_TAB_PRIVS
- SYS_DUMMY
- V_INSTANCE
- V_MYSTAT
- V_SESSION
- V$GLOBAL_TRANSACTION
- V$NLS_PARAMETERS
- V$SESSION_WAIT
- V$SYSSTAT
- V$SYSTEM_EVENT
- V$VERSION
- Discarded
-
Schemas
- Information Schema
-
DBE_PERF Schema
- OS
- Instance
- Memory
- File
-
Object
- STAT_USER_TABLES
- SUMMARY_STAT_USER_TABLES
- GLOBAL_STAT_USER_TABLES
- STAT_USER_INDEXES
- SUMMARY_STAT_USER_INDEXES
- GLOBAL_STAT_USER_INDEXES
- STAT_SYS_TABLES
- SUMMARY_STAT_SYS_TABLES
- GLOBAL_STAT_SYS_TABLES
- STAT_SYS_INDEXES
- SUMMARY_STAT_SYS_INDEXES
- GLOBAL_STAT_SYS_INDEXES
- STAT_ALL_TABLES
- SUMMARY_STAT_ALL_TABLES
- GLOBAL_STAT_ALL_TABLES
- STAT_ALL_INDEXES
- SUMMARY_STAT_ALL_INDEXES
- GLOBAL_STAT_ALL_INDEXES
- STAT_DATABASE
- SUMMARY_STAT_DATABASE
- GLOBAL_STAT_DATABASE
- STAT_DATABASE_CONFLICTS
- SUMMARY_STAT_DATABASE_CONFLICTS
- GLOBAL_STAT_DATABASE_CONFLICTS
- STAT_XACT_ALL_TABLES
- SUMMARY_STAT_XACT_ALL_TABLES
- GLOBAL_STAT_XACT_ALL_TABLES
- STAT_XACT_SYS_TABLES
- SUMMARY_STAT_XACT_SYS_TABLES
- GLOBAL_STAT_XACT_SYS_TABLES
- STAT_XACT_USER_TABLES
- SUMMARY_STAT_XACT_USER_TABLES
- GLOBAL_STAT_XACT_USER_TABLES
- STAT_XACT_USER_FUNCTIONS
- SUMMARY_STAT_XACT_USER_FUNCTIONS
- GLOBAL_STAT_XACT_USER_FUNCTIONS
- STAT_BAD_BLOCK
- SUMMARY_STAT_BAD_BLOCK
- GLOBAL_STAT_BAD_BLOCK
- STAT_USER_FUNCTIONS
- SUMMARY_STAT_USER_FUNCTIONS
- GLOBAL_STAT_USER_FUNCTIONS
- Workload
-
Session/Thread
- SESSION_STAT
- GLOBAL_SESSION_STAT
- SESSION_TIME
- GLOBAL_SESSION_TIME
- SESSION_MEMORY
- GLOBAL_SESSION_MEMORY
- SESSION_MEMORY_DETAIL
- GLOBAL_SESSION_MEMORY_DETAIL
- SESSION_STAT_ACTIVITY
- GLOBAL_SESSION_STAT_ACTIVITY
- THREAD_WAIT_STATUS
- GLOBAL_THREAD_WAIT_STATUS
- LOCAL_THREADPOOL_STATUS
- GLOBAL_THREADPOOL_STATUS
- LOCAL_ACTIVE_SESSION
- Transaction
- Query
-
Cache/IO
- STATIO_USER_TABLES
- SUMMARY_STATIO_USER_TABLES
- GLOBAL_STATIO_USER_TABLES
- STATIO_USER_INDEXES
- SUMMARY_STATIO_USER_INDEXES
- GLOBAL_STATIO_USER_INDEXES
- STATIO_USER_SEQUENCES
- SUMMARY_STATIO_USER_SEQUENCES
- GLOBAL_STATIO_USER_SEQUENCES
- STATIO_SYS_TABLES
- SUMMARY_STATIO_SYS_TABLES
- GLOBAL_STATIO_SYS_TABLES
- STATIO_SYS_INDEXES
- SUMMARY_STATIO_SYS_INDEXES
- GLOBAL_STATIO_SYS_INDEXES
- STATIO_SYS_SEQUENCES
- SUMMARY_STATIO_SYS_SEQUENCES
- GLOBAL_STATIO_SYS_SEQUENCES
- STATIO_ALL_TABLES
- SUMMARY_STATIO_ALL_TABLES
- GLOBAL_STATIO_ALL_TABLES
- STATIO_ALL_INDEXES
- SUMMARY_STATIO_ALL_INDEXES
- GLOBAL_STATIO_ALL_INDEXES
- STATIO_ALL_SEQUENCES
- SUMMARY_STATIO_ALL_SEQUENCES
- GLOBAL_STATIO_ALL_SEQUENCES
-
Utility
- REPLICATION_STAT
- GLOBAL_REPLICATION_STAT
- REPLICATION_SLOTS
- GLOBAL_REPLICATION_SLOTS
- BGWRITER_STAT
- GLOBAL_BGWRITER_STAT
- GLOBAL_CKPT_STATUS
- GLOBAL_DOUBLE_WRITE_STATUS
- GLOBAL_PAGEWRITER_STATUS
- GLOBAL_RECORD_RESET_TIME
- GLOBAL_REDO_STATUS
- GLOBAL_RECOVERY_STATUS
- CLASS_VITAL_INFO
- USER_LOGIN
- SUMMARY_USER_LOGIN
- GLOBAL_SINGLE_FLUSH_DW_STATUS
- GLOBAL_CANDIDATE_STATUS
- PARALLEL_DECODE_STATUS
- GLOBAL_PARALLEL_DECODE_STATUS
- PARALLEL_DECODE_THREAD_INFO
- GLOBAL_PARALLEL_DECODE_THREAD_INFO
- Lock
- Wait Events
- Configuration
- Operator
- Workload Manager
- Global Plancache
- RTO & RPO
- AI Watchdog
- Discarded
- WDR Snapshot Schema
-
DBE_PLDEBUGGER Schema
- DBE_PLDEBUGGER.turn_on
- DBE_PLDEBUGGER.turn_off
- DBE_PLDEBUGGER.local_debug_server_info
- DBE_PLDEBUGGER.attach
- DBE_PLDEBUGGER.info_locals
- DBE_PLDEBUGGER.next
- DBE_PLDEBUGGER.continue
- DBE_PLDEBUGGER.abort
- DBE_PLDEBUGGER.print_var
- DBE_PLDEBUGGER.info_code
- DBE_PLDEBUGGER.step
- DBE_PLDEBUGGER.add_breakpoint
- DBE_PLDEBUGGER.delete_breakpoint
- DBE_PLDEBUGGER.info_breakpoints
- DBE_PLDEBUGGER.backtrace
- DBE_PLDEBUGGER.enable_breakpoint
- DBE_PLDEBUGGER.disable_breakpoint
- DBE_PLDEBUGGER.finish
- DBE_PLDEBUGGER.set_var
- DB4AI Schema
- DBE_PLDEVELOPER
- DBE_SQL_UTIL Schema
-
Configuring Running Parameters
- Viewing Parameters
- Setting Parameters
-
GUC Parameters
- GUC Parameter Usage
- File Location
- Connection and Authentication
- Resource Consumption
- Data Import and Export
- Write Ahead Log
- HA Replication
- Query Planning
- Error Reporting and Logging
- Alarm Detection
- Statistics During the Database Running
- Automatic Vacuuming
- Default Settings of Client Connection
- Lock Management
- Version and Platform Compatibility
- Fault Tolerance
- Connection Pool Parameters
- Transaction
- Replication Parameters of Two Database Instances
- Developer Options
- Auditing
- CM Parameters
- Upgrade Parameters
- Miscellaneous Parameters
- Wait Events
- Query
- System Performance Snapshot
- Security Configuration
- Global Temporary Table
- HyperLogLog
- User-defined Functions
- Scheduled Task
- Thread Pool
- Backup and Restoration
- Undo
- DCF Parameters Settings
- Flashback
- Rollback Parameters
- Reserved Parameters
- AI Features
- Global SysCache Parameters
- Parameters Related to the Efficient Data Compression Algorithm
- Restoring Data on the Standby Node
- Delimiter
- Global PL/SQL Cache Parameters
-
Developer Guide(Distributed_V2.0-2.x)
- Database System Overview
- Database Security Management
- Database Quick Start
-
Development and Design Proposal
- Overview
-
Database Design Specifications
- General Specifications
- Deployment Specifications
- Database Object Naming Specifications
- Database and Schema Design Specifications
- Permission Design Specifications
- Character Set Design Specifications
- Table Design Specifications
- Column Design Specifications
- Index Design Specifications
- Function/Stored Procedure Design Specifications
- Constraint Design
- View and Joined Table Design
- Database Design Specifications
- Client Programming Specifications
-
Application Development Guide
- Development Specifications
- Obtaining the Driver Package
-
Development Based on JDBC
- JDBC Package, Driver Class, and Environment Class
- Development Process
- Loading a Driver
- Connecting to a Database
- Connecting to the Database (Using SSL)
- Connecting to a Database (Using UDS)
- Running SQL Statements
- Processing Data in a Result Set
- Closing a Database Connection
- Log Management
- Example: Common Operations
- Example: Retrying SQL Queries for Applications
- Example: Importing and Exporting Data Through Local Files
- Example: Migrating Data from MySQL
- Example: Logic Replication Code
- Example: Parameters for Connecting to the Database in Different Scenarios
-
JDBC Interface Reference
- java.sql.Connection
- java.sql.CallableStatement
- java.sql.DatabaseMetaData
- java.sql.Driver
- java.sql.PreparedStatement
- java.sql.ResultSet
- java.sql.ResultSetMetaData
- java.sql.Statement
- javax.sql.ConnectionPoolDataSource
- javax.sql.DataSource
- javax.sql.PooledConnection
- javax.naming.Context
- javax.naming.spi.InitialContextFactory
- CopyManager
- PGReplicationConnection
- PGReplicationStream
- ChainedStreamBuilder
- ChainedCommonStreamBuilder
- Mapping for JDBC Data Types
- Troubleshooting
- Development Based on ODBC
- Development Based on libpq
- Psycopg-Based Development
- Commissioning
-
SQL Optimization
- Query Execution Process
- Introduction to the SQL Execution Plan
- Optimization Process
- Updating Statistics
- Reviewing and Modifying a Table Definition
- Typical SQL Optimization Methods
- Experience in Rewriting SQL Statements
- Configuring Key Parameters for SQL Tuning
-
Hint-based Tuning
- Plan Hint Optimization
- Join Order Hints
- Join Operation Hints
- Rows Hints
- Stream Operation Hints
- Scan Operation Hints
- Sublink Name Hints
- Skew Hints
- Parameterized Path Hint
- Hint Errors, Conflicts, and Other Warnings
- Plan Hint Cases
- Optimizer GUC Parameter Hints
- Hints for Selecting the Custom Plan or Generic Plan
- Hints Specifying Not to Expand Subqueries
- Hints Specifying Not to Use Global Plan Cache
- Hint of Parameterized Paths at the Same Level
- Checking the Implicit Conversion Performance
-
Optimization Cases
- Case: Selecting an Appropriate Distribution Key
- Case: Creating an Appropriate Index
- Case: Adding NOT NULL for JOIN Columns
- Case: Pushing Down Sort Operations to DNs
- Case: Setting cost_param and Optimizing Query Performance
- Case: Adjusting Distribution Keys
- Case: Adjusting Partial Clustering Keys
- Case: Modifying a Partitioned Table
- Case: Adjusting the GUC Parameter best_agg_plan
- Case: Rewriting SQL Statements to Eliminate Subqueries
- Case: Rewriting SQL Statements to Eliminate Pruning Interference
- Case: Rewriting SQL Statements and Deleting in-clause
- Case: Modifying the GUC Parameter rewrite_rule
-
SQL Reference
- GaussDB SQL
- Keywords
- Data Type
- Constant and Macro
-
Functions and Operators
- Logical Operators
- Comparison Operators
- Character Processing Functions and Operators
- Binary String Functions and Operators
- Bit String Functions and Operators
- Pattern Matching Operators
- Arithmetic Functions and Operators
- Date and Time Processing Functions and Operators
- Type Conversion Functions
- Geometric Functions and Operators
- Network Address Functions and Operators
- JSON/JSONB Functions and Operators
- HLL Functions and Operators
- SEQUENCE Functions
- Array Functions and Operators
- Range Functions and Operators
- Aggregate Functions
- Window Functions
- Security Functions
- Set Returning Functions
- Conditional Expression Functions
- System Information Functions
-
System Administration Functions
- Configuration Settings Functions
- Universal File Access Functions
- Server Signal Functions
- Backup and Restoration Control Functions
- Dual-Cluster DR Control Functions
- Dual-Cluster DR Query Functions
- Snapshot Synchronization Functions
- Database Object Functions
- Advisory Lock Functions
- Logical Replication Functions
- Segment-Page Storage Functions
- Other Functions
- Statistics Information Functions
- Trigger Functions
- Hash Function
- Prompt Message Function
- Fault Injection System Function
- Redistribution Parameters
- Distribution Key Recommendation Functions
- Internal Functions
- Dynamic Data Masking Functions
- Hotkey Feature Functions
- Global SysCache Functions
- Data Damage Detection and Repair Functions
- Other System Functions
- Obsolete Functions
- Expressions
- Type Conversion
- System Operation
- Controlling Transactions
- DDL Syntax Overview
- DML Syntax Overview
- DCL Syntax Overview
-
SQL Syntax
- ABORT
- ALTER AUDIT POLICY
- ALTER COORDINATOR
- ALTER DATABASE
- ALTER DEFAULT PRIVILEGES
- ALTER DIRECTORY
- ALTER FUNCTION
- ALTER GLOBAL CONFIGURATION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER MASKING POLICY
- ALTER MATERIALIZED VIEW
- ALTER NODE
- ALTER NODE GROUP
- ALTER RESOURCE LABEL
- ALTER ROLE
- ALTER ROW LEVEL SECURITY POLICY
- ALTER SCHEMA
- ALTER SEQUENCE
- ALTER SERVER
- ALTER SESSION
- ALTER SYNONYM
- ALTER SYSTEM KILL SESSION
- ALTER TABLE
- ALTER TABLE PARTITION
- ALTER TABLESPACE
- ALTER TRIGGER
- ALTER TYPE
- ALTER USER
- ALTER VIEW
- ANALYZE | ANALYSE
- BEGIN
- CALL
- CHECKPOINT
- CLEAN CONNECTION
- CLOSE
- CLUSTER
- COMMENT
- COMMIT | END
- COMMIT PREPARED
- COPY
- CREATE AUDIT POLICY
- CREATE BARRIER
- CREATE CONVERSION
- CREATE DATABASE
- CREATE DIRECTORY
- CREATE FUNCTION
- CREATE GROUP
- CREATE INCREMENTAL MATERIALIZED VIEW
- CREATE INDEX
- CREATE LANGUAGE
- CREATE MASKING POLICY
- CREATE MATERIALIZED VIEW
- CREATE NODE
- CREATE NODE GROUP
- CREATE PROCEDURE
- CREATE RESOURCE LABEL
- CREATE ROLE
- CREATE ROW LEVEL SECURITY POLICY
- CREATE SCHEMA
- CREATE SEQUENCE
- CREATE SERVER
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLESPACE
- CREATE TABLE AS
- CREATE TABLE PARTITION
- CREATE TRIGGER
- CREATE TYPE
- CREATE USER
- CREATE VIEW
- CREATE WEAK PASSWORD DICTIONARY
- CURSOR
- DEALLOCATE
- DECLARE
- DELETE
- DO
- DROP AUDIT POLICY
- DROP DATABASE
- DROP DIRECTORY
- DROP FUNCTION
- DROP GLOBAL CONFIGURATION
- DROP GROUP
- DROP INDEX
- DROP LANGUAGE
- DROP MASKING POLICY
- DROP MATERIALIZED VIEW
- DROP NODE
- DROP NODE GROUP
- DROP OWNED
- DROP PROCEDURE
- DROP RESOURCE LABEL
- DROP ROLE
- DROP ROW LEVEL SECURITY POLICY
- DROP SCHEMA
- DROP SEQUENCE
- DROP SERVER
- DROP SYNONYM
- DROP TABLE
- DROP TABLESPACE
- DROP TRIGGER
- DROP TYPE
- DROP USER
- DROP VIEW
- DROP WEAK PASSWORD DICTIONARY
- EXECUTE
- EXECUTE DIRECT
- EXPLAIN
- EXPLAIN PLAN
- FETCH
- GRANT
- INSERT
- LOCK
- MOVE
- MERGE INTO
- PREPARE
- PREPARE TRANSACTION
- REASSIGN OWNED
- REINDEX
- REFRESH INCREMENTAL MATERIALIZED VIEW
- REFRESH MATERIALIZED VIEW
- RELEASE SAVEPOINT
- RESET
- REVOKE
- ROLLBACK
- ROLLBACK PREPARED
- ROLLBACK TO SAVEPOINT
- SAVEPOINT
- SELECT
- SELECT INTO
- SET
- SET CONSTRAINTS
- SET ROLE
- SET SESSION AUTHORIZATION
- SET TRANSACTION
- SHOW
- SHUTDOWN
- START TRANSACTION
- TRUNCATE
- UPDATE
- VACUUM
- VALUES
- Appendix
- Best Practices
- User-defined Functions
- Stored Procedures
- Autonomous Transaction
-
System Catalogs and System Views
- Overview of System Catalogs and System Views
-
System Catalogs
- GS_AUDITING_POLICY
- GS_AUDITING_POLICY_ACCESS
- GS_AUDITING_POLICY_FILTERS
- GS_AUDITING_POLICY_PRIVILEGES
- GS_ASP
- GS_DB_PRIVILEGE
- GS_GLOBAL_CONFIG
- GS_JOB_ATTRIBUTE
- GS_JOB_ARGUMENT
- GS_MASKING_POLICY
- GS_MASKING_POLICY_ACTIONS
- GS_MASKING_POLICY_FILTERS
- GS_MATVIEW
- GS_MATVIEW_DEPENDENCY
- GS_OPT_MODEL
- GS_POLICY_LABEL
- GS_RECYCLEBIN
- GS_SQL_PATCH
- GS_TXN_SNAPSHOT
- GS_UID
- PG_AGGREGATE
- PG_AM
- PG_AMOP
- PG_AMPROC
- PG_APP_WORKLOADGROUP_MAPPING
- PG_ATTRDEF
- PG_ATTRIBUTE
- PG_AUTHID
- PG_AUTH_HISTORY
- PG_AUTH_MEMBERS
- PG_CAST
- PG_CLASS
- PG_COLLATION
- PG_CONSTRAINT
- PG_CONVERSION
- PG_DATABASE
- PG_DB_ROLE_SETTING
- PG_DEFAULT_ACL
- PG_DEPEND
- PG_DESCRIPTION
- PG_DIRECTORY
- PG_ENUM
- PG_FOREIGN_SERVER
- PG_HASHBUCKET
- PG_INDEX
- PG_INHERITS
- PG_JOB
- PG_JOB_PROC
- PG_LANGUAGE
- PG_LARGEOBJECT
- PG_LARGEOBJECT_METADATA
- PG_NAMESPACE
- PG_OBJECT
- PG_OPCLASS
- PG_OPERATOR
- PG_OPFAMILY
- PG_PARTITION
- PG_PLTEMPLATE
- PG_PROC
- PG_RANGE
- PG_REPLICATION_ORIGIN
- PG_RESOURCE_POOL
- PG_REWRITE
- PG_RLSPOLICY
- PG_SECLABEL
- PG_SHDEPEND
- PG_SHDESCRIPTION
- PG_SHSECLABEL
- PG_STATISTIC
- PG_STATISTIC_EXT
- PG_SYNONYM
- PG_TABLESPACE
- PG_TRIGGER
- PG_TS_CONFIG
- PG_TS_CONFIG_MAP
- PG_TS_DICT
- PG_TS_PARSER
- PG_TS_TEMPLATE
- PG_TYPE
- PG_USER_MAPPING
- PG_USER_STATUS
- PG_WORKLOAD_GROUP
- PGXC_CLASS
- PGXC_GROUP
- PGXC_NODE
- PGXC_REDISTB
- PGXC_SLICE
- PLAN_TABLE_DATA
- STATEMENT_HISTORY
- STREAMING_STREAM
- STREAMING_CONT_QUERY
- STREAMING_REAPER_STATUS
-
System Views
- ADM_COL_COMMENTS
- ADM_CONS_COLUMNS
- ADM_CONSTRAINTS
- ADM_DATA_FILES
- ADM_HIST_SNAPSHOT
- ADM_HIST_SQL_PLAN
- ADM_HIST_SQLSTAT
- ADM_IND_COLUMNS
- ADM_IND_EXPRESSIONS
- ADM_IND_PARTITIONS
- ADM_INDEXES
- ADM_OBJECTS
- ADM_PART_INDEXES
- ADM_PART_TABLES
- ADM_PROCEDURES
- ADM_SCHEDULER_JOBS
- ADM_SEQUENCES
- ADM_SOURCE
- ADM_SYNONYMS
- ADM_TAB_COLUMNS
- ADM_TAB_COMMENTS
- ADM_TAB_PARTITIONS
- ADM_TABLES
- ADM_TABLESPACES
- ADM_TRIGGERS
- ADM_TYPE_ATTRS
- ADM_USERS
- ADM_VIEWS
- COMM_CLIENT_INFO
- DB_ALL_TABLES
- DB_COL_COMMENTS
- DB_CONS_COLUMNS
- DB_CONSTRAINTS
- DB_DEPENDENCIES
- DB_IND_COLUMNS
- DB_IND_EXPRESSIONS
- DB_INDEXES
- DB_OBJECTS
- DB_PROCEDURES
- DB_SEQUENCES
- DB_SOURCE
- DB_SYNONYMS
- DB_TAB_COLUMNS
- DB_TAB_COMMENTS
- DB_TABLES
- DB_TRIGGERS
- DB_USERS
- DB_VIEWS
- DV_SESSION_LONGOPS
- DV_SESSIONS
- GET_GLOBAL_PREPARED_XACTS
- GLOBAL_BAD_BLOCK_INFO
- GLOBAL_CLEAR_BAD_BLOCK_INFO
- GLOBAL_COMM_CLIENT_INFO
- GLOBAL_STAT_HOTKEYS_INFO
- GLOBAL_WAL_SENDER_STATUS
- GS_ALL_CONTROL_GROUP_INFO
- GS_AUDITING
- GS_AUDITING_ACCESS
- GS_AUDITING_PRIVILEGE
- GS_CLUSTER_RESOURCE_INFO
- GS_DB_PRIVILEGES
- GS_GET_CONTROL_GROUP_INFO
- GS_GSC_MEMORY_DETAIL
- GS_LABELS
- GS_LSC_MEMORY_DETAIL
- GS_MASKING
- GS_MATVIEWS
- GS_SQL_COUNT
- GS_STAT_DB_CU
- GS_STAT_SESSION_CU
- GS_TOTAL_NODEGROUP_MEMORY_DETAIL
- GV_SESSION
- MPP_TABLES
- MY_COL_COMMENTS
- MY_CONS_COLUMNS
- MY_CONSTRAINTS
- MY_IND_COLUMNS
- MY_IND_EXPRESSIONS
- MY_IND_PARTITIONS
- MY_INDEXES
- MY_JOBS
- MY_OBJECTS
- MY_PART_INDEXES
- MY_PART_TABLES
- MY_PROCEDURES
- MY_SEQUENCES
- MY_SOURCE
- MY_SYNONYMS
- MY_TAB_COLUMNS
- MY_TAB_COMMENTS
- MY_TAB_PARTITIONS
- MY_TABLES
- MY_TRIGGERS
- MY_VIEWS
- PG_COMM_DELAY
- PG_COMM_RECV_STREAM
- PG_COMM_SEND_STREAM
- PG_COMM_STATUS
- PG_CONTROL_GROUP_CONFIG
- PG_CURSORS
- PG_EXT_STATS
- PG_GET_INVALID_BACKENDS
- PG_GET_SENDERS_CATCHUP_TIME
- PG_GROUP
- PG_INDEXES
- PG_LOCKS
- PG_NODE_ENV
- PG_OS_THREADS
- PG_POOLER_STATUS
- PG_PREPARED_STATEMENTS
- PG_PREPARED_XACTS
- PG_REPLICATION_ORIGIN_STATUS
- PG_REPLICATION_SLOTS
- PG_RLSPOLICIES
- PG_ROLES
- PG_RULES
- PG_RUNNING_XACTS
- PG_SECLABELS
- PG_SETTINGS
- PG_SHADOW
- PG_SHARED_MEMORY_DETAIL
- PG_STATS
- PG_STAT_ACTIVITY
- PG_STAT_ACTIVITY_NG
- PG_STAT_ALL_INDEXES
- PG_STAT_ALL_TABLES
- PG_STAT_BAD_BLOCK
- PG_STAT_BGWRITER
- PG_STAT_DATABASE
- PG_STAT_DATABASE_CONFLICTS
- PG_STAT_REPLICATION
- PG_STAT_SYS_INDEXES
- PG_STAT_SYS_TABLES
- PG_STAT_USER_FUNCTIONS
- PG_STAT_USER_INDEXES
- PG_STAT_USER_TABLES
- PG_STAT_XACT_ALL_TABLES
- PG_STAT_XACT_SYS_TABLES
- PG_STAT_XACT_USER_FUNCTIONS
- PG_STAT_XACT_USER_TABLES
- PG_STATIO_ALL_INDEXES
- PG_STATIO_ALL_SEQUENCES
- PG_STATIO_ALL_TABLES
- PG_STATIO_SYS_INDEXES
- PG_STATIO_SYS_SEQUENCES
- PG_STATIO_SYS_TABLES
- PG_STATIO_USER_INDEXES
- PG_STATIO_USER_SEQUENCES
- PG_STATIO_USER_TABLES
- PG_TABLES
- PG_TDE_INFO
- PG_TIMEZONE_ABBREVS
- PG_TIMEZONE_NAMES
- PG_TOTAL_MEMORY_DETAIL
- PG_TOTAL_USER_RESOURCE_INFO
- PG_TOTAL_USER_RESOURCE_INFO_OID
- PG_USER
- PG_USER_MAPPINGS
- PG_VARIABLE_INFO
- PG_VIEWS
- PGXC_COMM_DELAY
- PGXC_COMM_RECV_STREAM
- PGXC_COMM_SEND_STREAM
- PGXC_COMM_STATUS
- PGXC_GET_STAT_ALL_TABLES
- PGXC_GET_TABLE_SKEWNESS
- PGXC_NODE_ENV
- PGXC_OS_THREADS
- PGXC_PREPARED_XACTS
- PGXC_RUNNING_XACTS
- PGXC_SQL_COUNT
- PGXC_STAT_ACTIVITY
- PGXC_STAT_BAD_BLOCK
- PGXC_THREAD_WAIT_STATUS
- PGXC_TOTAL_MEMORY_DETAIL
- PGXC_VARIABLE_INFO
- PLAN_TABLE
- PV_FILE_STAT
- PV_INSTANCE_TIME
- PV_OS_RUN_INFO
- PV_REDO_STAT
- PV_SESSION_MEMORY
- PV_SESSION_MEMORY_CONTEXT
- PV_SESSION_MEMORY_DETAIL
- PV_SESSION_STAT
- PV_SESSION_TIME
- PV_THREAD_MEMORY_CONTEXT
- PV_TOTAL_MEMORY_DETAIL
- SYS_DUMMY
-
Schema
- Information Schema
-
DBE_PERF Schema
- OS
- Instance
- Memory
- File
-
Object
- STAT_USER_TABLES
- SUMMARY_STAT_USER_TABLES
- GLOBAL_STAT_USER_TABLES
- STAT_USER_INDEXES
- SUMMARY_STAT_USER_INDEXES
- GLOBAL_STAT_USER_INDEXES
- STAT_SYS_TABLES
- SUMMARY_STAT_SYS_TABLES
- GLOBAL_STAT_SYS_TABLES
- STAT_SYS_INDEXES
- SUMMARY_STAT_SYS_INDEXES
- GLOBAL_STAT_SYS_INDEXES
- STAT_ALL_TABLES
- SUMMARY_STAT_ALL_TABLES
- GLOBAL_STAT_ALL_TABLES
- STAT_ALL_INDEXES
- SUMMARY_STAT_ALL_INDEXES
- GLOBAL_STAT_ALL_INDEXES
- STAT_DATABASE
- SUMMARY_STAT_DATABASE
- GLOBAL_STAT_DATABASE
- STAT_DATABASE_CONFLICTS
- SUMMARY_STAT_DATABASE_CONFLICTS
- GLOBAL_STAT_DATABASE_CONFLICTS
- STAT_XACT_ALL_TABLES
- SUMMARY_STAT_XACT_ALL_TABLES
- GLOBAL_STAT_XACT_ALL_TABLES
- STAT_XACT_SYS_TABLES
- SUMMARY_STAT_XACT_SYS_TABLES
- GLOBAL_STAT_XACT_SYS_TABLES
- STAT_XACT_USER_TABLES
- SUMMARY_STAT_XACT_USER_TABLES
- GLOBAL_STAT_XACT_USER_TABLES
- STAT_XACT_USER_FUNCTIONS
- SUMMARY_STAT_XACT_USER_FUNCTIONS
- GLOBAL_STAT_XACT_USER_FUNCTIONS
- STAT_BAD_BLOCK
- SUMMARY_STAT_BAD_BLOCK
- GLOBAL_STAT_BAD_BLOCK
- STAT_USER_FUNCTIONS
- SUMMARY_STAT_USER_FUNCTIONS
- GLOBAL_STAT_USER_FUNCTIONS
- Workload
-
Session and Thread
- SESSION_STAT
- GLOBAL_SESSION_STAT
- SESSION_TIME
- GLOBAL_SESSION_TIME
- SESSION_MEMORY
- GLOBAL_SESSION_MEMORY
- SESSION_MEMORY_DETAIL
- GLOBAL_SESSION_MEMORY_DETAIL
- THREAD_WAIT_STATUS
- GLOBAL_THREAD_WAIT_STATUS
- LOCAL_THREADPOOL_STATUS
- GLOBAL_THREADPOOL_STATUS
- SESSION_CPU_RUNTIME
- SESSION_MEMORY_RUNTIME
- LOCAL_ACTIVE_SESSION
- GLOBAL_ACTIVE_SESSION
- Transaction
- Query
-
Cache and I/O
- STATIO_USER_TABLES
- SUMMARY_STATIO_USER_TABLES
- GLOBAL_STATIO_USER_TABLES
- STATIO_USER_INDEXES
- SUMMARY_STATIO_USER_INDEXES
- GLOBAL_STATIO_USER_INDEXES
- STATIO_USER_SEQUENCES
- SUMMARY_STATIO_USER_SEQUENCES
- GLOBAL_STATIO_USER_SEQUENCES
- STATIO_SYS_TABLES
- SUMMARY_STATIO_SYS_TABLES
- GLOBAL_STATIO_SYS_TABLES
- STATIO_SYS_INDEXES
- SUMMARY_STATIO_SYS_INDEXES
- GLOBAL_STATIO_SYS_INDEXES
- STATIO_SYS_SEQUENCES
- SUMMARY_STATIO_SYS_SEQUENCES
- GLOBAL_STATIO_SYS_SEQUENCES
- STATIO_ALL_TABLES
- SUMMARY_STATIO_ALL_TABLES
- GLOBAL_STATIO_ALL_TABLES
- STATIO_ALL_INDEXES
- SUMMARY_STATIO_ALL_INDEXES
- GLOBAL_STATIO_ALL_INDEXES
- STATIO_ALL_SEQUENCES
- SUMMARY_STATIO_ALL_SEQUENCES
- GLOBAL_STATIO_ALL_SEQUENCES
- GLOBAL_STAT_DB_CU
- GLOBAL_STAT_SESSION_CU
- Communication Library
-
Utility
- REPLICATION_STAT
- GLOBAL_REPLICATION_STAT
- REPLICATION_SLOTS
- GLOBAL_REPLICATION_SLOTS
- BGWRITER_STAT
- GLOBAL_BGWRITER_STAT
- POOLER_STATUS
- GLOBAL_COMM_CHECK_CONNECTION_STATUS
- GLOBAL_CKPT_STATUS
- GLOBAL_DOUBLE_WRITE_STATUS
- GLOBAL_PAGEWRITER_STATUS
- GLOBAL_POOLER_STATUS
- GLOBAL_RECORD_RESET_TIME
- GLOBAL_REDO_STATUS
- GLOBAL_RECOVERY_STATUS
- CLASS_VITAL_INFO
- USER_LOGIN
- SUMMARY_USER_LOGIN
- GLOBAL_GET_BGWRITER_STATUS
- GLOBAL_SINGLE_FLUSH_DW_STATUS
- GLOBAL_CANDIDATE_STATUS
- Lock
- Wait Event
- Configuration
- Operator
- Global Plan Cache
- RTO & RPO
- Logical Replication
- GTM Mode
- Materialized View
- Error Log Reference
-
Configuring GUC Parameters
- Viewing Parameter Values
- Resetting Parameters
-
GUC Parameters
- GUC Parameter Usage
- File Location
- Connection and Authentication
- Resource Consumption
- Parallel Data Import
- Write Ahead Log
- HA Replication
- Query Planning
- Error Reporting and Logging
- Alarm Detection
- Statistics During the Database Running
- Automatic Vacuuming
- Default Settings of Client Connection
- Lock Management
- Version and Platform Compatibility
- Fault Tolerance
- Connection Pool Parameters
- Cluster Transaction Parameters
- Dual-Cluster Replication Parameters
- Developer Options
- Auditing
- Transaction Monitoring
- CM Parameters
- GTM Parameters
- Upgrade Parameters
- Miscellaneous Parameters
- Wait Event
- Query
- System Performance Snapshot
- Security Configuration
- HyperLogLog
- User-defined Functions
- Scheduled Task
- Thread Pool
- Backup and Restoration
- AI Features
- Global SysCache Parameters
- Reserved Parameters
-
Developer Guide(Centralized_V2.0-2.x)
- Database System Overview
- Database Security Management
- Database Quick Start
-
Development and Design Proposal
- Overview
-
Database Design Specifications
- General Specifications
- Deployment Specifications
- Database Object Naming Specifications
- Database and Schema Design Specifications
- Permission Design Specifications
- Character Set Design Specifications
- Table Design Specifications
- Column Design Specifications
- Index Design Specifications
- Function/Stored Procedure Design Specifications
- Constraint Design
- View and Joined Table Design
- Database Design Specifications
- Client Programming Specifications
-
Application Development Guide
- GaussDB Application Development Guide
- Development Specifications
- Obtaining the Driver Package
-
Development Based on JDBC
- Development Process
- Development Process
- Typical Application Development Examples
-
JDBC Interface Reference
- java.sql.Connection
- java.sql.CallableStatement
- java.sql.DatabaseMetaData
- java.sql.Driver
- java.sql.PreparedStatement
- java.sql.ResultSet
- java.sql.ResultSetMetaData
- java.sql.Statement
- javax.sql.ConnectionPoolDataSource
- javax.sql.DataSource
- javax.sql.PooledConnection
- javax.naming.Context
- javax.naming.spi.InitialContextFactory
- CopyManager
- PGReplicationConnection
- PGReplicationStream
- ChainedStreamBuilder
- ChainedCommonStreamBuilder
- Development Based on ODBC
-
Development Based on libpq
- Development Process
- Development Procedure
- Typical Application Development Examples
- libpq API Reference
- Psycopg-based Development
- Development Based on the Go Driver
- Appendix
-
SQL Optimization
- Query Execution Process
- Introduction to the SQL Execution Plan
- Tuning Process
- Updating Statistics
- Reviewing and Modifying a Table Definition
- Typical SQL Optimization Methods
- Experience in Rewriting SQL Statements
- Resetting Key Parameters During SQL Tuning
-
Hint-based Tuning
- Plan Hint Optimization
- Join Order Hints
- Join Operation Hints
- Rows Hints
- Scan Operation Hints
- Sublink Name Hints
- Hint Errors, Conflicts, and Other Warnings
- Optimizer GUC Parameter Hints
- Hint for Selecting the Custom Plan or Generic Plan
- Hint Specifying Not to Expand Subqueries
- Hint Specifying Not to Use Global Plan Cache
- Hint of Parameterized Paths at the Same Level
- Hint for Materializing a Sub-plan Result
- Tuning with SQL PATCH
- Optimization Cases
-
SQL Reference
- GaussDB SQL
- Keywords
- Data Type
- Constant and Macro
-
Functions and Operators
- Logical Operators
- Comparison Operators
- Character Processing Functions and Operators
- Binary String Functions and Operators
- Bit String Functions and Operators
- Pattern Matching Operators
- Mathematical Functions and Operators
- Date and Time Processing Functions and Operators
- Type Conversion Functions
- Geometric Functions and Operators
- Network Address Functions and Operators
- JSON/JSONB Functions and Operators
- HLL Functions and Operators
- SEQUENCE Functions
- Array Functions and Operators
- Range Functions and Operators
- Aggregate Functions
- Window Functions
- Security Functions
- Set Returning Functions
- Conditional Expression Functions
- System Information Functions
-
System Administration Functions
- Configuration Settings Functions
- Universal File Access Functions
- Server Signal Functions
- Backup and Restoration Control Functions
- DR Control Functions for Dual Database Instances
- DR Query Functions for Dual-Database Instances
- Snapshot Synchronization Functions
- Database Object Functions
- Advisory Lock Functions
- Logical Replication Functions
- Segment-Page Storage Functions
- Other Functions
- Undo System Functions
- Statistics Information Functions
- Trigger Functions
- Hash Function
- Prompt Message Function
- Global Temporary Table Functions
- Fault Injection System Function
- AI Feature Functions
- Dynamic Data Masking Functions
- Hierarchical Recursion Query Functions
- Internal Functions
- Global SysCache Feature Functions
- Data Damage Detection and Repair Functions
- Other System Functions
- Obsolete Functions
- Expressions
- Type Conversion
- System Operation
- Controlling Transactions
- DDL Syntax Overview
- DML Syntax Overview
- DCL Syntax Overview
-
SQL Syntax
- ABORT
- ALTER AGGREGATE
- ALTER AUDIT POLICY
- ALTER DATABASE
- ALTER DEFAULT PRIVILEGES
- ALTER DIRECTORY
- ALTER FUNCTION
- ALTER GLOBAL CONFIGURATION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER MASKING POLICY
- ALTER MATERIALIZED VIEW
- ALTER OPERATOR
- ALTER PACKAGE
- ALTER PROCEDURE
- ALTER RESOURCE LABEL
- ALTER ROLE
- ALTER ROW LEVEL SECURITY POLICY
- ALTER SCHEMA
- ALTER SEQUENCE
- ALTER SERVER
- ALTER SESSION
- ALTER SYNONYM
- ALTER SYSTEM KILL SESSION
- ALTER TABLE
- ALTER TABLE PARTITION
- ALTER TABLE SUBPARTITION
- ALTER TABLESPACE
- ALTER TRIGGER
- ALTER TYPE
- ALTER USER
- ALTER USER MAPPING
- ALTER VIEW
- ANALYZE | ANALYSE
- BEGIN
- CALL
- CHECKPOINT
- CLEAN CONNECTION
- CLOSE
- CLUSTER
- COMMENT
- COMMIT | END
- COMMIT PREPARED
- COPY
- CREATE AGGREGATE
- CREATE AUDIT POLICY
- CREATE CAST
- CREATE CONVERSION
- CREATE DATABASE
- CREATE DIRECTORY
- CREATE FUNCTION
- CREATE GROUP
- CREATE INCREMENTAL MATERIALIZED VIEW
- CREATE INDEX
- CREATE LANGUAGE
- CREATE MASKING POLICY
- CREATE MATERIALIZED VIEW
- CREATE OPERATOR
- CREATE OPERATOR CLASS
- CREATE PACKAGE
- CREATE PROCEDURE
- CREATE RESOURCE LABEL
- CREATE ROLE
- CREATE ROW LEVEL SECURITY POLICY
- CREATE RULE
- CREATE SCHEMA
- CREATE SEQUENCE
- CREATE SERVER
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLE AS
- CREATE TABLE PARTITION
- CREATE TABLESPACE
- CREATE TABLE SUBPARTITION
- CREATE TRIGGER
- CREATE TYPE
- CREATE USER
- CREATE USER MAPPING
- CREATE VIEW
- CREATE WEAK PASSWORD DICTIONARY
- CURSOR
- DEALLOCATE
- DECLARE
- DELETE
- DO
- DROP AGGREGATE
- DROP AUDIT POLICY
- DROP CAST
- DROP DATABASE
- DROP DIRECTORY
- DROP FUNCTION
- DROP GLOBAL CONFIGURATION
- DROP GROUP
- DROP INDEX
- DROP LANGUAGE
- DROP MASKING POLICY
- DROP MATERIALIZED VIEW
- DROP OPERATOR
- DROP OWNED
- DROP PACKAGE
- DROP PROCEDURE
- DROP RESOURCE LABEL
- DROP ROLE
- DROP ROW LEVEL SECURITY POLICY
- DROP RULE
- DROP SCHEMA
- DROP SEQUENCE
- DROP SERVER
- DROP SYNONYM
- DROP TABLE
- DROP TABLESPACE
- DROP TRIGGER
- DROP TYPE
- DROP USER
- DROP USER MAPPING
- DROP VIEW
- DROP WEAK PASSWORD DICTIONARY
- EXECUTE
- EXPLAIN
- EXPLAIN PLAN
- FETCH
- GRANT
- INSERT
- LOCK
- MERGE INTO
- MOVE
- PREPARE
- PREPARE TRANSACTION
- PURGE
- REASSIGN OWNED
- REFRESH INCREMENTAL MATERIALIZED VIEW
- REFRESH MATERIALIZED VIEW
- REINDEX
- RELEASE SAVEPOINT
- RESET
- REVOKE
- ROLLBACK
- ROLLBACK PREPARED
- ROLLBACK TO SAVEPOINT
- SAVEPOINT
- SELECT
- SELECT INTO
- SET
- SET CONSTRAINTS
- SET ROLE
- SET SESSION AUTHORIZATION
- SET TRANSACTION
- SHOW
- SHUTDOWN
- START TRANSACTION
- TIMECAPSULE TABLE
- TRUNCATE
- UPDATE
- VACUUM
- VALUES
- Appendix
- Best Practices
- User-defined Functions
- Stored Procedure
- Autonomous Transaction
-
System Catalogs and System Views
- Overview of System Catalogs and System Views
-
System Catalogs
- GS_ASP
- GS_AUDITING_POLICY
- GS_AUDITING_POLICY_ACCESS
- GS_AUDITING_POLICY_FILTERS
- GS_AUDITING_POLICY_PRIVILEGES
- GS_DB_PRIVILEGE
- GS_GLOBAL_CONFIG
- GS_JOB_ARGUMENT
- GS_JOB_ATTRIBUTE
- GS_MASKING_POLICY
- GS_MASKING_POLICY_ACTIONS
- GS_MASKING_POLICY_FILTERS
- GS_MATVIEW
- GS_MATVIEW_DEPENDENCY
- GS_OPT_MODEL
- GS_PACKAGE
- GS_POLICY_LABEL
- GS_RECYCLEBIN
- GS_SQL_PATCH
- GS_TXN_SNAPSHOT
- GS_UID
- PG_AGGREGATE
- PG_AM
- PG_AMOP
- PG_AMPROC
- PG_APP_WORKLOADGROUP_MAPPING
- PG_ATTRDEF
- PG_ATTRIBUTE
- PG_AUTHID
- PG_AUTH_HISTORY
- PG_AUTH_MEMBERS
- PG_CAST
- PG_CLASS
- PG_COLLATION
- PG_CONSTRAINT
- PG_CONVERSION
- PG_DATABASE
- PG_DB_ROLE_SETTING
- PG_DEFAULT_ACL
- PG_DEPEND
- PG_DESCRIPTION
- PG_DIRECTORY
- PG_ENUM
- PG_FOREIGN_SERVER
- PG_HASHBUCKET
- PG_INDEX
- PG_INHERITS
- PG_JOB
- PG_JOB_PROC
- PG_LANGUAGE
- PG_LARGEOBJECT
- PG_LARGEOBJECT_METADATA
- PG_NAMESPACE
- PG_OBJECT
- PG_OPCLASS
- PG_OPERATOR
- PG_OPFAMILY
- PG_PARTITION
- PG_PLTEMPLATE
- PG_PROC
- PG_RANGE
- PG_REPLICATION_ORIGIN
- PG_RESOURCE_POOL
- PG_REWRITE
- PG_RLSPOLICY
- PG_SECLABEL
- PG_SHDEPEND
- PG_SHDESCRIPTION
- PG_SHSECLABEL
- PG_STATISTIC
- PG_STATISTIC_EXT
- PG_SYNONYM
- PG_TABLESPACE
- PG_TRIGGER
- PG_TS_CONFIG
- PG_TS_CONFIG_MAP
- PG_TS_DICT
- PG_TS_PARSER
- PG_TS_TEMPLATE
- PG_TYPE
- PG_USER_MAPPING
- PG_USER_STATUS
- PG_WORKLOAD_GROUP
- PGXC_CLASS
- PGXC_GROUP
- PGXC_NODE
- PGXC_SLICE
- PLAN_TABLE_DATA
- STATEMENT_HISTORY
- STREAMING_STREAM
- STREAMING_CONT_QUERY
- STREAMING_REAPER_STATUS
-
System Views
- ADM_COL_COMMENTS
- ADM_CONS_COLUMNS
- ADM_CONSTRAINTS
- ADM_DATA_FILES
- ADM_HIST_SNAPSHOT
- ADM_HIST_SQL_PLAN
- ADM_HIST_SQLSTAT
- ADM_IND_COLUMNS
- ADM_IND_EXPRESSIONS
- ADM_IND_PARTITIONS
- ADM_IND_SUBPARTITIONS
- ADM_INDEXES
- ADM_OBJECTS
- ADM_PART_INDEXES
- ADM_PART_TABLES
- ADM_PROCEDURES
- ADM_SCHEDULER_JOBS
- ADM_SEQUENCES
- ADM_SOURCE
- ADM_SYNONYMS
- ADM_TAB_COLUMNS
- ADM_TAB_COMMENTS
- ADM_TAB_PARTITIONS
- ADM_TAB_SUBPARTITIONS
- ADM_TABLES
- ADM_TABLESPACES
- ADM_TRIGGERS
- ADM_TYPE_ATTRS
- ADM_USERS
- ADM_VIEWS
- DB_ALL_TABLES
- DB_COL_COMMENTS
- DB_CONS_COLUMNS
- DB_CONSTRAINTS
- DB_DEPENDENCIES
- DB_IND_COLUMNS
- DB_IND_EXPRESSIONS
- DB_IND_PARTITIONS
- DB_IND_SUBPARTITIONS
- DB_INDEXES
- DB_OBJECTS
- DB_PART_INDEXES
- DB_PART_TABLES
- DB_PROCEDURES
- DB_SEQUENCES
- DB_SOURCE
- DB_SYNONYMS
- DB_TAB_COLUMNS
- DB_TAB_COMMENTS
- DB_TAB_PARTITIONS
- DB_TAB_SUBPARTITIONS
- DB_TABLES
- DB_TRIGGERS
- DB_USERS
- DB_VIEWS
- DV_SESSIONS
- DV_SESSION_LONGOPS
- GET_GLOBAL_PREPARED_XACTS (Discarded)
- GS_ALL_CONTROL_GROUP_INFO
- GS_AUDITING
- GS_AUDITING_ACCESS
- GS_AUDITING_PRIVILEGE
- GS_CLUSTER_RESOURCE_INFO
- GS_COMM_PROXY_THREAD_STATUS
- GS_DB_PRIVILEGES
- GS_FILE_STAT
- GS_GET_CONTROL_GROUP_INFO
- GS_GSC_MEMORY_DETAIL
- GS_INSTANCE_TIME
- GS_LABELS
- GS_LSC_MEMORY_DETAIL
- GS_MASKING
- GS_MATVIEWS
- GS_OS_RUN_INFO
- GS_REDO_STAT
- GS_SESSION_MEMORY
- GS_SESSION_MEMORY_CONTEXT
- GS_SESSION_MEMORY_DETAIL
- GS_SESSION_STAT
- GS_SESSION_TIME
- GS_SQL_COUNT
- GS_STAT_SESSION_CU
- GS_THREAD_MEMORY_CONTEXT
- GS_TOTAL_MEMORY_DETAIL
- GS_TOTAL_NODEGROUP_MEMORY_DETAIL
- GV_SESSION
- MPP_TABLES
- MY_COL_COMMENTS
- MY_CONS_COLUMNS
- MY_CONSTRAINTS
- MY_IND_COLUMNS
- MY_IND_EXPRESSIONS
- MY_IND_PARTITIONS
- MY_IND_SUBPARTITIONS
- MY_INDEXES
- MY_JOBS
- MY_OBJECTS
- MY_PART_INDEXES
- MY_PART_TABLES
- MY_PROCEDURES
- MY_SEQUENCES
- MY_SOURCE
- MY_SYNONYMS
- MY_TAB_COLUMNS
- MY_TAB_COMMENTS
- MY_TAB_PARTITIONS
- MY_TAB_SUBPARTITIONS
- MY_TABLES
- MY_TRIGGERS
- MY_VIEWS
- PG_CURSORS
- PG_COMM_DELAY
- PG_COMM_RECV_STREAM
- PG_COMM_SEND_STREAM
- PG_COMM_STATUS
- PG_CONTROL_GROUP_CONFIG
- PG_EXT_STATS
- PG_GET_INVALID_BACKENDS
- PG_GET_SENDERS_CATCHUP_TIME
- PG_GROUP
- PG_GTT_ATTACHED_PIDS
- PG_GTT_RELSTATS
- PG_GTT_STATS
- PG_INDEXES
- PG_LOCKS
- PG_NODE_ENV
- PG_OS_THREADS
- PG_PREPARED_STATEMENTS
- PG_PREPARED_XACTS
- PG_REPLICATION_ORIGIN_STATUS
- PG_REPLICATION_SLOTS
- PG_RLSPOLICIES
- PG_ROLES
- PG_RULES
- PG_RUNNING_XACTS
- PG_SECLABELS
- PG_SETTINGS
- PG_SHADOW
- PG_STATS
- PG_STAT_ACTIVITY
- PG_STAT_ACTIVITY_NG
- PG_STAT_ALL_INDEXES
- PG_STAT_ALL_TABLES
- PG_STAT_BAD_BLOCK
- PG_STAT_BGWRITER
- PG_STAT_DATABASE
- PG_STAT_DATABASE_CONFLICTS
- PG_STAT_USER_FUNCTIONS
- PG_STAT_USER_INDEXES
- PG_STAT_USER_TABLES
- PG_STAT_REPLICATION
- PG_STAT_SYS_INDEXES
- PG_STAT_SYS_TABLES
- PG_STAT_XACT_ALL_TABLES
- PG_STAT_XACT_SYS_TABLES
- PG_STAT_XACT_USER_FUNCTIONS
- PG_STAT_XACT_USER_TABLES
- PG_STATIO_ALL_INDEXES
- PG_STATIO_ALL_SEQUENCES
- PG_STATIO_ALL_TABLES
- PG_STATIO_SYS_INDEXES
- PG_STATIO_SYS_SEQUENCES
- PG_STATIO_SYS_TABLES
- PG_STATIO_USER_INDEXES
- PG_STATIO_USER_SEQUENCES
- PG_STATIO_USER_TABLES
- PG_TABLES
- PG_TDE_INFO
- PG_TIMEZONE_ABBREVS
- PG_TIMEZONE_NAMES
- PG_TOTAL_MEMORY_DETAIL
- PG_TOTAL_USER_RESOURCE_INFO
- PG_TOTAL_USER_RESOURCE_INFO_OID
- PG_USER
- PG_USER_MAPPINGS
- PG_VARIABLE_INFO
- PG_VIEWS
- PGXC_PREPARED_XACTS
- PGXC_THREAD_WAIT_STATUS
- PLAN_TABLE
- SYS_DUMMY
-
Schemas
- Information Schema
-
DBE_PERF Schema
- OS
- Instance
- Memory
- File
-
Object
- STAT_USER_TABLES
- SUMMARY_STAT_USER_TABLES
- GLOBAL_STAT_USER_TABLES
- STAT_USER_INDEXES
- SUMMARY_STAT_USER_INDEXES
- GLOBAL_STAT_USER_INDEXES
- STAT_SYS_TABLES
- SUMMARY_STAT_SYS_TABLES
- GLOBAL_STAT_SYS_TABLES
- STAT_SYS_INDEXES
- SUMMARY_STAT_SYS_INDEXES
- GLOBAL_STAT_SYS_INDEXES
- STAT_ALL_TABLES
- SUMMARY_STAT_ALL_TABLES
- GLOBAL_STAT_ALL_TABLES
- STAT_ALL_INDEXES
- SUMMARY_STAT_ALL_INDEXES
- GLOBAL_STAT_ALL_INDEXES
- STAT_DATABASE
- SUMMARY_STAT_DATABASE
- GLOBAL_STAT_DATABASE
- STAT_DATABASE_CONFLICTS
- SUMMARY_STAT_DATABASE_CONFLICTS
- GLOBAL_STAT_DATABASE_CONFLICTS
- STAT_XACT_ALL_TABLES
- SUMMARY_STAT_XACT_ALL_TABLES
- GLOBAL_STAT_XACT_ALL_TABLES
- STAT_XACT_SYS_TABLES
- SUMMARY_STAT_XACT_SYS_TABLES
- GLOBAL_STAT_XACT_SYS_TABLES
- STAT_XACT_USER_TABLES
- SUMMARY_STAT_XACT_USER_TABLES
- GLOBAL_STAT_XACT_USER_TABLES
- STAT_XACT_USER_FUNCTIONS
- SUMMARY_STAT_XACT_USER_FUNCTIONS
- GLOBAL_STAT_XACT_USER_FUNCTIONS
- STAT_BAD_BLOCK
- SUMMARY_STAT_BAD_BLOCK
- GLOBAL_STAT_BAD_BLOCK
- STAT_USER_FUNCTIONS
- SUMMARY_STAT_USER_FUNCTIONS
- GLOBAL_STAT_USER_FUNCTIONS
- Workload
-
Session/Thread
- SESSION_STAT
- GLOBAL_SESSION_STAT
- SESSION_TIME
- GLOBAL_SESSION_TIME
- SESSION_MEMORY
- GLOBAL_SESSION_MEMORY
- SESSION_MEMORY_DETAIL
- GLOBAL_SESSION_MEMORY_DETAIL
- SESSION_STAT_ACTIVITY
- GLOBAL_SESSION_STAT_ACTIVITY
- THREAD_WAIT_STATUS
- GLOBAL_THREAD_WAIT_STATUS
- LOCAL_THREADPOOL_STATUS
- GLOBAL_THREADPOOL_STATUS
- LOCAL_ACTIVE_SESSION
- Transaction
- Query
-
Cache/IO
- STATIO_USER_TABLES
- SUMMARY_STATIO_USER_TABLES
- GLOBAL_STATIO_USER_TABLES
- STATIO_USER_INDEXES
- SUMMARY_STATIO_USER_INDEXES
- GLOBAL_STATIO_USER_INDEXES
- STATIO_USER_SEQUENCES
- SUMMARY_STATIO_USER_SEQUENCES
- GLOBAL_STATIO_USER_SEQUENCES
- STATIO_SYS_TABLES
- SUMMARY_STATIO_SYS_TABLES
- GLOBAL_STATIO_SYS_TABLES
- STATIO_SYS_INDEXES
- SUMMARY_STATIO_SYS_INDEXES
- GLOBAL_STATIO_SYS_INDEXES
- STATIO_SYS_SEQUENCES
- SUMMARY_STATIO_SYS_SEQUENCES
- GLOBAL_STATIO_SYS_SEQUENCES
- STATIO_ALL_TABLES
- SUMMARY_STATIO_ALL_TABLES
- GLOBAL_STATIO_ALL_TABLES
- STATIO_ALL_INDEXES
- SUMMARY_STATIO_ALL_INDEXES
- GLOBAL_STATIO_ALL_INDEXES
- STATIO_ALL_SEQUENCES
- SUMMARY_STATIO_ALL_SEQUENCES
- GLOBAL_STATIO_ALL_SEQUENCES
- GLOBAL_STAT_DB_CU
- GLOBAL_STAT_SESSION_CU
-
Utility
- REPLICATION_STAT
- GLOBAL_REPLICATION_STAT
- REPLICATION_SLOTS
- GLOBAL_REPLICATION_SLOTS
- BGWRITER_STAT
- GLOBAL_BGWRITER_STAT
- GLOBAL_CKPT_STATUS
- GLOBAL_DOUBLE_WRITE_STATUS
- GLOBAL_PAGEWRITER_STATUS
- GLOBAL_RECORD_RESET_TIME
- GLOBAL_REDO_STATUS
- GLOBAL_RECOVERY_STATUS
- CLASS_VITAL_INFO
- USER_LOGIN
- SUMMARY_USER_LOGIN
- GLOBAL_SINGLE_FLUSH_DW_STATUS
- GLOBAL_CANDIDATE_STATUS
- Lock
- Wait Events
- Configuration
- Operator
- Workload Manager
- Global Plancache
- RTO & RPO
-
DBE_PLDEBUGGER Schema
- DBE_PLDEBUGGER.turn_on
- DBE_PLDEBUGGER.turn_off
- DBE_PLDEBUGGER.local_debug_server_info
- DBE_PLDEBUGGER.attach
- DBE_PLDEBUGGER.info_locals
- DBE_PLDEBUGGER.next
- DBE_PLDEBUGGER.continue
- DBE_PLDEBUGGER.abort
- DBE_PLDEBUGGER.print_var
- DBE_PLDEBUGGER.info_code
- DBE_PLDEBUGGER.step
- DBE_PLDEBUGGER.add_breakpoint
- DBE_PLDEBUGGER.delete_breakpoint
- DBE_PLDEBUGGER.info_breakpoints
- DBE_PLDEBUGGER.backtrace
- DBE_PLDEBUGGER.enable_breakpoint
- DBE_PLDEBUGGER.disable_breakpoint
- DBE_PLDEBUGGER.finish
- DBE_PLDEBUGGER.set_var
- DBE_PLDEVELOPER
- DBE_SQL_UTIL Schema
- Logical Replication
- Materialized View
- Error Log Reference
-
Configuring GUC Parameters
- Viewing Parameter Values
- Resetting Parameters
-
GUC Parameters
- GUC Parameter Usage
- File Location
- Connection and Authentication
- Resource Consumption
- Data Import and Export
- Write Ahead Log
- HA Replication
- Query Planning
- Error Reporting and Logging
- Alarm Detection
- Statistics During the Database Running
- Automatic Vacuuming
- Default Settings of Client Connection
- Lock Management
- Version and Platform Compatibility
- Fault Tolerance
- Connection Pool Parameters
- Transaction
- Replication Parameters of Two Database Instances
- Developer Options
- Auditing
- CM Parameters
- Upgrade Parameters
- Miscellaneous Parameters
- Wait Events
- Query
- System Performance Snapshot
- Security Configuration
- Global Temporary Table
- HyperLogLog
- User-defined Functions
- Scheduled Task
- Thread Pool
- Backup and Restoration
- Undo
- DCF Parameters Settings
- Flashback
- Rollback Parameters
- AI Features
- Global SysCache Parameters
- Reserved Parameters
-
Developer Guide(Distributed_V2.0-8.x)
- Tool Guide
-
Feature Guide
-
Feature Guide(Distributed_V2.0-8.x)
- Materialized View
- Setting Encrypted Equality Queries
-
Partitioned Table
- Large-Capacity Database
- Introduction to Partitioned Tables
- Partitioned Table Query Optimization
- Partitioned Table O&M Management
- System Views & DFX Related to Partitioned Tables
- Storage Engine
- FDW
- Logical Replication
-
Feature Guide(Centralized_V2.0-8.x)
- Materialized View
- Setting Encrypted Equality Query
-
Partitioned Table
- Large-Capacity Database
- Introduction to Partitioned Tables
- Partitioned Table Query Optimization
- Automatic Partitioning
- Partitioned Table O&M Management
- Partition Concurrency Control
- System Views & DFX Related to Partitioned Tables
- Storage Engine
- Foreign Data Wrapper
- Logical Replication
-
Feature Guide(Distributed_V2.0-3.x)
- Materialized View
- Setting Encrypted Equality Queries
-
Partitioned Table
- Large-Capacity Database
- Introduction to Partitioned Tables
- Partitioned Table Query Optimization
- Partitioned Table O&M Management
- System Views & DFX Related to Partitioned Tables
- Storage Engine
- FDW
- Logical Replication
-
Feature Guide(Centralized_V2.0-3.x)
- Materialized View
- Setting Encrypted Equality Query
-
Partitioned Table
- Large-Capacity Database
- Introduction to Partitioned Tables
- Partitioned Table Query Optimization
- Partitioned Table O&M Management
- Partition Concurrency Control
- System Views & DFX Related to Partitioned Tables
- Storage Engine
- Foreign Data Wrapper
- Logical Replication
-
Feature Guide(Distributed_V2.0-8.x)
- Best Practices
- Performance White Paper
-
API Reference
- Before You Start
- API Overview
- Calling APIs
-
APIs (Recommended)
- DB Engine Versions and Specifications
- Storage Management
-
Instance Management
- Creating a DB Instance (v3.2)
- Creating a DB Instance (v5)
- Adding CNs and DN Shards and Scaling Up Storage
- Deleting a DB Instance
- Querying DB Instances
- Resetting a Database Password
- Changing a DB Instance Name
- Rebooting a DB Instance
- Switching Roles of the Primary and Standby DNs in Shards
- Querying the Components of a DB Instance
- Changing the vCPUs and Memory of a DB Instance
- Checking Whether Host Load Is Unbalanced Due to a Primary/Standby Switchover
- Querying Solution Template Settings
- Querying EIPs Bound to a DB Instance
- Validating Password Strength
- Binding or Unbinding an EIP
- Querying the SSL Certificate Download Address of a DB Instance
- Querying the Instance Quotas of a Tenant
- Starting a DB Instance or Node
- Stopping a DB Instance or Node
- Enabling M Compatibility Port
- Changing or Disabling M Compatibility Port
- Querying the Top I/O Threads
- Querying CNs
- Querying Storage Autoscaling Policies of a DB Instance
- Querying Advanced Features
- Enabling or Disabling Advanced Features
-
Parameter Configuration
- Obtaining Parameter Templates
- Obtaining the Parameters of a Specified DB Instance
- Modifying Parameters of a Specified DB Instance
- Creating a Parameter Template
- Deleting a Parameter Template
- Querying Details About a Parameter Template
- Replicating a Parameter Template
- Resetting a Parameter Template
- Obtaining the Differences of Two Parameter Templates
- Querying Instances That a Parameter Template Can Be Applied To
- Checking Whether the Parameter Template Name Exists
- Applying a Parameter Template
- Querying Application Records of a Parameter Template
- Querying Change History of a Parameter Template
- Version Upgrade
-
Backup and Restoration
- Configuring an Automated Backup Policy
- Querying an Automated Backup Policy
- Querying Backups
- Creating a Manual Backup
- Stopping a Backup
- Deleting a Manual Backup
- Querying the Restoration Time Range
- Restoring Data to a New instance
- Querying Instances That Can Be Used for Backups and Restorations
- Querying Information About the Original Instance Based on a Specific Point of Time or a Backup File
- Restoring Data to the Original or Existing Instance
- Confirming Data Integrity After a Backup Is Restored
- Log Management
- SQL Throttling
-
Database and Account Management
- Creating a Database
- Creating a Database Account
- Creating a Database Schema
- Configuring Permissions of Database Accounts
- Resetting a Password for a Database Account
- Querying Databases
- Querying Database Users
- Querying Database Schemas
- Deleting a Database
- Deleting a Schema
- Creating a Database Role
- Querying Database Roles
- Configuring Permissions of a Database Role
- Tag Management
- Quota Management
- Task Management
- Recycle Bin
- Plug-in Management
- Historical APIs
- Permissions Policies and Supported Actions
- Appendix
- SDK Reference
-
FAQs
-
About GaussDB
- What Should I Pay Attention to When Using GaussDB?
- What Is the Availability of GaussDB Instances?
- Will My GaussDB Instances Be Affected by Other Users' Instances?
- What Can I Do About Slow Responses of Websites When They Use GaussDB?
- Can Multiple ECSs Connect to the Same GaussDB Instance?
- Can I Encrypt the Disk After Purchasing a GaussDB Instance?
- Will Backups Be Encrypted After Disk Encryption Is Enabled for My GaussDB Instance?
- Will Different GaussDB Instances Share CPU and Memory Resources?
- How Many Databases Can Run on a GaussDB Instance?
- What Is the Relationship Between GaussDB and PostgreSQL?
- Can Multiple Users Log In to a GaussDB Instance Through DAS at the Same Time? Will the Accounts Be Locked If I Enter Wrong Passwords Several Times in a Row?
- What Are the Differences Between the Independent Deployment Model and Combined Deployment Model of GaussDB Distributed Instances?
- What Are the Differences Between the General-Purpose, Dedicated, and Kunpeng Dedicated Specification Types Provided GaussDB?
- Can I Switch Between the GaussDB Enterprise Edition and Basic Edition?
- GaussDB Resource Freezing, Unfreezing, Release, Deletion, and Unsubscription
- Resource and Disk Management
-
Database Connections
- What Should I Do If I Can't Connect to My GaussDB Instance?
- Can an External Server Access GaussDB Instances?
- Do Applications Need to Support Automatic Reconnections to GaussDB Databases?
- Why Can't I Ping My EIP After It Is Bound to a GaussDB Instance?
- Can I Access a GaussDB Instance Over an Intranet Connection Across Regions?
- Database Storage
-
Database Usage
- How Do I Use DAS to Query SQL Statements Executed in GaussDB?
- What Should I Do If Garbled Characters Are Displayed After SQL Query Results Are Exported to an Excel File for My GaussDB Instance?
- What Do I Do If the root Account of My GaussDB Instance Is Locked?
- Why Did the New Password Not Take Effect After I Reset the Administrator Password of a GaussDB Instance?
- What Do I Do If Replay Speed of Standby DNs Cannot Catch Up with Write Speed of Primary DN?
- Can I Change the VPC to Which My GaussDB Instance Belongs?
-
Backup and Restoration
- How Long Does GaussDB Store Backup Data?
- How Do I Clear GaussDB Backup Space?
- Can My GaussDB Instance Still Be Used in the Backup Window?
- How Is GaussDB Backup Data Billed?
- How Can I Back Up a GaussDB Database to an ECS?
- Will Backups Be Retained After My GaussDB Instance Is Deleted?
- Why Does Automated Backup for a GaussDB Instance Fail?
- Why Is Data Table Lost or Data Deleted from My GaussDB Instance?
- Does GaussDB Support Restoring Data for Individual Tables?
- How Can I Delete the GaussDB Backup Policy?
- Database Monitoring
- Scaling and Specification Change
-
Database Parameter Modification
- How Can I Change the Time Zone of a GaussDB Instance?
- How Can I Configure a Password Expiration Policy?
- Can I Use SQL Commands in GaussDB to Modify Global Parameters?
- Can I Enable SELECT Operation Auditing in GaussDB?
- How Do I Set the Disk Usage Threshold for Putting a Database Node into Read-Only Mode in GaussDB?
- How Do I Set the Date and Time Display Format in GaussDB?
- How Do I Set the Time Zone Used for Displaying and Interpreting Timestamps in GaussDB?
- How Do I Change the Maximum Number of DN Connections Allowed in GaussDB?
- How Do I Enable the Audit of INSERT, UPDATE, and DELETE Operations in GaussDB?
- How Do I Set the Maximum Number of WAL Sender Threads That Can Be Created in GaussDB?
- How Do I Set the Maximum Number of Bytes to Be Logged for Each SQL Statement in GaussDB?
- How Do I Set the Connection Timeout Interval for GaussDB?
- How Do I Set the Automatic Unlocking Time After an Account Is Locked in GaussDB?
- How Do I Set the Maximum Number of Failed Login Attempts for Accounts in GaussDB?
- Log Management
- Network Security
-
About GaussDB
-
Compatibility
- Oracle Compatibility(Distributed)
- Oracle Compatibility(Centralized)
-
MySQL Compatibility(Distributed)
- Overview
- MySQL Compatibility in MySQL-Compatible Mode
- MySQL Compatibility in M-compatible Mode
-
MySQL Compatibility(Centralized)
- Introduction
- MySQL Compatibility in B-Compatible Mode
- MySQL Compatibility in M-Compatible Mode
- Videos
- General Reference
Copied.
Data Type Conversion
Conversion between different data types is supported. Data type conversion is involved in the following scenarios:
- The data types of operands of operators (such as comparison and arithmetic operators) are inconsistent. It is commonly used for comparison operations in query conditions or join conditions.
- The data types of arguments and parameters are inconsistent when a function is called.
- The data types of target columns to be updated by DML statements (including INSERT, UPDATE, MERGE, and REPLACE) and the defined column types are inconsistent.
- Explicit type conversion: CAST(expr AS datatype), which converts an expression to a data type.
- After the target data type of the final projection column is determined by set operations (UNION, MINUS, EXCEPT, and INTERSECT), the type of the projection column in each SELECT statement is inconsistent with the target data type.
- In other expression calculation scenarios, the target data type used for comparison or final result is determined based on the data type of different expressions.
- When the collation of a common character string is BINARY, the character string is converted to the corresponding binary type (for example, TEXT is converted to BLOB, and VARCHAR is converted to VARBINARY).
There are three types of data type conversion differences: implicit conversion, explicit conversion, UNION/CASE, and decimal type.
Differences in Implicit Type Conversion
- In GaussDB, the conversion rules from small types to small types are used. In MySQL, the conversion rules from small types to large types and from large types to small types are used.
- Due to data type differences, some output formats of implicit conversion in GaussDB are inconsistent.
- During implicit conversion from the BIT data type to the character data type and binary data type in GaussDB, some output behaviors are inconsistent. GaussDB outputs a hexadecimal character string, and MySQL escapes the character string based on the ASCII code table. If the character string cannot be escaped, the output is empty.
m_db=# CREATE TABLE bit_storage ( VS_COL1 BIT(4), VS_COL2 BIT(4), VS_COL3 BIT(4), VS_COL4 BIT(4), VS_COL5 BIT(4), VS_COL6 BIT(4), VS_COL7 BIT(4), VS_COL8 BIT(4) ) DISTRIBUTE BY REPLICATION; m_db=# CREATE TABLE string_storage ( VS_COL1 BLOB, VS_COL2 TINYBLOB, VS_COL3 MEDIUMBLOB, VS_COL4 LONGBLOB, VS_COL5 TEXT, VS_COL6 TINYTEXT, VS_COL7 MEDIUMTEXT, VS_COL8 LONGTEXT ) DISTRIBUTE BY REPLICATION; m_db=# INSERT INTO bit_storage VALUES(B'101', B'101', B'101', B'101', B'101', B'101', B'101', B'101'); m_db=# INSERT INTO string_storage SELECT * FROM bit_storage; m_db=# SELECT * FROM string_storage; VS_COL1 | VS_COL2 | VS_COL3 | VS_COL4 | VS_COL5 | VS_COL6 | VS_COL7 | VS_COL8 ---------+---------+---------+---------+---------+---------+---------+--------- \x05 | \x05 | \x05 | \x05 | \x05 | \x05 | \x05 | \x05 (1 row) m_db=# DROP TABLE bit_storage, string_storage; mysql> CREATE TABLE bit_storage ( VS_COL1 BIT(4), VS_COL2 BIT(4), VS_COL3 BIT(4), VS_COL4 BIT(4), VS_COL5 BIT(4), VS_COL6 BIT(4), VS_COL7 BIT(4), VS_COL8 BIT(4) ); mysql> CREATE TABLE bit_storage ( VS_COL1 BIT(4), VS_COL2 BIT(4), VS_COL3 BIT(4), VS_COL4 BIT(4), VS_COL5 BIT(4), VS_COL6 BIT(4), VS_COL7 BIT(4), VS_COL8 BIT(4) ); mysql> INSERT INTO bit_storage VALUES(B'101', B'101', B'101', B'101', B'101', B'101', B'101', B'101'); mysql> INSERT INTO string_storage SELECT * FROM bit_storage; mysql> SELECT * FROM string_storage; +---------+---------+---------+---------+---------+---------+---------+---------+ | VS_COL1 | VS_COL2 | VS_COL3 | VS_COL4 | VS_COL5 | VS_COL6 | VS_COL7 | VS_COL8 | +---------+---------+---------+---------+---------+---------+---------+---------+ | | | | | | | | | +---------+---------+---------+---------+---------+---------+---------+---------+ 1 row in set (0.00 sec) mysql> DROP TABLE bit_storage, string_storage;
- When a binary or hexadecimal character string with 0x00 is inserted into the binary data type, GaussDB inserts part of the string and truncates the characters following 0x00. MySQL can insert the entire string.
Example:
m_db=# CREATE TABLE blob_storage ( A BLOB ) DISTRIBUTE BY REPLICATION; m_db=# INSERT INTO blob_storage VALUES (0xBB00BB); m_db=# SELECT hex(A) FROM blob_storage; hex ----- BB (1 row) m_db=# DROP TABLE blob_storage; mysql> CREATE TABLE blob_storage ( A BLOB ); mysql> INSERT INTO blob_storage VALUES (0xBB00BB); mysql> SELECT hex(A) FROM blob_storage; +--------+ | hex(a) | +--------+ | BB00BB | +--------+ 1 row in set (0.01 sec) mysql> DROP TABLE blob_storage;
- When a binary or hexadecimal string with 0x00 in the middle is inserted into the string data type, GaussDB inserts part of the string and truncates the characters following 0x00. In MySQL, the string cannot be inserted in strict mode, and an empty string is inserted in loose mode.
Example:
m_db=# CREATE TABLE text_storage ( A TEXT ); m_db=# INSERT INTO text_storage VALUES (b'101110110000000010111011'); m_db=# SELECT hex(A) FROM text_storage; hex ----- BB (1 row) m_db=# DROP TABLE text_storage; mysql> CREATE TABLE text_storage ( A TEXT ); mysql> INSERT INTO text_storage VALUES (b'101110110000000010111011'); ERROR 1366 (HY000): Incorrect string value: '\xBB\x00\xBB' for column 'A' at row 1 mysql> SELECT hex(A) FROM text_storage; Empty set (0.00 sec) mysql> SET SQL_MODE=''; mysql> INSERT INTO text_storage VALUES (b'101110110000000010111011'); mysql> SELECT hex(A) FROM text_storage; +--------+ | hex(A) | +--------+ | | +--------+ 1 row in set (0.01 sec) mysql> DROP TABLE text_storage;
- The WHERE clause contains only common character strings. GaussDB returns TRUE for 't', 'true', 'yes', 'y', and 'on', returns FALSE for 'no', 'f', 'off', 'false', and 'n', and reports an error for other character strings. MySQL determines whether to return TRUE or FALSE by converting a character string to an INT1 value.
Example:
m_db=# CREATE TABLE test_where ( A INT ); m_db=# INSERT INTO test_where VALUES (1); m_db=# SELECT * FROM test_where WHERE '111'; ERROR: invalid input syntax for type boolean: "111" LINE 1: select * from test_where where '111'; m_db=# DROP TABLE test_where; mysql> CREATE TABLE test_where ( A INT ); mysql> INSERT INTO test_where VALUES (1); mysql> SELECT * FROM test_where WHERE '111'; +------+ | a | +------+ | 1 | +------+ 1 row in set (0.01 sec) mysql> DROP TABLE test_where;
- When converting strings of YEAR type to integers, MySQL uses scientific notation, but GaussDB does not support scientific notation and truncates the strings.
m_db=# CREATE TABLE test_year ( A YEAR ); m_db=# SET sql_mode = ''; m_db=# INSERT INTO test_year VALUES ('2E3x'); WARNING: Data truncated for column. LINE 1: insert into t1 values ('2E3x'); ^ CONTEXT: referenced column: a m_db=# SELECT * FROM test_year ORDER BY A; a ------ 2002 (1 row) m_db=# DROP TABLE test_year; mysql> CREATE TABLE test_year ( A YEAR ); mysql> INSERT INTO test_year VALUES ('2E3x'); mysql> SELECT * FROM test_year ORDER BY A; +------+ | a | +------+ | 2000 | +------+ 1 row in set (0.01 sec) mysql> DROP TABLE test_year;
- When CREATE TABLE AS is used with UNION, GaussDB does not distinguish the sequence of the left and right subnodes, but MySQL distinguishes the sequence of the left and right subnodes. If the left and right subnodes are exchanged, the results are different.
m_db=# CREATE TABLE test2( F1 FLOAT, I1 TINYINT, I2 SMALLINT, DTT1 DATETIME(6), DEC3 DECIMAL(32, 15), JS1 JSON, D2 DOUBLE, CH1 CHAR(255), D3 DOUBLE, TX1 TINYTEXT ); m_db=# CREATE TABLE test1 SELECT DISTINCT concat((F1 + I1 - DTT1) * DEC3 % D2 / CH1) a from test2 UNION ALL SELECT sqrt((DEC3 + DTT1 - JS1) * D3 / - TX1 % I2) FROM test2; m_db=# DESC test1; Field | Type | Null | Key | Default | Extra -------+------+------+-----+---------+------- a | text | YES | | | (1 row) m_db=# CREATE TABLE test3 SELECT DISTINCT sqrt((DEC3 + DTT1 - JS1) * D3 / - TX1 % I2) a from test2 UNION ALL SELECT concat((F1 + I1 - DTT1) * DEC3 % D2 / CH1) FROM test2; m_db=# DESC test3; Field | Type | Null | Key | Default | Extra -------+------+------+-----+---------+------- a | text | YES | | | (1 row) m_db=# DROP TABLE test1, test2, test3; mysql> CREATE TABLE test2( F1 FLOAT, I1 TINYINT, I2 SMALLINT, DTT1 DATETIME(6), DEC3 DECIMAL(32, 15), JS1 JSON, D2 DOUBLE, CH1 CHAR(255), D3 DOUBLE, TX1 TINYTEXT ); mysql> CREATE TABLE test1 SELECT DISTINCT concat((F1 + I1 - DTT1) * DEC3 % D2 / CH1) a from test2 UNION ALL SELECT sqrt((DEC3 + DTT1 - JS1) * D3 / - TX1 % I2) FROM test2; mysql> DESC test1; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | a | varchar(53) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> CREATE TABLE test3 SELECT DISTINCT sqrt((DEC3 + DTT1 - JS1) * D3 / - TX1 % I2) a from test2 UNION ALL SELECT concat((F1 + I1 - DTT1) * DEC3 % D2 / CH1) FROM test2; mysql> DESC test3; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | a | varchar(23) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> DROP TABLE test1, test2, test3;
- In the function nesting scenarios in GaussDB, if aggregate functions (such as max, min, sum, and avg) contain non-numeric characters in the string type, the characters of this type are truncated or set to zeros during implicit conversion to the numeric type. If operator comparison and HAVING comparison are also involved, GaussDB converts types and generates alarms in a unified manner, but MySQL may not generate alarms in the same scenarios.
m_db=# SET m_format_behavior_compat_options= 'enable_precision_decimal'; SET m_db=# SELECT max(c4) <> 0 FROM ((SELECT 2.22 id, '2006-04-27 20:19:02.132' c4)) tb_1; WARNING: Truncated incorrect double value: '2006-04-27 20:19:02.132' ?column? ---------- t (1 row) m_db=# SELECT sum(c4) <> 0 FROM ((SELECT 2.22 id, '2006-04-27 20:19:02.132' c4)) tb_1; WARNING: Truncated incorrect double value: '2006-04-27 20:19:02.132' ?column? ---------- t (1 row) m_db=# SELECT (SELECT max(c4) f5 FROM ((SELECT 2.22 id, '2006-04-27 20:19:08.132' c4) UNION all (SELECT 2.22 id, '1985-09-01 07:59:59' c4)) tb_1 m_db(# WHERE exists (SELECT max(c4) FROM ((SELECT 2.22 id, '2006-04-27 20:19:08.132' c4) UNION all (SELECT 2.22 id, '1985-09-01 07:59:59' c4)) tb_2) m_db(# GROUP BY id WITH rollup HAVING f5<>0 LIMIT 0,1) + INTERVAL '33.22' SECOND_MICROSECOND col5; WARNING: Truncated incorrect double value: '2006-04-27 20:19:08.132' CONTEXT: referenced column: col5 col5 ---------------------------- 2006-04-27 20:19:41.352000 (1 row) m_db=# SELECT (SELECT sum(c4) f5 FROM ((SELECT 2.22 id, '2006-04-27 20:19:08.132' c4) UNION all (SELECT 2.22 id, '1985-09-01 07:59:59' c4)) tb_1 m_db(# WHERE exists (SELECT sum(c4) FROM ((select 2.22 id, '2006-04-27 20:19:08.132' c4) UNION all (select 2.22 id, '1985-09-01 07:59:59' c4)) tb_2) m_db(# GROUP BY id WITH rollup HAVING f5<>0 LIMIT 0,1) + INTERVAL '33.22' SECOND_MICROSECOND col5; WARNING: Truncated incorrect double value: '2006-04-27 20:19:08.132' CONTEXT: referenced column: col5 WARNING: Truncated incorrect double value: '1985-09-01 07:59:59' CONTEXT: referenced column: col5 WARNING: Truncated incorrect double value: '2006-04-27 20:19:08.132' CONTEXT: referenced column: col5 WARNING: Truncated incorrect double value: '2006-04-27 20:19:08.132' CONTEXT: referenced column: col5 WARNING: Truncated incorrect double value: '1985-09-01 07:59:59' CONTEXT: referenced column: col5 WARNING: Truncated incorrect double value: '1985-09-01 07:59:59' CONTEXT: referenced column: col5 WARNING: Incorrect datetime value: '3991' CONTEXT: referenced column: col5 col5 ------ (1 row) mysql> SELECT max(c4) <> 0 FROM ((SELECT 2.22 id, '2006-04-27 20:19:02.132' c4)) tb_1; +--------------+ | max(c4) <> 0 | +--------------+ | 1 | +--------------+ 1 row in set (0.00 sec) mysql> SELECT sum(c4) <> 0 FROM ((SELECT 2.22 id, '2006-04-27 20:19:02.132' c4)) tb_1; +--------------+ | sum(c4) <> 0 | +--------------+ | 1 | +--------------+ 1 row in set, 1 warning (0.00 sec) mysql> SHOW warnings; +---------+------+-------------------------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: '2006-04-27 20:19:02.132' | +---------+------+-------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT (SELECT max(c4) f5 FROM ((SELECT 2.22 id, '2006-04-27 20:19:08.132' c4) UNION all (select 2.22 id, '1985-09-01 07:59:59' c4)) tb_1 -> WHERE exists (SELECT max(c4) FROM ((SELECT 2.22 id, '2006-04-27 20:19:08.132' c4) UNION all (SELECT 2.22 id, '1985-09-01 07:59:59' c4)) tb_2) -> GROUP BY id WITH rollup HAVING f5<>0 limit 0,1) + INTERVAL '33.22' SECOND_MICROSECOND col5; +----------------------------+ | col5 | +----------------------------+ | 2006-04-27 20:19:41.352000 | +----------------------------+ 1 row in set (0.00 sec) mysql> SELECT (SELECT sum(c4) f5 FROM ((SELECT 2.22 id, '2006-04-27 20:19:08.132' c4) UNION all (SELECT 2.22 id, '1985-09-01 07:59:59' c4)) tb_1 -> WHERE exists (SELECT sum(c4) FROM ((SELECT 2.22 id, '2006-04-27 20:19:08.132' c4) UNION all (select 2.22 id, '1985-09-01 07:59:59' c4)) tb_2) -> GROUP BY id WITH rollup HAVING f5<>0 LIMIT 0,1) + INTERVAL '33.22' SECOND_MICROSECOND col5; +------+ | col5 | +------+ | NULL | +------+ 1 row in set, 7 warnings (0.01 sec) mysql> SHOW warnings; +---------+------+-------------------------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: '2006-04-27 20:19:08.132' | | Warning | 1292 | Truncated incorrect DOUBLE value: '1985-09-01 07:59:59' | | Warning | 1292 | Truncated incorrect DOUBLE value: '2006-04-27 20:19:08.132' | | Warning | 1292 | Truncated incorrect DOUBLE value: '2006-04-27 20:19:08.132' | | Warning | 1292 | Truncated incorrect DOUBLE value: '1985-09-01 07:59:59' | | Warning | 1292 | Truncated incorrect DOUBLE value: '1985-09-01 07:59:59' | | Warning | 1292 | Incorrect datetime value: '3991' | +---------+------+-------------------------------------------------------------+ 7 rows in set (0.00 sec)
Differences in Explicit Type Conversion
- In GaussDB, the conversion rules for each target type are used. In MySQL, C++ polymorphic overloading functions are used, causing inconsistent behavior in nesting scenarios.
Example:
m_db=# SELECT CAST(GREATEST(date'2023-01-01','2023-01-01') AS SIGNED); WARNING: Truncated incorrect INTEGER value: '2023-01-01' CONTEXT: referenced column: cast cast ------ 2023 (1 row) mysql> SELECT CAST(GREATEST(date'2023-01-01','2023-01-01') AS SIGNED); +---------------------------------------------------------+ | CAST(GREATEST(date'2023-01-01','2023-01-01') AS SIGNED) | +---------------------------------------------------------+ | 20230101 | +---------------------------------------------------------+
- In GaussDB, the BLOB, TINYBLOB, MEDIUMBLOB, LONGBLOB, BINARY, VARBINARY, BIT, and YEAR types are explicitly converted to the JSON type. The result is different from that in MySQL.
m_db=# CREATE TABLE test_blob (c1 BLOB, c2 TINYBLOB, c3 MEDIUMBLOB, c4 LONGBLOB, c5 BINARY(32), c6 VARBINARY(100), c7 BIT(64), c8 YEAR); CREATE TABLE m_db=# INSERT INTO test_blob VALUES('[1, "json"]', 'true', 'abc', '{"jsnid": 1, "tag": "ab"}', '[1, "json"]', '{"jsnid": 1, "tag": "ab"}', '20', '2020'); INSERT 0 1 m_db=# SELECT CAST(c1 AS JSON), CAST(c2 AS JSON), CAST(c3 AS JSON), CAST(c4 AS JSON), CAST(c5 AS JSON), CAST(c6 AS JSON), CAST(c7 AS JSON), CAST(c8 AS JSON) FROM test_blob; CAST | CAST | CAST | CAST | CAST | CAST | CAST | CAST -----------------+--------+-------+-----------------------------------+--------------------------------------+-----------------------------------+------+-------- "[1, \"json\"]" | "true" | "abc" | "{\"jsnid\": 1, \"tag\": \"ab\"}" | "[1, \"json\"] " | "{\"jsnid\": 1, \"tag\": \"ab\"}" | "20" | "2020" (1 row) mysql> CREATE TABLE test_blob (c1 BLOB, c2 TINYBLOB, c3 MEDIUMBLOB, c4 LONGBLOB, c5 BINARY(32), c6 VARBINARY(100), c7 BIT(64), c8 YEAR); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO test_blob VALUES('[1, "json"]', 'true', 'abc', '{"jsnid": 1, "tag": "ab"}', '[1, "json"]', '{"jsnid": 1, "tag": "ab"}', '20', '2020'); Query OK, 1 row affected (0.00 sec) mysql> SELECT CAST(c1 AS JSON), CAST(c2 AS JSON), CAST(c3 AS JSON), CAST(c4 AS JSON), CAST(c5 AS JSON), CAST(c6 AS JSON), CAST(c7 AS JSON), CAST(c8 AS JSON) FROM test_blob; +-----------------------------------+---------------------------+-----------------------+-------------------------------------------------------+---------------------------------------------------------------+------------------------------------------------------+------------------------------+--------------------------+ | CAST(c1 AS JSON) | CAST(c2 AS JSON) | CAST(c3 AS JSON) | CAST(c4 AS JSON) | CAST(c5 AS JSON) | CAST(c6 AS JSON) | CAST(c7 AS JSON) | CAST(c8 AS JSON) | +-----------------------------------+---------------------------+-----------------------+-------------------------------------------------------+---------------------------------------------------------------+------------------------------------------------------+------------------------------+--------------------------+ | "base64:type252:WzEsICJqc29uIl0=" | "base64:type249:dHJ1ZQ==" | "base64:type250:YWJj" | "base64:type251:eyJqc25pZCI6IDEsICJ0YWciOiAiYWIifQ==" | "base64:type254:WzEsICJqc29uIl0AAAAAAAAAAAAAAAAAAAAAAAAAAAA=" | "base64:type15:eyJqc25pZCI6IDEsICJ0YWciOiAiYWIifQ==" | "base64:type16:AAAAAAAAMjA=" | "base64:type13:MjAyMA==" | +-----------------------------------+---------------------------+-----------------------+-------------------------------------------------------+---------------------------------------------------------------+------------------------------------------------------+------------------------------+--------------------------+ 1 row in set (0.00 sec)
- When the converted JSON data type is used for precision calculation, the precision of GaussDB is the same as that of the JSON table, which is different from that of MySQL 5.7 but the same as that of MySQL 8.0.
test=# drop table tt01; DROP TABLE test=# create table tt01 as select -cast('98.7654321' as json) as c1; INSERT 0 1 test=# desc tt01; Field | Type | Null | Key | Default | Extra -------+--------+------+-----+---------+------- c1 | double | YES | | | (1 row) test=# select * from tt01; c1 ------------- -98.7654321 (1 row) mysql> select version(); +------------------+ | version() | +------------------+ | 5.7.44-debug-log | +------------------+ 1 row in set (0.00 sec) mysql> drop table tt01; Query OK, 0 rows affected (0.02 sec) mysql> create table tt01 as select -cast('98.7654321' as json) as c1; Query OK, 1 row affected (0.03 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> desc tt01; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | c1 | double(17,0) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> select * from tt01; +------+ | c1 | +------+ | -99 | +------+ 1 row in set (0.00 sec) mysql> select version(); +--------------+ | version() | +--------------+ | 8.0.36-debug | +--------------+ 1 row in set (0.00 sec) mysql> drop table tt01; Query OK, 0 rows affected (0.05 sec) mysql> create table tt01 as select -cast('98.7654321' as json) as c1; Query OK, 1 row affected (0.12 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> desc tt01; +-------+--------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------+------+-----+---------+-------+ | c1 | double | YES | | NULL | | +-------+--------+------+-----+---------+-------+ 1 row in set (0.01 sec) mysql> select * from tt01; +-------------+ | c1 | +-------------+ | -98.7654321 | +-------------+ 1 row in set (0.00 sec)
Differences Between UNION, CASE, and Related Structures
- In MySQL, POLYGON+NULL, POINT+NULL, and POLYGON+POINT return the GEOMETRY type. They are not involved in GaussDB and considered as errors.
- The SET and ENUM types are not supported currently and are considered as errors.
- For UNION or UNION ALL that combines the JSON and binary types (BINARY, VARBINARY, TINYBLOB, BLOB, MEDIUMBLOB, and LONGBLOB), the LONGBLOB type is returned in MySQL and the JSON type is returned in GaussDB. In addition, binary types (BINARY, VARBINARY, TINYBLOB, BLOB, MEDIUMBLOB, and LONGBLOB) can be implicitly converted to JSON.
- If m_format_behavior_compat_options is not set to enable_precision_decimal, when the constant type is aggregated with other types, the precision of the output type is the precision of other types. For example, the precision of the result of "select "helloworld" union select p from t;" is the precision of attribute p.
- If m_format_behavior_compat_options is not set to enable_precision_decimal, when fixed-point constants and types without precision constraints (non-string types such as int, bool, and year, and the fixed-point type of aggregation result type) are aggregated, the precision constraint is output based on the default precision 31 of fixed-point numbers.
- Differences in merge rules:
MySQL 5.7 has some improper type derivation. For example, the VARBINARY type is derived from the BIT type and integer/YEAR type, and the UNSIGNED type is derived from the UNSIGNED type and non-UNSIGNED type. In addition, the aggregation results of CASE WHEN and UNION are different. If the type derivation result is too small, data overflow may occur. The preceding issues have been resolved in MySQL 8.0. Therefore, the merge rule in MySQL 8.0 prevails.
- In MySQL, BINARY and CHAR use different padding characters. BINARY is padded with '\0', and CHAR is padded with spaces. In GaussDB, BINARY and CHAR are padded with spaces.
- In the precision transfer scenario, when the CASE WHEN statement is used, type conversion and precision recalculation are performed. As a result, trailing zeros may be inconsistent with those in the output result of the CASE clause.
- More trailing zeros: The CASE node calculates the precision of the CASE node based on the precision of the CASE clause. If the precision of the THEN clause is lower than that of the CASE node, zeros are added to the end of the CASE node.
- Less trailing zeros: When multiple layers of CASE WHEN are nested, only the precision of the inner CASE is retained after the inner CASE performs type conversion. The outer CASE cannot obtain the precision information of the THEN clause. Therefore, the outer CASE performs type conversion based on the precision calculated according to that of the inner CASE. When the outer CASE clause is converted, if the precision of the inner CASE clause is less than that of the THEN clause, there will be less trailing zeros.
Example:
- -- Trailing zeros
-- More trailing zeros m_db=# SELECT 15.6 AS result; result -------- 15.6 (1 row) m_db=# SELECT CASE WHEN 1 < 2 THEN 15.6 ELSE 23.578 END AS result; result -------- 15.600 (1 row) m_db=# SELECT greatest(12, 3.4, 15.6) AS result; result -------- 15.6 (1 row) m_db=# SELECT CASE WHEN 1 < 2 THEN greatest(12, 3.4, 15.6) ELSE greatest(123.4, 23.578, 36) END AS result; result -------- 15.600 (1 row) -- Less trailing zeros m_db=# create table t1 as select (false/-timestamp '2008-12-31 23:59:59.678') as result; INSERT 0 1 m_db=# desc t1; Field | Type | Null | Key | Default | Extra --------+-------------+------+-----+---------+------- result | double(8,7) | YES | | | (1 row) m_db=# select (false/-timestamp '2008-12-31 23:59:59.678') as result; result ------------ -0.0000000 (1 row) m_db=# create table t1 as select (case when 1<2 then false/-timestamp '2008-12-31 23:59:59.678' else 0016.11e3/'22.2' end) as result; INSERT 0 1 m_db=# desc t1; Field | Type | Null | Key | Default | Extra --------+--------+------+-----+---------+------- result | double | YES | | | (1 row) m_db=# select (case when 1<2 then false/-timestamp '2008-12-31 23:59:59.678' else 0016.11e3/'22.2' end) as result; result -------- -0 (1 row) m_db=# drop table t1; DROP TABLE m_db=# create table t1 as select (case when 1+1=2 then case when 1<2 then false/-timestamp '2008-12-31 23:59:59.678' else 0016.11e3/'22.2' end else 'test' end) as result; INSERT 0 1 m_db=# desc t1; Field | Type | Null | Key | Default | Extra --------+-------------+------+-----+---------+------- result | varchar(23) | YES | | | (1 row) m_db=# select (case when 1+1=2 then case when 1<2 then false/-timestamp '2008-12-31 23:59:59.678' else 0016.11e3/'22.2' end else 'test' end) as result; result -------- -0 (1 row)
- When the precision transfer parameter is enabled, set operations (UNION, MINUS, EXCEPT, and INTERSECT) are used. If the fields queried by the query statements involved in set operations are functions and expressions instead of directly using fields in the table, if the data type of the query result is INT or INT UNSIGNED, the return data type is different. In MySQL, the returned data type is BIGINT or BIGINT UNSIGNED. In GaussDB, the returned data type is INT/INT UNSIGNED.
-- Execution result in GaussDB m_db=# SET m_format_behavior_compat_options='select_column_name,enable_precision_decimal'; SET m_db=# DROP TABLE IF EXISTS t1,t2,ctas1,ctas2; DROP TABLE m_db=# CREATE TABLE t1(a INT, b INT); CREATE TABLE m_db=# CREATE TABLE t2(c INT UNSIGNED, d INT UNSIGNED); CREATE TABLE m_db=# CREATE TABLE ctas1 AS (SELECT a, ABS(a) FROM t1) UNION (SELECT b, ABS(b) FROM t1); INSERT 0 0 m_db=# DESC ctas1; Field | Type | Null | Key | Default | Extra --------+-------------+------+-----+---------+------- a | integer(11) | YES | | | ABS(a) | integer(11) | YES | | | (2 rows) m_db=# CREATE TABLE ctas2 AS (SELECT c, ABS(c) FROM t2) UNION (SELECT d, ABS(d) FROM t2); INSERT 0 0 m_db=# DESC ctas2; Field | Type | Null | Key | Default | Extra --------+----------------------+------+-----+---------+------- c | integer(11) unsigned | YES | | | ABS(c) | integer(11) unsigned | YES | | | (2 rows) m_db=# DROP TABLE IF EXISTS t1,t2,ctas1,ctas2; DROP TABLE -- Execution result in MySQL mysql> DROP TABLE IF EXISTS t1,t2,ctas1,ctas2; Query OK, 0 rows affected, 4 warnings (0.00 sec) mysql> CREATE TABLE t1(a INT, b INT); Query OK, 0 rows affected (0.05 sec) mysql> CREATE TABLE t2(c INT UNSIGNED, d INT UNSIGNED); Query OK, 0 rows affected (0.03 sec) mysql> CREATE TABLE ctas1 AS (SELECT a, ABS(a) FROM t1) UNION (SELECT b, ABS(b) FROM t1); Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC ctas1; +--------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+------------+------+-----+---------+-------+ | a | int(11) | YES | | NULL | | | ABS(a) | bigint(20) | YES | | NULL | | +--------+------------+------+-----+---------+-------+ 2 rows in set (0.01 sec) mysql> CREATE TABLE ctas2 AS (SELECT c, ABS(c) FROM t2) UNION (SELECT d, ABS(d) FROM t2); Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC ctas2; +--------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------------------+------+-----+---------+-------+ | c | int(11) unsigned | YES | | NULL | | | ABS(c) | bigint(20) unsigned | YES | | NULL | | +--------+---------------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql> DROP TABLE IF EXISTS t1,t2,ctas1,ctas2; Query OK, 0 rows affected (0.07 sec)
- When precision transfer is enabled, the result in the CASE WHEN nesting scenario is different from that in MySQL. In MySQL, a type can be directly converted despite multiple layers. However, in GaussDB, the result precision is determined and the type is converted layer by layer. As a result, the decimal places or carry of the result may be inconsistent with that of MySQL.
-- GaussDB: m_db=# SET m_format_behavior_compat_options='enable_precision_decimal'; SET m_db=# SELECT (CASE WHEN 1+1=3 THEN 'test' ELSE CASE WHEN 1>2 THEN '-1.5'%06.6600e1 ELSE -TIME '10:10:10.456'%2.2 END END) RES; res --------------------- -1.8559999999974321 (1 row) -- MySQL: mysql> SELECT (CASE WHEN 1+1=3 THEN 'test' ELSE CASE WHEN 1>2 THEN '-1.5'%06.6600e1 ELSE -TIME '10:10:10.456'%2.2 END END) RES; +--------+ | res | +--------+ | -1.856 | +--------+ 1 row in set (0.00 sec)
- If operators of the int type (such as ~, &, |, <<, and >>) are nested in a CASE WHEN statement and the return type of the CASE WHEN statement is VARCHAR, truncation may occur in actual situations (you can determine whether truncation will occur by analyzing the original table data). In GaussDB, an error will be reported (a warning is reported when SELECT is used for query and an error is reported when a table is created). MySQL does not report an error. (If you want to CREATE TABLE in GaussDB, you can set sql_mode to disable the strict mode.)
-- GaussDB: m_db=# create table t_base (num_var numeric(20, 10), time_var time(6)); CREATE TABLE m_db=# insert into t_base values ('-2514.1441000000','12:10:10.125000'),('-417.2147000000',' 11:30:25.258000'); INSERT 0 2 m_db=# select (~(case when false then time_var else num_var end)) as res2 from t_base; WARNING: Truncated incorrect INTEGER value: '-2514.1441000000' CONTEXT: referenced column: res2 WARNING: Truncated incorrect INTEGER value: '-417.2147000000' CONTEXT: referenced column: res2 res2 ------ 2513 416 (2 rows) m_db=# create table t1 as select (~(case when false then time_var else num_var end)) as res2 from t_base; ERROR: Truncated incorrect INTEGER value: '-2514.1441000000' CONTEXT: referenced column: res2 m_db=# set sql_mode=""; SET m_db=# create table t1 as select (~(case when false then time_var else num_var end)) as res2 from t_base; WARNING: Truncated incorrect INTEGER value: '-2514.1441000000' CONTEXT: referenced column: res2 WARNING: Truncated incorrect INTEGER value: '-417.2147000000' CONTEXT: referenced column: res2 INSERT 0 2 m_db=# desc t1; Field | Type | Null | Key | Default | Extra -------+---------------------+------+-----+---------+------- res2 | bigint(21) unsigned | YES | | | (1 row) -- Mysql: mysql> create table t_base (num_var numeric(20, 10), time_var time(6)); Query OK, 0 rows affected (0.01 sec) mysql> insert into t_base values ('-2514.1441000000','12:10:10.125000'),('-417.2147000000',' 11:30:25.258000'); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select (~(case when false then time_var else num_var end)) as res2 from t_base; +------+ | res2 | +------+ | 2513 | | 416 | +------+ 2 rows in set (0.00 sec) mysql> create table t1 as select (~(case when false then time_var else num_var end)) as res2 from t_base; Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> desc t1; +-------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------------+------+-----+---------+-------+ | res2 | bigint(21) unsigned | YES | | NULL | | +-------+---------------------+------+-----+---------+-------+ 1 row in set (0.00 sec)
- When precision transfer is enabled, if constants are nested in CREATE VIEW AS SELECT CASE WHEN and SELECT CASE WHEN statements (including constant calculation and nesting functions with constants), the values in GaussDB are the same. In MySQL, some precision may be lost in SELECT CASE WHEN statements.
-- GaussDB: m_db=# CREATE OR REPLACE VIEW test_view AS m_db-# SELECT (CASE WHEN 1<2 THEN 3.33/4.46 ELSE 003.3630/002.2600 END) c1,(CASE WHEN 1>2 THEN IFNULL(null,3.363/2.2) ELSE NULLIF(3.33/4.46,3.363/2.2) END) c2; CREATE VIEW m_db=# SELECT * FROM test_view; c1 | c2 ------------+----------- 0.74663677 | 0.7466368 (1 row) m_db=# SELECT (CASE WHEN 1<2 THEN 3.33/4.46 ELSE 003.3630/002.2600 END) c1,(CASE WHEN 1>2 THEN IFNULL(null,3.363/2.2) ELSE NULLIF(3.33/4.46,3.363/2.2) END) c2; c1 | c2 ------------+----------- 0.74663677 | 0.7466368 (1 row) -- MySQL: mysql> CREATE OR REPLACE VIEW test_view AS -> SELECT (CASE WHEN 1<2 THEN 3.33/4.46 ELSE 003.3630/002.2600 END) c1,(CASE WHEN 1>2 THEN IFNULL(null,3.363/2.2) ELSE NULLIF(3.33/4.46,3.363/2.2) END) c2; Query OK, 0 rows affected (0.00 sec) mysql> SELECT * FROM test_view; +------------+-----------+ | c1 | c2 | +------------+-----------+ | 0.74663677 | 0.7466368 | +------------+-----------+ 1 row in set (0.00 sec) mysql> SELECT (CASE WHEN 1<2 THEN 3.33/4.46 ELSE 003.3630/002.2600 END) c1,(CASE WHEN 1>2 THEN IFNULL(null,3.363/2.2) ELSE NULLIF(3.33/4.46,3.363/2.2) END) c2; +----------+----------+ | c1 | c2 | +----------+----------+ | 0.746637 | 0.746637 | +----------+----------+ 1 row in set (0.00 sec)
- When precision transfer is enabled, an M-compatible database supports table creation using the UNION/CASE WHEN statement. However, due to different architectures, the database does not ensure that all types of created tables are the same as those of MySQL 8.0. The scenarios where character strings and binary-related types are returned and some function nesting scenarios in MySQL are different from those in GaussDB.
-- GaussDB: m_db=# CREATE TABLE IF NOT EXISTS testcase (id int, col_text1 tinytext, col_text2 text, col_blob1 tinyblob, col_blob2 blob, col_blob3 mediumblob, col_blob4 longblob); CREATE TABLE m_db=# CREATE TABLE t1 AS SELECT id,(CASE WHEN id=2 THEN col_text1 ELSE 'test' END) f35, (CASE WHEN id=2 THEN col_text2 ELSE 'test' END) f36,(CASE WHEN id=2 THEN col_blob1 ELSE 'test' END) f41, (CASE WHEN id=2 THEN col_blob2 ELSE 'test' END) f42, (CASE WHEN id=2 THEN col_blob3 ELSE 'test' END) f43, (CASE WHEN id=2 THEN col_blob4 ELSE 'test' END) f44 FROM testcase; INSERT 0 0 m_db=# DESC t1; Field | Type | Null | Key | Default | Extra -------+----------------+------+-----+---------+------- id | integer(11) | YES | | | f35 | varchar(255) | YES | | | f36 | mediumtext | YES | | | f41 | varbinary(255) | YES | | | f42 | blob | YES | | | f43 | mediumblob | YES | | | f44 | longblob | YES | | | (7 rows) m_db=# CREATE TABLE IF NOT EXISTS testtext1 (col10 text); CREATE TABLE m_db=# CREATE TABLE IF NOT EXISTS testtext2 (col10 text); CREATE TABLE m_db=# CREATE TABLE testtext AS (select * from testtext1) UNION (select * from testtext2); CREATE TABLE m_db=# desc testtext; m_db=# Field | Type | Null | Key | Default | Extra -------+------+------+-----+---------+------- col10 | text | YES | | | (1 row) m_db=# create table testchar as select (select lcase(-6873.4354)) a, (select sec_to_time(-485769.567)) b union all select (select bin(-58768923.21321)), (select asin(-0.7237465)); INSERT 0 2 m_db=# desc testchar; Field | Type | Null | Key | Default | Extra -------+-------------+------+-----+---------+------- a | text | YES | | | b | varchar(23) | YES | | | (2 rows) m_db=# CREATE TABLE test_func (col_text char(29)); CREATE TABLE m_db=# CREATE TABLE test1 AS SELECT * FROM ( SELECT GREATEST(2.22, col_text) f1, LEAST(2.22, col_text) f2, ADDDATE(col_text, INTERVAL '1.28.16.31' HOUR_MICROSECOND) f3, SUBDATE(col_text, INTERVAL '39.49.15' MINUTE_MICROSECOND) f4, DATE_SUB(col_text, INTERVAL '45' MICROSECOND) f5, DATE_ADD(col_text, INTERVAL '12.00.00.00.001' DAY_MICROSECOND) f6, ADDTIME(col_text, '8:20:20.3554') f7, SUBTIME(col_text, '8:20:20.3554') f8 from test_func) t1 UNION ALL SELECT * FROM ( SELECT GREATEST(2.22, col_text) f1, LEAST(2.22, col_text) f2, ADDDATE(col_text, INTERVAL '1.28.16.31' HOUR_MICROSECOND) f3, SUBDATE(col_text, INTERVAL '39.49.15' MINUTE_MICROSECOND) f4, DATE_SUB(col_text, INTERVAL '45' MICROSECOND) f5, DATE_ADD(col_text, INTERVAL '12.00.00.00.001' DAY_MICROSECOND) f6, ADDTIME(col_text, '8:20:20.3554') f7, SUBTIME(col_text, '8:20:20.3554') f8 from test_func) t2; INSERT 0 0 m_db=# DESC test1; Field | Type | Null | Key | Default | Extra -------+-------------+------+-----+---------+------- f1 | double | YES | | | f2 | double | YES | | | f3 | varchar(29) | YES | | | f4 | varchar(29) | YES | | | f5 | varchar(29) | YES | | | f6 | varchar(29) | YES | | | f7 | varchar(29) | YES | | | f8 | varchar(29) | YES | | | (8 rows) -- MySQL: mysql> CREATE TABLE IF NOT EXISTS testcase (id int, col_text1 tinytext, col_text2 text, col_blob1 tinyblob, col_blob2 blob, col_blob3 mediumblob, col_blob4 longblob); Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE t1 AS SELECT id,(CASE WHEN id=2 THEN col_text1 ELSE 'test' END) f35, (CASE WHEN id=2 THEN col_text2 ELSE 'test' END) f36,(CASE WHEN id=2 THEN col_blob1 ELSE 'test' END) f41, (CASE WHEN id=2 THEN col_blob2 ELSE 'test' END) f42, (CASE WHEN id=2 THEN col_blob3 else 'test' END) f43, (CASE WHEN id=2 THEN col_blob4 ELSE 'test' END) f44 FROM testcase; Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC t1; +-------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+------+-----+---------+-------+ | id | int | YES | | NULL | | | f35 | longtext | YES | | NULL | | | f36 | longtext | YES | | NULL | | | f41 | longblob | YES | | NULL | | | f42 | longblob | YES | | NULL | | | f43 | longblob | YES | | NULL | | | f44 | longblob | YES | | NULL | | +-------+----------+------+-----+---------+-------+ 7 rows in set (0.00 sec) mysql> CREATE TABLE IF NOT EXISTS testtext1 (col10 text); Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE IF NOT EXISTS testtext2 (col10 text); Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE testtext AS (select * from testtext1) UNION (select * from testtext2); Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> desc testtext; +-------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+---------+-------+ | col10 | mediumtext | YES | | NULL | | +-------+------------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> set sql_mode=''; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> create table testchar as select (select lcase(-6873.4354)) a, (select sec_to_time(-485769.567)) b union all select (select bin(-58768923.21321)), (select asin(-0.7237465)); Query OK, 2 rows affected, 1 warning (0.02 sec) Records: 2 Duplicates: 0 Warnings: 1 mysql> desc testchar; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | a | varchar(21) | YES | | NULL | | | b | varchar(53) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql> CREATE TABLE test_func (col_text char(29)); Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE test1 AS SELECT * FROM ( SELECT -> GREATEST(2.22, col_text) f1, LEAST(2.22, col_text) f2, -> ADDDATE(col_text, INTERVAL '1.28.16.31' HOUR_MICROSECOND) f3, -> SUBDATE(col_text, INTERVAL '39.49.15' MINUTE_MICROSECOND) f4, -> DATE_SUB(col_text, INTERVAL '45' MICROSECOND) f5, -> DATE_ADD(col_text, INTERVAL '12.00.00.00.001' DAY_MICROSECOND) f6, -> ADDTIME(col_text, '8:20:20.3554') f7, -> SUBTIME(col_text, '8:20:20.3554') f8 from test_func) t1 -> UNION ALL -> SELECT * FROM ( SELECT -> GREATEST(2.22, col_text) f1, LEAST(2.22, col_text) f2, -> ADDDATE(col_text, INTERVAL '1.28.16.31' HOUR_MICROSECOND) f3, -> SUBDATE(col_text, INTERVAL '39.49.15' MINUTE_MICROSECOND) f4, -> DATE_SUB(col_text, INTERVAL '45' MICROSECOND) f5, -> DATE_ADD(col_text, INTERVAL '12.00.00.00.001' DAY_MICROSECOND) f6, -> ADDTIME(col_text, '8:20:20.3554') f7, -> SUBTIME(col_text, '8:20:20.3554') f8 from test_func) t2; -> SUBTIME(col_text, '8:20:20.3554') f8 from test_func) t1 -> UNION ALL -> SELECT * FROM ( SELECT -> GREATEST(2.22, col_text) f1, LEAST(2.22, col_text) f2, -> ADDDATE(col_text, INTERVAL '1.28.16.31' HOUR_MICROSECOND) f3, -> SUBDATE(col_text, INTERVAL '39.49.15' MINUTE_MICROSECOND) f4, -> DATE_SUB(col_text, INTERVAL '45' MICROSECOND) f5, -> DATE_ADD(col_text, INTERVAL '12.00.00.00.001' DAY_MICROSECOND) f6, -> ADDTIME(col_text, '8:20:20.3554') f7, -> SUBTIME(col_text, '8:20:20.3554') f8 from test_func) t2; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> mysql> DESC test1; +-------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+---------+-------+ | f1 | binary(23) | YES | | NULL | | | f2 | binary(23) | YES | | NULL | | | f3 | char(29) | YES | | NULL | | | f4 | char(29) | YES | | NULL | | | f5 | char(29) | YES | | NULL | | | f6 | char(29) | YES | | NULL | | | f7 | char(29) | YES | | NULL | | | f8 | char(29) | YES | | NULL | | +-------+------------+------+-----+---------+-------+ 8 rows in set (0.01 sec)
- In the scenario where precision transfer is enabled, for the CREATE TABLE AS SELECT A % (CASE WHEN) statement, if A is of the DECIMAL type and the result of CASE WHEN is of the date type (DATE, TIME, or DATETIME), the two databases are different in the precision obtained by performing the modulo operation (%). The precision obtained by GaussDB is the same as that obtained by performing modulo operations on the decimal type and date type.
-- GaussDB: (decimal % date type case) and (numeric%date) have the same precision, that is, decimal(24,10). m_db=# SET m_format_behavior_compat_options = 'enable_precision_decimal'; SET m_db=# DROP TABLE IF EXISTS t1, t2; DROP TABLE m_db=# CREATE TABLE t1 (num_var numeric(20, 10), date_var date, time_var time(6), dt_var datetime(6)); CREATE TABLE m_db=# CREATE TABLE t2 AS SELECT num_var % (CASE WHEN true THEN dt_var ELSE dt_var END) AS res1 FROM t1; INSERT 0 0 m_db=# DESC t2; Field | Type | Null | Key | Default | Extra -------+----------------+------+-----+---------+------- res1 | decimal(24,10) | YES | | | (1 row) m_db=# DROP TABLE IF EXISTS t1, t2; DROP TABLE m_db=# CREATE TABLE t1 (num_var numeric(20, 10), date_var date, time_var time(6), dt_var datetime(6)); CREATE TABLE m_db=# CREATE TABLE t2 AS SELECT num_var % dt_var AS RES1 from t1; INSERT 0 0 m_db=# DESC t2; Field | Type | Null | Key | Default | Extra -------+----------------+------+-----+---------+------- res1 | decimal(24,10) | YES | | | (1 row) -- MySQL 5.7: The precision is different. The precision of (decimal % date type case) is decimal(65,10), and that of (numeric%date) is decimal(24,10). mysql> DROP TABLE IF EXISTS t1, t2; Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE t1 (num_var numeric(20, 10), date_var date, time_var time(6), dt_var datetime(6)); Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE t2 AS SELECT num_var % (CASE WHEN true THEN dt_var ELSE dt_var END) AS res1 FROM t1; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC t2; +-------+----------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------------+------+-----+---------+-------+ | res1 | decimal(65,10) | YES | | NULL | | +-------+----------------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> DROP TABLE IF EXISTS t1, t2; Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE t1 (num_var numeric(20, 10), date_var date, time_var time(6), dt_var datetime(6)); Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE t2 AS SELECT num_var % dt_var AS res1 FROM t1; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC t2; +-------+----------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------------+------+-----+---------+-------+ | res1 | decimal(24,10) | YES | | NULL | | +-------+----------------+------+-----+---------+-------+ 1 row in set (0.00 sec) -- MySQL 8.0: The precision of (decimal % date type case) and (numeric%date) is decimal(20,10). mysql> DROP TABLE IF EXISTS t1, t2; Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE t1 (num_var numeric(20, 10), date_var date, time_var time(6), dt_var datetime(6)); Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE t2 AS SELECT num_var % (CASE WHEN true THEN dt_var ELSE dt_var END) AS res1 FROM t1; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC t2; +-------+----------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------------+------+-----+---------+-------+ | res1 | decimal(20,10) | YES | | NULL | | +-------+----------------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> DROP TABLE IF EXISTS t1, t2; Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE t1 (num_var numeric(20, 10), date_var date, time_var time(6), dt_var datetime(6)); Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE t2 AS SELECT num_var % dt_var AS res1 FROM t1; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC t2; +-------+----------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------------+------+-----+---------+-------+ | res1 | decimal(20,10) | YES | | NULL | | +-------+----------------+------+-----+---------+-------+ 1 row in set (0.00 sec)
- When precision transfer is enabled and UNION is used, if the query statement participates in set calculation, the queried column is a constant, and the query result data type is INT or DECIMAL, the returned precision is different. In MySQL 5.7, the returned precision is related to the left/right sequence of UNION. In MySQL 8.0 and GaussDB, they are irrelevant.
-- GaussDB: m_db=# CREATE TABLE t1 AS (SELECT -23.45 c2) UNION ALL (SELECT -45.678 c2); INSERT 0 2 m_db=# DESC t1; Field | Type | Null | Key | Default | Extra -------+--------------+------+-----+---------+------- c2 | decimal(5,3) | YES | | | (1 row) m_db=# CREATE TABLE t2 AS (SELECT -45.678 c2) UNION ALL (SELECT -23.45 c2); INSERT 0 2 m_db=# DESC t2; Field | Type | Null | Key | Default | Extra -------+--------------+------+-----+---------+------- c2 | decimal(5,3) | YES | | | (1 row) -- Mysql5.7: mysql> CREATE TABLE t1 AS (SELECT -23.45 c2) UNION ALL (SELECT -45.678 c2); Query OK, 2 rows affected (2.28 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> DESC t1; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | c2 | decimal(6,3) | NO | | 0.000 | | +-------+--------------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> CREATE TABLE t2 AS (SELECT -45.678 c2) UNION ALL (SELECT -23.45 c2); Query OK, 2 rows affected (2.22 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> DESC t2; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | c2 | decimal(5,3) | NO | | 0.000 | | +-------+--------------+------+-----+---------+-------+ 1 row in set (0.00 sec) -- Mysql8.0: mysql> CREATE TABLE t1 AS (SELECT -23.45 c2) UNION ALL (SELECT -45.678 c2); Query OK, 2 rows affected (0.02 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> DESC t1; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | c2 | decimal(5,3) | NO | | 0.000 | | +-------+--------------+------+-----+---------+-------+ 1 row in set (0.03 sec) mysql> CREATE TABLE t2 AS (SELECT -45.678 c2) UNION ALL (SELECT -23.45 c2); Query OK, 2 rows affected (0.03 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> DESC t2; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | c2 | decimal(5,3) | NO | | 0.000 | | +-------+--------------+------+-----+---------+-------+ 1 row in set (0.02 sec)
Differences in Double Colon Conversion
In GaussDB, if you use double colons to convert input parameters of a function to another type, the result may be unexpected. In MySQL, double colons do not take effect.
m_db=# SELECT POW("12"::VARBINARY,"12"::VARBINARY); ERROR: value out of range: overflow CONTEXT: referenced column: pow varbinary col m_db=# CREATE TABLE test_varbinary ( A VARBINARY(10) ); m_db=# INSERT INTO test_varbinary VALUES ('12'); m_db=# SELECT POW(A, A) FROM test_varbinary; pow --------------- 8916100448256 (1 row)
Differences in Decimal Types
m_db=# create table test as select 004.01 col1; INSERT 0 1 m_db=# desc test; Field | Type | Null | Key | Default | Extra -------+--------------+------+-----+---------+------- col1 | decimal(3,2) | YES | | | (1 row) mysql 5.7 mysql> create table test as select 004.01 col1; Query OK, 1 row affected (0.02 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> desc test; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | col1 | decimal(5,2) | NO | | 0.00 | | +-------+--------------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql 8.0 mysql> create table test as select 004.01 col1; Query OK, 1 row affected (0.23 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> desc test; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | col1 | decimal(4,2) | NO | | 0.00 | | +-------+--------------+------+-----+---------+-------+ 1 row in set (0.01 sec)
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot