JustyBaseLite
Netezza / PureData System for Analytics
Zero Config • Pure JavaScript Driver • AI Copilot Assistant
|
A powerful, Zero Config VS Code extension for working with IBM Netezza / PureData System for Analytics databases.
Distinct from other extensions, JustyBaseLite includes a custom Node.js-based Netezza driver (a TypeScript reimplementation of JustyBase.NetezzaDriver), eliminating the need to install or configure IBM ODBC drivers. Just install and connect!
Features

🤖 AI Copilot Assistant

📖 Read the full Copilot documentation: Copilot SQL Assistant
- Chat Participant
@sql-copilot: Interactive conversations with full database context directly in Copilot Chat. Use commands like /schema, /optimize, /fix, /explain, /best-practices.
- Language Model Tools: 15+ automated tools that Copilot can use to autonomously query your database:
#schema - Get table DDL for tables in current SQL
#getColumns - Get column definitions for specific tables
#getTables - List all tables in a database
#executeQuery - Run SELECT queries (read-only)
#sampleData - Get sample rows from a table
#explainPlan - Get query execution plan
#searchSchema - Find tables/columns by pattern
#tableStats - Get row count, skew, distribution info
#dependencies - Find what uses this object
#workspaceProfiles - Show workspace-curated Copilot table profiles and notes
#validateSqlParser - Validate SQL with parser/linter (offline)
#validateSqlOnDatabase - Validate SQL on database runtime (EXPLAIN)
#getSqlDiagnostics - Read SQL diagnostics with SQL/NZ/NZP codes
#inspectImportFile - Inspect source file and infer import schema/preview
#proposeImportMapping - Propose source-to-target import mapping and CREATE SQL
#executeImport - Run import dry-run or execute import with audit details
#exportQueryResults - Export SQL query output or active Results grid to CSV/XLSX/XLSB
- Copilot Table Profiles View: Curate important tables in a dedicated explorer view (
Copilot Table Profiles), add usage notes, and mark profiles for auto-include or one-time include in the next Copilot request.
- Auto Mode: Apply suggested fixes or optimizations using the built-in diff editor (modal review dialog). Options: Apply Changes, Apply & Close Diff, Discard.
- Interactive Mode: Open Copilot Chat for a back-and-forth discussion; suggestions stay in Chat unless you explicitly apply them with
/edit.
- Generate SQL from Description: Describe what you need in natural language, and Copilot generates the SQL using your database schema context.
- Enhanced Agent Capabilities: Includes multi-round tool orchestration with execution budgets, standardized tool outputs (
summary/data/errors/next-actions), and follow-up prompt suggestions for @sql-copilot.
- Describe Data: From the Results panel you can request Copilot to describe a result set (first 50 rows). A privacy confirmation modal appears before any data is sent.
- Commands: Fix/Optimize/Explain/Ask/Generate/Rewrite to Best Practices (each available in Auto and Interactive variants).
🚀 Query Execution
- Zero Configuration: Connect immediately using host, user, and password. No ODBC setup required.
- Per-Tab Database: Switch active database for specific tabs using the status bar selector.
- Per-Tab Connection: Assign different connections to different SQL tabs for multi-database workflows.
- Auto-Recovery: Automatically detects broken connections and retries queries.
- Keep Connection: Toggle persistent connections globally or per-tab to avoid reconnection overhead.
- Progressive Results: Results appear immediately as queries finish, even when running multiple statements.
- Sequential Execution: Run complex scripts with multiple statements safely.
- Run Selection: Execute selected text or the current statement (
Ctrl+Enter / F5).
- Cancel Query: Stop long-running queries instantly.
- Explain Plan: Visualize query execution plan (
Ctrl+L).
- SQL Formatter: Auto-format SQL code (
Shift+Alt+F).
- 📖 Query Execution & Analysis Guide
📜 Query History
- Persistent History: All executed queries are automatically saved with timestamps.
- Search & Filter: Quickly find previously run queries by content or date.
- Re-run: Execute any query from history with a single click.
- Access: View → Query History in the Netezza panel.
🔎 Schema Browser

- Object Explorer: Browse Databases, Schemas, Tables, Views, Procedures, Sequences, and Synonyms.
- Search: Quickly find objects across the entire system.
- Rich Metadata: View column types, primary keys, and specialized object properties.
📊 Results & Export
- Data Grid: Full-featured grid with filtering, sorting, and cell selection.
- Multi-Grid Export:
- Excel (XLSB): Export all result sets to a single Excel file with multiple sheets. (Support for XLSX/XLSB is a reimplementation of SpreadSheetTasks)
- CSV, JSON, XML, SQL INSERT, Markdown: Multiple export format options.
- Open Immediately: Option to open Excel files automatically after export.
- 📖 Full Export/Import Reference
📥 Data Import & Smart Paste
- Import Wizard: Import CSV/TSV/Excel files directly into new or existing tables.
- Locale-Aware: Correctly handles numbers with comma decimals based on content.
- Smart Paste: Paste data directly from Excel or other sources; the extension auto-detects structure (Excel XML, CSV, etc.) and generates an
INSERT statement. Access via Command Palette or context menu.
🛠️ Table & Object Management

