mirror of
https://github.com/dolthub/dolt.git
synced 2025-12-30 16:12:39 -06:00
30 lines
1.3 KiB
Bash
30 lines
1.3 KiB
Bash
#!/usr/bin/env bats
|
|
load $BATS_TEST_DIRNAME/helper/common.bash
|
|
|
|
# This BATS test attempts to read JSON documents that were written prior to v1.40
|
|
|
|
# This function was used to create the dolt repo used for this test. It is not run during testing.
|
|
create_repo() {
|
|
dolt init
|
|
dolt sql -q "CREATE TABLE jsonTable(pk int primary key, j json);"
|
|
dolt sql -q 'INSERT INTO jsonTable( with recursive cte (pk, j) as ( select 0, JSON_OBJECT("K", "V") union all select pk+1, JSON_INSERT(j, CONCAT("$.k", pk), j) from cte where pk < 20 ) select * from cte );'
|
|
dolt add .
|
|
dolt commit -m "create json table"
|
|
}
|
|
|
|
setup() {
|
|
cp -r $BATS_TEST_DIRNAME/json-oldformat-repo/ $BATS_TMPDIR/dolt-repo-$$
|
|
cd $BATS_TMPDIR/dolt-repo-$$
|
|
}
|
|
|
|
@test "json-oldformat: verify queries" {
|
|
run dolt sql -q "SELECT pk, JSON_EXTRACT(j, '$.k10.k5.k3.k2') FROM jsonTable WHERE pk = 12;"
|
|
[[ "$output" =~ '{"K": "V", "k0": {"K": "V"}, "k1": {"K": "V", "k0": {"K": "V"}}}' ]] || false
|
|
|
|
run dolt sql -q "SELECT pk, JSON_VALUE(j, '$.k8.k6.k4.k1') FROM jsonTable WHERE pk = 12;"
|
|
[[ "$output" =~ '{"K": "V", "k0": {"K": "V"}}' ]] || false
|
|
|
|
run dolt sql -q "SELECT pk, JSON_EXTRACT(JSON_INSERT(j, '$.k9.k6.k1.TESTKEY', 'TESTVALUE'), '$.k9.k6.k1') FROM jsonTable WHERE pk = 12;"
|
|
[[ "$output" =~ '{"K": "V", "k0": {"K": "V"}, "TESTKEY": "TESTVALUE"}' ]] || false
|
|
}
|