Stay organized with collections
Save 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-08-28 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"]]