Skip to content

Commit 149265d

Browse files
committed
Add object depth limit compatibility test
1 parent 1bd146e commit 149265d

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

tests/bwc/test_upgrade.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -566,3 +566,23 @@ def test_snapshot_compatibility(self):
566566
self._process_on_stop()
567567
prev_version = version
568568
num_snapshot += 1
569+
570+
class ObjectDepthLimitCompatibilityTest(NodeProvider, unittest.TestCase):
571+
def test_object_depth(self):
572+
cluster = self._new_cluster('5.10.x', 1)
573+
cluster.start()
574+
575+
depth = 101
576+
577+
node = cluster.node()
578+
with connect(node.http_url, error_trace=True) as conn:
579+
c = conn.cursor()
580+
c.execute("create table tbl (" + ("o object as (" * depth) + "x int" + (")" * depth) + ")")
581+
582+
node = self.upgrade_node(node, 'latest-nightly')
583+
with connect(node.http_url, error_trace=True) as conn:
584+
c = conn.cursor()
585+
c.execute("alter table tbl add column o" + "['o']" * (depth - 1) + "['y'] int")
586+
c.execute("insert into tbl values (" + "{o=" * (depth - 1) + "{x=1, y=2}" + "}" * (depth - 1) + ")")
587+
c.execute("select o" + "['o']" * (depth - 1) + "from tbl")
588+
self.assertEqual(c.fetchall(), [["{x=1, y=1}"]])

0 commit comments

Comments
 (0)