/// <inheritdoc /> public override BigQueryJob CreateQueryJob(string sql, IEnumerable <BigQueryParameter> parameters, QueryOptions options = null) { var request = CreateInsertQueryJobRequest(sql, parameters, options); var job = request.Execute(); return(new BigQueryJob(this, job)); }
private JobsResource.InsertRequest CreateInsertQueryJobRequest(JobConfigurationQuery query, QueryOptions options) { options?.ModifyRequest(query); return(CreateInsertJobRequest(new JobConfiguration { Query = query, DryRun = options?.DryRun }, options)); }
private JobsResource.InsertRequest CreateInsertQueryJobRequest(string sql, IEnumerable <BigQueryParameter> parameters, QueryOptions options) { GaxPreconditions.CheckNotNull(sql, nameof(sql)); if (parameters != null) { parameters = parameters.ToList(); GaxPreconditions.CheckArgument(!parameters.Contains(null), nameof(parameters), "Parameter list must not contain null elements"); } var jobConfigurationQuery = new JobConfigurationQuery { Query = sql, UseLegacySql = false, ParameterMode = "named", QueryParameters = parameters?.Select(p => p.ToQueryParameter()).ToList() }; options?.ModifyRequest(jobConfigurationQuery); // If there aren't any parameters, set ParameterMode to null - otherwise legacy SQL queries fail, // even if haven't set any parameters. if (parameters == null) { jobConfigurationQuery.ParameterMode = null; } // Now we've definitely set the parameter mode, validate that all parameters have names if appropriate. if (jobConfigurationQuery.ParameterMode == "named") { GaxPreconditions.CheckArgument(parameters.All(p => !string.IsNullOrEmpty(p.Name)), nameof(parameters), $"When using a parameter mode of '{nameof(BigQueryParameterMode.Named)}', all parameters must have names"); } return(CreateInsertJobRequest(new JobConfiguration { Query = jobConfigurationQuery, DryRun = options?.DryRun }, options)); }
/// <inheritdoc /> public override async Task <BigQueryJob> CreateQueryJobAsync(string sql, IEnumerable <BigQueryParameter> parameters, QueryOptions options = null, CancellationToken cancellationToken = default) { var request = CreateInsertQueryJobRequest(sql, parameters, options); var job = await request.ExecuteAsync(cancellationToken).ConfigureAwait(false); return(new BigQueryJob(this, job)); }
public override async Task <BigQueryJob> CreateQueryJobAsync(BigQueryCommand command, QueryOptions options = null, CancellationToken cancellationToken = default) { GaxPreconditions.CheckNotNull(command, nameof(command)); var query = new JobConfigurationQuery { UseLegacySql = false }; command.PopulateJobConfigurationQuery(query); var job = await CreateInsertQueryJobRequest(query, options).ExecuteAsync(cancellationToken).ConfigureAwait(false); return(new BigQueryJob(this, job)); }
/// <summary> /// Creates a job for a SQL query. /// </summary> /// <param name="sql">The SQL query. Must not be null.</param> /// <param name="parameters">The parameters for the query. May be null, which is equivalent to specifying an empty list of parameters. Must not contain null elements.</param> /// <param name="options">The options for the operation. May be null, in which case defaults will be supplied.</param> /// <returns>The query job created. Use <see cref="GetQueryResults(JobReference,GetQueryResultsOptions)"/> to retrieve /// the results of the query.</returns> public virtual BigQueryJob CreateQueryJob(string sql, IEnumerable <BigQueryParameter> parameters, QueryOptions options = null) { throw new NotImplementedException(); }
/// <summary> /// Asynchronously creates a job for a SQL query. /// </summary> /// <param name="sql">The SQL query. Must not be null.</param> /// <param name="parameters">The parameters for the query. May be null, which is equivalent to specifying an empty list of parameters. Must not contain null elements.</param> /// <param name="options">The options for the operation. May be null, in which case defaults will be supplied.</param> /// <param name="cancellationToken">The token to monitor for cancellation requests.</param> /// <returns>A task representing the asynchronous operation. When complete, the result is /// the query job created. Use <see cref="GetQueryResultsAsync(JobReference,GetQueryResultsOptions,CancellationToken)"/> to retrieve /// the results of the query.</returns> public virtual Task <BigQueryJob> CreateQueryJobAsync(string sql, IEnumerable <BigQueryParameter> parameters, QueryOptions options = null, CancellationToken cancellationToken = default) { throw new NotImplementedException(); }
/// <summary> /// Executes a query. /// </summary> /// <remarks> /// <para> /// This method will only return when the query has completed. It simply delegates to <see cref="CreateQueryJob(string, IEnumerable{BigQueryParameter}, QueryOptions)"/> /// and then <see cref="BigQueryJob.GetQueryResults(GetQueryResultsOptions)"/>. /// </para> /// </remarks> /// <param name="sql">The SQL query. Must not be null.</param> /// <param name="parameters">The parameters for the query. May be null, which is equivalent to specifying an empty list of parameters. Must not contain null elements.</param> /// <param name="queryOptions">The options for the query. May be null, in which case defaults will be supplied.</param> /// <param name="resultsOptions">The options for retrieving query results. May be null, in which case defaults will be supplied.</param> /// <returns>The result of the query.</returns> public virtual BigQueryResults ExecuteQuery(string sql, IEnumerable <BigQueryParameter> parameters, QueryOptions queryOptions = null, GetQueryResultsOptions resultsOptions = null) => CreateQueryJob(sql, parameters, queryOptions).GetQueryResults(resultsOptions);
/// <summary> /// Asynchronously executes a query. /// </summary> /// <remarks> /// <para> /// The task returned by this method will only complete when the query has completed. /// This method simply delegates to <see cref="CreateQueryJobAsync(string, IEnumerable{BigQueryParameter}, QueryOptions, CancellationToken)"/> /// and then <see cref="BigQueryJob.GetQueryResultsAsync(GetQueryResultsOptions, CancellationToken)"/>. /// </para> /// </remarks> /// <param name="sql">The SQL query. Must not be null.</param> /// <param name="parameters">The parameters for the query. May be null, which is equivalent to specifying an empty list of parameters. Must not contain null elements.</param> /// <param name="queryOptions">The options for the query. May be null, in which case defaults will be supplied.</param> /// <param name="resultsOptions">The options for retrieving query results. May be null, in which case defaults will be supplied.</param> /// <param name="cancellationToken">The token to monitor for cancellation requests.</param> /// <returns>A task representing the asynchronous operation. When complete, the result is /// the <see cref="BigQueryResults"/> representing the query.</returns> public virtual async Task <BigQueryResults> ExecuteQueryAsync(string sql, IEnumerable <BigQueryParameter> parameters, QueryOptions queryOptions = null, GetQueryResultsOptions resultsOptions = null, CancellationToken cancellationToken = default) { var job = await CreateQueryJobAsync(sql, parameters, queryOptions, cancellationToken).ConfigureAwait(false); return(await job.GetQueryResultsAsync(resultsOptions, cancellationToken).ConfigureAwait(false)); }
public virtual BigQueryResults ExecuteQuery(string sql, QueryOptions queryOptions = null, GetQueryResultsOptions resultsOptions = null) => CreateQueryJob(sql, queryOptions).GetQueryResults(resultsOptions);
public virtual BigQueryResults ExecuteQuery(BigQueryCommand command, QueryOptions queryOptions = null, GetQueryResultsOptions resultsOptions = null) => CreateQueryJob(command, queryOptions).GetQueryResults(resultsOptions);
public virtual Task <BigQueryJob> CreateQueryJobAsync(BigQueryCommand command, QueryOptions options = null, CancellationToken cancellationToken = default) { throw new NotImplementedException(); }
public virtual BigQueryJob CreateQueryJob(BigQueryCommand command, QueryOptions options = null) { throw new NotImplementedException(); }
public virtual BigQueryJob CreateQueryJob(string sql, QueryOptions options = null) { throw new NotImplementedException(); }
public virtual async Task <BigQueryResults> ExecuteQueryAsync(BigQueryCommand command, QueryOptions queryOptions = null, GetQueryResultsOptions resultsOptions = null, CancellationToken cancellationToken = default) { var job = await CreateQueryJobAsync(command, queryOptions, cancellationToken).ConfigureAwait(false); return(await job.GetQueryResultsAsync(resultsOptions, cancellationToken).ConfigureAwait(false)); }
/// <summary> /// Asynchronously creates a job for a SQL query. /// </summary> /// <param name="sql">The SQL query. Must not be null.</param> /// <param name="options">The options for the operation. May be null, in which case defaults will be supplied.</param> /// <param name="cancellationToken">The token to monitor for cancellation requests.</param> /// <returns>A task representing the asynchronous operation. When complete, the result is /// the query job created. Use <see cref="GetQueryResultsAsync(JobReference,GetQueryResultsOptions,CancellationToken)"/> to retrieve /// the results of the query.</returns> public virtual Task <BigQueryJob> CreateQueryJobAsync(string sql, QueryOptions options = null, CancellationToken cancellationToken = default(CancellationToken)) { throw new NotImplementedException(); }