Skip to content

HeliosDB End-User Feature Test Report

HeliosDB End-User Feature Test Report

Date: 2026-01-25 Version: 7.1.0 Build: Docker (MINIMAL - 7 feature groups enabled)

Executive Summary

This report documents the results of end-user testing of HeliosDB features through various protocols and interfaces. Testing was performed using the Docker-deployed heliosdb:latest image.

Test Environment

  • Container: heliosdb:latest (Docker build)
  • Ports Exposed:
    • PostgreSQL: 25432 -> 5432
    • MySQL: 23306 -> 3306
    • SQL Server (TDS): 31433 -> 1433
    • HTTP API: 28443 -> 8443
  • Authentication: Default password password for all users

Protocol Connectivity Tests

PostgreSQL Protocol (Port 5432)

FeatureStatusNotes
ConnectionPASSSCRAM authentication works
SELECT queriesPASSBasic queries work
INSERT statementsPASSSingle and batch inserts work
UPDATE statementsPASSWorks with simple predicates
DELETE statementsPASSWorks with simple predicates
CREATE TABLEPASSBasic table creation works
DROP TABLEPASSWorks
Transactions (BEGIN/COMMIT)PASSWorks
Transactions (ROLLBACK)ISSUEROLLBACK may not properly undo uncommitted changes
Aggregations (COUNT, MAX, SUM)PASSWorks
JOINsISSUEColumn ID errors during JOIN execution
WHERE clause with complex predicatesISSUESome predicates cause column ID errors
VARCHAR(N) syntaxISSUETriggers false positive SQL injection detection

MySQL Protocol (Port 3306)

FeatureStatusNotes
ConnectionPASSHandshake successful
AuthenticationPASSUser authenticated
Protocol versionPASSReports as 8.0.35-HeliosDB
Basic queriesPARTIALAuthentication works, results may be empty

HTTP/REST API (Port 8443)

FeatureStatusNotes
GET /healthPASSReturns {"status":"healthy","version":"7.0.0"}
GET /statusPASSReturns status with enabled protocols
GET /PASSReturns API info and endpoints
POST /api/v1/queryNOT IMPLReturns “not yet implemented” message

MongoDB Protocol (Port 27017)

FeatureStatusNotes
Port listeningNOT STARTEDMongoDB protocol not started in minimal build

Redis Protocol (Port 6379)

FeatureStatusNotes
Port listeningNOT STARTEDRedis protocol not started in minimal build

Cassandra/CQL Protocol (Port 9042)

FeatureStatusNotes
Port listeningNOT STARTEDCassandra protocol not started in minimal build

Feature Tests via PostgreSQL

FeatureStatusNotes
CREATE EXTENSION vectorPASSExtension created
CREATE TABLE with VECTOR columnPASSTable created
INSERT vector dataPASSUsing ARRAY syntax
Vector similarity search (<->)PASSORDER BY with vector distance works
vector_dims() functionSTUBReturns function name, not actual result
l2_distance() functionSTUBReturns function name, not actual result

Branching and Time-Travel

FeatureStatusNotes
CREATE DATABASE BRANCHNOT PARSEDSQL syntax not recognized
SHOW BRANCHESNOT SUPPORTEDStatement type not handled
USE BRANCHNOT PARSEDSQL syntax not recognized
AS OF TIMESTAMPNOT PARSEDTemporal syntax not supported
AS OF SCNNOT PARSEDTemporal syntax not supported
FOR SYSTEM_TIMENOT PARSEDTemporal syntax not supported

Transactions

FeatureStatusNotes
BEGINPASSTransaction starts
COMMITPASSChanges persisted
ROLLBACKISSUEMay not properly undo uncommitted changes
SAVEPOINTPASSSavepoint created
ROLLBACK TO savepointPASSRolls back to savepoint
SET TRANSACTION ISOLATION LEVELNOT SUPPORTEDStatement not implemented

Security (RBAC/RLS)

FeatureStatusNotes
CREATE USERNOT PARSEDSQL syntax not recognized
CREATE ROLENOT SUPPORTEDStatement not implemented
GRANTNOT SUPPORTEDStatement not implemented
ALTER TABLE ENABLE ROW LEVEL SECURITYNOT SUPPORTEDStatement not implemented
CREATE POLICYNOT SUPPORTEDStatement not implemented

