Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 [firestore-bigquery-export] tableRequiresUpdate always returning true #2194

Open
timdrew opened this issue Oct 13, 2024 · 0 comments
Open
Labels
type: bug Something isn't working

Comments

@timdrew
Copy link

timdrew commented Oct 13, 2024

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:nullor don't have path_params column.

Expected result

The table shouldn't need updating.

Actual result

The table always updates on every run.

@timdrew timdrew added the type: bug Something isn't working label Oct 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant