-
Notifications
You must be signed in to change notification settings - Fork 411
Open
Labels
extension: firestore-bigquery-exportRelated to firestore-bigquery-export extensionRelated to firestore-bigquery-export extensiontriagedtype: bugSomething isn't workingSomething isn't working
Description
Describe your configuration
- Extension name: firestore-bigquery-export
- Extension version: latest
- Configuration values (redact info where appropriate):
- clustering: null
Describe the problem
The tableRequiresUpdate
function appears to be bugged in a couple different ways depending on your config. This results in the update check always returning true and the table config being repeatedly updated unnecessarily.
Issue 1
If clustering
config is null
then the table will always require updates due to this faulty check:
const configCluster = JSON.stringify(config.clustering); // Evaluates to 'null'
const tableCluster = JSON.stringify(metadata.clustering?.fields || []); // Evaluates to '[]'
if (configCluster !== tableCluster) return true; // Always true
Issue 2
Within initializeRawChangeLogTable
the pathParamsColExists
is allowed to be undefined
const pathParamsColExists = fields.find(
(column) => column.name === "path_params"
); // Evaluates to undefined if not present, rather than boolean
This is then passed into tableRequiresUpdate
, and will always fail the strict equality check:
if (!!config.wildcardIds !== pathParamsColExists) return true; // Evaluates to boolean !== undefined -> always true
Steps to reproduce:
What happened? How can we make the problem occur?
Supply either clustering:null
or don't have path_params
column.
Expected result
The table shouldn't need updating.
Actual result
The table always updates on every run.
Metadata
Metadata
Assignees
Labels
extension: firestore-bigquery-exportRelated to firestore-bigquery-export extensionRelated to firestore-bigquery-export extensiontriagedtype: bugSomething isn't workingSomething isn't working