= ({ col, cdx, sortOrder, sortColumn, handleSort }) => {
+ const upFillColor = sortOrder === 'asc' && sortColumn === col.accessor ? 'fill-current' : 'fill-gray-300';
+ const downFillColor = sortOrder !== 'asc' && sortColumn === col.accessor ? 'fill-current' : 'fill-gray-300';
+ return (
+ handleSort(col.accessor)}>
+
+
{col.display}
+
+
+
+
+
+
+ );
+};
diff --git a/web/vtadmin/src/components/routes/Schemas.tsx b/web/vtadmin/src/components/routes/Schemas.tsx
index fff3bb8b2db..5da3870efbc 100644
--- a/web/vtadmin/src/components/routes/Schemas.tsx
+++ b/web/vtadmin/src/components/routes/Schemas.tsx
@@ -25,7 +25,7 @@ import { formatBytes } from '../../util/formatBytes';
import { getTableDefinitions } from '../../util/tableDefinitions';
import { DataCell } from '../dataTable/DataCell';
import { DataFilter } from '../dataTable/DataFilter';
-import { DataTable } from '../dataTable/DataTable';
+import { ColumnProps, SortedDataTable } from '../dataTable/SortedDataTable';
import { ContentContainer } from '../layout/ContentContainer';
import { WorkspaceHeader } from '../layout/WorkspaceHeader';
import { WorkspaceTitle } from '../layout/WorkspaceTitle';
@@ -33,31 +33,43 @@ import { KeyspaceLink } from '../links/KeyspaceLink';
import { QueryLoadingPlaceholder } from '../placeholders/QueryLoadingPlaceholder';
import { HelpTooltip } from '../tooltip/HelpTooltip';
-const TABLE_COLUMNS = [
- 'Keyspace',
- 'Table',
-
- Approx. Size{' '}
-
- Size is an approximate value derived from INFORMATION_SCHEMA .
-
- }
- />
-
,
-
- Approx. Rows{' '}
-
- Row count is an approximate value derived from INFORMATION_SCHEMA
- . Actual values may vary by as much as 40% to 50%.
-
- }
- />
-
,
+const TABLE_COLUMNS: Array = [
+ { display: 'Keyspace', accessor: 'keyspace' },
+ { display: 'Table', accessor: 'table' },
+ {
+ display: (
+
+ Approx. Size{' '}
+
+ Size is an approximate value derived from{' '}
+ INFORMATION_SCHEMA .
+
+ }
+ />
+
+ ),
+ accessor: '_tableSize',
+ },
+ {
+ display: (
+
+ Approx. Rows{' '}
+
+ Row count is an approximate value derived from{' '}
+ INFORMATION_SCHEMA . Actual values may vary by as much as
+ 40% to 50%.
+
+ }
+ />
+
+ ),
+ accessor: '_tableRowCount',
+ },
];
export const Schemas = () => {
@@ -74,6 +86,8 @@ export const Schemas = () => {
clusterID: d.cluster?.id,
keyspace: d.keyspace,
table: d.tableDefinition?.name,
+ _tableSize: d.tableSize?.data_length || 0,
+ _tableRowCount: d.tableSize?.row_count || 0,
_raw: d,
}));
@@ -96,13 +110,13 @@ export const Schemas = () => {
{href ? {row.table} : row.table}
-
+
{formatBytes(row._raw.tableSize?.data_length)}
{formatBytes(row._raw.tableSize?.data_length, 'B')}
- {(row._raw.tableSize?.row_count || 0).toLocaleString()}
+ {(row._raw.tableSize?.row_count || 0).toLocaleString()}
);
});
@@ -120,7 +134,7 @@ export const Schemas = () => {
placeholder="Filter schemas"
value={filter || ''}
/>
-
+
diff --git a/web/vtadmin/src/components/routes/VExplain.tsx b/web/vtadmin/src/components/routes/VExplain.tsx
new file mode 100644
index 00000000000..06969e63ca3
--- /dev/null
+++ b/web/vtadmin/src/components/routes/VExplain.tsx
@@ -0,0 +1,153 @@
+/**
+ * Copyright 2025 The Vitess Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import React, { useMemo } from 'react';
+import { orderBy } from 'lodash-es';
+
+import { vtadmin as pb } from '../../proto/vtadmin';
+import { useKeyspaces, useVExplain } from '../../hooks/api';
+import { Select } from '../inputs/Select';
+import { ContentContainer } from '../layout/ContentContainer';
+import { WorkspaceHeader } from '../layout/WorkspaceHeader';
+import { WorkspaceTitle } from '../layout/WorkspaceTitle';
+import style from './VTExplain.module.scss';
+import { Code } from '../Code';
+import { useDocumentTitle } from '../../hooks/useDocumentTitle';
+import { Label } from '../inputs/Label';
+
+export const VExplain = () => {
+ useDocumentTitle('VExplain');
+
+ const { data: keyspaces = [] } = useKeyspaces();
+
+ const [clusterID, updateCluster] = React.useState(null);
+ const [keyspaceName, updateKeyspace] = React.useState(null);
+ const [sql, updateSQL] = React.useState(null);
+ const [vexplainOption, updateVExplainOption] = React.useState('ALL');
+
+ const fetchVExplainRequestSql = function () {
+ return 'VEXPLAIN ' + vexplainOption + ' ' + sql;
+ };
+
+ const selectedKeyspace =
+ clusterID && keyspaceName
+ ? keyspaces?.find((k) => k.cluster?.id === clusterID && k.keyspace?.name === keyspaceName)
+ : null;
+
+ const { data, error, refetch } = useVExplain(
+ { cluster_id: clusterID, keyspace: keyspaceName, sql: fetchVExplainRequestSql() },
+ {
+ // Never cache, never refetch.
+ cacheTime: 0,
+ enabled: false,
+ refetchOnWindowFocus: false,
+ retry: false,
+ }
+ );
+
+ const onChangeKeyspace = (selectedKeyspace: pb.Keyspace | null | undefined) => {
+ updateCluster(selectedKeyspace?.cluster?.id);
+ updateKeyspace(selectedKeyspace?.keyspace?.name);
+ updateSQL(null);
+ };
+
+ const onChangeSQL: React.ChangeEventHandler = (e) => {
+ updateSQL(e.target.value);
+ };
+
+ const onSubmit: React.FormEventHandler = (e) => {
+ e.preventDefault();
+ refetch();
+ };
+
+ const VEXPLAIN_OPTIONS = ['ALL', 'PLAN', 'QUERIES', 'TRACE', 'KEYS'];
+
+ const isReadyForSubmit = useMemo(() => {
+ return (
+ typeof keyspaceName !== 'undefined' &&
+ keyspaceName !== null &&
+ keyspaceName !== '' &&
+ typeof sql !== 'undefined' &&
+ sql !== null &&
+ sql !== ''
+ );
+ }, [keyspaceName, sql]);
+
+ return (
+
+
+ VExplain
+
+
+
+
+ {error && (
+
+ )}
+
+ {data?.response && (
+
+ )}
+
+
+ );
+};
diff --git a/web/vtadmin/src/components/routes/VTExplain.module.scss b/web/vtadmin/src/components/routes/VTExplain.module.scss
index 98420c848c4..3debd62db61 100644
--- a/web/vtadmin/src/components/routes/VTExplain.module.scss
+++ b/web/vtadmin/src/components/routes/VTExplain.module.scss
@@ -54,5 +54,5 @@
}
.buttons {
- margin: 1.6rem 0 0.8rem 0;
+ margin: 3.1rem 0 0.8rem 0;
}
diff --git a/web/vtadmin/src/hooks/api.ts b/web/vtadmin/src/hooks/api.ts
index c2e1209f128..27642cdfad0 100644
--- a/web/vtadmin/src/hooks/api.ts
+++ b/web/vtadmin/src/hooks/api.ts
@@ -40,6 +40,7 @@ import {
FetchVSchemaParams,
fetchVtctlds,
fetchVTExplain,
+ fetchVExplain,
fetchWorkflow,
fetchWorkflowStatus,
fetchWorkflows,
@@ -460,6 +461,13 @@ export const useVTExplain = (
return useQuery(['vtexplain', params], () => fetchVTExplain(params), { ...options });
};
+export const useVExplain = (
+ params: Parameters[0],
+ options?: UseQueryOptions | undefined
+) => {
+ return useQuery(['vexplain', params], () => fetchVExplain(params), { ...options });
+};
+
/**
* useWorkflow is a query hook that fetches a single workflow for the given parameters.
*/
diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts
index e50a281a532..2175e3508f4 100644
--- a/web/vtadmin/src/proto/vtadmin.d.ts
+++ b/web/vtadmin/src/proto/vtadmin.d.ts
@@ -1003,6 +1003,20 @@ export namespace vtadmin {
*/
public vTExplain(request: vtadmin.IVTExplainRequest): Promise;
+ /**
+ * Calls VExplain.
+ * @param request VExplainRequest message or plain object
+ * @param callback Node-style callback called with the error, if any, and VExplainResponse
+ */
+ public vExplain(request: vtadmin.IVExplainRequest, callback: vtadmin.VTAdmin.VExplainCallback): void;
+
+ /**
+ * Calls VExplain.
+ * @param request VExplainRequest message or plain object
+ * @returns Promise
+ */
+ public vExplain(request: vtadmin.IVExplainRequest): Promise;
+
/**
* Calls WorkflowDelete.
* @param request WorkflowDeleteRequest message or plain object
@@ -1524,6 +1538,13 @@ export namespace vtadmin {
*/
type VTExplainCallback = (error: (Error|null), response?: vtadmin.VTExplainResponse) => void;
+ /**
+ * Callback as used by {@link vtadmin.VTAdmin#vExplain}.
+ * @param error Error, if any
+ * @param [response] VExplainResponse
+ */
+ type VExplainCallback = (error: (Error|null), response?: vtadmin.VExplainResponse) => void;
+
/**
* Callback as used by {@link vtadmin.VTAdmin#workflowDelete}.
* @param error Error, if any
@@ -15381,6 +15402,212 @@ export namespace vtadmin {
*/
public static getTypeUrl(typeUrlPrefix?: string): string;
}
+
+ /** Properties of a VExplainRequest. */
+ interface IVExplainRequest {
+
+ /** VExplainRequest cluster_id */
+ cluster_id?: (string|null);
+
+ /** VExplainRequest keyspace */
+ keyspace?: (string|null);
+
+ /** VExplainRequest sql */
+ sql?: (string|null);
+ }
+
+ /** Represents a VExplainRequest. */
+ class VExplainRequest implements IVExplainRequest {
+
+ /**
+ * Constructs a new VExplainRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: vtadmin.IVExplainRequest);
+
+ /** VExplainRequest cluster_id. */
+ public cluster_id: string;
+
+ /** VExplainRequest keyspace. */
+ public keyspace: string;
+
+ /** VExplainRequest sql. */
+ public sql: string;
+
+ /**
+ * Creates a new VExplainRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns VExplainRequest instance
+ */
+ public static create(properties?: vtadmin.IVExplainRequest): vtadmin.VExplainRequest;
+
+ /**
+ * Encodes the specified VExplainRequest message. Does not implicitly {@link vtadmin.VExplainRequest.verify|verify} messages.
+ * @param message VExplainRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: vtadmin.IVExplainRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified VExplainRequest message, length delimited. Does not implicitly {@link vtadmin.VExplainRequest.verify|verify} messages.
+ * @param message VExplainRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: vtadmin.IVExplainRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a VExplainRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns VExplainRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtadmin.VExplainRequest;
+
+ /**
+ * Decodes a VExplainRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns VExplainRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtadmin.VExplainRequest;
+
+ /**
+ * Verifies a VExplainRequest message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a VExplainRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns VExplainRequest
+ */
+ public static fromObject(object: { [k: string]: any }): vtadmin.VExplainRequest;
+
+ /**
+ * Creates a plain object from a VExplainRequest message. Also converts values to other types if specified.
+ * @param message VExplainRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: vtadmin.VExplainRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this VExplainRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for VExplainRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a VExplainResponse. */
+ interface IVExplainResponse {
+
+ /** VExplainResponse response */
+ response?: (string|null);
+ }
+
+ /** Represents a VExplainResponse. */
+ class VExplainResponse implements IVExplainResponse {
+
+ /**
+ * Constructs a new VExplainResponse.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: vtadmin.IVExplainResponse);
+
+ /** VExplainResponse response. */
+ public response: string;
+
+ /**
+ * Creates a new VExplainResponse instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns VExplainResponse instance
+ */
+ public static create(properties?: vtadmin.IVExplainResponse): vtadmin.VExplainResponse;
+
+ /**
+ * Encodes the specified VExplainResponse message. Does not implicitly {@link vtadmin.VExplainResponse.verify|verify} messages.
+ * @param message VExplainResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: vtadmin.IVExplainResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified VExplainResponse message, length delimited. Does not implicitly {@link vtadmin.VExplainResponse.verify|verify} messages.
+ * @param message VExplainResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: vtadmin.IVExplainResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a VExplainResponse message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns VExplainResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtadmin.VExplainResponse;
+
+ /**
+ * Decodes a VExplainResponse message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns VExplainResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtadmin.VExplainResponse;
+
+ /**
+ * Verifies a VExplainResponse message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a VExplainResponse message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns VExplainResponse
+ */
+ public static fromObject(object: { [k: string]: any }): vtadmin.VExplainResponse;
+
+ /**
+ * Creates a plain object from a VExplainResponse message. Also converts values to other types if specified.
+ * @param message VExplainResponse
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: vtadmin.VExplainResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this VExplainResponse to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for VExplainResponse
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
}
/** Namespace logutil. */
@@ -31327,9 +31554,6 @@ export namespace tabletmanagerdata {
/** BackupRequest backup_engine. */
public backup_engine?: (string|null);
- /** BackupRequest _backup_engine. */
- public _backup_engine?: "backup_engine";
-
/**
* Creates a new BackupRequest instance using the specified properties.
* @param [properties] Properties to set
@@ -33948,9 +34172,6 @@ export namespace tabletmanagerdata {
/** VDiffCoreOptions auto_start. */
public auto_start?: (boolean|null);
- /** VDiffCoreOptions _auto_start. */
- public _auto_start?: "auto_start";
-
/**
* Creates a new VDiffCoreOptions instance using the specified properties.
* @param [properties] Properties to set
@@ -34163,9 +34384,6 @@ export namespace tabletmanagerdata {
/** VDiffTableLastPK source. */
public source?: (query.IQueryResult|null);
- /** VDiffTableLastPK _source. */
- public _source?: "source";
-
/**
* Creates a new VDiffTableLastPK instance using the specified properties.
* @param [properties] Properties to set
@@ -34311,18 +34529,6 @@ export namespace tabletmanagerdata {
/** UpdateVReplicationWorkflowRequest message. */
public message?: (string|null);
- /** UpdateVReplicationWorkflowRequest _tablet_selection_preference. */
- public _tablet_selection_preference?: "tablet_selection_preference";
-
- /** UpdateVReplicationWorkflowRequest _on_ddl. */
- public _on_ddl?: "on_ddl";
-
- /** UpdateVReplicationWorkflowRequest _state. */
- public _state?: "state";
-
- /** UpdateVReplicationWorkflowRequest _message. */
- public _message?: "message";
-
/**
* Creates a new UpdateVReplicationWorkflowRequest instance using the specified properties.
* @param [properties] Properties to set
@@ -34547,15 +34753,6 @@ export namespace tabletmanagerdata {
/** UpdateVReplicationWorkflowsRequest stop_position. */
public stop_position?: (string|null);
- /** UpdateVReplicationWorkflowsRequest _state. */
- public _state?: "state";
-
- /** UpdateVReplicationWorkflowsRequest _message. */
- public _message?: "message";
-
- /** UpdateVReplicationWorkflowsRequest _stop_position. */
- public _stop_position?: "stop_position";
-
/**
* Creates a new UpdateVReplicationWorkflowsRequest instance using the specified properties.
* @param [properties] Properties to set
@@ -48625,6 +48822,9 @@ export namespace replicationdata {
/** FullStatus replication_configuration */
replication_configuration?: (replicationdata.IConfiguration|null);
+
+ /** FullStatus disk_stalled */
+ disk_stalled?: (boolean|null);
}
/** Represents a FullStatus. */
@@ -48702,6 +48902,9 @@ export namespace replicationdata {
/** FullStatus replication_configuration. */
public replication_configuration?: (replicationdata.IConfiguration|null);
+ /** FullStatus disk_stalled. */
+ public disk_stalled: boolean;
+
/**
* Creates a new FullStatus instance using the specified properties.
* @param [properties] Properties to set
@@ -49746,9 +49949,6 @@ export namespace vschema {
/** Column values. */
public values: string[];
- /** Column _nullable. */
- public _nullable?: "nullable";
-
/**
* Creates a new Column instance using the specified properties.
* @param [properties] Properties to set
@@ -54416,9 +54616,6 @@ export namespace vtctldata {
/** BackupRequest backup_engine. */
public backup_engine?: (string|null);
- /** BackupRequest _backup_engine. */
- public _backup_engine?: "backup_engine";
-
/**
* Creates a new BackupRequest instance using the specified properties.
* @param [properties] Properties to set
@@ -77808,9 +78005,6 @@ export namespace vtctldata {
/** VDiffCreateRequest auto_start. */
public auto_start?: (boolean|null);
- /** VDiffCreateRequest _auto_start. */
- public _auto_start?: "auto_start";
-
/**
* Creates a new VDiffCreateRequest instance using the specified properties.
* @param [properties] Properties to set
diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js
index 06441df8cf4..17a941acfcf 100644
--- a/web/vtadmin/src/proto/vtadmin.js
+++ b/web/vtadmin/src/proto/vtadmin.js
@@ -2358,6 +2358,39 @@ export const vtadmin = $root.vtadmin = (() => {
* @variation 2
*/
+ /**
+ * Callback as used by {@link vtadmin.VTAdmin#vExplain}.
+ * @memberof vtadmin.VTAdmin
+ * @typedef VExplainCallback
+ * @type {function}
+ * @param {Error|null} error Error, if any
+ * @param {vtadmin.VExplainResponse} [response] VExplainResponse
+ */
+
+ /**
+ * Calls VExplain.
+ * @function vExplain
+ * @memberof vtadmin.VTAdmin
+ * @instance
+ * @param {vtadmin.IVExplainRequest} request VExplainRequest message or plain object
+ * @param {vtadmin.VTAdmin.VExplainCallback} callback Node-style callback called with the error, if any, and VExplainResponse
+ * @returns {undefined}
+ * @variation 1
+ */
+ Object.defineProperty(VTAdmin.prototype.vExplain = function vExplain(request, callback) {
+ return this.rpcCall(vExplain, $root.vtadmin.VExplainRequest, $root.vtadmin.VExplainResponse, request, callback);
+ }, "name", { value: "VExplain" });
+
+ /**
+ * Calls VExplain.
+ * @function vExplain
+ * @memberof vtadmin.VTAdmin
+ * @instance
+ * @param {vtadmin.IVExplainRequest} request VExplainRequest message or plain object
+ * @returns {Promise} Promise
+ * @variation 2
+ */
+
/**
* Callback as used by {@link vtadmin.VTAdmin#workflowDelete}.
* @memberof vtadmin.VTAdmin
@@ -35265,6 +35298,459 @@ export const vtadmin = $root.vtadmin = (() => {
return VTExplainResponse;
})();
+ vtadmin.VExplainRequest = (function() {
+
+ /**
+ * Properties of a VExplainRequest.
+ * @memberof vtadmin
+ * @interface IVExplainRequest
+ * @property {string|null} [cluster_id] VExplainRequest cluster_id
+ * @property {string|null} [keyspace] VExplainRequest keyspace
+ * @property {string|null} [sql] VExplainRequest sql
+ */
+
+ /**
+ * Constructs a new VExplainRequest.
+ * @memberof vtadmin
+ * @classdesc Represents a VExplainRequest.
+ * @implements IVExplainRequest
+ * @constructor
+ * @param {vtadmin.IVExplainRequest=} [properties] Properties to set
+ */
+ function VExplainRequest(properties) {
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * VExplainRequest cluster_id.
+ * @member {string} cluster_id
+ * @memberof vtadmin.VExplainRequest
+ * @instance
+ */
+ VExplainRequest.prototype.cluster_id = "";
+
+ /**
+ * VExplainRequest keyspace.
+ * @member {string} keyspace
+ * @memberof vtadmin.VExplainRequest
+ * @instance
+ */
+ VExplainRequest.prototype.keyspace = "";
+
+ /**
+ * VExplainRequest sql.
+ * @member {string} sql
+ * @memberof vtadmin.VExplainRequest
+ * @instance
+ */
+ VExplainRequest.prototype.sql = "";
+
+ /**
+ * Creates a new VExplainRequest instance using the specified properties.
+ * @function create
+ * @memberof vtadmin.VExplainRequest
+ * @static
+ * @param {vtadmin.IVExplainRequest=} [properties] Properties to set
+ * @returns {vtadmin.VExplainRequest} VExplainRequest instance
+ */
+ VExplainRequest.create = function create(properties) {
+ return new VExplainRequest(properties);
+ };
+
+ /**
+ * Encodes the specified VExplainRequest message. Does not implicitly {@link vtadmin.VExplainRequest.verify|verify} messages.
+ * @function encode
+ * @memberof vtadmin.VExplainRequest
+ * @static
+ * @param {vtadmin.IVExplainRequest} message VExplainRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ VExplainRequest.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.cluster_id != null && Object.hasOwnProperty.call(message, "cluster_id"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.cluster_id);
+ if (message.keyspace != null && Object.hasOwnProperty.call(message, "keyspace"))
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.keyspace);
+ if (message.sql != null && Object.hasOwnProperty.call(message, "sql"))
+ writer.uint32(/* id 3, wireType 2 =*/26).string(message.sql);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified VExplainRequest message, length delimited. Does not implicitly {@link vtadmin.VExplainRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof vtadmin.VExplainRequest
+ * @static
+ * @param {vtadmin.IVExplainRequest} message VExplainRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ VExplainRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a VExplainRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof vtadmin.VExplainRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {vtadmin.VExplainRequest} VExplainRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ VExplainRequest.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtadmin.VExplainRequest();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.cluster_id = reader.string();
+ break;
+ }
+ case 2: {
+ message.keyspace = reader.string();
+ break;
+ }
+ case 3: {
+ message.sql = reader.string();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a VExplainRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof vtadmin.VExplainRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {vtadmin.VExplainRequest} VExplainRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ VExplainRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a VExplainRequest message.
+ * @function verify
+ * @memberof vtadmin.VExplainRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ VExplainRequest.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.cluster_id != null && message.hasOwnProperty("cluster_id"))
+ if (!$util.isString(message.cluster_id))
+ return "cluster_id: string expected";
+ if (message.keyspace != null && message.hasOwnProperty("keyspace"))
+ if (!$util.isString(message.keyspace))
+ return "keyspace: string expected";
+ if (message.sql != null && message.hasOwnProperty("sql"))
+ if (!$util.isString(message.sql))
+ return "sql: string expected";
+ return null;
+ };
+
+ /**
+ * Creates a VExplainRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof vtadmin.VExplainRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {vtadmin.VExplainRequest} VExplainRequest
+ */
+ VExplainRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.vtadmin.VExplainRequest)
+ return object;
+ let message = new $root.vtadmin.VExplainRequest();
+ if (object.cluster_id != null)
+ message.cluster_id = String(object.cluster_id);
+ if (object.keyspace != null)
+ message.keyspace = String(object.keyspace);
+ if (object.sql != null)
+ message.sql = String(object.sql);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a VExplainRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof vtadmin.VExplainRequest
+ * @static
+ * @param {vtadmin.VExplainRequest} message VExplainRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ VExplainRequest.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.defaults) {
+ object.cluster_id = "";
+ object.keyspace = "";
+ object.sql = "";
+ }
+ if (message.cluster_id != null && message.hasOwnProperty("cluster_id"))
+ object.cluster_id = message.cluster_id;
+ if (message.keyspace != null && message.hasOwnProperty("keyspace"))
+ object.keyspace = message.keyspace;
+ if (message.sql != null && message.hasOwnProperty("sql"))
+ object.sql = message.sql;
+ return object;
+ };
+
+ /**
+ * Converts this VExplainRequest to JSON.
+ * @function toJSON
+ * @memberof vtadmin.VExplainRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ VExplainRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for VExplainRequest
+ * @function getTypeUrl
+ * @memberof vtadmin.VExplainRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ VExplainRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/vtadmin.VExplainRequest";
+ };
+
+ return VExplainRequest;
+ })();
+
+ vtadmin.VExplainResponse = (function() {
+
+ /**
+ * Properties of a VExplainResponse.
+ * @memberof vtadmin
+ * @interface IVExplainResponse
+ * @property {string|null} [response] VExplainResponse response
+ */
+
+ /**
+ * Constructs a new VExplainResponse.
+ * @memberof vtadmin
+ * @classdesc Represents a VExplainResponse.
+ * @implements IVExplainResponse
+ * @constructor
+ * @param {vtadmin.IVExplainResponse=} [properties] Properties to set
+ */
+ function VExplainResponse(properties) {
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * VExplainResponse response.
+ * @member {string} response
+ * @memberof vtadmin.VExplainResponse
+ * @instance
+ */
+ VExplainResponse.prototype.response = "";
+
+ /**
+ * Creates a new VExplainResponse instance using the specified properties.
+ * @function create
+ * @memberof vtadmin.VExplainResponse
+ * @static
+ * @param {vtadmin.IVExplainResponse=} [properties] Properties to set
+ * @returns {vtadmin.VExplainResponse} VExplainResponse instance
+ */
+ VExplainResponse.create = function create(properties) {
+ return new VExplainResponse(properties);
+ };
+
+ /**
+ * Encodes the specified VExplainResponse message. Does not implicitly {@link vtadmin.VExplainResponse.verify|verify} messages.
+ * @function encode
+ * @memberof vtadmin.VExplainResponse
+ * @static
+ * @param {vtadmin.IVExplainResponse} message VExplainResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ VExplainResponse.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.response != null && Object.hasOwnProperty.call(message, "response"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.response);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified VExplainResponse message, length delimited. Does not implicitly {@link vtadmin.VExplainResponse.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof vtadmin.VExplainResponse
+ * @static
+ * @param {vtadmin.IVExplainResponse} message VExplainResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ VExplainResponse.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a VExplainResponse message from the specified reader or buffer.
+ * @function decode
+ * @memberof vtadmin.VExplainResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {vtadmin.VExplainResponse} VExplainResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ VExplainResponse.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtadmin.VExplainResponse();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.response = reader.string();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a VExplainResponse message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof vtadmin.VExplainResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {vtadmin.VExplainResponse} VExplainResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ VExplainResponse.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a VExplainResponse message.
+ * @function verify
+ * @memberof vtadmin.VExplainResponse
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ VExplainResponse.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.response != null && message.hasOwnProperty("response"))
+ if (!$util.isString(message.response))
+ return "response: string expected";
+ return null;
+ };
+
+ /**
+ * Creates a VExplainResponse message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof vtadmin.VExplainResponse
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {vtadmin.VExplainResponse} VExplainResponse
+ */
+ VExplainResponse.fromObject = function fromObject(object) {
+ if (object instanceof $root.vtadmin.VExplainResponse)
+ return object;
+ let message = new $root.vtadmin.VExplainResponse();
+ if (object.response != null)
+ message.response = String(object.response);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a VExplainResponse message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof vtadmin.VExplainResponse
+ * @static
+ * @param {vtadmin.VExplainResponse} message VExplainResponse
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ VExplainResponse.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.defaults)
+ object.response = "";
+ if (message.response != null && message.hasOwnProperty("response"))
+ object.response = message.response;
+ return object;
+ };
+
+ /**
+ * Converts this VExplainResponse to JSON.
+ * @function toJSON
+ * @memberof vtadmin.VExplainResponse
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ VExplainResponse.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for VExplainResponse
+ * @function getTypeUrl
+ * @memberof vtadmin.VExplainResponse
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ VExplainResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/vtadmin.VExplainResponse";
+ };
+
+ return VExplainResponse;
+ })();
+
return vtadmin;
})();
@@ -71242,12 +71728,7 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
// OneOf field names bound to virtual getters and setters
let $oneOfFields;
- /**
- * BackupRequest _backup_engine.
- * @member {"backup_engine"|undefined} _backup_engine
- * @memberof tabletmanagerdata.BackupRequest
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(BackupRequest.prototype, "_backup_engine", {
get: $util.oneOfGetter($oneOfFields = ["backup_engine"]),
set: $util.oneOfSetter($oneOfFields)
@@ -78250,12 +78731,7 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
// OneOf field names bound to virtual getters and setters
let $oneOfFields;
- /**
- * VDiffCoreOptions _auto_start.
- * @member {"auto_start"|undefined} _auto_start
- * @memberof tabletmanagerdata.VDiffCoreOptions
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(VDiffCoreOptions.prototype, "_auto_start", {
get: $util.oneOfGetter($oneOfFields = ["auto_start"]),
set: $util.oneOfSetter($oneOfFields)
@@ -78943,12 +79419,7 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
// OneOf field names bound to virtual getters and setters
let $oneOfFields;
- /**
- * VDiffTableLastPK _source.
- * @member {"source"|undefined} _source
- * @memberof tabletmanagerdata.VDiffTableLastPK
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(VDiffTableLastPK.prototype, "_source", {
get: $util.oneOfGetter($oneOfFields = ["source"]),
set: $util.oneOfSetter($oneOfFields)
@@ -79266,45 +79737,25 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
// OneOf field names bound to virtual getters and setters
let $oneOfFields;
- /**
- * UpdateVReplicationWorkflowRequest _tablet_selection_preference.
- * @member {"tablet_selection_preference"|undefined} _tablet_selection_preference
- * @memberof tabletmanagerdata.UpdateVReplicationWorkflowRequest
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(UpdateVReplicationWorkflowRequest.prototype, "_tablet_selection_preference", {
get: $util.oneOfGetter($oneOfFields = ["tablet_selection_preference"]),
set: $util.oneOfSetter($oneOfFields)
});
- /**
- * UpdateVReplicationWorkflowRequest _on_ddl.
- * @member {"on_ddl"|undefined} _on_ddl
- * @memberof tabletmanagerdata.UpdateVReplicationWorkflowRequest
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(UpdateVReplicationWorkflowRequest.prototype, "_on_ddl", {
get: $util.oneOfGetter($oneOfFields = ["on_ddl"]),
set: $util.oneOfSetter($oneOfFields)
});
- /**
- * UpdateVReplicationWorkflowRequest _state.
- * @member {"state"|undefined} _state
- * @memberof tabletmanagerdata.UpdateVReplicationWorkflowRequest
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(UpdateVReplicationWorkflowRequest.prototype, "_state", {
get: $util.oneOfGetter($oneOfFields = ["state"]),
set: $util.oneOfSetter($oneOfFields)
});
- /**
- * UpdateVReplicationWorkflowRequest _message.
- * @member {"message"|undefined} _message
- * @memberof tabletmanagerdata.UpdateVReplicationWorkflowRequest
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(UpdateVReplicationWorkflowRequest.prototype, "_message", {
get: $util.oneOfGetter($oneOfFields = ["message"]),
set: $util.oneOfSetter($oneOfFields)
@@ -80151,34 +80602,19 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
// OneOf field names bound to virtual getters and setters
let $oneOfFields;
- /**
- * UpdateVReplicationWorkflowsRequest _state.
- * @member {"state"|undefined} _state
- * @memberof tabletmanagerdata.UpdateVReplicationWorkflowsRequest
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(UpdateVReplicationWorkflowsRequest.prototype, "_state", {
get: $util.oneOfGetter($oneOfFields = ["state"]),
set: $util.oneOfSetter($oneOfFields)
});
- /**
- * UpdateVReplicationWorkflowsRequest _message.
- * @member {"message"|undefined} _message
- * @memberof tabletmanagerdata.UpdateVReplicationWorkflowsRequest
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(UpdateVReplicationWorkflowsRequest.prototype, "_message", {
get: $util.oneOfGetter($oneOfFields = ["message"]),
set: $util.oneOfSetter($oneOfFields)
});
- /**
- * UpdateVReplicationWorkflowsRequest _stop_position.
- * @member {"stop_position"|undefined} _stop_position
- * @memberof tabletmanagerdata.UpdateVReplicationWorkflowsRequest
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(UpdateVReplicationWorkflowsRequest.prototype, "_stop_position", {
get: $util.oneOfGetter($oneOfFields = ["stop_position"]),
set: $util.oneOfSetter($oneOfFields)
@@ -118158,6 +118594,7 @@ export const replicationdata = $root.replicationdata = (() => {
* @property {number|null} [semi_sync_wait_for_replica_count] FullStatus semi_sync_wait_for_replica_count
* @property {boolean|null} [super_read_only] FullStatus super_read_only
* @property {replicationdata.IConfiguration|null} [replication_configuration] FullStatus replication_configuration
+ * @property {boolean|null} [disk_stalled] FullStatus disk_stalled
*/
/**
@@ -118351,6 +118788,14 @@ export const replicationdata = $root.replicationdata = (() => {
*/
FullStatus.prototype.replication_configuration = null;
+ /**
+ * FullStatus disk_stalled.
+ * @member {boolean} disk_stalled
+ * @memberof replicationdata.FullStatus
+ * @instance
+ */
+ FullStatus.prototype.disk_stalled = false;
+
/**
* Creates a new FullStatus instance using the specified properties.
* @function create
@@ -118419,6 +118864,8 @@ export const replicationdata = $root.replicationdata = (() => {
writer.uint32(/* id 21, wireType 0 =*/168).bool(message.super_read_only);
if (message.replication_configuration != null && Object.hasOwnProperty.call(message, "replication_configuration"))
$root.replicationdata.Configuration.encode(message.replication_configuration, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim();
+ if (message.disk_stalled != null && Object.hasOwnProperty.call(message, "disk_stalled"))
+ writer.uint32(/* id 23, wireType 0 =*/184).bool(message.disk_stalled);
return writer;
};
@@ -118541,6 +118988,10 @@ export const replicationdata = $root.replicationdata = (() => {
message.replication_configuration = $root.replicationdata.Configuration.decode(reader, reader.uint32());
break;
}
+ case 23: {
+ message.disk_stalled = reader.bool();
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -118648,6 +119099,9 @@ export const replicationdata = $root.replicationdata = (() => {
if (error)
return "replication_configuration." + error;
}
+ if (message.disk_stalled != null && message.hasOwnProperty("disk_stalled"))
+ if (typeof message.disk_stalled !== "boolean")
+ return "disk_stalled: boolean expected";
return null;
};
@@ -118723,6 +119177,8 @@ export const replicationdata = $root.replicationdata = (() => {
throw TypeError(".replicationdata.FullStatus.replication_configuration: object expected");
message.replication_configuration = $root.replicationdata.Configuration.fromObject(object.replication_configuration);
}
+ if (object.disk_stalled != null)
+ message.disk_stalled = Boolean(object.disk_stalled);
return message;
};
@@ -118766,6 +119222,7 @@ export const replicationdata = $root.replicationdata = (() => {
object.semi_sync_wait_for_replica_count = 0;
object.super_read_only = false;
object.replication_configuration = null;
+ object.disk_stalled = false;
}
if (message.server_id != null && message.hasOwnProperty("server_id"))
object.server_id = message.server_id;
@@ -118814,6 +119271,8 @@ export const replicationdata = $root.replicationdata = (() => {
object.super_read_only = message.super_read_only;
if (message.replication_configuration != null && message.hasOwnProperty("replication_configuration"))
object.replication_configuration = $root.replicationdata.Configuration.toObject(message.replication_configuration, options);
+ if (message.disk_stalled != null && message.hasOwnProperty("disk_stalled"))
+ object.disk_stalled = message.disk_stalled;
return object;
};
@@ -121486,12 +121945,7 @@ export const vschema = $root.vschema = (() => {
// OneOf field names bound to virtual getters and setters
let $oneOfFields;
- /**
- * Column _nullable.
- * @member {"nullable"|undefined} _nullable
- * @memberof vschema.Column
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(Column.prototype, "_nullable", {
get: $util.oneOfGetter($oneOfFields = ["nullable"]),
set: $util.oneOfSetter($oneOfFields)
@@ -134452,12 +134906,7 @@ export const vtctldata = $root.vtctldata = (() => {
// OneOf field names bound to virtual getters and setters
let $oneOfFields;
- /**
- * BackupRequest _backup_engine.
- * @member {"backup_engine"|undefined} _backup_engine
- * @memberof vtctldata.BackupRequest
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(BackupRequest.prototype, "_backup_engine", {
get: $util.oneOfGetter($oneOfFields = ["backup_engine"]),
set: $util.oneOfSetter($oneOfFields)
@@ -189629,12 +190078,7 @@ export const vtctldata = $root.vtctldata = (() => {
// OneOf field names bound to virtual getters and setters
let $oneOfFields;
- /**
- * VDiffCreateRequest _auto_start.
- * @member {"auto_start"|undefined} _auto_start
- * @memberof vtctldata.VDiffCreateRequest
- * @instance
- */
+ // Virtual OneOf for proto3 optional field
Object.defineProperty(VDiffCreateRequest.prototype, "_auto_start", {
get: $util.oneOfGetter($oneOfFields = ["auto_start"]),
set: $util.oneOfSetter($oneOfFields)