@antelopejs/postgres 0.2.0 → 0.2.2

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 (73) hide show
  1. package/dist/config.d.ts +5 -0
  2. package/dist/config.js +1 -0
  3. package/dist/config.js.map +1 -1
  4. package/dist/implementations/catalog/index.d.ts +7 -0
  5. package/dist/implementations/catalog/index.js +60 -0
  6. package/dist/implementations/catalog/index.js.map +1 -0
  7. package/dist/implementations/database/ddl.d.ts +1 -0
  8. package/dist/implementations/database/ddl.js +13 -4
  9. package/dist/implementations/database/ddl.js.map +1 -1
  10. package/dist/implementations/database/duplicate-key.d.ts +2 -0
  11. package/dist/implementations/database/duplicate-key.js +49 -0
  12. package/dist/implementations/database/duplicate-key.js.map +1 -0
  13. package/dist/implementations/database/external-catalog.d.ts +15 -0
  14. package/dist/implementations/database/external-catalog.js +22 -8
  15. package/dist/implementations/database/external-catalog.js.map +1 -1
  16. package/dist/implementations/database/external-column-profile.d.ts +18 -0
  17. package/dist/implementations/database/external-column-profile.js +223 -0
  18. package/dist/implementations/database/external-column-profile.js.map +1 -0
  19. package/dist/implementations/database/external-declarations.d.ts +9 -0
  20. package/dist/implementations/database/external-declarations.js +67 -0
  21. package/dist/implementations/database/external-declarations.js.map +1 -0
  22. package/dist/implementations/database/external-discovery.d.ts +39 -0
  23. package/dist/implementations/database/external-discovery.js +219 -0
  24. package/dist/implementations/database/external-discovery.js.map +1 -0
  25. package/dist/implementations/database/external-measures.d.ts +11 -0
  26. package/dist/implementations/database/external-measures.js +82 -0
  27. package/dist/implementations/database/external-measures.js.map +1 -0
  28. package/dist/implementations/database/external-profile.d.ts +4 -0
  29. package/dist/implementations/database/external-profile.js +129 -0
  30. package/dist/implementations/database/external-profile.js.map +1 -0
  31. package/dist/implementations/database/external-reference.d.ts +2 -0
  32. package/dist/implementations/database/external-reference.js +49 -0
  33. package/dist/implementations/database/external-reference.js.map +1 -0
  34. package/dist/implementations/database/external-rows.d.ts +2 -0
  35. package/dist/implementations/database/external-rows.js +81 -0
  36. package/dist/implementations/database/external-rows.js.map +1 -0
  37. package/dist/implementations/database/external-sample.d.ts +9 -0
  38. package/dist/implementations/database/external-sample.js +29 -0
  39. package/dist/implementations/database/external-sample.js.map +1 -0
  40. package/dist/implementations/database/external-schema.js +1 -11
  41. package/dist/implementations/database/external-schema.js.map +1 -1
  42. package/dist/implementations/database/external-types.d.ts +9 -1
  43. package/dist/implementations/database/external-types.js +14 -0
  44. package/dist/implementations/database/external-types.js.map +1 -1
  45. package/dist/implementations/database/query.js +16 -6
  46. package/dist/implementations/database/query.js.map +1 -1
  47. package/dist/implementations/database/schema.d.ts +1 -0
  48. package/dist/implementations/database/schema.js +16 -0
  49. package/dist/implementations/database/schema.js.map +1 -1
  50. package/dist/index.d.ts +1 -1
  51. package/dist/index.js +1 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/test/antelope.test.js +1 -0
  54. package/dist/test/antelope.test.js.map +1 -1
  55. package/dist/test/catalog-owned.test.d.ts +1 -0
  56. package/dist/test/catalog-owned.test.js +17 -0
  57. package/dist/test/catalog-owned.test.js.map +1 -0
  58. package/dist/test/duplicate-key.test.d.ts +1 -0
  59. package/dist/test/duplicate-key.test.js +100 -0
  60. package/dist/test/duplicate-key.test.js.map +1 -0
  61. package/dist/test/unit/ddl.spec.js +39 -0
  62. package/dist/test/unit/ddl.spec.js.map +1 -1
  63. package/dist/test/unit/external-comparisons.spec.js +2 -0
  64. package/dist/test/unit/external-comparisons.spec.js.map +1 -1
  65. package/dist/test/unit/external-types.spec.js +37 -0
  66. package/dist/test/unit/external-types.spec.js.map +1 -1
  67. package/dist/test-external/catalog.test.d.ts +1 -0
  68. package/dist/test-external/catalog.test.js +348 -0
  69. package/dist/test-external/catalog.test.js.map +1 -0
  70. package/dist/test-external/fixture.d.ts +1 -0
  71. package/dist/test-external/fixture.js +28 -1
  72. package/dist/test-external/fixture.js.map +1 -1
  73. package/package.json +5 -3
package/dist/config.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import type { PoolConfig } from "pg";
2
2
  export type MigrationMode = "safe" | "destructive";
3
3
  export type Mode = "owned" | "external";
4
+ export interface CatalogOptions {
5
+ enabled?: boolean;
6
+ }
4
7
  export interface Options {
5
8
  mode?: Mode;
6
9
  url?: string;
@@ -13,6 +16,7 @@ export interface Options {
13
16
  changeRetentionMs?: number;
14
17
  changeBatchSize?: number;
15
18
  changePollIntervalMs?: number;
19
+ catalog?: CatalogOptions;
16
20
  }
17
21
  export interface ResolvedOptions {
18
22
  mode: Mode;
@@ -26,6 +30,7 @@ export interface ResolvedOptions {
26
30
  changeRetentionMs: number;
27
31
  changeBatchSize: number;
28
32
  changePollIntervalMs: number;
33
+ catalog: CatalogOptions;
29
34
  }
30
35
  export declare function SetOptions(options?: Options): ResolvedOptions;
31
36
  export declare function GetOptions(): ResolvedOptions;
package/dist/config.js CHANGED
@@ -72,6 +72,7 @@ function SetOptions(options) {
72
72
  changeRetentionMs: PositiveSafeInteger("changeRetentionMs", options?.changeRetentionMs, DEFAULT_CHANGE_RETENTION_MS),
73
73
  changeBatchSize: PositiveSafeInteger("changeBatchSize", options?.changeBatchSize, DEFAULT_CHANGE_BATCH_SIZE),
74
74
  changePollIntervalMs: PositiveSafeInteger("changePollIntervalMs", options?.changePollIntervalMs, DEFAULT_CHANGE_POLL_INTERVAL_MS),
75
+ catalog: options?.catalog ?? {},
75
76
  };
76
77
  return resolved;
77
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AA6LA,gCAsCC;AAED,gCAKC;AAGD,gCAEC;AAED,oCAEC;AA1ID,MAAM,WAAW,GAAG,+CAA+C,CAAC;AACpE,MAAM,YAAY,GAAS,OAAO,CAAC;AACnC,MAAM,KAAK,GAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAOrD,MAAM,kBAAkB,GAA+B;IACrD,cAAc;IACd,YAAY;IACZ,mBAAmB;IACnB,iBAAiB;IACjB,sBAAsB;CACvB,CAAC;AACF,MAAM,kBAAkB,GAAkB,MAAM,CAAC;AACjD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAC9C,MAAM,2BAA2B,GAAG,OAAO,CAAC;AAC5C,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAE9C,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAEpC,MAAM,cAAc,GAClB,mEAAmE,CAAC;AAEtE,IAAI,QAAqC,CAAC;AAG1C,SAAS,mBAAmB,CAC1B,MAAc,EACd,QAAiB,EACjB,QAAgB;IAEhB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IACE,OAAO,QAAQ,KAAK,QAAQ;QAC5B,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/B,QAAQ,GAAG,yBAAyB,EACpC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,8CAA8C,MAAM,CAAC,QAAQ,CAAC,EAAE,CAC1E,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,OAAiB;IACpC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,YAAY,CAAC;IAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,uBAAuB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,EAAE,CACpE,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CACvC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,CAC5C,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gHAAgH,CACtI,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAAU,EAAE,OAAiB;IAC/C,IAAI,OAAO,EAAE,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5D,OAAO,OAAO,CAAC,GAAG,CAAC;IACrB,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,UAAU,CAAC,OAAiB;IAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,GAAG;QACT,IAAI;QACJ,GAAG;QACH,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;QACzB,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,qBAAqB;QAC5D,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,kBAAkB;QACrD,eAAe,EAAE,mBAAmB,CAClC,iBAAiB,EACjB,OAAO,EAAE,eAAe,EACxB,yBAAyB,CAC1B;QACD,mBAAmB,EAAE,mBAAmB,CACtC,qBAAqB,EACrB,OAAO,EAAE,mBAAmB,EAC5B,8BAA8B,CAC/B;QACD,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;QAC/C,iBAAiB,EAAE,mBAAmB,CACpC,mBAAmB,EACnB,OAAO,EAAE,iBAAiB,EAC1B,2BAA2B,CAC5B;QACD,eAAe,EAAE,mBAAmB,CAClC,iBAAiB,EACjB,OAAO,EAAE,eAAe,EACxB,yBAAyB,CAC1B;QACD,oBAAoB,EAAE,mBAAmB,CACvC,sBAAsB,EACtB,OAAO,EAAE,oBAAoB,EAC7B,+BAA+B,CAChC;QACD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;KAChC,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,UAAU;IACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAGD,SAAgB,UAAU;IACxB,OAAO,UAAU,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC;AAC1C,CAAC;AAED,SAAgB,YAAY;IAC1B,QAAQ,GAAG,SAAS,CAAC;AACvB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { CatalogInfo, Measure, ProfileRequest, ReferenceCheck, ReferenceMatch, RelationDescription, RelationProfile, RelationSummary, RowSample, SampleRequest } from "@antelopejs/interface-database-catalog";
2
+ export declare function Info(): Promise<CatalogInfo>;
3
+ export declare function ListRelations(schemas?: string[]): Promise<RelationSummary[]>;
4
+ export declare function DescribeRelations(relations: string[]): Promise<RelationDescription[]>;
5
+ export declare function Profile(request: ProfileRequest): Promise<RelationProfile>;
6
+ export declare function CheckReference(check: ReferenceCheck): Promise<Measure<ReferenceMatch>>;
7
+ export declare function SampleRows(request: SampleRequest): Promise<RowSample>;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Info = Info;
4
+ exports.ListRelations = ListRelations;
5
+ exports.DescribeRelations = DescribeRelations;
6
+ exports.Profile = Profile;
7
+ exports.CheckReference = CheckReference;
8
+ exports.SampleRows = SampleRows;
9
+ const runtime_1 = require("@antelopejs/interface-core/runtime");
10
+ const config_1 = require("../../config");
11
+ const external_discovery_1 = require("../database/external-discovery");
12
+ const external_measures_1 = require("../database/external-measures");
13
+ const external_profile_1 = require("../database/external-profile");
14
+ const external_reference_1 = require("../database/external-reference");
15
+ const external_rows_1 = require("../database/external-rows");
16
+ const OWNED_REFUSAL = "the catalog describes a database an external instance was pointed at; this instance owns its tables";
17
+ const DEVELOPMENT_REFUSAL = "the catalog is a development tool: it answers under ajs project dev or run, or with catalog.enabled";
18
+ async function IsEnabled() {
19
+ const configured = (0, config_1.GetOptions)().catalog.enabled;
20
+ return configured ?? (await (0, runtime_1.GetRuntimeInfo)()).dev;
21
+ }
22
+ async function Guard() {
23
+ if (!(0, config_1.IsExternal)()) {
24
+ throw new Error(OWNED_REFUSAL);
25
+ }
26
+ if (!(await IsEnabled())) {
27
+ throw new Error(DEVELOPMENT_REFUSAL);
28
+ }
29
+ }
30
+ async function Info() {
31
+ await Guard();
32
+ return (0, external_discovery_1.ReadInfo)();
33
+ }
34
+ async function ListRelations(schemas) {
35
+ await Guard();
36
+ return (0, external_measures_1.Sequentially)(await (0, external_discovery_1.ReadRelationRows)(schemas), external_discovery_1.Summarize);
37
+ }
38
+ async function DescribeRelations(relations) {
39
+ await Guard();
40
+ const rows = await (0, external_discovery_1.ReadNamedRelationRows)(relations);
41
+ const found = new Set(rows.map(external_discovery_1.RelationName));
42
+ const missing = relations.filter((relation) => !found.has(relation));
43
+ if (missing.length > 0) {
44
+ throw new Error(`No relation ${missing.join(", ")} that the connected role can see`);
45
+ }
46
+ return (0, external_measures_1.Sequentially)(rows, external_discovery_1.DescribeRow);
47
+ }
48
+ async function Profile(request) {
49
+ await Guard();
50
+ return (0, external_profile_1.ProfileRelation)(request);
51
+ }
52
+ async function CheckReference(check) {
53
+ await Guard();
54
+ return (0, external_reference_1.CheckColumnReference)(check);
55
+ }
56
+ async function SampleRows(request) {
57
+ await Guard();
58
+ return (0, external_rows_1.SampleRelationRows)(request);
59
+ }
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/implementations/catalog/index.ts"],"names":[],"mappings":";;AAgDA,oBAGC;AAED,sCAKC;AAED,8CAaC;AAED,0BAKC;AAED,wCAKC;AAED,gCAGC;AA5FD,gEAAoE;AAcpE,yCAAsD;AACtD,uEAOwC;AACxC,qEAA6D;AAC7D,mEAA+D;AAC/D,uEAAsE;AACtE,6DAA+D;AAE/D,MAAM,aAAa,GACjB,qGAAqG,CAAC;AACxG,MAAM,mBAAmB,GACvB,qGAAqG,CAAC;AAExG,KAAK,UAAU,SAAS;IACtB,MAAM,UAAU,GAAG,IAAA,mBAAU,GAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAChD,OAAO,UAAU,IAAI,CAAC,MAAM,IAAA,wBAAc,GAAE,CAAC,CAAC,GAAG,CAAC;AACpD,CAAC;AAGD,KAAK,UAAU,KAAK;IAClB,IAAI,CAAC,IAAA,mBAAU,GAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,IAAI;IACxB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,6BAAQ,GAAE,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,OAAkB;IAElB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,gCAAY,EAAC,MAAM,IAAA,qCAAgB,EAAC,OAAO,CAAC,EAAE,8BAAS,CAAC,CAAC;AAClE,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,SAAmB;IAEnB,MAAM,KAAK,EAAE,CAAC;IACd,MAAM,IAAI,GAAG,MAAM,IAAA,0CAAqB,EAAC,SAAS,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAY,CAAC,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,eAAe,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,IAAA,gCAAY,EAAC,IAAI,EAAE,gCAAW,CAAC,CAAC;AACzC,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,OAAuB;IAEvB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,kCAAe,EAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,KAAqB;IAErB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,yCAAoB,EAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,OAAsB;IACrD,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,kCAAkB,EAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -19,6 +19,7 @@ export interface IndexPlan {
19
19
  readonly name: string;
20
20
  readonly method: IndexMethod;
21
21
  readonly keys: readonly string[];
22
+ readonly isUnique: boolean;
22
23
  readonly signature: string;
23
24
  }
24
25
  export interface TablePlan {
@@ -24,6 +24,7 @@ const GIN = "gin";
24
24
  const SIGNATURE_VENDOR = "antelopejs";
25
25
  const SIGNATURE_VERSION = "1";
26
26
  const SIGNATURE_PREFIX = `${SIGNATURE_VENDOR}:${SIGNATURE_VERSION}`;
27
+ const UNIQUE_SIGNATURE_MARKER = "unique:";
27
28
  exports.PRIMARY_KEY_COLUMNS = [
28
29
  utils_1.INSTANCE_COLUMN,
29
30
  utils_1.ID_COLUMN,
@@ -84,13 +85,15 @@ function IsElementWise(index, specs) {
84
85
  soleSpec !== undefined &&
85
86
  (0, types_1.IsJsonBacked)(soleSpec.type));
86
87
  }
87
- function PhysicalIndex(id, name, method, keys) {
88
+ function PhysicalIndex(id, name, method, keys, isUnique = false) {
89
+ const marker = isUnique ? UNIQUE_SIGNATURE_MARKER : "";
88
90
  return {
89
91
  id,
90
92
  name,
91
93
  method,
92
94
  keys,
93
- signature: `${SIGNATURE_PREFIX}:${method}:${keys.join(",")}`,
95
+ isUnique,
96
+ signature: `${SIGNATURE_PREFIX}:${method}:${marker}${keys.join(",")}`,
94
97
  };
95
98
  }
96
99
  function BuildIndexPlans(tableId, indexId, index, shape) {
@@ -98,11 +101,16 @@ function BuildIndexPlans(tableId, indexId, index, shape) {
98
101
  const specs = IndexSpecs(fields, shape);
99
102
  const keys = fields.map((field, position) => IndexKey(indexId, field, specs[position]));
100
103
  const name = (0, identifier_1.IndexName)(tableId, indexId);
104
+ const isUnique = index.unique === true;
101
105
  if (IsElementWise(index, specs)) {
106
+ if (isUnique) {
107
+ throw new Error(`Index '${indexId}' on table '${tableId}' is unique and multi over an array field, whose elements PostgreSQL cannot hold unique; drop one of the two flags`);
108
+ }
102
109
  return [PhysicalIndex(indexId, name, GIN, keys)];
103
110
  }
104
111
  const instanceKey = (0, sql_1.QuoteIdentifier)(utils_1.INSTANCE_COLUMN);
105
- const scoped = PhysicalIndex(indexId, name, BTREE, [instanceKey, ...keys]);
112
+ const scopedKeys = [instanceKey, ...keys];
113
+ const scoped = PhysicalIndex(indexId, name, BTREE, scopedKeys, isUnique);
106
114
  if (index.crossInstance !== true) {
107
115
  return [scoped];
108
116
  }
@@ -172,8 +180,9 @@ function CreateTableSql(schemaName, plan) {
172
180
  function CreateIndexSql(schemaName, plan, index, name = index.name) {
173
181
  const target = (0, identifier_1.QualifiedName)(schemaName, plan.table);
174
182
  const reference = (0, identifier_1.QualifiedName)(schemaName, name);
183
+ const kind = index.isUnique ? "UNIQUE INDEX" : "INDEX";
175
184
  return [
176
- `CREATE INDEX CONCURRENTLY ${(0, sql_1.QuoteIdentifier)(name)} ON ${target} USING ${index.method} (${index.keys.join(", ")})`,
185
+ `CREATE ${kind} CONCURRENTLY ${(0, sql_1.QuoteIdentifier)(name)} ON ${target} USING ${index.method} (${index.keys.join(", ")})`,
177
186
  `COMMENT ON INDEX ${reference} IS ${(0, sql_1.QuoteLiteral)(index.signature)}`,
178
187
  ];
179
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../../src/implementations/database/ddl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../../src/implementations/database/ddl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { TableOrigin } from "./relation";
2
+ export declare function DuplicateKeyFailure(err: unknown, origin: TableOrigin): Promise<unknown>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DuplicateKeyFailure = DuplicateKeyFailure;
4
+ const pg_1 = require("pg");
5
+ const interface_database_1 = require("@antelopejs/interface-database");
6
+ const connection_1 = require("../../connection");
7
+ const ddl_1 = require("./ddl");
8
+ const schema_1 = require("./schema");
9
+ const utils_1 = require("./utils");
10
+ const identifier_1 = require("./identifier");
11
+ const UNIQUE_VIOLATION = "23505";
12
+ const PRIMARY_KEY_FIELDS = [utils_1.ID_COLUMN];
13
+ const IS_PRIMARY_KEY_SQL = `
14
+ SELECT 1 FROM pg_index i
15
+ JOIN pg_class c ON c.oid = i.indexrelid
16
+ JOIN pg_namespace n ON n.oid = c.relnamespace
17
+ WHERE n.nspname = $1 AND c.relname = $2 AND i.indisprimary`;
18
+ function UniqueKeys(origin) {
19
+ const indexes = (0, schema_1.GetTable)(origin.schemaId, origin.tableId).indexes ?? {};
20
+ const keys = new Map();
21
+ for (const [indexId, index] of Object.entries(indexes)) {
22
+ if (index.unique !== true) {
23
+ continue;
24
+ }
25
+ const key = { index: indexId, fields: (0, ddl_1.IndexFields)(indexId, index) };
26
+ const name = (0, identifier_1.IndexName)(origin.tableId, indexId);
27
+ keys.set(name, key).set((0, identifier_1.ReplacementIndexName)(name), key);
28
+ }
29
+ return keys;
30
+ }
31
+ async function IsPrimaryKey(schemaName, constraint) {
32
+ const result = await (0, connection_1.Query)(IS_PRIMARY_KEY_SQL, [schemaName, constraint]);
33
+ return result.rows.length > 0;
34
+ }
35
+ async function DuplicateKeyFailure(err, origin) {
36
+ if (!(err instanceof pg_1.DatabaseError) || err.code !== UNIQUE_VIOLATION) {
37
+ return err;
38
+ }
39
+ const constraint = err.constraint ?? "";
40
+ const declared = UniqueKeys(origin).get(constraint);
41
+ if (declared) {
42
+ return new interface_database_1.DuplicateKeyError(declared.index, [...declared.fields]);
43
+ }
44
+ if (await IsPrimaryKey((0, identifier_1.SchemaName)(origin.schemaId), constraint)) {
45
+ return new interface_database_1.DuplicateKeyError(utils_1.ID_COLUMN, [...PRIMARY_KEY_FIELDS]);
46
+ }
47
+ return err;
48
+ }
49
+ //# sourceMappingURL=duplicate-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplicate-key.js","sourceRoot":"","sources":["../../../src/implementations/database/duplicate-key.ts"],"names":[],"mappings":";;AAyDA,kDAgBC;AAzED,2BAAmC;AACnC,uEAAmE;AAEnE,iDAAyC;AACzC,+BAAoC;AACpC,qCAAoC;AACpC,mCAAoC;AAEpC,6CAA2E;AAE3E,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,MAAM,kBAAkB,GAAG,CAAC,iBAAS,CAAC,CAAC;AAEvC,MAAM,kBAAkB,GAAG;;;;6DAIkC,CAAC;AAY9D,SAAS,UAAU,CAAC,MAAmB;IACrC,MAAM,OAAO,GAAG,IAAA,iBAAQ,EAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IACxE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC1C,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAA,iBAAW,EAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,IAAA,sBAAS,EAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAA,iCAAoB,EAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAGD,KAAK,UAAU,YAAY,CAAC,UAAkB,EAAE,UAAkB;IAChE,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAK,EAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,CAAC;AAUM,KAAK,UAAU,mBAAmB,CACvC,GAAY,EACZ,MAAmB;IAEnB,IAAI,CAAC,CAAC,GAAG,YAAY,kBAAa,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACrE,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,sCAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,IAAA,uBAAU,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,sCAAiB,CAAC,iBAAS,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -10,6 +10,17 @@ export interface CatalogColumn {
10
10
  hasDefault: boolean;
11
11
  generated: boolean;
12
12
  identity: string;
13
+ comment: string | null;
14
+ enumLabels: string[] | null;
15
+ }
16
+ export interface CatalogIndex {
17
+ name: string;
18
+ primary: boolean;
19
+ unique: boolean;
20
+ btree: boolean;
21
+ total: boolean;
22
+ notNull: boolean;
23
+ columns: string[];
13
24
  }
14
25
  export interface CatalogRelation {
15
26
  kind: string;
@@ -19,4 +30,8 @@ export interface CatalogRelation {
19
30
  keyName?: string;
20
31
  indexes: string[][];
21
32
  }
33
+ export declare const RELATION_KINDS = "('r', 'p', 'v', 'm', 'f')";
34
+ export declare function KeyOf(indexes: CatalogIndex[]): CatalogIndex | undefined;
35
+ export declare function ReadColumns(oid: number): Promise<CatalogColumn[]>;
36
+ export declare function ReadIndexes(oid: number): Promise<CatalogIndex[]>;
22
37
  export declare function ReadRelation(schemaName: string, relationName: string): Promise<CatalogRelation | undefined>;
@@ -1,18 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RELATION_KINDS = void 0;
4
+ exports.KeyOf = KeyOf;
5
+ exports.ReadColumns = ReadColumns;
6
+ exports.ReadIndexes = ReadIndexes;
3
7
  exports.ReadRelation = ReadRelation;
4
8
  const connection_1 = require("../../connection");
5
- const RELATION_KINDS = "('r', 'p', 'v', 'm', 'f')";
9
+ exports.RELATION_KINDS = "('r', 'p', 'v', 'm', 'f')";
6
10
  const RELATION_SQL = `
7
11
  SELECT c.oid, c.relkind AS kind, has_table_privilege(c.oid, 'SELECT') AS readable
8
12
  FROM pg_class c
9
13
  JOIN pg_namespace n ON n.oid = c.relnamespace
10
- WHERE n.nspname = $1 AND c.relname = $2 AND c.relkind IN ${RELATION_KINDS}`;
14
+ WHERE n.nspname = $1 AND c.relname = $2 AND c.relkind IN ${exports.RELATION_KINDS}`;
11
15
  const COLUMNS_SQL = `
12
16
  SELECT a.attname AS name, format_type(a.atttypid, a.atttypmod) AS native,
13
17
  b.typname, format_type(b.oid, NULL) AS "castType", b.typtype, b.typcategory AS category,
14
18
  e.typname AS element, a.attnotnull AS "notNull", a.atthasdef AS "hasDefault",
15
- a.attgenerated <> '' AS generated, a.attidentity AS identity
19
+ a.attgenerated <> '' AS generated, a.attidentity AS identity,
20
+ col_description(a.attrelid, a.attnum) AS comment,
21
+ CASE WHEN b.typtype = 'e' THEN ARRAY(
22
+ SELECT l.enumlabel::text FROM pg_enum l WHERE l.enumtypid = b.oid ORDER BY l.enumsortorder
23
+ ) END AS "enumLabels"
16
24
  FROM pg_attribute a
17
25
  JOIN pg_type t ON t.oid = a.atttypid
18
26
  JOIN pg_type b ON b.oid = CASE WHEN t.typtype = 'd' THEN t.typbasetype ELSE t.oid END
@@ -58,6 +66,12 @@ function ServingIndexes(indexes) {
58
66
  .filter((index) => index.btree && index.total)
59
67
  .map((index) => index.columns);
60
68
  }
69
+ async function ReadColumns(oid) {
70
+ return (await (0, connection_1.Query)(COLUMNS_SQL, [oid])).rows;
71
+ }
72
+ async function ReadIndexes(oid) {
73
+ return (await (0, connection_1.Query)(INDEXES_SQL, [oid])).rows;
74
+ }
61
75
  async function ReadRelation(schemaName, relationName) {
62
76
  const found = await (0, connection_1.Query)(RELATION_SQL, [
63
77
  schemaName,
@@ -67,16 +81,16 @@ async function ReadRelation(schemaName, relationName) {
67
81
  return undefined;
68
82
  }
69
83
  const relation = found.rows[0];
70
- const columns = await (0, connection_1.Query)(COLUMNS_SQL, [relation.oid]);
71
- const indexes = await (0, connection_1.Query)(INDEXES_SQL, [relation.oid]);
72
- const key = KeyOf(indexes.rows);
84
+ const columns = await ReadColumns(relation.oid);
85
+ const indexes = await ReadIndexes(relation.oid);
86
+ const key = KeyOf(indexes);
73
87
  return {
74
88
  kind: relation.kind,
75
89
  readable: relation.readable,
76
- columns: columns.rows,
90
+ columns,
77
91
  key: key?.columns,
78
92
  keyName: key?.name,
79
- indexes: ServingIndexes(indexes.rows),
93
+ indexes: ServingIndexes(indexes),
80
94
  };
81
95
  }
82
96
  //# sourceMappingURL=external-catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-catalog.js","sourceRoot":"","sources":["../../../src/implementations/database/external-catalog.ts"],"names":[],"mappings":";;AA4HA,oCAuBC;AAnJD,iDAAyC;AAqDzC,MAAM,cAAc,GAAG,2BAA2B,CAAC;AAEnD,MAAM,YAAY,GAAG;;;;6DAIwC,cAAc,EAAE,CAAC;AAE9E,MAAM,WAAW,GAAG;;;;;;;;;;oBAUA,CAAC;AAErB,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;qBAmBC,CAAC;AAGtB,SAAS,cAAc,CAAC,KAAmB;IACzC,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;AACtD,CAAC;AAGD,SAAS,eAAe,CAAC,IAAkB,EAAE,KAAmB;IAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;IACzD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAGD,SAAS,KAAK,CAAC,OAAuB;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,OAAuB;IAC7C,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;SAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAMM,KAAK,UAAU,YAAY,CAChC,UAAkB,EAClB,YAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,IAAA,kBAAK,EAAc,YAAY,EAAE;QACnD,UAAU;QACV,YAAY;KACb,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAK,EAAgB,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAK,EAAe,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,GAAG,EAAE,GAAG,EAAE,OAAO;QACjB,OAAO,EAAE,GAAG,EAAE,IAAI;QAClB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"external-catalog.js","sourceRoot":"","sources":["../../../src/implementations/database/external-catalog.ts"],"names":[],"mappings":";;;AAiHA,sBAMC;AAYD,kCAEC;AAED,kCAEC;AAED,oCAuBC;AAlKD,iDAAyC;AAwD5B,QAAA,cAAc,GAAG,2BAA2B,CAAC;AAE1D,MAAM,YAAY,GAAG;;;;6DAIwC,sBAAc,EAAE,CAAC;AAE9E,MAAM,WAAW,GAAG;;;;;;;;;;;;;;oBAcA,CAAC;AAErB,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;qBAmBC,CAAC;AAGtB,SAAS,cAAc,CAAC,KAAmB;IACzC,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;AACtD,CAAC;AAGD,SAAS,eAAe,CAAC,IAAkB,EAAE,KAAmB;IAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;IACzD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAGD,SAAgB,KAAK,CAAC,OAAuB;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,OAAuB;IAC7C,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;SAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAMM,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,OAAO,CAAC,MAAM,IAAA,kBAAK,EAAgB,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,OAAO,CAAC,MAAM,IAAA,kBAAK,EAAe,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,UAAkB,EAClB,YAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,IAAA,kBAAK,EAAc,YAAY,EAAE;QACnD,UAAU;QACV,YAAY;KACb,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO;QACP,GAAG,EAAE,GAAG,EAAE,OAAO;QACjB,OAAO,EAAE,GAAG,EAAE,IAAI;QAClB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;KACjC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ColumnProfile } from "@antelopejs/interface-database-catalog";
2
+ import type { CatalogColumn } from "./external-catalog";
3
+ import { type MeasureSession } from "./external-measures";
4
+ import { type Source } from "./external-sample";
5
+ import { type NativeFamily } from "./external-types";
6
+ import type { SqlType } from "./types";
7
+ export interface ProfiledColumn {
8
+ name: string;
9
+ family: NativeFamily;
10
+ kind: SqlType;
11
+ quoted: string;
12
+ }
13
+ export declare function Profiled(column: CatalogColumn): ProfiledColumn | undefined;
14
+ export interface ColumnRoles {
15
+ keys: Set<string>;
16
+ references: Set<string>;
17
+ }
18
+ export declare function ProfileColumn(session: MeasureSession, column: ProfiledColumn, source: Source, rows: number | undefined, roles: ColumnRoles): Promise<ColumnProfile>;