cockroachdb / cockroach

CockroachDB — the cloud native, distributed SQL database designed for high availability, effortless scale, and control over data placement.
https://www.cockroachlabs.com
Other
30.01k stars 3.79k forks source link

sql/tests: TestRandomSyntaxSQLSmith failed #119620

Closed cockroach-teamcity closed 7 months ago

cockroach-teamcity commented 7 months ago

sql/tests.TestRandomSyntaxSQLSmith failed with artifacts on master @ c9c3cc5f3c3a4a6ab556f4b9d5b6ec0381901bdb:

Random syntax error:

    rsg_test.go:909: Crash detected: server panic: pq: internal error: unable to encode table key: *tree.DTSVector

Query:

        SELECT
            tab_273453."col.1_8" AS col_609585,
            tab_273453.col1_7 AS col_609586,
            tab_273453.crdb_internal_mvcc_timestamp AS "coL_609587",
            2360179519:::OID AS col_609588,
            '3f7cb70a-23ae-453f-9d60-afa751cb30e1':::UUID AS col_609589,
            (tab_273453.col1_3::JSONB->e'!\x1e\x1d\x1cK<wg)':::STRING::STRING)::JSONB AS "col%q_609590",
            to_regnamespace(tab_273453."col1 _5"::STRING)::REGTYPE AS col_609591,
            NULL AS "co%vl_609592",
            NULL AS "!col
