qubu 0.0.0 → 0.3.4
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/dist/canonical-BbnqavJm.mjs +972 -0
- package/dist/codegen.d.mts +107 -0
- package/dist/codegen.mjs +1199 -0
- package/dist/column-CXMxx8Hq.mjs +118 -0
- package/dist/complete-D5Djh-zo.mjs +1788 -0
- package/dist/complete-types-BdFqUfbb.d.mts +371 -0
- package/dist/core.d.mts +33 -0
- package/dist/core.mjs +36 -0
- package/dist/ddl.d.mts +118 -0
- package/dist/ddl.mjs +1120 -0
- package/dist/dialect-b2-Z6uBF.mjs +13 -0
- package/dist/diff.d.mts +2 -0
- package/dist/diff.mjs +883 -0
- package/dist/drizzle-mysql.d.mts +24 -0
- package/dist/drizzle-mysql.mjs +72 -0
- package/dist/drizzle-postgres.d.mts +24 -0
- package/dist/drizzle-postgres.mjs +73 -0
- package/dist/drizzle-sqlite.d.mts +24 -0
- package/dist/drizzle-sqlite.mjs +82 -0
- package/dist/drizzle.d.mts +13 -0
- package/dist/drizzle.mjs +2 -0
- package/dist/errors-BGCoLe_r.mjs +14 -0
- package/dist/errors-Dxv73YJu.mjs +26 -0
- package/dist/explain-CkIK13L_.mjs +98 -0
- package/dist/index-Ds7-mhJi.d.mts +146 -0
- package/dist/index-Dug5HnLB.d.mts +204 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.mjs +1276 -0
- package/dist/introspection.d.mts +117 -0
- package/dist/introspection.mjs +4341 -0
- package/dist/json-CUZlv4HT.mjs +169 -0
- package/dist/migration.d.mts +215 -0
- package/dist/migration.mjs +1161 -0
- package/dist/mysql-DqkqXB6A.mjs +355 -0
- package/dist/mysql.d.mts +5 -0
- package/dist/mysql.mjs +50 -0
- package/dist/naming-QVCOnSj2.mjs +20 -0
- package/dist/omit-OxV58AwX.mjs +5 -0
- package/dist/on-conflict-BxnxubMb.mjs +143 -0
- package/dist/postgres-DEBBeh52.mjs +235 -0
- package/dist/postgres.d.mts +123 -0
- package/dist/postgres.mjs +52 -0
- package/dist/registry-BufIskVN.mjs +569 -0
- package/dist/relational-DCZrrNia.mjs +77 -0
- package/dist/runtime-BTr-MTlo.mjs +193 -0
- package/dist/schema.d.mts +2 -0
- package/dist/schema.mjs +5 -0
- package/dist/serialize-PF1cfH2P.mjs +556 -0
- package/dist/snapshot-CWPgzxNx.mjs +392 -0
- package/dist/snapshot.d.mts +4 -0
- package/dist/snapshot.mjs +8 -0
- package/dist/source-DUoJVXmL.mjs +68 -0
- package/dist/sqlite-BU6DBxef.mjs +320 -0
- package/dist/sqlite.d.mts +5 -0
- package/dist/sqlite.mjs +48 -0
- package/dist/standard-BTVYKh_F.mjs +12 -0
- package/dist/table-llv9tsZ8.mjs +384 -0
- package/dist/types-4Q076HKo.d.mts +3636 -0
- package/dist/types-BX0mckiU.d.mts +644 -0
- package/dist/types-Cec0xzo4.mjs +116 -0
- package/dist/types-H4vyCw8_.d.mts +45 -0
- package/dist/value-BvilP0oz.mjs +29 -0
- package/dist/vite/ambient.d.ts +449 -0
- package/dist/vite.d.mts +35 -0
- package/dist/vite.mjs +498 -0
- package/docs/config.json +21 -0
- package/docs/dialects-and-execution.md +427 -0
- package/docs/getting-started.md +96 -0
- package/docs/guides/compose-queries.md +225 -0
- package/docs/guides/drizzle.md +130 -0
- package/docs/guides/extensions/dialects.md +40 -0
- package/docs/guides/extensions/overview.md +36 -0
- package/docs/guides/extensions/sources-and-clauses.md +82 -0
- package/docs/guides/extensions/typed-expressions.md +94 -0
- package/docs/guides/extensions/unsafe-syntax.md +27 -0
- package/docs/guides/json.md +65 -0
- package/docs/guides/mutations.md +138 -0
- package/docs/guides/select/conditions.md +110 -0
- package/docs/guides/select/grouping-and-windows.md +82 -0
- package/docs/guides/select/ordering-and-pagination.md +78 -0
- package/docs/guides/select/overview.md +139 -0
- package/docs/guides/sql-templates.md +157 -0
- package/docs/guides/vite-plugin.md +92 -0
- package/docs/index.md +111 -0
- package/docs/query-model/fragments.md +109 -0
- package/docs/query-model/result-shapes.md +125 -0
- package/docs/query-model/source-scope.md +182 -0
- package/docs/reference/introspection-support.md +196 -0
- package/docs/reference/mysql-snapshot.md +55 -0
- package/docs/reference/postgres-snapshot.md +61 -0
- package/docs/reference/sqlite-snapshot.md +53 -0
- package/docs/reference/supported-surface.md +104 -0
- package/docs/schema/catalog-model.md +58 -0
- package/docs/schema/code-generation.md +139 -0
- package/docs/schema/columns-and-writes.md +130 -0
- package/docs/schema/constraints-and-indexes.md +180 -0
- package/docs/schema/ddl-emission.md +75 -0
- package/docs/schema/diff.md +75 -0
- package/docs/schema/introspection.md +214 -0
- package/docs/schema/migration-plans.md +76 -0
- package/docs/schema/snapshots.md +93 -0
- package/docs/schema/storage-and-schema-sql.md +104 -0
- package/docs/schema/tables-and-names.md +106 -0
- package/docs/sql-semantic-types.md +141 -0
- package/docs/troubleshooting.md +151 -0
- package/package.json +132 -10
- package/skills/qubu/SKILL.md +42 -0
- package/skills/qubu/agents/openai.yaml +6 -0
- package/readme.md +0 -1
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { $ as CatalogTrigger, A as CatalogNamespace, At as CatalogQuery, B as CatalogPrimaryKeyConstraint, C as CatalogForeignKeyTarget, Ct as IntrospectionDiagnosticCode, D as CatalogIndexTerm, Dt as createIntrospectionDiagnostic, E as CatalogIndex, Et as IntrospectionError, F as CatalogOpaqueObject, G as CatalogRoutine, H as CatalogProvenanceKind, I as CatalogOwnership, J as CatalogSequence, K as CatalogRoutineParameter, L as CatalogPartition, M as CatalogObjectBase, N as CatalogObjectMetadata, O as CatalogIntrospector, Ot as hasIntrospectionErrors, P as CatalogObjectReference, Q as CatalogTable, R as CatalogPolicy, S as CatalogForeignKeyConstraint, St as IntrospectionDiagnostic, T as CatalogIdentity, Tt as IntrospectionDiagnosticSeverity, U as CatalogQueryRow, V as CatalogProvenance, W as CatalogReference, X as CatalogSqlExpression, Y as CatalogServerInfo, Z as CatalogStorageType, _ as CatalogEntityReference, _t as CatalogIdentityPolicy, a as CatalogCollation, at as CatalogView, b as CatalogExpressionFact, bt as CatalogResolvedIdentity, c as CatalogCompleteObject, ct as IntrospectionFailure, d as CatalogDeferredObject, dt as IntrospectionResult, et as CatalogUniqueConstraint, f as CatalogDeferredObjectKind, ft as IntrospectionSuccess, g as CatalogEntityKind, gt as CatalogIdentityHints, h as CatalogDomain, ht as CatalogIdentityHint, i as CatalogClassificationConfidence, it as CatalogVersion, j as CatalogObject, jt as CatalogQueryOptions, k as CatalogLiteralFact, kt as CatalogConnection, l as CatalogConstraint, lt as IntrospectionMode, m as CatalogDialectExtension, mt as CatalogIdentityFallback, n as CatalogCatalogReference, nt as CatalogUnknownObject, o as CatalogColumn, ot as CompleteIntrospectionCatalog, p as CatalogDialect, pt as CatalogIdentityEntityKind, q as CatalogScalar, r as CatalogCheckConstraint, rt as CatalogValueFact, s as CatalogComment, st as IntrospectionCatalog, t as CatalogCapabilities, tt as CatalogUnknownField, u as CatalogData, ut as IntrospectionOptions, v as CatalogEnum, vt as CatalogIdentitySource, w as CatalogGeneratedColumn, wt as IntrospectionDiagnosticInput, x as CatalogExtensionObject, xt as introspectedPhysicalIdentityPolicy, y as CatalogEnumValue, yt as CatalogPreviousSnapshotIdentitySource, z as CatalogPortableStorageType } from "./types-BX0mckiU.mjs";
|
|
2
|
+
import { t as CompleteSchemaSnapshot } from "./complete-types-BdFqUfbb.mjs";
|
|
3
|
+
//#region src/introspection/catalog.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Materialize every optional object-family collection and deeply freeze the
|
|
6
|
+
* normalized catalog. Catalog text and extension data remain values; this
|
|
7
|
+
* helper never evaluates SQL or assigns persisted logical identities.
|
|
8
|
+
*/
|
|
9
|
+
declare function createCompleteIntrospectionCatalog(catalog: IntrospectionCatalog): CompleteIntrospectionCatalog;
|
|
10
|
+
/** Alias for callers that already use the normalized-catalog terminology. */
|
|
11
|
+
declare const freezeIntrospectionCatalog: typeof createCompleteIntrospectionCatalog;
|
|
12
|
+
/** Convert a complete catalog back to the optional reader-facing contract. */
|
|
13
|
+
declare function toIntrospectionCatalog(catalog: CompleteIntrospectionCatalog): IntrospectionCatalog;
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/introspection/complete-snapshot.d.ts
|
|
16
|
+
/** Result returned by the strict normalized-catalog to Snapshot v2 mapper. */
|
|
17
|
+
type CompleteSnapshotMappingResult = {
|
|
18
|
+
readonly ok: true;
|
|
19
|
+
readonly catalog: CompleteIntrospectionCatalog;
|
|
20
|
+
readonly snapshot: CompleteSchemaSnapshot;
|
|
21
|
+
readonly diagnostics: readonly IntrospectionDiagnostic[];
|
|
22
|
+
readonly lossy: false;
|
|
23
|
+
} | {
|
|
24
|
+
readonly ok: false;
|
|
25
|
+
readonly catalog: CompleteIntrospectionCatalog;
|
|
26
|
+
readonly diagnostics: readonly IntrospectionDiagnostic[];
|
|
27
|
+
readonly lossy: false;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Map a normalized catalog to strict Snapshot v2 data. This is intentionally
|
|
31
|
+
* separate from the Snapshot v1 mapper: complete objects are never fabricated
|
|
32
|
+
* as tables, and catalog references remain evidence rather than logical IDs.
|
|
33
|
+
*/
|
|
34
|
+
declare function mapCatalogToCompleteSnapshot(input: IntrospectionCatalog): CompleteSnapshotMappingResult;
|
|
35
|
+
/** Numbered alias for callers that keep both snapshot mappers available. */
|
|
36
|
+
declare const mapCatalogToSnapshotV2: typeof mapCatalogToCompleteSnapshot;
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/introspection/mysql.d.ts
|
|
39
|
+
declare const mysqlServerQuery = "SELECT VERSION() AS version, @@version_comment AS version_comment";
|
|
40
|
+
declare const mysqlTablesQuery = "\n SELECT TABLE_NAME AS table_name, TABLE_TYPE AS table_type,\n ENGINE AS engine, TABLE_COLLATION AS table_collation,\n CREATE_OPTIONS AS create_options, TABLE_COMMENT AS table_comment\n FROM INFORMATION_SCHEMA.TABLES\n WHERE TABLE_SCHEMA = ?\n ORDER BY TABLE_NAME\n";
|
|
41
|
+
declare const mysqlColumnsQuery = "\n SELECT TABLE_NAME AS table_name, COLUMN_NAME AS column_name,\n ORDINAL_POSITION AS ordinal_position, COLUMN_TYPE AS column_type,\n DATA_TYPE AS data_type,\n IS_NULLABLE AS is_nullable, COLUMN_DEFAULT AS column_default,\n EXTRA AS extra, GENERATION_EXPRESSION AS generation_expression,\n CHARACTER_SET_NAME AS character_set_name,\n COLLATION_NAME AS collation_name, COLUMN_COMMENT AS column_comment\n FROM INFORMATION_SCHEMA.COLUMNS\n WHERE TABLE_SCHEMA = ?\n ORDER BY TABLE_NAME, ORDINAL_POSITION\n";
|
|
42
|
+
declare const mysqlKeyUsageQuery = "\n SELECT kcu.TABLE_NAME AS table_name, kcu.CONSTRAINT_NAME AS constraint_name,\n tc.CONSTRAINT_TYPE AS constraint_type, tc.ENFORCED AS enforced,\n kcu.COLUMN_NAME AS column_name, kcu.ORDINAL_POSITION AS ordinal_position,\n kcu.REFERENCED_TABLE_NAME AS referenced_table_name,\n kcu.REFERENCED_COLUMN_NAME AS referenced_column_name,\n rc.UPDATE_RULE AS update_rule, rc.DELETE_RULE AS delete_rule,\n rc.MATCH_OPTION AS match_option\n FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu\n JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc\n ON tc.CONSTRAINT_SCHEMA = kcu.CONSTRAINT_SCHEMA\n AND tc.TABLE_NAME = kcu.TABLE_NAME\n AND tc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME\n LEFT JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc\n ON rc.CONSTRAINT_SCHEMA = kcu.CONSTRAINT_SCHEMA\n AND rc.TABLE_NAME = kcu.TABLE_NAME\n AND rc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME\n WHERE kcu.CONSTRAINT_SCHEMA = ?\n ORDER BY kcu.TABLE_NAME, kcu.CONSTRAINT_NAME, kcu.ORDINAL_POSITION\n";
|
|
43
|
+
declare const mysqlChecksQuery = "\n SELECT tc.TABLE_NAME AS table_name, tc.CONSTRAINT_NAME AS constraint_name,\n tc.ENFORCED AS enforced, cc.CHECK_CLAUSE AS check_clause\n FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc\n JOIN INFORMATION_SCHEMA.CHECK_CONSTRAINTS cc\n ON cc.CONSTRAINT_SCHEMA = tc.CONSTRAINT_SCHEMA\n AND cc.CONSTRAINT_NAME = tc.CONSTRAINT_NAME\n WHERE tc.CONSTRAINT_SCHEMA = ? AND tc.CONSTRAINT_TYPE = 'CHECK'\n ORDER BY tc.TABLE_NAME, tc.CONSTRAINT_NAME\n";
|
|
44
|
+
declare const mysqlStatisticsQuery = "\n SELECT TABLE_NAME AS table_name, INDEX_NAME AS index_name,\n NON_UNIQUE AS non_unique, SEQ_IN_INDEX AS seq_in_index,\n COLUMN_NAME AS column_name, COLLATION AS collation,\n INDEX_TYPE AS index_type, EXPRESSION AS expression,\n SUB_PART AS sub_part, IS_VISIBLE AS is_visible,\n COMMENT AS comment, INDEX_COMMENT AS index_comment\n FROM INFORMATION_SCHEMA.STATISTICS\n WHERE TABLE_SCHEMA = ?\n ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX\n";
|
|
45
|
+
/** View definitions and execution properties for the selected database. */
|
|
46
|
+
declare const mysqlViewsQuery = "\n SELECT TABLE_NAME AS table_name, VIEW_DEFINITION AS view_definition,\n CHECK_OPTION AS check_option, IS_UPDATABLE AS is_updatable,\n SECURITY_TYPE AS security_type, DEFINER AS definer\n FROM INFORMATION_SCHEMA.VIEWS\n WHERE TABLE_SCHEMA = ?\n ORDER BY TABLE_NAME\n";
|
|
47
|
+
/** Stored function and procedure declarations for the selected database. */
|
|
48
|
+
declare const mysqlRoutinesQuery = "\n SELECT ROUTINE_NAME AS routine_name, ROUTINE_TYPE AS routine_type,\n DATA_TYPE AS data_type, DTD_IDENTIFIER AS dtd_identifier,\n ROUTINE_BODY AS routine_body,\n ROUTINE_DEFINITION AS routine_definition,\n EXTERNAL_LANGUAGE AS external_language,\n SQL_DATA_ACCESS AS sql_data_access,\n IS_DETERMINISTIC AS is_deterministic,\n SECURITY_TYPE AS security_type, SQL_MODE AS sql_mode,\n ROUTINE_COMMENT AS routine_comment\n FROM INFORMATION_SCHEMA.ROUTINES\n WHERE ROUTINE_SCHEMA = ?\n ORDER BY ROUTINE_NAME, ROUTINE_TYPE\n";
|
|
49
|
+
/** Parameter rows, including the ordinal zero return row for functions. */
|
|
50
|
+
declare const mysqlRoutineParametersQuery = "\n SELECT SPECIFIC_NAME AS routine_name, ORDINAL_POSITION AS ordinal_position,\n PARAMETER_MODE AS parameter_mode, PARAMETER_NAME AS parameter_name,\n DATA_TYPE AS data_type, DTD_IDENTIFIER AS dtd_identifier\n FROM INFORMATION_SCHEMA.PARAMETERS\n WHERE SPECIFIC_SCHEMA = ?\n ORDER BY SPECIFIC_NAME, ORDINAL_POSITION\n";
|
|
51
|
+
/** Trigger bodies and their table/event metadata. */
|
|
52
|
+
declare const mysqlTriggersQuery = "\n SELECT TRIGGER_NAME AS trigger_name, EVENT_MANIPULATION AS event_manipulation,\n EVENT_OBJECT_TABLE AS table_name, ACTION_CONDITION AS action_condition,\n ACTION_STATEMENT AS action_statement,\n ACTION_ORIENTATION AS action_orientation,\n ACTION_TIMING AS action_timing, ACTION_ORDER AS action_order,\n DEFINER AS definer, SQL_MODE AS sql_mode\n FROM INFORMATION_SCHEMA.TRIGGERS\n WHERE TRIGGER_SCHEMA = ?\n ORDER BY TRIGGER_NAME, ACTION_ORDER\n";
|
|
53
|
+
/** Partition and subpartition declarations for tables in the selected database. */
|
|
54
|
+
declare const mysqlPartitionsQuery = "\n SELECT TABLE_NAME AS table_name, PARTITION_NAME AS partition_name,\n SUBPARTITION_NAME AS subpartition_name,\n PARTITION_ORDINAL_POSITION AS partition_ordinal_position,\n SUBPARTITION_ORDINAL_POSITION AS subpartition_ordinal_position,\n PARTITION_METHOD AS partition_method,\n SUBPARTITION_METHOD AS subpartition_method,\n PARTITION_EXPRESSION AS partition_expression,\n SUBPARTITION_EXPRESSION AS subpartition_expression,\n PARTITION_DESCRIPTION AS partition_description,\n PARTITION_COMMENT AS partition_comment,\n TABLESPACE_NAME AS tablespace_name\n FROM INFORMATION_SCHEMA.PARTITIONS\n WHERE TABLE_SCHEMA = ? AND PARTITION_NAME IS NOT NULL\n ORDER BY TABLE_NAME, PARTITION_ORDINAL_POSITION, SUBPARTITION_ORDINAL_POSITION\n";
|
|
55
|
+
/** Collations used by tables or columns in the selected database. */
|
|
56
|
+
declare const mysqlCollationsQuery = "\n SELECT c.COLLATION_NAME AS collation_name,\n c.CHARACTER_SET_NAME AS character_set_name,\n c.ID AS collation_id, c.IS_DEFAULT AS is_default,\n c.IS_COMPILED AS is_compiled, c.SORTLEN AS sort_length,\n c.PAD_ATTRIBUTE AS pad_attribute\n FROM INFORMATION_SCHEMA.COLLATIONS c\n JOIN (\n SELECT DISTINCT TABLE_COLLATION AS collation_name\n FROM INFORMATION_SCHEMA.TABLES\n WHERE TABLE_SCHEMA = ? AND TABLE_COLLATION IS NOT NULL\n UNION\n SELECT DISTINCT COLLATION_NAME AS collation_name\n FROM INFORMATION_SCHEMA.COLUMNS\n WHERE TABLE_SCHEMA = ? AND COLLATION_NAME IS NOT NULL\n ) used ON used.collation_name = c.COLLATION_NAME\n ORDER BY c.COLLATION_NAME\n";
|
|
57
|
+
/** Scheduled events are retained as opaque MySQL objects, not migration input. */
|
|
58
|
+
declare const mysqlEventsQuery = "\n SELECT EVENT_NAME AS event_name, EVENT_TYPE AS event_type,\n STATUS AS status, EVENT_DEFINITION AS event_definition,\n EVENT_BODY AS event_body, EXECUTE_AT AS execute_at,\n INTERVAL_VALUE AS interval_value, INTERVAL_FIELD AS interval_field,\n EVENT_COMMENT AS event_comment, DEFINER AS definer\n FROM INFORMATION_SCHEMA.EVENTS\n WHERE EVENT_SCHEMA = ?\n ORDER BY EVENT_NAME\n";
|
|
59
|
+
/** Read one MySQL database into the normalized catalog contract. */
|
|
60
|
+
declare function readMysqlCatalog(connection: CatalogConnection, options: IntrospectionOptions): Promise<IntrospectionCatalog>;
|
|
61
|
+
//#endregion
|
|
62
|
+
//#region src/introspection/postgres.d.ts
|
|
63
|
+
/** Fixed server metadata query used by the PostgreSQL catalog reader. */
|
|
64
|
+
declare const postgresServerQuery = "\n SELECT\n current_setting('server_version_num') AS server_version_num,\n current_setting('server_version') AS server_version\n";
|
|
65
|
+
/** Read one PostgreSQL schema into the normalized catalog contract. */
|
|
66
|
+
declare function readPostgresCatalog(connection: CatalogConnection, options: IntrospectionOptions): Promise<IntrospectionCatalog>;
|
|
67
|
+
declare const postgresRelationsQuery = "\n SELECT c.oid::text AS oid, n.nspname AS namespace, c.relname,\n c.relkind, c.relispartition\n FROM pg_class c\n JOIN pg_namespace n ON n.oid = c.relnamespace\n WHERE n.nspname = $1\n AND c.relkind NOT IN ('i', 'I')\n ORDER BY c.relname\n";
|
|
68
|
+
/** Fixed view and materialized-view definitions from PostgreSQL's decompiler. */
|
|
69
|
+
declare const postgresViewsQuery = "\n SELECT c.oid::text AS oid, n.nspname AS namespace, c.relname AS physical_name,\n c.relkind, pg_get_viewdef(c.oid, true) AS definition,\n v.check_option, c.reloptions\n FROM pg_catalog.pg_class c\n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n LEFT JOIN information_schema.views v\n ON v.table_schema = n.nspname AND v.table_name = c.relname\n WHERE n.nspname = $1 AND c.relkind IN ('v', 'm')\n ORDER BY c.oid\n";
|
|
70
|
+
declare const postgresColumnsQuery = "\n SELECT a.attrelid::text AS table_oid, a.attnum::int AS ordinal_position,\n a.attname AS physical_name, NOT a.attnotnull AS nullable,\n format_type(a.atttypid, a.atttypmod) AS native_type,\n a.attidentity, a.attgenerated,\n pg_get_expr(ad.adbin, ad.adrelid) AS default_expression\n FROM pg_attribute a\n JOIN pg_class c ON c.oid = a.attrelid\n JOIN pg_namespace n ON n.oid = c.relnamespace\n LEFT JOIN pg_attrdef ad ON ad.adrelid = a.attrelid AND ad.adnum = a.attnum\n WHERE n.nspname = $1\n AND c.relkind IN ('r', 'p', 'v', 'm')\n AND a.attnum > 0\n AND NOT a.attisdropped\n ORDER BY a.attrelid, a.attnum\n";
|
|
71
|
+
declare const postgresConstraintsQuery = "\n SELECT con.oid::text AS oid, con.conrelid::text AS table_oid,\n con.conname AS physical_name, con.contype,\n con.conkey, con.confrelid::text AS target_table_oid, con.confkey,\n con.confupdtype, con.confdeltype, con.confmatchtype,\n con.condeferrable, con.condeferred, con.convalidated,\n con.conindid::text AS backing_index_oid,\n i.indnullsnotdistinct,\n pg_get_constraintdef(con.oid, true) AS definition\n FROM pg_constraint con\n JOIN pg_class c ON c.oid = con.conrelid\n JOIN pg_namespace n ON n.oid = c.relnamespace\n LEFT JOIN pg_index i ON i.indexrelid = con.conindid\n WHERE n.nspname = $1\n AND con.contype IN ('p', 'u', 'f', 'c', 'x')\n ORDER BY con.conrelid, con.oid\n";
|
|
72
|
+
declare const postgresIndexesQuery = "\n SELECT i.indexrelid::text AS index_oid, i.indrelid::text AS table_oid,\n c.relname AS physical_name, i.indisunique, i.indnkeyatts::int,\n i.indnatts::int, am.amname AS method,\n pg_get_expr(i.indpred, i.indrelid, true) AS predicate,\n s.position::int,\n (i.indkey[s.position])::int AS attnum,\n (i.indoption[s.position])::int AS indoption,\n opc.opcname AS operator_class,\n pg_get_indexdef(i.indexrelid, s.position, true) AS term_definition\n FROM pg_index i\n JOIN pg_class c ON c.oid = i.indexrelid\n JOIN pg_class t ON t.oid = i.indrelid\n JOIN pg_namespace n ON n.oid = t.relnamespace\n JOIN pg_am am ON am.oid = c.relam\n CROSS JOIN LATERAL generate_series(1, i.indnatts) AS s(position)\n LEFT JOIN pg_opclass opc ON opc.oid = i.indclass[s.position]\n WHERE n.nspname = $1\n ORDER BY i.indrelid, i.indexrelid, s.position\n";
|
|
73
|
+
/** Identity sequence options joined to each generated identity column. */
|
|
74
|
+
declare const postgresIdentitiesQuery = "\n SELECT a.attrelid::text AS table_oid, a.attnum::int AS ordinal_position,\n s.seqstart, s.seqincrement, s.seqmin, s.seqmax, s.seqcache,\n s.seqcycle, format_type(s.seqtypid, -1) AS sequence_type\n FROM pg_catalog.pg_attribute a\n JOIN pg_catalog.pg_class c ON c.oid = a.attrelid\n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n JOIN pg_catalog.pg_depend d\n ON d.refclassid = 'pg_catalog.pg_class'::regclass\n AND d.refobjid = a.attrelid AND d.refobjsubid = a.attnum\n AND d.classid = 'pg_catalog.pg_class'::regclass\n AND d.deptype = 'i'\n JOIN pg_catalog.pg_sequence s ON s.seqrelid = d.objid\n WHERE n.nspname = $1 AND a.attidentity <> ''\n ORDER BY a.attrelid, a.attnum\n";
|
|
75
|
+
/** Sequence metadata, including serial/identity ownership dependencies. */
|
|
76
|
+
declare const postgresSequencesQuery = "\n SELECT c.oid::text AS oid, n.nspname AS namespace, c.relname AS physical_name,\n format_type(s.seqtypid, -1) AS native_type,\n s.seqstart, s.seqincrement, s.seqmin, s.seqmax, s.seqcache,\n s.seqcycle, dep.refobjid::text AS owned_table_oid,\n dep.refobjsubid::int AS owned_column_position\n FROM pg_catalog.pg_sequence s\n JOIN pg_catalog.pg_class c ON c.oid = s.seqrelid\n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n LEFT JOIN pg_catalog.pg_depend dep\n ON dep.classid = 'pg_catalog.pg_class'::regclass\n AND dep.objid = c.oid AND dep.refclassid = 'pg_catalog.pg_class'::regclass\n AND dep.deptype IN ('a', 'i')\n WHERE n.nspname = $1\n ORDER BY c.oid\n";
|
|
77
|
+
/** PostgreSQL enum labels in their declared order. */
|
|
78
|
+
declare const postgresEnumsQuery = "\n SELECT t.oid::text AS oid, n.nspname AS namespace,\n t.typname AS physical_name, e.oid::text AS value_oid,\n e.enumlabel AS value, e.enumsortorder::float8 AS ordinal_position\n FROM pg_catalog.pg_type t\n JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\n JOIN pg_catalog.pg_enum e ON e.enumtypid = t.oid\n WHERE n.nspname = $1 AND t.typtype = 'e'\n ORDER BY t.oid, e.enumsortorder\n";
|
|
79
|
+
/** PostgreSQL domains and their exact base type/default metadata. */
|
|
80
|
+
declare const postgresDomainsQuery = "\n SELECT t.oid::text AS oid, n.nspname AS namespace,\n t.typname AS physical_name,\n format_type(t.typbasetype, t.typtypmod) AS native_type,\n NOT t.typnotnull AS nullable, t.typdefault AS default_expression\n FROM pg_catalog.pg_type t\n JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\n WHERE n.nspname = $1 AND t.typtype = 'd'\n ORDER BY t.oid\n";
|
|
81
|
+
/** Domain CHECK constraints, which use pg_constraint.contypid. */
|
|
82
|
+
declare const postgresDomainConstraintsQuery = "\n SELECT con.oid::text AS oid, con.contypid::text AS domain_oid,\n con.conname AS physical_name, pg_get_constraintdef(con.oid, true) AS definition,\n con.condeferrable, con.condeferred, con.convalidated\n FROM pg_catalog.pg_constraint con\n JOIN pg_catalog.pg_type t ON t.oid = con.contypid\n JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\n WHERE n.nspname = $1 AND con.contype = 'c'\n ORDER BY con.contypid, con.oid\n";
|
|
83
|
+
/** Collation provider, locale, determinism, and version facts. */
|
|
84
|
+
declare const postgresCollationsQuery = "\n SELECT c.oid::text AS oid, n.nspname AS namespace,\n c.collname AS physical_name, c.collprovider, c.collcollate,\n c.collctype, to_jsonb(c)->>'colllocale' AS colliculocale,\n c.collisdeterministic, c.collversion\n FROM pg_catalog.pg_collation c\n JOIN pg_catalog.pg_namespace n ON n.oid = c.collnamespace\n WHERE n.nspname = $1\n ORDER BY c.oid\n";
|
|
85
|
+
/** User-defined triggers with decompiled condition and definition text. */
|
|
86
|
+
declare const postgresTriggersQuery = "\n SELECT t.oid::text AS oid, t.tgrelid::text AS table_oid,\n n.nspname AS namespace, t.tgname AS physical_name,\n t.tgtype::int AS trigger_type, t.tgenabled,\n pg_get_expr(t.tgqual, t.tgrelid, true) AS condition,\n pg_get_triggerdef(t.oid, true) AS definition\n FROM pg_catalog.pg_trigger t\n JOIN pg_catalog.pg_class c ON c.oid = t.tgrelid\n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n WHERE n.nspname = $1 AND NOT t.tgisinternal\n ORDER BY t.tgrelid, t.oid\n";
|
|
87
|
+
/** PostgreSQL functions, procedures, aggregates, and window routines. */
|
|
88
|
+
declare const postgresRoutinesQuery = "\n SELECT p.oid::text AS oid, n.nspname AS namespace,\n p.proname AS physical_name, p.prokind,\n format_type(p.prorettype, NULL) AS return_type,\n l.lanname AS language, pg_get_functiondef(p.oid) AS definition,\n pg_get_function_identity_arguments(p.oid) AS identity_arguments,\n pg_get_expr(p.proargdefaults, 0, true) AS argument_defaults,\n p.pronargdefaults, p.provolatile, p.proparallel, p.prosecdef\n FROM pg_catalog.pg_proc p\n JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace\n JOIN pg_catalog.pg_language l ON l.oid = p.prolang\n WHERE n.nspname = $1 AND p.prokind IN ('f', 'p', 'a', 'w')\n ORDER BY p.oid\n";
|
|
89
|
+
/** Routine parameter rows using PostgreSQL's complete argument type arrays. */
|
|
90
|
+
declare const postgresRoutineParametersQuery = "\n SELECT p.oid::text AS routine_oid, x.position::int AS ordinal_position,\n names.name AS parameter_name, modes.mode,\n format_type(x.type_oid, -1) AS native_type\n FROM pg_catalog.pg_proc p\n JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace\n CROSS JOIN LATERAL unnest(\n COALESCE(p.proallargtypes, p.proargtypes::oid[])\n ) WITH ORDINALITY AS x(type_oid, position)\n LEFT JOIN LATERAL unnest(p.proargnames) WITH ORDINALITY\n AS names(name, position) ON names.position = x.position\n LEFT JOIN LATERAL unnest(p.proargmodes) WITH ORDINALITY\n AS modes(mode, position) ON modes.position = x.position\n WHERE n.nspname = $1 AND p.prokind IN ('f', 'p', 'a', 'w')\n ORDER BY p.oid, x.position\n";
|
|
91
|
+
/** Partition children, key attributes, strategy, and bound expression. */
|
|
92
|
+
declare const postgresPartitionsQuery = "\n SELECT child.oid::text AS partition_oid, parent.oid::text AS parent_oid,\n n.nspname AS namespace, child.relname AS physical_name,\n part.partstrat, part.partattrs::text AS key_attributes,\n pg_get_expr(child.relpartbound, child.oid, true) AS bound,\n child.relispartition, child.relkind\n FROM pg_catalog.pg_inherits inh\n JOIN pg_catalog.pg_class child ON child.oid = inh.inhrelid\n JOIN pg_catalog.pg_class parent ON parent.oid = inh.inhparent\n JOIN pg_catalog.pg_namespace n ON n.oid = child.relnamespace\n LEFT JOIN pg_catalog.pg_partitioned_table part ON part.partrelid = parent.oid\n WHERE n.nspname = $1\n ORDER BY parent.oid, child.oid\n";
|
|
93
|
+
/** Row-level security policies and their role/expression metadata. */
|
|
94
|
+
declare const postgresPoliciesQuery = "\n SELECT p.oid::text AS oid, p.polrelid::text AS table_oid,\n n.nspname AS namespace, p.polname AS physical_name,\n p.polcmd, p.polpermissive,\n ARRAY(SELECT r.rolname FROM pg_catalog.pg_roles r\n WHERE r.oid = ANY(p.polroles)) AS roles,\n pg_get_expr(p.polqual, p.polrelid, true) AS using_expression,\n pg_get_expr(p.polwithcheck, p.polrelid, true) AS check_expression\n FROM pg_catalog.pg_policy p\n JOIN pg_catalog.pg_class c ON c.oid = p.polrelid\n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n WHERE n.nspname = $1\n ORDER BY p.polrelid, p.oid\n";
|
|
95
|
+
/** Installed PostgreSQL extensions scoped to the selected schema. */
|
|
96
|
+
declare const postgresExtensionsQuery = "\n SELECT e.oid::text AS oid, n.nspname AS namespace,\n e.extname AS physical_name, e.extversion, e.extrelocatable,\n e.extconfig::text AS config_relations,\n e.extcondition::text AS config_conditions\n FROM pg_catalog.pg_extension e\n JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace\n WHERE n.nspname = $1\n ORDER BY e.oid\n";
|
|
97
|
+
/** Comments and owners for PostgreSQL objects visible in one schema. */
|
|
98
|
+
declare const postgresMetadataQuery = "\n WITH objects AS (\n SELECT 'pg_class'::text AS catalog_relation, 'pg_class'::regclass AS catalog_oid,\n c.oid::text AS object_oid, 0::int AS object_subid,\n CASE c.relkind WHEN 'r' THEN 'table' WHEN 'p' THEN 'table'\n WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized-view'\n WHEN 'S' THEN 'sequence' WHEN 'i' THEN 'index'\n WHEN 'I' THEN 'index' WHEN 'f' THEN 'deferred-object'\n ELSE 'opaque-object' END AS object_kind,\n c.relname AS object_name, n.nspname AS namespace,\n c.relowner::oid AS owner_oid, NULL::text AS parent_oid\n FROM pg_catalog.pg_class c\n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n WHERE n.nspname = $1\n UNION ALL\n SELECT 'pg_class', 'pg_class'::regclass, c.oid::text, a.attnum::int,\n 'column', a.attname, n.nspname, c.relowner::oid, c.oid::text\n FROM pg_catalog.pg_attribute a\n JOIN pg_catalog.pg_class c ON c.oid = a.attrelid\n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n WHERE n.nspname = $1 AND c.relkind IN ('r', 'p', 'v', 'm')\n AND a.attnum > 0 AND NOT a.attisdropped\n UNION ALL\n SELECT 'pg_proc', 'pg_proc'::regclass, p.oid::text, 0,\n 'routine', p.proname, n.nspname, p.proowner::oid, NULL\n FROM pg_catalog.pg_proc p\n JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace\n WHERE n.nspname = $1 AND p.prokind IN ('f', 'p', 'a', 'w')\n UNION ALL\n SELECT 'pg_type', 'pg_type'::regclass, t.oid::text, 0,\n CASE t.typtype WHEN 'e' THEN 'enum' ELSE 'domain' END,\n t.typname, n.nspname, t.typowner::oid, NULL\n FROM pg_catalog.pg_type t\n JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\n WHERE n.nspname = $1 AND t.typtype IN ('e', 'd')\n UNION ALL\n SELECT 'pg_collation', 'pg_collation'::regclass, c.oid::text, 0,\n 'collation', c.collname, n.nspname, c.collowner::oid, NULL\n FROM pg_catalog.pg_collation c\n JOIN pg_catalog.pg_namespace n ON n.oid = c.collnamespace\n WHERE n.nspname = $1\n UNION ALL\n SELECT 'pg_extension', 'pg_extension'::regclass, e.oid::text, 0,\n 'extension', e.extname, n.nspname, e.extowner::oid, NULL\n FROM pg_catalog.pg_extension e\n JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace\n WHERE n.nspname = $1\n UNION ALL\n SELECT 'pg_constraint', 'pg_constraint'::regclass, con.oid::text, 0,\n 'constraint', con.conname, n.nspname, c.relowner::oid,\n con.conrelid::text\n FROM pg_catalog.pg_constraint con\n JOIN pg_catalog.pg_class c ON c.oid = con.conrelid\n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n WHERE n.nspname = $1\n UNION ALL\n SELECT 'pg_trigger', 'pg_trigger'::regclass, t.oid::text, 0,\n 'trigger', t.tgname, n.nspname, c.relowner::oid,\n t.tgrelid::text\n FROM pg_catalog.pg_trigger t\n JOIN pg_catalog.pg_class c ON c.oid = t.tgrelid\n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n WHERE n.nspname = $1 AND NOT t.tgisinternal\n UNION ALL\n SELECT 'pg_policy', 'pg_policy'::regclass, p.oid::text, 0,\n 'policy', p.polname, n.nspname, c.relowner::oid,\n p.polrelid::text\n FROM pg_catalog.pg_policy p\n JOIN pg_catalog.pg_class c ON c.oid = p.polrelid\n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n WHERE n.nspname = $1\n )\n SELECT o.catalog_relation, o.object_oid, o.object_subid,\n o.object_kind, o.object_name, o.namespace, o.parent_oid,\n d.description, pg_get_userbyid(o.owner_oid) AS owner\n FROM objects o\n LEFT JOIN pg_catalog.pg_description d\n ON d.classoid = o.catalog_oid AND d.objoid::text = o.object_oid\n AND d.objsubid = o.object_subid\n ORDER BY o.catalog_relation, o.object_oid, o.object_subid\n";
|
|
99
|
+
//#endregion
|
|
100
|
+
//#region src/introspection/snapshot.d.ts
|
|
101
|
+
/** Construct and validate a canonical Snapshot v1 from a normalized catalog. */
|
|
102
|
+
declare function mapCatalogToSnapshot(catalog: IntrospectionCatalog, options: IntrospectionOptions): IntrospectionResult;
|
|
103
|
+
//#endregion
|
|
104
|
+
//#region src/introspection/sqlite.d.ts
|
|
105
|
+
declare const sqliteServerQuery = "SELECT sqlite_version() AS version, sqlite_source_id() AS source_id";
|
|
106
|
+
declare const sqliteDatabaseListQuery = "\n SELECT seq, name, file\n FROM pragma_database_list()\n ORDER BY seq\n";
|
|
107
|
+
declare const sqliteSchemaQuery = "\n SELECT type, name, tbl_name, sql\n FROM main.sqlite_schema\n WHERE name NOT LIKE 'sqlite_%'\n ORDER BY type, name\n";
|
|
108
|
+
declare const sqliteTempSchemaQuery = "\n SELECT type, name, tbl_name, sql\n FROM temp.sqlite_schema\n WHERE name NOT LIKE 'sqlite_%'\n ORDER BY type, name\n";
|
|
109
|
+
declare const sqliteTableListQuery = "\n SELECT schema, name, type, ncol, wr, strict\n FROM pragma_table_list\n WHERE schema = ? AND name NOT LIKE 'sqlite_%'\n ORDER BY name\n";
|
|
110
|
+
declare const sqliteTableInfoQuery = "\n SELECT cid, name, type, \"notnull\" AS not_null, dflt_value, pk, hidden\n FROM pragma_table_xinfo(?, ?)\n ORDER BY cid\n";
|
|
111
|
+
declare const sqliteIndexListQuery = "\n SELECT seq, name, \"unique\" AS unique_index, origin, partial\n FROM pragma_index_list(?, ?)\n ORDER BY seq\n";
|
|
112
|
+
declare const sqliteIndexInfoQuery = "\n SELECT seqno, cid, name, \"desc\" AS descending, coll, key\n FROM pragma_index_xinfo(?, ?)\n ORDER BY seqno\n";
|
|
113
|
+
declare const sqliteForeignKeyQuery = "\n SELECT id, seq, \"table\" AS target_table, \"from\" AS source_column,\n \"to\" AS target_column, on_update, on_delete, match\n FROM pragma_foreign_key_list(?, ?)\n ORDER BY id, seq\n";
|
|
114
|
+
/** Read the selected SQLite database namespace into the normalized catalog. */
|
|
115
|
+
declare function readSqliteCatalog(connection: CatalogConnection, options: IntrospectionOptions): Promise<IntrospectionCatalog>;
|
|
116
|
+
//#endregion
|
|
117
|
+
export { CatalogCapabilities, CatalogCatalogReference, CatalogCheckConstraint, CatalogClassificationConfidence, CatalogCollation, CatalogColumn, CatalogComment, CatalogCompleteObject, CatalogConnection, CatalogConstraint, CatalogData, CatalogDeferredObject, CatalogDeferredObjectKind, CatalogDialect, CatalogDialectExtension, CatalogDomain, CatalogEntityKind, CatalogEntityReference, CatalogEnum, CatalogEnumValue, CatalogExpressionFact, CatalogExtensionObject, CatalogForeignKeyConstraint, CatalogForeignKeyTarget, CatalogGeneratedColumn, CatalogIdentity, CatalogIdentityEntityKind, CatalogIdentityFallback, CatalogIdentityHint, CatalogIdentityHints, CatalogIdentityPolicy, CatalogIdentitySource, CatalogIndex, CatalogIndexTerm, CatalogIntrospector, CatalogLiteralFact, CatalogNamespace, CatalogObject, CatalogObjectBase, CatalogObjectMetadata, CatalogObjectReference, CatalogOpaqueObject, CatalogOwnership, CatalogPartition, CatalogPolicy, CatalogPortableStorageType, CatalogPreviousSnapshotIdentitySource, CatalogPrimaryKeyConstraint, CatalogProvenance, CatalogProvenanceKind, CatalogQuery, CatalogQueryOptions, CatalogQueryRow, CatalogReference, CatalogResolvedIdentity, CatalogRoutine, CatalogRoutineParameter, CatalogScalar, CatalogSequence, CatalogServerInfo, CatalogSqlExpression, CatalogStorageType, CatalogTable, CatalogTrigger, CatalogUniqueConstraint, CatalogUnknownField, CatalogUnknownObject, CatalogValueFact, CatalogVersion, CatalogView, CompleteIntrospectionCatalog, CompleteSnapshotMappingResult, IntrospectionCatalog, IntrospectionDiagnostic, IntrospectionDiagnosticCode, IntrospectionDiagnosticInput, IntrospectionDiagnosticSeverity, IntrospectionError, IntrospectionFailure, IntrospectionMode, IntrospectionOptions, IntrospectionResult, IntrospectionSuccess, createCompleteIntrospectionCatalog, createIntrospectionDiagnostic, freezeIntrospectionCatalog, hasIntrospectionErrors, introspectedPhysicalIdentityPolicy, mapCatalogToCompleteSnapshot, mapCatalogToSnapshot, mapCatalogToSnapshotV2, mysqlChecksQuery, mysqlCollationsQuery, mysqlColumnsQuery, mysqlEventsQuery, mysqlKeyUsageQuery, mysqlPartitionsQuery, mysqlRoutineParametersQuery, mysqlRoutinesQuery, mysqlServerQuery, mysqlStatisticsQuery, mysqlTablesQuery, mysqlTriggersQuery, mysqlViewsQuery, postgresCollationsQuery, postgresColumnsQuery, postgresConstraintsQuery, postgresDomainConstraintsQuery, postgresDomainsQuery, postgresEnumsQuery, postgresExtensionsQuery, postgresIdentitiesQuery, postgresIndexesQuery, postgresMetadataQuery, postgresPartitionsQuery, postgresPoliciesQuery, postgresRelationsQuery, postgresRoutineParametersQuery, postgresRoutinesQuery, postgresSequencesQuery, postgresServerQuery, postgresTriggersQuery, postgresViewsQuery, readMysqlCatalog, readPostgresCatalog, readSqliteCatalog, sqliteDatabaseListQuery, sqliteForeignKeyQuery, sqliteIndexInfoQuery, sqliteIndexListQuery, sqliteSchemaQuery, sqliteServerQuery, sqliteTableInfoQuery, sqliteTableListQuery, sqliteTempSchemaQuery, toIntrospectionCatalog };
|