# Procedural Extensions

SingleStore Procedural Extensions (PSQL) are available beginning in MemSQL version 6.0. These extensions provide familiar mechanisms for SQL developers and database administrators to encapsulate custom programmatic logic, namely:

* [Stored Procedures (SPs)](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/stored-procedures.md)
* [User-Defined Scalar-Valued Functions (UDFs)](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/user-defined-scalar-valued-functions-udfs.md)
* [User-Defined Table-Valued Functions (TVFs)](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/user-defined-table-valued-functions-tvfs.md)
* [User-Defined Aggregate Functions (UDAFs)](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/user-defined-aggregate-functions-udafs.md)
* [External Functions](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/external-functions.md)

Within stored procedures, you can write flexible queries that use [static parameterized SQL](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/static-parameterized-sql.md) and [dynamic SQL](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/dynamic-sql.md).

## Wasm-based Functions

SingleStore also supports Wasm-based functions. Refer to [Code Engine - Powered by Wasm](https://docs.singlestore.com/db/v9.1/reference/code-engine-powered-by-wasm.md) for information on creating Wasm-based UDFs and TVFs. To create Wasm-based UDAFs, refer to [CREATE AGGREGATE](https://docs.singlestore.com/db/v9.1/reference/sql-reference/procedural-sql-reference/create-aggregate.md). If your logic and data structures can be implemented in PSQL with reasonable effort in a way that performs well, use PSQL. For integrating more complex logic and data structures, or using existing C/C++ or Rust code, SingleStore recommends using Wasm-based functions.

For information on when to use PSQL, Wasm-based, or external functions, refer to [Choose Between PSQL, Wasm-based, and External Functions](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/choose-between-psql-wasm-based-and-external-functions.md).

## Extensions

Extensions in SingleStore allow you to combine user-defined objects, such as UDFs or UDAFs, into a packaged archive and then create, manage, and deploy these objects and other resources using the `CREATE EXTENSION` command. Extensions support both PSQL and Wasm-based functions. Refer to [Extensions](https://docs.singlestore.com/db/v9.1/reference/sql-reference/procedural-sql-reference/extensions.md) for more information.

## Related Topics

* [Procedural SQL Reference](https://docs.singlestore.com/db/v9.1/reference/sql-reference/procedural-sql-reference.md)
* [Code Engine - Powered by Wasm](https://docs.singlestore.com/db/v9.1/reference/code-engine-powered-by-wasm.md)

## In this section

* [Performance](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/performance.md)
* [Control Flow](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/control-flow.md)
* [Additional Data Types](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/additional-data-types.md)
* [Choose Between PSQL, Wasm-based, and External Functions](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/choose-between-psql-wasm-based-and-external-functions.md)
* [Stored Procedures](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/stored-procedures.md)
* [User-Defined Scalar-Valued Functions (UDFs)](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/user-defined-scalar-valued-functions-udfs.md)
* [User-Defined Table-Valued Functions (TVFs)](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/user-defined-table-valued-functions-tvfs.md)
* [User-Defined Aggregate Functions (UDAFs)](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/user-defined-aggregate-functions-udafs.md)
* [External Functions](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/external-functions.md)
* [Static Parameterized SQL](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/static-parameterized-sql.md)
* [Dynamic SQL](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/dynamic-sql.md)
* [Procedural Extensions Security](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/procedural-extensions-security.md)
* [Procedural SQL Reference](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/procedural-sql-reference.md)
* [See Also](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/see-also.md)

***

Modified at: June 13, 2025

Source: [/db/v9.1/developer-resources/procedural-extensions/](https://docs.singlestore.com/db/v9.1/developer-resources/procedural-extensions/)

(An index of the documentation is available at /llms.txt)
