nemo-py 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nemo_py-0.1.1/.github/workflows/release.yml +157 -0
- nemo_py-0.1.1/.gitignore +104 -0
- nemo_py-0.1.1/CMakeLists.txt +52 -0
- nemo_py-0.1.1/CMakePresets.json +54 -0
- nemo_py-0.1.1/HOW_IT_WORKS.md +467 -0
- nemo_py-0.1.1/LICENSE +201 -0
- nemo_py-0.1.1/PKG-INFO +524 -0
- nemo_py-0.1.1/README.md +297 -0
- nemo_py-0.1.1/benchmarks/README.md +87 -0
- nemo_py-0.1.1/benchmarks/benchmark_suite.py +34 -0
- nemo_py-0.1.1/ci/fuzz_runner.py +26 -0
- nemo_py-0.1.1/ci/run_sanitizers.sh +11 -0
- nemo_py-0.1.1/cmake/NemoOptions.cmake +42 -0
- nemo_py-0.1.1/docs/asyncconnector.md +235 -0
- nemo_py-0.1.1/docs/connect.md +184 -0
- nemo_py-0.1.1/docs/datatypes.md +83 -0
- nemo_py-0.1.1/docs/logging.md +142 -0
- nemo_py-0.1.1/docs/nemo_functions.md +395 -0
- nemo_py-0.1.1/docs/sql.md +316 -0
- nemo_py-0.1.1/docs/sql_functions.md +269 -0
- nemo_py-0.1.1/docs/sql_parameters.md +254 -0
- nemo_py-0.1.1/docs/syncconnector.md +280 -0
- nemo_py-0.1.1/docs/transactions.md +192 -0
- nemo_py-0.1.1/example/README.md +106 -0
- nemo_py-0.1.1/example/example_1.py +117 -0
- nemo_py-0.1.1/example/example_10.py +119 -0
- nemo_py-0.1.1/example/example_11.py +78 -0
- nemo_py-0.1.1/example/example_12.py +57 -0
- nemo_py-0.1.1/example/example_13.py +55 -0
- nemo_py-0.1.1/example/example_14.py +55 -0
- nemo_py-0.1.1/example/example_15.py +63 -0
- nemo_py-0.1.1/example/example_16.py +58 -0
- nemo_py-0.1.1/example/example_17.py +57 -0
- nemo_py-0.1.1/example/example_18.py +59 -0
- nemo_py-0.1.1/example/example_19.py +59 -0
- nemo_py-0.1.1/example/example_2.py +115 -0
- nemo_py-0.1.1/example/example_20.py +57 -0
- nemo_py-0.1.1/example/example_21.py +60 -0
- nemo_py-0.1.1/example/example_22.py +53 -0
- nemo_py-0.1.1/example/example_23.py +62 -0
- nemo_py-0.1.1/example/example_24.py +52 -0
- nemo_py-0.1.1/example/example_25.py +52 -0
- nemo_py-0.1.1/example/example_26.py +53 -0
- nemo_py-0.1.1/example/example_27.py +78 -0
- nemo_py-0.1.1/example/example_28.py +57 -0
- nemo_py-0.1.1/example/example_29.py +65 -0
- nemo_py-0.1.1/example/example_3.py +125 -0
- nemo_py-0.1.1/example/example_30.py +52 -0
- nemo_py-0.1.1/example/example_31.py +65 -0
- nemo_py-0.1.1/example/example_32.py +58 -0
- nemo_py-0.1.1/example/example_33.py +56 -0
- nemo_py-0.1.1/example/example_34.py +62 -0
- nemo_py-0.1.1/example/example_35.py +52 -0
- nemo_py-0.1.1/example/example_36.py +56 -0
- nemo_py-0.1.1/example/example_37.py +60 -0
- nemo_py-0.1.1/example/example_38.py +67 -0
- nemo_py-0.1.1/example/example_39.py +66 -0
- nemo_py-0.1.1/example/example_4.py +146 -0
- nemo_py-0.1.1/example/example_40.py +114 -0
- nemo_py-0.1.1/example/example_41.py +91 -0
- nemo_py-0.1.1/example/example_42.py +82 -0
- nemo_py-0.1.1/example/example_43.py +83 -0
- nemo_py-0.1.1/example/example_44.py +86 -0
- nemo_py-0.1.1/example/example_45.py +81 -0
- nemo_py-0.1.1/example/example_46.py +99 -0
- nemo_py-0.1.1/example/example_47.py +87 -0
- nemo_py-0.1.1/example/example_48.py +98 -0
- nemo_py-0.1.1/example/example_49.py +79 -0
- nemo_py-0.1.1/example/example_5.py +133 -0
- nemo_py-0.1.1/example/example_50.py +162 -0
- nemo_py-0.1.1/example/example_6.py +119 -0
- nemo_py-0.1.1/example/example_7.py +117 -0
- nemo_py-0.1.1/example/example_8.py +100 -0
- nemo_py-0.1.1/example/example_9.py +107 -0
- nemo_py-0.1.1/examples/CMakeLists.txt +4 -0
- nemo_py-0.1.1/examples/basic.cpp +18 -0
- nemo_py-0.1.1/include/nemo/api/connection.hpp +72 -0
- nemo_py-0.1.1/include/nemo/api/database.hpp +83 -0
- nemo_py-0.1.1/include/nemo/api/prepared_statement.hpp +40 -0
- nemo_py-0.1.1/include/nemo/api/result.hpp +64 -0
- nemo_py-0.1.1/include/nemo/api/row.hpp +37 -0
- nemo_py-0.1.1/include/nemo/api/transaction.hpp +41 -0
- nemo_py-0.1.1/include/nemo/catalog/catalog.hpp +86 -0
- nemo_py-0.1.1/include/nemo/catalog/catalog_id.hpp +17 -0
- nemo_py-0.1.1/include/nemo/catalog/catalog_iterator.hpp +9 -0
- nemo_py-0.1.1/include/nemo/catalog/catalog_serializer.hpp +32 -0
- nemo_py-0.1.1/include/nemo/catalog/check_constraint.hpp +22 -0
- nemo_py-0.1.1/include/nemo/catalog/column.hpp +47 -0
- nemo_py-0.1.1/include/nemo/catalog/constraint.hpp +35 -0
- nemo_py-0.1.1/include/nemo/catalog/default_value.hpp +24 -0
- nemo_py-0.1.1/include/nemo/catalog/foreign_key.hpp +47 -0
- nemo_py-0.1.1/include/nemo/catalog/index_metadata.hpp +34 -0
- nemo_py-0.1.1/include/nemo/catalog/primary_key.hpp +26 -0
- nemo_py-0.1.1/include/nemo/catalog/schema.hpp +16 -0
- nemo_py-0.1.1/include/nemo/catalog/table_metadata.hpp +25 -0
- nemo_py-0.1.1/include/nemo/catalog/table_schema.hpp +41 -0
- nemo_py-0.1.1/include/nemo/catalog/unique_constraint.hpp +26 -0
- nemo_py-0.1.1/include/nemo/concurrency/lock_handle.hpp +59 -0
- nemo_py-0.1.1/include/nemo/concurrency/lock_manager.hpp +65 -0
- nemo_py-0.1.1/include/nemo/concurrency/lock_mode.hpp +38 -0
- nemo_py-0.1.1/include/nemo/concurrency/lock_resource.hpp +70 -0
- nemo_py-0.1.1/include/nemo/concurrency/page_latch.hpp +50 -0
- nemo_py-0.1.1/include/nemo/concurrency/wait_for_graph.hpp +38 -0
- nemo_py-0.1.1/include/nemo/core/config.hpp +29 -0
- nemo_py-0.1.1/include/nemo/core/constants.hpp +16 -0
- nemo_py-0.1.1/include/nemo/core/error.hpp +25 -0
- nemo_py-0.1.1/include/nemo/core/ids.hpp +60 -0
- nemo_py-0.1.1/include/nemo/core/result.hpp +104 -0
- nemo_py-0.1.1/include/nemo/core/status.hpp +29 -0
- nemo_py-0.1.1/include/nemo/core/types.hpp +28 -0
- nemo_py-0.1.1/include/nemo/core/version.hpp +20 -0
- nemo_py-0.1.1/include/nemo/execution/binder/binder.hpp +49 -0
- nemo_py-0.1.1/include/nemo/execution/binder/bound_expression.hpp +123 -0
- nemo_py-0.1.1/include/nemo/execution/binder/bound_statement.hpp +109 -0
- nemo_py-0.1.1/include/nemo/execution/binder/name_resolver.hpp +38 -0
- nemo_py-0.1.1/include/nemo/execution/planner/logical_operator.hpp +102 -0
- nemo_py-0.1.1/include/nemo/execution/planner/planner.hpp +24 -0
- nemo_py-0.1.1/include/nemo/index/bplus_tree.hpp +66 -0
- nemo_py-0.1.1/include/nemo/index/bplus_tree_internal.hpp +40 -0
- nemo_py-0.1.1/include/nemo/index/bplus_tree_iterator.hpp +46 -0
- nemo_py-0.1.1/include/nemo/index/bplus_tree_leaf.hpp +44 -0
- nemo_py-0.1.1/include/nemo/index/bplus_tree_node.hpp +65 -0
- nemo_py-0.1.1/include/nemo/index/bplus_tree_page.hpp +40 -0
- nemo_py-0.1.1/include/nemo/index/index_comparator.hpp +22 -0
- nemo_py-0.1.1/include/nemo/index/index_entry.hpp +24 -0
- nemo_py-0.1.1/include/nemo/index/index_key.hpp +41 -0
- nemo_py-0.1.1/include/nemo/index/index_metadata.hpp +22 -0
- nemo_py-0.1.1/include/nemo/index/index_stats.hpp +22 -0
- nemo_py-0.1.1/include/nemo/logging/logger.hpp +89 -0
- nemo_py-0.1.1/include/nemo/nemo.hpp +17 -0
- nemo_py-0.1.1/include/nemo/runtime/cancellation.hpp +46 -0
- nemo_py-0.1.1/include/nemo/runtime/connection.hpp +52 -0
- nemo_py-0.1.1/include/nemo/runtime/connection_lease.hpp +35 -0
- nemo_py-0.1.1/include/nemo/runtime/connection_manager.hpp +40 -0
- nemo_py-0.1.1/include/nemo/runtime/connection_pool.hpp +40 -0
- nemo_py-0.1.1/include/nemo/runtime/memory_resource.hpp +63 -0
- nemo_py-0.1.1/include/nemo/runtime/query_registry.hpp +52 -0
- nemo_py-0.1.1/include/nemo/runtime/resource_pool.hpp +64 -0
- nemo_py-0.1.1/include/nemo/runtime/runtime_metrics.hpp +30 -0
- nemo_py-0.1.1/include/nemo/runtime/session.hpp +50 -0
- nemo_py-0.1.1/include/nemo/runtime/shutdown.hpp +37 -0
- nemo_py-0.1.1/include/nemo/runtime/task.hpp +41 -0
- nemo_py-0.1.1/include/nemo/runtime/worker.hpp +50 -0
- nemo_py-0.1.1/include/nemo/runtime/worker_pool.hpp +57 -0
- nemo_py-0.1.1/include/nemo/sql/ast/ast_formatter.hpp +34 -0
- nemo_py-0.1.1/include/nemo/sql/ast/ast_node.hpp +21 -0
- nemo_py-0.1.1/include/nemo/sql/ast/ast_visitor.hpp +34 -0
- nemo_py-0.1.1/include/nemo/sql/ast/data_definition.hpp +29 -0
- nemo_py-0.1.1/include/nemo/sql/ast/expression.hpp +21 -0
- nemo_py-0.1.1/include/nemo/sql/ast/expressions.hpp +78 -0
- nemo_py-0.1.1/include/nemo/sql/ast/insert.hpp +34 -0
- nemo_py-0.1.1/include/nemo/sql/ast/literals.hpp +21 -0
- nemo_py-0.1.1/include/nemo/sql/ast/select.hpp +47 -0
- nemo_py-0.1.1/include/nemo/sql/ast/statement.hpp +20 -0
- nemo_py-0.1.1/include/nemo/sql/lexer.hpp +42 -0
- nemo_py-0.1.1/include/nemo/sql/parser.hpp +57 -0
- nemo_py-0.1.1/include/nemo/sql/source_location.hpp +19 -0
- nemo_py-0.1.1/include/nemo/sql/sql_error.hpp +17 -0
- nemo_py-0.1.1/include/nemo/sql/token.hpp +22 -0
- nemo_py-0.1.1/include/nemo/sql/token_type.hpp +54 -0
- nemo_py-0.1.1/include/nemo/storage/buffer_frame.hpp +69 -0
- nemo_py-0.1.1/include/nemo/storage/buffer_pool.hpp +86 -0
- nemo_py-0.1.1/include/nemo/storage/checksum.hpp +16 -0
- nemo_py-0.1.1/include/nemo/storage/clock_replacer.hpp +36 -0
- nemo_py-0.1.1/include/nemo/storage/database_header.hpp +34 -0
- nemo_py-0.1.1/include/nemo/storage/disk_manager.hpp +66 -0
- nemo_py-0.1.1/include/nemo/storage/file_manager.hpp +41 -0
- nemo_py-0.1.1/include/nemo/storage/free_page_manager.hpp +47 -0
- nemo_py-0.1.1/include/nemo/storage/page.hpp +58 -0
- nemo_py-0.1.1/include/nemo/storage/page_handle.hpp +52 -0
- nemo_py-0.1.1/include/nemo/storage/page_header.hpp +41 -0
- nemo_py-0.1.1/include/nemo/storage/record.hpp +42 -0
- nemo_py-0.1.1/include/nemo/storage/record_deserializer.hpp +19 -0
- nemo_py-0.1.1/include/nemo/storage/record_header.hpp +46 -0
- nemo_py-0.1.1/include/nemo/storage/record_id.hpp +44 -0
- nemo_py-0.1.1/include/nemo/storage/record_serializer.hpp +19 -0
- nemo_py-0.1.1/include/nemo/storage/record_view.hpp +47 -0
- nemo_py-0.1.1/include/nemo/storage/replacer.hpp +29 -0
- nemo_py-0.1.1/include/nemo/storage/serialization.hpp +63 -0
- nemo_py-0.1.1/include/nemo/storage/slot.hpp +29 -0
- nemo_py-0.1.1/include/nemo/storage/slot_directory.hpp +33 -0
- nemo_py-0.1.1/include/nemo/storage/storage_constants.hpp +18 -0
- nemo_py-0.1.1/include/nemo/storage/table_heap.hpp +50 -0
- nemo_py-0.1.1/include/nemo/storage/table_page.hpp +69 -0
- nemo_py-0.1.1/include/nemo/storage/tuple_layout.hpp +41 -0
- nemo_py-0.1.1/include/nemo/transaction/mvcc_header.hpp +20 -0
- nemo_py-0.1.1/include/nemo/transaction/snapshot.hpp +32 -0
- nemo_py-0.1.1/include/nemo/transaction/transaction.hpp +53 -0
- nemo_py-0.1.1/include/nemo/transaction/transaction_context.hpp +31 -0
- nemo_py-0.1.1/include/nemo/transaction/transaction_id.hpp +16 -0
- nemo_py-0.1.1/include/nemo/transaction/transaction_manager.hpp +56 -0
- nemo_py-0.1.1/include/nemo/transaction/transaction_registry.hpp +43 -0
- nemo_py-0.1.1/include/nemo/transaction/transaction_state.hpp +35 -0
- nemo_py-0.1.1/include/nemo/transaction/undo_record.hpp +27 -0
- nemo_py-0.1.1/include/nemo/transaction/visibility.hpp +24 -0
- nemo_py-0.1.1/include/nemo/types/array.hpp +54 -0
- nemo_py-0.1.1/include/nemo/types/decimal.hpp +53 -0
- nemo_py-0.1.1/include/nemo/types/dict.hpp +48 -0
- nemo_py-0.1.1/include/nemo/types/json.hpp +87 -0
- nemo_py-0.1.1/include/nemo/types/temporal.hpp +108 -0
- nemo_py-0.1.1/include/nemo/types/type_cast.hpp +18 -0
- nemo_py-0.1.1/include/nemo/types/type_comparator.hpp +25 -0
- nemo_py-0.1.1/include/nemo/types/type_hasher.hpp +17 -0
- nemo_py-0.1.1/include/nemo/types/type_id.hpp +57 -0
- nemo_py-0.1.1/include/nemo/types/type_info.hpp +29 -0
- nemo_py-0.1.1/include/nemo/types/type_registry.hpp +22 -0
- nemo_py-0.1.1/include/nemo/types/type_serializer.hpp +22 -0
- nemo_py-0.1.1/include/nemo/types/uuid.hpp +46 -0
- nemo_py-0.1.1/include/nemo/types/value.hpp +122 -0
- nemo_py-0.1.1/include/nemo/types/value_view.hpp +40 -0
- nemo_py-0.1.1/include/nemo/wal/checkpoint_manager.hpp +38 -0
- nemo_py-0.1.1/include/nemo/wal/dirty_page_table.hpp +50 -0
- nemo_py-0.1.1/include/nemo/wal/log_buffer.hpp +61 -0
- nemo_py-0.1.1/include/nemo/wal/log_reader.hpp +44 -0
- nemo_py-0.1.1/include/nemo/wal/log_record.hpp +70 -0
- nemo_py-0.1.1/include/nemo/wal/log_record_type.hpp +36 -0
- nemo_py-0.1.1/include/nemo/wal/lsn.hpp +34 -0
- nemo_py-0.1.1/include/nemo/wal/recovery_manager.hpp +46 -0
- nemo_py-0.1.1/include/nemo/wal/recovery_state.hpp +18 -0
- nemo_py-0.1.1/include/nemo/wal/transaction_table.hpp +58 -0
- nemo_py-0.1.1/include/nemo/wal/wal_error.hpp +26 -0
- nemo_py-0.1.1/include/nemo/wal/wal_manager.hpp +68 -0
- nemo_py-0.1.1/include/nemo/wal/wal_segment.hpp +65 -0
- nemo_py-0.1.1/pyproject.toml +43 -0
- nemo_py-0.1.1/python/LICENSE +201 -0
- nemo_py-0.1.1/python/src/nemo/__init__.py +42 -0
- nemo_py-0.1.1/python/src/nemo/asyncconnector.py +290 -0
- nemo_py-0.1.1/python/src/nemo/database.py +123 -0
- nemo_py-0.1.1/python/src/nemo/errors.py +31 -0
- nemo_py-0.1.1/python/src/nemo/logging.py +177 -0
- nemo_py-0.1.1/python/src/nemo/syncconnector.py +250 -0
- nemo_py-0.1.1/src/CMakeLists.txt +109 -0
- nemo_py-0.1.1/src/api/api_internal.hpp +477 -0
- nemo_py-0.1.1/src/api/connection.cpp +497 -0
- nemo_py-0.1.1/src/api/database.cpp +112 -0
- nemo_py-0.1.1/src/api/function_registry.hpp +1405 -0
- nemo_py-0.1.1/src/api/prepared_statement.cpp +43 -0
- nemo_py-0.1.1/src/api/query_engine.hpp +1479 -0
- nemo_py-0.1.1/src/api/result.cpp +50 -0
- nemo_py-0.1.1/src/api/row.cpp +27 -0
- nemo_py-0.1.1/src/api/transaction.cpp +56 -0
- nemo_py-0.1.1/src/catalog/catalog.cpp +281 -0
- nemo_py-0.1.1/src/catalog/catalog_serializer.cpp +62 -0
- nemo_py-0.1.1/src/catalog/column.cpp +8 -0
- nemo_py-0.1.1/src/catalog/constraint.cpp +8 -0
- nemo_py-0.1.1/src/catalog/default_value.cpp +16 -0
- nemo_py-0.1.1/src/catalog/index_metadata.cpp +3 -0
- nemo_py-0.1.1/src/catalog/schema.cpp +3 -0
- nemo_py-0.1.1/src/catalog/table_metadata.cpp +3 -0
- nemo_py-0.1.1/src/catalog/table_schema.cpp +64 -0
- nemo_py-0.1.1/src/concurrency/lock_manager.cpp +170 -0
- nemo_py-0.1.1/src/concurrency/wait_for_graph.cpp +93 -0
- nemo_py-0.1.1/src/core/config.cpp +13 -0
- nemo_py-0.1.1/src/core/error.cpp +3 -0
- nemo_py-0.1.1/src/core/status.cpp +23 -0
- nemo_py-0.1.1/src/core/version.cpp +13 -0
- nemo_py-0.1.1/src/execution/binder/binder.cpp +166 -0
- nemo_py-0.1.1/src/execution/planner/planner.cpp +57 -0
- nemo_py-0.1.1/src/index/bplus_tree.cpp +268 -0
- nemo_py-0.1.1/src/index/bplus_tree_internal.cpp +172 -0
- nemo_py-0.1.1/src/index/bplus_tree_iterator.cpp +127 -0
- nemo_py-0.1.1/src/index/bplus_tree_leaf.cpp +193 -0
- nemo_py-0.1.1/src/index/bplus_tree_node.cpp +118 -0
- nemo_py-0.1.1/src/index/bplus_tree_page.cpp +3 -0
- nemo_py-0.1.1/src/index/index_comparator.cpp +39 -0
- nemo_py-0.1.1/src/index/index_entry.cpp +3 -0
- nemo_py-0.1.1/src/index/index_key.cpp +107 -0
- nemo_py-0.1.1/src/index/index_metadata.cpp +3 -0
- nemo_py-0.1.1/src/index/index_stats.cpp +3 -0
- nemo_py-0.1.1/src/logging/logger.cpp +45 -0
- nemo_py-0.1.1/src/python/module.cpp +681 -0
- nemo_py-0.1.1/src/runtime/connection_manager.cpp +53 -0
- nemo_py-0.1.1/src/runtime/connection_pool.cpp +67 -0
- nemo_py-0.1.1/src/runtime/query_registry.cpp +53 -0
- nemo_py-0.1.1/src/runtime/worker.cpp +67 -0
- nemo_py-0.1.1/src/runtime/worker_pool.cpp +93 -0
- nemo_py-0.1.1/src/sql/ast/ast_formatter.cpp +88 -0
- nemo_py-0.1.1/src/sql/ast/expression.cpp +3 -0
- nemo_py-0.1.1/src/sql/ast/expressions.cpp +12 -0
- nemo_py-0.1.1/src/sql/ast/literals.cpp +10 -0
- nemo_py-0.1.1/src/sql/ast/select.cpp +10 -0
- nemo_py-0.1.1/src/sql/ast/statement.cpp +3 -0
- nemo_py-0.1.1/src/sql/lexer.cpp +258 -0
- nemo_py-0.1.1/src/sql/parser.cpp +225 -0
- nemo_py-0.1.1/src/sql/source_location.cpp +12 -0
- nemo_py-0.1.1/src/sql/sql_error.cpp +12 -0
- nemo_py-0.1.1/src/sql/token.cpp +3 -0
- nemo_py-0.1.1/src/sql/token_type.cpp +17 -0
- nemo_py-0.1.1/src/storage/buffer_frame.cpp +3 -0
- nemo_py-0.1.1/src/storage/buffer_pool.cpp +210 -0
- nemo_py-0.1.1/src/storage/checksum.cpp +45 -0
- nemo_py-0.1.1/src/storage/clock_replacer.cpp +75 -0
- nemo_py-0.1.1/src/storage/database_header.cpp +45 -0
- nemo_py-0.1.1/src/storage/disk_manager.cpp +309 -0
- nemo_py-0.1.1/src/storage/file_manager.cpp +144 -0
- nemo_py-0.1.1/src/storage/free_page_manager.cpp +37 -0
- nemo_py-0.1.1/src/storage/page.cpp +47 -0
- nemo_py-0.1.1/src/storage/page_handle.cpp +60 -0
- nemo_py-0.1.1/src/storage/page_header.cpp +38 -0
- nemo_py-0.1.1/src/storage/record.cpp +3 -0
- nemo_py-0.1.1/src/storage/record_deserializer.cpp +18 -0
- nemo_py-0.1.1/src/storage/record_header.cpp +3 -0
- nemo_py-0.1.1/src/storage/record_id.cpp +12 -0
- nemo_py-0.1.1/src/storage/record_serializer.cpp +130 -0
- nemo_py-0.1.1/src/storage/record_view.cpp +171 -0
- nemo_py-0.1.1/src/storage/slot.cpp +3 -0
- nemo_py-0.1.1/src/storage/slot_directory.cpp +3 -0
- nemo_py-0.1.1/src/storage/table_heap.cpp +261 -0
- nemo_py-0.1.1/src/storage/table_page.cpp +264 -0
- nemo_py-0.1.1/src/storage/tuple_layout.cpp +25 -0
- nemo_py-0.1.1/src/transaction/snapshot.cpp +22 -0
- nemo_py-0.1.1/src/transaction/transaction.cpp +28 -0
- nemo_py-0.1.1/src/transaction/transaction_manager.cpp +134 -0
- nemo_py-0.1.1/src/transaction/transaction_registry.cpp +66 -0
- nemo_py-0.1.1/src/transaction/visibility.cpp +59 -0
- nemo_py-0.1.1/src/types/array.cpp +139 -0
- nemo_py-0.1.1/src/types/decimal.cpp +154 -0
- nemo_py-0.1.1/src/types/dict.cpp +120 -0
- nemo_py-0.1.1/src/types/json.cpp +164 -0
- nemo_py-0.1.1/src/types/temporal.cpp +90 -0
- nemo_py-0.1.1/src/types/type_cast.cpp +120 -0
- nemo_py-0.1.1/src/types/type_comparator.cpp +13 -0
- nemo_py-0.1.1/src/types/type_hasher.cpp +63 -0
- nemo_py-0.1.1/src/types/type_info.cpp +45 -0
- nemo_py-0.1.1/src/types/type_registry.cpp +122 -0
- nemo_py-0.1.1/src/types/type_serializer.cpp +296 -0
- nemo_py-0.1.1/src/types/uuid.cpp +81 -0
- nemo_py-0.1.1/src/types/value.cpp +129 -0
- nemo_py-0.1.1/src/types/value_view.cpp +3 -0
- nemo_py-0.1.1/src/wal/checkpoint_manager.cpp +65 -0
- nemo_py-0.1.1/src/wal/log_reader.cpp +122 -0
- nemo_py-0.1.1/src/wal/log_record.cpp +118 -0
- nemo_py-0.1.1/src/wal/recovery_manager.cpp +245 -0
- nemo_py-0.1.1/src/wal/wal_manager.cpp +115 -0
- nemo_py-0.1.1/src/wal/wal_segment.cpp +148 -0
- nemo_py-0.1.1/tools/generate_dataset.py +36 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
name: Release Nemo
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build_wheels:
|
|
10
|
+
name: Build wheels on ${{ matrix.os }}
|
|
11
|
+
runs-on: ${{ matrix.os }}
|
|
12
|
+
strategy:
|
|
13
|
+
fail-fast: false
|
|
14
|
+
matrix:
|
|
15
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout repository
|
|
19
|
+
uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
submodules: true
|
|
22
|
+
|
|
23
|
+
- name: Set up Python
|
|
24
|
+
uses: actions/setup-python@v5
|
|
25
|
+
with:
|
|
26
|
+
python-version: '3.11'
|
|
27
|
+
|
|
28
|
+
- name: Install cibuildwheel
|
|
29
|
+
run: python -m pip install "cibuildwheel>=2.20.0"
|
|
30
|
+
|
|
31
|
+
- name: Build nemo wheels
|
|
32
|
+
run: python -m cibuildwheel --output-dir wheelhouse .
|
|
33
|
+
env:
|
|
34
|
+
CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-*"
|
|
35
|
+
CIBW_SKIP: "*-musllinux_*"
|
|
36
|
+
CIBW_ARCHS_LINUX: "x86_64"
|
|
37
|
+
CIBW_ARCHS_MACOS: "x86_64 arm64"
|
|
38
|
+
CIBW_ARCHS_WINDOWS: "AMD64"
|
|
39
|
+
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
|
|
40
|
+
CIBW_BEFORE_ALL_LINUX: "yum install -y gcc-toolset-12-gcc-c++ || true"
|
|
41
|
+
CIBW_ENVIRONMENT_LINUX: 'PATH="/opt/rh/gcc-toolset-12/root/usr/bin:$PATH" CC="/opt/rh/gcc-toolset-12/root/usr/bin/gcc" CXX="/opt/rh/gcc-toolset-12/root/usr/bin/g++"'
|
|
42
|
+
CIBW_ENVIRONMENT_MACOS: 'MACOSX_DEPLOYMENT_TARGET="11.0"'
|
|
43
|
+
|
|
44
|
+
- name: Upload wheel artifacts
|
|
45
|
+
uses: actions/upload-artifact@v4
|
|
46
|
+
with:
|
|
47
|
+
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
|
48
|
+
path: ./wheelhouse/*.whl
|
|
49
|
+
if-no-files-found: error
|
|
50
|
+
|
|
51
|
+
build_sdist:
|
|
52
|
+
name: Build source distribution
|
|
53
|
+
runs-on: ubuntu-latest
|
|
54
|
+
steps:
|
|
55
|
+
- name: Checkout repository
|
|
56
|
+
uses: actions/checkout@v4
|
|
57
|
+
with:
|
|
58
|
+
submodules: true
|
|
59
|
+
|
|
60
|
+
- name: Set up Python
|
|
61
|
+
uses: actions/setup-python@v5
|
|
62
|
+
with:
|
|
63
|
+
python-version: '3.11'
|
|
64
|
+
|
|
65
|
+
- name: Build sdist
|
|
66
|
+
run: |
|
|
67
|
+
python -m pip install build
|
|
68
|
+
python -m build --sdist .
|
|
69
|
+
|
|
70
|
+
- name: Upload sdist artifact
|
|
71
|
+
uses: actions/upload-artifact@v4
|
|
72
|
+
with:
|
|
73
|
+
name: cibw-sdist
|
|
74
|
+
path: dist/*.tar.gz
|
|
75
|
+
if-no-files-found: error
|
|
76
|
+
|
|
77
|
+
publish_pypi:
|
|
78
|
+
name: Publish to PyPI
|
|
79
|
+
needs: [build_wheels, build_sdist]
|
|
80
|
+
runs-on: ubuntu-latest
|
|
81
|
+
environment:
|
|
82
|
+
name: pypi
|
|
83
|
+
url: https://pypi.org/project/nemo-py
|
|
84
|
+
permissions:
|
|
85
|
+
id-token: write
|
|
86
|
+
contents: read
|
|
87
|
+
if: github.event_name == 'release' && github.event.action == 'published'
|
|
88
|
+
|
|
89
|
+
steps:
|
|
90
|
+
- name: Download all built artifacts
|
|
91
|
+
uses: actions/download-artifact@v4
|
|
92
|
+
with:
|
|
93
|
+
pattern: cibw-*
|
|
94
|
+
path: dist
|
|
95
|
+
merge-multiple: true
|
|
96
|
+
|
|
97
|
+
- name: Publish package to PyPI
|
|
98
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
99
|
+
|
|
100
|
+
build_cpp:
|
|
101
|
+
name: Build C++ Library on ${{ matrix.os }}
|
|
102
|
+
runs-on: ${{ matrix.os }}
|
|
103
|
+
permissions:
|
|
104
|
+
contents: write
|
|
105
|
+
strategy:
|
|
106
|
+
fail-fast: false
|
|
107
|
+
matrix:
|
|
108
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
109
|
+
|
|
110
|
+
steps:
|
|
111
|
+
- name: Checkout repository
|
|
112
|
+
uses: actions/checkout@v4
|
|
113
|
+
with:
|
|
114
|
+
submodules: true
|
|
115
|
+
|
|
116
|
+
- name: Configure CMake
|
|
117
|
+
run: cmake -B build -DCMAKE_BUILD_TYPE=Release -DNEMO_BUILD_TESTS=OFF -DNEMO_BUILD_EXAMPLES=OFF
|
|
118
|
+
|
|
119
|
+
- name: Build C++ library
|
|
120
|
+
run: cmake --build build --config Release
|
|
121
|
+
|
|
122
|
+
- name: Package library (Unix)
|
|
123
|
+
if: runner.os != 'Windows'
|
|
124
|
+
run: |
|
|
125
|
+
mkdir -p nemo-cpp-${{ runner.os }}
|
|
126
|
+
find build -type f -name "libnemo.*" -exec cp {} nemo-cpp-${{ runner.os }}/ \; 2>/dev/null || true
|
|
127
|
+
cp -r include nemo-cpp-${{ runner.os }}/
|
|
128
|
+
tar -czvf nemo-cpp-${{ runner.os }}.tar.gz nemo-cpp-${{ runner.os }}
|
|
129
|
+
|
|
130
|
+
- name: Package library (Windows)
|
|
131
|
+
if: runner.os == 'Windows'
|
|
132
|
+
shell: pwsh
|
|
133
|
+
run: |
|
|
134
|
+
New-Item -ItemType Directory -Force -Path nemo-cpp-Windows
|
|
135
|
+
Get-ChildItem -Path build -Recurse -File -Include nemo.lib, nemo.dll | ForEach-Object { Copy-Item $_.FullName nemo-cpp-Windows/ }
|
|
136
|
+
Copy-Item -Recurse include nemo-cpp-Windows/
|
|
137
|
+
Compress-Archive -Force -Path nemo-cpp-Windows -DestinationPath nemo-cpp-Windows.zip
|
|
138
|
+
|
|
139
|
+
- name: Upload C++ Artifacts to Workflow
|
|
140
|
+
uses: actions/upload-artifact@v4
|
|
141
|
+
with:
|
|
142
|
+
name: nemo-cpp-${{ runner.os }}
|
|
143
|
+
path: |
|
|
144
|
+
nemo-cpp-*.tar.gz
|
|
145
|
+
nemo-cpp-*.zip
|
|
146
|
+
if-no-files-found: ignore
|
|
147
|
+
|
|
148
|
+
- name: Attach C++ Artifacts to GitHub Release
|
|
149
|
+
if: github.event_name == 'release' && github.event.action == 'published'
|
|
150
|
+
uses: softprops/action-gh-release@v2
|
|
151
|
+
with:
|
|
152
|
+
files: |
|
|
153
|
+
nemo-cpp-*.tar.gz
|
|
154
|
+
nemo-cpp-*.zip
|
|
155
|
+
fail_on_unmatched_files: false
|
|
156
|
+
env:
|
|
157
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
nemo_py-0.1.1/.gitignore
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# NEMO DATABASE ENGINE — GITIGNORE CONFIGURATION
|
|
3
|
+
# =============================================================================
|
|
4
|
+
|
|
5
|
+
# --- 1. Compiled Binaries, Libraries & Debug Symbols ---
|
|
6
|
+
*.o
|
|
7
|
+
*.obj
|
|
8
|
+
*.slo
|
|
9
|
+
*.lo
|
|
10
|
+
*.so
|
|
11
|
+
*.dylib
|
|
12
|
+
*.dll
|
|
13
|
+
*.pyd
|
|
14
|
+
*.a
|
|
15
|
+
*.lib
|
|
16
|
+
*.exp
|
|
17
|
+
*.lai
|
|
18
|
+
*.la
|
|
19
|
+
*.exe
|
|
20
|
+
*.out
|
|
21
|
+
*.app
|
|
22
|
+
*.pdb
|
|
23
|
+
*.ilk
|
|
24
|
+
*.idb
|
|
25
|
+
*.ipdb
|
|
26
|
+
*.iobj
|
|
27
|
+
|
|
28
|
+
# --- 2. CMake, MSVC & Native Build Outputs ---
|
|
29
|
+
build/
|
|
30
|
+
build_*/
|
|
31
|
+
_skbuild/
|
|
32
|
+
wheelhouse/
|
|
33
|
+
CMakeCache.txt
|
|
34
|
+
CMakeFiles/
|
|
35
|
+
CMakeScripts/
|
|
36
|
+
CMakeUserPresets.json
|
|
37
|
+
Testing/
|
|
38
|
+
Makefile
|
|
39
|
+
cmake_install.cmake
|
|
40
|
+
install_manifest.txt
|
|
41
|
+
compile_commands.json
|
|
42
|
+
.cache/
|
|
43
|
+
x64/
|
|
44
|
+
x86/
|
|
45
|
+
Debug/
|
|
46
|
+
Release/
|
|
47
|
+
|
|
48
|
+
# --- 3. Python Bytecode, Packaging & Distribution ---
|
|
49
|
+
__pycache__/
|
|
50
|
+
*.py[cod]
|
|
51
|
+
*$py.class
|
|
52
|
+
*.whl
|
|
53
|
+
dist/
|
|
54
|
+
*.egg-info/
|
|
55
|
+
package/
|
|
56
|
+
.pytest_cache/
|
|
57
|
+
.mypy_cache/
|
|
58
|
+
.ruff_cache/
|
|
59
|
+
.coverage
|
|
60
|
+
htmlcov/
|
|
61
|
+
.tox/
|
|
62
|
+
|
|
63
|
+
# --- 4. Virtual Environments & Local Config ---
|
|
64
|
+
.env
|
|
65
|
+
.env.*
|
|
66
|
+
.Python
|
|
67
|
+
env/
|
|
68
|
+
venv/
|
|
69
|
+
.venv/
|
|
70
|
+
venv-*/
|
|
71
|
+
|
|
72
|
+
# --- 5. Database Binary Files, WAL & Logs ---
|
|
73
|
+
*.nm
|
|
74
|
+
*.nm.meta
|
|
75
|
+
*.nm-wal
|
|
76
|
+
*.nm-shm
|
|
77
|
+
*.db
|
|
78
|
+
*.db-wal
|
|
79
|
+
*.db-shm
|
|
80
|
+
*.sqlite
|
|
81
|
+
*.sqlite3
|
|
82
|
+
*.log
|
|
83
|
+
|
|
84
|
+
# --- 6. Local Test Scripts, Benchmarks & Datasets ---
|
|
85
|
+
tests/
|
|
86
|
+
test.py
|
|
87
|
+
test2.py
|
|
88
|
+
dataset/
|
|
89
|
+
ci_logs/
|
|
90
|
+
scratch/
|
|
91
|
+
|
|
92
|
+
# --- 7. IDE, Editor & OS System Files ---
|
|
93
|
+
.idea/
|
|
94
|
+
.vscode/
|
|
95
|
+
*.swp
|
|
96
|
+
*.swo
|
|
97
|
+
*~
|
|
98
|
+
*.vcxproj.user
|
|
99
|
+
*.vcxproj.filters.user
|
|
100
|
+
*.sublime-project
|
|
101
|
+
*.sublime-workspace
|
|
102
|
+
.DS_Store
|
|
103
|
+
Thumbs.db
|
|
104
|
+
desktop.ini
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.20)
|
|
2
|
+
|
|
3
|
+
project(
|
|
4
|
+
Nemo
|
|
5
|
+
VERSION 0.1.1
|
|
6
|
+
DESCRIPTION "Nemo: A high-performance embedded relational database engine"
|
|
7
|
+
LANGUAGES CXX
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
# Nemo Options and strict compilation flags
|
|
11
|
+
include(cmake/NemoOptions.cmake)
|
|
12
|
+
|
|
13
|
+
# Ensure C++20 is used
|
|
14
|
+
set(CMAKE_CXX_STANDARD 20)
|
|
15
|
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
16
|
+
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
17
|
+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
18
|
+
|
|
19
|
+
# Add subdirectories
|
|
20
|
+
add_subdirectory(src)
|
|
21
|
+
|
|
22
|
+
if(NEMO_BUILD_EXAMPLES)
|
|
23
|
+
add_subdirectory(examples)
|
|
24
|
+
endif()
|
|
25
|
+
|
|
26
|
+
if(NEMO_BUILD_TESTS AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests/CMakeLists.txt")
|
|
27
|
+
enable_testing()
|
|
28
|
+
add_subdirectory(tests)
|
|
29
|
+
endif()
|
|
30
|
+
|
|
31
|
+
option(NEMO_BUILD_PYTHON "Build Python bindings" OFF)
|
|
32
|
+
if(SKBUILD OR DEFINED ENV{NEMO_BUILD_PYTHON})
|
|
33
|
+
set(NEMO_BUILD_PYTHON ON CACHE BOOL "Build Python bindings" FORCE)
|
|
34
|
+
endif()
|
|
35
|
+
|
|
36
|
+
if(NEMO_BUILD_PYTHON)
|
|
37
|
+
find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED)
|
|
38
|
+
find_package(pybind11 CONFIG QUIET)
|
|
39
|
+
if(NOT pybind11_FOUND)
|
|
40
|
+
include(FetchContent)
|
|
41
|
+
FetchContent_Declare(
|
|
42
|
+
pybind11
|
|
43
|
+
GIT_REPOSITORY https://github.com/pybind/pybind11.git
|
|
44
|
+
GIT_TAG v2.12.0
|
|
45
|
+
)
|
|
46
|
+
FetchContent_MakeAvailable(pybind11)
|
|
47
|
+
endif()
|
|
48
|
+
|
|
49
|
+
pybind11_add_module(_nemo src/python/module.cpp)
|
|
50
|
+
target_link_libraries(_nemo PRIVATE nemo)
|
|
51
|
+
install(TARGETS _nemo DESTINATION nemo)
|
|
52
|
+
endif()
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"cmakeMinimumRequired": {
|
|
4
|
+
"major": 3,
|
|
5
|
+
"minor": 20,
|
|
6
|
+
"patch": 0
|
|
7
|
+
},
|
|
8
|
+
"configurePresets": [
|
|
9
|
+
{
|
|
10
|
+
"name": "default",
|
|
11
|
+
"displayName": "Default Config",
|
|
12
|
+
"description": "Default configuration using Ninja if available",
|
|
13
|
+
"generator": "Ninja",
|
|
14
|
+
"binaryDir": "${sourceDir}/build",
|
|
15
|
+
"cacheVariables": {
|
|
16
|
+
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "debug",
|
|
21
|
+
"displayName": "Debug Config",
|
|
22
|
+
"inherits": "default",
|
|
23
|
+
"cacheVariables": {
|
|
24
|
+
"CMAKE_BUILD_TYPE": "Debug"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "release",
|
|
29
|
+
"displayName": "Release Config",
|
|
30
|
+
"inherits": "default",
|
|
31
|
+
"cacheVariables": {
|
|
32
|
+
"CMAKE_BUILD_TYPE": "Release"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"buildPresets": [
|
|
37
|
+
{
|
|
38
|
+
"name": "debug",
|
|
39
|
+
"configurePreset": "debug"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "release",
|
|
43
|
+
"configurePreset": "release"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"testPresets": [
|
|
47
|
+
{
|
|
48
|
+
"name": "default",
|
|
49
|
+
"configurePreset": "default",
|
|
50
|
+
"output": {"outputOnFailure": true},
|
|
51
|
+
"execution": {"noTestsAction": "error", "stopOnFailure": true}
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|