Skip to content

Initial documentation for Vertica. - #66

Merged
mikependon merged 1 commit into
masterfrom
vertica-docs
Aug 30, 2026
Merged

Initial documentation for Vertica.#66
mikependon merged 1 commit into
masterfrom
vertica-docs

Conversation

@mikependon

Copy link
Copy Markdown
Owner

Summary

Adds end-to-end documentation for RepoDB's Vertica support: RepoDb.Vertica (core provider) and RepoDb.Vertica.BulkOperations (bulk operations extension), following the same structure and conventions already established for the other providers (Db2, Firebird, Oracle, etc.).

  • Get Started — installation (including the process-wide CultureInfo.InvariantCulture caveat UseVertica() applies), table/model setup, and every CRUD operation with Vertica-specific behavior and gotchas.
  • AttributesVerticaType, SourceColumn, SourceColumnNullMapping, SourceVersion (decorating VerticaParameter).
  • ClassesVerticaBootstrap, VerticaConfiguration, VerticaDbSetting, VerticaDbHelper, VerticaStatementBuilder, three resolvers (VerticaConvertFieldResolver, DbTypeToVerticaStringNameResolver, VerticaDbTypeNameToClientTypeResolver, DbTypeNameToColumnNameResolver), the TimeToDateTimePropertyHandler property handler, and the bulk package's VerticaBulkInsertMapItem / VerticaTraceKeys. (VerticaBulkCopy is internal and intentionally has no page.)
  • EnumerationsVerticaBulkImportIdentityBehavior, VerticaBulkImportPseudoTableType.
  • Operations — a provider index page (mechanics, pseudo-table types, generated SQL shapes) plus BulkInsert, BulkMerge, BulkUpdate, BulkDelete, BulkDeleteByKey, each with a Mermaid call-flow diagram.
  • Releasesrelease/vertica and release/verticabulk, each with a "Known limitations" section.
  • Site wiring — registered the new Get Started and Release pages in _data/documentation.yml's search index, added Vertica to the database picker on home.md, and to the "Supported Providers" list in features/bulkoperations.md.

No existing pages for other providers were changed beyond those three registration edits.

Notable findings surfaced as "Known limitations" rather than assumed to work

Documentation was written directly from the RepoDb.Vertica/RepoDb.Vertica.BulkOperations source, and a few things worth a second look before this ships as real (non-preview) behavior:

  1. Core Merge/MergeAll may violate Vertica's own compound-statement restriction. VerticaStatementBuilder compiles Merge/MergeAll as a single UPDATE ...; INSERT ... command text, with parameters in both halves. Elsewhere in the same codebase, IsInsertAllBatchable's own remarks state that VerticaCommand "refuses to execute [a compound stmt1; stmt2 statement] once it carries a parameter." These two facts appear to contradict each other. Flagged prominently in release/vertica, class/vertica/verticastatementbuilder, operation/vertica, and the Get Started page.
  2. GetScopeIdentity/GetScopeIdentityAsync run SELECT LAST_INSERT_ID(), and the bulk package's identity read-back arithmetic (subtracting a descending offset from that one value) assumes Vertica assigns IDENTITY/AUTO_INCREMENT values strictly contiguously in insertion order. Neither has been checked against a live instance.
  3. Duplicate property handler. RepoDb.PropertyHandlers.VerticaTimeToDateTimePropertyHandler and RepoDb.PropertyHandlers.Vertica.TimeToDateTimePropertyHandler are near-identical; only the latter is referenced by the library's own integration tests. Documented only the one actually in use, and called out the other as likely dead code from a refactor.

Test plan

This is a documentation-only change (Jekyll pages + YAML data, no application code).

  • bundle exec jekyll build (or equivalent) completes without broken front matter / liquid errors.
  • Spot-check the new pages render correctly and the sidebar nav picks up the new "Vertica" sections under GET STARTED, ATTRIBUTES, CLASSES, ENUMERATIONS, OPERATIONS, and RELEASES.
  • Click through cross-links between the new Vertica pages (Get Started ↔ Operations ↔ Enumerations ↔ Classes ↔ Releases) to confirm no dead links.
  • Confirm the home page's database list and the Bulk Operations feature page show the new "Vertica" entries.
  • Have the two flagged correctness concerns above (compound Merge statement, LAST_INSERT_ID() assumptions) verified against a live Vertica instance, ideally before or alongside promoting the underlying RepoDb.Vertica/RepoDb.Vertica.BulkOperations packages out of preview.

@mikependon
mikependon merged commit 5457b4b into master Aug 30, 2026
1 of 2 checks passed
@mikependon
mikependon deleted the vertica-docs branch August 30, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant