in go/adbc/driver/bigquery/statement.go [165:259]
func (st *statement) SetOption(key string, v string) error {
switch key {
case OptionStringQueryParameterMode:
switch v {
case OptionValueQueryParameterModeNamed, OptionValueQueryParameterModePositional:
st.parameterMode = v
default:
return adbc.Error{
Code: adbc.StatusInvalidArgument,
Msg: fmt.Sprintf("Parameter mode for the statement can only be either %s or %s", OptionValueQueryParameterModeNamed, OptionValueQueryParameterModePositional),
}
}
case OptionStringQueryDestinationTable:
val, err := stringToTable(st.cnxn.catalog, st.cnxn.dbSchema, v)
if err == nil {
st.queryConfig.Dst = val
} else {
return err
}
case OptionStringQueryDefaultProjectID:
st.queryConfig.DefaultProjectID = v
case OptionStringQueryDefaultDatasetID:
st.queryConfig.DefaultDatasetID = v
case OptionStringQueryCreateDisposition:
val, err := stringToTableCreateDisposition(v)
if err == nil {
st.queryConfig.CreateDisposition = val
} else {
return err
}
case OptionStringQueryWriteDisposition:
val, err := stringToTableWriteDisposition(v)
if err == nil {
st.queryConfig.WriteDisposition = val
} else {
return err
}
case OptionBoolQueryDisableQueryCache:
val, err := strconv.ParseBool(v)
if err == nil {
st.queryConfig.DisableQueryCache = val
} else {
return err
}
case OptionBoolDisableFlattenedResults:
val, err := strconv.ParseBool(v)
if err == nil {
st.queryConfig.DisableFlattenedResults = val
} else {
return err
}
case OptionBoolQueryAllowLargeResults:
val, err := strconv.ParseBool(v)
if err == nil {
st.queryConfig.AllowLargeResults = val
} else {
return err
}
case OptionStringQueryPriority:
val, err := stringToQueryPriority(v)
if err == nil {
st.queryConfig.Priority = val
} else {
return err
}
case OptionBoolQueryUseLegacySQL:
val, err := strconv.ParseBool(v)
if err == nil {
st.queryConfig.UseLegacySQL = val
} else {
return err
}
case OptionBoolQueryDryRun:
val, err := strconv.ParseBool(v)
if err == nil {
st.queryConfig.DryRun = val
} else {
return err
}
case OptionBoolQueryCreateSession:
val, err := strconv.ParseBool(v)
if err == nil {
st.queryConfig.CreateSession = val
} else {
return err
}
default:
return adbc.Error{
Code: adbc.StatusInvalidArgument,
Msg: fmt.Sprintf("unknown statement string type option `%s`", key),
}
}
return nil
}