# Protobuf schema settings

Protobuf options select a literal proto2/proto3 schema or a schema derived from columns. protobuf_message identifies the message within that schema.

protobuf_schema is schema text rather than a file path. Imports are limited to bundled Google definitions. Wrapper, oneof and missing-field policies must match how the destination columns represent those fields.

Use a statement `SETTINGS` clause. Defaults in `system.settings` are read-only;
format settings cannot be persisted with `SET`. Put input settings before
`FORMAT`, because the bytes after the format name are input data.

## protobuf_auto_schema

Type: `Bool`

Default value: `1`

Derive a message schema from columns when protobuf_schema is empty.

Applies to: `protobuf`.

## protobuf_keep_default_wrappers

Type: `Bool`

Default value: `0`

Write present Google wrappers for default scalar values; NULL wrappers remain absent.

Applies to: `protobuf`.

## protobuf_message

Type: `String`

Default value: `''`

Fully qualified message name in protobuf_schema; empty selects Row for an automatically derived schema.

Applies to: `protobuf`.

## protobuf_missing_as_default

Type: `Bool`

Default value: `1`

Apply SQL DEFAULT to target columns outside the message schema; when off use their native type defaults.

Applies to: `protobuf`.

## protobuf_oneof_tag

Type: `Bool`

Default value: `0`

Read the selected oneof field number into a column named after that oneof; unmatched branches yield zero.

Applies to: `protobuf`.

## protobuf_schema

Type: `String`

Default value: `''`

Literal proto2 or proto3 schema; imports are limited to bundled Google definitions.

Applies to: `protobuf`.

## protobuf_unwrap_google

Type: `Bool`

Default value: `0`

Read Google scalar wrappers directly into scalar columns; absent nullable wrappers become NULL.

Applies to: `protobuf`.
