{"id":21262855,"url":"https://github.com/stackql/sqlite-ext-functions","last_synced_at":"2025-03-15T07:44:37.593Z","repository":{"id":252033830,"uuid":"838248871","full_name":"stackql/sqlite-ext-functions","owner":"stackql","description":"Extended SQLite functions for StackQL","archived":false,"fork":false,"pushed_at":"2024-08-08T07:02:58.000Z","size":2772,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T22:43:07.089Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stackql.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["stackql"]}},"created_at":"2024-08-05T08:56:32.000Z","updated_at":"2024-08-08T07:03:01.000Z","dependencies_parsed_at":"2025-01-21T22:42:36.680Z","dependency_job_id":"29098373-6baf-410f-a384-3c40e27f8490","html_url":"https://github.com/stackql/sqlite-ext-functions","commit_stats":null,"previous_names":["stackql/sqlite-ext-functions"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackql%2Fsqlite-ext-functions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackql%2Fsqlite-ext-functions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackql%2Fsqlite-ext-functions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackql%2Fsqlite-ext-functions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stackql","download_url":"https://codeload.github.com/stackql/sqlite-ext-functions/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243701316,"owners_count":20333616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-21T04:59:32.562Z","updated_at":"2025-03-15T07:44:37.540Z","avatar_url":"https://github.com/stackql.png","language":"C","readme":"\u003ca href=\"https://sqlpkg.org/?q=stackql/json_equal\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/sqlpkg-stackql/json_equal-blue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://sqlpkg.org/?q=stackql/regexp\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/sqlpkg-stackql/regexp-blue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://sqlpkg.org/?q=stackql/split_part\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/sqlpkg-stackql/split_part-blue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/stackql/sqlite-ext-functions/actions/workflows/build.yml\"\u003e\n    \u003cimg src=\"https://github.com/stackql/sqlite-ext-functions/actions/workflows/build.yml/badge.svg\" alt=\"Build Status\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/stackql/sqlite-ext-functions/actions/workflows/publish.yml\"\u003e\n    \u003cimg src=\"https://github.com/stackql/sqlite-ext-functions/actions/workflows/publish.yml/badge.svg\" alt=\"Publish Status\"\u003e\n\u003c/a\u003e\n\n# SQLite Extended Functions for StackQL\n\nExtended SQLite functions for StackQL providing additional capabilities for JSON manipulation, regular expressions, and string splitting.\n\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Development](#development)\n- [License](#license)\n\n## Introduction\n\nThis repository contains a set of extended functions for SQLite designed to enhance the SQL capabilities in StackQL. These extensions provide additional JSON handling, regular expression matching, and string manipulation functionalities.\n\n## Features\n\n- **JSON Functions**: Includes `json_equal` to compare JSON objects and arrays.\n- **Regular Expression Functions**: Includes `regexp_like`, `regexp_substr`, and `regexp_replace` for pattern matching and manipulation.\n- **String Splitting Function**: Includes `split_part` to split strings based on a separator and retrieve specific parts.\n\n## Installation\n\n### Prerequisites\n\n- **SQLite**: Ensure SQLite is installed on your system.\n- **GCC**: Required for compiling the extensions.\n- **Git**: For cloning the repository.\n\n### Building from Source\n\nClone the repository and build the extensions:\n\n```bash\ngit clone https://github.com/stackql/sqlite-ext-functions.git\ncd sqlite-ext-functions\n\n# Prepare the distribution directory\nmake prepare-dist\n\n# Download the SQLite amalgamation source\nmake download-sqlite\n\n# Compile the extensions for your platform\nmake compile-linux    # For Linux\nmake compile-windows  # For Windows\nmake compile-macos    # For macOS\n```\n\n### Load Extensions\n\nAfter compilation, you can load the extensions in your SQLite shell using:\n\n```sql\n.load '/path/to/dist/json_equal'\n.load '/path/to/dist/regexp'\n.load '/path/to/dist/split_part'\n```\n\nAlternatively, you can download the extensions from [__sqlpkg__](https://sqlpkg.org/?q=stackql%2Fjson_equal).\n\n## Usage\n\n### JSON Functions\n\n```sql\nSELECT json_equal('{\"key\": \"value\"}', '{\"key\": \"value\"}'); -- Returns 1 (true)\nSELECT json_equal('[1, 2, 3]', '[3, 2, 1]'); -- Returns 0 (false)\n```\n\n### Regular Expression Functions\n\n```sql\nSELECT regexp_like('hello world', '^hello'); -- Returns 1 (true)\nSELECT regexp_substr('hello world', 'w.*d'); -- Returns 'world'\nSELECT regexp_replace('hello world', 'world', 'SQLite'); -- Returns 'hello SQLite'\n```\n\n### String Splitting Function\n\n```sql\nSELECT split_part('one,two,three', ',', 2); -- Returns 'two'\nSELECT split_part('one,two,three', ',', -1); -- Returns 'three'\n```\n\n## Development\n\n### Testing\n\nRun tests to verify the functionality of the extensions:\n\n```bash\nmake test-all\n```\n\n### Clean Up\n\nClean the distribution directory and test logs:\n\n```bash\nmake clean\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Contact\n\nFor questions or support, please reach out to [StackQL Studios](https://github.com/stackql).\n\n","funding_links":["https://github.com/sponsors/stackql"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackql%2Fsqlite-ext-functions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstackql%2Fsqlite-ext-functions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackql%2Fsqlite-ext-functions/lists"}