https://github.com/ishaanadarsh/pg_sample_ext
pg_sample_ext is a PostgreSQL extension that provides a sample function to demonstrate extending PostgreSQL's functionality.
https://github.com/ishaanadarsh/pg_sample_ext
extension gsoc postgresql postgresql-extension sql
Last synced: 6 months ago
JSON representation
pg_sample_ext is a PostgreSQL extension that provides a sample function to demonstrate extending PostgreSQL's functionality.
- Host: GitHub
- URL: https://github.com/ishaanadarsh/pg_sample_ext
- Owner: IshaanAdarsh
- Created: 2023-07-03T15:58:11.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-12T14:38:04.000Z (almost 3 years ago)
- Last Synced: 2025-06-22T07:42:53.222Z (10 months ago)
- Topics: extension, gsoc, postgresql, postgresql-extension, sql
- Language: PLpgSQL
- Homepage: https://pgxn.org/dist/pg_sample_ext/1.0.2/
- Size: 40 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: Changes
Awesome Lists containing this project
README
# pg_sample_ext
pg_sample_ext is a PostgreSQL extension that provides a sample function to demonstrate extending PostgreSQL's functionality.
## Installation
1. Make sure you have PostgreSQL installed and running.
2. Clone or download the repository [pg_sample_ext](https://github.com/IshaanAdarsh/pg_sample_ext/tree/main) to your local machine.
3. Change to the extension directory:
```
$ cd pg_sample_ext
```
4. Build and install the extension:
$ make
$ make install
5. Enable the extension:
`CREATE EXTENSION pg_sample_ext;`
## Usage
Once the `pg_sample_ext` extension is installed and upgraded to version 1.0.1, you can use the included functions and new features in your SQL queries.
### square
The `square` function calculates the square of a number.
```
SELECT square(5); -- Returns 25
```
### Composite Type (person_type):
- The extension now includes a composite type named `person_type` that represents a person's name and age. This allows for more structured data storage and retrieval.
- Insert a row with a value from the composite type
```
INSERT INTO my_table (person) VALUES (('John Doe', 30));
```
### Enumerated Type (status_type):
- A new enumerated type called `status_type` is introduced, which provides a predefined set of values for representing different statuses. This enhances data integrity and enables more meaningful data classification.
- Insert a row with a value from the enumerated type
```
INSERT INTO status_table (status) VALUES ('active');
```
### Domain Type (positive_integer):
- The extension now includes a domain type called `positive_integer`, which is a specialized data type that represents positive integers. This allows for better constraint enforcement and data validation.
- Insert a row, ensuring the quantity is a positive integer
```
INSERT INTO quant_table (quantity) VALUES (10);
```
### Custom Operator (@*):
- The extension introduces a custom operator `@*` that performs a custom operation, such as multiplication, on values of a specific type.
-- It multiplies two values of type my_type and returns a value of the same type.
```
SELECT ROW(2)::my_type @* ROW(3)::my_type AS result;
```
### Contributing
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request on the GitHub repository [pg_sample_ext](https://github.com/IshaanAdarsh/pg_sample_ext/tree/main).
## License
This project is licensed under the [PostgreSQL License](LICENSE).