mirror of
https://github.com/tursodatabase/limbo.git
synced 2025-07-07 12:35:00 +00:00
make tests pass
This commit is contained in:
parent
568dc54b9e
commit
c426c13763
2 changed files with 22 additions and 15 deletions
|
@ -1023,6 +1023,11 @@ impl Jsonb {
|
|||
string.push('\n');
|
||||
};
|
||||
}
|
||||
if let JsonIndentation::Indentation(value) = indent {
|
||||
for _ in 0..depth - 1 {
|
||||
string.push_str(value);
|
||||
}
|
||||
};
|
||||
string.push('}');
|
||||
|
||||
Ok(current_cursor)
|
||||
|
@ -1034,34 +1039,36 @@ impl Jsonb {
|
|||
cursor: usize,
|
||||
len: usize,
|
||||
mut depth: usize,
|
||||
delimiter: &JsonIndentation,
|
||||
indent: &JsonIndentation,
|
||||
) -> Result<usize> {
|
||||
let end_cursor = cursor + len;
|
||||
let mut current_cursor = cursor;
|
||||
depth += 1;
|
||||
string.push('[');
|
||||
if delimiter.is_pretty() {
|
||||
if indent.is_pretty() {
|
||||
string.push('\n');
|
||||
};
|
||||
while current_cursor < end_cursor {
|
||||
if let JsonIndentation::Indentation(value) = delimiter {
|
||||
if let JsonIndentation::Indentation(value) = indent {
|
||||
for _ in 0..depth {
|
||||
string.push_str(value);
|
||||
}
|
||||
};
|
||||
current_cursor = self.serialize_value(string, current_cursor, depth, delimiter)?;
|
||||
current_cursor = self.serialize_value(string, current_cursor, depth, indent)?;
|
||||
if current_cursor < end_cursor {
|
||||
string.push(',');
|
||||
}
|
||||
if delimiter.is_pretty() {
|
||||
if indent.is_pretty() {
|
||||
string.push('\n');
|
||||
};
|
||||
}
|
||||
|
||||
string.push(']');
|
||||
if delimiter.is_pretty() {
|
||||
string.push('\n');
|
||||
if let JsonIndentation::Indentation(value) = indent {
|
||||
for _ in 0..depth - 1 {
|
||||
string.push_str(value);
|
||||
}
|
||||
};
|
||||
string.push(']');
|
||||
|
||||
Ok(current_cursor)
|
||||
}
|
||||
|
||||
|
|
|
@ -298,7 +298,7 @@ do_execsql_test json_extract_with_escaping {
|
|||
} {{1}}
|
||||
|
||||
do_execsql_test json_extract_with_escaping_2 {
|
||||
SELECT json_extract('{"\x61": 1}', '$."\x61"')
|
||||
SELECT json_extract('{"a": 1}', '$."\x61"')
|
||||
} {{1}}
|
||||
|
||||
do_execsql_test json_extract_null_path {
|
||||
|
@ -458,7 +458,7 @@ do_execsql_test json_arrow_chained {
|
|||
select '{"a":2,"c":[4,5,{"f":7}]}' -> 'c' -> 2 ->> 'f'
|
||||
} {{7}}
|
||||
|
||||
# TODO: fix me - this passes on SQLite and needs to be fixed in Limbo.
|
||||
|
||||
do_execsql_test json_extract_multiple_null_paths {
|
||||
SELECT json_extract(1, null, null, null)
|
||||
} {{}}
|
||||
|
@ -669,10 +669,10 @@ do_execsql_test json_from_json_object {
|
|||
|
||||
# FIXME: this behaviour differs from sqlite. Although, sqlite docs states
|
||||
# that this could change in a "future enhancement" (https://www.sqlite.org/json1.html#jobj)
|
||||
#do_execsql_test json_object_duplicated_keys {
|
||||
# SELECT json_object('key', 'value', 'key', 'value2');
|
||||
#} {{{"key":"value2"}}}
|
||||
#
|
||||
do_execsql_test json_object_duplicated_keys {
|
||||
SELECT json_object('key', 'value', 'key', 'value2');
|
||||
} {{{"key":"value","key":"value2"}}}
|
||||
|
||||
|
||||
do_execsql_test json_valid_1 {
|
||||
SELECT json_valid('{"a":55,"b":72}');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue