1515 * limitations under the License.
1616 */
1717
18+ using System ;
19+ using System . Collections . Generic ;
20+
1821namespace Apache . Arrow . Adbc . Drivers . BigQuery
1922{
2023 /// <summary>
@@ -23,29 +26,48 @@ namespace Apache.Arrow.Adbc.Drivers.BigQuery
2326 internal class BigQueryParameters
2427 {
2528 public const string AccessToken = "adbc.bigquery.access_token" ;
29+ public const string AllowLargeResults = "adbc.bigquery.allow_large_results" ;
2630 public const string AudienceUri = "adbc.bigquery.audience_uri" ;
27- public const string ProjectId = "adbc.bigquery.project_id " ;
31+ public const string AuthenticationType = "adbc.bigquery.auth_type " ;
2832 public const string BillingProjectId = "adbc.bigquery.billing_project_id" ;
2933 public const string ClientId = "adbc.bigquery.client_id" ;
3034 public const string ClientSecret = "adbc.bigquery.client_secret" ;
31- public const string RefreshToken = "adbc.bigquery.refresh_token" ;
32- public const string AuthenticationType = "adbc.bigquery.auth_type" ;
35+ public const string ClientTimeout = "adbc.bigquery.client.timeout" ;
36+ public const string EvaluationKind = "adbc.bigquery.multiple_statement.evaluation_kind" ;
37+ public const string GetQueryResultsOptionsTimeout = "adbc.bigquery.get_query_results_options.timeout" ;
38+ public const string IncludeConstraintsWithGetObjects = "adbc.bigquery.include_constraints_getobjects" ;
39+ public const string IncludePublicProjectId = "adbc.bigquery.include_public_project_id" ;
3340 public const string JsonCredential = "adbc.bigquery.auth_json_credential" ;
34- public const string AllowLargeResults = "adbc.bigquery.allow_large_results" ;
35- public const string LargeResultsDestinationTable = "adbc.bigquery.large_results_destination_table" ;
36- public const string UseLegacySQL = "adbc.bigquery.use_legacy_sql" ;
3741 public const string LargeDecimalsAsString = "adbc.bigquery.large_decimals_as_string" ;
38- public const string Scopes = "adbc.bigquery.scopes " ;
39- public const string IncludeConstraintsWithGetObjects = "adbc.bigquery.include_constraints_getobjects " ;
40- public const string ClientTimeout = "adbc.bigquery.client.timeout " ;
42+ public const string LargeResultsDataset = "adbc.bigquery.large_results_dataset " ;
43+ public const string LargeResultsDestinationTable = "adbc.bigquery.large_results_destination_table " ;
44+ public const string MaxFetchConcurrency = "adbc.bigquery.max_fetch_concurrency " ;
4145 public const string MaximumRetryAttempts = "adbc.bigquery.maximum_retries" ;
46+ public const string ProjectId = "adbc.bigquery.project_id" ;
47+ public const string RefreshToken = "adbc.bigquery.refresh_token" ;
4248 public const string RetryDelayMs = "adbc.bigquery.retry_delay_ms" ;
43- public const string GetQueryResultsOptionsTimeout = "adbc.bigquery.get_query_results_options.timeout" ;
44- public const string MaxFetchConcurrency = "adbc.bigquery.max_fetch_concurrency" ;
45- public const string IncludePublicProjectId = "adbc.bigquery.include_public_project_id" ;
46- public const string StatementType = "adbc.bigquery.multiple_statement.statement_type" ;
49+ public const string Scopes = "adbc.bigquery.scopes" ;
4750 public const string StatementIndex = "adbc.bigquery.multiple_statement.statement_index" ;
48- public const string EvaluationKind = "adbc.bigquery.multiple_statement.evaluation_kind" ;
51+ public const string StatementType = "adbc.bigquery.multiple_statement.statement_type" ;
52+ public const string UseLegacySQL = "adbc.bigquery.use_legacy_sql" ;
53+
54+ // these values are safe to log any time
55+ private static HashSet < string > safeToLog = new HashSet < string > ( StringComparer . OrdinalIgnoreCase )
56+ {
57+ AllowLargeResults , AuthenticationType , BillingProjectId , ClientId , ClientTimeout ,
58+ EvaluationKind , GetQueryResultsOptionsTimeout , IncludeConstraintsWithGetObjects ,
59+ IncludePublicProjectId , LargeDecimalsAsString , LargeResultsDataset , LargeResultsDestinationTable ,
60+ MaxFetchConcurrency , MaximumRetryAttempts , ProjectId , RetryDelayMs , StatementIndex ,
61+ StatementType , UseLegacySQL
62+ } ;
63+
64+ public static bool IsSafeToLog ( string name )
65+ {
66+ if ( safeToLog . Contains ( name ) )
67+ return true ;
68+
69+ return false ;
70+ }
4971 }
5072
5173 /// <summary>
@@ -68,5 +90,11 @@ internal class BigQueryConstants
6890
6991 // default value per https://pkg.go.dev/cloud.google.com/go/bigquery#section-readme
7092 public const string DetectProjectId = "*detect-project-id*" ;
93+
94+ // Reuse what the ODBC driver already has in place, in case a caller
95+ // has permission issues trying to create a new dataset
96+ public const string DefaultLargeDatasetId = "_bqodbc_temp_tables" ;
97+
98+ public const string PublicProjectId = "bigquery-public-data" ;
7199 }
72100}
0 commit comments