query-cache-common 1.8.0__tar.gz → 1.9.1__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 (21) hide show
  1. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/.gitignore +7 -2
  2. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/PKG-INFO +1 -1
  3. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/auth.py +10 -0
  4. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/utils.py +6 -3
  5. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/pyproject.toml +0 -0
  6. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/__init__.py +0 -0
  7. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/constants.py +0 -0
  8. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/decorators.py +0 -0
  9. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/__init__.py +0 -0
  10. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/_typing.py +0 -0
  11. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/base.py +0 -0
  12. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/converters.py +0 -0
  13. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/fields.py +0 -0
  14. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/services/__init__.py +0 -0
  15. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/services/client_telemetry_service_models.py +0 -0
  16. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/services/client_validation_service_models.py +0 -0
  17. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/services/clone_service_models.py +0 -0
  18. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/services/execution_service_models.py +0 -0
  19. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/services/explain_service_models.py +0 -0
  20. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/services/sql_service_models.py +0 -0
  21. {query_cache_common-1.8.0 → query_cache_common-1.9.1}/src/query_cache_common/models/shared_models.py +0 -0
@@ -213,9 +213,11 @@ data/
213
213
  # Service account credentials
214
214
  .creds/
215
215
 
216
- # Load test generated files
217
- tooling/load_test/data/*.json
216
+ # Load test generated files (flat JSONs + timestamped run dirs)
217
+ tooling/load_test/data/
218
218
  tooling/load_test/proto/
219
+ # Active k8s load-test run ID written by k8s prepare-run.
220
+ tooling/load_test/k8s/.run-id
219
221
 
220
222
  # Turbo integration test
221
223
  tests/integration/dbt_run_cache_turbo/projects/
@@ -229,3 +231,6 @@ docs/superpowers/
229
231
 
230
232
  # Git worktrees
231
233
  .worktrees/
234
+
235
+ # Google Antigravity CLI (agy)
236
+ .antigravitycli/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: query-cache-common
3
- Version: 1.8.0
3
+ Version: 1.9.1
4
4
  Summary: Common code for Query Cache shared across client and server
5
5
  License:
6
6
  Apache License
@@ -75,6 +75,16 @@ class Scope:
75
75
  """Returns all organization IDs from the scope, including wildcards."""
76
76
  return list(_org_id_to_level(self._org_scopes))
77
77
 
78
+ @cached_property
79
+ def disabled_org_ids(self) -> t.List[str]:
80
+ """Returns organization IDs present in :app: scopes but absent from :org: scopes.
81
+
82
+ These are organizations the user is associated with but whose access has been disabled.
83
+ """
84
+ active_org_ids = set(self.org_ids)
85
+ app_org_ids = _org_id_to_level(self._app_scopes)
86
+ return [org_id for org_id in app_org_ids if org_id not in active_org_ids]
87
+
78
88
  def is_org_id_in_scope(self, org_id: str) -> bool:
79
89
  """Check if the given organization ID is included in the scope.
80
90
 
@@ -32,17 +32,20 @@ def current_epoch_millis() -> int:
32
32
 
33
33
 
34
34
  def extract_select_from_ctas(create: CreateStatement) -> SqlglotExpression:
35
- """Extract the SELECT statement from a CREATE TABLE / VIEW AS statement.
35
+ """Extract the query from a CREATE TABLE / VIEW AS statement.
36
+
37
+ The query body may be a single SELECT or a set operation (UNION / INTERSECT /
38
+ EXCEPT), optionally wrapped in parentheses.
36
39
 
37
40
  Args:
38
41
  create: The CTAS statement.
39
42
 
40
43
  Returns:
41
- The extracted SELECT statement.
44
+ The extracted query expression.
42
45
  """
43
46
  from sqlglot import exp
44
47
 
45
- if not isinstance(create.expression, (exp.Subquery, exp.Select)):
48
+ if not isinstance(create.expression, (exp.Subquery, exp.Query)):
46
49
  raise ValueError(
47
50
  "Invalid CREATE statement. Only CREATE ... AS SELECT statements are supported"
48
51
  )