-
Notifications
You must be signed in to change notification settings - Fork 526
Dapr state store clickhouse #3675
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Mehmet TOSUN <[email protected]>
Thanks @middt, implementation generally looks good to me! Would it be possible to add conformance tests for this too? It seems like we should be able to spin up a click house docker compose. |
…tation Signed-off-by: Mehmet TOSUN <[email protected]>
…tion handling Signed-off-by: Mehmet TOSUN <[email protected]>
… connection handling Signed-off-by: Mehmet TOSUN <[email protected]>
1b2a8de
to
2c8934c
Compare
Thank you for the feedback! @JoshVanL I've implemented the conformance tests for the ClickHouse state store in this PR:
The tests verify all the key functionality including:
I've also addressed authentication issues by properly configuring username and password in both the Docker Compose setup and the state store implementation. All unit tests are now passing, confirming that the implementation works correctly with the ClickHouse server. |
Signed-off-by: Mehmet TOSUN <[email protected]>
Signed-off-by: Mehmet TOSUN <[email protected]>
Thanks @middt, I think the only thing left is to do a Appreciate the work on this! |
Also, mind checking the linter locally? It appears to fail in CI |
0eb488c
to
a910129
Compare
- Fix import ordering and formatting (goimports, gofmt) - Replace fmt.Sprintf with string concatenation for SQL queries - Add nolint comments for legitimate SQL string concatenation - Fix variable shadowing issues (govet) - Remove unused function and imports - Use t.Context() instead of context.Background() in tests - Update go.mod/go.sum with ClickHouse dependencies All linter checks now pass successfully. Signed-off-by: Mehmet TOSUN <[email protected]>
- GPG key has been added to GitHub account - All commits should now show as verified - Retrigger CI pipeline to validate GPG signatures Signed-off-by: Mehmet TOSUN <[email protected]>
- Updated Git email to [email protected] - Created new GPG key matching Git email - This commit should now show as verified with correct email Signed-off-by: Mehmet TOSUN <[email protected]>
5e268b9
to
9392000
Compare
Thanks for the feedback! @cicoyle I've already fixed all linter issues locally (import formatting, gosec warnings, variable shadowing, etc.) and the latest commits should pass CI. |
Absolutely! I've created a corresponding PR targeting the v1.16 branch with the same ClickHouse state store documentation. |
- Add missing metadata.yaml file for component metadata schema - Add ClickHouse to test-info.mjs configuration for CI/CD - Add docker-compose-clickhouse.yml infrastructure setup - Enable conformance and certification testing for ClickHouse This resolves the 'Annotations 5 errors' build failures. Signed-off-by: Mehmet TOSUN <[email protected]>
a305a6a
to
a0e0d9a
Compare
@middt can you please run |
- Update metadata.yaml to use struct field names (ClickhouseURL, DatabaseName, TableName, Username, Password) - Remove mapstructure tags from clickhouseMetadata struct since field names now match - Update tests to use new field names - Use kitmd.DecodeMetadata for automatic metadata parsing - This resolves the metadata validation errors in the build process Signed-off-by: Mehmet TOSUN <[email protected]>
✅ Done! :) |
Description
This PR adds a new state store component for ClickHouse, a column-oriented database management system. The ClickHouse state store component provides the following features:
Key implementation details:
Implementation Details
The component includes:
State store implementation (
clickhouse.go
)Tests (
clickhouse_test.go
)Configuration options:
Checklist
Testing Done
Tests were run against ClickHouse v23.8 using the official Go driver.
Additional Notes