@sqlanvil/core 1.4.1 → 1.6.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/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # SQLAnvil
2
2
 
3
- **SQL workflow tool for BigQuery, Postgres, and Supabase.**
3
+ **SQL workflow tool for BigQuery, Postgres, Supabase, and MySQL/MariaDB.**
4
4
 
5
- SQLAnvil is an open-source fork of [Dataform OSS](https://github.com/dataform-co/dataform) (Apache 2.0), extended with first-class PostgreSQL and Supabase support. Define your data transformations in SQLX, have SQLAnvil compile them to idiomatic SQL, and run them against your warehouse.
5
+ SQLAnvil is an open-source fork of [Dataform OSS](https://github.com/dataform-co/dataform) (Apache 2.0), extended with first-class PostgreSQL, Supabase, and MySQL/MariaDB support. Define your data transformations in SQLX, have SQLAnvil compile them to idiomatic SQL, and run them against your warehouse.
6
6
 
7
7
  > **SQLAnvil is not affiliated with or endorsed by Google.** The Dataform name and related marks are trademarks of Google LLC. See [NOTICE](NOTICE) for attribution.
8
8
 
@@ -13,6 +13,7 @@ SQLAnvil is an open-source fork of [Dataform OSS](https://github.com/dataform-co
13
13
  - **BigQuery** — full support: partitioning, clustering, labels, materialized views, `MERGE`-based incremental upserts
14
14
  - **PostgreSQL** — idiomatic DDL: native partitioning, `INSERT ... ON CONFLICT` upserts, btree/gin/gist/brin indexes, tablespaces, fillfactor
15
15
  - **Supabase** — extends Postgres with RLS policies, Realtime publications, pgvector indexes, and Supabase Wrappers _(coming soon)_
16
+ - **MySQL / MariaDB** — portable MySQL DDL: CTAS tables, `CREATE OR REPLACE VIEW`, `ON DUPLICATE KEY UPDATE` incremental upserts (one adapter, validated against both engines)
16
17
  - **SQLX + YAML + JS** — three authoring modes: SQL with config blocks, `actions.yaml` bulk definitions, or the JavaScript API
17
18
 
18
19
  ---
package/bundle.d.ts CHANGED
@@ -1375,6 +1375,9 @@ namespace sqlanvil {
1375
1375
 
1376
1376
  /** TableConfig supabase */
1377
1377
  supabase?: (sqlanvil.ISupabaseOptions|null);
1378
+
1379
+ /** TableConfig mysql */
1380
+ mysql?: (sqlanvil.IMysqlOptions|null);
1378
1381
  }
1379
1382
 
1380
1383
  /** Represents a TableConfig. */
@@ -1461,6 +1464,9 @@ namespace sqlanvil {
1461
1464
  /** TableConfig supabase. */
1462
1465
  public supabase?: (sqlanvil.ISupabaseOptions|null);
1463
1466
 
1467
+ /** TableConfig mysql. */
1468
+ public mysql?: (sqlanvil.IMysqlOptions|null);
1469
+
1464
1470
  /**
1465
1471
  * Creates a new TableConfig instance using the specified properties.
1466
1472
  * @param [properties] Properties to set
@@ -1962,6 +1968,9 @@ namespace sqlanvil {
1962
1968
 
1963
1969
  /** IncrementalTableConfig supabase */
1964
1970
  supabase?: (sqlanvil.ISupabaseOptions|null);
1971
+
1972
+ /** IncrementalTableConfig mysql */
1973
+ mysql?: (sqlanvil.IMysqlOptions|null);
1965
1974
  }
1966
1975
 
1967
1976
  /** Represents an IncrementalTableConfig. */
@@ -2060,6 +2069,9 @@ namespace sqlanvil {
2060
2069
  /** IncrementalTableConfig supabase. */
2061
2070
  public supabase?: (sqlanvil.ISupabaseOptions|null);
2062
2071
 
2072
+ /** IncrementalTableConfig mysql. */
2073
+ public mysql?: (sqlanvil.IMysqlOptions|null);
2074
+
2063
2075
  /**
2064
2076
  * Creates a new IncrementalTableConfig instance using the specified properties.
2065
2077
  * @param [properties] Properties to set
@@ -4395,6 +4407,233 @@ namespace sqlanvil {
4395
4407
  }
4396
4408
  }
4397
4409
 
4410
+ /** Properties of a MysqlOptions. */
4411
+ interface IMysqlOptions {
4412
+
4413
+ /** MysqlOptions engine */
4414
+ engine?: (string|null);
4415
+
4416
+ /** MysqlOptions charset */
4417
+ charset?: (string|null);
4418
+
4419
+ /** MysqlOptions collation */
4420
+ collation?: (string|null);
4421
+
4422
+ /** MysqlOptions indexes */
4423
+ indexes?: (sqlanvil.MysqlOptions.IIndex[]|null);
4424
+ }
4425
+
4426
+ /** Represents a MysqlOptions. */
4427
+ class MysqlOptions implements IMysqlOptions {
4428
+
4429
+ /**
4430
+ * Constructs a new MysqlOptions.
4431
+ * @param [properties] Properties to set
4432
+ */
4433
+ constructor(properties?: sqlanvil.IMysqlOptions);
4434
+
4435
+ /** MysqlOptions engine. */
4436
+ public engine: string;
4437
+
4438
+ /** MysqlOptions charset. */
4439
+ public charset: string;
4440
+
4441
+ /** MysqlOptions collation. */
4442
+ public collation: string;
4443
+
4444
+ /** MysqlOptions indexes. */
4445
+ public indexes: sqlanvil.MysqlOptions.IIndex[];
4446
+
4447
+ /**
4448
+ * Creates a new MysqlOptions instance using the specified properties.
4449
+ * @param [properties] Properties to set
4450
+ * @returns MysqlOptions instance
4451
+ */
4452
+ public static create(properties?: sqlanvil.IMysqlOptions): sqlanvil.MysqlOptions;
4453
+
4454
+ /**
4455
+ * Encodes the specified MysqlOptions message. Does not implicitly {@link sqlanvil.MysqlOptions.verify|verify} messages.
4456
+ * @param message MysqlOptions message or plain object to encode
4457
+ * @param [writer] Writer to encode to
4458
+ * @returns Writer
4459
+ */
4460
+ public static encode(message: sqlanvil.IMysqlOptions, writer?: $protobuf.Writer): $protobuf.Writer;
4461
+
4462
+ /**
4463
+ * Encodes the specified MysqlOptions message, length delimited. Does not implicitly {@link sqlanvil.MysqlOptions.verify|verify} messages.
4464
+ * @param message MysqlOptions message or plain object to encode
4465
+ * @param [writer] Writer to encode to
4466
+ * @returns Writer
4467
+ */
4468
+ public static encodeDelimited(message: sqlanvil.IMysqlOptions, writer?: $protobuf.Writer): $protobuf.Writer;
4469
+
4470
+ /**
4471
+ * Decodes a MysqlOptions message from the specified reader or buffer.
4472
+ * @param reader Reader or buffer to decode from
4473
+ * @param [length] Message length if known beforehand
4474
+ * @returns MysqlOptions
4475
+ * @throws {Error} If the payload is not a reader or valid buffer
4476
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
4477
+ */
4478
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): sqlanvil.MysqlOptions;
4479
+
4480
+ /**
4481
+ * Decodes a MysqlOptions message from the specified reader or buffer, length delimited.
4482
+ * @param reader Reader or buffer to decode from
4483
+ * @returns MysqlOptions
4484
+ * @throws {Error} If the payload is not a reader or valid buffer
4485
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
4486
+ */
4487
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): sqlanvil.MysqlOptions;
4488
+
4489
+ /**
4490
+ * Verifies a MysqlOptions message.
4491
+ * @param message Plain object to verify
4492
+ * @returns `null` if valid, otherwise the reason why it is not
4493
+ */
4494
+ public static verify(message: { [k: string]: any }): (string|null);
4495
+
4496
+ /**
4497
+ * Creates a MysqlOptions message from a plain object. Also converts values to their respective internal types.
4498
+ * @param object Plain object
4499
+ * @returns MysqlOptions
4500
+ */
4501
+ public static fromObject(object: { [k: string]: any }): sqlanvil.MysqlOptions;
4502
+
4503
+ /**
4504
+ * Creates a plain object from a MysqlOptions message. Also converts values to other types if specified.
4505
+ * @param message MysqlOptions
4506
+ * @param [options] Conversion options
4507
+ * @returns Plain object
4508
+ */
4509
+ public static toObject(message: sqlanvil.MysqlOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };
4510
+
4511
+ /**
4512
+ * Converts this MysqlOptions to JSON.
4513
+ * @returns JSON object
4514
+ */
4515
+ public toJSON(): { [k: string]: any };
4516
+
4517
+ /**
4518
+ * Gets the default type url for MysqlOptions
4519
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
4520
+ * @returns The default type url
4521
+ */
4522
+ public static getTypeUrl(typeUrlPrefix?: string): string;
4523
+ }
4524
+
4525
+ namespace MysqlOptions {
4526
+
4527
+ /** Properties of an Index. */
4528
+ interface IIndex {
4529
+
4530
+ /** Index name */
4531
+ name?: (string|null);
4532
+
4533
+ /** Index columns */
4534
+ columns?: (string[]|null);
4535
+
4536
+ /** Index unique */
4537
+ unique?: (boolean|null);
4538
+ }
4539
+
4540
+ /** Represents an Index. */
4541
+ class Index implements IIndex {
4542
+
4543
+ /**
4544
+ * Constructs a new Index.
4545
+ * @param [properties] Properties to set
4546
+ */
4547
+ constructor(properties?: sqlanvil.MysqlOptions.IIndex);
4548
+
4549
+ /** Index name. */
4550
+ public name: string;
4551
+
4552
+ /** Index columns. */
4553
+ public columns: string[];
4554
+
4555
+ /** Index unique. */
4556
+ public unique: boolean;
4557
+
4558
+ /**
4559
+ * Creates a new Index instance using the specified properties.
4560
+ * @param [properties] Properties to set
4561
+ * @returns Index instance
4562
+ */
4563
+ public static create(properties?: sqlanvil.MysqlOptions.IIndex): sqlanvil.MysqlOptions.Index;
4564
+
4565
+ /**
4566
+ * Encodes the specified Index message. Does not implicitly {@link sqlanvil.MysqlOptions.Index.verify|verify} messages.
4567
+ * @param message Index message or plain object to encode
4568
+ * @param [writer] Writer to encode to
4569
+ * @returns Writer
4570
+ */
4571
+ public static encode(message: sqlanvil.MysqlOptions.IIndex, writer?: $protobuf.Writer): $protobuf.Writer;
4572
+
4573
+ /**
4574
+ * Encodes the specified Index message, length delimited. Does not implicitly {@link sqlanvil.MysqlOptions.Index.verify|verify} messages.
4575
+ * @param message Index message or plain object to encode
4576
+ * @param [writer] Writer to encode to
4577
+ * @returns Writer
4578
+ */
4579
+ public static encodeDelimited(message: sqlanvil.MysqlOptions.IIndex, writer?: $protobuf.Writer): $protobuf.Writer;
4580
+
4581
+ /**
4582
+ * Decodes an Index message from the specified reader or buffer.
4583
+ * @param reader Reader or buffer to decode from
4584
+ * @param [length] Message length if known beforehand
4585
+ * @returns Index
4586
+ * @throws {Error} If the payload is not a reader or valid buffer
4587
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
4588
+ */
4589
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): sqlanvil.MysqlOptions.Index;
4590
+
4591
+ /**
4592
+ * Decodes an Index message from the specified reader or buffer, length delimited.
4593
+ * @param reader Reader or buffer to decode from
4594
+ * @returns Index
4595
+ * @throws {Error} If the payload is not a reader or valid buffer
4596
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
4597
+ */
4598
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): sqlanvil.MysqlOptions.Index;
4599
+
4600
+ /**
4601
+ * Verifies an Index message.
4602
+ * @param message Plain object to verify
4603
+ * @returns `null` if valid, otherwise the reason why it is not
4604
+ */
4605
+ public static verify(message: { [k: string]: any }): (string|null);
4606
+
4607
+ /**
4608
+ * Creates an Index message from a plain object. Also converts values to their respective internal types.
4609
+ * @param object Plain object
4610
+ * @returns Index
4611
+ */
4612
+ public static fromObject(object: { [k: string]: any }): sqlanvil.MysqlOptions.Index;
4613
+
4614
+ /**
4615
+ * Creates a plain object from an Index message. Also converts values to other types if specified.
4616
+ * @param message Index
4617
+ * @param [options] Conversion options
4618
+ * @returns Plain object
4619
+ */
4620
+ public static toObject(message: sqlanvil.MysqlOptions.Index, options?: $protobuf.IConversionOptions): { [k: string]: any };
4621
+
4622
+ /**
4623
+ * Converts this Index to JSON.
4624
+ * @returns JSON object
4625
+ */
4626
+ public toJSON(): { [k: string]: any };
4627
+
4628
+ /**
4629
+ * Gets the default type url for Index
4630
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
4631
+ * @returns The default type url
4632
+ */
4633
+ public static getTypeUrl(typeUrlPrefix?: string): string;
4634
+ }
4635
+ }
4636
+
4398
4637
  /** Properties of a SupabaseOptions. */
