Skip to content

Feature/add support sybase#294

Merged
nbesimi merged 4 commits intodevelopfrom
feature/add-support-sybase
Feb 4, 2026
Merged

Feature/add support sybase#294
nbesimi merged 4 commits intodevelopfrom
feature/add-support-sybase

Conversation

@Femi3211
Copy link
Collaborator

@Femi3211 Femi3211 commented Jan 30, 2026

Summary by CodeRabbit

  • New Features
    • Added SAP IQ source integration with metadata extraction for tables, columns, and views.
  • Documentation
    • Updated compatibility matrix to include SAP IQ (Sybase) support indicators for all source databases.

@Femi3211 Femi3211 requested a review from nbesimi January 30, 2026 14:17
@coderabbitai
Copy link

coderabbitai bot commented Jan 30, 2026

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • translator/src/main/resources/translation_matrix/translation.csv is excluded by !**/*.csv

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
📝 Walkthrough

Walkthrough

Adds three SAPIQ Rosetta extractor classes: a new Columns extractor with type mapping and nullable parsing, plus simple Tables and View extractors. Also updates README translation matrix to include an SAP IQ (Sybase) column.

Changes

Cohort / File(s) Summary
SAPIQ Extractors
source/src/main/java/com/adataptivescale/rosetta/source/core/extractors/column/SAPIQColumnsExtractor.java, source/src/main/java/com/adataptivescale/rosetta/source/core/extractors/table/SAPIQTablesExtractor.java, source/src/main/java/com/adataptivescale/rosetta/source/core/extractors/view/SAPIQViewExtractor.java
Added three Rosetta module classes for sapiq. SAPIQColumnsExtractor extends ColumnsExtractor and overrides extract to set COLUMN_NAME, map TYPE_NAME via TranslationMatrix, parse IS_NULLABLE (handles "YES"/"NO" strings with boolean fallback), and set display size/scale/precision; includes a public constructor that accepts a Connection. SAPIQTablesExtractor and SAPIQViewExtractor extend default extractors and register as modules.
Documentation
README.md
Updated the translation matrix to add an "SAP IQ (Sybase)" column with per-database compatibility markers (mostly unsupported entries).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I nibbled through schema night and day,
Added SAPIQ extractors to the play,
Columns mapped and nulls made right,
Tables and views step into the light,
Hooray for rabbits—and code taking flight!

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Feature/add support sybase' is generic and lacks specificity. While it broadly relates to the changeset, it doesn't clearly describe the main change (adding SAPIQ extractors for Sybase support). Revise the title to be more descriptive and specific, such as 'Add SAPIQ column, table, and view extractors for Sybase support' or similar, clearly indicating what components are being added.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/add-support-sybase

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
`@source/src/main/java/com/adataptivescale/rosetta/source/core/extractors/column/SAPIQColumnsExtractor.java`:
- Around line 42-44: The code uses
String.valueOf(resultSet.getString("TYPE_NAME")) which turns SQL NULL into the
literal "null" and then feeds that into TranslationMatrix; instead, retrieve the
raw String via resultSet.getString("TYPE_NAME"), check for null, and only call
TranslationMatrix.getInstance().findBySourceTypeAndSourceColumnType("sapiq",
columnType) and setTypeName when columnType != null; apply the same change to
the other extractor classes (BigQueryColumnsExtractor, RedshiftColumnsExtractor,
PostgresColumnsExtractor, SnowflakeColumnsExtractor, SpannerColumnsExtractor,
MySQLColumnsExtractor, KineticaColumnsExtractor) replacing the
String.valueOf(...) usage and guarding the TranslationMatrix lookup with a null
check.

@nbesimi
Copy link
Contributor

nbesimi commented Feb 1, 2026

Make sure you also udpate the README.md and also include the new Driver in the Driver Download process

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
README.md (1)

82-83: ⚠️ Potential issue | 🔴 Critical

Add SAP IQ driver to the driver download process.

While SAP IQ is implemented in the codebase and appears in the README support matrix, it is missing from the downloadable drivers list. The cli/src/main/resources/drivers.yaml file contains 10 drivers but does not include SAP IQ, and consequently, docs/markdowns/download_drivers.md also lacks SAP IQ documentation. Users attempting to use rosetta init or the rosetta drivers command cannot access the SAP IQ driver.

Add SAP IQ (Sybase) driver entry to drivers.yaml and update download_drivers.md with the corresponding download link and JDBC connection string example.

🤖 Fix all issues with AI agents
In `@README.md`:
- Around line 31-43: The README matrix is inaccurate because SAP IQ extractors
(SAPIQColumnsExtractor, SAPIQTablesExtractor, SAPIQViewExtractor) call
TranslationMatrix but translation.csv lacks SAP IQ type mappings so translations
fail; add SAP IQ entries mapping native SAP IQ types to each target (BigQuery,
Snowflake, MySQL, Postgres, Kinetica, Spanner, SQL Server, DB2, Oracle,
Redshift) in translator/src/main/resources/translation_matrix/translation.csv,
add any SAP IQ-specific attributes to translation_attribute.csv, update the
README table entries for SAP IQ (and Kinetica if mappings are missing) to
reflect true support, and add tests that exercise SAPIQ* extractors and
TranslationMatrix mapping (asserting translated target types) to validate the
fix.
🧹 Nitpick comments (1)
README.md (1)

86-106: Consider adding a SAP IQ connection configuration example.

Since this PR introduces SAP IQ support, it would be helpful to include a SAP IQ connection example in the configuration section. This would guide users on the correct JDBC connection string format and required parameters for SAP IQ.

📝 Suggested SAP IQ configuration example

Add the following example to demonstrate SAP IQ connectivity:

   userName: postgres
   password: sakila
+  - name: sapiq
+    databaseName: your_database
+    schemaName: DBA
+    dbType: sapiq
+    url: jdbc:sybase:Tds:localhost:2638?ServiceName=your_database
+    userName: DBA
+    password: your_password

Note: The exact JDBC URL format should match the SAP IQ jConnect driver requirements. Please verify the correct URL pattern, default port (typically 2638 for SAP IQ), and required connection parameters.

@nbesimi nbesimi merged commit 5839b0a into develop Feb 4, 2026
2 checks passed
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.

2 participants