Right-click on objects in the Schema Browser for powerful context actions:
- Maintenance:
- Groom Table: Reclaim space and organize records.
- Generate Statistics: Update optimizer statistics.
- Truncate Table: Quickly empty tables.
- Recreate Table: Generate a maintenance script to recreate a table (useful for skew fixing).
- Modification:
- Rename Table: Safely rename tables.
- Change Owner: Transfer object ownership.
- Add Primary Key: GUI for adding PK constraints.
- Add Foreign Key: GUI for adding FK constraints.
- Add Unique Constraint: GUI for adding unique constraints.
- Add/Edit Comments: Manage object comments.
- Analysis:
- Compare With...: Compare table structures or procedure definitions with another object.
- Check Data Skew: Analyze distribution of data across slices.
- View/Edit Data: Edit table rows directly (with limit safeguards).
- 📖 Schema Comparison Guide
⚡ Professional Development
- DDL Generation: Generate production-ready DDL for Tables, Views, and Procedures (including arguments and returns).
- Batch DDL Export: Export DDL for an entire database or all objects of a type (Tables, Views, Procedures) at once.
- Procedure Support:
- Create Procedure: Template for new NZPLSQL procedures.
- Create External Table: GUI wizard for creating Netezza external tables with file format options.
- Notice Handling: Captures and prints
RAISE NOTICE output to the "Netezza Logs" channel.
- Signature Support: Correctly parses and displays full procedure signatures.
📈 Query Monitoring Dashboard
- Session Monitor: Real-time view of active sessions, running queries, and system resources.
- Running Queries: View currently executing queries with estimated cost, elapsed time, and ability to kill sessions.
- Resources: Monitor CPU, Memory, Disk, and Fabric utilization across SPUs with system utilization summary.
- Storage Statistics: Analyze table storage, used bytes, and data skew (weighted average) per schema and database.

- Access: Right-click on a database in the Schema Browser → Open Monitor Dashboard.
🗺️ Entity Relationship Diagram (ERD)
- Visual Schema Exploration: Generate interactive diagrams showing tables and their relationships.
- Foreign Key Visualization: Display Primary Key (PK) and Foreign Key (FK) relationships between tables.
- Column Details: View column names, data types, and key indicators directly in the diagram.

- Access: Right-click on a schema in the Schema Browser → Generate ERD.
🔄 ETL Designer

- Visual Workflow Designer: Create data workflows with drag-and-drop nodes on a canvas.
- Task Types:
- SQL Task: Execute SQL queries against the connected Netezza database.
- Python Script: Run Python scripts (inline or from file).
- Export Task: Export query results to CSV or XLSB files.
- Import Task: Import data from CSV/XLSB files into tables.
- Container Task: Group multiple tasks for organized workflows.
- Connections: Draw arrows between tasks to define execution order.
- Parallel Execution: Unconnected tasks run in parallel; connected tasks run sequentially.
- Project Management: Save and load ETL projects as
.etl.json files.
- Access: Command Palette → Netezza: Open ETL Designer or Schema Browser toolbar.
- 📖 ETL Designer Guide
🔍 SQL Linter & Validator
- Real-time Feedback: Get instant warnings and errors as you type SQL.
- 13 Built-in Rules: Detect common anti-patterns like
SELECT *, DELETE without WHERE, CROSS JOIN, UPDATE ... AS, and more.
- Configurable Severity: Set each rule to
error, warning, hint, or disable with off.
- Smart Detection: Ignores patterns inside strings and comments.
- Chevrotain Parser Validation: Advanced AST-based semantic validation that checks:
- Unknown columns and tables (SQL003, SQL004)
- Ambiguous column references (SQL008)
- Invalid data types (SQL013, SQL014)
- Unknown functions (SQL011)
- CTE and subquery scope analysis
- NZPLSQL procedure variable validation
- 📖 SQL Linter Reference
✂️ SQL Snippets
- 54 Code Snippets: Type
nz followed by a keyword to quickly insert SQL templates.
- Categories: Basic SQL, DDL, Netezza-specific (GROOM, GENERATE STATISTICS), NZPLSQL procedures, query patterns.
- Usage: Type prefix (e.g.,
nzselect, nzprocedure, nzgroom) → Press Tab.
- 📖 Full Snippets Reference
Requirements
- VS Code: v1.93.0 or higher.
- No external drivers required: The extension bundles its own pure JavaScript/TypeScript driver for Netezza.
Setup
- Install: Search for "JustyBaseLite" in the VS Code Marketplace and install.
- Connect:
- Click the Netezza icon in the Activity Bar.
- Click Connect (or edit User Settings).
- Enter
Host, User, Password, and Database.
Keyboard Shortcuts
| Shortcut |
Action |
Ctrl+Enter / F5 |
Run Current Statement / Selection |
Ctrl+Shift+Enter |
Run Query Batch |
Ctrl+Shift+L |
Lint SQL (On-Demand) |
For Contributors
# Install dependencies
npm install
# Build the extension
npm run build
# Run tests
npm run test -- --testPathPattern="sqlParser.test.ts"
npm run test -- --testNamePattern="ConnectionManager"
# Type checking and linting
npm run check-types
npm run lint
# Package for distribution
npm run package:pre
License
Apache-2.0
| |