gooddata-fdw 1.61.1.dev2__tar.gz → 1.62.1.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/PKG-INFO +3 -3
  2. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/pyproject.toml +3 -3
  3. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/execute/fixtures/execute_compute_table_all_columns.yaml +3 -3
  4. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/execute/fixtures/execute_compute_table_metrics_only.yaml +3 -3
  5. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml +3 -3
  6. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/execute/fixtures/execute_insight_all_columns.yaml +3 -3
  7. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/execute/fixtures/execute_insight_some_columns.yaml +3 -3
  8. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/.gitignore +0 -0
  9. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/.readthedocs.yaml +0 -0
  10. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/Dockerfile +0 -0
  11. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/LICENSE.txt +0 -0
  12. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/MANIFEST.in +0 -0
  13. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/Makefile +0 -0
  14. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/README.md +0 -0
  15. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/docs/_static/empty_file +0 -0
  16. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/docs/_templates/class-template.rst +0 -0
  17. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/docs/_templates/module-template.rst +0 -0
  18. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/docs/api.rst +0 -0
  19. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/docs/conf.py +0 -0
  20. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/docs/connecting_to_postgresql.rst +0 -0
  21. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/docs/foreign_tables.rst +0 -0
  22. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/docs/index.rst +0 -0
  23. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/docs/installation.rst +0 -0
  24. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/docs/requirements.txt +0 -0
  25. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/rebuild.sh +0 -0
  26. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/sql/create_extensions.sql +0 -0
  27. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/sql/import_gooddata.sql +0 -0
  28. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/__init__.py +0 -0
  29. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/_version.py +0 -0
  30. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/column_utils.py +0 -0
  31. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/column_validation.py +0 -0
  32. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/environment.py +0 -0
  33. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/executor.py +0 -0
  34. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/fdw.py +0 -0
  35. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/filter.py +0 -0
  36. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/import_workspace.py +0 -0
  37. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/naming.py +0 -0
  38. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/options.py +0 -0
  39. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/pg_logging.py +0 -0
  40. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/src/gooddata_fdw/result_reader.py +0 -0
  41. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/__init__.py +0 -0
  42. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/conftest.py +0 -0
  43. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/execute/__init__.py +0 -0
  44. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/execute/test_execute_compute_table.py +0 -0
  45. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/execute/test_execute_insight.py +0 -0
  46. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/gd_test_config.yaml +0 -0
  47. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/import_foreign_schema/__init__.py +0 -0
  48. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml +14 -14
  49. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml +14 -14
  50. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/import_foreign_schema/test_import_compute.py +0 -0
  51. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/import_foreign_schema/test_import_insights.py +0 -0
  52. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/overview.md +0 -0
  53. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/unit_test/test_column_validation.py +0 -0
  54. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/unit_test/test_executor.py +0 -0
  55. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/unit_test/test_filter.py +0 -0
  56. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/unit_test/test_options.py +0 -0
  57. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tests/unit_test/test_result_reader.py +0 -0
  58. {gooddata_fdw-1.61.1.dev2 → gooddata_fdw-1.62.1.dev1}/tox.ini +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gooddata-fdw
3
- Version: 1.61.1.dev2
3
+ Version: 1.62.1.dev1
4
4
  Summary: GoodData Cloud Foreign Data Wrapper For PostgreSQL
5
- Project-URL: Documentation, https://gooddata-fdw.readthedocs.io/en/v1.61.1.dev2
5
+ Project-URL: Documentation, https://gooddata-fdw.readthedocs.io/en/v1.62.1.dev1
6
6
  Project-URL: Source, https://github.com/gooddata/gooddata-python-sdk
7
7
  Author-email: GoodData <support@gooddata.com>
8
8
  License-Expression: MIT
@@ -20,7 +20,7 @@ Classifier: Topic :: Scientific/Engineering
20
20
  Classifier: Topic :: Software Development
21
21
  Classifier: Typing :: Typed
22
22
  Requires-Python: >=3.10
23
- Requires-Dist: gooddata-sdk~=1.61.1.dev2
23
+ Requires-Dist: gooddata-sdk~=1.62.1.dev1
24
24
  Description-Content-Type: text/markdown
25
25
 
26
26
  # GoodData Foreign Data Wrapper
@@ -1,7 +1,7 @@
1
1
  # (C) 2025 GoodData Corporation
2
2
  [project]
3
3
  name = "gooddata-fdw"
4
- version = "1.61.1.dev2"
4
+ version = "1.62.1.dev1"
5
5
  description = "GoodData Cloud Foreign Data Wrapper For PostgreSQL"
6
6
  readme = "README.md"
7
7
  license = "MIT"
@@ -26,7 +26,7 @@ keywords = [
26
26
  ]
27
27
  requires-python = ">=3.10"
28
28
  dependencies = [
29
- "gooddata-sdk~=1.61.1.dev2",
29
+ "gooddata-sdk~=1.62.1.dev1",
30
30
  # "multicorn>=1.4.0", # Uncommented as it was in original setup.py
31
31
  ]
32
32
  classifiers = [
@@ -44,7 +44,7 @@ classifiers = [
44
44
  ]
45
45
 
46
46
  [project.urls]
47
- Documentation = "https://gooddata-fdw.readthedocs.io/en/v1.61.1.dev2"
47
+ Documentation = "https://gooddata-fdw.readthedocs.io/en/v1.62.1.dev1"
48
48
  Source = "https://github.com/gooddata/gooddata-python-sdk"
49
49
 
50
50
  [dependency-groups]
@@ -103,7 +103,7 @@ interactions:
103
103
  X-Content-Type-Options:
104
104
  - nosniff
105
105
  X-Gdc-Cancel-Token:
106
- - d9864393-ac2a-4c0a-b3ea-aa9e5abb9b70
106
+ - 4b12a06a-487e-46d5-9d60-488e15b57c40
107
107
  X-GDC-TRACE-ID: *id001
108
108
  X-Xss-Protection:
109
109
  - '0'
@@ -155,10 +155,10 @@ interactions:
155
155
  name: Revenue
156
156
  localIdentifier: dim_1
157
157
  links:
158
- executionResult: a25bd79d690d6196246e00dcba57712fc434bd1e:20b1683c82bd7eab9a6110480cce897ed8639125e12564ab7a9b199c38f5b081
158
+ executionResult: f6a00a91124ea1040b01c1b8831adb92ba7f5ba4:e6b88a13de23c82db3678aa8f42c5d60a1b645f5fa3d308fbe393dd69ac4e41f
159
159
  - request:
160
160
  method: GET
161
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a25bd79d690d6196246e00dcba57712fc434bd1e%3A20b1683c82bd7eab9a6110480cce897ed8639125e12564ab7a9b199c38f5b081?offset=0%2C0&limit=512%2C256
161
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f6a00a91124ea1040b01c1b8831adb92ba7f5ba4%3Ae6b88a13de23c82db3678aa8f42c5d60a1b645f5fa3d308fbe393dd69ac4e41f?offset=0%2C0&limit=512%2C256
162
162
  body: null
163
163
  headers:
164
164
  Accept:
@@ -89,7 +89,7 @@ interactions:
89
89
  X-Content-Type-Options:
90
90
  - nosniff
91
91
  X-Gdc-Cancel-Token:
92
- - c734cef7-e489-4753-b34e-d4b6d19d5e35
92
+ - 79955fb8-cc71-4521-9c15-675b013d1c74
93
93
  X-GDC-TRACE-ID: *id001
94
94
  X-Xss-Protection:
95
95
  - '0'
@@ -109,10 +109,10 @@ interactions:
109
109
  name: Revenue
110
110
  localIdentifier: dim_0
111
111
  links:
112
- executionResult: a6c97ee6a244521dfb7c5bd6ffb34e93baecdcc5:eda7cc427233858f3b2b46329904531410365a20487e2ebe8361446ec734ff3f
112
+ executionResult: 56975cbe08024d150757b5a5de1b64c3e3948ff1:8e1cadd7ffa3122dec261230119d721fb0982535710e64bc682a98d4b800bd8a
113
113
  - request:
114
114
  method: GET
115
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a6c97ee6a244521dfb7c5bd6ffb34e93baecdcc5%3Aeda7cc427233858f3b2b46329904531410365a20487e2ebe8361446ec734ff3f?offset=0&limit=256
115
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/56975cbe08024d150757b5a5de1b64c3e3948ff1%3A8e1cadd7ffa3122dec261230119d721fb0982535710e64bc682a98d4b800bd8a?offset=0&limit=256
116
116
  body: null
117
117
  headers:
118
118
  Accept:
@@ -78,7 +78,7 @@ interactions:
78
78
  X-Content-Type-Options:
79
79
  - nosniff
80
80
  X-Gdc-Cancel-Token:
81
- - 48a7f8d7-8e1d-48f0-b4e9-1843f4a32f70
81
+ - c113c082-69db-4625-965c-ae1e30da11cd
82
82
  X-GDC-TRACE-ID: *id001
83
83
  X-Xss-Protection:
84
84
  - '0'
@@ -111,10 +111,10 @@ interactions:
111
111
  name: Revenue
112
112
  localIdentifier: dim_1
113
113
  links:
114
- executionResult: 1c8a8d0eb53912d784b65063c26f913b0b18d952:54c72a97fc224a9abadc15b2ff2f416c182af9b5d412663bc0ee0978da974be6
114
+ executionResult: 3c592204c3c06ac180cb7f07a42fe7293d7f5c34:b8f99c102eff20475276527c4de48f016d8fd5a17dc08369f311a59999b3f5f9
115
115
  - request:
116
116
  method: GET
117
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1c8a8d0eb53912d784b65063c26f913b0b18d952%3A54c72a97fc224a9abadc15b2ff2f416c182af9b5d412663bc0ee0978da974be6?offset=0%2C0&limit=512%2C256
117
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/3c592204c3c06ac180cb7f07a42fe7293d7f5c34%3Ab8f99c102eff20475276527c4de48f016d8fd5a17dc08369f311a59999b3f5f9?offset=0%2C0&limit=512%2C256
118
118
  body: null
119
119
  headers:
120
120
  Accept:
@@ -375,7 +375,7 @@ interactions:
375
375
  X-Content-Type-Options:
376
376
  - nosniff
377
377
  X-Gdc-Cancel-Token:
378
- - 466d13f5-b17e-4fe2-ae20-ab164bb51af4
378
+ - 9d5d2daa-64d8-40e2-9797-81abd09b70aa
379
379
  X-GDC-TRACE-ID: *id001
380
380
  X-Xss-Protection:
381
381
  - '0'
@@ -427,10 +427,10 @@ interactions:
427
427
  name: Revenue
428
428
  localIdentifier: dim_1
429
429
  links:
430
- executionResult: 8784b17f2b3dfe33a3f74f622cda4a7d45fa5698:0ccc9db8bf509fced9443d1cca405bc48fb287d977ab4effd1cc95e6f372b03e
430
+ executionResult: a48fff91153e53681fe1835a1790259611b24d2f:41a18ba83d92626b6782bb70d16a3c934861331096315dacb4f57b290cf6cbb9
431
431
  - request:
432
432
  method: GET
433
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/8784b17f2b3dfe33a3f74f622cda4a7d45fa5698%3A0ccc9db8bf509fced9443d1cca405bc48fb287d977ab4effd1cc95e6f372b03e?offset=0%2C0&limit=512%2C256
433
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a48fff91153e53681fe1835a1790259611b24d2f%3A41a18ba83d92626b6782bb70d16a3c934861331096315dacb4f57b290cf6cbb9?offset=0%2C0&limit=512%2C256
434
434
  body: null
435
435
  headers:
436
436
  Accept:
@@ -375,7 +375,7 @@ interactions:
375
375
  X-Content-Type-Options:
376
376
  - nosniff
377
377
  X-Gdc-Cancel-Token:
378
- - 9f593c36-2447-440c-894e-14e8be58a021
378
+ - 0ac6459b-2f46-4e7a-9620-f171b8094880
379
379
  X-GDC-TRACE-ID: *id001
380
380
  X-Xss-Protection:
381
381
  - '0'
@@ -427,10 +427,10 @@ interactions:
427
427
  name: Revenue
428
428
  localIdentifier: dim_1
429
429
  links:
430
- executionResult: 8784b17f2b3dfe33a3f74f622cda4a7d45fa5698:0ccc9db8bf509fced9443d1cca405bc48fb287d977ab4effd1cc95e6f372b03e
430
+ executionResult: a48fff91153e53681fe1835a1790259611b24d2f:41a18ba83d92626b6782bb70d16a3c934861331096315dacb4f57b290cf6cbb9
431
431
  - request:
432
432
  method: GET
433
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/8784b17f2b3dfe33a3f74f622cda4a7d45fa5698%3A0ccc9db8bf509fced9443d1cca405bc48fb287d977ab4effd1cc95e6f372b03e?offset=0%2C0&limit=512%2C256
433
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a48fff91153e53681fe1835a1790259611b24d2f%3A41a18ba83d92626b6782bb70d16a3c934861331096315dacb4f57b290cf6cbb9?offset=0%2C0&limit=512%2C256
434
434
  body: null
435
435
  headers:
436
436
  Accept:
@@ -530,10 +530,10 @@ interactions:
530
530
  type: dataset
531
531
  labels:
532
532
  data:
533
- - id: geo__state__location
534
- type: label
535
533
  - id: state
536
534
  type: label
535
+ - id: geo__state__location
536
+ type: label
537
537
  type: attribute
538
538
  - attributes:
539
539
  title: Type
@@ -600,14 +600,14 @@ interactions:
600
600
  type: attribute
601
601
  referenceProperties:
602
602
  - identifier:
603
- id: campaigns
603
+ id: products
604
604
  type: dataset
605
605
  multivalue: false
606
606
  sources:
607
- - column: campaign_id
607
+ - column: product_id
608
608
  dataType: INT
609
609
  target:
610
- id: campaign_id
610
+ id: product_id
611
611
  type: attribute
612
612
  isNullable: null
613
613
  nullValue: null
@@ -642,14 +642,14 @@ interactions:
642
642
  sourceColumns: null
643
643
  sourceColumnDataTypes: null
644
644
  - identifier:
645
- id: products
645
+ id: campaigns
646
646
  type: dataset
647
647
  multivalue: false
648
648
  sources:
649
- - column: product_id
649
+ - column: campaign_id
650
650
  dataType: INT
651
651
  target:
652
- id: product_id
652
+ id: campaign_id
653
653
  type: attribute
654
654
  isNullable: null
655
655
  nullValue: null
@@ -1262,14 +1262,14 @@ interactions:
1262
1262
  type: attribute
1263
1263
  referenceProperties:
1264
1264
  - identifier:
1265
- id: campaigns
1265
+ id: products
1266
1266
  type: dataset
1267
1267
  multivalue: false
1268
1268
  sources:
1269
- - column: campaign_id
1269
+ - column: product_id
1270
1270
  dataType: INT
1271
1271
  target:
1272
- id: campaign_id
1272
+ id: product_id
1273
1273
  type: attribute
1274
1274
  isNullable: null
1275
1275
  nullValue: null
@@ -1304,14 +1304,14 @@ interactions:
1304
1304
  sourceColumns: null
1305
1305
  sourceColumnDataTypes: null
1306
1306
  - identifier:
1307
- id: products
1307
+ id: campaigns
1308
1308
  type: dataset
1309
1309
  multivalue: false
1310
1310
  sources:
1311
- - column: product_id
1311
+ - column: campaign_id
1312
1312
  dataType: INT
1313
1313
  target:
1314
- id: product_id
1314
+ id: campaign_id
1315
1315
  type: attribute
1316
1316
  isNullable: null
1317
1317
  nullValue: null
@@ -530,10 +530,10 @@ interactions:
530
530
  type: dataset
531
531
  labels:
532
532
  data:
533
- - id: geo__state__location
534
- type: label
535
533
  - id: state
536
534
  type: label
535
+ - id: geo__state__location
536
+ type: label
537
537
  type: attribute
538
538
  - attributes:
539
539
  title: Type
@@ -600,14 +600,14 @@ interactions:
600
600
  type: attribute
601
601
  referenceProperties:
602
602
  - identifier:
603
- id: campaigns
603
+ id: products
604
604
  type: dataset
605
605
  multivalue: false
606
606
  sources:
607
- - column: campaign_id
607
+ - column: product_id
608
608
  dataType: INT
609
609
  target:
610
- id: campaign_id
610
+ id: product_id
611
611
  type: attribute
612
612
  isNullable: null
613
613
  nullValue: null
@@ -642,14 +642,14 @@ interactions:
642
642
  sourceColumns: null
643
643
  sourceColumnDataTypes: null
644
644
  - identifier:
645
- id: products
645
+ id: campaigns
646
646
  type: dataset
647
647
  multivalue: false
648
648
  sources:
649
- - column: product_id
649
+ - column: campaign_id
650
650
  dataType: INT
651
651
  target:
652
- id: product_id
652
+ id: campaign_id
653
653
  type: attribute
654
654
  isNullable: null
655
655
  nullValue: null
@@ -1262,14 +1262,14 @@ interactions:
1262
1262
  type: attribute
1263
1263
  referenceProperties:
1264
1264
  - identifier:
1265
- id: campaigns
1265
+ id: products
1266
1266
  type: dataset
1267
1267
  multivalue: false
1268
1268
  sources:
1269
- - column: campaign_id
1269
+ - column: product_id
1270
1270
  dataType: INT
1271
1271
  target:
1272
- id: campaign_id
1272
+ id: product_id
1273
1273
  type: attribute
1274
1274
  isNullable: null
1275
1275
  nullValue: null
@@ -1304,14 +1304,14 @@ interactions:
1304
1304
  sourceColumns: null
1305
1305
  sourceColumnDataTypes: null
1306
1306
  - identifier:
1307
- id: products
1307
+ id: campaigns
1308
1308
  type: dataset
1309
1309
  multivalue: false
1310
1310
  sources:
1311
- - column: product_id
1311
+ - column: campaign_id
1312
1312
  dataType: INT
1313
1313
  target:
1314
- id: product_id
1314
+ id: campaign_id
1315
1315
  type: attribute
1316
1316
  isNullable: null
1317
1317
  nullValue: null