UNPKG

hana-cli

Version:
173 lines (144 loc) 5.46 kB
# HANA CLI Command Consistency Analysis Report ## Executive Summary This analysis reviews all commands in the `./bin` folder for: 1. **Default Value Consistency** - ensuring standard defaults are used across similar commands 2. **Current Schema Support** - verifying `**CURRENT_SCHEMA**` defaults are available where appropriate 3. **Profile Parameter Coverage** - ensuring profile parameter is available for commands that support database connections ## Key Findings ### 1. CURRENT_SCHEMA Default Issues #### Commands MISSING **CURRENT_SCHEMA** default (but should have it) | Command | Parameter | Current | Recommended | | --------- | ----------- | --------- | ------------- | | dataLineage.js | schema | (no default) | `'**CURRENT_SCHEMA**'` | | dataDiff.js | schema1, schema2 | (no default) | `'**CURRENT_SCHEMA**'` | | dataProfile.js | schema | (no default) | `'**CURRENT_SCHEMA**'` | | dataValidator.js | schema | (no default) | `'**CURRENT_SCHEMA**'` | | duplicateDetection.js | schema | (no default) | `'**CURRENT_SCHEMA**'` | | erdDiagram.js | schema | (no default) | `'**CURRENT_SCHEMA**'` | | export.js | schema | (no default) | `'**CURRENT_SCHEMA**'` | | import.js | schema | (NO PARAMETER) | Add schema parameter with `'**CURRENT_SCHEMA**'` | | referentialCheck.js | schema | (no default) | `'**CURRENT_SCHEMA**'` | | schemaClone.js | sourceSchema, targetSchema | (no default) | `'**CURRENT_SCHEMA**'` | | tableCopy.js | sourceSchema, targetSchema | ✓ Already has defaults | N/A | #### Commands WITH **CURRENT_SCHEMA** default (correct) - backup.js - callProcedure.js - calcViewAnalyzer.js - cds.js - columnStats.js - compareData.js (both schemas) - compareSchema.js (both schemas) - ftIndexes.js - functions.js - graphWorkspaces.js - indexes.js - libraries.js - objects.js - partitions.js - procedures.js - roles.js - sequences.js - spatialData.js - synonyms.js - tables.js - tableGroups.js - tableHotspots.js - tableCopy.js (both schemas) ✓ - triggers.js - views.js ### 2. Profile Parameter Coverage #### Commands WITH profile parameter (correct) - compareData.js - compareSchema.js - dataDiff.js - dataMask.js - dataProfile.js - dataSync.js - dataValidator.js - dataLineage.js - dependencies.js - duplicateDetection.js - erdDiagram.js - export.js - generateDocs.js - generateTestData.js - import.js - querySimple.js - referentialCheck.js - replicationStatus.js - schemaClone.js - sdiTasks.js - tableCopy.js - tables.js #### Commands POTENTIALLY MISSING profile parameter (schema-related commands) | Command | Has Profile? | Recommendation | | --------- | ------------- | --- | | views.js | ✗ | Add profile parameter | | indexes.js | ✗ | Add profile parameter | | functions.js | ✗ | Add profile parameter | | procedures.js | ✗ | Add profile parameter | | triggers.js | ✗ | Add profile parameter | | sequences.js | ✗ | Add profile parameter | | libraries.js | ✗ | Add profile parameter | | roles.js | ✗ | Add profile parameter | | objects.js | ✗ | Add profile parameter | | partitions.js | ✗ | Add profile parameter | | columnStats.js | ✗ | Add profile parameter | | spatialData.js | ✗ | Add profile parameter | | ftIndexes.js | ✗ | Add profile parameter | | graphWorkspaces.js | ✗ | Add profile parameter | | tableHotspots.js | ✗ | Add profile parameter | | tableGroups.js | ✗ | Add profile parameter | | calcViewAnalyzer.js | ✗ | Add profile parameter | | callProcedure.js | ✗ | Add profile parameter | | cds.js | ✗ | Add profile parameter | ### 3. Default Limit Values Consistent default limit: **200** is used across most commands - **100**: calcViewAnalyzer.js (special case - calc views) - **200**: Standard for list commands, but varies for analysis commands - **1000**: import.js (batchSize) - **10000**: dataDiff.js, dataValidator.js, duplicateDetection.js, referentialCheck.js ### 4. Profile Parameter Consistency All profile parameters use: ```javascript profile: { alias: ['p'], type: 'string', desc: baseLite.bundle.getText("profile") } ``` This pattern is consistent. ✓ ## Recommended Actions ### Priority 1: Add CURRENT_SCHEMA defaults (Critical) These commands should have schema parameters with **CURRENT_SCHEMA** defaults: 1. **dataLineage.js** - Add default: `'**CURRENT_SCHEMA**'` to schema 2. **dataDiff.js** - Add defaults: `'**CURRENT_SCHEMA**'` to schema1 and schema2 3. **dataProfile.js** - Add default: `'**CURRENT_SCHEMA**'` to schema 4. **dataValidator.js** - Add default: `'**CURRENT_SCHEMA**'` to schema 5. **duplicateDetection.js** - Add default: `'**CURRENT_SCHEMA**'` to schema 6. **erdDiagram.js** - Add default: `'**CURRENT_SCHEMA**'` to schema 7. **export.js** - Add default: `'**CURRENT_SCHEMA**'` to schema 8. **referentialCheck.js** - Add default: `'**CURRENT_SCHEMA**'` to schema 9. **schemaClone.js** - Add defaults: `'**CURRENT_SCHEMA**'` to sourceSchema and targetSchema 10. **import.js** - **CRITICAL**: Add schema parameter with default `'**CURRENT_SCHEMA**'` ### Priority 2: Add profile parameters to list commands These commands support database connections and should have profile parameters: 1. views.js 2. indexes.js 3. functions.js 4. procedures.js 5. triggers.js 6. sequences.js 7. libraries.js 8. roles.js 9. objects.js 10. partitions.js 11. columnStats.js 12. spatialData.js 13. ftIndexes.js 14. graphWorkspaces.js 15. tableHotspots.js 16. tableGroups.js 17. calcViewAnalyzer.js 18. callProcedure.js 19. cds.js