Backup and Recovery

FeatureStatusNotes
BACKUP DATABASENOT PARSEDSQL syntax not recognized
CALL backup_database()NOT SUPPORTEDCALL statements not implemented
HTTP /api/v1/backupNOT FOUNDEndpoint not available

CLI/REPL

FeatureStatusNotes
hsql binaryNOT IN IMAGECLI binary not included in Docker image

Issues Identified

Critical Issues

  1. ROLLBACK Not Working Correctly

    • Uncommitted changes appear to persist after ROLLBACK
    • Impact: Data integrity concerns in transaction handling
  2. JOIN Execution Errors

    • Column ID 30 not found in schema errors during JOIN queries
    • Impact: Multi-table queries may fail

High Priority Issues

  1. VARCHAR(N) False Positive SQL Injection

    • VARCHAR(100) triggers security validator
    • Pattern CHAR( detected as injection attempt
    • Impact: Standard table definitions blocked
  2. Missing SQL Statement Support

    • Branch management statements not parsed
    • Security statements (CREATE USER, GRANT) not supported
    • Time-travel queries not supported

Medium Priority Issues

  1. Vector Functions are Stubs

    • vector_dims(), l2_distance() return function names
    • Impact: Vector utility functions non-functional
  2. MongoDB/Redis/Cassandra Not Started

    • Only PostgreSQL, MySQL, HTTP, and TDS active in minimal build
    • Impact: Multi-protocol testing limited

Low Priority Issues

  1. CLI Not in Docker Image
    • hsql REPL binary not included
    • Impact: Users must use psql or other clients

Recommendations

Immediate Fixes Needed

  1. Fix ROLLBACK behavior - Ensure uncommitted changes are properly undone
  2. Fix VARCHAR detection - Update SQL injection patterns to allow valid DDL
  3. Fix JOIN execution - Resolve column ID mapping in multi-table queries

Feature Exposure Needed

  1. Add Branch SQL support - Parse and execute CREATE DATABASE BRANCH, etc.
  2. Add Security SQL support - Implement CREATE USER, CREATE ROLE, GRANT
  3. Add Time-travel syntax - Support AS OF TIMESTAMP/SCN in SELECT
  4. Add backup/restore API - HTTP endpoint and/or SQL commands

Build Improvements

  1. Include hsql in Docker - Add CLI binary for interactive use
  2. Enable all protocols - Consider full build for production testing

Test Commands Reference

PostgreSQL Connection

Terminal window
PGPASSWORD=password psql -h 127.0.0.1 -p 25432 -U helios -d heliosdb

HTTP API Test

Terminal window
curl -4 http://127.0.0.1:28443/health

MySQL Connection (via Python)

import pymysql
conn = pymysql.connect(host='127.0.0.1', port=23306, user='helios', password='password', database='heliosdb')

Appendix: Working SQL Examples

-- Table creation (simple types only)
CREATE TABLE users (id INT, name TEXT);
-- Insert data
INSERT INTO users VALUES (1, 'Alice');
-- Select with aggregation
SELECT COUNT(*) FROM users;
-- Transaction
BEGIN;
INSERT INTO users VALUES (2, 'Bob');
COMMIT;
-- Vector table
CREATE TABLE embeddings (id INT, vec VECTOR);
INSERT INTO embeddings VALUES (1, ARRAY[0.1, 0.2, 0.3]);
SELECT id FROM embeddings ORDER BY vec <-> ARRAY[0.15, 0.25, 0.35] LIMIT 2;

Appendix: Non-Working SQL Examples

-- Branching (not parsed)
CREATE DATABASE BRANCH feature_test FROM CURRENT;
-- Time-travel (not parsed)
SELECT * FROM users AS OF TIMESTAMP '2026-01-24T00:00:00Z';
-- Security (not supported)
CREATE USER testuser WITH PASSWORD 'testpass';
CREATE ROLE testrole;
GRANT SELECT ON users TO testrole;
-- Isolation levels (not supported)
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
-- Backup (not parsed)
BACKUP DATABASE heliosdb TO '/tmp/backup';