statement ok
CREATE VIEW redacted_descriptors AS
    SELECT
        id,
        jsonb_pretty(
            regexp_replace(
                regexp_replace(
                    regexp_replace(
                        (
                            crdb_internal.pb_to_json(
                                'desc',
                                crdb_internal.redact_descriptor(
                                    descriptor
                                )
                            )
                        )::STRING,
                        '"createdAtNanos": "[0-9]+"',
                        '"createdAtNanos": "0"',
                        'g'
                    ),
                    '"wallTime": "[0-9]+"',
                    '"wallTime": "0"'
                ),
               '"logical": [0-9]+[,]*',
               ''
            )::JSONB
        )
            AS descriptor
    FROM
        system.descriptor;

statement ok
CREATE TABLE foo (
    i INT8 DEFAULT 42 ON UPDATE 43 PRIMARY KEY,
    j INT8 AS (44) STORED,
    INDEX (j) WHERE (i = 41),
    FAMILY "primary" (i, j)
);

query T
SELECT descriptor FROM redacted_descriptors WHERE id = 'foo'::REGCLASS;
----
{
    "table": {
        "columns": [
            {
                "defaultExpr": "_:::INT8",
                "id": 1,
                "name": "i",
                "onUpdateExpr": "_:::INT8",
                "type": {
                    "family": "IntFamily",
                    "oid": 20,
                    "width": 64
                }
            },
            {
                "computeExpr": "_:::INT8",
                "id": 2,
                "name": "j",
                "nullable": true,
                "type": {
                    "family": "IntFamily",
                    "oid": 20,
                    "width": 64
                }
            }
        ],
        "createAsOfTime": {},
        "families": [
            {
                "columnIds": [
                    1,
                    2
                ],
                "columnNames": [
                    "i",
                    "j"
                ],
                "defaultColumnId": 2,
                "name": "primary"
            }
        ],
        "formatVersion": 3,
        "id": 107,
        "indexes": [
            {
                "createdAtNanos": "0",
                "foreignKey": {},
                "geoConfig": {},
                "id": 2,
                "interleave": {},
                "keyColumnDirections": [
                    "ASC"
                ],
                "keyColumnIds": [
                    2
                ],
                "keyColumnNames": [
                    "j"
                ],
                "keySuffixColumnIds": [
                    1
                ],
                "name": "foo_j_idx",
                "partitioning": {},
                "predicate": "i = _:::INT8",
                "sharded": {},
                "version": 3
            }
        ],
        "modificationTime": {},
        "name": "foo",
        "nextColumnId": 3,
        "nextConstraintId": 2,
        "nextFamilyId": 1,
        "nextIndexId": 3,
        "nextMutationId": 1,
        "parentId": 104,
        "primaryIndex": {
            "constraintId": 1,
            "createdAtNanos": "0",
            "encodingType": 1,
            "foreignKey": {},
            "geoConfig": {},
            "id": 1,
            "interleave": {},
            "keyColumnDirections": [
                "ASC"
            ],
            "keyColumnIds": [
                1
            ],
            "keyColumnNames": [
                "i"
            ],
            "name": "foo_pkey",
            "partitioning": {},
            "sharded": {},
            "storeColumnIds": [
                2
            ],
            "storeColumnNames": [
                "j"
            ],
            "unique": true,
            "version": 4
        },
        "privileges": {
            "ownerProto": "root",
            "users": [
                {
                    "privileges": "2",
                    "userProto": "admin",
                    "withGrantOption": "2"
                },
                {
                    "privileges": "2",
                    "userProto": "root",
                    "withGrantOption": "2"
                }
            ],
            "version": 3
        },
        "replacementOf": {
            "time": {}
        },
        "unexposedParentSchemaId": 105,
        "version": "1"
    }
}