4399
4638
  interface ISupabaseOptions {
4400
4639
 
@@ -5000,6 +5239,133 @@ namespace sqlanvil {
5000
5239
  public static getTypeUrl(typeUrlPrefix?: string): string;
5001
5240
  }
5002
5241
 
5242
+ /** Properties of a MysqlConnection. */
5243
+ interface IMysqlConnection {
5244
+
5245
+ /** MysqlConnection host */
5246
+ host?: (string|null);
5247
+
5248
+ /** MysqlConnection port */
5249
+ port?: (number|null);
5250
+
5251
+ /** MysqlConnection database */
5252
+ database?: (string|null);
5253
+
5254
+ /** MysqlConnection user */
5255
+ user?: (string|null);
5256
+
5257
+ /** MysqlConnection password */
5258
+ password?: (string|null);
5259
+
5260
+ /** MysqlConnection sslMode */
5261
+ sslMode?: (string|null);
5262
+ }
5263
+
5264
+ /** Represents a MysqlConnection. */
5265
+ class MysqlConnection implements IMysqlConnection {
5266
+
5267
+ /**
5268
+ * Constructs a new MysqlConnection.
5269
+ * @param [properties] Properties to set
5270
+ */
5271
+ constructor(properties?: sqlanvil.IMysqlConnection);
5272
+
5273
+ /** MysqlConnection host. */
5274
+ public host: string;
5275
+
5276
+ /** MysqlConnection port. */
5277
+ public port: number;
5278
+
5279
+ /** MysqlConnection database. */
5280
+ public database: string;
5281
+
5282
+ /** MysqlConnection user. */
5283
+ public user: string;
5284
+
5285
+ /** MysqlConnection password. */
5286
+ public password: string;
5287
+
5288
+ /** MysqlConnection sslMode. */
5289
+ public sslMode: string;
5290
+
5291
+ /**
5292
+ * Creates a new MysqlConnection instance using the specified properties.
5293
+ * @param [properties] Properties to set
5294
+ * @returns MysqlConnection instance
5295
+ */
5296
+ public static create(properties?: sqlanvil.IMysqlConnection): sqlanvil.MysqlConnection;
5297
+
5298
+ /**
5299
+ * Encodes the specified MysqlConnection message. Does not implicitly {@link sqlanvil.MysqlConnection.verify|verify} messages.
5300
+ * @param message MysqlConnection message or plain object to encode
5301
+ * @param [writer] Writer to encode to
5302
+ * @returns Writer
5303
+ */
5304
+ public static encode(message: sqlanvil.IMysqlConnection, writer?: $protobuf.Writer): $protobuf.Writer;
5305
+
5306
+ /**
5307
+ * Encodes the specified MysqlConnection message, length delimited. Does not implicitly {@link sqlanvil.MysqlConnection.verify|verify} messages.
5308
+ * @param message MysqlConnection message or plain object to encode
5309
+ * @param [writer] Writer to encode to
5310
+ * @returns Writer
5311
+ */
5312
+ public static encodeDelimited(message: sqlanvil.IMysqlConnection, writer?: $protobuf.Writer): $protobuf.Writer;
5313
+
5314
+ /**
5315
+ * Decodes a MysqlConnection message from the specified reader or buffer.
5316
+ * @param reader Reader or buffer to decode from
5317
+ * @param [length] Message length if known beforehand
5318
+ * @returns MysqlConnection
5319
+ * @throws {Error} If the payload is not a reader or valid buffer
5320
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
5321
+ */
5322
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): sqlanvil.MysqlConnection;
5323
+
5324
+ /**
5325
+ * Decodes a MysqlConnection message from the specified reader or buffer, length delimited.
5326
+ * @param reader Reader or buffer to decode from
5327
+ * @returns MysqlConnection
5328
+ * @throws {Error} If the payload is not a reader or valid buffer
5329
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
5330
+ */
5331
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): sqlanvil.MysqlConnection;
5332
+
5333
+ /**
5334
+ * Verifies a MysqlConnection message.
5335
+ * @param message Plain object to verify
5336
+ * @returns `null` if valid, otherwise the reason why it is not
5337
+ */
5338
+ public static verify(message: { [k: string]: any }): (string|null);
5339
+
5340
+ /**
5341
+ * Creates a MysqlConnection message from a plain object. Also converts values to their respective internal types.
5342
+ * @param object Plain object
5343
+ * @returns MysqlConnection
5344
+ */
5345
+ public static fromObject(object: { [k: string]: any }): sqlanvil.MysqlConnection;
5346
+
5347
+ /**
5348
+ * Creates a plain object from a MysqlConnection message. Also converts values to other types if specified.
5349
+ * @param message MysqlConnection
5350
+ * @param [options] Conversion options
5351
+ * @returns Plain object
5352
+ */
5353
+ public static toObject(message: sqlanvil.MysqlConnection, options?: $protobuf.IConversionOptions): { [k: string]: any };
5354
+
5355
+ /**
5356
+ * Converts this MysqlConnection to JSON.
5357
+ * @returns JSON object
5358
+ */
5359
+ public toJSON(): { [k: string]: any };
5360
+
5361
+ /**
5362
+ * Gets the default type url for MysqlConnection
5363
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
5364
+ * @returns The default type url
5365
+ */
5366
+ public static getTypeUrl(typeUrlPrefix?: string): string;
5367
+ }
5368
+
5003
5369
  /** Properties of a WarehouseConfig. */
