Repository navigation
v1.5.0
#36
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
NeoSQLite v1.5.0 Release Notes
Overview
This is a feature-complete release that brings NeoSQLite to 99% MongoDB $expr operator compatibility (119 out of 120 operators implemented). This release completes all missing mathematical operators including hyperbolic functions, inverse hyperbolic functions, and the sigmoid function. We've also achieved full MongoDB compatibility for logarithmic operators with custom base support and added comprehensive warning systems for NeoSQLite-specific extensions.
Key Achievement: NeoSQLite now supports more mathematical operators than MongoDB, including native hyperbolic functions and sigmoid activation—making it ideal for scientific computing and machine learning workloads.
New Features
Complete Mathematical Operator Support
Added: Full suite of mathematical operators for scientific and ML workloads
Logarithmic Operators (100% MongoDB Compatible + 1 Extension)
New Operators:
$ln- Natural logarithm (base e) - MongoDB compatible$log- Logarithm with custom base{ $log: [ <number>, <base> ] }- MongoDB compatible$log2- Base-2 logarithm - NeoSQLite extension$log10- Base-10 logarithm - MongoDB compatibleUsage Examples:
Hyperbolic Functions (100% MongoDB Compatible)
New Operators:
$sinh- Hyperbolic sine$cosh- Hyperbolic cosine$tanh- Hyperbolic tangentUsage Examples:
Inverse Hyperbolic Functions (100% MongoDB Compatible)
New Operators:
$asinh- Inverse hyperbolic sine$acosh- Inverse hyperbolic cosine (domain: x ≥ 1)$atanh- Inverse inverse hyperbolic tangent (domain: -1 < x < 1)Usage Examples:
Sigmoid Function (100% MongoDB Compatible)
New Operator:
$sigmoid- Sigmoid activation function:1 / (1 + e^(-x))MongoDB 8.2+ Compatible Syntax:
ML Use Case:
$log2 Compatibility Warning System
Added: User-friendly warnings for NeoSQLite-specific extensions
Warning Message:
Warning Suppression Options:
Method 1: Environment Variable
Method 2: Programmatic Suppression
Method 3: pytest Configuration
Design Rationale:
warningsmodulePYTHONWARNINGSenvironment variableImplementation Status
Operator Coverage (99%)
Total: 119 out of 120 operators implemented
Missing Operators (1 total)
$let$dateToString$dateFromParts$dateToParts$toDate$dateTruncNote: All missing operators gracefully fall back to Python evaluation with no breaking changes.
Performance Enhancements
SQLite Native Function Utilization
Hyperbolic Functions: Direct SQLite
sinh(),cosh(),tanh(),asinh(),acosh(),atanh()callsLogarithmic Functions: Direct SQLite
ln(),log(),log10(),log2()callsSigmoid Function: Optimized SQLite expression
1.0 / (1.0 + exp(-x))SQL Tier Coverage
Operators with SQL Tier Support: 25+ operators
$ln,$log,$log10,$log2)$sinh,$cosh,$tanh,$asinh,$acosh,$atanh)$exp,$sigmoid)Python Tier Fallback: 95 operators
Bug Fixes
None
This release focuses on feature completion rather than bug fixes. All previous bugs from v1.4.0 remain resolved.
Implementation Details
Core Changes
expr_evaluator.py (+200 lines):
_convert_trig_operator()support for hyperbolic functions_evaluate_trig_python()for hyperbolic and inverse hyperbolic$sigmoidSQL and Python evaluation withonNullsupport$log2compatibility warning systemwarningsmodule integrationexpr_evaluator.py Architecture:
Documentation
New Files:
documents/releases/v1.5.0.md- This release noteUpdated Files:
documents/EXPR_IMPLEMENTATION.md- Updated operator counts (106 → 119), added hyperbolic and sigmoid documentationneosqlite/collection/expr_evaluator.py- Module docstring with complete operator listKnown Limitations
$log2 NeoSQLite Extension
Limitation:
$log2is not available in MongoDBImpact: Code using
$log2requires modification for MongoDB migrationMitigation:
{ $log2: <x> }→{ $log: [ <x>, 2 ] }Example Migration:
Date/Time Formatting Operators
Missing:
$dateToString,$dateFromParts,$dateToParts,$toDate,$dateTruncReason: SQLite string formatting and date construction limitations
Workaround: All missing operators fall back to Python evaluation automatically
Working Operations
Complete Mathematical Expressions
Complex Mathematical Expressions
Testing
New Test Files Added
Mathematical Operators Test Suite (23 new tests):
$lnoperator tests$logwith custom base tests$log2operator testsTestHyperbolicOperatorsclass (7 tests)TestSigmoidOperatorclass (4 tests)onNulloption tests for$sigmoidError Handling Test Suite (29 new tests):
Test Coverage
Compatibility Testing
$log2Documentation Updates
Updated Files
documents/EXPR_IMPLEMENTATION.md: Updated operator counts (106→119), added hyperbolic and sigmoid documentationneosqlite/collection/expr_evaluator.py: Module docstring with complete operator listInstallation
Upgrade Notes
From v1.4.0
This release adds significant mathematical capabilities while maintaining full backward compatibility:
New capabilities in v1.5.0:
$ln,$logwith custom base,$log2)$sinh,$cosh,$tanh)$asinh,$acosh,$atanh)onNullsupport$log2 warning behavior:
ExprEvaluatorinstancePYTHONWARNINGSorwarnings.filterwarnings()Breaking Changes
None - This release maintains full backward compatibility with v1.4.0.
Migration Notes
$log2warning can be suppressed for productionCompatibility
$log2) with warningNeoSQLite v1.5.0 represents a major milestone: production-ready mathematical expression support with near-complete MongoDB compatibility. The addition of hyperbolic functions and sigmoid activation makes NeoSQLite particularly well-suited for scientific computing and machine learning workloads directly in the database.
This discussion was created from the release v1.5.0.
All reactions