- 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
- GaussDB Application Development Guide
- Development Specifications
-
Development Based on JDBC
- Development Process
- Development Process
-
Typical Application Development Examples
- Configuring Connection Parameters in Different Scenarios
- Creating and Calling a Stored Procedure
- Obtaining the Return Value of a Function
- Batch Query
- Using the Streaming Read Function
- SQL Retry at an Application Layer
- Logical Replication
- Monitoring Database Connections
- Using the Array Type
- Using the Struct Type
-
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 Process
- Typical Application Development Examples
- libpq Interface Reference
- 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
- Appendix
-
SQL Optimization
- Query Execution Process
- Introduction to the SQL Execution Plan
- Optimization Process
- Updating Statistics
- Reviewing and Modifying a Table Definition
- Reviewing the Plan Change Scenario
- Typical SQL Optimization Methods
- Experience in Rewriting SQL Statements
- Configuring Key Parameters for SQL Optimization
-
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
- Plan Hint Cases
- 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
- Hints for Specifying Whether to Use Partition-wise Scan Optimization
- Checking the Implicit Conversion Performance
- Using the Vectorized Executor for Tuning
- 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
- Case: Adjusting the GUC Parameter costbased_rewrite_rule for Cost-based Query Rewriting
- Case: Using Global Secondary Indexes to Accelerate Query
-
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 Types
- XMLType
- ACLItem Type
- Array Types
- Vector Data Types
- Data Types Supported by the Vectorized Executor
-
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
- Bucket System Functions
- Undo System Functions
- HTAP System Functions
- VACUUM 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
- Hierarchical Recursion Query 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
- Global PL/SQL Cache Functions
- UUID Functions
- SQL Statement Concurrency Control Function
- Multi-Tenant Database Functions
- Global Temporary Table Functions
- 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
- Online DDL and Related Operations
-
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 FOREIGN TABLE
- ALTER FUNCTION
- ALTER GLOBAL CONFIGURATION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER MASKING POLICY
- ALTER MATERIALIZED VIEW
- ALTER NODE
- ALTER NODE GROUP
- 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 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 FOREIGN TABLE
- 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 PACKAGE
- 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 SLICEGROUP
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLESPACE
- CREATE TABLE AS
- CREATE TABLE PARTITION
- CREATE TABLE PARTITION AS
- 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 EXTENSION
- DROP FOREIGN DATA WRAPPER
- DROP FOREIGN TABLE
- 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 PACKAGE
- 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 SLICEGROUP
- 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
- Best Practices of SQL Queries
- Best Practices for Permission Configuration
- Best Practices for Data Skew Query
-
Best Practices for VACUUM
- VACUUM Parameters
-
FAQ
- Possible Causes of Data Table Bloat
- How Do I Estimate the Current Table or Database Space Bloat Ratio?
- How Do I Evaluate Whether the Current Table or Database Requires VACUUM?
- How Do I Estimate the VACUUM Cleanup Rate or How Long It Will Take?
- How Do I Locate Inaccurate Statistics Such as Number of Dead Rows in the Database?
-
Best Practices for Import and Export Using COPY
-
Typical Scenarios
- Using the Recommended CSV Format
- Importing and Exporting Data with Extreme Performance
- Exporting Files for Manual Parsing
- Importing and Exporting Data When Only the TEXT Format Is Available
- Importing and Exporting Data Files on a GSQL Client
- Importing and Exporting Data Through the JDBC Driver
- Importing Erroneous Data Through Error Tolerance
- Guide to Exporting Erroneous Data
- Guide to Importing Erroneous Data
-
Typical Scenarios
- Best Practices for Import and Export Using Tools
- User-defined Functions
-
Stored Procedures
- Overview
- Data Types
- Data Type Conversion
- Arrays, Collections, and Records
- DECLARE Syntax
- Basic Statements
- Dynamic Statements
- Control Statements
- Transaction Statements
- Other Statements
- Cursors
- Advanced Packages
- Retry Management
- PACKAGE
- Debugging
- Autonomous Transaction
-
System Catalogs and System Views
- Overview of System Catalogs and System Views
-
System Catalogs
- Partitioned Table
- Workload Management
- 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
- Logical Decoding
- Multi-Tenant Databases
-
Other System Catalogs
- GS_ASP
- PGXC_COPY_ERROR_LOG
- GS_DEPENDENCIES
- GS_DEPENDENCIES_OBJ
- GS_IMCV
- GS_GLOBAL_CONFIG
- GS_JOB_ATTRIBUTE
- GS_JOB_ARGUMENT
- GS_PACKAGE
- GS_PLAN_TRACE
- GS_POLICY_LABEL
- GS_RECYCLEBIN
- GS_SECURITY_LABEL
- GS_SLICEGROUP
- GS_SQL_PATCH
- GS_STATISTIC_EXT_HISTORY
- GS_STATISTIC_HISTORY
- GS_TABLESTATS_HISTORY
- GS_TS_DICT_DEFINITION
- 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_EXTENSION_DATA_SOURCE
- PG_FOREIGN_DATA_WRAPPER
- PG_FOREIGN_SERVER
- PG_FOREIGN_TABLE
- 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
- Workload Management
- 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
- GS_RLSPOLICIES
- PG_ROLES
- GS_ROLES
- PG_SECLABELS
- GS_SECLABELS
- PG_SHADOW
- GS_SHADOW
- PG_USER
- GS_USER
- PG_USER_MAPPINGS
- ROLE_ROLE_PRIVS
- ROLE_SYS_PRIVS
- ROLE_TAB_PRIVS
- Dynamic Data Masking
- DATABASE LINK
- Materialized Views
- Multi-Tenant Databases
- VACUUM
-
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_IMCU_SLOT_STATUS
- GS_IMCV_STATUS
- GS_LOGICALSTANDBY_SKIP
- GS_LOGICALSTANDBY_SKIP_TRANSACTION
- GS_LSC_MEMORY_DETAIL
- GS_MY_PLAN_TRACE
- GS_SESSION_ALL_SETTINGS
- GS_SQL_COUNT
- 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_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_GTT_STATS
- PG_GTT_RELSTATS
- PG_GTT_ATTACHED_PIDS
- 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_SESSION_IOSTAT
- PG_SETTINGS
- PG_SHARED_MEMORY_DETAIL
- PG_STATS
- 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_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
- GS_GTT_ATTACHED_PIDS
- GS_GLOBAL_GTT_ATTACHED_PIDS
- GS_GLOBAL_DIST_GTT_REMAIN_SESSIONS
-
Partitioned Table
-
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
- STATEMENT_IOSTAT_COMPLEX_RUNTIME
- LOCAL_ACTIVE_SESSION
- GLOBAL_ACTIVE_SESSION
- Transaction
-
Query
- STATEMENT
- SUMMARY_STATEMENT
- STATEMENT_COUNT
- GLOBAL_STATEMENT_COUNT
- SUMMARY_STATEMENT_COUNT
- GLOBAL_STATEMENT_COMPLEX_HISTORY
- GLOBAL_STATEMENT_COMPLEX_HISTORY_TABLE
- GLOBAL_STATEMENT_COMPLEX_RUNTIME
- STATEMENT_RESPONSETIME_PERCENTILE
- STATEMENT_WLMSTAT_COMPLEX_RUNTIME
- STATEMENT_HISTORY
- GLOBAL_SESSION_SQL_MEMORY
- SESSION_SQL_MEMORY
-
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
- Trace Function
- Deprecated
- 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
- DBE_PLDEVELOPER
-
Configuring GUC Parameters
- Viewing Parameters
- Setting Parameters
-
GUC Parameters
- GUC Parameter Usage
- File Location
- Connection and Authentication
- Resource Consumption
- Parallel Data Import and Export
- Write Ahead Log
- HA Replication
- Query Planning
- Error Reporting and Logging
- Alarm Reporting
- Statistics During the Database Running
- Workload Management
- 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
- Black Box Parameters
- Security Configuration
- HyperLogLog
- User-defined Functions
- Scheduled Jobs
- Thread Pool
- Backup and Restoration
- Undo
- DCF Parameters Settings
- Flashback
- Rollback Parameters
- AI Features
- Global SysCache Parameters
- Read Parameters of the Standby Node in a Distributed System
- Restoring Data on the Standby Node
- Creating an Index Online
- Online DDL Operations
- Data Lifecycle Management: OLTP Table Compression
- Vector Database Parameters
- Session-level Transaction Pushdown and Related Parameters
- Enhanced TOAST
- Global Temporary Table
- Reserved Parameters
-
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?
- What Are the Differences Between Unique Constraints and Unique Indexes?
- How Do I Create a Weak Password in GaussDB?
- What is Dirty Read, Phantom Read, and Non-repeatable Read?
- What Is MVCC?
- Which Date/Time Types Contain the Time Zone and Which Do Not?
- What Is the Difference Between count(*) and count(column)?
- What Is the Relationship Between an Empty String and NULL?
- What Are WALs and Log File Paths?
- What Are the Schemas, Users, and Roles in GaussDB?
- Does GaussDB Supports Dynamic Memory Management?
- What Is the Schema Starting with pg_temp or pg_toast_temp?
- What Are the Differences Between Functions and Stored Procedures?
- Why Can a User Log In to the Database After the CONNECT ON DATABASE Permission Is Granted to the REVOKE User?
- How Do I Improve the Efficiency when the Entire Table Is Associated with UPDATE?
- How Do I Ignore Case When Using LIKE for Fuzzy Search?
- After the String Processing Function Is Used, the Query Does Not Use the Index. What Should I Do?
- Why Cannot the Table Name or Column Name Be Identified During Query?
- If No Distribution Key Is Specified, How Will Data Be Stored?
- What Is Data Skew and How Do I Check Data Skew?
- What Are the Application Scenarios of Replication Tables?
-
Developer Guide(Centralized_V2.0-8.x)
- Database System Overview
- Database Security
- Database Quick Start
- Development and Design Proposal
-
Application Development Guide
- GaussDB Application Development Guide
- Development Specifications
-
Development Based on JDBC
- Development Process
- Development Procedure
-
Typical Application Development Examples
- Configuring Connection Parameters in Different Scenarios
- Creating and Calling a Stored Procedure
- Obtaining the Return Value of a Function
- Batch Query
- Using the Streaming Read Function
- SQL Retry at an Application Layer
- Importing and Exporting Data Through Local Files
- Migrating Data from MySQL
- Logical Replication
- Monitoring Database Connections
- Using the Array Type
- Using the Struct Type
-
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
- Development Based on ODBC
-
Development Based on libpq
- Development Process
- Development Procedure
- Typical Application Development Examples
- libpq Interface Reference
- 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
- Appendix
-
SQL Optimization
- Query Execution Process
- Introduction to the SQL Execution Plan
- Optimization Process
- Updating Statistics
- Reviewing and Modifying a Table Definition
- Reviewing the Plan Change Scenario
- Typical SQL Optimization Methods
- Experience in Rewriting SQL Statements
- Configuring Key Parameters for SQL Optimization
-
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
- Hints for Specifying Whether to Use Partition-wise Scan Optimization
- Using the Vectorized Engine for Optimization
- Introduction to Plan Trace
- Performing Optimization with SQL Patches
- Viewing the Plan Change History
-
Optimization Cases
- Case: Modifying the GUC Parameter rewrite_rule
- Adjusting the GUC Parameter costbased_rewrite_rule for Cost-based Query Rewriting
- Case: Creating an Appropriate Index
- Case: Adding NOT NULL for the JOIN Columns
- Case: Rewriting SQL Statements to Eliminate Subqueries
- Case: Rewriting SQL Statements and Deleting in-clause
-
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 Types
- XMLType
- Data Types Used by the Ledger Database
- SET Type
- ACLItem Type
- Array Types
- Vector Data Types
- Data Types Supported by the Vectorized Executor
-
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
- Row-Store Compression System Functions
- HTAP System Functions
- VACUUM 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 Functions
- Multi-Tenant Database 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
- Online DDL and Related Operations
-
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 FOREIGN TABLE
- ALTER FUNCTION
- ALTER GLOBAL CONFIGURATION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER MASKING POLICY
- ALTER MATERIALIZED VIEW
- ALTER OPERATOR
- ALTER PACKAGE
- ALTER PLUGGABLE DATABASE
- 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 SYSTEM SET
- 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 FOREIGN TABLE
- 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 PLUGGABLE DATABASE
- 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 SLICEGROUP
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLE AS
- CREATE TABLE PARTITION
- CREATE TABLE PARTITION | SUBPARTITION AS
- 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 FOREIGN TABLE
- 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 PLUGGABLE DATABASE INCLUDING DATAFILES
- 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 SLICEGROUP
- 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
- Best Practices of SQL Queries
- Best Practices for Permission Configuration
-
Best Practices for VACUUM
- VACUUM Parameters
-
FAQ
- Possible Causes of Data Table Bloat
- How Do I Estimate the Current Table or Database Space Bloat Ratio?
- How Do I Evaluate Whether the Current Table or Database Requires VACUUM?
- How Do I Estimate the VACUUM Cleanup Rate or How Long It Will Take?
- How Do I Locate Inaccurate Statistics Such as Number of Dead Rows in the Database?
-
Best Practices for Import and Export Using COPY
-
Typical Scenarios
- Using the Recommended CSV Format
- Importing and Exporting Data with Extreme Performance
- Exporting Files for Manual Parsing
- Importing and Exporting Data When Only the TEXT Format Is Available
- Importing and Exporting Data Files on a GSQL Client
- Importing and Exporting Data Through the JDBC Driver
- Importing Erroneous Data Through Error Tolerance
- Guide to Exporting Erroneous Data
- Guide to Importing Erroneous Data
-
Typical Scenarios
- Best Practices for Import and Export Using Tools
- User-defined Functions
-
Stored Procedure
- Stored Procedures
- 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
- Recompilation upon Expiration
- Autonomous Transaction
-
System Catalogs and System Views
- Overview of System Catalogs and System Views
-
System Catalogs
- Partitioned Table
- Workload Management
- 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
- Logical Decoding
- Multi-Tenant Databases
-
Other System Catalogs
- GS_ASP
- gs_copy_summary
- PGXC_COPY_ERROR_LOG
- GS_DEP_SOURCE
- GS_DEPENDENCIES
- GS_DEPENDENCIES_OBJ
- GS_GLOBAL_CONFIG
- GS_IMCV
- GS_JOB_ARGUMENT
- GS_JOB_ATTRIBUTE
- GS_PACKAGE
- GS_PLAN_TRACE
- GS_POLICY_LABEL
- GS_RECYCLEBIN
- GS_SECURITY_LABEL
- GS_SLICEGROUP
- GS_SQL_PATCH
- GS_STATISTIC_EXT_HISTORY
- GS_STATISTIC_HISTORY
- GS_TABLESTATS_HISTORY
- GS_TS_DICT_DEFINITION
- 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_EXTENSION_DATA_SOURCE
- PG_FOREIGN_DATA_WRAPPER
- PG_FOREIGN_SERVER
- PG_FOREIGN_TABLE
- 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
- Workload Management
- 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
- GS_RLSPOLICIES
- PG_ROLES
- GS_ROLES
- PG_SECLABELS
- GS_SECLABELS
- PG_SHADOW
- GS_SHADOW
- PG_USER
- GS_USER
- PG_USER_MAPPINGS
- ROLE_ROLE_PRIVS
- ROLE_SYS_PRIVS
- ROLE_TAB_PRIVS
- Dynamic Data Masking
- DATABASE LINK
- Materialized Views
- Multi-Tenant Databases
- VACUUM
-
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_IMCU_SLOT_STATUS
- GS_IMCV_STATUS
- GS_INSTANCE_TIME
- GS_LOGICALSTANDBY_SKIP
- GS_LOGICALSTANDBY_SKIP_TRANSACTION
- 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_SESSION_IOSTAT
- PG_SETTINGS
- PG_STATS
- 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_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
-
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
- PDB Info
- 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
- SESSION_CPU_RUNTIME
- SESSION_MEMORY_RUNTIME
- STATEMENT_IOSTAT_COMPLEX_RUNTIME
- LOCAL_ACTIVE_SESSION
- Transaction
-
Query
- STATEMENT
- SUMMARY_STATEMENT
- STATEMENT_COUNT
- GLOBAL_STATEMENT_COUNT
- SUMMARY_STATEMENT_COUNT
- GLOBAL_STATEMENT_COMPLEX_HISTORY
- GLOBAL_STATEMENT_COMPLEX_HISTORY_TABLE
- GLOBAL_STATEMENT_COMPLEX_RUNTIME
- STATEMENT_RESPONSETIME_PERCENTILE
- STATEMENT_USER_COMPLEX_HISTORY
- STATEMENT_COMPLEX_RUNTIME
- STATEMENT_COMPLEX_HISTORY_TABLE
- STATEMENT_COMPLEX_HISTORY
- STATEMENT_WLMSTAT_COMPLEX_RUNTIME
- STATEMENT_HISTORY
- GLOBAL_SLOW_QUERY_HISTORY
- GLOBAL_SLOW_QUERY_INFO
- SESSION_SQL_MEMORY
-
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
- Trace Function
- 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 Reporting
- Statistics During the Database Running
- Workload Management
- 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
- Black Box Parameters
- 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
- Creating an Index Online
- Online DDL Operations
- Data Lifecycle Management: OLTP Table Compression
- Vector Database Parameters
- Enhanced TOAST
- Application Lossless and Transparent
- HTAP
- Multi-Tenant Databases
- 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?
- How Do I Set the Validity Period of an Account?
- What Are the Differences Between Unique Constraints and Unique Indexes?
- How Do I Create a Weak Password in GaussDB?
- What is Dirty Read, Phantom Read, and Non-repeatable Read?
- What Is MVCC?
- Which Date/Time Types Contain the Time Zone and Which Do Not?
- What Is the Difference Between count(*) and count(column)?
- What Is the Relationship Between an Empty String and NULL?
- What Are WALs and Log File Paths?
- What Are the Schemas, Users, and Roles in GaussDB?
- Does GaussDB Supports Dynamic Memory Management?
- What Is the Schema Starting with pg_temp or pg_toast_temp?
- What Are the Differences Between Functions and Stored Procedures?
- Why Can a User Log In to the Database After the CONNECT ON DATABASE Permission Is Granted to the REVOKE User?
- How Do I Improve the Efficiency when the Entire Table Is Associated with UPDATE?
- How Do I Ignore Case When Using LIKE for Fuzzy Search?
- After the String Processing Function Is Used, the Query Does Not Use the Index. What Should I Do?
- Why Cannot the Table Name or Column Name Be Identified During Query?
-
Developer Guide(Distributed_V2.0-3.x)
- Database System Overview
- Database Security
- 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 Programming 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 Process
- Typical Application Development Examples
- libpq Interface Reference
- 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
- Appendix
-
SQL Optimization
- Query Execution Process
- Introduction to the SQL Execution Plan
- Optimization Process
- Updating Statistics
- Reviewing and Modifying a Table Definition
- Reviewing the Plan Change Scenario
- 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 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
- SQL
- Keywords
- Data Type
- Constants and Macros
-
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
- 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
- Other System 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 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
-
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
- 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 Programming Specifications
- Client Programming Specifications
-
Application Development Guide
- GaussDB Application Development Guide
- Development Specifications
- Obtaining the Driver Package
-
Development Based on JDBC
- Development Process
- Development Procedure
- Typical Application Development Examples
-
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
- 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
-
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
- Appendix
-
SQL Optimization
- Query Execution Process
- Introduction to the SQL Execution Plan
- Optimization Process
- Updating Statistics
- Reviewing and Modifying a Table Definition
- Reviewing the Plan Change Scenario
- 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
- 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
- Other System 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
- Setting a Ledger Database
- Logical Replication
-
Partitioned Table
- Introduction to Table Partitioning
- 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
- Storage Engine Architecture
- Astore
-
Ustore
- Overview
- Storage Format
- Ustore Transaction Model
- Flashback
- Common View Tools
-
Common Problems and Troubleshooting Methods
- Snapshot Too Old
- Storage Test Error
- An Error "UBTreeSearch::read_page has conflict with recovery, please try again later" Is Reported when a Service Uses a Standby Node to Read Data
- Write Performance Deteriorates Occasionally When a Large Number of Concurrent Updates Are Performed During Long Query Execution
- Data Lifecycle Management: OLTP Table Compression
- Foreign Data Wrapper
- Dynamic Data Masking
-
Feature Guide(Centralized_V2.0-8.x)
- Materialized View
- Setting Encrypted Equality Query
- Setting a Ledger Database
- Logical Replication
-
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
- Storage Engine Architecture
- Astore
-
Ustore
- Overview
- Storage Format
- Ustore Transaction Model
- Flashback
- Common View Tools
-
Common Problems and Troubleshooting Methods
- Snapshot Too Old
- Storage Test Error
- An Error "UBTreeSearch::read_page has conflict with recovery, please try again later" Is Reported when a Service Uses a Standby Node to Read Data
- Write Performance Deteriorates Occasionally When a Large Number of Concurrent Updates Are Performed During Long Query Execution
- Data Lifecycle Management: OLTP Table Compression
- Foreign Data Wrapper
- Dynamic Data Masking
-
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 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
-
DR Management
- Querying Instance DR Status
- Querying Instances That Have Established a DR Relationship
- Establishing a DR Relationship
- Promoting the DR instance to Primary
- Stopping a DR Relationship
- Switching Roles of Primary and DR Instances
- Re-establishing a DR Relationship
- Enabling DR Drill
- Disabling DR Drill
- Enabling Log Cache
- Disabling Log Cache
- Resetting DR Configurations
- Querying DR Operation Records
- Tag Management
- Quota Management
- Task Management
- Recycle Bin
- Plug-in Management
- Historical APIs
- Permissions Policies and Supported Actions
- Appendix
- SDK Reference
-
FAQs
-
About GaussDB
- Are There Any Special Points to Note 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?
- 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 by 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)
- MySQL Compatibility(Centralized)
- Videos
- General Reference
Copied.
SELECT
Description
SELECT retrieves data from a table or view.
Serving as an overlaid filter on database tables, the SELECT statement uses SQL keywords to filter data tables and extract the required data.
Precautions
- The owner of the table, users with the SELECT permission on the table, and users with the SELECT ANY TABLE permission can read data in the table or view. When the separation of duties is disabled, system administrators have this permission by default.
- SELECT can join ordinary tables, but cannot join ordinary and GDS foreign tables. That is, the SELECT statement cannot contain both an ordinary table and a GDS foreign table.
- You must have the SELECT permission on each field used in the SELECT statement.
- Using FOR UPDATE or FOR SHARE requires the UPDATE permission in addition to the SELECT permission.
Syntax
Query data.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[ WITH [ RECURSIVE ] with_query [, ...] ]
SELECT [/*+ plan_hint */] [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
{ * | {expression [ [ AS ] output_name ]} [, ...] }
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ [ START WITH condition ] CONNECT BY [NOCYCLE]
condition [ ORDER SIBLINGS BY expression ] ]
[ GROUP BY grouping_element [, ...] ]
[ HAVING condition [, ...] ]
[ WINDOW {window_name AS ( window_definition )} [, ...] ]
[ { UNION | INTERSECT | EXCEPT | MINUS } [ ALL | DISTINCT ] select ]
[ ORDER BY {expression [ [ ASC | DESC | USING operator ] | nlssort_expression_clause ] [ NULLS { FIRST | LAST } ]} [, ...] ]
[ LIMIT { [offset,] count | ALL } ]
[ OFFSET start [ ROW | ROWS ] ]
[ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
[ {FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT | WAIT n | SKIP LOCKED ]} [...] ];
|
In condition and expression, you can use the aliases of expressions in targetlist in compliance with the following rules:
- Reference only within the same level.
- Only reference aliases in targetlist.
- Reference a prior expression in a subsequent expression.
- The volatile function cannot be used.
- The Window function cannot be used.
- Aliases cannot be referenced in the JOIN ON condition.
- An error is reported if the target list contains multiple aliases to be referenced.
In the scenario where the SELECT statement plan is cached, the WHERE IN candidate subset cannot be too large. It is recommended that the number of conditions be less than or equal to 100 to prevent high dynamic memory.
- If the WHERE IN candidate subset is too large, the memory usage of the generated plan increases.
- If the WHERE IN subsets constructed by concatenated SQL statements are different, the SQL template of the cache plan cannot be reused. A large number of different plans are generated, and the plans cannot be shared. As a result, a large amount of memory is occupied.
- The subquery with_query is as follows:
1 2
with_query_name [ ( column_name [, ...] ) ] AS [ [ NOT ] MATERIALIZED ] ( {select | values | insert | update | delete} )
- The specified query source from_item is as follows:
1 2 3 4 5 6 7 8 9 10 11
{[ ONLY ] table_name [ * ] [ slice_clasuse ] [ partition_clause ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ] [ TABLESAMPLE sampling_method ( argument [, ...] ) [ REPEATABLE ( seed ) ] ] [ TIMECAPSULE {TIMESTAMP | CSN} expression ] |( select ) [ AS ] alias [ ( column_alias [, ...] ) ] |with_query_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ] |function_name ( [ argument [, ...] ] ) [ AS ] alias [ ( column_alias [, ...] | column_definition [, ...] ) ] |function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] ) |xmltable_clause |from_item unpivot_clause |from_item pivot_clause |from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]}
- The GROUP BY clause is as follows:
1 2 3 4 5 6
( ) | expression | ( expression [, ...] ) | ROLLUP ( { expression | ( expression [, ...] ) } [, ...] ) | CUBE ( { expression | ( expression [, ...] ) } [, ...] ) | GROUPING SETS ( grouping_element [, ...] )
- The slice_clause for specifying partitions in from_item is as follows:
1
SLICE BY ( slice_name [, ...] )
NOTE:
Specifies that SLICE applies only to the range bucket table.
- The partition_clause for specifying partitions in from_item is as follows:
1
PARTITION { ( partition_name [, ...] ) | FOR ( partition_value [, ...] ) }
NOTE:
- The specified partition applies only to partitioned tables.
- If PARTITION specifies multiple partition names, the partition names can be the same. The union set of the partition ranges is used.
- The sorting order nlssort_expression_clause is as follows:
1
NLSSORT ( column_name, ' NLS_SORT = { SCHINESE_PINYIN_M | generic_m_ci } ' )
The second parameter can be generic_m_ci, which supports only the case-insensitive order for English characters.
- Simplified query syntax, equivalent to select * from table_name.
1
TABLE { ONLY {(table_name)| table_name} | table_name [ * ]};
- For xmltable_clause:
XMLTABLE( xmlnamespaces_clause row_expression passing_clause columns_clause )
- For xmlnamespaces_clause:
[ XMLNAMESPACES( {string AS identifier } | { DEFAULT string } [, { string AS identifier } | { DEFAULT string } ]... ), ]
- For passing_clause:
PASSING [BY { REF | VALUE }] document_expression [BY { REF | VALUE }]
- For columns_clause:
[ COLUMNS name { type [PATH column_expression] [DEFAULT default_expression] [NOT NULL | NULL] | FOR ORDINALITY } [, ...] ]
- For xmlnamespaces_clause:
Parameters
- WITH [ RECURSIVE ] with_query [, ...]
Specifies one or more subqueries that can be referenced by name in the main query, which is equivalent to a temporary table. This subquery statement structure is called the common table expression (CTE) structure. When this structure is used, the execution plan contains the CTE SCAN content.
If RECURSIVE is specified, it allows a SELECT subquery to reference itself by name.
The detailed format of with_query is as follows: with_query_name [ ( column_name [, ...] ) ] AS [ [ NOT ] MATERIALIZED ] ( {select | values | insert | update | delete} )
- with_query_name specifies the name of the result set generated by a subquery. Such names can be used to access the result sets of subqueries in a query.
- column_name specifies the column name displayed in the subquery result set.
- Each subquery can be a SELECT, VALUES, INSERT, UPDATE or DELETE statement.
- RECURSIVE can appear only after WITH. In the case of multiple CTEs, you only need to declare RECURSIVE at the first CTE.
- You can use MATERIALIZED or NOT MATERIALIZED to modify the CTE. Currently, only inline execution is supported for stream plans. In this case, this syntax does not take effect.
- If MATERIALIZED is specified, the WITH query will be materialized, and a copy of the subquery result set is generated. The copy is directly queried at the reference point. Therefore, the WITH subquery cannot be jointly optimized with the SELECT statement trunk (for example, predicate pushdown and equivalence class transfer). In this scenario, you can use NOT MATERIALIZED for modification. If the WITH query can be executed as a subquery inline, the preceding optimization can be performed.
- If the user does not explicitly declare the materialized attribute, comply with the following rules: If the CTE is referenced only once in the SELECT statement trunk to which it belongs and semantically supports inline execution, it will be rewritten as subquery inline execution. Otherwise, the materialized execution will be performed in CTE Scan mode.
- plan_hint clause
Follows the SELECT keyword in the /*+<Plan hint> */ format. It is used to optimize the plan of a SELECT statement block. For details, see Hint-based Optimization. In each statement, only the first /*+ plan_hint */ comment block takes effect as a hint. Multiple hints can be written.
- ALL
Specifies that all rows that meet the conditions are returned. This is the default behavior and can be omitted.
- DISTINCT [ ON ( expression [, ...] ) ]
Removes all duplicate rows from the result set of the SELECT statement so that each row in the result set is unique.
Only the first row in the set of rows that have the same result calculated on the given expression ON ( expression [, ...] ) is retained.
NOTICE:
DISTINCT ON expression is explained with the same rule of ORDER BY. Unless you use ORDER BY to guarantee that the required row appears first, you cannot know what the first row is.
- SELECT list
Specifies the name of a column in the table to be queried. The value can be a part of the column name or all of the column names. The wildcard (*) is used to represent the column name.
You may use the AS output_name clause to give an alias for an output column. The alias is used for the displaying of the output column. The name, value, and type keywords can be used as column aliases.
Column names can be expressed in the following formats:
- Manually input column names which are separated by commas (,)
- Columns computed in the FROM clause.
- FROM clause
Specifies one or more source tables for SELECT.
The FROM clause can contain the following elements:
- table_name
Specifies the name of a table or view. The schema name can be added before the table name or view name, for example, schema_name.table_name.
NOTE:
You can use database link to perform operations on remote tables and synonyms. For details, see DATABASE LINK.
- alias
Gives a temporary alias to a table to facilitate the quotation by other queries.
An alias is used for brevity or to eliminate ambiguity for self-joins. If an alias is provided, it completely replaces the actual name of the table.
NOTICE:
If an alias is specified for the joined_table table created by JOIN and joined_table is wrapped with "()", that is, (joined_table), non-reserved keywords UNPIVOT and PIVOT cannot be used as aliases.
- TABLESAMPLE sampling_method ( argument [, ...] ) [ REPEATABLE ( seed ) ]
The TABLESAMPLE clause following table_name specifies that the specified sampling_method should be used to retrieve the subset of rows in the table.
The optional REPEATABLE clause specifies the number of seeds used to generate random numbers in the sampling method. The seed value can be any non-null constant value. If the table was not changed during the query, the two queries having the same seed and argument values will select the same sampling in this table. However, different seed values usually generate different samples. If REPEATABLE is not specified, a new random sample will be selected for each query based on the seed generated by the system.
- TIMECAPSULE { TIMESTAMP | CSN } expression
Queries the table data of a specified CSN or at a specified time point.
Currently, the following tables do not support flashback query: system catalogs, DFS tables, global temporary tables, local temporary tables, unlogged tables, views, sequence tables, hash bucket tables, shared tables, and heritance tables.
- TIMECAPSULE TIMESTAMP
Searches for the result set of a specified time point based on the date as the flashback query flag. date must be a valid past timestamp.
- TIMECAPSULE CSN
Searches for the result set of a specified CSN based on the CSN flashback of the table as the flashback query flag. The CSN can be obtained from snpcsn recorded in gs_txn_snapshot.
- expression
Constants, functions, or SQL expressions.
NOTE:
- A flashback query cannot span statements that affect the table structure or physical storage. Otherwise, an error is reported. Between the flashback point and the current point, if a statement (TRUNCATE, DDL, DCL, or VACUUM FULL) has been executed to modify the table structure or affect physical storage, the flashback fails. The error message "ERROR: The table definition of %s has been changed." is displayed when flashback is performed on a table where DDL operations have been performed. The error message "ERROR: recycle object %s desired does not exist" is displayed when flashback is performed on a table where DDL operations, such as changing namespaces and table names, have been performed.
- Flashback query supports scanning PCR UB-tree indexes. If no such indexes, flashback query supports only seq scan for full table scan.
- When the flashback point is too old, the source version cannot be obtained because the flashback version is recycled. As a result, the flashback fails and the error message "Restore point too old" is displayed.
- The flashback point is specified by time. The maximum difference between the flashback point and the actual time is 3 seconds.
- After truncating a table, perform a flashback query or flashback on the table. The error message "Snapshot too old" is displayed when a flashback is performed at a specified time point. Data cannot be found or the error message "Snapshot too old" is reported during the CSN-based flashback.
- In the GTM-free scenario, each node uses the local CSN and does not have a globally unified CSN. Therefore, flashback in CSN mode is not supported.
- TIMECAPSULE TIMESTAMP
- column_alias
- slice_name
Specifies the user-defined slice name in the range bucket table.
- PARTITION
Queries data in the specified partition in a partitioned table.
- partition_name
- partition_value
Specifies the value of the specified partition key. If there are many partition keys, use the PARTITION FOR clause to specify the value of the only partition key you want to use.
- subquery
Performs a subquery in the FROM clause. A temporary table is created to save subquery results.
- with_query_name
Specifies that the WITH clause can also be used as the source of the FROM clause and can be referenced by the name of the WITH query.
- function_name
Function name. Function calls can appear in the FROM clause.
- join_type
- [ INNER ] JOIN
A JOIN clause combines two FROM items. You can use parentheses to determine the order of nesting. In the absence of parentheses, JOIN nests left-to-right.
- LEFT [ OUTER ] JOIN
Returns all rows that meet join conditions in the Cartesian product, plus those rows that do not match the right table rows in the left table by join conditions. This left-hand row is extended to the full width of the joined table by inserting NULL values for the right-hand columns. Note that only the JOIN clause's own condition is considered while the system decides which rows have matches. Outer conditions are applied afterward.
- RIGHT [ OUTER ] JOIN
Returns all the joined rows, plus one row for each unmatched right-hand row (extended with NULL on the left).
This is just a notational convenience, since you could convert it to a LEFT OUTER JOIN by switching the left and right inputs.
- FULL [ OUTER ] JOIN
Returns all the joined rows, pluses one row for each unmatched left-hand row (extended with NULL on the right), and pluses one row for each unmatched right-hand row (extended with NULL on the left).
- CROSS JOIN
Is equivalent to INNER JOIN ON (TRUE), which means no rows are removed by qualification. These join types are just a notational convenience, since they do nothing you could not do with plain FROM and WHERE.
NOTE:
You must specify a join condition for INNER JOIN and OUTER JOIN, that is, one of the following: NATURAL ON, join_condition, and USING (join_column [, ...]). For CROSS JOIN, none of these clauses can appear.
CROSS JOIN and INNER JOIN produce a simple Cartesian product, the same result as you get from listing the two items at the top level of FROM.
- [ INNER ] JOIN
- ON join_condition
Defines which rows have matches in joins. Example: ON left_table.a = right_table.a You are advised not to use numeric types such as int for join_condition, because such types can be implicitly converted to bool values (non-zero values are implicitly converted to true and 0 is implicitly converted to false), which may cause unexpected results.
- USING(join_column[, ...])
ON left_table.a = right_table.a AND left_table.b = right_table.b ... abbreviation. Corresponding columns must have the same name.
- NATURAL
Is a shorthand for a USING list that mentions all columns in the two tables that have the same names.
- from item
- xmltable_clause
Currently, xmltable_clause can be used only in ORA- or PG-compatible mode. xmltable_clause produces a virtual table based on data of the given XMLTYPE (in ORA-compatible mode) or XML (in PG-compatible mode) type.
- xmlnamespaces_clause
The optional xmlnamespaces_clause is a clause that starts with XMLNAMESPACES followed by a comma-separated XML namespace declaration. string indicates the full name of the namespace for which single quotation marks are used as boundary characters. identifier indicates the namespace alias for which double quotation marks are used as boundary characters. The alias can be used in row_expression and columns_clause. In the current version, DEFAULT cannot be used to declare the default namespace.
- row_expression
The required row_expression is an XPath 1.0 expression with English single quotation marks as boundary characters. The document_expression in the subsequent passing_clause is used as its context to obtain a group of XML nodes. These nodes are processed by columns_clause to generate each row of the virtual table.
- passing_clause
The required passing_clause starts with PASSING, where document_expression is the data of the XMLTYPE (in ORA-compatible mode) or XML (in PG-compatible mode) type that is passed to XMLTABLE for processing. Currently, only single-root data is supported. In ORA-compatible mode, an error is reported regardless of whether BY VALUE or BY REF in the first or second place is used. In PG-compatible mode, although BY VALUE or BY REF in the first and second places can be identified and received, no functional processing is performed.
- columns_clause
The optional columns_clause is used to specify the information required for the columns to be generated in the virtual table.
name: indicates the name of a column.
type: indicates the column type.
PATH: column_expression in the optional PATH part is an expression of XPath 1.0. A node in the node set obtained by row_expression is used as the context of the node, and the data required by the value of the corresponding column in the row data generated by the node is obtained through processing by the node. There is an implicit conversion when it is converted to a result of the TYPE type. If the PATH part is not provided, name is regarded as column_expression.
DEFAULT: default_expression in the optional DEFAULT part is an expression. If a NULL value is obtained after column_expression processing, the result obtained by calculating default_expression is used to generate the value of the column. Note that default_expression is calculated only when necessary. If the expression is stable, default_expression is calculated only once when necessary.
NOT NULL | NULL: In PG-compatible mode, the optional NOT NULL or NULL is used to indicate whether the column value can be NULL. If the column value is inconsistent with the specified option, an error is reported.
FOR ORDINALITY: indicates that the column is a row number column. Row numbers starting from 1 are filled for generated rows. Only one column can be marked as FOR ORDINALITY.
In ORA-compatible mode, columns_clause can be omitted. After columns_clause is omitted, the default columns_clause: COLUMNS column_value XMLTYPE PATH '.' is generated internally for subsequent processing. In PG-compatible mode, columns_clause cannot be omitted.
NOTICE:
Currently, xmltable_clause has the following restrictions:
- The involved XPath expressions are XPath 1.0.
- Currently, XPath expressions such as '..' cannot be used in column_expression.
- When the data obtained through column_expression is converted to the data of the TYPE type, in ORA-compatible mode, if the obtained data is too long and exceeds the typmod of the type, the data will be truncated. Currently, long data is truncated only when the typmod of the CHAR, CHARACTER, NCHAR, BPCHAR, VARCHAR, CHARACTER VARYING, VARCHAR2 and NVARCHAR2 data types (including those attached with (n)) is greater than 0. In PG-compatible mode, an error is reported.
- Currently, the maximum size of the input XMLTYPE (in ORA-compatible mode) or XML (in PG-compatible mode) type data is 1 GB.
- For upgrade from a version that does not support XMLTABLE to a version that supports XMLTABLE, the XMLTABLE syntax cannot be used during the upgrade observation period.
- The following expression is supported in XPath only in ORA-compatible mode: *:nodename, where nodename indicates the node name. This expression indicates that the namespace of the node specified by nodename is ignored when the node is selected.
- The non-reserved keyword XMLTABLE cannot be used as the name of a function of the Functions as Table Sources type.
NOTE:
When non-constructed XMLTYPE (in ORA-compatible mode) data is entered, spaces and carriage return characters that are at the same level as the non-constructed part and are used to control the writing format between nodes are parsed as text nodes. For example, in the following text, the space and carriage return between the end label of node2 and the start label of node3 are parsed as text nodes, which is different from that in database ORA.
Input:
<root> <node1>node1</node1> malform <node2>node2</node2> <node3>node3</node3> </root>
Actual situation:
<root><node1>node1</node1> malform <node2>node2</node2> <node3>node3</node3> </root>
Currently, the functions implemented by xmltable_clause are different from those implemented by databases ORA and PG. Pay attention to the differences. For details, see Table 1.
Table 1 Comparison between GaussDB and databases ORA and PGGaussDB
PG
ORA
XPath 1.0 expressions are used at row_expression and PATH in columns_clause.
Same as that in GaussDB.
XQuery 1.0 expressions are used at row_expression and PATH in columns_clause.
The default namespace function is not supported.
Same as that in GaussDB.
The default namespace function is supported.
A single data record can be passed through passing_clause, but the alias cannot be used.
Same as that in GaussDB. (Note that the input data is of the XML type.)
Multiple data records can be passed through the corresponding clause and aliases can be used.
The passing_clause cannot be omitted.
Same as that in GaussDB.
The corresponding clause can be omitted.
The RETURNING SEQUENCE BY REF clause cannot be used after passing_clause.
Same as that in GaussDB.
The RETURNING SEQUENCE BY REF clause can be used after the corresponding clause.
In columns_clause, you cannot use ( SEQUENCE ) BY REF to modify the returned data of the XMLType type.
Same as that in GaussDB.
You can use ( SEQUENCE ) BY REF in the corresponding clause to modify the returned data of the XML type.
If the PATH part in columns_clause is omitted and the column name is not enclosed using double quotation marks (""), the node can be correctly found for subsequent operations when the node name in the data passed to XMLTABLE is in lowercase.
Same as that in GaussDB.
If the corresponding part is omitted and the column name is not enclosed using double quotation marks (""), the node can be correctly found for subsequent operations when the node name in the data passed to XMLTABLE is in uppercase.
The declaration of the column type in columns_clause cannot be omitted.
Same as that in GaussDB.
The declaration of the column type in the corresponding clause can be omitted.
In ORA-compatible mode, the columns_clause can be omitted. In PG-compatible mode, the columns_clause cannot be omitted.
The corresponding clause cannot be omitted.
The corresponding clause can be omitted.
In ORA-compatible mode, if the returned data length exceeds the typmod of the type, the data is truncated. In PG-compatible mode, if the returned data length exceeds the typmod of the type, an error is reported.
An error is reported when the length of the returned data exceeds the typmod of the type.
If the length of the returned data exceeds the value of typmod, the data is truncated.
Example:
gaussdb=# CREATE DATABASE test DBCOMPATIBILITY = 'ORA'; gaussdb=# \c test test=# SELECT * FROM XMLTABLE( test(# XMLNAMESPACES('nspace1' AS "ns1", 'nspace2' AS "ns2"), -- Declare two XML namespaces 'nspace1' and 'nspace2' and the corresponding aliases "ns1" and "ns2". test(# '/ns1:root/*:child' -- Select the root node whose namespace is 'nspace1' from the passed data through row_expression, select all child nodes under the root node, and ignore the child namespaces. ns1 is the alias of 'nspace1'. test(# PASSING xmltype( test(# '<root xmlns="nspace1"> test'# <child> test'# <name>peter</name> test'# <age>11</age> test'# </child> test'# <child xmlns="nspace1"> test'# <name>qiqi</name> test'# <age>12</age> test'# </child> test'# <child xmlns="nspace2"> test'# <name>hacker</name> test'# <age>15</age> test'# </child> test'# </root>') test(# COLUMNS test(# columns FOR ORDINALITY, -- Row number column test(# name varchar(10) path 'ns1:name', -- Select the name node whose namespace is 'nspace1' from each child node obtained by row_expression, convert the value in the node to varchar(10), and return the value. ns1 is the alias of nspace1. test(# age int); -- Select the age node from each child node obtained by row_expression, convert the value in the node to int, and return the value. The first child node does not explicitly specify the namespace. Therefore, the namespace of the parent node root is followed. Therefore, no value in this column is returned. column | name | age --------+-------+----- 1 | peter | 2 | qiqi | 3 | | (3 rows) -- Switch to the default database and delete the test database. Change the database name as required. gaussdb=# \c postgres gaussdb=# DROP DATABASE test;
- xmlnamespaces_clause
- unpivot_clause
Converts a column to a row. The syntax format is as follows:
UNPIVOT [ {INCLUDE | EXCLUDE} NULLS ] ( unpivot_col_clause unpivot_for_clause unpivot_in_clause )
- {INCLUDE | EXCLUDE} NULLS
Controls whether the converted result contains NULL rows. INCLUDE NULLS indicates that the converted results contain NULL rows. EXCLUDE NULLS indicates that the converted results do not contain NULL rows. If this clause is ignored, the unpivot operation removes NULL rows from the converted results by default.
- unpivot_col_clause
unpivot_col_element
unpivot_col_element specifies the output column names. These columns store the values to be converted.
- unpivot_col_element
{ column | ( column [, column]... ) }
unpivot_col_element has two forms: column and ( column [, column]... ).
- unpivot_for_clause
FOR { unpivot_col_element }
unpivot_col_element contained in the unpivot_for_clause is used to specify the output column names. These columns store the alias and names of the column to be converted.
- unpivot_in_clause
IN ( unpivot_in_element [,unpivot_in_element...] )
unpivot_in_clause specifies the columns to be converted. The column names and column values are saved in the previously specified output columns.
unpivot_in_element{ unpivot_col_element }[ AS { unpivot_alias_element } ]
unpivot_col_element specifies the column to be converted. If ( column [, column]...) is used to specify the column to be converted, the column names are connected by underscores (_) and saved in the output columns. For example, IN ((col1, col2)) generates the column name col1_col2 and saves it in the output column specified by unpivot_for_clause. In addition, the AS keyword can be used to specify an alias for the column to be converted. Once an alias is specified, the alias is saved in the output column instead of the name of column to be converted.
- unpivot_alias_element
{ alias | ( alias [, alias]... )}
Similar to unpivot_col_element, unpivot_alias_element has two forms. alias indicates the specified alias.
NOTICE:
Currently, unpivot_clause has the following restrictions:
- This parameter can be used only in ORA-compatible mode.
- The unpivot_clause clause cannot be used with hints.
- For unpivot_col_clause, the number of output columns specified by unpivot_col_element must be the same as that of unpivot_col_element contained in unpivot_in_clause.
- For unpivot_for_clause, the number of output columns specified by unpivot_col_element must be the same as the number of aliases specified by unpivot_alias_element contained in unpivot_in_clause.
- For unpivot_in_clause, the alias must be a constant or an expression that can be converted to a constant.
- For unpivot_in_clause, constant expressions support only IMMUTABLE functions.
- For all unpivot_col_element parameters contained in unpivot_in_clause, if the column types in the same position of these unpivot_col_element parameters are different, UNPIVOT attempts to convert the column types in order to convert the values of columns to be converted to a public type. Similarly, for all unpivot_alias_element parameters, if the alias types of these unpivot_alias_element parameters in the same position are different, UNPIVOT attempts to do the similar type conversion.
For example, assume that there is an unpivot_in_clause in the form of IN (col1, col2), where col1 is of the int type and col2 is of the float type, UNPIVOT attempts to convert the column value of col1 to the public type float during the calculation.
- {INCLUDE | EXCLUDE} NULLS
- pivot_clause
Converts a row into column. The syntax format is as follows:
PIVOT [ XML ] ( aggregate_function ( expr ) [[AS] alias ] [, aggregate_function ( expr ) [[AS] alias ] ]... pivot_for_clause pivot_in_clause )
- aggregate_function ( expr ) [[AS] alias ]
Aggregates calculation on a given expression. The calculation result is saved in the output column specified by pivot_in_clause. [AS] alias (the AS keyword can be omitted) can be used to specify an alias for aggregate_function. The alias is added to the end of output column name specified by pivot_in_clause in the format of "_alias".
- pivot_for_clause
FOR { column | ( column [, column]... ) }
Specifies the row to be converted. The column indicates a column of the row to be converted.
- pivot_in_clause
IN ( { { { expr | ( expr [, expr]... ) } [ [AS] alias] }... } )
Specifies the name of the output column. The column name can consist of one or more expressions, for example, (expr1, expr2). When a column name consists of multiple expressions, these expressions are connected by underscores (_) in sequence. That is, the output column name corresponding to (expr1, expr2) is "expr1_expr2". These expressions not only generate output column names, but also determine the time when the aggregate function is triggered. If the values of row to be converted is the same as the value of these expressions, the results calculated by aggregate_function are saved in the output column names that consist of these expressions. Assume that expr1 is "1" and expr2 is "2". For row "1 2", aggregate_function is used for calculation. For row "1 1", the calculation is not triggered.
NOTICE:
Currently, pivot_clause has the following restrictions:
- This parameter can be used only in ORA-compatible mode.
- The pivot_clause clause cannot be used with hints.
- If more than one aggregate_function is specified, at most one aggregate_function is allowed to have no alias, the rest of the aggregate_function functions are required to specify an alias.
- XML supports only syntax but does not support functions.
- The expression in pivot_in_clause can be a constant or an expression that can be converted to a constant. If the expression is not a unary expression, specify an alias for the expression.
- For pivot_in_clause, constant expressions support only IMMUTABLE functions.
- For the expression in pivot_in_clause, when the keyword AS is used to specify an alias for the expression, only the non-reserved keywords can be used as aliases.
- If the length of an output column name exceeds 63 characters, an error is reported.
- aggregate_function ( expr ) [[AS] alias ]
- table_name
- WHERE clause
The WHERE clause forms an expression for row selection to narrow down the query range of SELECT. condition indicates any expression that returns a value of Boolean type. Rows that do not meet this condition will not be retrieved. You are advised not to use numeric types such as int for condition, because such types can be implicitly converted to bool values (non-zero values are implicitly converted to true and 0 is implicitly converted to false), which may cause unexpected results.
In the WHERE clause, you can use the operator (+) to convert a table join to an outer join. However, this method is not recommended because it is not the standard SQL syntax and may raise syntax compatibility issues during platform migration. There are many restrictions on using the operator (+):
- It can appear only in the WHERE clause.
- If a table join has been specified in the FROM clause, the operator (+) cannot be used in the WHERE clause.
- The operator (+) can work only on columns of tables or views, instead of on expressions.
- If table A and table B have multiple join conditions, the operator (+) must be specified in all the conditions. Otherwise, the operator (+) will not take effect, and the table join will be converted into an inner join without any prompt information.
- Tables specified in a join condition where the operator (+) works cannot cross queries or subqueries. If tables where the operator (+) works are not in the FROM clause of the current query or subquery, an error will be reported. If a peer table for the operator (+) does not exist, no error will be reported and the table join will be converted into an inner join.
- Expressions where the operator (+) is used cannot be directly connected through OR.
- If a column where the operator (+) works is compared with a constant, the expression becomes a part of the JOIN condition.
- A table cannot have multiple foreign tables.
- The operator (+) can appear only in the following expressions: comparison, NOT, ANY, ALL, IN, NULLIF, IS DISTINCT FROM, and IS OF. It is not allowed in other types of expressions. In addition, these expressions cannot be connected through AND or OR.
- The operator (+) can be used to convert a table join only to a left or right outer join, instead of a full join. That is, the operator (+) cannot be specified on both tables of an expression.
NOTICE:
- For the WHERE clause, if special character "%", "_", or "\" is queried in LIKE, add the slash "\" before each character.
- If an IN clause is added after a WHERE clause and no parenthesis is added after IN, only one element can be added after IN, and restrictions can be used only in ORA-compatible mode. The element has the following restrictions:
- Constant: such as character strings, integers, and floating points
- Column name
- CASE WHEN clause
- Function
- START WITH clause
The START WITH clause is usually used together with the CONNECT BY clause and indicates the initial condition of recursion. Data is traversed recursively and hierarchically. If this clause is omitted and the CONNECT BY clause is used alone, all rows in the table are used as the initial set. For details, see CONNECT BY.
- CONNECT BY clause
CONNECT BY indicates a recursive join condition. It is used together with START WITH to implement data traversal and recursion. Example:
gaussdb=# CREATE TABLE test(name varchar, id int, fatherid int); gaussdb=# INSERT INTO test VALUES('A', 1, 0), ('B', 2, 1),('C',3,1),('D',4,1),('E',5,2); gaussdb=# SELECT * FROM TEST START WITH id = 1 CONNECT BY prior id = fatherid ORDER SIBLINGS BY id DESC; name | id | fatherid ------+----+---------- A | 1 | 0 D | 4 | 1 C | 3 | 1 B | 2 | 1 E | 5 | 2 (5 rows)
In the CONNECT BY condition, the PRIOR keyword can be specified for a column to indicate that the column is recursive. If NOCYCLE is added before the recursive join condition, recursion stops when a loop record is encountered.
NOTICE:
A SELECT statement containing the START WITH .. CONNECT BY clause does not support the FOR SHARE or UPDATE lock.
The process of executing the START WITH statement is as follows:
- The initial dataset is selected based on the condition in the START WITH clause. In the preceding example, ('A', 1, 0) is selected first. Then, this initial dataset is set as the working set.
- If the working set is not empty, the data in the working set is used as the input for the next query. The filter criteria are specified in the CONNECT BY clause. The keyword PRIOR indicates the current record. For example, prior id = fatherid in the preceding example indicates that the ID of the current record is fatherid of the next record.
- Set the data set filtered out in the previous step as the working set and repeat the previous step.
In addition, the database adds the following pseudocolumns to each selected data record so that users can learn about the location of the data in the recursive or tree structure:
- LEVEL: level of a node. The level of the root node is 1.
- CONNECT_BY_ISLEAF: specifies whether a node is a leaf node.
NOTICE:
connect_by_isleaf: If a node does not have any subnode, the node is a leaf node and connect_by_isleaf is set to 1. Otherwise, connect_by_isleaf is set to 0.
Assume that table T1 exists and the data in table T1 is shown in Figure 1.Run the following statement:
SELECT * FROM T1 CONNECT BY PRIOR B=A AND LEVEL<=3;
The tree structure of the result is shown in Figure 2, where the blue nodes are leaf nodes.
In addition to pseudocolumns, the following query functions are provided (for details, see Hierarchical Recursion Query Functions):
- sys_connect_by_path(col, separator): returns the connection path from the root node to the current row. The col parameter indicates the name of the column displayed in the path, and the separator parameter indicates the connector.
- connect_by_root(col): displays the top-level node of the node. col indicates the name of the output column.
If a loop exists in the dataset, the database provides loop detection. By default, if a loop is detected, an error is reported and no data is returned. In addition, the NOCYCLE keyword is provided. With it, the query can be executed normally and when the first duplicate data record is found, the query exits directly instead of reporting an error.
Besides, in the hierarchical query, the search is performed strictly according to the depth-first order. If ROWNUM is used as the filter condition in START WITH or CONNECT, the value of ROWNUM is increased by 1 for each record to be returned. Then, the record is verified based on ROWNUM conditions. Records that do not satisfy the conditions are discarded and the value of ROWNUM is decreased by 1.
NOTICE:
- The PRIOR keyword can be used only in the CONNECT BY clause instead of the START WITH clause.
- In addition to targetlist, "prior (single column)" is parsed as "prior single column". User-defined functions named prior are not perceived.
- The PRIOR keyword can be specified only for columns in the table instead of expressions, pseudocolumns, or type conversion. For example, PRIOR (a + 1) is not allowed.
- In the CONNECT BY clause, the column using the keyword PRIOR cannot be in the same condition with pseudocolumns such as level and rownum, but they can be in different conditions. For example, (PRIOR a = level) is not allowed, but (PRIOR a = b) and (level = 1) is allowed. Different conditions refer to the conditions connected by AND at the top of the CONNECT BY clause. For example, (PRIOR a = 1 or level = 1) is considered as a condition and is not allowed.
- In the START WITH and CONNECT BY clauses, pseudocolumns cannot be used for sublinks, for example, "rownum = (subquery)" or "rownum in (subquery)".
- You are advised not to use ROWNUM in the CONNECT BY clause. If ROWNUM is required, test it thoroughly to avoid unexpected results.
- When START WITH and CONNECT BY are called on the CTE defined by WITH AS, if there are multiple CTEs, ensure that the definition of each CTE does not depend on other CTEs.
- If no loop exists in the data but the error message "runs into cycle" is reported, increase the value of max_recursive_times.
- connect_by_isleaf, connect_by_iscycle and level are of the int type.
- In hierarchical queries, connect_by_isleaf, connect_by_iscycle, and level must be parsed as pseudocolumns and will not be parsed as columns whose alias names in projection columns are the same as pseudocolumns.
- You are advised not to reference other views when defining views with hierarchical queries.
- Optimization suggestions for the START WITH clause:
- Create indexes based on the conditions in the CONNECT BY clause to improve the performance of the START WITH clause.
- Identify bottlenecks based on the plan collected by running EXPLAIN PERFORMANCE. If the recursive operator (inner plan) of RECURSIVE UNION is the Hash JOIN operator, but the hash table is created for the temporary table tmp_result or the hash table in plan is materialized (that is, the batch size is greater than 1), the possible cause is that the value of work_mem is too small. As a result, the hash table cannot be created for the outer data table. You can increase the value of work_mem to improve performance.
Note: GaussDB optimizes tables with a small volume of data and caches table results in hash tables to improve performance. In this case, indexes are not required. However, if the data volume exceeds the limit specified by work_mem, the optimization becomes invalid. In this case, you can create indexes for optimization.
- The keyword PRIOR can be used only in the CONNECT BY clause and cannot be used in the START WITH clause.
- The keyword PRIOR can be specified only for columns in the table instead of the expression and type conversion. For example, prior (a + 1) is not allowed.
- In the CONNECT BY clause, the column using the keyword PRIOR cannot in the same condition with pseudo columns such as level and rownum, but they can be in different conditions. For example, (prior a = level) is not allowed, but (prior a = b) and (level = 1) is allowed. Different conditions refer to the conditions connected by AND at the top of the CONNECT BY clause. For example, (prior a = 1 or level = 1) is considered as a condition and is not allowed.
- You are advised not to use pseudo columns in the START WITH statement. If pseudo columns need to be used, please test the columns to avoid inconsistency between the result and expected result.
- If no value or NULL is used in the START WITH statement, the initial recursive condition is empty and an empty result is returned.
- If no value is used in the CONNECT BY statement, the recursive condition is empty and all results that meet the condition of the START WITH clause are returned.
- Columns modified by PRIOR support only the following types: INT8, INT1, INT2, OID, INT4, BOOL, CHAR, NAME, FLOAT4, FLOAT8, ABSTIME, RELTIME, DATE, CASH, TIME, TIMESTAMP, TIMESTAMPTZ, SMALLDATETIME, UUID, INTERVAL, TIMETZ, INT2VECTOR, CLOB, NVARCHAR2, VARCHAR, TEXT, VECTOR, BPCHAR, RAW, BYTEA, NUMERIC, XID, CID, and TID. The whitelist restriction cannot be bypassed by forcibly converting the type to the preceding types, for example, PRIOR col::text (where col is not of the type in the whitelist) is not supported.
- In a hierarchical query statement, if the projection column utilizes a window function, the result depends on the order of the intermediate result set. To use a window function, conduct thorough testing to verify that the semantics align with expectations.
The default behavior of START WITH is width-first search. However, depth-first search can be implemented by working with pseudocolumns. Example:gaussdb=# SELECT sys_connect_by_path(name,'-') as path, *, LEVEL FROM test START WITH id = 1 CONNECT BY fatherid=prior id ORDER BY path; path | name | id | fatherid | level --------+------+----+----------+------- -A | A | 1 | 0 | 1 -A-B | B | 2 | 1 | 2 -A-B-E | E | 5 | 2 | 3 -A-C | C | 3 | 1 | 2 -A-D | D | 4 | 1 | 2 gaussdb=# DROP TABLE test;
If a loop exists in the dataset, the database provides loop detection. By default, if a loop is detected, an error is reported and no data is returned. In addition, the NOCYCLE keyword is provided. With it, the query can be executed normally and when the first duplicate data record is found, the query exits directly instead of reporting an error.
- ORDER SIBLINGS BY clause
The output of the START WITH statement is returned level by level. However, there is no sequence guarantee at each level because the database automatically selects the optimal execution path during each round of query. In the preceding example, A is output first, but the sequence of B, C, and D is not fixed. If you have requirements on the final output sequence, you can use ORDER SIBLINGS BY. The usage of ORDER SIBLINGS BY is the same as that of ORDER BY. ORDER SIBLINGS BY is used for sorting at each level during recursion.
NOTICE:
The expression following ORDER SIBLINGS BY only supports sorting by calling non-aggregate and window functions for ordinary columns, column name offsets, and column names. It does not support calling system functions related to START WITH for column names or using pseudocolumns related to START WITH.
- GROUP BY clause
Condenses query results into a single row all selected rows that share the same values for the grouped expressions.
- CUBE ( { expression | ( expression [, ...] ) } [, ...] )
A CUBE grouping is an extension to the GROUP BY clause that creates subtotals for all of the possible combinations of the given list of grouping columns (or expressions). In terms of multidimensional analysis, CUBE generates all the subtotals that could be calculated for a data cube with the specified dimensions. For example, given three expressions (n=3) in the CUBE clause, the operation results in 2n = 23 = 8 groupings. Rows grouped on the values of n expressions are called regular rows, and the rest are called superaggregate rows.
- GROUPING SETS ( grouping_element [, ...] )
Another extension to the GROUP BY clause. It allows users to specify multiple GROUP BY options. This improves efficiency by trimming away unnecessary data group. After you specify the required data group, the database does not need to compute a whole ROLLUP or CUBE.
NOTICE:
- If sql_mode contains the ONLY_FULL_GROUP_BY option, the following situations occur:
- If the non-aggregate function column in the SELECT list is consistent with the column for GROUP BY, no error is reported.
- If the non-aggregate function column in the SELECT list is inconsistent with the column for GROUP BY, the following situations may occur:
- If the GROUP BY list contains a primary key or a unique non-null key, the SQL statement does not report an error.
- Non-aggregate function columns in the SELECT list are also included in the GROUP BY or WHERE list. If included in the WHERE list, the columns in the WHERE clause must be in the form of a constant, and then no error will be reported.
- If both the JOIN and GROUP BY clauses are contained, the following situations may occur:
- LEFT JOIN
In the syntax, when the ON clause is used for equality check between two columns, no error is reported if the GROUP BY clause contains columns from the LEFT JOIN table.
For example, when LEFT JOIN operations are performed on tables t1 and t2, if the condition in the ON clause is t1.col1=t2.col2 ..., the GROUP BY clause only needs to contain t1.col1.
- RIGHT JOIN
In the syntax, when the ON clause is used for equality check between two columns, no error is reported if the GROUP BY clause contains columns from the RIGHT JOIN table.
For example, when RIGHT JOIN operations are performed on tables t1 and t2, if the condition in the ON clause is t1.col1=t2.col2 ..., the GROUP BY clause only needs to contain t2.col2.
- INNER JOIN/CROSS JOIN/STRAIGHT_JOIN
In the syntax, when the ON clause is used for equality check between two columns, no error is reported if the GROUP BY clause contains either of the columns.
- LEFT JOIN
- If sql_mode does not contain the ONLY_FULL_GROUP_BY option, no restriction exists and no error is reported in the preceding error scenarios.
- If SELECT contains both non-aggregate columns and aggregate functions, it must be used together with GROUP BY. Otherwise, an error is reported.
- If a non-aggregate column beyond the column for GROUP BY contains multiple data records after it is grouped, due to differences in execution plans and DN data distribution, the queried column data is a random data record in the grouped data.
- CUBE ( { expression | ( expression [, ...] ) } [, ...] )
- HAVING clause
Selects special groups by working with the GROUP BY clause. The HAVING clause compares some attributes of groups with a constant. Only groups that matching the logical expression in the HAVING clause are extracted.
- WINDOW clause
The general format is WINDOW window_name AS ( window_definition ) [, ...]. window_name is a name can be referenced by window_definition. window_definition can be expressed in the following forms:
[ existing_window_name ] [ PARTITION BY expression [, ...] ] [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ] [ frame_clause ]
frame_clause defines a window frame for the window function. The window function (not all window functions) depends on window frame and window frame is a set of relevant rows of the current query row. frame_clause can be expressed in the following forms:
[ RANGE | ROWS ] frame_start [ RANGE | ROWS ] BETWEEN frame_start AND frame_end
Formats of frame_start and frame_end:
UNBOUNDED PRECEDING VALUE PRECEDING CURRENT ROW VALUE FOLLOWING UNBOUNDED FOLLOWING
NOTE:
Restrictions on scenarios where VALUE is used:
- The table columns operated by the aggregate function or window function support only the INT1, INT2, INT4, INT8, FLOAT4, FLOAT8, NUMERIC, INTERVAL, TIME, TIMETZ, TIMESTAMP, TIMESTAMPTZ, and DATE types.
- The VALUE type supports only the INT1, INT2, INT4, INT8, INT16, FLOAT4, FLOAT8, NUMERIC, INTERVAL, and character string (only character strings that can be implicitly converted to numbers are supported) types.
- The value of VALUE must be a non-negative number.
- Currently, VALUE only supports constants as the upper and lower boundaries and does not support variables and expressions.
- UNION clause
Computes the set union of the rows returned by the involved SELECT statements.
The UNION clause has the following constraints:
- By default, the result of UNION does not contain any duplicate rows unless the ALL clause is declared.
- The number of columns in multiple SELECT statements must be the same, and the data type and sequence of each column must be the same.
- Multiple UNION operators in the same SELECT statement are evaluated left to right, unless otherwise specified by parentheses.
- FOR UPDATE cannot be specified either for a UNION result or for any input of a UNION.
General expression:
select_statement UNION [ALL] select_statement
- select_statement can be any SELECT statement without an ORDER BY, LIMIT, or FOR UPDATE clause.
- ORDER BY and LIMIT can be attached to the subexpression if it is enclosed in parentheses.
NOTICE:
- It is recommended that the number of UNION ALL clauses be less than 100. If the number of UNION ALL clauses exceeds 100, ensure that the instance memory is sufficient.
- The following constraints apply when you perform set operations with NULL:
- NULL can only be a projection column itself or a projection column in a subquery of the FROM statement.
- In CTEs and recursive queries, complex subqueries (DISTINCT, GROUP BY, and ORDER BY statements) are not supported.
- INTERSECT clause
Computes the set intersection of rows returned by the involved SELECT statements. The result of INTERSECT does not contain any duplicate rows.
The INTERSECT clause has the following constraints:
- Multiple INTERSECT operators in the same SELECT statement are evaluated left to right, unless otherwise specified by parentheses.
- Processing INTERSECT preferentially when UNION and INTERSECT operations are executed for results of multiple SELECT statements.
General format:
select_statement INTERSECT select_statement
select_statement can be any SELECT statement without a FOR UPDATE clause.
- EXCEPT clause
Has the following common form:
select_statement EXCEPT [ ALL ] select_statement
select_statement can be any SELECT statement without a FOR UPDATE clause.
The EXCEPT operator computes the set of rows that are in the result of the left SELECT statement but not in the result of the right one.
The result of EXCEPT does not contain any duplicate rows unless the ALL clause is declared. To execute ALL, a row that has m duplicates in the left table and n duplicates in the right table will appear MAX(m–n, 0) times in the result set.
Multiple EXCEPT operators in the same SELECT statement are evaluated left to right, unless parentheses dictate otherwise. EXCEPT binds at the same level as UNION.
Currently, FOR UPDATE cannot be specified either for an EXCEPT result or for any input of an EXCEPT.
- MINUS clause
Has the same function and syntax as EXCEPT clause.
- ORDER BY clause
Sorts data retrieved by SELECT in descending or ascending order. If the ORDER BY expression contains multiple columns:
- If two columns are equal according to the leftmost expression, they are compared according to the next expression and so on.
- If they are equal according to all specified expressions, they are returned in an implementation-dependent order.
- When used with the DISTINCT keyword, the columns to be sorted in ORDER BY must be included in the columns of the result set retrieved by the SELECT statement.
- When used with the GROUP BY clause, the columns to be sorted in ORDER BY must be included in the columns of the result set retrieved by the SELECT statement.
When the clause is not used with the GROUP BY clause and the columns of the result set retrieved by the SELECT statement contain aggregate functions:
- The ORDER BY clause is ignored if the columns of the retrieved result set do not contain any set returning functions.
- Only the sorting of the columns that contain set returning functions is retained if the columns of the retrieved result set contain set returning functions.
NOTE:
To support Chinese pinyin order, set the encoding format to UTF-8, GB18030, GB18030_2022, GBK, or ZHS16GBK when initializing the database. The statements are as follows:
initdb –E UTF8 –D ../data –locale=zh_CN.UTF-8 initdb -E GB18030 -D ../data -locale=zh_CN.GB18030 initdb -E GB18030_2022 -D ../data -locale=zh_CN.GB18030 initdb –E GBK –D ../data –locale=zh_CN.GBK initdb –E ZHS16GBK –D ../data –locale=zh_CN.GBK
- LIMIT clause
Consists of two independent sub-clauses:
LIMIT { count | ALL } limits the number of rows to be returned. count specifies the number of rows to be returned. The effect of LIMIT ALL is the same as that of omitting the LIMIT clause.
OFFSET start count specifies the maximum number of rows to return, while start specifies the number of rows to skip before starting to return rows. When both are specified, start rows are skipped before starting to count the count rows to be returned.
ROWNUM cannot be used as count or offset in the LIMIT clause.
- OFFSET clause
The SQL: 2008 standard has introduced a different clause:
OFFSET start { ROW | ROWS }
start specifies the number of rows to skip before starting to return rows.
- FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY
If count is omitted in a FETCH clause, it defaults to 1.
- FOR UPDATE clause
The FOR UPDATE clause locks the rows retrieved by SELECT. This ensures that the rows cannot be modified or deleted by other transactions until the current transaction ends. That is, other transactions that attempt UPDATE, DELETE, or SELECT FOR UPDATE of these rows will be blocked until the current transaction ends.
To prevent the operation from waiting for the commit of other transactions, you can use NOWAIT. If the selected row cannot be locked immediately, an error is reported immediately when you execute SELECT FOR UPDATE NOWAIT. If you use WAIT n and the selected row cannot be locked immediately, the operation needs to wait for n seconds (the value of n is of the int type with a range of 0 ≤ n ≤ 2147483). If the lock is obtained within n seconds, the operation is performed normally. Otherwise, an error is reported. If you use SKIP LOCKED, locked rows are skipped when a table is locked. Only rows that are locked using a row lock can be skipped. In scenarios where locks do not block each other in different transactions, for example, SELECT FOR SHARE - SELECT FOR SHARE SKIP LOCKED, rows that are locked with preceding locks are not skipped though SKIP LOCKED is specified.
FOR SHARE behaves similarly, except that it acquires a shared rather than exclusive lock on each retrieved row. A share lock blocks other transaction from performing UPDATE, DELETE, or SELECT FOR UPDATE on these rows, but it does not prevent them from performing SELECT FOR SHARE.
If specified tables are named in FOR UPDATE or FOR SHARE, then only rows coming from those tables are locked. Any other tables used in SELECT are simply read as usual. Otherwise, locking all tables in the statement.
If FOR UPDATE or FOR SHARE is applied to a view or sub-query, it affects all tables used in the view or sub-query.
Multiple FOR UPDATE and FOR SHARE clauses can be written if it is necessary to specify different locking behaviors for different tables.
If the same table is mentioned (or implicitly affected) by both FOR UPDATE and FOR SHARE clauses, it is processed as FOR UPDATE. Similarly, a table is processed as NOWAIT if that is specified in any of the clauses affecting it.
NOTICE:
- For SQL statements containing FOR UPDATE or FOR SHARE, their execution plans will be pushed down to DNs. If the pushdown fails, an error will be reported.
- The query of row number contained in the projected column or WHERE conditions does not support FOR UPDATE/SHARE.
- For the FOR UPDATE/SHARE statements whose subquery is a stream plan, the same locked row cannot be concurrently updated.
- For the ORDER BY FOR UPDATE/SHARE statement, the execution sequence of the SORT and LOCK operators in the stream plan is different from that in other plans. In the stream plan, LOCK is executed before SORT. In other plans, SORT is executed before LOCK. The reason is that if the data in the stream plan is not on the current DN, the data needs to be redistributed and locked on the original DN. After redistribution, data becomes disordered. Therefore, the SORT operator needs to be added. If SORT is performed before LOCK, the original ordered data becomes disordered again. In this case, the SORT operator is meaningless and can be eliminated. The final plan execution sequence is changed from sort > lock > sort to lock > sort.
- In scenarios where FOR UPDATE/SHARE statements are concurrently executed, ORDER BY is used to sort data to avoid deadlocks. This method is not feasible for distributed systems because the DN lock sequence cannot be ensured by ORDER BY. In addition, adding ORDER BY causes performance overhead. Therefore, you are advised not to add ORDER BY to solve the deadlock problem.
- The DATABASE LINK function does not support the SKIP LOCKED syntax.
- In distributed scenarios, FOR UPDATE/SHARE cannot be performed on multiple tables.
- NLS_SORT
Specifies that a column is sorted in a special order. Currently, only Chinese Pinyin and case-insensitive sorting are supported. To support this sorting mode, you need to set the encoding format to UTF8, GB18030, GB18030_2022, GBK, or ZHS16GBK when creating a database. If you set the encoding format to another format, for example, SQL_ASCII, an error may be reported or the sorting mode may be invalid.
Value range:
- SCHINESE_PINYIN_M, sorted by Pinyin order.
- generic_m_ci: sorted in case-insensitive order (optional; only English characters are supported in the case-insensitive order.)
- PARTITION clause
Queries data in the specified partition in a partitioned table.
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