5004
5370
  interface IWarehouseConfig {
5005
5371
 
@@ -5011,6 +5377,9 @@ namespace sqlanvil {
5011
5377
 
5012
5378
  /** WarehouseConfig supabase */
5013
5379
  supabase?: (sqlanvil.ISupabaseConnection|null);
5380
+
5381
+ /** WarehouseConfig mysql */
5382
+ mysql?: (sqlanvil.IMysqlConnection|null);
5014
5383
  }
5015
5384
 
5016
5385
  /** Represents a WarehouseConfig. */
@@ -5031,8 +5400,11 @@ namespace sqlanvil {
5031
5400
  /** WarehouseConfig supabase. */
5032
5401
  public supabase?: (sqlanvil.ISupabaseConnection|null);
5033
5402
 
5403
+ /** WarehouseConfig mysql. */
5404
+ public mysql?: (sqlanvil.IMysqlConnection|null);
5405
+
5034
5406
  /** WarehouseConfig connection. */
5035
- public connection?: ("bigquery"|"postgres"|"supabase");
5407
+ public connection?: ("bigquery"|"postgres"|"supabase"|"mysql");
5036
5408
 
5037
5409
  /**
5038
5410
  * Creates a new WarehouseConfig instance using the specified properties.
@@ -6499,6 +6871,9 @@ namespace sqlanvil {
6499
6871
  /** Table supabase */
6500
6872
  supabase?: (sqlanvil.ISupabaseOptions|null);
6501
6873
 
6874
+ /** Table mysql */
6875
+ mysql?: (sqlanvil.IMysqlOptions|null);
6876
+
6502
6877
  /** Table fileName */
6503
6878
  fileName?: (string|null);
6504
6879
  }
@@ -6584,6 +6959,9 @@ namespace sqlanvil {
6584
6959
  /** Table supabase. */
6585
6960
  public supabase?: (sqlanvil.ISupabaseOptions|null);
6586
6961
 
6962
+ /** Table mysql. */
6963
+ public mysql?: (sqlanvil.IMysqlOptions|null);
6964
+
6587
6965
  /** Table fileName. */
6588
6966
  public fileName: string;
6589
6967
 
@@ -13422,6 +13800,7 @@ declare class Table extends ActionBuilder<sqlanvil.Table> {
13422
13800
  disabled(disabled?: boolean): this;
13423
13801
  bigquery(bigquery: sqlanvil.IBigQueryOptions): this;
13424
13802
  postgres(postgres: sqlanvil.IPostgresOptions): this;
13803
+ mysql(mysql: sqlanvil.IMysqlOptions): this;
13425
13804
  supabase(supabase: sqlanvil.ISupabaseOptions): this;
13426
13805
  dependencies(value: Resolvable | Resolvable[]): this;
13427
13806
  hermetic(hermetic: boolean): void;
@@ -13488,6 +13867,7 @@ declare class IncrementalTable extends ActionBuilder<sqlanvil.Table> {
13488
13867
  uniqueKey(uniqueKey: string[]): void;
13489
13868
  bigquery(bigquery: sqlanvil.IBigQueryOptions): this;
13490
13869
  postgres(postgres: sqlanvil.IPostgresOptions): this;
13870
+ mysql(mysql: sqlanvil.IMysqlOptions): this;
13491
13871
  supabase(supabase: sqlanvil.ISupabaseOptions): this;
13492
13872
  dependencies(value: Resolvable | Resolvable[]): this;
13493
13873
  hermetic(hermetic: boolean): void;
@@ -13934,7 +14314,7 @@ declare function jitCompiler(rpcCallback: RpcCallback): IJitCompiler;
13934
14314
 
13935
14315
  declare function main(coreExecutionRequest: Uint8Array | string): Uint8Array | string;
13936
14316
 
13937
- declare const version = "1.4.1";
14317
+ declare const version = "1.6.0";
13938
14318
 
13939
14319
  declare const session: Session;
13940
14320
  declare const supportedFeatures: sqlanvil.SupportedFeatures[];