Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.10.0 (2026-05-09)¶
Feat¶
notiondbapi: add close() to AbstractNotionClient and subclasses
sql: implement two-phase execution pipeline (#265)
sql: add Update AST node and compilation (#264)
Fix¶
remove leftover pdb debug imports from production source
0.9.0 (2026-05-03)¶
Feat¶
sql: Add support for bulk statements (#167).
sql: Add bulk inserts.
sql: Add bulk inserts
sql: Design INSERT … RETURNING as a post fetch operation (#200).
transactions: Initial exploration on transaction management.
sql: Add support for explicit returning to DELETE statement (#224).
sql: Add DELETE SQL statement execution (#13).
sql: Add
Deleteclass and its compilation.notiondbapi: Add execution of bulk operations to DBAPI cursor.
sql: Add filter for non deleted pages only in
NotionCompiler.visit_select()(#208).notion_sdk: Add support for
in_trashparameter inInMemoryNotionClient.databases_query(#207).sql: Add system columns
engine: Add row count preservation for INSERT and SELECT statements (#194).
engine: Add rowcount preservation for INSERT statement.
Fix¶
sql: Multiple tests fails with
AttributeError((#234)[https://github.com/giant0791/normlite/issues/234]).notiondbapi: Multiple test fails in
test_dbapi2_cursor.py(#235).engine: Test
test_drop_tablefails withTypeError(#236).tests: Multiple tests fail in
test_insert.py(#238).sql: Passing a date formatted string as value in
Insert.values()generatesNonebound parameter (#220).engine: Missing values for columns in Insert.values() does not raise if values are missing in the binding parameters (#228).
notiondbapi: Fix result processing for created pages.
notiondbapi:
Cursor.rowcountreturns the size of the current result set only.notiondbapi: Fix the
lastrowidin the DBAPI cursor (#171).notiondbapi: Fix the
lastrowidin the DBAPI cursor.
Refactor¶
sql: Remove system column storing table name from
Table(#247).test: Refactor the overall test suite (#237).
sql: Add a public API to
Tablefor obtaining user defined columns only (#239).sql: use DateTimeRange in Date filter processor (#232)
sql: Automatic system column management (#155).
sql: Add to
SchmaInfoseparate read-only attributes for projected user and system columns.sql: Refactor result processing for numbers and text type engines (#215).
sql: Refactor table columns into user and system columns (#202).
notiondbapi: Refactor Notion object model in
notiondbapipackage (#205).notiondbapi: Refactor
Cursorto use new classResultSet.notiondbapi: Introduce
ResultSetclass for managingCursorresult sets.notiondbapi: Refactor cursor description in DBAPI
Cursorclass (#150).
0.8.1 (2026-02-27)¶
Fix¶
sql: Fix Lack of consistency check for
Table(#70).
0.8.0 (2026-02-27)¶
Feat¶
engine: Add
ReflectTableconstruct (WIP).engine: Add
DropTableas DDL statement (#177).notion_sdk: add
searchendpoint (#180).notion_sdk: add
searchendpoint (WIP).sql: Add
DropTableDDL statement.notion_sdk: Add
databases_update()to the in-memory Notion client.sql: Add
DropTableDDL statement.engine: Add table “tables” update and exists capabilities in
Engine([#173(https://github.com/giant0791/normlite/issues/173)).engine: Add
Enginehelpers to manage system “tables”.engine: Extend
Connection.execute()behavior when parameters are provided (#134).util: Add normlite deprecated decorator as utility.
main: Add
frozendictclass for immutable dictionaries.sql: Add
SELECTDML statement (#140).sql: Add column projection to
Selectstatement.sql: Add SlqAlchemy-like function operators.
sql: Add safety guard by forbidding Python truthiness test on column expressions.
sql: Add
startswithoperator.sql: Add method to return user-defined columns only.
sql: Add support for after and before date operators.
sql: Add compilation of unary expressions.
sql: add
WHEREclause toSelectconstruct.sql: add
SelectDML construct (noWHEREclause).sql: Add
not_in,endswithforStringandbeforeforDate.sql: add operators “!=” and “in_” in binary expressions with String columns.
sql: add column binary expressions #147
sql: add SQL AST elements for column expressions.
sql: Reflect all tables in
MetaData#142sql: Add ReflectTable as DDL executable #125
add
HasTableas DDL executable (119).
Fix¶
Reverse misspelling of
Connection._execution_optionsattribute.engine: Replace result processor with getter in
ReflectedTableInfo.from_dict().sql:
Booleanresult process shall handle dictionaries too.engine: Remove unused variable in
Row._process_dml_row().sql: Normalize INSERT/SELECT compilation of resulting columns.
sql:
visit_select()misspells endpointnotion_sdk: Remove duplicate typing imports.
sql: Modify
get_col_spec()method to return the actual number format.Multiple issues in the type API.
Outdated imports for
CursorResultandRow.Remove dialect parameter from type engine API #124
Proper bind processing for bind parameter #146
notiondbapi: Refactor DescriptionCompiler to return metadata columns only #136.
Refactor¶
normlite: Add flat imports for more ergonomic library usage (#186).
engine: Refactor
Inspector.has_table()method to reflect the new table lifecycle states (#184).sql: Refactor
ReflectTablefor new execution pipeline (#166).engine: Complete the migration of
Enginetable metadata handling toSystemCatalog.engine: Add public API for
SystemCatalog.engine: Move system catalog
Enginemethods to specialized class (WIP).sql: Major refactoring of
Table.create()/Table.drop()(WIP)sql: Major refactoring of (WIP).
sql: Add write-only cache for system tables page id in
Table.engine: Refactor
HasTablefor new execution pipeline (#164).sql: Add comprehensive argument validation to
Table.sql: Remove obsolete code.
sql: Remove obsolete
SQLCompiler.visit_create_column().sql: Refactor
Table.create()(#175).sql: Implement
checkiflogic inTable.create().engine: Refactor
CreateTablefor new execution pipeline (#165).sql: Update compilation for
CreateTableto newAbstractNotionClientAPI.engine: Refactor statement execution pipeline (#158).
engine: Harmonize page/database structure across
EngineandInMemoryNotionClient(#160)notion_sdk: Add normalization layer to
InMemoryNotionClient(#161).notion_sdk: Refactor
InMemoryNotionClientclass (159).notion_sdk: Start of refactor for the in-memory Notion client.
engine: Refactor
ExecutionContext.sql: Refactor
NotionCompilerto handle bind parameters.Insert statement compilation.
sql: Refactor operators management.
sql: Refactor all DML elemets classes.
sql: Refactor parameter handling in compilation.
sql: Refactor new parameter handling in the compilation.
notion_sdk: Refactor parameter handling in
AbstractNotionClientandInMemoryClient.sql: Refactor column element hierarchy.
sql: Refactor value binding for
InsertDML constructs.sql: Refactor autoload behavior in
Table#139notiondbapi: refactor Notion models and parsing #135
0.7.0 (2025-11-19)¶
Feat¶
add random access to
InMemoryNotionClientstore (#90).Add engine abstraction and connection management (#77)
Add an SQL compiler infrastructure (#100)
Cursor result and row management (#99)
Provide programmatic API for creating and reflecting tables (#97)
Add DBAPI 2.0 compliant Connection class (#96)
Extend the Notion row and description visitors to support property identifiers (#91).
Extend the class
InMemoryNotionClientto provide property ids (#89).Add full proxy server functionality for executing INSERT.
Add a client for interacting with the proxy server (#73).
Add
CREATE TABLESQL statement execution (#30)Add central registry of schema objects feature to MetaData (#68)
Add
autoload_withkeyword option to reflect a table in its constructor (#66).Add table creation flow (#62)
Add information_schema management to InMemoryNotionClient (#63)
Add the
TableSQL construct (#54).Add Notion type system (#53)
Explore code generator for SQL node classes
Initial commit for new SQL compiler features.
Add fully DBAPI compliant
ConnectionandCursorclasses (#50)Add DBAPI 2.0 compliant Connection (#48).
Fix¶
_parser.parse_property()does not handle retrieved objects correctlyInMemoryNotionClient._add()does not validate payload correctly (#93)Fix issues with Notion specific database properties (#49).
String bind processor delivers wrong Notion object (#87)
Parsing text content does not handle correctly lists of text objects (#86)
Do not provide the key “type” to get_col_spec() in the type engine system (#85)
Fix error handling in transactions and operations.
Refactor¶
0.6.0 (2025-08-07)¶
Feat¶
Fix¶
Add standard module header with copyright and license notes.
0.5.0 (2025-08-05)¶
Feat¶
Add initial implementation proof-of-concept transaction management
Add fully DBAPI 2.0 compliant cursor description
Fix¶
Refactor¶
Adapt
CursorResultandRow(#40).
0.4.0 (2025-07-27)¶
Feat¶
Refactor¶
Repurpose the Notion client.
0.3.0 (2025-07-24)¶
Feat¶
Add DBAPI2
Cursorfull implementation.Add parameter binding to operation execution (#15)
Extend DBAPI2.0 implementation and Notion SDK functionality.
Add
execute()method toCursorfor thepages.createendpoint.Add fetching data capabilities
Add semantic logic for Notion databases and pages.
Add fetching data capabilities
Fix¶
Render example code in
notiondbapi.CursorAdd check for Notion JSON schema
Refactor¶
Redesign parsing for Notion objects.
Refactor
Engine.__init__()method.Refactor
notions_sdk.pymodule
0.2.0 (2025-07-12)¶
Feat¶
Add SQL to JSON cross-compilation.
Add SQL module for SQL parsing
Add create engine