Commit Graph

  • 5a1da026e6 Unify comparison function to reduce code duplication krishvishal 2025-06-07 17:08:10 +05:30
  • 5837f7329f clean up krishvishal 2025-06-06 20:27:20 +05:30
  • e01f4d55f7 Reduce fuzz iters krishvishal 2025-06-06 20:09:11 +05:30
  • d13abad4b1 Handle Blob type together with Text type in op_seek krishvishal 2025-06-06 20:08:18 +05:30
  • 6c04c18f87 Add affinity flag to comparison opcodes krishvishal 2025-06-06 20:02:57 +05:30
  • f0dda1702f Fix AFFINITY_MASK value krishvishal 2025-06-06 16:13:06 +05:30
  • faa9aedbae Add affinity based type coercion to comparison ops krishvishal 2025-06-06 16:12:32 +05:30
  • 7bd1589615 Added affinity inference and conversion for comparison ops. Added affinity helper function for CmpInsFlags krishvishal 2025-06-06 13:57:30 +05:30
  • 9130b25111 Add jump_if_null flag for rowid alias based seeks krishvishal 2025-06-06 13:20:12 +05:30
  • 3b2980c7c0 Fix op_seek to handle affinity coercion krishvishal 2025-06-06 13:18:43 +05:30
  • e68293a1d1 Add affinity conversion to op_gt, op_le, op_lt, op_eq, op_ne krishvishal 2025-06-06 13:14:07 +05:30
  • 30ccbe46c7 Added apply_numeric_affinity function to handle string conversion to integer. Exising functions' behavior is tailored to CAST ops. SQLite has different behavior when it comes to handling string to integer conversion in CAST vs predicate ops. krishvishal 2025-06-02 11:19:41 +05:30
  • 9eb2235135 A simple fuzz test for fuzzing seeking ops krishvishal 2025-06-02 10:52:12 +05:30
  • 20e6e73057 Fix affinity in op_seek when there's string integer comparison krishvishal 2025-06-02 10:45:29 +05:30
  • 2171c5f4e1 Added apply_affinity_char to fix bugs in SeekRowId krishvishal 2025-06-02 10:38:11 +05:30
  • 72058da9dc Merge 'bindings/javascript: Add pragma() support' from Anton Harniakou Jussi Saurio 2025-06-10 18:24:13 +03:00
  • 82538dbe8e add integrity_check to sim pedrocarlo 2025-06-09 21:42:05 -03:00
  • 4794b022a5 Merge 'Fix incorrect handling of OR clauses in HAVING' from Jussi Saurio Jussi Saurio 2025-06-10 18:14:39 +03:00
  • 3d50822284 Merge 'fix: Incorrect placeholder label in where clause translation' from Pedro Muniz Jussi Saurio 2025-06-10 18:14:04 +03:00
  • 85972fd744 Merge 'Fix rowid to_sql_string' from Pedro Muniz Jussi Saurio 2025-06-10 18:11:51 +03:00
  • f7cc9334a8 Merge 'Remove leftover info trace' from Jussi Saurio Jussi Saurio 2025-06-10 18:11:28 +03:00
  • 0da9d65d3e test pedrocarlo 2025-06-10 12:07:24 -03:00
  • 18dd87eff1 Fix incorrect handling of OR clauses in HAVING Jussi Saurio 2025-06-10 18:01:21 +03:00
  • 80c480517a incorrect placeholder label in where clause translation pedrocarlo 2025-06-10 12:00:19 -03:00
  • ace1e02fc0 Remove leftover info trace Jussi Saurio 2025-06-10 16:51:34 +03:00
  • f3ef60e1f1 use anyhow in simulator for lazily evaluated error context instead of eager evaluation with .or pedrocarlo 2025-06-09 19:45:19 -03:00
  • b942414bb4 add anyhow to workspace dependency pedrocarlo 2025-06-09 19:01:56 -03:00
  • 36f60e4dd1 Fix rowid to_sql_string printing pedrocarlo 2025-06-09 12:10:34 -03:00
  • a4237dbe6e Merge 'Fix incorrect usage of indexes with non-contiguous columns' from Jussi Saurio Pere Diaz Bou 2025-06-10 15:10:25 +02:00
  • 547ca6cf2a Fix incorrect usage of indexes with non-contiguous columns Jussi Saurio 2025-06-10 15:21:26 +03:00
  • 9770ffb902 Merge 'BTree traversal refactor and bugfixes' from Pere Diaz Bou Pere Diaz Bou 2025-06-10 13:38:20 +02:00
  • f8df870fb7 Fix implementation of InteriorNodeReplacement(interior index cell being deleted) Jussi Saurio 2025-06-10 14:15:44 +03:00
  • 6d2ca58235 get_prev_record() small fixes Jussi Saurio 2025-06-10 14:14:52 +03:00
  • 07c947b47d use GE for idx delete seek, although it doesnt really matter Jussi Saurio 2025-06-10 14:13:07 +03:00
  • 9caa8334be add FIXME about balance after interior node replacement Jussi Saurio 2025-06-10 13:44:15 +03:00
  • 10caca25c9 advance in balance_non_root() if -1 idx Jussi Saurio 2025-06-10 11:29:02 +03:00
  • d827eeade0 For now always calculate post-balance seek key Jussi Saurio 2025-06-10 11:26:39 +03:00
  • 976c2f72ef OpIdxDeleteState needs another state to be re-entrant Jussi Saurio 2025-06-09 23:35:25 +03:00
  • 58172641fd Use SeekOP:LT after post-deletebalancing to end up pointing to the left of the deleted row Jussi Saurio 2025-06-09 10:16:57 +03:00
  • e1bc268a65 fix CREATE TABLE hang Jussi Saurio 2025-06-06 20:11:14 +03:00
  • a5aeff9a3d Fix index insert accidentally double-inserting after balance Jussi Saurio 2025-06-06 18:41:40 +03:00
  • 04e89c0c4a actually fix drop table Jussi Saurio 2025-06-06 18:14:22 +03:00
  • 3265e0a789 adjust timeouts in ci Jussi Saurio 2025-06-06 13:47:22 +03:00
  • 843eb18daf simplify cursor.exists() by using seek() Jussi Saurio 2025-06-06 13:29:09 +03:00
  • 844461d20b update and delete fixes Jussi Saurio 2025-06-06 13:08:21 +03:00
  • d81f5f67bd insert spaghetti fixes Jussi Saurio 2025-06-06 11:04:04 +03:00
  • 499296d396 fix drop table again: only stack.advance() in a single place Jussi Saurio 2025-06-05 15:39:26 +03:00
  • 1b4bef9c7c Fix op_idx_delete infinite seeking loop Jussi Saurio 2025-06-05 15:15:59 +03:00
  • 5c08d259bf Fix drop table: initialize loaded pages to cell idx 0 Jussi Saurio 2025-06-05 13:53:21 +03:00
  • e897052650 flatten process_overflow_read() to get rid of borrowmuterror possibility Jussi Saurio 2025-06-05 13:40:32 +03:00
  • da2437408e get_new_rowid(): fix off by one - rowids start at 1 Jussi Saurio 2025-06-05 13:26:41 +03:00
  • 5f60cce3c7 fix seek_to_last() Jussi Saurio 2025-06-05 13:08:57 +03:00
  • 0ce18a9146 Fix comment Jussi Saurio 2025-06-05 13:04:03 +03:00
  • 0b7f5a2a13 Merge MoveTo&Seek states, remove unnecessary seekstate methods, add eq_seen flag to prevent unnecessary next()/prev() Jussi Saurio 2025-06-05 13:01:01 +03:00
  • 2bac140d73 Remove SeekOp::EQ and encode eq_only in LE&GE - needed for iteration direction aware equality seeks Jussi Saurio 2025-06-05 10:56:47 +03:00
  • ae6a943e43 Leave parent pointing at rightmost pointer at the end of balance_root() Jussi Saurio 2025-06-05 10:31:45 +03:00
  • cba84b7ce9 Remove premature cast to usize (cell_idx can be negative) Jussi Saurio 2025-06-05 09:36:29 +03:00
  • 8ad6aadbbd remove unnecessary SeekingIndexMoveUp state Jussi Saurio 2025-06-05 09:35:47 +03:00
  • a3ffc6f4e2 Align prev() implementation with next() Jussi Saurio 2025-06-05 08:51:35 +03:00
  • 58e1a2f5bc Remove unnecessary self.prev() from last() Jussi Saurio 2025-06-05 08:51:20 +03:00
  • 8941c4a537 fmt Jussi Saurio 2025-06-05 08:50:48 +03:00
  • 6e5f05a257 Remove unnecessary cell_idx move from tablebtree_move_to() Jussi Saurio 2025-06-05 08:46:44 +03:00
  • 0f79b0dd50 fix prev? Pere Diaz Bou 2025-06-04 17:00:57 +02:00
  • f83d837131 fix next to not advance if not necessary Pere Diaz Bou 2025-06-04 14:19:07 +02:00
  • f261d5b6af compare on next/prev after seek Pere Diaz Bou 2025-06-04 14:18:24 +02:00
  • 681df9b1eb fix get record Pere Diaz Bou 2025-06-03 20:00:19 +02:00
  • b46852a366 move setting target key in delete if balance is needed Pere Diaz Bou 2025-06-03 18:01:27 +02:00
  • c52d9a52d9 fix count Pere Diaz Bou 2025-06-03 17:29:17 +02:00
  • 96324834a5 invalidate records on movement Pere Diaz Bou 2025-06-03 17:11:25 +02:00
  • 77b6896eae implement lazy record and rowid in cursor Pere Diaz Bou 2025-06-03 15:59:20 +02:00
  • b0c64cb4d2 parse record lazily Pere Diaz Bou 2025-06-03 14:28:19 +02:00
  • 105de7e1d8 seek, next and prev return bool Pere Diaz Bou 2025-06-03 14:08:47 +02:00
  • 0698249c5e test_delete_with_index Pere Diaz Bou 2025-06-02 15:01:51 +02:00
  • 4a25578723 Merge 'Namespace functions that operate on Value' from Pedro Muniz Pere Diaz Bou 2025-06-10 10:54:38 +02:00
  • 09b345dda1 Merge 'Add sleep between write tests to avoid database locking issues' from Pedro Muniz PThorpe92 2025-06-09 18:10:23 -04:00
  • 3e05496078 add integrity check to write tests pedrocarlo 2025-06-09 17:44:00 -03:00
  • c7799c8ec5 add sleep to allow file lock to be removed pedrocarlo 2025-06-09 16:15:00 -03:00
  • a9ed8dd288 namespace exec_min and exec_max to Value for reuse in simulator pedrocarlo 2025-06-06 13:03:41 -03:00
  • 39f85ffd03 namespace exec_like to Value pedrocarlo 2025-06-05 15:44:47 -03:00
  • 6c95a88533 namespace many functions to Value pedrocarlo 2025-06-05 14:58:47 -03:00
  • 4bbe780a34 add optional serde serialization and deserialization to limbo Value pedrocarlo 2025-06-05 13:10:44 -03:00
  • 0f2849f7e1 serde and serde_json as workspace dependencies pedrocarlo 2025-06-05 13:01:44 -03:00
  • cb4efdbc19 Merge 'LimboRwLock write and read lock fixes' from Pere Diaz Bou Pere Diaz Bou 2025-06-09 16:15:46 +02:00
  • 8cd7c7e82e Merge 'fix: make keyword_token safe by validating UTF-8 input' from ankit Pere Diaz Bou 2025-06-09 16:07:37 +02:00
  • f20e83eea1 Run tests in memory Anton Harniakou 2025-06-09 12:45:17 +03:00
  • 4b97d49f75 Rewrite tests using do_execsql_test_any_error Anton Harniakou 2025-06-09 12:10:47 +03:00
  • 444f963fec Drop debug log... Pekka Enberg 2025-06-09 10:46:30 +03:00
  • ae2e0bd71c Merge 'bindings/java: Implement JDBC4DatabaseMetadata getTables ' from Kim Seon Woo Pekka Enberg 2025-06-09 10:46:18 +03:00
  • 11ad9b8884 napi.rs: Remove codegen for transaction Anton Harniakou 2025-06-04 14:37:38 +03:00
  • 8afb07803c Fix typo Anton Harniakou 2025-06-04 14:36:00 +03:00
  • a3298c3ce8 make clippy happy Anton Harniakou 2025-05-29 17:06:46 +03:00
  • defb2e52e8 process errors Anton Harniakou 2025-05-29 14:49:21 +03:00
  • 2ffeb87c85 Pass options from wrapper Anton Harniakou 2025-05-29 14:41:31 +03:00
  • f9f2535246 better-sqlite: test pragma Anton Harniakou 2025-05-29 14:36:00 +03:00
  • 7c9c1f60d4 Implement pragma Anton Harniakou 2025-05-29 12:33:39 +03:00
  • dbc5e7f15a Add simple pragma option Anton Harniakou 2025-05-27 18:35:20 +03:00
  • 8471704e00 Don't use hard-coded column names Anton Harniakou 2025-05-29 13:02:52 +03:00
  • d802075ea9 Resolve merge conflict: Add columns names to result set for pragma statement output Anton Harniakou 2025-05-28 12:08:14 +03:00
  • 74d4726b0c Use expect to get a better error message if accessing unavailable column Anton Harniakou 2025-05-28 12:06:15 +03:00
  • 9f45013ec7 limbo: test simple version of pragma table_list() Anton Harniakou 2025-05-28 14:17:30 +03:00