@sqlanvil/core 1.18.0 → 1.19.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.
package/configs.proto CHANGED
@@ -451,6 +451,11 @@ message ActionConfig {
451
451
  // ("on_dependency_change" → in-place REFRESH instead of drop+recreate)
452
452
  // apply; indexes also apply to materialized views.
453
453
  PostgresOptions postgres = 22;
454
+
455
+ // MySQL/MariaDB-native options. Only meaningful for a materialized view
456
+ // (materialized: true), which MySQL emulates as a refreshed table snapshot —
457
+ // engine/charset/collation/row_format and indexes apply to that table.
458
+ MysqlOptions mysql = 23;
454
459
  }
455
460
 
456
461
  enum OnSchemaChange {
@@ -1091,9 +1096,8 @@ message PostgresOptions {
1091
1096
  string refresh_policy = 7;
1092
1097
  }
1093
1098
 
1094
- // MySQL/MariaDB table options + secondary indexes. First cut: engine/charset/
1095
- // collation and plain/unique secondary indexes. (No partitioning, FULLTEXT/
1096
- // SPATIAL/prefix indexes, or row_format yet — those are later follow-ups.)
1099
+ // MySQL/MariaDB table options, secondary indexes (plain/unique/fulltext/spatial,
1100
+ // with optional per-column prefix lengths), row_format, and native partitioning.
1097
1101
  message MysqlOptions {
1098
1102
  // Storage engine, emitted as ENGINE=<engine> (e.g. "InnoDB", "MyISAM").
1099
1103
  // Omit to use the server default.
@@ -1102,13 +1106,24 @@ message MysqlOptions {
1102
1106
  string charset = 2;
1103
1107
  // Default collation, emitted as COLLATE=<collation> (e.g. "utf8mb4_unicode_ci").
1104
1108
  string collation = 3;
1109
+ // Row format, emitted as ROW_FORMAT=<row_format> (e.g. "DYNAMIC", "COMPRESSED",
1110
+ // "COMPACT", "REDUNDANT"). Omit to use the engine default.
1111
+ string row_format = 6;
1105
1112
 
1106
1113
  message Index {
1107
1114
  // Optional; when omitted, derived as <table>_<cols>_idx (or _key if unique),
1108
1115
  // capped at 63 chars.
1109
1116
  string name = 1;
1117
+ // Column names. A column may carry a prefix length in MySQL's own syntax —
1118
+ // "description(50)" — emitted as `description`(50) (required to index BLOB/TEXT,
1119
+ // optional elsewhere).
1110
1120
  repeated string columns = 2;
1111
1121
  bool unique = 3;
1122
+ // Index type: "" (default B-tree/engine default), "fulltext", or "spatial".
1123
+ // Mutually exclusive with `unique`. NB a SPATIAL index requires a NOT NULL
1124
+ // SRID-attributed geometry column — CTAS-created columns are nullable, so
1125
+ // spatial usually needs an `ALTER TABLE ... MODIFY` pre-step in post_operations.
1126
+ string type = 4;
1112
1127
  }
1113
1128
  repeated Index indexes = 4;
1114
1129
 
package/package.json CHANGED
@@ -34,7 +34,7 @@
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "version": "1.18.0",
37
+ "version": "1.19.0",
38
38
  "name": "@sqlanvil/core",
39
39
  "description": "sqlanvil core API.",
40
40
  "main": "bundle.js"