This is an automated email from the ASF dual-hosted git repository.
felipecrv pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git
The following commit(s) were added to refs/heads/main by this push:
new a187ead78 feat(go/adbc/driver/bigquery): Return data about table/view
partitioning (#2697)
a187ead78 is described below
commit a187ead78afebe85c75b466a06ad6e01ae4ac8c6
Author: Felipe Oliveira Carvalho <[email protected]>
AuthorDate: Fri Apr 11 18:56:05 2025 -0300
feat(go/adbc/driver/bigquery): Return data about table/view partitioning
(#2697)
---
go/adbc/driver/bigquery/connection.go | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/go/adbc/driver/bigquery/connection.go
b/go/adbc/driver/bigquery/connection.go
index d93cd7f4d..7ac6ffb20 100644
--- a/go/adbc/driver/bigquery/connection.go
+++ b/go/adbc/driver/bigquery/connection.go
@@ -617,7 +617,32 @@ func (c *connectionImpl) getTableSchemaWithFilter(ctx
context.Context, catalog *
metadata["MaterializedView.Query"] = md.MaterializedView.Query
metadata["MaterializedView.RefreshInterval"] =
md.MaterializedView.RefreshInterval.String()
metadata["MaterializedView.AllowNonIncrementalDefinition"] =
strconv.FormatBool(md.MaterializedView.AllowNonIncrementalDefinition)
- metadata["MaterializedView.MaxStaleness"] =
md.MaxStaleness.String()
+ if md.MaxStaleness != nil {
+ metadata["MaterializedView.MaxStaleness"] =
md.MaxStaleness.String()
+ }
+ }
+ if md.TimePartitioning != nil {
+ // "DAY", "HOUR", "MONTH", "YEAR"
+ metadata["TimePartitioning.Type"] =
string(md.TimePartitioning.Type)
+ if md.TimePartitioning.Expiration != 0 {
+ metadata["TimePartitioning.Expiration"] =
md.TimePartitioning.Expiration.String()
+ }
+ if md.TimePartitioning.Field != "" {
+ metadata["TimePartitioning.Field"] =
md.TimePartitioning.Field
+ }
+ }
+ if md.RangePartitioning != nil {
+ if md.RangePartitioning.Field != "" {
+ metadata["RangePartitioning.Field"] =
md.RangePartitioning.Field
+ }
+ if md.RangePartitioning.Range != nil {
+ metadata["RangePartitioning.Range.Start"] =
strconv.FormatInt(md.RangePartitioning.Range.Start, 10)
+ metadata["RangePartitioning.Range.End"] =
strconv.FormatInt(md.RangePartitioning.Range.End, 10)
+ metadata["RangePartitioning.Range.Interval"] =
strconv.FormatInt(md.RangePartitioning.Range.Interval, 10)
+ }
+ }
+ if md.RequirePartitionFilter {
+ metadata["RequirePartitionFilter"] =
strconv.FormatBool(md.RequirePartitionFilter)
}
labels := ""
if len(md.Labels) > 0 {