# Procedural Extensions

SingleStore Helios 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/cloud/developer-resources/procedural-extensions/stored-procedures.md)
* [User-Defined Scalar-Valued Functions (UDFs)](https://docs.singlestore.com/cloud/developer-resources/procedural-extensions/user-defined-scalar-valued-functions-udfs.md)
* [User-Defined Table-Valued Functions (TVFs)](https://docs.singlestore.com/cloud/developer-resources/procedural-extensions/user-defined-table-valued-functions-tvfs.md)
* [User-Defined Aggregate Functions (UDAFs)](https://docs.singlestore.com/cloud/developer-resources/procedural-extensions/user-defined-aggregate-functions-udafs.md)
* [External Functions](https://docs.singlestore.com/cloud/developer-resources/procedural-extensions/external-functions.md)

Within stored procedures, you can write flexible queries that use [static parameterized SQL](https://docs.singlestore.com/cloud/developer-resources/procedural-extensions/static-parameterized-sql.md) and [dynamic SQL](https://docs.singlestore.com/cloud/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/cloud/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/cloud/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/cloud/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/cloud/reference/sql-reference/procedural-sql-reference/extensions.md) for more information.

## Related Topics

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

## In this section

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

***

Modified at: June 13, 2025

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

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