@google-cloud/bigquery-storage-api 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -0
- package/build/protos/google/cloud/bigquery/storage/v1/annotations.proto +28 -0
- package/build/protos/google/cloud/bigquery/storage/v1/arrow.proto +89 -0
- package/build/protos/google/cloud/bigquery/storage/v1/avro.proto +81 -0
- package/build/protos/google/cloud/bigquery/storage/v1/protobuf.proto +48 -0
- package/build/protos/google/cloud/bigquery/storage/v1/storage.proto +786 -0
- package/build/protos/google/cloud/bigquery/storage/v1/stream.proto +335 -0
- package/build/protos/google/cloud/bigquery/storage/v1/table.proto +200 -0
- package/build/protos/protos.d.ts +12699 -0
- package/build/protos/protos.js +1 -0
- package/build/protos/protos.json +1 -0
- package/build/src/index.d.ts +14 -0
- package/build/src/index.js +30 -0
- package/build/src/index.js.map +1 -0
- package/build/src/v1/big_query_read_client.d.ts +424 -0
- package/build/src/v1/big_query_read_client.js +689 -0
- package/build/src/v1/big_query_read_client.js.map +1 -0
- package/build/src/v1/big_query_read_client_config.json +44 -0
- package/build/src/v1/big_query_read_proto_list.json +9 -0
- package/build/src/v1/big_query_write_client.d.ts +486 -0
- package/build/src/v1/big_query_write_client.js +835 -0
- package/build/src/v1/big_query_write_client.js.map +1 -0
- package/build/src/v1/big_query_write_client_config.json +73 -0
- package/build/src/v1/big_query_write_proto_list.json +9 -0
- package/build/src/v1/gapic_metadata.json +117 -0
- package/build/src/v1/index.d.ts +2 -0
- package/build/src/v1/index.js +25 -0
- package/build/src/v1/index.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
// Copyright 2025 Google LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
syntax = "proto3";
|
|
16
|
+
|
|
17
|
+
package google.cloud.bigquery.storage.v1;
|
|
18
|
+
|
|
19
|
+
import "google/api/field_behavior.proto";
|
|
20
|
+
import "google/api/resource.proto";
|
|
21
|
+
import "google/cloud/bigquery/storage/v1/arrow.proto";
|
|
22
|
+
import "google/cloud/bigquery/storage/v1/avro.proto";
|
|
23
|
+
import "google/cloud/bigquery/storage/v1/table.proto";
|
|
24
|
+
import "google/protobuf/timestamp.proto";
|
|
25
|
+
|
|
26
|
+
option csharp_namespace = "Google.Cloud.BigQuery.Storage.V1";
|
|
27
|
+
option go_package = "cloud.google.com/go/bigquery/storage/apiv1/storagepb;storagepb";
|
|
28
|
+
option java_multiple_files = true;
|
|
29
|
+
option java_outer_classname = "StreamProto";
|
|
30
|
+
option java_package = "com.google.cloud.bigquery.storage.v1";
|
|
31
|
+
option php_namespace = "Google\\Cloud\\BigQuery\\Storage\\V1";
|
|
32
|
+
|
|
33
|
+
// Data format for input or output data.
|
|
34
|
+
enum DataFormat {
|
|
35
|
+
// Data format is unspecified.
|
|
36
|
+
DATA_FORMAT_UNSPECIFIED = 0;
|
|
37
|
+
|
|
38
|
+
// Avro is a standard open source row based file format.
|
|
39
|
+
// See https://avro.apache.org/ for more details.
|
|
40
|
+
AVRO = 1;
|
|
41
|
+
|
|
42
|
+
// Arrow is a standard open source column-based message format.
|
|
43
|
+
// See https://arrow.apache.org/ for more details.
|
|
44
|
+
ARROW = 2;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Information about the ReadSession.
|
|
48
|
+
message ReadSession {
|
|
49
|
+
option (google.api.resource) = {
|
|
50
|
+
type: "bigquerystorage.googleapis.com/ReadSession"
|
|
51
|
+
pattern: "projects/{project}/locations/{location}/sessions/{session}"
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// Additional attributes when reading a table.
|
|
55
|
+
message TableModifiers {
|
|
56
|
+
// The snapshot time of the table. If not set, interpreted as now.
|
|
57
|
+
google.protobuf.Timestamp snapshot_time = 1;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Options dictating how we read a table.
|
|
61
|
+
message TableReadOptions {
|
|
62
|
+
// Specifies which compression codec to attempt on the entire serialized
|
|
63
|
+
// response payload (either Arrow record batch or Avro rows). This is
|
|
64
|
+
// not to be confused with the Apache Arrow native compression codecs
|
|
65
|
+
// specified in ArrowSerializationOptions. For performance reasons, when
|
|
66
|
+
// creating a read session requesting Arrow responses, setting both native
|
|
67
|
+
// Arrow compression and application-level response compression will not be
|
|
68
|
+
// allowed - choose, at most, one kind of compression.
|
|
69
|
+
enum ResponseCompressionCodec {
|
|
70
|
+
// Default is no compression.
|
|
71
|
+
RESPONSE_COMPRESSION_CODEC_UNSPECIFIED = 0;
|
|
72
|
+
|
|
73
|
+
// Use raw LZ4 compression.
|
|
74
|
+
RESPONSE_COMPRESSION_CODEC_LZ4 = 2;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Optional. The names of the fields in the table to be returned. If no
|
|
78
|
+
// field names are specified, then all fields in the table are returned.
|
|
79
|
+
//
|
|
80
|
+
// Nested fields -- the child elements of a STRUCT field -- can be selected
|
|
81
|
+
// individually using their fully-qualified names, and will be returned as
|
|
82
|
+
// record fields containing only the selected nested fields. If a STRUCT
|
|
83
|
+
// field is specified in the selected fields list, all of the child elements
|
|
84
|
+
// will be returned.
|
|
85
|
+
//
|
|
86
|
+
// As an example, consider a table with the following schema:
|
|
87
|
+
//
|
|
88
|
+
// {
|
|
89
|
+
// "name": "struct_field",
|
|
90
|
+
// "type": "RECORD",
|
|
91
|
+
// "mode": "NULLABLE",
|
|
92
|
+
// "fields": [
|
|
93
|
+
// {
|
|
94
|
+
// "name": "string_field1",
|
|
95
|
+
// "type": "STRING",
|
|
96
|
+
// . "mode": "NULLABLE"
|
|
97
|
+
// },
|
|
98
|
+
// {
|
|
99
|
+
// "name": "string_field2",
|
|
100
|
+
// "type": "STRING",
|
|
101
|
+
// "mode": "NULLABLE"
|
|
102
|
+
// }
|
|
103
|
+
// ]
|
|
104
|
+
// }
|
|
105
|
+
//
|
|
106
|
+
// Specifying "struct_field" in the selected fields list will result in a
|
|
107
|
+
// read session schema with the following logical structure:
|
|
108
|
+
//
|
|
109
|
+
// struct_field {
|
|
110
|
+
// string_field1
|
|
111
|
+
// string_field2
|
|
112
|
+
// }
|
|
113
|
+
//
|
|
114
|
+
// Specifying "struct_field.string_field1" in the selected fields list will
|
|
115
|
+
// result in a read session schema with the following logical structure:
|
|
116
|
+
//
|
|
117
|
+
// struct_field {
|
|
118
|
+
// string_field1
|
|
119
|
+
// }
|
|
120
|
+
//
|
|
121
|
+
// The order of the fields in the read session schema is derived from the
|
|
122
|
+
// table schema and does not correspond to the order in which the fields are
|
|
123
|
+
// specified in this list.
|
|
124
|
+
repeated string selected_fields = 1;
|
|
125
|
+
|
|
126
|
+
// SQL text filtering statement, similar to a WHERE clause in a query.
|
|
127
|
+
// Aggregates are not supported.
|
|
128
|
+
//
|
|
129
|
+
// Examples: "int_field > 5"
|
|
130
|
+
// "date_field = CAST('2014-9-27' as DATE)"
|
|
131
|
+
// "nullable_field is not NULL"
|
|
132
|
+
// "st_equals(geo_field, st_geofromtext("POINT(2, 2)"))"
|
|
133
|
+
// "numeric_field BETWEEN 1.0 AND 5.0"
|
|
134
|
+
//
|
|
135
|
+
// Restricted to a maximum length for 1 MB.
|
|
136
|
+
string row_restriction = 2;
|
|
137
|
+
|
|
138
|
+
oneof output_format_serialization_options {
|
|
139
|
+
// Optional. Options specific to the Apache Arrow output format.
|
|
140
|
+
ArrowSerializationOptions arrow_serialization_options = 3
|
|
141
|
+
[(google.api.field_behavior) = OPTIONAL];
|
|
142
|
+
|
|
143
|
+
// Optional. Options specific to the Apache Avro output format
|
|
144
|
+
AvroSerializationOptions avro_serialization_options = 4
|
|
145
|
+
[(google.api.field_behavior) = OPTIONAL];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Optional. Specifies a table sampling percentage. Specifically, the query
|
|
149
|
+
// planner will use TABLESAMPLE SYSTEM (sample_percentage PERCENT). The
|
|
150
|
+
// sampling percentage is applied at the data block granularity. It will
|
|
151
|
+
// randomly choose for each data block whether to read the rows in that data
|
|
152
|
+
// block. For more details, see
|
|
153
|
+
// https://cloud.google.com/bigquery/docs/table-sampling)
|
|
154
|
+
optional double sample_percentage = 5
|
|
155
|
+
[(google.api.field_behavior) = OPTIONAL];
|
|
156
|
+
|
|
157
|
+
// Optional. Set response_compression_codec when creating a read session to
|
|
158
|
+
// enable application-level compression of ReadRows responses.
|
|
159
|
+
optional ResponseCompressionCodec response_compression_codec = 6
|
|
160
|
+
[(google.api.field_behavior) = OPTIONAL];
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Output only. Unique identifier for the session, in the form
|
|
164
|
+
// `projects/{project_id}/locations/{location}/sessions/{session_id}`.
|
|
165
|
+
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
166
|
+
|
|
167
|
+
// Output only. Time at which the session becomes invalid. After this time,
|
|
168
|
+
// subsequent requests to read this Session will return errors. The
|
|
169
|
+
// expire_time is automatically assigned and currently cannot be specified or
|
|
170
|
+
// updated.
|
|
171
|
+
google.protobuf.Timestamp expire_time = 2
|
|
172
|
+
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
173
|
+
|
|
174
|
+
// Immutable. Data format of the output data. DATA_FORMAT_UNSPECIFIED not
|
|
175
|
+
// supported.
|
|
176
|
+
DataFormat data_format = 3 [(google.api.field_behavior) = IMMUTABLE];
|
|
177
|
+
|
|
178
|
+
// The schema for the read. If read_options.selected_fields is set, the
|
|
179
|
+
// schema may be different from the table schema as it will only contain
|
|
180
|
+
// the selected fields.
|
|
181
|
+
oneof schema {
|
|
182
|
+
// Output only. Avro schema.
|
|
183
|
+
AvroSchema avro_schema = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
184
|
+
|
|
185
|
+
// Output only. Arrow schema.
|
|
186
|
+
ArrowSchema arrow_schema = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// Immutable. Table that this ReadSession is reading from, in the form
|
|
190
|
+
// `projects/{project_id}/datasets/{dataset_id}/tables/{table_id}`
|
|
191
|
+
string table = 6 [
|
|
192
|
+
(google.api.field_behavior) = IMMUTABLE,
|
|
193
|
+
(google.api.resource_reference) = { type: "bigquery.googleapis.com/Table" }
|
|
194
|
+
];
|
|
195
|
+
|
|
196
|
+
// Optional. Any modifiers which are applied when reading from the specified
|
|
197
|
+
// table.
|
|
198
|
+
TableModifiers table_modifiers = 7 [(google.api.field_behavior) = OPTIONAL];
|
|
199
|
+
|
|
200
|
+
// Optional. Read options for this session (e.g. column selection, filters).
|
|
201
|
+
TableReadOptions read_options = 8 [(google.api.field_behavior) = OPTIONAL];
|
|
202
|
+
|
|
203
|
+
// Output only. A list of streams created with the session.
|
|
204
|
+
//
|
|
205
|
+
// At least one stream is created with the session. In the future, larger
|
|
206
|
+
// request_stream_count values *may* result in this list being unpopulated,
|
|
207
|
+
// in that case, the user will need to use a List method to get the streams
|
|
208
|
+
// instead, which is not yet available.
|
|
209
|
+
repeated ReadStream streams = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
210
|
+
|
|
211
|
+
// Output only. An estimate on the number of bytes this session will scan when
|
|
212
|
+
// all streams are completely consumed. This estimate is based on
|
|
213
|
+
// metadata from the table which might be incomplete or stale.
|
|
214
|
+
int64 estimated_total_bytes_scanned = 12
|
|
215
|
+
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
216
|
+
|
|
217
|
+
// Output only. A pre-projected estimate of the total physical size of files
|
|
218
|
+
// (in bytes) that this session will scan when all streams are consumed. This
|
|
219
|
+
// estimate is independent of the selected columns and can be based on
|
|
220
|
+
// incomplete or stale metadata from the table. This field is only set for
|
|
221
|
+
// BigLake tables.
|
|
222
|
+
int64 estimated_total_physical_file_size = 15
|
|
223
|
+
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
224
|
+
|
|
225
|
+
// Output only. An estimate on the number of rows present in this session's
|
|
226
|
+
// streams. This estimate is based on metadata from the table which might be
|
|
227
|
+
// incomplete or stale.
|
|
228
|
+
int64 estimated_row_count = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
229
|
+
|
|
230
|
+
// Optional. ID set by client to annotate a session identity. This does not
|
|
231
|
+
// need to be strictly unique, but instead the same ID should be used to group
|
|
232
|
+
// logically connected sessions (e.g. All using the same ID for all sessions
|
|
233
|
+
// needed to complete a Spark SQL query is reasonable).
|
|
234
|
+
//
|
|
235
|
+
// Maximum length is 256 bytes.
|
|
236
|
+
string trace_id = 13 [(google.api.field_behavior) = OPTIONAL];
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Information about a single stream that gets data out of the storage system.
|
|
240
|
+
// Most of the information about `ReadStream` instances is aggregated, making
|
|
241
|
+
// `ReadStream` lightweight.
|
|
242
|
+
message ReadStream {
|
|
243
|
+
option (google.api.resource) = {
|
|
244
|
+
type: "bigquerystorage.googleapis.com/ReadStream"
|
|
245
|
+
pattern: "projects/{project}/locations/{location}/sessions/{session}/streams/{stream}"
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
// Output only. Name of the stream, in the form
|
|
249
|
+
// `projects/{project_id}/locations/{location}/sessions/{session_id}/streams/{stream_id}`.
|
|
250
|
+
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// WriteStreamView is a view enum that controls what details about a write
|
|
254
|
+
// stream should be returned.
|
|
255
|
+
enum WriteStreamView {
|
|
256
|
+
// The default / unset value.
|
|
257
|
+
WRITE_STREAM_VIEW_UNSPECIFIED = 0;
|
|
258
|
+
|
|
259
|
+
// The BASIC projection returns basic metadata about a write stream. The
|
|
260
|
+
// basic view does not include schema information. This is the default view
|
|
261
|
+
// returned by GetWriteStream.
|
|
262
|
+
BASIC = 1;
|
|
263
|
+
|
|
264
|
+
// The FULL projection returns all available write stream metadata, including
|
|
265
|
+
// the schema. CreateWriteStream returns the full projection of write stream
|
|
266
|
+
// metadata.
|
|
267
|
+
FULL = 2;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// Information about a single stream that gets data inside the storage system.
|
|
271
|
+
message WriteStream {
|
|
272
|
+
option (google.api.resource) = {
|
|
273
|
+
type: "bigquerystorage.googleapis.com/WriteStream"
|
|
274
|
+
pattern: "projects/{project}/datasets/{dataset}/tables/{table}/streams/{stream}"
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
// Type enum of the stream.
|
|
278
|
+
enum Type {
|
|
279
|
+
// Unknown type.
|
|
280
|
+
TYPE_UNSPECIFIED = 0;
|
|
281
|
+
|
|
282
|
+
// Data will commit automatically and appear as soon as the write is
|
|
283
|
+
// acknowledged.
|
|
284
|
+
COMMITTED = 1;
|
|
285
|
+
|
|
286
|
+
// Data is invisible until the stream is committed.
|
|
287
|
+
PENDING = 2;
|
|
288
|
+
|
|
289
|
+
// Data is only visible up to the offset to which it was flushed.
|
|
290
|
+
BUFFERED = 3;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// Mode enum of the stream.
|
|
294
|
+
enum WriteMode {
|
|
295
|
+
// Unknown type.
|
|
296
|
+
WRITE_MODE_UNSPECIFIED = 0;
|
|
297
|
+
|
|
298
|
+
// Insert new records into the table.
|
|
299
|
+
// It is the default value if customers do not specify it.
|
|
300
|
+
INSERT = 1;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
// Output only. Name of the stream, in the form
|
|
304
|
+
// `projects/{project}/datasets/{dataset}/tables/{table}/streams/{stream}`.
|
|
305
|
+
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
306
|
+
|
|
307
|
+
// Immutable. Type of the stream.
|
|
308
|
+
Type type = 2 [(google.api.field_behavior) = IMMUTABLE];
|
|
309
|
+
|
|
310
|
+
// Output only. Create time of the stream. For the _default stream, this is
|
|
311
|
+
// the creation_time of the table.
|
|
312
|
+
google.protobuf.Timestamp create_time = 3
|
|
313
|
+
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
314
|
+
|
|
315
|
+
// Output only. Commit time of the stream.
|
|
316
|
+
// If a stream is of `COMMITTED` type, then it will have a commit_time same as
|
|
317
|
+
// `create_time`. If the stream is of `PENDING` type, empty commit_time
|
|
318
|
+
// means it is not committed.
|
|
319
|
+
google.protobuf.Timestamp commit_time = 4
|
|
320
|
+
[(google.api.field_behavior) = OUTPUT_ONLY];
|
|
321
|
+
|
|
322
|
+
// Output only. The schema of the destination table. It is only returned in
|
|
323
|
+
// `CreateWriteStream` response. Caller should generate data that's
|
|
324
|
+
// compatible with this schema to send in initial `AppendRowsRequest`.
|
|
325
|
+
// The table schema could go out of date during the life time of the stream.
|
|
326
|
+
TableSchema table_schema = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
327
|
+
|
|
328
|
+
// Immutable. Mode of the stream.
|
|
329
|
+
WriteMode write_mode = 7 [(google.api.field_behavior) = IMMUTABLE];
|
|
330
|
+
|
|
331
|
+
// Output only. The geographic location where the stream's dataset resides.
|
|
332
|
+
// See https://cloud.google.com/bigquery/docs/locations for supported
|
|
333
|
+
// locations.
|
|
334
|
+
string location = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
335
|
+
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
// Copyright 2025 Google LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
syntax = "proto3";
|
|
16
|
+
|
|
17
|
+
package google.cloud.bigquery.storage.v1;
|
|
18
|
+
|
|
19
|
+
import "google/api/field_behavior.proto";
|
|
20
|
+
import "google/protobuf/wrappers.proto";
|
|
21
|
+
|
|
22
|
+
option csharp_namespace = "Google.Cloud.BigQuery.Storage.V1";
|
|
23
|
+
option go_package = "cloud.google.com/go/bigquery/storage/apiv1/storagepb;storagepb";
|
|
24
|
+
option java_multiple_files = true;
|
|
25
|
+
option java_outer_classname = "TableProto";
|
|
26
|
+
option java_package = "com.google.cloud.bigquery.storage.v1";
|
|
27
|
+
option php_namespace = "Google\\Cloud\\BigQuery\\Storage\\V1";
|
|
28
|
+
|
|
29
|
+
// Schema of a table. This schema is a subset of
|
|
30
|
+
// google.cloud.bigquery.v2.TableSchema containing information necessary to
|
|
31
|
+
// generate valid message to write to BigQuery.
|
|
32
|
+
message TableSchema {
|
|
33
|
+
// Describes the fields in a table.
|
|
34
|
+
repeated TableFieldSchema fields = 1;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// TableFieldSchema defines a single field/column within a table schema.
|
|
38
|
+
message TableFieldSchema {
|
|
39
|
+
enum Type {
|
|
40
|
+
// Illegal value
|
|
41
|
+
TYPE_UNSPECIFIED = 0;
|
|
42
|
+
|
|
43
|
+
// 64K, UTF8
|
|
44
|
+
STRING = 1;
|
|
45
|
+
|
|
46
|
+
// 64-bit signed
|
|
47
|
+
INT64 = 2;
|
|
48
|
+
|
|
49
|
+
// 64-bit IEEE floating point
|
|
50
|
+
DOUBLE = 3;
|
|
51
|
+
|
|
52
|
+
// Aggregate type
|
|
53
|
+
STRUCT = 4;
|
|
54
|
+
|
|
55
|
+
// 64K, Binary
|
|
56
|
+
BYTES = 5;
|
|
57
|
+
|
|
58
|
+
// 2-valued
|
|
59
|
+
BOOL = 6;
|
|
60
|
+
|
|
61
|
+
// 64-bit signed usec since UTC epoch
|
|
62
|
+
TIMESTAMP = 7;
|
|
63
|
+
|
|
64
|
+
// Civil date - Year, Month, Day
|
|
65
|
+
DATE = 8;
|
|
66
|
+
|
|
67
|
+
// Civil time - Hour, Minute, Second, Microseconds
|
|
68
|
+
TIME = 9;
|
|
69
|
+
|
|
70
|
+
// Combination of civil date and civil time
|
|
71
|
+
DATETIME = 10;
|
|
72
|
+
|
|
73
|
+
// Geography object
|
|
74
|
+
GEOGRAPHY = 11;
|
|
75
|
+
|
|
76
|
+
// Numeric value
|
|
77
|
+
NUMERIC = 12;
|
|
78
|
+
|
|
79
|
+
// BigNumeric value
|
|
80
|
+
BIGNUMERIC = 13;
|
|
81
|
+
|
|
82
|
+
// Interval
|
|
83
|
+
INTERVAL = 14;
|
|
84
|
+
|
|
85
|
+
// JSON, String
|
|
86
|
+
JSON = 15;
|
|
87
|
+
|
|
88
|
+
// RANGE
|
|
89
|
+
RANGE = 16;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
enum Mode {
|
|
93
|
+
// Illegal value
|
|
94
|
+
MODE_UNSPECIFIED = 0;
|
|
95
|
+
|
|
96
|
+
NULLABLE = 1;
|
|
97
|
+
|
|
98
|
+
REQUIRED = 2;
|
|
99
|
+
|
|
100
|
+
REPEATED = 3;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Represents the type of a field element.
|
|
104
|
+
message FieldElementType {
|
|
105
|
+
// Required. The type of a field element.
|
|
106
|
+
Type type = 1 [(google.api.field_behavior) = REQUIRED];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Required. The field name. The name must contain only letters (a-z, A-Z),
|
|
110
|
+
// numbers (0-9), or underscores (_), and must start with a letter or
|
|
111
|
+
// underscore. The maximum length is 128 characters.
|
|
112
|
+
string name = 1 [(google.api.field_behavior) = REQUIRED];
|
|
113
|
+
|
|
114
|
+
// Required. The field data type.
|
|
115
|
+
Type type = 2 [(google.api.field_behavior) = REQUIRED];
|
|
116
|
+
|
|
117
|
+
// Optional. The field mode. The default value is NULLABLE.
|
|
118
|
+
Mode mode = 3 [(google.api.field_behavior) = OPTIONAL];
|
|
119
|
+
|
|
120
|
+
// Optional. Describes the nested schema fields if the type property is set to
|
|
121
|
+
// STRUCT.
|
|
122
|
+
repeated TableFieldSchema fields = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
123
|
+
|
|
124
|
+
// Optional. The field description. The maximum length is 1,024 characters.
|
|
125
|
+
string description = 6 [(google.api.field_behavior) = OPTIONAL];
|
|
126
|
+
|
|
127
|
+
// Optional. Maximum length of values of this field for STRINGS or BYTES.
|
|
128
|
+
//
|
|
129
|
+
// If max_length is not specified, no maximum length constraint is imposed
|
|
130
|
+
// on this field.
|
|
131
|
+
//
|
|
132
|
+
// If type = "STRING", then max_length represents the maximum UTF-8
|
|
133
|
+
// length of strings in this field.
|
|
134
|
+
//
|
|
135
|
+
// If type = "BYTES", then max_length represents the maximum number of
|
|
136
|
+
// bytes in this field.
|
|
137
|
+
//
|
|
138
|
+
// It is invalid to set this field if type is not "STRING" or "BYTES".
|
|
139
|
+
int64 max_length = 7 [(google.api.field_behavior) = OPTIONAL];
|
|
140
|
+
|
|
141
|
+
// Optional. Precision (maximum number of total digits in base 10) and scale
|
|
142
|
+
// (maximum number of digits in the fractional part in base 10) constraints
|
|
143
|
+
// for values of this field for NUMERIC or BIGNUMERIC.
|
|
144
|
+
//
|
|
145
|
+
// It is invalid to set precision or scale if type is not "NUMERIC" or
|
|
146
|
+
// "BIGNUMERIC".
|
|
147
|
+
//
|
|
148
|
+
// If precision and scale are not specified, no value range constraint is
|
|
149
|
+
// imposed on this field insofar as values are permitted by the type.
|
|
150
|
+
//
|
|
151
|
+
// Values of this NUMERIC or BIGNUMERIC field must be in this range when:
|
|
152
|
+
//
|
|
153
|
+
// * Precision (P) and scale (S) are specified:
|
|
154
|
+
// [-10^(P-S) + 10^(-S), 10^(P-S) - 10^(-S)]
|
|
155
|
+
// * Precision (P) is specified but not scale (and thus scale is
|
|
156
|
+
// interpreted to be equal to zero):
|
|
157
|
+
// [-10^P + 1, 10^P - 1].
|
|
158
|
+
//
|
|
159
|
+
// Acceptable values for precision and scale if both are specified:
|
|
160
|
+
//
|
|
161
|
+
// * If type = "NUMERIC":
|
|
162
|
+
// 1 <= precision - scale <= 29 and 0 <= scale <= 9.
|
|
163
|
+
// * If type = "BIGNUMERIC":
|
|
164
|
+
// 1 <= precision - scale <= 38 and 0 <= scale <= 38.
|
|
165
|
+
//
|
|
166
|
+
// Acceptable values for precision if only precision is specified but not
|
|
167
|
+
// scale (and thus scale is interpreted to be equal to zero):
|
|
168
|
+
//
|
|
169
|
+
// * If type = "NUMERIC": 1 <= precision <= 29.
|
|
170
|
+
// * If type = "BIGNUMERIC": 1 <= precision <= 38.
|
|
171
|
+
//
|
|
172
|
+
// If scale is specified but not precision, then it is invalid.
|
|
173
|
+
int64 precision = 8 [(google.api.field_behavior) = OPTIONAL];
|
|
174
|
+
|
|
175
|
+
// Optional. See documentation for precision.
|
|
176
|
+
int64 scale = 9 [(google.api.field_behavior) = OPTIONAL];
|
|
177
|
+
|
|
178
|
+
// Optional. A SQL expression to specify the [default value]
|
|
179
|
+
// (https://cloud.google.com/bigquery/docs/default-values) for this field.
|
|
180
|
+
string default_value_expression = 10 [(google.api.field_behavior) = OPTIONAL];
|
|
181
|
+
|
|
182
|
+
// Optional. Precision (maximum number of total digits in base 10) for seconds
|
|
183
|
+
// of TIMESTAMP type.
|
|
184
|
+
//
|
|
185
|
+
// Possible values include:
|
|
186
|
+
//
|
|
187
|
+
// * 6 (Default, for TIMESTAMP type with microsecond precision)
|
|
188
|
+
// * 12 (For TIMESTAMP type with picosecond precision)
|
|
189
|
+
google.protobuf.Int64Value timestamp_precision = 27
|
|
190
|
+
[(google.api.field_behavior) = OPTIONAL];
|
|
191
|
+
|
|
192
|
+
// Optional. The subtype of the RANGE, if the type of this field is RANGE. If
|
|
193
|
+
// the type is RANGE, this field is required. Possible values for the field
|
|
194
|
+
// element type of a RANGE include:
|
|
195
|
+
// * DATE
|
|
196
|
+
// * DATETIME
|
|
197
|
+
// * TIMESTAMP
|
|
198
|
+
FieldElementType range_element_type = 11
|
|
199
|
+
[(google.api.field_behavior) = OPTIONAL];
|
|
200
|
+
}
|