@query-farm/vgi 0.17.0 → 0.18.0

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.
@@ -53,18 +53,24 @@ export interface TableDescriptor {
53
53
  */
54
54
  statisticsCacheMaxAgeSeconds?: number | null;
55
55
  /**
56
- * Dotted-path column references that MUST appear in a WHERE expression for
57
- * any scan of this table. Top-level names (`"country"`) or struct subfields
58
- * (`"bbox.xmin"`, `"nested.outer.inner"`). Empty/undefined (default) means
59
- * no enforcement — the zero-cost fast path for every existing table.
56
+ * Required WHERE-filter groups in conjunctive normal form — an AND (outer
57
+ * list) of OR-groups (inner lists) of dotted-path column references that MUST
58
+ * appear in a WHERE expression for any scan of this table. A group is
59
+ * satisfied when any one of its paths has a filter; every group must be
60
+ * satisfied. So `[["accession_number"], ["ticker", "cik"]]` means
61
+ * "accession_number AND one of (ticker, cik)"; a single-path group
62
+ * `[["country"]]` is a plain mandatory filter. Paths are top-level names
63
+ * (`"country"`) or struct subfields (`"bbox.xmin"`, `"nested.outer.inner"`).
64
+ * Empty/undefined (default) means no enforcement — the zero-cost fast path
65
+ * for every existing table.
60
66
  *
61
67
  * Satisfaction is prefix-based: a present filter on a shorter path satisfies
62
68
  * any required path it is a prefix of. So a whole-struct filter on `bbox`
63
69
  * satisfies all of `bbox.xmin` / `.xmax` / `.ymin` / `.ymax`. The VGI DuckDB
64
- * extension's optimizer pass consults this list at bind time and throws a
65
- * `BinderException` listing any unsatisfied paths.
70
+ * extension's optimizer pass consults this at bind time and throws a
71
+ * `BinderException` listing any unsatisfied groups.
66
72
  */
67
- requiredFieldFilterPaths?: string[];
73
+ requiredFilters?: string[][];
68
74
  supportsTimeTravel?: boolean;
69
75
  /**
70
76
  * Inline cardinality estimate/max surfaced through TableInfo. When set,
@@ -2301,7 +2301,7 @@ var TableInfoSchema = schema2([
2301
2301
  field2("cardinality_max", int642(), false),
2302
2302
  field2("column_statistics", binary2(), false),
2303
2303
  field2("bind_result", binary2(), false),
2304
- field2("required_field_filter_paths", list2(field2("item", utf82(), true)), false)
2304
+ field2("required_filters", list2(field2("item", list2(field2("item", utf82(), true)), true)), false)
2305
2305
  ]);
2306
2306
  var ViewInfoSchema = schema2([
2307
2307
  field2("comment", utf82(), true),
@@ -3906,4 +3906,4 @@ export {
3906
3906
  ArgumentValidationError
3907
3907
  };
3908
3908
 
3909
- //# debugId=E9BADB7DC32EB77064756E2164756E21
3909
+ //# debugId=02E1D95AF7E1275C64756E2164756E21