@@ -27,17 +27,6 @@ const (
2727 SyncRecordsBatchSize = 1024
2828)
2929
30- type BigQueryConnector struct {
31- * metadataStore.PostgresMetadata
32- logger log.Logger
33- bqConfig * protos.BigqueryConfig
34- client * bigquery.Client
35- storageClient * storage.Client
36- catalogPool shared.CatalogPool
37- datasetID string
38- projectID string
39- }
40-
4130func NewBigQueryServiceAccount (bqConfig * protos.BigqueryConfig ) (* utils.GcpServiceAccount , error ) {
4231 var serviceAccount utils.GcpServiceAccount
4332 serviceAccount .Type = bqConfig .AuthType
@@ -58,49 +47,15 @@ func NewBigQueryServiceAccount(bqConfig *protos.BigqueryConfig) (*utils.GcpServi
5847 return & serviceAccount , nil
5948}
6049
61- // ValidateCheck:
62- // 1. Creates a table
63- // 2. Inserts one row into the table
64- // 3. Deletes the table
65- func (c * BigQueryConnector ) ValidateCheck (ctx context.Context ) error {
66- dummyTable := "peerdb_validate_dummy_" + shared .RandomString (4 )
67-
68- newTable := c .client .DatasetInProject (c .projectID , c .datasetID ).Table (dummyTable )
69-
70- createErr := newTable .Create (ctx , & bigquery.TableMetadata {
71- Schema : []* bigquery.FieldSchema {
72- {
73- Name : "dummy" ,
74- Type : bigquery .BooleanFieldType ,
75- Repeated : false ,
76- },
77- },
78- })
79- if createErr != nil {
80- return fmt .Errorf ("unable to validate table creation within dataset: %w. " +
81- "Please check if bigquery.tables.create permission has been granted" , createErr )
82- }
83-
84- var errs []error
85- insertQuery := c .client .Query (fmt .Sprintf ("INSERT INTO %s VALUES(true)" , dummyTable ))
86- insertQuery .DefaultDatasetID = c .datasetID
87- insertQuery .DefaultProjectID = c .projectID
88- _ , insertErr := insertQuery .Run (ctx )
89- if insertErr != nil {
90- errs = append (errs , fmt .Errorf ("unable to validate insertion into table: %w. " , insertErr ))
91- }
92-
93- // Drop the table
94- deleteErr := newTable .Delete (ctx )
95- if deleteErr != nil {
96- errs = append (errs , fmt .Errorf ("unable to delete table :%w. " , deleteErr ))
97- }
98-
99- if len (errs ) > 0 {
100- return errors .Join (errs ... )
101- }
102-
103- return nil
50+ type BigQueryConnector struct {
51+ * metadataStore.PostgresMetadata
52+ logger log.Logger
53+ bqConfig * protos.BigqueryConfig
54+ client * bigquery.Client
55+ storageClient * storage.Client
56+ catalogPool shared.CatalogPool
57+ datasetID string
58+ projectID string
10459}
10560
10661func NewBigQueryConnector (ctx context.Context , config * protos.BigqueryConfig ) (* BigQueryConnector , error ) {
@@ -156,6 +111,51 @@ func NewBigQueryConnector(ctx context.Context, config *protos.BigqueryConfig) (*
156111 }, nil
157112}
158113
114+ // ValidateCheck:
115+ // 1. Creates a table
116+ // 2. Inserts one row into the table
117+ // 3. Deletes the table
118+ func (c * BigQueryConnector ) ValidateCheck (ctx context.Context ) error {
119+ dummyTable := "peerdb_validate_dummy_" + shared .RandomString (4 )
120+
121+ newTable := c .client .DatasetInProject (c .projectID , c .datasetID ).Table (dummyTable )
122+
123+ createErr := newTable .Create (ctx , & bigquery.TableMetadata {
124+ Schema : []* bigquery.FieldSchema {
125+ {
126+ Name : "dummy" ,
127+ Type : bigquery .BooleanFieldType ,
128+ Repeated : false ,
129+ },
130+ },
131+ })
132+ if createErr != nil {
133+ return fmt .Errorf ("unable to validate table creation within dataset: %w. " +
134+ "Please check if bigquery.tables.create permission has been granted" , createErr )
135+ }
136+
137+ var errs []error
138+ insertQuery := c .client .Query (fmt .Sprintf ("INSERT INTO %s VALUES(true)" , dummyTable ))
139+ insertQuery .DefaultDatasetID = c .datasetID
140+ insertQuery .DefaultProjectID = c .projectID
141+ _ , insertErr := insertQuery .Run (ctx )
142+ if insertErr != nil {
143+ errs = append (errs , fmt .Errorf ("unable to validate insertion into table: %w. " , insertErr ))
144+ }
145+
146+ // Drop the table
147+ deleteErr := newTable .Delete (ctx )
148+ if deleteErr != nil {
149+ errs = append (errs , fmt .Errorf ("unable to delete table :%w. " , deleteErr ))
150+ }
151+
152+ if len (errs ) > 0 {
153+ return errors .Join (errs ... )
154+ }
155+
156+ return nil
157+ }
158+
159159// Close closes the BigQuery driver.
160160func (c * BigQueryConnector ) Close () error {
161161 if c != nil {
0 commit comments