_609593",
            tab_273453.col1_0 AS col_609594,
            tab_273453.col1_0 AS col_609595,
            (
                WITH
                    "%24with_111345" (col_609597, "\\U0006C07Ecol_609598")
                        AS (
                            SELECT
                                *
                            FROM
                                (
                                    VALUES
                                        (
                                            '''CO'' ''FyXVIYQwiH'' ''KCoqIdeLc'':326A,764B,836A,848B ''MccrA'' ''OUN'':396A,443B,591B ''WLOJHu'' ''e'' ''jAtnGziyG'':228B':::TSVECTOR,
                                            ()
                                        ),
                                        (NULL, ()),
                                        (
                                            '''FjiNJH'':55C,284C,947B ''OwJPSyOC'':313C,499C,605A ''P'':167B,174B,920A ''RcLHfm'':10C,359A,437A,788B ''e'':31A,567A ''fOUPHQVk'':489A,868A,965A ''pAHBg'' ''pULv'':969B ''r'':50C ''sLZhdC''':::TSVECTOR,
                                            ()
                                        ),
                                        (NULL, NULL),
                                        (
                                            '''ESQV'' ''RHJrg'':238C ''UTw'' ''aNSODccnM'' ''s'':176B,346C':::TSVECTOR,
                                            (
                                                SELECT
                                                    () AS "c ol_609596"
                                                FROM
                                                    defaultdb.public.table_2 AS tab_273454
                                                    JOIN defaultdb.public.table_2 AS "tͤ ȧ�b_273455" ON
                                                            (tab_273454.col2_0) = ("tͤ ȧ�b_273455".col2_0)
                                                WHERE
                                                    true
                                                ORDER BY
                                                    tab_273454.col2_0 ASC NULLS FIRST
                                                LIMIT
                                                    1:::INT8
                                            )
                                        ),
                                        ('''HXct'':265B,467A,489C ''JdA'' ''Zb'' ''bg'' ''eNl'':746A ''foZ''':::TSVECTOR, ())
                                )
                                    AS tab_273456 (col_609597, "\\U0006C07Ecol_609598")
                        )
                SELECT
                    string_agg('30Tu--{T':::STRING::STRING, e'|``\x02G?o~8':::STRING::STRING) OVER (PARTITION BY cte_ref😜_32049.col_609597 ORDER BY cte_ref😜_32049.col_609597 DESC NULLS LAST)::STRING
                        AS """😲c%f0ol_609599"
                FROM
                    "%24with_111345" AS cte_ref😜_32049
                GROUP BY
                    cte_ref😜_32049."\\U0006C07Ecol_609598", cte_ref😜_32049.col_609597
                LIMIT
                    1:::INT8
            )
                AS col_609600
        FROM
            defaultdb.public."taBle_1"@"taBle_1_pkey" AS tab_273453
        WHERE
            false
        ORDER BY
            tab_273453.tableoid ASC NULLS FIRST, tab_273453."col1 _5" ASC NULLS FIRST
        LIMIT
            44:::INT8;

Schema:

    rsg_test.go:718: To reproduce, use schema:
    rsg_test.go:720: SET sql_safe_updates = false;;
    rsg_test.go:720: SET CLUSTER SETTING sql.stats.automatic_collection.enabled = false;;
    rsg_test.go:720: SET CLUSTER SETTING sql.stats.histogram_collection.enabled = false;;
    rsg_test.go:720: CREATE TABLE "taBle_1" (col1_0 REGTYPE, "col\\U00009D5F😦1\\x4a_1" BIT(48) NOT NULL, col1_2 UUID NOT NULL, col1_3 JSONB, col1_4 REGTYPE NULL, "col1 _5" STRING NOT NULL, col1_6 OID NULL, col1_7 UUID NULL, "col.1_8" STRING NOT NULL AS (lower("col1 _5")) STORED, col1_9 STRING NOT NULL AS (lower(CAST(col1_6 AS STRING))) VIRTUAL, PRIMARY KEY (col1_9 DESC), INDEX (col1_7 ASC, col1_9 ASC) WHERE (("taBle_1".col1_9 > e'\x00':::STRING) AND ("taBle_1"."col.1_8" >= e'\'':::STRING)) OR ("taBle_1"."col1 _5" < '"':::STRING), FAMILY ("col1 _5", col1_3, col1_6), FAMILY ("col.1_8"), FAMILY (col1_4, col1_0), FAMILY (col1_7), FAMILY ("col\\U00009D5F😦1\\x4a_1", col1_2));
    rsg_test.go:720: CREATE TABLE table_2 (col2_0 FLOAT8 NOT NULL, col2_1 INT8 NOT NULL, PRIMARY KEY (col2_1, col2_0 DESC), INDEX (col2_0 DESC), UNIQUE (col2_0) WHERE table_2.col2_1 < (-2147483648):::INT8, UNIQUE (col2_0 DESC), UNIQUE (col2_0 DESC, col2_1 DESC) PARTITION BY LIST (col2_0) (PARTITION table_2_part_0 VALUES IN ((1.183618270889479:::FLOAT8,), ((-0.35344765539646605):::FLOAT8,), ((-1.9848293051545582):::FLOAT8,), ((-0.5842384273035677):::FLOAT8,), ((-0.8366355779284371):::FLOAT8,), (1.3194026300835136:::FLOAT8,), (0.20912156149237848:::FLOAT8,)), PARTITION table_2_part_1 VALUES IN (((-0.01290033733287288):::FLOAT8,), ((-2.08215971841834):::FLOAT8,), (5e-324:::FLOAT8,), ((-0.0733836868332034):::FLOAT8,), (0.7399575400905143:::FLOAT8,), ((-0.2754927456969857):::FLOAT8,), ((-1.2433371467251537):::FLOAT8,))), UNIQUE (col2_1 ASC), UNIQUE (col2_0 ASC));
    rsg_test.go:720: ALTER TABLE "taBle_1" INJECT STATISTICS e'[{"avg_size": 14, "columns": ["col1_0"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 11327114504, "histo_col_type": "", "name": "__auto__", "null_count": 1436836397, "row_count": 20000000000}, {"avg_size": 17, "columns": ["\\"col\\\\\\\\U00009D5F\U0001F6261\\\\\\\\x4a_1\\""], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 4458983794, "histo_col_type": "", "name": "__auto__", "null_count": 0, "row_count": 20000000000}, {"avg_size": 14, "columns": ["col1_4"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 8374089879, "histo_col_type": "", "name": "__auto__", "null_count": 10153614835, "row_count": 20000000000}, {"avg_size": 8, "columns": ["col1_7"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 13966713508, "histo_buckets": [{"distinct_range": 0, "num_eq": 298117935537187275, "num_range": 0, "upper_bound": "0fcb68bc-2b17-4172-bbdf-b58418c457f5"}, {"distinct_range": 0, "num_eq": 70000, "num_range": 800, "upper_bound": "9cdc29d0-d9ee-479f-9b7a-effe5f604478"}, {"distinct_range": 0, "num_eq": 3000000, "num_range": 700000000, "upper_bound": "c62dd14b-b4c8-4807-a796-d5d2abd66997"}], "histo_col_type": "UUID", "histo_version": 3, "name": "__auto__", "null_count": 7966455056, "row_count": 20000000000}, {"avg_size": 5, "columns": ["\\"col.1_8\\""], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 12052752859, "histo_col_type": "", "name": "__auto__", "null_count": 0, "row_count": 20000000000}, {"avg_size": 14, "columns": ["col1_2"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 14399374729, "histo_col_type": "", "name": "__auto__", "null_count": 0, "row_count": 20000000000}, {"avg_size": 9, "columns": ["col1_3"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 1035530056, "histo_col_type": "", "name": "__auto__", "null_count": 4930670160, "row_count": 20000000000}, {"avg_size": 5, "columns": ["\\"col1 _5\\""], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 6853889884, "histo_col_type": "", "name": "__auto__", "null_count": 0, "row_count": 20000000000}, {"avg_size": 25, "columns": ["col1_6"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 10656838140, "histo_col_type": "", "name": "__auto__", "null_count": 2392111438, "row_count": 20000000000}, {"avg_size": 2, "columns": ["col1_9"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 3864062550, "histo_col_type": "", "name": "__auto__", "null_count": 0, "row_count": 20000000000}]':::JSONB;
    rsg_test.go:720: ALTER TABLE table_2 INJECT STATISTICS '[{"avg_size": 17, "columns": ["col2_0"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 373822774323437228, "histo_buckets": [{"distinct_range": 0, "num_eq": 6000, "num_range": 0, "upper_bound": "0.4455184240050416"}, {"distinct_range": 0, "num_eq": 7758952837898493128, "num_range": 4641256804168552887, "upper_bound": "0.5089888522106156"}, {"distinct_range": 6388364446186168000, "num_eq": 30000000000, "num_range": 6388364446186168355, "upper_bound": "1.695114447172859"}, {"distinct_range": 0, "num_eq": 50000000000, "num_range": 7000, "upper_bound": "-0.568081418296615"}, {"distinct_range": 0, "num_eq": 5748198150889247713, "num_range": 1000000000, "upper_bound": "-0.6442348867358172"}], "histo_col_type": "FLOAT8", "histo_version": 3, "name": "__auto__", "null_count": 0, "row_count": 530161427883166221}, {"avg_size": 9, "columns": ["col2_1"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 176470224960869431, "histo_buckets": [{"distinct_range": 0, "num_eq": 6402008747320900859, "num_range": 0, "upper_bound": "2551732471752713030"}, {"distinct_range": 10000000000, "num_eq": 70000000000, "num_range": 10000000000, "upper_bound": "-933508458706932569"}, {"distinct_range": 739250453794631700, "num_eq": 3013633859280593970, "num_range": 5207653226775329882, "upper_bound": "-6038195955440256938"}, {"distinct_range": 400000, "num_eq": 5000, "num_range": 400000, "upper_bound": "2137597162421186225"}], "histo_col_type": "INT8", "histo_version": 3, "name": "__auto__", "null_count": 0, "row_count": 530161427883166221}]':::JSONB;
    rsg_test.go:720: CREATE TYPE rand_typ_0 AS ENUM ('zgvj', 'hpgbfc', 'jlo');
    rsg_test.go:720: CREATE TYPE rand_typ_1 AS ENUM ('mxia', 'n');
    rsg_test.go:720: CREATE TYPE rand_typ_2 AS ENUM ('goin', 'fcuzk', 'x', 'xrzc', 'ru', 'j');
    rsg_test.go:720: CREATE TYPE rand_typ_3 AS ENUM ('ifnbd', 'izgmq', 'h', 'fn', 'cdsckq');
    rsg_test.go:720: CREATE TYPE rand_typ_4 AS ENUM ('gz', 'sesd', 'kf', 'gagw', 'vpry');
    rsg_test.go:720: SET sql_safe_updates = false;;
    rsg_test.go:720: 
        BEGIN; CREATE TYPE greeting AS ENUM ('hello', 'howdy', 'hi', 'good day', 'morning'); COMMIT;
        BEGIN;
        CREATE TABLE IF NOT EXISTS seed AS
            SELECT
                g::INT2 AS _int2,
                g::INT4 AS _int4,
                g::INT8 AS _int8,
                g::FLOAT4 AS _float4,
                g::FLOAT8 AS _float8,
                '2001-01-01'::DATE + g AS _date,
                '2001-01-01'::TIMESTAMP + g * '1 day'::INTERVAL AS _timestamp,
                '2001-01-01'::TIMESTAMPTZ + g * '1 day'::INTERVAL AS _timestamptz,
                g * '1 day'::INTERVAL AS _interval,
                g % 2 = 1 AS _bool,
                g::DECIMAL AS _decimal,
                g::STRING AS _string,
                g::STRING::BYTES AS _bytes,
                substring('00000000-0000-0000-0000-' || g::STRING || '00000000000', 1, 36)::UUID AS _uuid,
                '0.0.0.0'::INET + g AS _inet,
                g::STRING::JSONB AS _jsonb,
                enum_range('hello'::greeting)[g] as _enum
            FROM
                generate_series(1, 5) AS g;
        COMMIT;

        INSERT INTO seed DEFAULT VALUES;
        CREATE INDEX on seed (_int8, _float8, _date);
        CREATE INVERTED INDEX on seed (_jsonb);
        ;
    rsg_test.go:720: ALTER TABLE seed SPLIT AT VALUES (3976478264665490020);
    rsg_test.go:720: ALTER TABLE seed SPLIT AT VALUES (4699899308207318897);
    rsg_test.go:720: ALTER TABLE seed SPLIT AT VALUES (491192340743929410);
    rsg_test.go:720: ALTER TABLE seed SCATTER;
    rsg_test.go:722: 
    rsg_test.go:723: -- test log scope end --
--- FAIL: TestRandomSyntaxSQLSmith (381.73s)
Help

See also: [How To Investigate a Go Test Failure \(internal\)](https://cockroachlabs.atlassian.net/l/c/HgfXfJgM)

Same failure on other branches

- #119441 sql/tests: TestRandomSyntaxSQLSmith failed [C-test-failure O-robot T-sql-foundations branch-release-23.2.1-rc release-blocker] - #119188 sql/tests: TestRandomSyntaxSQLSmith failed [expected exactly one ordering column for RANGE mode with offset] [A-sql-optimizer C-bug C-test-failure O-robot P-3 T-sql-queries branch-release-23.2]

/cc @cockroachdb/sql-foundations

This test on roachdash | Improve this report!

Jira issue: CRDB-36237

fqazi commented 7 months ago

This looks like queries issue related to the type *DTSVector

yuzefovich commented 7 months ago

Should be fixed now - likely a dup of #119567.