From d2ec9b8f77bf40ed258f5d12bc58877b6f1109ef Mon Sep 17 00:00:00 2001 From: Mark Dilger Date: Fri, 21 Feb 2025 14:45:12 -0800 Subject: [PATCH v0] Add a reproducible test case for verify_gin errors The test t/006_gin_concurrency.pl works fairly well at triggering the bug, at least for me, but it is hard to step through a TAP test. Convert the statements in the log output of a failed TAP run into a regression test, and find a setseed() value that makes it deterministically fail, and add that test. If you use this test and it does not fail, perhaps that is due to architectural differences between your system and my laptop. I found that I could find a seed by guess-and-check within no more than 10 attempts, so the reader can probably do likewise. --- contrib/amcheck/Makefile | 2 +- contrib/amcheck/expected/stress_gin.out | 12925 ++++++++++++++++++++++ contrib/amcheck/sql/stress_gin.sql | 11432 +++++++++++++++++++ 3 files changed, 24358 insertions(+), 1 deletion(-) create mode 100644 contrib/amcheck/expected/stress_gin.out create mode 100644 contrib/amcheck/sql/stress_gin.sql diff --git a/contrib/amcheck/Makefile b/contrib/amcheck/Makefile index 1b7a63cbaa4..66686f522ff 100644 --- a/contrib/amcheck/Makefile +++ b/contrib/amcheck/Makefile @@ -13,7 +13,7 @@ DATA = amcheck--1.2--1.3.sql amcheck--1.1--1.2.sql amcheck--1.0--1.1.sql amcheck amcheck--1.3--1.4.sql amcheck--1.4--1.5.sql PGFILEDESC = "amcheck - function for verifying relation integrity" -REGRESS = check check_btree check_gin check_heap +REGRESS = check check_btree check_gin check_heap stress_gin EXTRA_INSTALL = contrib/pg_walinspect TAP_TESTS = 1 diff --git a/contrib/amcheck/expected/stress_gin.out b/contrib/amcheck/expected/stress_gin.out new file mode 100644 index 00000000000..e2ace3cbf13 --- /dev/null +++ b/contrib/amcheck/expected/stress_gin.out @@ -0,0 +1,12925 @@ +SELECT setseed(0.2); + setseed +--------- + +(1 row) + +CREATE TABLE tbl(i integer[], j jsonb, k jsonb); +CREATE INDEX ginidx ON tbl USING gin(i, j, k); +CREATE TABLE jsondata (i serial, j jsonb); +INSERT INTO jsondata (j) VALUES + ('1'), + ('91'), + ('[5]'), + ('true'), + ('"zxI"'), + ('[1, 7]'), + ('["", 4]'), + ('"utDFBz"'), + ('[[9], ""]'), + ('"eCvxKPML"'), + ('["1VMQNQM"]'), + ('{"": "562c"}'), + ('[58, 8, null]'), + ('{"": {"": 62}}'), + ('["", 6, 19, ""]'), + ('{"ddfWTQ": true}'), + ('["", 734.2, 9, 5]'), + ('"GMV27mjtuuqmlltw"'), + ('{"dabe": -5, "": 6}'), + ('"hgihykirQGIYTcCA30"'), + ('[9, {"Utrn": -6}, ""]'), + ('"BJTZUMST1_WWEgyqgka_"'), + ('["", -4, "", [-2], -47]'), + ('{"": [3], "": {"": "y"}}'), + ('{"myuijj": "YUWIUZXXLGS"}'), + ('{"3": false, "C": "1sHTX"}'), + ('"ZGUORVDE_ACF1QXJ_hipgwrks"'), + ('{"072": [3, -4], "oh": "eL"}'), + ('[{"de": 9, "JWHPMRZJW": [0]}]'), + ('"EACJUZEBAFFBEE6706SZLWVGO635"'), + ('["P", {"TZW": [""]}, {"": [0]}]'), + ('{"": -6, "YMb": -22, "__": [""]}'), + ('{"659": [8], "bfc": [0], "V": ""}'), + ('{"8776": "1tryl", "Q": 2, "": 4.6}'), + ('[[1], "", 9, 0, [1, 0], -1, 0, "C"]'), + ('"635321pnpjlfFzhGTIYP9265iA_19D8260"'), + ('"klmxsoCFDtzxrhotsqlnmvmzlcbdde34twj"'), + ('"GZSXSZVS19ecbe_ZJJED0379c1j9_GSU9167"'), + ('{"F18s": {"": -84194}, "ececab2": [""]}'), + ('["", {"SVAvgg": "Q"}, 1, 9, "gypy", [1]]'), + ('[[""], {"": 5}, "GVZGGVGSWM", 2, ["", 8]]'), + ('{"V": 8, "TPNL": [826, null], "4": -9.729}'), + ('{"HTJP_DAptxn6": 9, "": "r", "hji4124": ""}'), + ('[1, ["9", 5, 6, ""], {"": "", "": "efb"}, 7]'), + ('{"": 6, "1251e_cajrgkyzuxBEDM017444EFD": 548}'), + ('{"853": -60, "TGLUG_jxmrggv": null, "pjx": ""}'), + ('[0, "wsgnnvCfJVV_KOMLVXOUIS9FIQLPXXBbbaohjrpj"]'), + ('"nizvkl36908OLW22ecbdeEBMHMiCEEACcikwkjpmu30X_m"'), + ('{"bD24eeVZWY": 1, "Bt": 9, "": 6052, "FT": ["h"]}'), + ('"CDBnouyzlAMSHJCtguxxizpzgkNYfaNLURVITNLYVPSNLYNy"'), + ('{"d": [[4, "N"], null, 6, true], "1PKV": 6, "9": 6}'), + ('[-7326, [83, 55], -63, [0, {"": 1}], {"ri0": false}]'), + ('{"": 117.38, "FCkx3608szztpvjolomzvlyrshyvrgz": -4.2}'), + ('["", 8, {"WXHNG": {"6": 4}}, [null], 7, 2, "", 299, 6]'), + ('[[-992.2, "TPm", "", "cedeff79BD8", "t", [1]], 0, [-7]]'), + ('[9, 34, ["LONuyiYGQZ"], [7, 88], ["c"], 1, 6, "", [[2]]]'), + ('[20, 5, null, "eLHTXRWNV", 8, ["pnpvrum", -3], "FINY", 3]'), + ('[{"": "", "b": 2, "d": "egu"}, "aPNK", 2, 9, {"": -79946}]'), + ('[1, {"769": 9}, 5, 9821, 22, 0, 2.7, 5, 4, 191, 54.599, 24]'), + ('["c", 77, "b_0lplvHJNLMxw", "VN76dhFadaafadfe5dfbco", false]'), + ('"TYIHXebbPK_86QMP_199bEEIS__8205986vdC_CFAEFBFCEFCJQRHYoqztv"'), + ('"cdmxxxzrhtxpwuyrxinmhb5577NSPHIHMTPQYTXSUVVGJPUUMCBEDb_1569e"'), + ('[[5, null, "C"], "ORNR", "mnCb", 1, -800, "6953", ["K", 0], ""]'), + ('"SSKLTHJxjxywwquhiwsde353eCIJJjkyvn9946c2cdVadcboiyZFAYMHJWGMMT"'), + ('"5185__D5AtvhizvmEVceF3jxtghlCF0789_owmsztJHRMOJ7rlowxqq51XLXJbF"'), + ('{"D": 565206, "xupqtmfedff": "ZGJN9", "9": 1, "glzv": -47, "": -8}'), + ('{"": 9, "": {"": [null], "ROP": 842}, "": ["5FFD", 7, 5, 1, 94, 1]}'), + ('{"JLn": ["8s"], "": "_ahxizrzhivyzvhr", "XSAt": 5, "P": 2838, "": 5}'), + ('[51, 3, {"": 9, "": -9, "": [[6]]}, 7, 7, {"": 0}, "TXLQL", 7.6, [7]]'), + ('[-38.7, "kre40", 5, {"": null}, "tvuv", 8, "", "", "uizygprwwvh", "1"]'), + ('"z934377_nxmzjnuqglgyukjteefeihjyot1irkvwnnrqinptlpzwjgmkjbQMUVxxwvbdz"'), + ('[165.9, "dAFD_60JQPYbafh", false, {"": 6, "": "fcfd"}, [[2], "c"], 4, 2]'), + ('"ffHOOPVSSACDqiyeecTNWJMWPNRXU283aHRXNUNZZZQPUGYSQTTQXQVJM5eeafcIPGIHcac"'), + ('[2, 8, -53, {"": 5}, "F9", 8, "SGUJPNVI", "7OLOZH", 9.84, {"": 6}, 207, 6]'), + ('"xqmqmyljhq__ZGWJVNefagsxrsktruhmlinhxloupuVQW0804901NKGGMNNSYYXWQOosz8938"'), + ('{"FEoLfaab1160167": {"L": [42, 0]}, "938": "FCCUPGYYYMQSQVZJKM", "knqmk": 2}'), + ('"0igyurmOMSXIYHSZQEAcxlvgqdxkhwtrbaabfaaMC138Z_BDRLrythpi30_MPRXMTOILRLswmoy"'), + ('"1129BBCABFFAACA9VGVKipnwohaccc9TSIMTOQKHmcGYVeFE_PWKLHmpyj60137672qugtsstugg"'), + ('"D3BDA069074174vx48A37IVHWVXLUP9382542ypsl1465pixtryzCBgrkkhrvCC_BDDFatkyXHLIe"'), + ('[{"esx7": -53, "ec60834YGVMYoXAAvgxmmqnojyzmiklhdovFipl": 2, "os": 66433}, 9.13]'), + ('{"": ["", 4, null, 5, null], "": "3", "5_GMMHTIhPB_F_vsebc1": "Er", "GY": 121.32}'), + ('["krTVPYDEd", 5, 8, [6, -6], [[-9], 3340, [[""]]], "", 5, [6, true], 3, "", 1, ""]'), + ('{"rBNPKN8446080wruOLeceaCBDCKWNUYYMONSJUlCDFExr": {"": "EE0", "6826": 5, "": 7496}}'), + ('[3, {"": -8}, "101dboMVSNKZLVPITLHLPorwwuxxjmjsh", "", "LSQPRVYKWVYK945imrh", 4, 51]'), + ('[["HY6"], "", "bcdB", [2, [85, 1], 3, 3, 3, [8]], "", ["_m"], "2", -33, 8, 3, "_xwj"]'), + ('["", 0, -3.7, 8, false, null, {"": 5}, 9, "06FccxFcdb283bbZGGVRSMWLJH2_PBAFpwtkbceto"]'), + ('[52, "", -39, -7, [1], "c", {"": 9, "": 45528, "G": {"": 7}}, 3, false, 0, "EB", 8, -6]'), + ('"qzrkvrlG78CCCEBCptzwwok808805243QXVSYed3efZSKLSNXPxhrS357KJMWSKgrfcFFDFDWKSXJJSIJ_yqJu"'), + ('[43, 8, {"": ""}, "uwtv__HURKGJLGGPPW", 9, 66, "yqrvghxuw", {"J": false}, false, 2, 0, 4]'), + ('[{"UVL": 7, "": 1}, false, [6, "H"], "boxlgqgm", 3, "znhm", [true], 0, ["e", 3.7], 9, 9.4]'), + ('{"825634870117somzqw": 1, "": [5], "gYH": "_XT", "b22412631709RZP": 3, "": "", "FDB": [""]}'), + ('[8, ["_bae"], "", "WN", 80, {"o": 2, "aff": 16}, false, true, 4, 6, {"nutzkzikolsxZRQ": 30}]'), + ('["588BD9c_xzsn", {"k": 0, "_Ecezlkslrwvjpwrukiqzl": 3, "Ej": "4"}, "TUXwghn1dTNRXJZpswmD", 5]'), + ('[{"dC": 7}, {"": 1, "4": 41, "": "", "": "adKS"}, {"": "ypv"}, 6, 9, 2, [-61.46], [1, 3.9], 2]'), + ('{"8": 8, "": -364, "855": -238.1, "zj": 9, "SNHJG413": 3, "UMNVI73": [60, 0], "iwvqse": -1.833}'), + ('"VTUKMLZKQPHIEniCFZ_cjrhvspxzulvxhqykjzmrw89OGOGISWdcrvpOPLOFALGK809896999xzqnkm63254_xrmcfcedb"'), + ('["", "USNQbcexyFDCdBAFWJIphloxwytplyZZR008400FmoiYXVYOHVGV79795644463Aug_aeoDDEjzoziisxoykuijhz"]'), + ('{"": 1, "5abB58gXVQVTTMWU3jSHXMMNV": "", "nv": 934, "kjsnhtj": 8, "": [{"xm": [71, 425]}], "": -9}'), + ('"__oliqCcbwwyqmtECsqivplcb1NTMOQRZTYRJONOIPWNHKWLJRIHKROMJNZLNGTTKRcedebccdbMTQXSzhynxmllqxuhnxBA_"'), + ('["thgACBWGNGMkFFEA", [0, -1349, {"18": "RM", "F3": 6, "dP": "_AF"}, 64, 0, {"f": [8]}], 5, [[0]], 2]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); + gin_index_check +----------------- + +(1 row) + +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); diff --git a/contrib/amcheck/sql/stress_gin.sql b/contrib/amcheck/sql/stress_gin.sql new file mode 100644 index 00000000000..881a7d442a5 --- /dev/null +++ b/contrib/amcheck/sql/stress_gin.sql @@ -0,0 +1,11432 @@ +SELECT setseed(0.2); +CREATE TABLE tbl(i integer[], j jsonb, k jsonb); +CREATE INDEX ginidx ON tbl USING gin(i, j, k); +CREATE TABLE jsondata (i serial, j jsonb); +INSERT INTO jsondata (j) VALUES + ('1'), + ('91'), + ('[5]'), + ('true'), + ('"zxI"'), + ('[1, 7]'), + ('["", 4]'), + ('"utDFBz"'), + ('[[9], ""]'), + ('"eCvxKPML"'), + ('["1VMQNQM"]'), + ('{"": "562c"}'), + ('[58, 8, null]'), + ('{"": {"": 62}}'), + ('["", 6, 19, ""]'), + ('{"ddfWTQ": true}'), + ('["", 734.2, 9, 5]'), + ('"GMV27mjtuuqmlltw"'), + ('{"dabe": -5, "": 6}'), + ('"hgihykirQGIYTcCA30"'), + ('[9, {"Utrn": -6}, ""]'), + ('"BJTZUMST1_WWEgyqgka_"'), + ('["", -4, "", [-2], -47]'), + ('{"": [3], "": {"": "y"}}'), + ('{"myuijj": "YUWIUZXXLGS"}'), + ('{"3": false, "C": "1sHTX"}'), + ('"ZGUORVDE_ACF1QXJ_hipgwrks"'), + ('{"072": [3, -4], "oh": "eL"}'), + ('[{"de": 9, "JWHPMRZJW": [0]}]'), + ('"EACJUZEBAFFBEE6706SZLWVGO635"'), + ('["P", {"TZW": [""]}, {"": [0]}]'), + ('{"": -6, "YMb": -22, "__": [""]}'), + ('{"659": [8], "bfc": [0], "V": ""}'), + ('{"8776": "1tryl", "Q": 2, "": 4.6}'), + ('[[1], "", 9, 0, [1, 0], -1, 0, "C"]'), + ('"635321pnpjlfFzhGTIYP9265iA_19D8260"'), + ('"klmxsoCFDtzxrhotsqlnmvmzlcbdde34twj"'), + ('"GZSXSZVS19ecbe_ZJJED0379c1j9_GSU9167"'), + ('{"F18s": {"": -84194}, "ececab2": [""]}'), + ('["", {"SVAvgg": "Q"}, 1, 9, "gypy", [1]]'), + ('[[""], {"": 5}, "GVZGGVGSWM", 2, ["", 8]]'), + ('{"V": 8, "TPNL": [826, null], "4": -9.729}'), + ('{"HTJP_DAptxn6": 9, "": "r", "hji4124": ""}'), + ('[1, ["9", 5, 6, ""], {"": "", "": "efb"}, 7]'), + ('{"": 6, "1251e_cajrgkyzuxBEDM017444EFD": 548}'), + ('{"853": -60, "TGLUG_jxmrggv": null, "pjx": ""}'), + ('[0, "wsgnnvCfJVV_KOMLVXOUIS9FIQLPXXBbbaohjrpj"]'), + ('"nizvkl36908OLW22ecbdeEBMHMiCEEACcikwkjpmu30X_m"'), + ('{"bD24eeVZWY": 1, "Bt": 9, "": 6052, "FT": ["h"]}'), + ('"CDBnouyzlAMSHJCtguxxizpzgkNYfaNLURVITNLYVPSNLYNy"'), + ('{"d": [[4, "N"], null, 6, true], "1PKV": 6, "9": 6}'), + ('[-7326, [83, 55], -63, [0, {"": 1}], {"ri0": false}]'), + ('{"": 117.38, "FCkx3608szztpvjolomzvlyrshyvrgz": -4.2}'), + ('["", 8, {"WXHNG": {"6": 4}}, [null], 7, 2, "", 299, 6]'), + ('[[-992.2, "TPm", "", "cedeff79BD8", "t", [1]], 0, [-7]]'), + ('[9, 34, ["LONuyiYGQZ"], [7, 88], ["c"], 1, 6, "", [[2]]]'), + ('[20, 5, null, "eLHTXRWNV", 8, ["pnpvrum", -3], "FINY", 3]'), + ('[{"": "", "b": 2, "d": "egu"}, "aPNK", 2, 9, {"": -79946}]'), + ('[1, {"769": 9}, 5, 9821, 22, 0, 2.7, 5, 4, 191, 54.599, 24]'), + ('["c", 77, "b_0lplvHJNLMxw", "VN76dhFadaafadfe5dfbco", false]'), + ('"TYIHXebbPK_86QMP_199bEEIS__8205986vdC_CFAEFBFCEFCJQRHYoqztv"'), + ('"cdmxxxzrhtxpwuyrxinmhb5577NSPHIHMTPQYTXSUVVGJPUUMCBEDb_1569e"'), + ('[[5, null, "C"], "ORNR", "mnCb", 1, -800, "6953", ["K", 0], ""]'), + ('"SSKLTHJxjxywwquhiwsde353eCIJJjkyvn9946c2cdVadcboiyZFAYMHJWGMMT"'), + ('"5185__D5AtvhizvmEVceF3jxtghlCF0789_owmsztJHRMOJ7rlowxqq51XLXJbF"'), + ('{"D": 565206, "xupqtmfedff": "ZGJN9", "9": 1, "glzv": -47, "": -8}'), + ('{"": 9, "": {"": [null], "ROP": 842}, "": ["5FFD", 7, 5, 1, 94, 1]}'), + ('{"JLn": ["8s"], "": "_ahxizrzhivyzvhr", "XSAt": 5, "P": 2838, "": 5}'), + ('[51, 3, {"": 9, "": -9, "": [[6]]}, 7, 7, {"": 0}, "TXLQL", 7.6, [7]]'), + ('[-38.7, "kre40", 5, {"": null}, "tvuv", 8, "", "", "uizygprwwvh", "1"]'), + ('"z934377_nxmzjnuqglgyukjteefeihjyot1irkvwnnrqinptlpzwjgmkjbQMUVxxwvbdz"'), + ('[165.9, "dAFD_60JQPYbafh", false, {"": 6, "": "fcfd"}, [[2], "c"], 4, 2]'), + ('"ffHOOPVSSACDqiyeecTNWJMWPNRXU283aHRXNUNZZZQPUGYSQTTQXQVJM5eeafcIPGIHcac"'), + ('[2, 8, -53, {"": 5}, "F9", 8, "SGUJPNVI", "7OLOZH", 9.84, {"": 6}, 207, 6]'), + ('"xqmqmyljhq__ZGWJVNefagsxrsktruhmlinhxloupuVQW0804901NKGGMNNSYYXWQOosz8938"'), + ('{"FEoLfaab1160167": {"L": [42, 0]}, "938": "FCCUPGYYYMQSQVZJKM", "knqmk": 2}'), + ('"0igyurmOMSXIYHSZQEAcxlvgqdxkhwtrbaabfaaMC138Z_BDRLrythpi30_MPRXMTOILRLswmoy"'), + ('"1129BBCABFFAACA9VGVKipnwohaccc9TSIMTOQKHmcGYVeFE_PWKLHmpyj60137672qugtsstugg"'), + ('"D3BDA069074174vx48A37IVHWVXLUP9382542ypsl1465pixtryzCBgrkkhrvCC_BDDFatkyXHLIe"'), + ('[{"esx7": -53, "ec60834YGVMYoXAAvgxmmqnojyzmiklhdovFipl": 2, "os": 66433}, 9.13]'), + ('{"": ["", 4, null, 5, null], "": "3", "5_GMMHTIhPB_F_vsebc1": "Er", "GY": 121.32}'), + ('["krTVPYDEd", 5, 8, [6, -6], [[-9], 3340, [[""]]], "", 5, [6, true], 3, "", 1, ""]'), + ('{"rBNPKN8446080wruOLeceaCBDCKWNUYYMONSJUlCDFExr": {"": "EE0", "6826": 5, "": 7496}}'), + ('[3, {"": -8}, "101dboMVSNKZLVPITLHLPorwwuxxjmjsh", "", "LSQPRVYKWVYK945imrh", 4, 51]'), + ('[["HY6"], "", "bcdB", [2, [85, 1], 3, 3, 3, [8]], "", ["_m"], "2", -33, 8, 3, "_xwj"]'), + ('["", 0, -3.7, 8, false, null, {"": 5}, 9, "06FccxFcdb283bbZGGVRSMWLJH2_PBAFpwtkbceto"]'), + ('[52, "", -39, -7, [1], "c", {"": 9, "": 45528, "G": {"": 7}}, 3, false, 0, "EB", 8, -6]'), + ('"qzrkvrlG78CCCEBCptzwwok808805243QXVSYed3efZSKLSNXPxhrS357KJMWSKgrfcFFDFDWKSXJJSIJ_yqJu"'), + ('[43, 8, {"": ""}, "uwtv__HURKGJLGGPPW", 9, 66, "yqrvghxuw", {"J": false}, false, 2, 0, 4]'), + ('[{"UVL": 7, "": 1}, false, [6, "H"], "boxlgqgm", 3, "znhm", [true], 0, ["e", 3.7], 9, 9.4]'), + ('{"825634870117somzqw": 1, "": [5], "gYH": "_XT", "b22412631709RZP": 3, "": "", "FDB": [""]}'), + ('[8, ["_bae"], "", "WN", 80, {"o": 2, "aff": 16}, false, true, 4, 6, {"nutzkzikolsxZRQ": 30}]'), + ('["588BD9c_xzsn", {"k": 0, "_Ecezlkslrwvjpwrukiqzl": 3, "Ej": "4"}, "TUXwghn1dTNRXJZpswmD", 5]'), + ('[{"dC": 7}, {"": 1, "4": 41, "": "", "": "adKS"}, {"": "ypv"}, 6, 9, 2, [-61.46], [1, 3.9], 2]'), + ('{"8": 8, "": -364, "855": -238.1, "zj": 9, "SNHJG413": 3, "UMNVI73": [60, 0], "iwvqse": -1.833}'), + ('"VTUKMLZKQPHIEniCFZ_cjrhvspxzulvxhqykjzmrw89OGOGISWdcrvpOPLOFALGK809896999xzqnkm63254_xrmcfcedb"'), + ('["", "USNQbcexyFDCdBAFWJIphloxwytplyZZR008400FmoiYXVYOHVGV79795644463Aug_aeoDDEjzoziisxoykuijhz"]'), + ('{"": 1, "5abB58gXVQVTTMWU3jSHXMMNV": "", "nv": 934, "kjsnhtj": 8, "": [{"xm": [71, 425]}], "": -9}'), + ('"__oliqCcbwwyqmtECsqivplcb1NTMOQRZTYRJONOIPWNHKWLJRIHKROMJNZLNGTTKRcedebccdbMTQXSzhynxmllqxuhnxBA_"'), + ('["thgACBWGNGMkFFEA", [0, -1349, {"18": "RM", "F3": 6, "dP": "_AF"}, 64, 0, {"f": [8]}], 5, [[0]], 2]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); + +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); + +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) + (SELECT gs.i, j.j, j.j || j.j + FROM jsondata j, + (SELECT array_agg(gs) AS i FROM generate_series(random(0,100), random(101,200)) gs) gs + WHERE j.i = random(1,100) + ); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +DELETE FROM tbl + WHERE random(1,5) = 3; +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +DELETE FROM tbl + WHERE random(1,5) = 3; +UPDATE tbl + SET k = (SELECT k || k FROM tbl ORDER BY random() LIMIT 1) + WHERE i = (SELECT i FROM tbl ORDER BY random() LIMIT 1); +UPDATE tbl + SET i = (SELECT i || i FROM tbl ORDER BY random() LIMIT 1) + WHERE j = (SELECT j FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) VALUES + (null, null, null), + (null, null, '[]'), + (null, '[]', null), + (ARRAY[]::INTEGER[], null, null), + (null, '[]', '[]'), + (ARRAY[]::INTEGER[], '[]', null), + (ARRAY[]::INTEGER[], '[]', '[]'); +DELETE FROM tbl + WHERE random(1,5) = 3; +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +INSERT INTO tbl (i, j, k) + (SELECT ARRAY[x.i, y.i, random(0,100000), random(0,100000)], x.j, y.j + FROM jsondata x, jsondata y + WHERE x.i = random(1,100) + AND y.i = random(1,100) + ); +SELECT gin_index_check('ginidx'); +UPDATE tbl + SET j = (SELECT j || j FROM tbl ORDER BY random() LIMIT 1) + WHERE k = (SELECT k FROM tbl ORDER BY random() LIMIT 1); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); +SELECT gin_index_check('ginidx'); -- 2.39.3 (Apple Git-145)