Stay organized with collectionsSave and categorize content based on your preferences.
This page summarizes PostgreSQL language support in Spanner.
Spanner provides PostgreSQL language support by
expressing Spanner database features through a subset of
open source PostgreSQL language constructs, with extensions added to
support Spanner features like interleaved tables and
hints.
For detailed information about this support, refer to these pages:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# The PostgreSQL language in Spanner\n\nThis page summarizes PostgreSQL language support in Spanner.\n\nSpanner provides PostgreSQL language support by\nexpressing Spanner database features through a subset of\nopen source PostgreSQL language constructs, with extensions added to\nsupport Spanner features like interleaved tables and\nhints.\n\nFor detailed information about this support, refer to these pages:\n\n- [Lexical structure and syntax](/spanner/docs/reference/postgresql/lexical) describes how to form valid PostgreSQL statements.\n- [Data definition (DDL)](/spanner/docs/reference/postgresql/data-definition-language) defines the syntax of DDL statements like `CREATE DATABASE` and `CREATE\n TABLE`.\n- [Data manipulation (DML)](/spanner/docs/reference/postgresql/dml-syntax) defines the syntax of DML statements like `INSERT` and `UPDATE`.\n- [Queries](/spanner/docs/reference/postgresql/query-syntax) defines the syntax of the `SELECT` statement.\n- [Subqueries](/spanner/docs/reference/postgresql/subqueries) defines the syntax of subqueries.\n- [Data types](/spanner/docs/reference/postgresql/data-types) describes the data types that Spanner supports.\n- [Functions](/spanner/docs/reference/postgresql/functions-and-operators) describes the functions that Spanner supports.\n- [Stored procedures](/spanner/docs/reference/postgresql/stored-procedures-pg) describes stored procedures that come with Spanner.\n- [Known issues in the PostgreSQL interface for Spanner](/spanner/docs/reference/postgresql/known-issues-postgresql-interface) describes PostgreSQL language features that don't work as expected.\n\nSpanner doesn't support several open source PostgreSQL\nfeatures, including the following:\n\n- Triggers\n- SERIAL\n- Fine-grained concurrency control\n- SAVEPOINT\n- Transactional DDL\n- Partial indexes\n- Extensions\n- Foreign data wrappers\n- User-defined data types, functions and operators"]]